HardeningMeter:一款针对二进制文件和系统安全强度的开源工具

关于HardeningMeter

HardeningMeter是一款针对二进制文件和系统安全强度的开源工具,该工具基于纯Python开发,经过了开发人员的精心设计,可以帮助广大研究人员全面评估二进制文件和系统的安全强化程度。

功能特性

其强大的功能包括全面检查各种二进制利用保护机制,包括 Stack Canary、RELRO、随机化(ASLR、PIC、PIE)、None Exec Stack、Fortify、ASAN、NX bit。此工具适用于所有类型的二进制文件,并能够提供有关每个二进制文件强化状态的准确信息,识别值得关注的二进制文件和具有强大安全措施的二进制文件。

HardeningMeter支持所有 Linux 发行版和机器可读输出,并且能够将数据输出结果以表格形式打印到屏幕上或导出到csv文件。

工具要求

1、readelf和file命令;

2、Python 3.x;

3、pip;

4、tabulate;

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目的最新版本源码克隆至本地:

git clone https://github.com/OfriOuzan/HardeningMeter.git

工具使用

工具参数

-f --file:指定需要扫描的文件,参数可以用空格分隔多个文件;

-d --directory:指定要扫描的目录,该参数检索一个目录并递归扫描所有 ELF 文件;

-e --external:指定是否要添加外部检查(默认为False);

-m --show_missing:根据顺序打印,仅打印缺少安全强化机制且需要额外注意的文件;

-s --system:指定是否要扫描系统强化方法;

-c --csv_format':指定是否要将结果保存到 csv 文件(默认情况下,结果以表格形式打印到 stdout);

执行结果

HardeningMeter 的结果以表格形式打印,包含 3 种不同的状态:

1、(X)——此状态表示二进制强化机制已被禁用;

2、(V)——此状态表示二进制强化机制已启用;

3、(-)——此状态表示二进制强化机制与此特定情况无关;

注意事项

当 Linux 上的默认语言不是英语时,请确保在调用脚本之前添加“LC_ALL=C”。

工具运行演示

扫描“/usr/bin”目录、“/usr/sbin/newusers”文件和本地系统,并将结果导出到csv文件:

python3 HardeningMeter.py -f /bin/cp -s

许可证协议

本项目的开发与发布遵循AGPL-3.0开源许可协议。

项目地址

HardeningMeter:【GitHub传送门

参考资料

https://medium.com/@ofriouzan/part-2-compiler-level-security-mechanisms-gcc-d01246b8d157

https://medium.com/@ofriouzan/part-3-kernel-level-security-mechanisms-097e8b8ecefa

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 18:08:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 18:08:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 18:08:02       45 阅读
  4. Python语言-面向对象

    2024-07-21 18:08:02       55 阅读

热门阅读

  1. Redis的过期删除策略与内存淘汰机制

    2024-07-21 18:08:02       20 阅读
  2. vivado INTERNAL_VREF

    2024-07-21 18:08:02       16 阅读
  3. 商品价格中也有“歧视”

    2024-07-21 18:08:02       15 阅读
  4. Unity3D UGUI适配不同分辨率详解

    2024-07-21 18:08:02       17 阅读
  5. 【Flask项目】文件分享系统(二)

    2024-07-21 18:08:02       17 阅读
  6. Spring框架中的设计模式:深入剖析

    2024-07-21 18:08:02       16 阅读
  7. 小程序发布流程?

    2024-07-21 18:08:02       13 阅读
  8. 软链接跟硬链接有什么区别

    2024-07-21 18:08:02       16 阅读
  9. 轻量级实现swiper造轮子思路

    2024-07-21 18:08:02       17 阅读
  10. 用 AI 来学习雅思英语写作

    2024-07-21 18:08:02       13 阅读
  11. 数据库-表的约束

    2024-07-21 18:08:02       16 阅读
  12. Python基本语法

    2024-07-21 18:08:02       18 阅读
  13. GPU算力租用平台推荐

    2024-07-21 18:08:02       20 阅读