learning center banner

什么是网络攻击?

一篇关于常见网络安全攻击方法、防御机制以及提供解决方案的文章。

网络攻击是指针对网站、网络服务或Web应用程序的恶意活动,旨在窃取数据、破坏服务、欺骗用户或其他恶意目的。在数字时代,网络安全已成为企业和个人用户不能忽视的重要问题。随着网络攻击方法的不断演变,理解和防范常见网络攻击变得尤为重要。最终目标是维护Web应用程序的顺利运行,使企业和用户能够防止网络损害、数据盗窃和不道德的竞争行为。

网络攻击的常见手段是什么?

Web应用程序可能面临多种类型的攻击,具体取决于攻击者的目标、目标组织的工作性质以及Web应用程序中的特定安全漏洞。常见的攻击类型包括:

1. DDoS攻击

分布式拒绝服务(DDoS)是一种常见的网络攻击方式。其目的是通过大量请求使服务器超负荷,直到服务器开始减慢并最终拒绝为合法用户提供服务。DDoS攻击可以以多种方式分类,但通常将其分为三种类型:

  • 1. 流量攻击:僵尸网络向资源发送大量虚假流量。这种类型的攻击可能使用ping洪水、伪造数据包洪水或UDP洪水。基于流量的攻击以每秒比特数(BPS)进行测量。
  • 2. 应用层攻击:应用层攻击利用常见请求,如HTTP GET和HTTP POST。这些攻击影响服务器和网络资源,因此可以用更少的带宽实现与其他类型DDoS攻击相同的破坏效果。在这一层中区分合法流量和恶意流量很困难,因为流量并未被伪造,因此看起来是正常的。应用层攻击以每秒请求数(RPS)进行测量。
  • 3. 网络层攻击:网络层攻击,也称为协议攻击,向目标发送大量数据包。网络层攻击不需要打开传输控制协议(TCP)连接,并且不针对特定端口。网络层攻击以每秒数据包数(PPS)进行测量。网络层攻击的示例包括:
  1. Smurf攻击:试图使用互联网控制消息协议(ICMP)数据包和利用IP漏洞在网络层上淹没服务器。
  2. SYN洪水:发起与服务器的连接而不关闭该连接,从而使服务器超负荷。此类攻击使用大量的TCP握手请求和伪造的IP地址。

虽然大多数攻击都是基于流量的,但也存在“低速慢”DDoS攻击,通过发送小而稳定的请求流来逃避检测,这些请求流可以在长时间内不被察觉地降低性能。低速慢攻击主要针对线程型Web服务器,使合法用户的数据传输速度非常缓慢,但又不至于造成超时错误。一些用于低速慢攻击的工具包括Slowloris、R.U.D.Y.和Sockstress。

2. 跨站请求伪造(CSRF)

 CSRF攻击利用了网站对用户浏览器的信任。攻击者诱导已登录用户点击链接或访问页面,从而在另一个已登录的网站上执行恶意操作,而用户对此毫不知情,使用的是用户的身份。

在成功的CSRF攻击中,攻击者使受害者用户无意中执行某个操作。例如,这可能是更改他们帐户上的电子邮件地址、更改密码或进行资金转移。根据操作的性质,攻击者可能能够完全控制用户的帐户。如果被攻击的用户在应用程序中具有特权角色,则攻击者可能能够完全控制该应用程序的所有数据和功能。要使CSRF攻击成为可能,必须具备三个关键条件:

  1. 相关操作:应用程序中有一个操作,攻击者有理由诱导。这可能是一个特权操作(例如修改其他用户的权限)或任何针对用户特定数据的操作(例如更改用户的密码)。
  2. 基于Cookie的会话处理:操作涉及发出一个或多个HTTP请求,而该应用程序仅依赖会话Cookie来识别发出请求的用户。没有其他机制用于跟踪会话或验证用户请求。
  3. 没有不可预测的请求参数:执行操作的请求不包含攻击者无法确定或猜测的参数值。例如,当导致用户更改其密码时,如果攻击者需要知道现有密码的值,则该功能就不会受到攻击者的影响。

例如,假设一个应用程序包含一个允许用户更改其帐户电子邮件地址的功能。当用户执行此操作时,他们会发出类似以下的HTTP请求:

POST /email/change HTTP/1.1
Host: vulnerable-website.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Cookie: session=yvthwsztyeQkAPzeQ5gHgTvlyxHfsAfE

email=wiener@normal-user.com

这满足CSRF所需的条件:

  1. 更改用户帐户上电子邮件地址的操作是攻击者感兴趣的。执行此操作后,攻击者通常可以触发密码重置并完全控制用户的帐户。
  2. 该应用程序使用会话Cookie来识别哪个用户发出了请求。没有其他令牌或机制来跟踪用户会话。
  3. 攻击者可以轻松确定所需执行操作的请求参数的值。

在这些条件下,攻击者可以构建一个包含以下HTML的网页:

<html>
    <body>
        <form action="https://vulnerable-website.com/email/change" method="POST">
            <input type="hidden" name="email" value="pwned@evil-user.net" />
        </form>
        <script>
            document.forms[0].submit();
        </script>
    </body>
</html>

如果受害者用户访问攻击者的网页,将发生以下情况:

  1. 攻击者的页面将触发对易受攻击网站的HTTP请求。
  2. 如果用户已登录易受攻击的网站,则他们的浏览器将自动在请求中包含其会话Cookie(假设未使用SameSite Cookies)。
  3. 易受攻击的网站将以正常方式处理请求,将其视为由受害者用户发出,并更改其电子邮件地址。

 3. 跨站脚本(XSS)

跨站脚本(也称为XSS)是一种Web安全漏洞,允许攻击者干扰用户与易受攻击应用程序之间的交互。它使攻击者能够绕过同源策略,该策略旨在将不同网站隔离开来。跨站脚本漏洞通常允许攻击者伪装成受害用户,执行用户能够执行的任何操作,并访问用户的任何数据。如果受害用户在应用程序中具有特权访问权限,攻击者可能能够完全控制应用程序的所有功能和数据。

跨站脚本通过操纵易受攻击的网站,使其向用户返回恶意JavaScript。当恶意代码在受害者的浏览器中执行时,攻击者可以完全破坏他们与应用程序的交互。 XSS攻击主要有三种类型。这些是:

反射型XSS:恶意脚本来自当前的HTTP请求。

反射型XSS是最简单的跨站脚本类型。当应用程序接收到HTTP请求中的数据并以不安全的方式将该数据包含在即时响应中时,就会产生这种情况。

以下是反射型XSS漏洞的一个简单示例:

https://insecure-website.com/status?message=All+is+well.
<p>状态:一切都很好。</p>

该应用程序没有对数据进行任何其他处理,因此攻击者可以轻松构建如下攻击:

https://insecure-website.com/status?message=<script>/*+坏东西...+*/</script>
<p>状态:<script>/* 坏东西... */</script></p>

如果用户访问攻击者构建的URL,则攻击者的脚本将在用户的浏览器中执行,在该用户与应用程序的会话上下文中。此时,脚本可以执行任何操作,并检索用户可以访问的任何数据。

存储型XSS:恶意脚本来自网站的数据库。

存储型XSS(也称为持久型或二次XSS)是在应用程序从不受信任的来源接收数据并以不安全的方式将该数据包含在其后续HTTP响应中时产生的。

相关数据可能是通过HTTP请求提交给应用程序的;例如,博客文章上的评论、聊天室中的用户昵称或客户订单上的联系信息。在其他情况下,数据可能来自其他不受信任的来源;例如,Web邮件应用程序显示通过SMTP接收的消息、营销应用程序显示社交媒体帖子或网络监控应用程序显示来自网络流量的数据包数据。

以下是存储型XSS漏洞的一个简单示例。消息板应用程序允许用户提交消息,这些消息会显示给其他用户:

<p>你好,这是我的消息!</p>

该应用程序没有对数据进行任何其他处理,因此攻击者可以轻松发送一条攻击其他用户的消息:

<p><script>/* 坏东西... */</script></p>

DOM型XSS:漏洞存在于客户端代码而非服务器端代码。

DOM型XSS(也称为DOM XSS)是在应用程序包含一些客户端JavaScript,以不安全的方式处理来自不受信任来源的数据,通常是通过将数据写回DOM来实现的。

在以下示例中,应用程序使用一些JavaScript从输入字段读取值,并将该值写入HTML中的一个元素:

var search = document.getElementById('search').value; var results = document.getElementById('results'); results.innerHTML = '您搜索的内容是:' + search;

如果攻击者可以控制输入字段的值,他们可以轻松构造一个恶意值,使他们自己的脚本执行:

您搜索的内容是:<img src=1 onerror='/* 坏东西... */'>

在典型情况下,输入字段将从HTTP请求的某部分填充,例如URL查询字符串参数,允许攻击者以恶意URL的方式发送攻击,与反射型XSS相似。

4. SQL注入攻击(SQLI)

SQL注入(SQLi)是一种Web安全漏洞,允许攻击者干扰应用程序对其数据库的查询。这可能使攻击者能够查看他们通常无法检索的数据。这可能包括属于其他用户的数据,或应用程序可以访问的任何其他数据。在许多情况下,攻击者可以修改或删除这些数据,从而对应用程序的内容或行为造成持久性更改。在某些情况下,攻击者可以将SQL注入攻击升级到危害底层服务器或其他后端基础设施。此外,它还可能使他们能够执行拒绝服务攻击。

成功的SQL注入攻击可能导致未经授权访问敏感数据,例如密码、信用卡详细信息和个人用户信息。SQL注入攻击在多起高调数据泄露事件中被使用,造成声誉损害和监管罚款。在某些情况下,攻击者可能获得进入组织系统的持久后门,导致长期的妥协,可能在很长一段时间内不被察觉。

基本SQL注入:假设应用程序的登录表单通过以下SQL查询验证用户:

SELECT * FROM users WHERE username = '$username' AND password = '$password';

如果应用程序没有正确清理用户输入,攻击者可能在用户名或密码字段中输入特殊构造的输入,例如:

' OR '1'='1

这将使SQL查询变为:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '' OR '1'='1';

因为'1'='1'始终为真,因此此查询将返回所有用户,可能导致未经授权的访问。

使用注释终止查询:攻击者可能会使用SQL注释符号--或/* */来终止查询条件的一部分,导致查询返回所有数据。例如:

' OR 1=1 -- 

这将导致查询的密码检查部分被注释掉,从而绕过安全检查。

联合查询注入:攻击者可以使用UNION运算符将其恶意查询与原始查询结合,这可能导致数据库返回额外的敏感信息。例如:

' UNION SELECT * FROM users WHERE '1' = '1

延迟注入: 攻击者可以通过插入导致数据库延迟响应的命令来测试应用程序是否易受SQL注入攻击。例如,在MySQL中:

' OR SLEEP(10) --

如果应用程序在执行此查询后延迟10秒,则可能表明它容易受到SQL注入攻击。

Web应用程序的重要防御策略是什么?

如上所述,Web应用程序受到各种手段和类型的攻击。因此,防御策略也是多样且变化的。随着系统漏洞和攻击方法的不断升级,现代互联网威胁形势非常严峻。如果没有满足其特定业务需求的某些“芯片”安全服务,任何企业、单位或个人都可能遭到攻击。

  1.  DDoS 保护 DDoS保护是指当服务因恶意流量激增而被淹没时,服务被清洗和过滤的情况。在识别到DDoS攻击时,基于实时网络流量监控,流量会立即被清洗和过滤。DDoS保护还提供基于攻击特征、行为模式分析、AI智能识别等保护算法的预设防御策略,以保持服务器稳定运行。
  2. Web 应用程序 防火墙 (WAF) WAF过滤和监控Web应用程序与互联网之间的HTTP流量,以保护Web应用程序的安全。它通常保护Web应用程序免受各种形式的攻击,例如跨站点请求伪造、跨站脚本(XSS)、文件包含和SQL注入。WAF对Web系统至关重要,因为新的漏洞出现得太快且悄无声息,几乎所有系统本身无法自动捕获它们。
  3. 机器人管理(BOT管理)它使用机器学习和其他专业检测方法来区分自动化流量和人类用户,并防止前者访问Web应用程序。
  4. 客户端安全:检查我们Web应用程序依赖的新第三方JavaScript依赖项和第三方代码的更改,帮助更快地发现恶意前端漏洞。
  5. 攻击面管理:使用攻击面管理工具映射和测试Web页面的漏洞,识别潜在的安全风险,并手动点击验证这些风险的存在。

腾讯EdgeOne如何防止Web应用程序上的网络攻击?

边缘安全加速平台EO(腾讯EdgeOne,以下简称EdgeOne)运营着一个覆盖多个城市的全球网络。它基于腾讯的边缘计算节点,提供加速和上述多种安全服务,包括DDoS保护、Web应用程序防火墙、机器人管理和其他安全解决方案。它保护电子商务和零售、金融服务、内容信息和游戏等行业,提升用户体验。

EdgeOne可以在任何数据中心操作,从而在攻击源头拦截攻击。其功能补充了网站的服务和性能,因此使用它不仅可以加速服务,还能保护它们免受更多网络攻击。此外,所有EdgeOne服务适用于各种Web基础架构,通常只需简单配置即可启动。

了解更多有关 加速服务和访问安全服务 或注册 EdgeOne。我们现在推出免费试用,点击这里联系我们以获取更多信息。