5.6 KiB
5.6 KiB
应用安全
一、Web应用安全
了解WEB体系架构;
理解HTTP协议工作机制及明文传输数据、弱验证、无状态等安全问题;
理解SQL注入攻击的原理及危害;
了解跨站脚本安全问题的原理及危害及其他针对WEB的攻击方式;
了解WEB防火墙、网页防篡改等常见Web安全防护技术作用。二、电子邮件安全
理解电子邮件工作机制及SMTP、POP3协议;
了解电子邮件安全问题及解决方案。三、其他互联网应用
了解远程接入、域名系统、即时通讯等其他互联网应用安全问题及解决措施。
应用系统的复杂性和多样性使得安全问题也呈现出多样化的特点。
一、Web应用安全
- WEB服务器端安全问题(支撑软件、B应用程序)
- Web客户端(浏览器)
- Web协议(Http)
1、HTTP协议
-
HTTP(超文本传输协议)工作机制
请求响应模式
- HTTP请求包含三个部分(方法URL协议/版本、请求头部、请求正文)
- HTTP响应包含三个部分(协议状态代码描述、响应包头实体包)
-
HTTP协议安全问题
- 信息泄漏(传输数据明文)
- 弱验证(会话双方没有严格认证机制)
- http1.1提供摘要访问认证机制,采用MD5将用户名、密码、请求包头等进行封装,但仍然不提供对实体信息的保护。
- 缺乏状态跟踪(请求响应机制决定http是一个无状态协议)
- Session解决方案带来的安全问题
2、Web服务端软件安全问题
-
服务支撑软件安全问题
-
软件自身安全漏洞
例:IIS 5.0超长URL拒绝服务漏洞
例:Unicode解码漏洞 -
软件配置缺陷
-
默认账号、口令
-
不安全的配置
例:IIS配置允许远程写入
-
-
-
应用软件安全问题
3、Web安全防护技术
- Web防火墙
- 工作在应用层
- 基本功能
- 审计并拦截HTTP数据流
- Web应用访问控制
- Web应用加固
- 网页防篡改
- 监控Web服务器上的页面文件,防止被篡改
- 机制
- 备份文件对比
- 摘要文件对比
- 删改操作触发
- 系统底层过滤
4、典型注入攻击 - SQL注入
-
原理:程序没有对用户输入数据的合法性进行判断,使攻击者可以绕过应用程序限制,构造一段SQL语句并传递到数据库中,实现对数据库的操作。
-
可以传递到数据库的数据都是攻击对象。
-
http://www.test.com/showdetail.asp?id=49' And (update user set passwd = "123" where user name = 'admin');
- Select * from 表名 where 字段 = '49' And (update user set passwd = "123" where user name = admin)
非法的SQL语句被传递到数据库中执行!
-
5、SQL注入的危害
- 数据库信息收集
- 数据检索
- 操作数据库
- 增加数据
- 删除数据
- 更改数据
- 操作系统
- 借助数据库某些功能(例如:SQL Server的内置存储过程XP_CMDSheII)
6、SQL注入的防御
- 防御的对象:所有外部传入数据
- 用户的输入
- 提交的URL请求中的参数部分
- 从cookie中得到的数据
- 其他系统传入的数据
- 用户的输入
- 防御的方法
- 白名单:限制传递数据的格式
- 黑名单:过滤
- 过滤特殊字串:update、insert、delete等
- 开发时过滤特殊字符:单引号、双引号、斜杠、反斜杠、冒号、空字符等的字符
- 部署防SQL注入系统或脚本
7、跨站脚本
-
原理
由于程序没有对用户提交的变量中的HTML代码进行过滤或转换,使得脚本可被执行,攻击者可以利用用户和服务器之间的信任关系实现恶意攻击。
-
危害
敏感信息泄露、账号劫持、Cookie欺骗、拒绝服务、钓鱼等
-
防范
- 不允许HTML中脚本运行
- 对所有脚本进行严格过滤
8、针对WEB应用的攻击
- 失效的验证和会话管理
- 不安全的对象直接引用
- 跨站请求伪造
- 不安全的配置管理
- 不安全的密码存储
- 错误的访问控制
- 传输保护不足
- 未经验证的网址重定向
- 不恰当的异常处理
- 拒绝服务攻击
二、电子邮件安全
1、POP3/SMTP协议工作机制
- 简单的请求响应模式
2、安全问题
- 信息泄漏(用户帐号密码、邮件内容)
- 身份验证不足(社会工程学攻击、垃圾邮件)
3、安全解决
- 服务器端
- 安全邮件协议
- 使用SSL保护会话
- 安全策略
- 客户端
三、其他互联网应用
- 远程接入
- 域名系统
- 即时通信