当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 项目收获总结--MyBatis的知识收获
  • linux在ssh的时候询问,yes or no 如何关闭
  • 自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection
  • Python爬虫进阶----2(细心,耐心才能爬好)
  • PostgreSQL的Json数据类型如何使用
  • Flask校验
  • Ansible服务实现自动化运维
  • 微信小程序开发入门指南
  • 在STM32嵌入式中C/C++语言对栈空间的使用
  • Matlab Git管理
  • shell 条件语句
  • 不同类型的指针变量进行++操作的效果
  • allure_pytest:AttributeError: ‘str‘ object has no attribute ‘iter_parents‘
  • MongoDB文档整理
  • JavaScript:节流与防抖
  • 【个人向】《HTTP图解》阅后小结
  • download使用浅析
  • Druid 在有赞的实践
  • flask接收请求并推入栈
  • Hibernate最全面试题
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JAVA并发编程--1.基础概念
  • Linux gpio口使用方法
  • Material Design
  • maya建模与骨骼动画快速实现人工鱼
  • MD5加密原理解析及OC版原理实现
  • Node项目之评分系统(二)- 数据库设计
  • Python爬虫--- 1.3 BS4库的解析器
  • web标准化(下)
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 关于springcloud Gateway中的限流
  • 深度学习中的信息论知识详解
  • 微信小程序设置上一页数据
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 带你开发类似Pokemon Go的AR游戏
  • # Maven错误Error executing Maven
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #APPINVENTOR学习记录
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (03)光刻——半导体电路的绘制
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (区间dp) (经典例题) 石子合并
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (五)关系数据库标准语言SQL
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (译) 函数式 JS #1:简介
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • **PHP分步表单提交思路(分页表单提交)
  • .form文件_一篇文章学会文件上传