常见应用安全威胁(OWASP TOP 10) 2013
风险评估标准

风险 = 可能性 * 影响
颜色越深,说明越容易发生,影响越大
1. 注入
SQL注入就是将表单中的数据提交到应用程序后台,从而影响预定义的SQL命令执行
一个成功的SQL注入会导致下列结果
例子: username= " " 输入 or1=1or1= 这就是一个恒真命令
什么是注入: 用户的输入进入解释器
影响:
- CRUD数据
- 拖库
- OS命令
黑名单方法
最容易但同时也是最不牢靠
白名单方法
只接受我定义过的值
初级防御
- 参数化查询
- 存储过程
- 输入转义
额外防御
- 最小特权
- 白名单
2. 失效的身份认证和会话管理
1. 验证 ----你是谁?
2. 授权 ----你能做什么?
- 密码 → 密码短语
- 令牌 →ATM卡
- 指纹 →生物特征
会话之Cookie管理
- Path -受限
- Domain -空值
- secure
- httponly
- expires
密码策略
- 最小长度
- 必须包含大小写
- 必须包含数字
- 必须包含特殊字符
- 密码过期
- 密码恢复(即找回密码)
防止暴力破解
- 锁定账户 -----超出给定的次数的登录失败而锁定账户
- CAPTCHA ------阻止机器进行登录尝试
3. XSS(跨站攻击)
反射式: Pay load注入到session/request中
存储式: Pay load保存在数据库中
基于DOM: Pay load直接在客户端执行
XSS能干嘛?
- 盗取会话Cookie
- 修改当前网站的内容
- 执行有害的JavaScript代码
- DoS/DDoS攻击
- 钓鱼
- 组件僵尸网络(BEEF)
如何应对XSS
- 白名单 输入验证型
- ESAPI 输出编码型
4. 不安全的直接对象引用
当开发者把一个内部引用暴露出来的时候,比如:文件名,文件路径,数据库主键,URL或表单参数,攻击者可以操纵这些引用来访问他本来没有权限访问的资源,从而造成越权访问
应对
如果可能的话,尽量不要暴露内部的直接对象应用
使用难以预测的Key,如GUID
使用哈希令牌增加完整性校验
最后,在服务器端进权限检测
5. 安全配置错误
常犯的错误:
产品环境没有更改初始密码
没有加固操作系统/数据库/应用服务器/Web服务器等
影响:
后门
非授权访问数据
系统加固
安全基线
漏洞扫描
扫描工具(Nessus)
6. 敏感信息泄露
常犯的错误:
存储时
传输时
影响:
敏感/私人信息泄露
客户生气(信誉降低)
架构设计
哪些时敏感数据
采取保护
文件,数据库(字段)加密
标准化
使用已有的加密算法
密钥管理系统
该怎么做
采取保护
- SSL/TLS
- HSTS
- Key pinning
正确使用
- TLS1.1,1.2 ,不要使用SSL3 TLS1.0
- 保护证书
- 验证证书
7. 功能级访问控制缺失
常犯的错误:
显示你能看到的菜单
客户端控制
影响:
越权访问
该怎么做
服务器端控制
- 永远在服务器端进行服务控制,而不是客户端
- 权限检测应该应用到的所有的层
数据权限控制
- 基于角色的访问(RBAC)
- 权限控制列表(ACL)
8. 跨站请求伪造(CSRF)
什么是跨站请求伪造
- 在浏览器中执行了不想执行的动作
- SessionID attached to request
影响
- 执行敏感操作
- 访问敏感数据
该怎么做
随机令牌
- 表单
- Ajax的Request header
多次验证
9. 使用已知含有漏洞的组件
常犯的错误:
开发者只关注自己开发的代码
不甚关心使用的第三方代码安全
影响:
漏洞继承
Exploit-db5
该怎么做
自动升级
自动检测最新版本
被动通知
10. 未验证的重定向和转发
常犯的错误:
重定向和灵活
未对目标URL进行校验
影响:
钓鱼
敏感信息泄露
该怎么做
验证目标网站
站内?站外?
白名单 --站外
相对路径 --站内
目标URL 的权限
本文详细介绍了OWASP(开放式网络应用安全项目)2013年发布的十大应用安全威胁,包括注入、失效的身份认证和会话管理、XSS攻击等,并提供了风险评估标准和防御措施。通过风险=可能性*影响的公式,强调了每个威胁的严重性,还涵盖了如何防止SQL注入、密码策略、XSS防护和敏感信息泄露等关键点。
2353

被折叠的 条评论
为什么被折叠?



