当前位置:首页 > 休闲

owasp十大漏洞

2017年,漏洞一家美国信用机构Equifax被攻破,漏洞1.43亿条个人记录泄露——攻击入口不是漏洞什么高深0day,而是漏洞Apache Struts框架的一个已知漏洞,补丁早就发布了,漏洞他们没打。漏洞这就是漏洞OWASP Top 10存在的意义:它列出的不是黑客炫技的武器库,而是漏洞企业自己留的后门。

注入漏洞排第一,漏洞实至名归。漏洞SQL注入、漏洞命令注入、漏洞LDAP注入——本质就一句话:用户输入被当成代码执行了。漏洞我见过太多开发者的漏洞迷之自信:“我们用了参数化查询!”那存储过程呢?漏洞动态拼接呢?ORM的raw query呢?别笑,某大厂2021年还因为搜索框的Elasticsearch注入被拖库。防御其实不复杂:白名单校验、参数化绑定、最小权限账户——但执行起来,总有人图省事。

失效的身份认证是个老油条。撞库、弱口令、会话固定——攻击者不需要多聪明,只要你的登录接口没限速、密码没加盐、Session ID没随机化。更讽刺的是,很多系统把“记住我”功能做成了永久令牌,等于把大门钥匙挂在门口。我见过某银行App的短信验证码居然可以无限次尝试,6位数字,暴力枚举也就100万次,配合分布式代理,半小时搞定。

敏感数据泄露,这词听着温和,实际血淋淋。Equifax泄露的社保号、信用卡数据在黑市论斤卖。问题往往不在加密算法弱,而是加密没落地:数据库明文存储、备份文件不加密、API响应多返回了三个字段。GDPR罚款动辄千万欧元,但很多公司连“数据分类分级”都没做过——你连哪些数据敏感都不知道,怎么保护?

XML外部实体(XXE)是那种“知道的人觉得简单,不知道的人被搞死”的漏洞。解析器默认允许外部实体加载,攻击者传个恶意XML就能读本地文件、发起SSRF请求。2017年它排第四,现在降了,但别高兴太早——很多老系统还在用不安全的XML解析器。有个客户,内部OA系统用Java的DocumentBuilderFactory,默认配置,我传个实体就能读到服务器上的/etc/passwd,他们IT主管当场脸色发白。

失效的访问控制现在是新晋榜首(2021版)。本质是“服务器端没校验用户权限”。水平越权——你改个URL里的ID就能看别人订单;垂直越权——普通用户调个管理接口就成管理员。这类漏洞最气人,因为修复成本极低:每个请求都做一次权限校验而已。但开发时图快,前端隐藏了按钮就当安全了,后端接口裸奔。

安全配置错误是“免费午餐”。默认密码不改、错误信息暴露堆栈、目录列表开着、多余端口对外开放。我扫过一家创业公司,Redis没设密码挂在公网,里面缓存了用户手机号。运维说“内网没事”,结果云厂商的安全组配错了,整个实例裸奔在互联网上。配置审计和自动化扫描工具能解决80%的问题,但很多人连这20%的功夫都不愿花。

跨站脚本(XSS)依然是前端头号威胁。反射型、存储型、DOM型——本质是浏览器把用户输入当HTML执行了。存储型XSS最阴险:攻击者把恶意脚本存进数据库,每个用户访问页面都中招,还能偷Cookie、钓鱼、键盘记录。有个电商平台,商品评论里嵌了段脚本,所有查看评论的用户都被重定向到仿冒支付页——直到银行打电话来问“你们平台怎么有盗刷投诉”。

不安全反序列化是高级玩家的玩具。Java、Python、PHP的序列化机制都有历史包袱——反序列化时能触发任意方法调用。攻击者构造个恶意对象流,直接RCE。这漏洞不好挖,但一旦利用成功,就是服务器沦陷。防御办法很粗暴:不接收不可信数据源的反序列化,或者用白名单类过滤。可惜很多框架默认配置就是“信任一切输入”。

使用含已知漏洞的组件,这跟Equifax的案例一模一样。Log4j2的JNDI注入(Log4Shell)是2021年最疯狂的漏洞,CVSS满分10.0,全球上百万应用受影响。很多公司第一反应是“我们不用Log4j”——结果审计发现,某个内部工具链的传递依赖里就带了。组件清单管理(SBOM)不是合规负担,是保命符。

最后是日志与监控不足。这不算直接漏洞,但决定了你被攻破后多久能发现。平均检测时间(Dwell Time)是206天——黑客在你网络里住了半年多,你才发现。日志不记录关键操作、告警规则缺失、SIEM平台成了摆设。我见过一家公司,攻击者已经拿到域管权限两周了,还是因为勒索软件加密文件时才被察觉。日志不是事后诸葛亮,是唯一能还原攻击路径的证据。

OWASP Top 10不是安全圣经,它只是面镜子。照出的不是黑客多厉害,而是开发流程里的懒惰、运维配置里的疏忽、管理层对安全投入的短视。每修复一个漏洞,本质是补上工程实践里的一块短板——别等着被攻破才想起来。

分享到: