《物联网安全》第4章 网络攻防实例

第4章 网络攻防实例 复习总结

✨本章重点:拒绝服务攻击Dos、DDoS

知识总览


1️⃣ 拒绝服务攻击

1.1 DoS与DDoS基本概念

  • DoS(拒绝服务):任何使服务可用性降低或丧失的行为(如带宽耗尽、系统崩溃、硬盘填满)。
  • DDoS(分布式拒绝服务):利用C/S架构,控制大量代理机(肉机)同时向目标发起DoS攻击,成倍提升威力。
  • DDoS体系:攻击者 → 主控端(发布命令) → 代理端(实际发包) → 攻击目标。

1.2 经典DoS攻击实例

攻击名称 攻击原理 防御方法
Ping of Death 发送长度超过65535字节的ICMP碎片包,重组时导致TCP/IP堆栈缓冲区溢出崩溃。 升级系统阻断超大包;防火墙阻断ICMP及未知协议分组。
Jolt2 发送大量相同碎片化IP包(偏移量65520,总长超65535),导致系统死锁。 打补丁;边界禁止碎片包通过/限速;确保防火墙重组算法正确。
Land 发送SYN包,源IP=目的IP,源端口=目的端口(均为目标自身),导致系统不断自我回应形成空连接。 打补丁;防火墙过滤从外部进入且含内部源地址的包。
SYN Flood 发送大量伪造源IP 的SYN请求,目标回应SYN/ACK后等待ACK(形成半开连接),耗尽资源。 缩短SYN Timeout;设置SYN Cookie;限制半开连接数量;丢弃重复SYN包。

1.3 放大攻击

  • Smurf :发送源地址为目标机、目的地址为广播地址的ICMP Echo包。网络内所有主机向目标机回复,导致目标被淹没。
  • Fraggle :原理同Smurf,但使用的是UDP包。
  • 防御:禁止路由器IP广播功能;过滤边界路由器的回音应答包。

1.4 常见DDoS攻击方式

  1. SYN Flood:占满半开连接队列。
  2. UDP Flood:大量伪造源IP的小UDP包冲击服务器(如DNS服务器)。
  3. ICMP Flood:大流量ICMP包增加服务器负载。
  4. Connection Flood:用真实IP建立大量连接且长期不释放,占满WAIT状态连接。
  5. HTTP Get:与服务器建立正常TCP连接,不断提交耗费数据库资源的查询(绕过普通防火墙,但易暴露IP)。
  6. UDP DNS Query Flood:发送大量随机/不存在的域名解析请求,导致DNS服务器超时。

1.5 DDoS工具与防御

  • TFN2K特征:主控端与代理端通信加密;支持多种攻击;守护进程名编译时指定(隐蔽)。
  • 防御策略:及早发现漏洞打补丁;关闭不必要服务;加装防火墙过滤数据包;优化路由和网络结构;安装入侵检测系统(IDS)。

2️⃣ 典型系统安全威胁

2.1 缓冲区溢出

  • 原理:向缓冲区填充数据超过其容量,溢出数据覆盖合法数据。
  • 根本原因 :C/C++中数组和指针没有边界检查
  • 直接结果:程序失败、死机、执行非授权指令、取得系统特权。
  • 经典案例:Heartbleed (心血漏洞)
    • 成因 :OpenSSL未对memcpy()调用进行边界检查。攻击者在Heartbeat请求中发送1字节有效负载,但声明长度为65535字节,导致服务器每次泄露64KB内存内容(含密码、密钥等)。
    • 修复:加入边界检查,使用正确的长度记录。
  • 防范 :安装补丁;编写安全代码(检查变量大小/边界);设置安全策略隐藏系统信息(如改写inetd.confrc.local)。

2.2 SQL注入攻击

  • 原理 :构造特殊SQL语句插入查询参数中,改变原SQL逻辑,实现越权访问。
    • ... and itemname = 'name' or 'a'='a' (恒真条件绕过)。
  • 防范措施
    1. 权限严格区分:普通用户与管理员权限分离,禁用Drop等危险权限。
    2. 参数化语句:用户输入不直接嵌入SQL,通过参数传递(杜绝大部分注入)。
    3. 输入验证与过滤:测试类型、长度、格式;利用存储过程拒绝特殊符号(如分号、注释符)。
    4. 使用安全参数 :如SQL Server的Parameters集合(类型检查+长度验证)。
    5. 多层验证:客户端与数据库端双重校验。
    6. 漏洞扫描工具:寻找可能被注入的点。

3️⃣ 恶意软件

为恶意目的开发的软件,利用漏洞或用户天真造成损坏/欺骗。

  • 分类:后门、Rootkit、间谍软件、木马、逻辑炸弹、蠕虫、犯罪软件、病毒、广告软件、机器人(僵尸)。

4️⃣ TCP/IP网络安全威胁

4.1 IP与MAC欺骗

  • IP欺骗 :假冒他人IP发送数据包。防范:IP/MAC/端口绑定。
  • MAC欺骗 :假冒他人MAC地址,导致交换机MAC地址表映射错乱(将发往A的包发给B)。
    • 防范:MAC与端口静态绑定(手工/自动);改变地址学习策略(优先保持原有映射不立即更新);设置端口地址学习优先级。

4.2 ARP欺骗 (ARP毒药)

  • 原理:ARP缓存表会被非法修改。攻击者假冒网关或目标主机的MAC地址回应ARP请求,实现数据监听/篡改。
  • 关键 :必须实现双向欺骗(同时欺骗网关和主机)。
  • 防范 :主机静态绑定网关MAC (arp -s);网关IP+MAC绑定;使用ARP服务器。

4.3 ICMP欺骗

  • 攻击方式
    1. 死亡之Ping:超大ICMP包致崩溃。
    2. 路由重定向欺骗:发送伪造的ICMP重定向报文,改变主机路由表,将数据引向攻击者。
    3. 穿透防火墙:利用IP源路径选项,使报文绕过防火墙规则到达内部主机。
  • 防范 :路由器关闭相关ICMP响应(如ICMP redirect disable);主机配置不处理ICMP重定向消息。

4.4 路由欺骗

  • RIP路由欺骗:RIP协议不验证路由更新,攻击者声称自己有最快路由,诱使数据经其转发。
  • IP源路由欺骗:在IP包中指定源路由路径,绕过防火墙/信任关系验证。
  • 防范:路由器验证路由可达性;抛弃外部流入的内部主机报文;关闭源路由功能。

4.5 IP包碎片攻击

  • 原理:IP分片偏移量/长度矛盾,导致重组异常。
  • TearDrop:发送偏移量重叠的碎片,导致系统崩溃(蓝屏)。
  • Jolt2:死循环发送ICMP/UDP碎片,致系统死锁并增加网络流量。
  • 防范:打补丁;边界禁止碎片包/限速;确保防火墙重组算法安全。

4.6 TCP攻击集锦

攻击类型 攻击原理与过程 防御策略
SYN Flooding 大量伪造SYN请求占满TCP半开连接队列,阻止正常连接。 缩短Timeout,SYN Cookie,限制半开连接数。
初始序号(ISN)预测 TCP连接基于序列号,若能预测目标主机的ISN,即可伪造合法数据包。 使用随机化ISN:ISN = M + F(连接标识符+随机数)
端口扫描 探测目标开放的端口和服务。 1. Connect()扫描:全连接,易被发现。 2. SYN扫描:半开连接,较隐蔽。 3. FIN扫描:关闭端口回RST,打开端口忽略(区分Unix/NT)。 4. 慢速扫描:延时间隔长,躲避IDS检测(如Netcat工具)。 统计分析流量;审查IDS日志寻找长周期规律扫描。
Land攻击 同1.2,源目IP/端口一致,自我死循环。 补丁升级;防火墙过滤源目地址相同的包。
TCP欺骗 非盲攻击 :同一网络,用嗅探器抓取序列号。 盲攻击:不同网络,需预测序列号,难度大。 随机化ISN;路由器拒绝外网源内网IP包;TCP段加密。
TCP会话劫持 结合嗅探+欺骗,在正常连接建立后,强行接管会话(预测Seq/Ack,插入恶意数据)。 分中间人攻击(MITM)和注射式攻击。 使用交换式网络防嗅探(但Hunt等工具仍可劫持);加密(IPsec/SSH/HTTPS)
RST攻击 伪造带RST位的TCP包发给服务器,服务器清空合法用户的连接。 防火墙丢弃带RST位的异常包。
FIN攻击 伪造FIN包,让目标误以为通信结束,丢弃后续数据。 Anti-DDoS设备检查会话状态与序列号,丢弃异常FIN/RST包。

5️⃣ 应用层安全

5.1 E-Mail欺骗

  • 目的:隐藏身份;冒充他人;社会工程学(如冒充老板索要机密)。
  • 手段:内容欺骗(冒充管理员);程序攻击(附带木马)。

5.2 DNS欺骗/攻击

  • Hosts文件篡改:修改本地Hosts文件,将域名指向错误IP(常用于屏蔽网站或恶意劫持)。
  • 本机DNS劫持:拦截解析请求,返回假IP或无响应。
  • DNS序列号(ID)欺骗
    • 原理:DNS查询包有标识ID。攻击者嗅探到ID,抢在真实DNS服务器前发送伪造的应答包(预测ID+1),客户端接收伪造包并丢弃晚到的真实包。
    • 限制:不能替换缓存中已存在的记录(但可累加A记录);受缓存刷新时间(TTL)限制。
  • 防御 :使用最新DNS软件/补丁;关闭DNS递归功能;保护内部设备;手动指定Hosts;使用IDS;使用DNSSEC(数字签名验证,未来方向)

5.3 网络钓鱼

  • 原理:伪造Web站点/邮件,诱使用户输入敏感信息(账号、密码、信用卡)。不是独立技术,而是社会工程学+技术的诈骗。
  • 实现步骤
    1. 申请相似域名和空间(如 yaho.com 代替 yahoo.com)。
    2. 复制目标网站登录页HTML代码,修改表单提交地址指向攻击者服务器。
    3. 编写后台脚本存储窃取的账号密码。
  • 防范:硬件级保护(U盾/动态令牌);验证工商红盾/ICP标志;仔细核对URL域名。

模拟复习题

一、 单项选择题

1. Smurf攻击和Fraggle攻击的共同特点是( )

A. 都利用TCP协议建立半开连接

B. 都利用广播地址进行攻击放大

C. 都是针对应用层的HTTP Get攻击

D. 都需要攻击者预测TCP序列号

【答案】B

解析:Smurf发送源地址为目标机的ICMP Echo包到广播地址,Fraggle发送的是UDP包到广播地址,两者都是利用广播地址将攻击放大,让网络内所有主机向目标机回复,从而淹没目标机。

2. 著名的Heartbleed(心脏滴血)漏洞产生的主要原因是没有对memcpy()调用进行边界检查,这属于哪种典型的系统安全威胁?( )

A. SQL注入攻击

B. 缓冲区溢出攻击

C. IP包碎片攻击

D. 恶意软件感染

【答案】B

解析 :Heartbleed漏洞是由于OpenSSL未对memcpy()的长度参数进行边界检查,导致攻击者可以读取超出合法范围的内存数据(每次64KB),这属于典型的缓冲区溢出攻击。

3. 在TCP端口扫描技术中,通常被认为是"半开放"扫描,且一般不会在目标计算机上留下完整连接记录的扫描方式是( )

A. TCP connect() 扫描

B. UDP ICMP端口不能到达扫描

C. TCP SYN 扫描

D. TCP FIN 扫描

【答案】C

解析:TCP SYN扫描只发送SYN包,若收到SYN/ACK则表示端口开放,扫描者随后发送RST关闭连接,而不完成完整的三次握手,因此称为"半开放"扫描,不易在系统日志中留下完整连接记录。

4. DNS序列号(ID)欺骗攻击的核心原理是( )

A. 篡改本地主机的Hosts文件

B. 伪造DNS应答包,抢在真实DNS服务器之前将虚假IP返回给客户端

C. 向DNS服务器发送大量不存在的域名解析请求耗尽其资源

D. 修改DNS服务器的域数据库内容

【答案】B

解析:DNS ID欺骗是攻击者嗅探到客户端的DNS请求包ID后,抢在真实DNS服务器回应前,发送带有相同ID的伪造应答包,客户端接收先到达的假包而丢弃后到达的真包。A是Hosts篡改,C是UDP DNS Query Flood,D是内应攻击。


二、 判断题(共3题)

5. 缓冲区溢出攻击的根本原因在于C/C++语言中数组和指针缺乏边界检查。( )

【答案】正确(√)

解析:PPT原文明确指出,缓冲区溢出攻击的根本原因就是C/C++中数组和指针没有边界检查,假设数据长度总是与所分配的储存空间相匹配。

6. 要完成一次有效的ARP欺骗,关键点是只需要欺骗目标主机即可,不需要欺骗网关。( )

【答案】错误(×)

解析 :要完成一次有效的ARP欺骗的关键点是双向欺骗,也就是说欺骗者必须同时对网关和主机进行欺骗,才能截获双向的通信数据。

7. 在TCP欺骗攻击中,"盲攻击"是指攻击者与被欺骗的目的主机在同一个网络上,可以简单地使用嗅探器捕获TCP报文段从而获得序列号。( )

【答案】错误(×)

解析 :能使用嗅探器捕获TCP报文段获得序列号的属于非盲攻击(在同一网络)。盲攻击是攻击者与目标不在同一网络,无法使用嗅探器,只能依靠TCP初始序列号预测技术。


三、 简答题(共3题)

8. 简述SYN Flood拒绝服务攻击的原理,并提出至少三种有效的防御方法。

【答案要点】

  • 原理 :利用TCP三次握手缺陷。攻击者向目标发送大量伪造源IP的SYN请求,目标机回应SYN/ACK后等待客户端回复ACK。由于源IP是伪造的(不在线或不可达),目标机无法收到ACK,导致大量半开连接驻留在内存中,耗尽TCP连接队列资源,使其无法处理正常的合法请求。
  • 防御方法 (任选3点即可):
    1. 缩短SYN Timeout(连接等待超时)时间;
    2. 设置SYN Cookie;
    3. 设置路由器和防火墙,限制单位时间内发往主机的半开TCP连接数量;
    4. 根据源IP记录SYN连接,丢弃短时间内重复SYn报文的IP包。

9. 针对SQL注入式攻击,请列举出至少四种有效的预防措施。

【答案要点】(任选4点即可)

  1. 权限严格区分:普通用户与系统管理员用户的权限要有严格的区分,限制普通用户的Drop等危险权限。
  2. 强迫使用参数化语句:用户输入的变量不直接嵌入SQL语句,而是通过参数传递,杜绝大部分注入。
  3. 加强用户输入验证:测试输入的大小、类型、格式,过滤分号、注释符等特殊符号。
  4. 使用数据库自带安全参数:如SQL Server的Parameters集合,提供类型检查和长度验证,将输入视为字符值而非可执行代码。
  5. 多层环境验证:客户端与数据库端双重验证,不盲目信任前端数据。
  6. 使用专业漏洞扫描工具寻找可能被攻击的点。

10. 简述TCP会话劫持攻击的原理及其最有效的防范手段。

【答案要点】

* 原理 :攻击者作为第三方介入已经建立TCP连接的两台主机之间。通过嗅探获取双方通信的TCP报文,推算出下一个数据包的序号(SEQ)和确认序号(ACK SEQ)。然后冒充其中一方,在合法主机发送数据前,抢先向另一方发送带有正确序号的伪造TCP数据包,从而接管(劫持)当前的TCP会话,而合法主机的后续数据包则因序号不匹配被拒绝。

* 最有效的防范手段加密。包括使用IPsec/VPN进行网络层加密,或使用SSH替代Telnet、HTTPS替代HTTP等应用层加密,使攻击者无法窥探和伪造有效的TCP报文。

相关推荐
德迅云安全-小潘1 小时前
数字化浪潮下,企业如何选型云场景DDoS防护方案?
网络
阿文的代码库1 小时前
用于事件驱动系统的WebSocket
网络·websocket·网络协议
Sombra_Olivia1 小时前
Vulhub 中的 cmsms CVE-2019-9053 & CVE-2021-26120
安全·web安全·网络安全·渗透测试·vulhub
Hotchip_MEMS1 小时前
韬τ定律的技术内核:逻辑折叠与信息路径重构
人工智能·物联网
路在旁边2 小时前
RTOS vs 裸机
物联网·iot
数字护盾(和中)2 小时前
攻击链识别:企业抵御快攻型勒索攻击的关键能力
网络·安全·web安全
志栋智能2 小时前
超自动化运维:如何降低人为错误?
大数据·运维·网络·人工智能·自动化
都市放羊2 小时前
网络小白自学网工——因特网与网络互联技术
网络·笔记·自学
云天AI实战派2 小时前
2026 跨境出海全流程实战:独立开发者如何用开源工具搭建落地页、订阅支付、客服工单与多语言 SEO 闭环
人工智能·安全·chatgpt·个人开发·独立开发·跨境出海