安全漏洞通常指硬件、软件、协议的具体实现或系统安全策略上存在的风险。
攻击者可以利用安全漏洞在未授权的情况下访问或破坏系统,造成经济损失、数据损失等。
漏洞会影响非常多的软硬件设备,包括作系统本身及其支撑软件,网络客户和服务器软件,网络路由器和安全防火墙等。换而言之,在这些不同的软硬件设备中都可能存在不同的安全漏洞问题。在不同种类的软、硬件设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。
漏洞问题是与时间紧密相关的。一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。漏洞问题也会长期存在。
因此脱离具体的时间和具体的系统环境来讨论漏洞问题是毫无意义的。只能针对目标系统的作系统版本、其上运行的软件版本以及服务运行设置等实际环境来具体谈论其中可能存在的漏洞及其可行的解决办法。
同时应该看到,对漏洞问题的研究必须要跟踪当前最新的计算机系统及其安全问题的最新发展动态。这一点如同对计算机病毒发展问题的研究相似。如果在工作中不能保持对新技术的跟踪,就没有谈论系统安全漏洞问题的发言权,即使是以前所作的工作也会逐渐失去价值。
以上,为OWASP TOP10。OWASP十大漏洞每五年更新一次。
OWASP(开放式Web应用程序安全项目)是一个开放的社区,由非营利组织 OWASP基金会支持的项目。对所有致力于改进应用程序安全的人士开放,旨在提高对应用程序安全性的认识。
其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结并更新Web应用程序中最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。
最重要的版本。
缓存溢出
这个问题一般出现在用较早的编程语言、如C语言编写的程序中,这种编程错误其实也是由于没有很好地确定输入内容在内存中的位置所致。
缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。
绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区,又被称为“堆栈”,在各个操作进程之间,指令会被临时储存在“堆栈”当中,“堆栈”也会出现缓冲区溢出。
注入式攻击
如果没有成功地阻止带有语法含义的输入内容,有可能导致对数据库信息的非法访问,在Web表单中输入的内容应该保持简单,并且不应包含可被执行的代码。 常见的如sql注入,表单注入等
异常错误处理
当错误发生时,向用户提交错误提示是很正常的事情,但是如果提交的错误提示中包含了太多的内容,就有可能会被攻击者分析出网络环境的结构或配置。
404没有页面
500服务器执行但失败,存在风险点
403权限禁止,如爬虫拒绝 反爬虫
不安全的存储
对于Web应用程序来说,妥善保存密码、用户名及其他与身份验证有关的信息是非常重要的工作,对这些信息进行加密则是非常有效的方式,但是一些企业会采用那些未经实践验证的加密解决方案,其中就可能存在安全漏洞。
数据库加密存储(MD5,AES,DES对称函数加密/对称密钥加密) 存储策略 数据库接口安全性(比如PDO接口)
程序拒绝服务攻击
与拒绝服务攻击 (DoS)类似,应用程序的DoS攻击会利用大量非法用户抢占应用程序资源,导致合法用户无法使用该Web应用程序。
如网络层的ddos攻击,应用曾的cc攻击。
不安全的配置管理
有效的配置管理过程可以为Web应用程序和企业的网络架构提供良好的保护。
如权限管理等。
四、漏洞权威平台的发布
漏洞发布平台有很多,权威的也不少,本文只针对软件研发人员介绍国际上权威的两个漏洞发布平台。
CWE(Common Weakness Enumeration ,通用缺陷枚举)
CWE是由美国国家安全局首先倡议的战略行动。在CWE站点上列有800多个编程、设计和架构上的错误,CWE文档首先列举的是针对程序员最重要的25项(Top 25),同时也是软件最容易受到攻击的点,从而帮助他们编写更安全的代码。同时文档还适用于软件设计师、架构师、甚至CIO,他们应该了解这些可能出现的弱点,并采取恰当的措施。
OWASP(Open Web Application Security Project ,开源web应用安全项目)
OWASP是由一个开放性社区倡议的项目,致力于帮助各组织开发、购买和维护可信任的应用程序。Top10项目的目标是通过确定企业面临的最严重的威胁来提高人们对应用安全的关注度。使用OWASPTop10可以让企业了解到应用安全。开发人员可以从其他组织的错误中学习。执行人员能开始思考如何管理企业中软件应用程序产生的风险。
常见的漏洞跟踪手段有:
企业微信的CVE推送由管理员设置,视企业管理而定。
漏洞跟踪网站可参考