C/C++知识点之C/CPP代码审计
小标 2018-08-10 来源 : 阅读 1932 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C/CPP代码审计,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C/CPP代码审计<splint/flawfinder>,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

前几天偶然接触到了一个代码审计产品,公司创建者是前阿里巴巴安全总监。结局的感想就是:代码审计工具这个行业,果然不是那么轻易立足的。

        纵然网上五花八门的代码审计工具排名,fortify的主流地位也是没有人质疑的。然而在实际使用过程中,面对C/CPP时,商业级的fortify处理结果却并不是很理性。

        废话不多说,进入今天的正题,今天为大家介绍两款C/CPP代码审计工具的安装和使用,安装方式和平台固然很多,<我不是懒吗/逃>,在这里为大家介绍最简单实用的安装方式和平台选择,希望可以为C/CPP编程狗</???>大佬们提供安全开发方面的帮助。

<splint>

        splint是一个GNU免费授权的 Lint程序,是一个动态检查C语言程序安全弱点和编写错误的程序。Splint会进行多种常规检查,包括未使用的变量,类型不一致,使用未定义变量,无法执行的代码,忽略返回值,执行路径未返回,无限循环等错误。

        链接:https://pan.baidu.com/s/1kiufqPElB1zlEv05ZdwiGA 密码:xjyb

        安装:后期可根据需求提供其它平台安装方式,在此只介绍 windows平台下的安装并附上永久下载链接。

        1.首先解压。如果解压到C:/splint-3.1.1则不用调整环境变量。可执行文件在bin下。  

        如果放到其它路径下,需要修改环境变量。在用户变量中加上  

        LARCH_PATH - <你安装splint的路径>/lib   

        LCLIMPORTDIR - <你安装splint的路径>/imports   

        include - 系统include文件所在的目录。

       (其实include这个参数是从谷歌一个论坛下找的,说的很模糊,实验的结果就是include参数指向了VC++6.0下的include,,不知道这样做是灵性还是蠢,欢迎指正  /逃)

        2.在用户变量Path中加上splint.exe所在的路径,方便以后调用。  

        3.使以上的修改生效:注销当前用户然后再次登录。



 



        附上成果和-help信息,客户体验说下,该工具更倾向于检验语法错误,其实这个功能编译器也在做,但是角度不同,splint的角度是安全开发角度。

        另外值得吐槽的时,如果你include了自定义头,splint会直接报错,当然这也是的的确确可以理解的。

 

<flawfinder>

        flawfinder让我先吐槽两句平复下内心,其实网上有各种安装包,当然官方也有,好端端的下载,解压,安装,,,然后你就会发现各种官方没提到的依赖问题</???像我这么蠢的还有仨,官方没有考虑到吗???>

        flawfinder的优势是词法扫描和分析,内嵌了一些漏洞数据库,如缓冲区溢出、格式化串漏洞等,扫描快,按照代码中漏洞的风险等级对漏洞进行划分,可以快速找到存在的问题,误报较高。

        在周转了各个平台之后,windows/parrot/kali/centos。。。。。。最终,居然Ubuntu的官方源里有安装包。

        喏,就这一句话~

        sudo apt-get install flawfinder

        然而吐槽这么多,并没有让在读的你少走弯路的意思,只是提供了最偷懒的途径。我也喜欢走弯路,走别人没走过,没走通的路,或许这个过程才是我们真正享受的呢。

        咳咳,正题!

        

 



        截不全就截不全吧,我们可从-help中看到它的大部分功能了。

        这里说下客户体验:算的上伪商业级的代码审计工具了,换句话说,误报几率还是挺大的,但是结果进行了很好的分类统计,并进行安全风险等级评估,命令行界面做到这种程度也是良心了。

        喏,工具介绍就到这里啦。如有不足,欢迎指正。    

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 3
看完这篇文章有何感觉?已经有5人表态,40%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程