网站首页 > 博客文章 正文
黑客通常利用的漏洞有:软件编写存在bug、设计存在缺陷、系统配置不当、口令失窃、嗅探未加密通讯数据、系统攻击等等,因此提前做好代码审计工作,非常大的好处就是将先于黑客发现系统的安全隐患,提前部署好安全防御措施,保证系统的每个环节在未知环境下都能经得起黑客挑战,可以进一步巩固客户对企业及平台的信赖。
何为代码审计?以及审计方式有哪些?
所谓代码审计是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析,它被认为是安全过程中最关键的阶段之一。是白盒测试的常用方法,相较于黑盒测试,由于白盒测试能更加详细的理解业务程序逻辑,也能更全面地发现安全风险。
代码安全审计通常可以分为:自动化审计和人工审计。为了实现常态化、持续性的安全能力测试,许多企业开始大量使用自动化审计的方法,一定程度上会节省成本,但需要指出的是:目前的自动化审计方式无法准确理解开发人员的代码含义,存在误报的情况,且误报率较高。而人工审计的费用较高和耗时较长(具体费用和时间与代码量有关),但是可以做到三懂:懂代码、懂业务、懂安全,因此自动化和人工审计两种方法并不是相互对立的,而是互为补充,二者并用才是业界代码安全审计的最佳实践。
代码审计流程
1.确认的源代码审计范围、最终对象、审计方式、审计要求和时间等内容。
2.先使用源代码审计的扫描工具对源代码进行扫描,完成初步的信息收集,然后由人工的方式对源代码扫描结果进行人工的分析和确认。
3.对源代码审计发现的问题整改或加固。经整改或加固后,源代码审计服务人员进行回归检查,即二次检查。
4.根据第一次和第二次的审查结果,整理源代码审计服务输出成果,最后汇报项目领导。
代码审计常见的漏洞
1. 硬编码(密码明文存储)——是指将敏感数据(包括口令和加密密钥,部分账号的密码以及其他敏感信息等)硬编码在程序中。既不安全,也难以维护:password,pass,pwd,jdbc等
2. 跨站脚本漏洞——攻击者可以利用存在XSS漏洞的Web网站攻击浏览相关网页的用户,窃取用户会话中诸如用户名和口令(可能包含在Cookie里)等敏感信息、通过插入恶意代码对用户执行挂马攻击、XSS漏洞还可能被攻击者用于网页篡改。
3. 短信验证码——时间限制防止可爆破,次数限制防止对手机产生攻击,可否自定义防止发送不良信息。
4. SQL注入——注入攻击的本质,是程序把用户输入的数据当作代码执行。sql语句中出现+,append,$(),#等拼接字眼且没有配置SQL过滤文件,则存在sql漏洞。根本解决办法是预编译,也就是sql语句事先编译好了,随后传入参数填坑,不会重新再编译,也就不会有sql注入:select,update,delete,insert等
5. 跨站请求伪装漏洞——攻击者可利用跨站请求伪装 (CSRF) 漏洞假冒另一用户发出未经授权的请求,即恶意用户盗用其他用户的身份使用特定资源。
6. 调试程序残留——代码包含调试程序,如:主函数。调试程序会在应用程序中建立一些意想不到的入口点被攻击者利用。
7. 任意文件上传——未过滤用户输入文件名,导致能够上传恶意可执行文件。需注意有没有配置文件上传白名单,是否有检查后缀名,配置文件是否设置了白名单或者黑名单:upload,write,fileName,filePath等
8. 命令执行漏洞——系统中使用了一些调用操作系统函数的命令,在调用过程中,如果命令的来源不可信,系统可能执行恶意命令。如删除系统文件。
9. 缓冲区溢出——直接拷贝或*,未考虑大小:strcpy,strcat,scanf,memcpy,memmove,memeccpy,Getc(),fgetc(),getchar,read,printf等
10. XML注入——在导入配置、数据传输接口等场景,留意XML解析器是否禁用外部实体:DocumentBuilder、XMLStreamReader、SAXBuilder、SAXParser、SAXReader 、XMLReader、SAXSource 、TransformerFactory 、SAXTransformerFactory 、SchemaFactory等
11. 日志伪造漏洞——将未经验证的用户输入写入日志。攻击者可以利用该漏洞伪造日志条目或将恶意内容注入日志。
12. URL跳转——注意是否配置了url跳转白名单:sendRedirect,setHeader,forward等
13. 敏感信息泄露及错误处理——查看配置文件是否配置了统一错误页面,如果有则不存在此漏洞,如果没有则搜索定位看是否泄露敏感信息:Getmessage,exception等
14. 反序列化漏洞——当输入的反序列化的数据可被用户控制,那么攻击者即可通过构造恶意输入,让反序列化产生非预期的对象,在此过程中执行构造的任意代码:ObjectInputStream.readObject,ObjectInputStream.readUnshared,XMLDecoder.readObject,Yaml.load,XStream.fromXML,ObjectMapper.readValue,JSON.parseObject
15. 不安全的Ajax调用——系统存在不安全的Ajax调用。攻击者能够利用该漏洞绕过验证程序或直接编写脚本调用Ajax方法实现越权操作。
最后,代码审计意义重大,是整个安全保障体系中核心又最重要的工作,往往被人们忽视。天磊卫士提示大家一定不要疏忽代码审计的重要性,防备安全隐患。有助于进一步健全安全建设体系,遵循了相关安全策略、符合安全合规的要求。
猜你喜欢
- 2024-09-09 在Bug Bounty计划中发现的十大最常见的漏洞
- 2024-09-09 RCE漏洞原理与常见场景(rce漏洞核心payload)
- 2024-09-09 Windows TCP/IP漏洞临时处理方法(windows端口漏洞)
- 2024-09-09 安全漏洞管理方法(安全管理漏洞及采取措施)
- 2024-09-09 教怎样写好一份“漏洞报告”(漏洞报送是什么)
- 2024-09-09 计算机史上最严重漏洞被公开,风险等级严重
- 2024-09-09 2017 OWASP 10大安全漏洞初版提案出炉:新增2大漏洞类型
- 2024-09-09 什么是文件包含漏洞?手把手入门白帽子(七)
- 2024-09-09 永恒无限:什么是漏洞扫描?(漏洞扫描怎么做)
- 2024-09-09 漏洞挖掘基础知识简介(漏洞挖掘技术)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)