开源的工控协议fuzzing框架Aegis

时间:2023-02-12 21:49:26

原文章是微信上的,可以访问这个地址:https://github.com/automatak


筒子们是不是对复杂多样的工业控制协议安全性测试工作发愁呢?S给你介绍个东东,看看有用哞?

ICS / SCADA应用需要鲁棒性高的组件,Aegis(宙斯盾)是一种智能 fuzzing 框架,支持部署对在生产系统中的工控协议的鲁棒性和通信软件的安全问题进行fuzzing测试。

Aegis本质是一套ICS/SCADA 协议fuzzing测试用例。测试编写使用几种不同的方法来提高测试覆盖率 ︰

  • 协议语法modeling

  • 协议规范的自分析

  • brute-force随机自适应封装

目前已经完成的协议包括:

Protocol

Client

Server

DNP3 (IEEE 1815)

x

x

Modbus

x

x

IEC 60870-5-104

coming soon

x

Aegis测试流程

单个的测试用例包含测试消息,支持处理一个更多的检查项目

<---> 可选健康检查项

===> 测试消息

<---> 可选健康检查项

这种策略通常会帮助测试人员确定造成目标bug的确切测试用例。有时,更复杂的错误,牵涉到微妙内存损坏或非确定性行为,则需要使用调试器或套装工具进一步调试。

简单使用步骤

Aegis的Studio 提供了以下功能 ︰

  • 装载并将测试配置保存为 XML 格式

  • 创建或编辑配置

  • 启动独立测试窗口

开源的工控协议fuzzing框架Aegis

Test Suite是测试程序的集合,允许组织您定制化的测试。你可以在Aegis的测试子目录中找到针对每个协议推荐的测试套件 ︰

  • C:\Program Files (x86)\Automatak\Aegis Fuzzer\tests

Studio第一次启动时,树视图是空的。可以加载配置通过文件菜单或通过单击新建,可以定义初始的测试套件。

开源的工控协议fuzzing框架Aegis

您可以双击任何 (由齿轮标记) 的选项来更改的值。从其默认设置修改的值被标记为粗体。可以通过右键单击并选择重置为默认值返回到其默认值的任何设置。

过程是具体的测试用例集合,可以单独配置和运行。他们在工作室主窗体中显示为套房文件夹下面的两个循环箭头。通过右键单击树中的套件节点,然后单击添加程序,可以将程序添加一套。

开源的工控协议fuzzing框架Aegis

您可以通过拖放到彼此的过程节点重新排序过程套件。每个测试过程支持若干可配置的通用选项。

开源的工控协议fuzzing框架Aegis

  • 重新打开-关闭并重新打开之前的测试通道。

  • start-开始测试一个特定测试用例的 id。

  • count-限制测试用例的数目。

  • repeats-重复指定的测试序列 (所有设置) 不止一次。

  • fill-"填充"非随机数据。

  • constant-用于常数填充模式使用的字节值。

  • seed-用于伪随机数生成器的种子。

测试就是操作、使用套件中的所有测试列表框启动独立测试窗口。默认情况下,启用所有过程,按顺序运行。您可以通过右键单击并选择禁用禁用单个测试程序。单击运行按钮启动测试序列。在运行测试时,您不能调整任何参数。

开源的工控协议fuzzing框架Aegis

顶部面板是与内置协议解码器的运行日志。你可以用鼠标右键单击日志窗口以查看可用的选项。双击日志窗口切换暂停或恢复日志。暂停状态的窗口会显示一个红色边框。

开源的工控协议fuzzing框架Aegis