169 lines
5.6 KiB
Markdown
169 lines
5.6 KiB
Markdown
# 应用安全
|
||
|
||
> **一、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>
|
||
|
||
### 一、Web应用安全
|
||
|
||
- WEB服务器端安全问题(支撑软件、B应用程序)
|
||
- Web客户端(浏览器)
|
||
- Web协议(Http)
|
||
|
||
#### 1、HTTP协议
|
||
|
||
1. **HTTP(超文本传输协议)工作机制**
|
||
|
||
请求响应模式
|
||
|
||
- HTTP请求包含三个部分(方法URL协议/版本、请求头部、请求正文)
|
||
- HTTP响应包含三个部分(协议状态代码描述、响应包头实体包)
|
||
|
||
2. **HTTP协议安全问题**
|
||
|
||
- 信息泄漏(传输数据明文)
|
||
- 弱验证(会话双方没有严格认证机制)
|
||
- http1.1提供摘要访问认证机制,采用MD5将用户名、密码、请求包头等进行封装,但仍然不提供对实体信息的保护。
|
||
- 缺乏状态跟踪(请求响应机制决定http是一个无状态协议)
|
||
- Session解决方案带来的安全问题
|
||
|
||
#### 2、Web服务端软件安全问题
|
||
|
||
1. **服务支撑软件安全问题**
|
||
|
||
- 软件自身安全漏洞
|
||
|
||
> 例: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');
|
||
|
||
- Select * from 表名 where 字段 = '49' And (update user set passwd = "123" where user name = admin)
|
||
|
||
非法的SQL语句被传递到数据库中执行!
|
||
|
||
#### 5、SQL注入的危害
|
||
|
||
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>
|
||
|
||
- 失效的验证和会话管理
|
||
- 不安全的对象直接引用
|
||
- 跨站请求伪造
|
||
- 不安全的配置管理
|
||
- 不安全的密码存储
|
||
- 错误的访问控制
|
||
- 传输保护不足
|
||
- 未经验证的网址重定向
|
||
- 不恰当的异常处理
|
||
- 拒绝服务攻击
|
||
|
||
### 二、电子邮件安全
|
||
|
||
#### 1、POP3/SMTP协议工作机制
|
||
|
||
- 简单的请求响应模式
|
||
|
||
#### 2、安全问题
|
||
|
||
- 信息泄漏(用户帐号密码、邮件内容)
|
||
- 身份验证不足(社会工程学攻击、垃圾邮件)
|
||
|
||
#### 3、安全解决
|
||
|
||
- 服务器端
|
||
- 安全邮件协议
|
||
- 使用SSL保护会话
|
||
- 安全策略
|
||
- 客户端
|
||
|
||
### 三、其他互联网应用
|
||
|
||
- 远程接入
|
||
- 域名系统
|
||
- 即时通信
|
||
|