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