常见网络攻击类型及防护手段

文章目录

常见网络攻击类型及防护手段

之前写过一遍网络安全的文章[一文大白话讲清楚web常见的攻击方式和应对策略],由于时间问题,类型和方案讨论相对较少,这篇文章做一个补充(https://blog.csdn.net/xiaobangkeji/article/details/144771218?spm=1011.2415.3001.5331)

网络攻击是指利用网络漏洞或技术手段,对网络系统、设备、数据或用户进行未授权访问、破坏、窃取或干扰的行为。以下按攻击目标和原理分类,详细阐述常见攻击类型及防护手段。

一、拒绝服务攻击(DoS/DDoS)

攻击原理

通过大量恶意流量或请求占用目标系统的资源(带宽、CPU、内存等),使其无法响应正常用户的请求,最终导致服务瘫痪。

  • DoS(Denial of Service):单点发起攻击,流量规模有限,易被拦截。
  • DDoS(Distributed DoS):利用大量被控制的"僵尸机"(肉鸡)分布式发起攻击,流量规模大(可达数百Gbps),危害极强。

常见攻击形式

  • 网络层DDoS:如SYN Flood(伪造大量TCP连接请求,耗尽服务器半连接队列)、UDP Flood(发送海量UDP数据包,占用带宽)。
  • 应用层DDoS:如CC攻击(模拟正常用户发送大量复杂HTTP请求,耗尽应用服务器资源,如反复刷新动态页面)。

防护手段

  1. 流量清洗与分流

    • 部署抗DDoS设备(如黑洞路由、流量清洗中心),通过特征识别过滤恶意流量。
    • 利用CDN(内容分发网络)分散流量,减少源站直接暴露的风险。
  2. 资源扩容与负载均衡

    • 采用集群部署和负载均衡(如Nginx、F5),将流量分散到多台服务器。
    • 动态扩容云服务器(如AWS Auto Scaling),应对突发流量高峰。
  3. 规则防护

    • 防火墙或WAF配置阈值限制(如单IP每秒请求数上限),拦截高频恶意IP。
    • 针对SYN Flood,启用TCP半连接队列优化或SYN Proxy(代理处理TCP握手)。

二、注入攻击(SQL注入、命令注入等)

攻击原理

攻击者通过在用户输入(如表单、URL参数)中插入恶意代码(如SQL语句、系统命令),欺骗服务器执行非预期操作,窃取或篡改数据。

常见攻击形式

  • SQL注入 :在登录表单的"用户名"字段输入' OR '1'='1--,可能绕过验证直接登录(拼接后的SQL语句条件恒为真)。
  • 命令注入 :在调用系统命令的输入点插入命令。例如,若服务器代码用ping $user_input执行命令,输入8.8.8.8; rm -rf /可能导致文件被删除。

防护手段

  1. 输入验证与过滤

    • 对用户输入进行严格校验(如长度、格式、类型),仅允许符合规则的字符。
    • 使用"白名单"机制(允许的字符/格式),而非"黑名单"(易被绕过)。
  2. 参数化查询(防SQL注入核心)

    • 数据库操作时,使用参数化语句(如SQL的PreparedStatement、Python的sqlite3参数绑定),将用户输入作为数据而非代码解析。
    • 示例(安全的SQL):SELECT * FROM users WHERE username=? AND password=?(参数通过占位符传入)。
  3. 最小权限原则

    • 数据库账户仅授予必要权限(如查询操作不授予DROPDELETE权限),降低攻击影响。
  4. 禁用危险功能

    • 关闭应用中不必要的系统命令调用(如PHP的exec()、Python的os.system());若必须使用,严格过滤输入中的特殊字符(如;|&)。

三、跨站脚本攻击(XSS)

攻击原理

攻击者向网页中注入恶意JavaScript代码,当其他用户访问该页面时,代码在用户浏览器中执行,窃取Cookie、会话ID或诱导用户操作(如转账)。

常见攻击形式

  • 存储型XSS :恶意代码被存储在服务器(如数据库、评论区),所有访问该页面的用户都会触发(如论坛评论注入<script>stealCookie()</script>)。
  • 反射型XSS :恶意代码通过URL参数传递,服务器直接"反射"到页面中(如http://example.com/search?query=<script>...</script>),仅诱导用户点击链接时触发。
  • DOM型XSS :恶意代码不经过服务器,直接通过客户端JavaScript操作DOM执行(如document.write(location.hash),攻击者构造#<script>...</script>)。

防护手段

  1. 输入过滤与输出编码

    • 对用户输入的HTML、JavaScript标签进行过滤(如移除<script>onclick等危险标签/属性)。
    • 输出到页面时,对特殊字符进行编码(如将<转为&lt;>转为&gt;),使恶意代码无法被浏览器解析。
  2. 内容安全策略(CSP)

    • 在HTTP响应头中设置Content-Security-Policy,限制脚本的加载和执行来源(如仅允许同源脚本)。
    • 示例:Content-Security-Policy: default-src 'self'; script-src 'self'(仅允许加载本站的脚本)。
  3. HttpOnly与Secure属性

    • 对敏感Cookie(如session_id)设置HttpOnly,禁止JavaScript通过document.cookie读取,防止XSS窃取。
    • 结合Secure属性,确保Cookie仅通过HTTPS传输。

四、跨站请求伪造(CSRF)

攻击原理

攻击者诱导已登录目标网站的用户,在不知情的情况下向该网站发送恶意请求(如转账、修改密码),利用用户的身份权限执行操作(依赖浏览器自动携带Cookie的特性)。

攻击示例

用户登录银行网站(bank.com)后,被诱导访问攻击者的恶意页面(evil.com),页面自动提交表单:

html 复制代码
<form action="https://bank.com/transfer" method="POST">
  <input type="hidden" name="to" value="attacker">
  <input type="hidden" name="amount" value="10000">
</form>
<script>document.forms[0].submit();</script>

浏览器会自动携带bank.com的Cookie,银行服务器误认为是用户操作,执行转账。

防护手段

  1. CSRF Token验证

    • 服务器在用户会话中生成随机Token(如csrf_token=xyz123),嵌入表单或请求头。
    • 客户端提交请求时必须携带该Token,服务器验证Token与会话中的值是否一致,不一致则拒绝请求。
  2. SameSite Cookie属性

    • 在Cookie中设置SameSite=Strict(禁止第三方网站携带Cookie)或SameSite=Lax(仅允许部分安全请求携带),从根源阻止Cookie被滥用。
  3. 验证Referer/Origin头

    • 服务器检查请求的Referer(来源URL)或Origin(来源域名),仅允许来自信任域名(如bank.com)的请求。

五、中间人攻击(MITM)

攻击原理

攻击者在通信双方(如用户与服务器)之间插入"中间节点",拦截、篡改或窃取通信数据,而双方可能误以为在直接通信。常见场景:公共WiFi、未加密的HTTP连接。

攻击流程

  1. 用户请求连接服务器(如http://example.com);
  2. 攻击者拦截请求,伪装成用户向服务器发送请求;
  3. 服务器响应后,攻击者拦截响应,伪装成服务器向用户发送(可篡改内容);
  4. 双方通信的数据(如账号密码)被攻击者窃取。

防护手段

  1. 强制使用HTTPS

    • HTTPS通过TLS加密传输数据,并使用数字证书验证服务器身份,防止数据被篡改或窃取。
    • 配置HSTS(HTTP Strict Transport Security)响应头,强制浏览器仅通过HTTPS连接(避免HTTP降级攻击)。
  2. 证书验证

    • 客户端(如浏览器)严格验证服务器证书的有效性(是否过期、是否由可信CA颁发),拒绝无效证书的连接。
  3. 加密通信工具

    • 敏感通信使用VPN(虚拟专用网络)或端到端加密工具(如Signal、Telegram Secret Chat),避免数据在公共网络中暴露。

六、密码攻击

攻击原理

通过破解用户密码获取账户访问权限,常见手段包括:

  • 暴力破解:尝试所有可能的字符组合(效率低,适用于短密码)。
  • 字典攻击 :使用预先准备的密码字典(如常见密码123456password)批量尝试。
  • 彩虹表攻击:通过预计算的哈希值与目标密码哈希比对,快速破解(针对未加盐的哈希)。

防护手段

  1. 强密码策略

    • 强制用户设置复杂密码(长度≥8位,包含大小写字母、数字、特殊字符),并定期更换。
  2. 哈希加盐存储

    • 服务器不存储明文密码,而是对密码进行哈希处理(如SHA-256),并加入随机"盐值"(Salt),使彩虹表失效。
    • 示例:hash = SHA256(password + salt)(盐值需随机且唯一,与哈希值一同存储)。
  3. 账户锁定与验证码

    • 连续多次输错密码后,暂时锁定账户(如10分钟)或要求输入图形验证码,阻止自动化破解工具。
  4. 双因素认证(2FA)

    • 除密码外,要求用户提供第二重验证(如短信验证码、谷歌验证器、硬件Key),即使密码泄露,攻击者仍无法登录。

七、恶意软件攻击

攻击原理

恶意软件(Malware)是指具有恶意功能的程序,通过感染设备窃取数据、破坏系统或控制设备。

常见类型

  • 病毒:依附于其他文件,通过复制传播,破坏文件或系统(如CIH病毒)。
  • 蠕虫:无需宿主文件,可自主通过网络传播(如勒索蠕虫WannaCry,利用永恒之蓝漏洞)。
  • 木马:伪装成正常软件,窃取敏感信息(如远程控制木马灰鸽子)。
  • 勒索软件:加密用户文件,要求支付赎金才解密(如Locky、Ryuk)。

防护手段

  1. 终端安全软件

    • 安装杀毒软件(如卡巴斯基、火绒)或EDR(终端检测与响应)工具,实时监控并清除恶意软件。
  2. 系统与软件更新

    • 及时修复操作系统和应用软件的漏洞(如Windows Update、浏览器补丁),避免被蠕虫或勒索软件利用(如WannaCry依赖未修复的SMB漏洞)。
  3. 安全意识培训

    • 禁止点击不明邮件附件、下载非官方软件;开启文件扩展名显示,警惕伪装为"图片.exe"的木马。
  4. 数据备份

    • 定期备份重要数据(离线备份+云备份),即使被勒索软件加密,也可通过备份恢复,无需支付赎金。

八、ARP欺骗(局域网攻击)

攻击原理

在局域网中,攻击者通过发送伪造的ARP(地址解析协议)报文,篡改目标设备的ARP缓存(IP与MAC地址映射表),使目标的流量被转发至攻击者设备,实现监听或断网。

攻击示例

  • 攻击者向局域网内的主机发送"网关IP对应的MAC是攻击者MAC"的伪造ARP包,主机的流量会被发送到攻击者设备,再由攻击者转发至真正的网关(监听数据)。

防护手段

  1. 静态ARP绑定

    • 在主机和路由器中手动绑定IP与MAC地址(如Windows使用arp -s 192.168.1.1 AA-BB-CC-DD-EE-FF),防止ARP缓存被篡改。
  2. ARP防火墙

    • 安装ARP防火墙工具(如360ARP防火墙),监控并拦截异常ARP报文(如频繁发送的伪造包)。
  3. VLAN隔离

    • 将局域网按功能划分VLAN(虚拟局域网),限制ARP报文的传播范围,减少攻击影响。

总结

网络攻击形式多样,但核心目标通常是窃取数据、破坏服务或控制设备。防护需采用"多层防御"策略:

  • 技术层面:部署防火墙、WAF、杀毒软件,启用HTTPS、CSRF Token、密码加盐等机制;
  • 管理层面:定期安全审计、漏洞扫描,加强员工安全培训(如识别钓鱼邮件);
  • 应急层面:制定应急预案,定期数据备份,确保攻击发生后能快速恢复。

通过"预防-检测-响应"的闭环管理,可最大限度降低网络攻击的风险。

相关推荐
YF云飞5 小时前
游戏行业DDoS攻防实战指南
游戏·ddos
上海云盾-高防顾问1 天前
DDoS 防护的未来趋势:AI 如何重塑安全行业?
人工智能·安全·ddos
wanhengidc2 天前
DDOS攻击和CC攻击对服务器的伤害有哪些?
运维·服务器·ddos
fatsheep洋2 天前
XSS的原型链污染1--原型链解释
前端·xss
千码君20163 天前
计算机网络:什么是任播
计算机网络·负载均衡·ddos·cdn·dns·任播·智能路由
看天走路吃雪糕3 天前
sqli-labs:Less-28a关卡详细解析
select·sql注入·union·联合查询注入·sqli-labs·less-28a
样子20183 天前
PHP 之使用HTMLPurifier过滤XSS
开发语言·前端·php·xss
看天走路吃雪糕4 天前
sqli-labs:Less-24关卡详细解析
sql注入·sqli-labs·less-24·二次排序注入
看天走路吃雪糕4 天前
sqli-labs:Less-23关卡详细解析
sql注入·sqli-labs·报错盲注·less-23·注释符