当前位置:首页 > 焦点

网络安全漏洞分类

2021年冬天,网络Log4j2的安全那个漏洞让全球安全团队连着通宵了好几天。一个看似普通的漏洞日志库,因为JNDI注入的分类问题,能把任意代码执行权限拱手送人。网络事后复盘时大家才发现,安全这漏洞其实属于一个很典型的漏洞类别——输入验证缺失。分类这件事,分类平时看着像学术游戏,网络真出了事才知道它决定了你往哪个方向去找补丁。安全

按漏洞的漏洞成因来分,最常见的分类有这么几类。注入类,网络包括SQL注入、安全命令注入、漏洞LDAP注入,本质都是程序把用户输入当成了代码或指令来执行。跨站脚本(XSS)也算注入的一种变体,只不过注入的是浏览器端的JavaScript。这类漏洞常年霸占OWASP Top 10,原因很简单:开发者总觉得“用户不会那么干”,但攻击者偏偏就那么干。

另一大类是访问控制缺陷。2023年我接触过一个案例,某SaaS平台的管理后台API只在前端做了按钮隐藏,后端接口压根没校验权限。任何人拿到URL就能调用管理员功能。这种叫“失效的访问控制”,在OWASP 2021版里排到了第一名。它不像注入那样有花哨的payload,但危害一点不小——你不需要攻破任何防线,因为防线根本不存在。

内存安全漏洞是另一条线。缓冲区溢出、释放后使用、空指针解引用,这些在C/C++项目里尤其多。微软和谷歌都公开说过,他们历史漏洞里约七成是内存安全问题。Chrome团队这几年推Rust重写部分组件,就是想从语言层面把这整类漏洞堵死。效果确实有,但存量代码摆在那,短期内没法全换。

还有一类容易被忽略:逻辑漏洞。比如电商平台允许负数下单、密码重置时验证码可爆破、优惠券可以无限叠加。这类漏洞没有固定的模式,扫描器基本扫不出来,全靠人工测试和对业务的理解。我见过一个投票系统,每次请求加一分,但没做频率限制,脚本跑一晚上直接把结果刷穿了。你说这算技术漏洞还是设计漏洞?边界很模糊。

按漏洞的生命周期分,又可以分为0day、1day和Nday。0day是厂商还不知道的,1day是补丁刚发布但没大规模部署的,Nday是补丁出了很久但还有人没打的。现实是,Nday才是攻击者的主力武器。永恒之蓝就是Nday,补丁早发了,但2017年照样横扫全球。所以分类不光是学术问题,它直接影响你的防御优先级——别老盯着0day恐慌,先把已知漏洞的补丁打全了再说。

从利用方式看,还有远程可利用和本地可利用的区别。远程漏洞(比如RCE)危害最大,因为它不需要任何前置条件。本地提权漏洞通常需要攻击者已经拿到一个低权限账户,但它是横向移动和持久化的关键跳板。Windows内核里那些提权漏洞,单个看可能只是“中危”,但配合钓鱼邮件里的宏病毒,就能从普通用户一路爬到SYSTEM。

分类的维度还有很多——按受影响对象分(操作系统、Web应用、移动端、IoT固件),按触发条件分(需要认证、不需要认证、需要用户交互)。每个维度背后都对应着不同的检测手段和缓解策略。搞安全的人心里得有张地图,遇到新漏洞时能快速定位它属于哪一格,然后调出对应的排查清单。没有这张地图,你就只能靠运气和直觉,而这两样东西在安全领域从来都不太靠谱。

分享到: