常见网络安全攻击手段及防御措施
1. 跨站脚本(XSS)
Precise Security 近期的一项研究表明,跨站脚本攻击大约占据了所有攻击的 40%,是最为常见的一类网络攻击。但尽管最为常见,大部分跨站脚本攻击却不是特别高端,多为业余网络罪犯使用别人编写的脚本发起的。
跨站脚本针对的是网站的用户,而不是 Web 应用本身。恶意黑客在有漏洞的网站里注入一段代码,然后网站访客执行这段代码。此类代码可以入侵用户账户,激活木马程序,或者修改网站内容,诱骗用户给出私人信息。
设置 Web 应用防火墙(WAF)可以保护网站不受跨站脚本攻击危害。WAF 就像个过滤器,能够识别并阻止对网站的恶意请求。购买网站托管服务的时候,Web 托管公司通常已经为你的网站部署了 WAF,但你自己仍然可以再设一个。
2. 注入攻击
开放 Web 应用安全项目(OWASP)新出炉的十大应用安全风险研究中,注入漏洞被列为网站最高风险因素。SQL 注入方法是网络罪犯最常用的注入手法。
注入攻击方法直接针对网站和服务器的数据库。执行时,攻击者注入一段能够揭示隐藏数据和用户输入的代码,获得数据修改权限,全面俘获应用。
保护网站不受注入攻击危害,主要落实到代码库构建上。比如说,缓解 SQL 注入风险的首选方法就是始终尽量采用参数化语句。更进一步,可以考虑使用第三方身份验证工作流来外包你的数据库防护。
3. 模糊测试
开发人员使用模糊测试来查找软件、操作系统或网络中的编程错误和安全漏洞。然而,攻击者可以使用同样的技术来寻找你网站或服务器上的漏洞。
采用模糊测试方法,攻击者首先向应用输入大量随机数据(模糊)让应用崩溃。下一步就是用模糊测试工具发现应用的弱点。如果目标应用中存在漏洞,攻击者即可展开进一步漏洞利用。
对抗模糊攻击的最佳方法就是保持更新安全设置和其他应用,尤其是在安全补丁发布后不更新就会遭遇恶意黑客利用漏洞的情况下。
4. 零日攻击
零日攻击是模糊攻击的扩展,但不要求识别漏洞本身。此类攻击最近的案例是谷歌发现的,他们在 Windows 和 Chrome 软件中发现了潜在的零日攻击。
在两种情况下,恶意黑客能够从零日攻击中获利。第一种情况是,如果能够获得关于即将到来的安全更新的信息,攻击者就可以在更新上线前分析出漏洞的位置。第二种情况是,网络罪犯获取补丁信息,然后攻击尚未更新系统的用户。这两种情况下,系统安全都会遭到破坏,至于后续影响程度,就取决于黑客的技术了。
保护自己和自身网站不受零日攻击影响最简便的方法,就是在新版本发布后及时更新你的软件。
5. 路径(目录)遍历
路径遍历攻击不像上述几种攻击方法那么常见,但仍然是任何 Web 应用的一大威胁。
路径遍历攻击针对 Web root 文件夹,访问目标文件夹外部的未授权文件或目录。攻击者试图将移动模式注入服务器目录,以便向上爬升。成功的路径遍历攻击能够获得网站访问权,染指配置文件、数据库和同一实体服务器上的其他网站和文件。
网站能否抵御路径遍历攻击取决于你的输入净化程度。这意味着保证用户输入安全,并且不能从你的服务器恢复出用户输入内容。最直观的建议就是打造你的代码库,这样用户的任何信息都不会传输到文件系统 API。即使这条路走不通,也有其他技术解决方案可用。
6. 分布式拒绝服务(DDoS)
DDoS 攻击本身不能使恶意黑客突破安全措施,但会令网站暂时或永久掉线。卡巴斯基实验室《2017 年 IT 安全风险调查》指出,单次 DDoS 攻击可令小企业平均损失 12.3 万美元,大型企业的损失水平在 230 万美元左右。
DDoS 旨在用请求洪水压垮目标 Web 服务器,让其他访客无法访问网站。僵尸网络通常能够利用之前感染的计算机从全球各地协同发送大量请求。而且,DDoS 攻击常与其他攻击方法搭配使用;攻击者利用 DDoS 攻击吸引安全系统火力,从而暗中利用漏洞入侵系统。
保护网站免遭 DDoS 攻击侵害一般要从几个方面着手。首先,需通过内容分发网络(CDN)、负载均衡器和可扩展资源缓解高峰流量。其次,需部署 Web 应用防火墙(WAF),防止 DDoS 攻击隐蔽注入攻击或跨站脚本等其他网络攻击方法。
分类:
- SYN Flood
- DNS Query Flood
- HTTP Flood (CC)
7. 中间人攻击
中间人攻击常见于用户与服务器间传输数据不加密的网站。作为用户,只要看看网站的 URL 是不是以 HTTPS 开头就能发现这一潜在风险了,因为 HTTPS 中的 “S” 指的就是数据是加密的,缺了 “S” 就是未加密。
攻击者利用中间人类型的攻击收集信息,通常是敏感信息。数据在双方之间传输时可能遭到恶意黑客拦截,如果数据未加密,攻击者就能轻易读取个人信息、登录信息或其他敏感信息。
在网站上安装安全套接字层(SSL)就能缓解中间人攻击风险。SSL 证书加密各方间传输的信息,攻击者即使拦截到了也无法轻易破解。现代托管提供商通常已经在托管服务包中配置了 SSL 证书。
8. 暴力破解攻击
暴力破解攻击是获取 Web 应用登录信息相当直接的一种方式。但同时也是非常容易缓解的攻击方式之一,尤其是从用户侧加以缓解最为方便。
暴力破解攻击中,攻击者试图猜解用户名和密码对,以便登录用户账户。当然,即使采用多台计算机,除非密码相当简单且明显,否则破解过程可能需耗费几年时间。
保护登录信息的最佳办法,是创建强密码,或者使用双因子身份验证(2FA)。作为网站拥有者,你可以要求用户同时设置强密码和 2FA,以便缓解网络罪犯猜出密码的风险。
9. 使用未知代码或第三方代码
尽管不是对网站的直接攻击,使用由第三方创建的未经验证代码,也可能导致严重的安全漏洞。
代码或应用的原始创建者可能会在代码中隐藏恶意字符串,或者无意中留下后门。一旦将 “受感染” 的代码引入网站,那你就会面临恶意字符串执行或后门遭利用的风险。其后果可以从单纯的数据传输直到网站管理权限陷落。
想要避免围绕潜在数据泄露的风险,请让你的开发人员分析并审计代码的有效性。此外,确保所用插件(尤其是 WordPress 插件)及时更新,并定期接收安全补丁:研究显示,超过 1.7 万个 WordPress 插件(约占研究当时采样数量的 47%)两年内没有更新。
10. 网络钓鱼
网络钓鱼是另一种没有直接针对网站的攻击方法,但我们不能将它排除在名单之外,因为网络钓鱼也会破坏你系统的完整性。根据 FBI《互联网犯罪报告》的说法,其原因在于网络钓鱼是最常见的社会工程网络犯罪。
网络钓鱼攻击用到的标准工具就是电子邮件。攻击者通常会伪装成其他人,诱骗受害者给出敏感信息或执行银行转账。此类攻击可以是古怪的 419 骗局(属于预付费欺诈类骗局),或者涉及假冒电子邮件地址、貌似真实的网站和极具说服力用语的高端攻击。后者以鱼叉式网络钓鱼之名广为人知。
缓解网络钓鱼骗局风险最有效的办法,是培训员工和自身,增强对此类欺诈的辨识能力。保持警惕,总是检查发送者电子邮件地址是否合法,邮件内容是否古怪,请求是否不合常理。另外,谨记:天上不会掉馅饼,事出反常必有妖。
11. CC攻击
CC = Challenge Collapsar,意为 “挑战黑洞”,其前身名为 Fatboy 攻击,是利用不断对网站发送连接请求致使形成拒绝服务的目的。业界赋予这种攻击名称为 CC(Challenge Collapsar,挑战黑洞),是由于在 DDOS 攻击发展前期,绝大部分都能被业界知名的 “黑洞”(Collapsar)抗拒绝服务攻击系统所防护,于是在黑客们研究出一种新型的针对 http 的 DDOS 攻击后,即命名 Challenge Collapsar,声称黑洞设备无法防御,后来大家就延用 CC 这个名称至今。有趣的是,黑洞(现改名为 ADS)后来也能全面防御 CC 攻击,但这个段子中的攻防较量仍然被传为一段佳话。CC 攻击是 DDOS(分布式拒绝服务)的一种,相比其它的 DDOS 攻击 CC 似乎更有技术含量一些。这种攻击你见不到真实源 IP,见不到特别大的异常流量,但造成服务器无法进行正常连接。最让站长们忧虑的是这种攻击技术含量低,利用更换 IP 代理工具和一些 IP 代理一个初、中级的电脑水平的用户就能够实施攻击。因此,大家有必要了解 CC 攻击的原理及如果发现 CC 攻击和对其的防范措施。
12. 恶意软件
指在计算机上执行恶意任务的病毒、蠕虫、木马等。可以说恶意软件是最普遍的网络攻击。恶意软件本身就是一种病毒,蠕虫,后门或漏洞攻击脚本,它通过动态改变攻击代码,可以逃避入侵检测系统的特征检测。攻击者常常利用这种多变代码进入互联网上一些带有入侵侦测的系统入侵警告系统。
13. 浏览器攻击
攻击者试图通过网络浏览器破坏计算机的攻击方式,属于常见的攻击类型之一。攻击者通常选择一些合法但易被攻击的网站,利用恶意软件感染网站,每当有新的访问者浏览网站时,受感染的站点就会通过浏览器中的漏洞将恶意软件植入到访问者的计算机中,从而进行破坏。
14. 蠕虫病毒
一种常见的计算机病毒。传播途径主要通过网络和电子邮件。蠕虫病毒是自带的程序,它时根据自身功能进行拷贝复制或它的某些部分通过网络连接到其他的计算机系统中,不需要计算机用户之间产生交集,最主要它的感染速度非常快。
15. 物理攻击
通常以比较原始的攻击方式摧毁计算机,比如直接盗走装有重要资源的计算机。
16. 内部人员攻击
俗称 “内鬼” 发动攻击也是我们应该想到的一种攻击方式,通常 “内鬼” 可以凭借自身权限窃取和滥用访问凭据,窃取客户数据或对外泄露敏感信息。
17. DNS隧道
DNS 隧道利用 DNS 协议在端口 53 上进行非 DNS 流量通信。它通过 DNS 发送 HTTP 和其他协议的流量。使用 DNS 隧道有各种正当的理由。但是,也存在出于恶意原因使用 DNS 隧道 VPN 服务的情况。攻击者可能会利用 DNS 隧道将出站流量伪装成 DNS,隐藏通常通过互联网连接共享的数据。在用于恶意用途时,攻击者操纵 DNS 请求,将数据从受感染系统泄露到攻击者的基础设施。此外,攻击者还将其用于从攻击者基础设施到受感染系统的命令与控制回调。
18. CSRF攻击
CSRF 攻击全称 跨站请求伪造 (Cross site request forgery)
。是一种对网站的恶意利用, CSRF 是通过伪装来自受信任用户的请求去利用受攻击的网站。
攻击者盗用了访问用户的身份,以访问者的名义向第三方网站发送恶意请求,常用于利用访问者的身份发送消息,进行交易转账以及盗取账号。
19. 文件上传漏洞
很多网站都有上传的功能,如上传图片、文件、压缩包等等。而这些资源往往是保存在远端服务器上。文件上传攻击指的就是攻击者利用一些站点没有对文件类型做很好的校验,上传了可执行的文件或脚本,并且通过脚本对服务器进行一定的权限操作,或是通过诱导外部用户访问该脚本文件,达到攻击的目的。
当然,这种攻击防护上也是比较简单,为了防止用户上传恶意的可执行脚本文件,以及将文件上传服务器当做免费的文件存储服务器来使用,我们需要对上传文件的类型进行白名单校验,并且需要限制上传文件的大小,上传的文件需要进行重新命名,使攻击这无法猜测到上传文件的访问路径。
其中对上传文件的类型进行白名单校验,并不能单单通过后缀名称来判断文件的类型,因为攻击者很有可能可以通过将可执行文件的后缀名称改为其他可上传的后缀名称进行上传,因为判断文件类型就需要使用更加安全的方式。
很多类型的文件,其实的几个字节内容是固定的,因此根据这几个字节的内容,就可以确定文件类型,而这几个字节也被成为 魔数
。
20. 扫描攻击
扫描不是彻底的网络攻击,而是攻击前的侦察。攻击者使用广泛使用的扫描工具来探测面向公众的系统,以便更好地了解现有的服务,系统和安全性。
端口扫描器 用于确定系统开放端口的简单工具。存在几种类型,其中一些旨在防止被扫描目标的检测。
漏洞扫描程序 收集有关目标的信息,并将其与已知的安全漏洞进行比较。结果是系统上已知漏洞及其严重性的列表。