安全攻防基础
二、欺骗攻击及防御
1. 欺骗攻击
欺骗攻击(Spoofing)是指通过伪造源于可信任地址的数据包以使一台机器认证另一台机器的复杂技术
- 主要方式:
- IP 欺骗
- DNS 欺骗
- ARP 欺骗
- TCP 会话劫持
- 路由欺骗
- ….
2. IP 欺骗
- 实现步骤:
- 确认攻击目标
- 使要冒充主机无法响应目标主机
- 猜正确的序数
- 冒充受信主机
- 进行会话
- 防止 IP 欺骗:
- 严格设置路由策略:拒绝来自网上,且声明源于本地地址的包
- 使用最新的系统和软件,避免会话序号被猜出
- 使用抗 IP 欺骗功能的产品
- 严密监视网络,对攻击进行报警
3. ARP 欺骗
实现:
由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C
ARP 欺骗防御:
- 使用静态 ARP 缓存
- IP 与 MAC 地址绑定
- ARP 防御工具
4. DNS 欺骗
实现:
如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了
DNS 欺骗防御
- 安装最新版本的 DNS 软件
- 关闭 DNS 服务递归功能
- 限制域名服务器作出响应的地址
- 限制域名服务器作出响应的递归请求地址
- 限制发出请求的地址
三、缓存溢出及其防御
1. 缓存溢出
原理:
缓存溢出攻击利用编写不够严谨的程序,通过向程序的缓存区写入超过预定长度的数据,造成缓存的溢出,从而破坏程序的堆栈,导致程序执行流程的改变
危害:
如果可精确控制内存跳转地址,就可以执行指定代码,获得权限或破坏系统
- 寻找程序漏洞
- 编制缓存溢出程序
- 精确控制跳转地址
- 执行设定的代码
- 获得系统权限或破坏系统
缓存溢出防御:
- 使用安全的字符串操作函数
- 编写安全代码
- 输入数据验证(过滤)
- 指针完整性检查
- 第三方软件防御
- ….