基于OpenAI API的恶意软件分析机器人平台

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/cwinfosec/MABP

MABP - 恶意软件分析机器人平台

MABP 是一个部分上下文感知的聊天机器人,由 GPT-3 提供支持,用于基本的静态分析任务。 目前,它可以执行以下功能:

  • 分析 PE 可执行文件
  • 收集示例的 md5、sha1、sha256 和 sha512 哈希值
  • 解析 PE、DOS 和图像可选标头
  • 解析导入的导入地址表(IAT)
  • 获取有关某些导入是否用于恶意代码的情绪分析
  • 根据分析期间收集的标准生成简单的 yara 规则
  • learn 使用命令 学习提示和技巧
  • Input> 通过区域 中的自然文本直接与 GPT-3 交互

该平台旨在简化对恶意软件样本执行基本静态分析的过程,使安全研究人员、分析师和爱好者等更容易、更容易访问。 GPT-3 的上下文感知功能确保聊天机器人能够响应各种输入并向用户提供相关信息。

安装说明

要设置 MABP,首先您需要创建一个 OPENAI_API_KEY 环境变量,并将您的 OpenAI API 密钥导出到它。

export OPENAI_API_KEY='YOUR_OPENAI_API_KEY_HERE'

requirements.txt 接下来,从with 安装所需的包 pip

pip3 install -r requirements.txt

最后,运行主脚本:

python3 ./mabp.py

如何使用

要使用 MABP,只需运行主脚本并按照提示操作即可。 您将能够通过键入“help”从可用命令列表中进行选择,以获取有关每个选项的更多信息。 当前实现了以下命令:

命令 描述
banner 显示 ASCII 艺术
learn 学习分析技巧
analyze_file 分析一个二进制文件
make_yara 生成 Yara 规则
clear 清除终端
help 显示帮助菜单
quit 或者 exit 退出脚本

聊天机器人可以通过命令行界面使用或集成到其他系统中。 要开始,只需输入您想要的分析任务并按照提示进行操作。

潜在问题

目前,进口是专门过滤的 KERNEL32.dll 。 这很可能会导致您错过其他图书馆的关键指标。 这是一个很难克服的问题,因为传递来自所有模块的所有导入很容易淹没令牌——导致分析有限,或者根本没有分析。 get_iat(binary) 如果您希望对来自其他模块的导入进行分析, 建议在函数中更改此过滤器。

def get_iat(binary):
    """ Populate a dictionary with all imports """
    iat = {}
    for imported_library in binary.imports:
        if imported_library.name == "KERNEL32.dll":

有时,MABP 可能会提供不准确或不适合某些受众的信息。 背景人格应该适应这种行为; 但是,可能性仍然存在。 这是机器学习领域内的一个更大的问题,没有立即的解决方法。 集成 OpenAI 的内容审核 API 可能会显着降低模型提供有关恶意软件和恶意软件分析的信息的能力的性能——此外,它甚至可能完全拒绝回答。 在与 MABP 交互时使用您的最佳判断,因为违反使用政策可能会导致您的帐户被 OpenAI 禁止。

TODO

  • 实施结构化日志
  • 基于flask的前端页面

贡献

如果您有兴趣为该项目做出贡献,请联系项目维护人员以获取有关如何参与的更多信息。

标签:工具分享, 二进制安全, 恶意软件