freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何基于AutomationML工程数据自动识别安全风险
2020-12-15 22:25:24

AMLsec

AMLsec是一款基于AutomationML工程数据的自动化安全风险识别工具,这个产品原型能够识别类似网络威胁或安全漏洞之类的安全风险源以及相关类型的网络入侵后果。风险识别过程的结果可用于生成网络物理攻击图,而这个攻击图将帮助广大研究人员模拟出安全威胁所可能导致物理损害的多级网络攻击。

工具安装

首先,广大研究人员需要使用下列命令将该项目源码克隆至本地:

git clone https://github.com/sbaresearch/amlsec.git

接下来,我们还需要构建AML2OWL。这个原型基于AML和OWL之间的双向翻译数据实现,具体可以参考ETFA 2019的一篇报告《基于双向翻译的AutomationML中解释OWL复杂类》。将该项目源码克隆至本地之后,我们需要按照下列方法编译项目,并编译aml_owl应用程序包:

$ cd aml_models

$ mvn clean compile install

$ cd ../aml_io

$ mvn clean compile install

$ cd ../aml_owl

$ mvn clean compile install assembly:single

编译好AML2OWL之后,我们还需要配置AMLsec基目录。将该项目源码克隆至本地之后,将会创建一个应用程序基目录,具体取决于你选择的路径。我们需要将项目文件以及编译好的AML2OWL Jar文件(位于aml_owl/target/中)存放至amlsec-base-dir中。AMLsec基目录以及AML2OWL Jar文件的路径必须使用项目配置文件中的baseDir和amlToOwlProgram这两个参数来进行相应的设置。

然后,我们还需要配置好Apache Jena Fuseki。我们可以使用下列命令安装并启动Apache Jena Fuseki

$ java -jar <path_to_apache-jena-fuseki-X.Y.Z>/fuseki-server.jar --update

最后,我们需要构建AMLsec。这里可以使用sbt来构建并启动应用程序:

$ sbt "runMain org.sba_research.worker.Main"

工具使用

该工具的实现方法使用了一种通过AML库实现的语义信息映射机制。通过将这些AML安全扩展库导入到AML文件中,可以很容易地在工程项目中重用它们。

我们在下面这个案例研究中展示了该原型的功能。按原样运行该原型将生成知识库(可通过Fuseki访问),该知识库还包括风险识别过程的结果,以及以下经过删减的网络物理攻击图:

集群

这个工具愿你修内功使用了Akka框架,并且能够在多个节点之间分配风险识别工作量。项目中已结成了Akka分布式Worker样例以作模板使用。接下来,我们可以按照下列方法使用多个节点来运行集群。

1、开启Cassandra:

$ sbt "runMain org.sba_research.worker.Main cassandra"

2、开启第一个种子节点:

$ sbt "runMain org.sba_research.worker.Main 2551"

3、开启一个前端节点:

$ sbt "runMain org.sba_research.worker.Main 3001"

4、开启一个Worker节点(第二个参数代表Worker参与者的数量,比如说3):

$ sbt "runMain org.sba_research.worker.Main 5001 3"

如果你分别在单独的设备上来运行这些结点的话,你将需要在配置文件中适配Akka的配置信息。

性能评估

性能评估期间获得的测量和日志文件可根据要求提供。

项目地址

AMLsec:【GitHub传送门

# 威胁检测 # 风险评估 # 风险管理
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录