app-layer的层

2017-12-28  本文已影响237人  明翼

app-layer

AppLayerDetectProtoThreadInit:初始化应用层协议检测模块。其中,AppProtoInit函数初始化该模块所用到的多模式匹配器,RegisterAppLayerParsers函数注册各种应用层协议的解析器(如RegisterHTPParsers函数对应HTTP协议),而AppProtoFinalizeGlobal函数完成一些收尾工作,包括调用匹配器的预处理(Prepare)函数、建立模式ID和规则签名之间的映射等。
AppLayerParsersInitPostProcess:这个函数内部建立了一个解析器之间的映射,还不太懂其用途。

如果希望Suricata解析应用层协议的数据包则需要对其进行配置。包括tls、ftp、smtp、ssh、http等。下面是部分默认的配置,enable可以选择yes、no或detection-only,yes表示既解析和检测数据包,detection-only则是只检测不做额外的解析,no则不检测也不解析:

app-layer:
  protocols:
    tls:
      enabled: yes
      detection-ports:
        dp: 443

      #no-reassemble: yes
    dcerpc:
      enabled: yes
    ftp:
      enabled: yes
    ssh:
      enabled: yes
    smtp:
      enabled: yes
    imap:
      enabled: detection-only
    msn:
      enabled: detection-only

由于http协议的数据包比较复杂和常用,且它的解析器使用第三方库,因此下面对其单独说明。

libhtp

Suricata使用libhtp库对HTTP会话数据包进行解析。由于http的web服务器种类非常多导致了suricata必须处理每一种不同服务器所产生的http流量,用户在这里可以配置IP地址和web服务器种类的对应关系。可以选择的web服务器包括,默认的是IDS模式的服务器:

Minimal 
Generic 
IDS (default) 
IIS_4_0 
IIS_5_0 
IIS_5_1 
IIS_6_0 
IIS_7_0 
IIS_7_5 
Apache 
Apache_2_2

在每一种模式下可以配置IP地址、web服务器种类以及对request、response数据包大小的限制,默认的IDS模式表示所有的IP都使用这套配置。一套典型的配置如下,前面几项配置都容易理解double-decode-path和double-decode-query需要进行特殊说明。有些攻击web服务器的手法是通过在URI中加入特定的攻击字段来完成,URI由协议、主机名、端口号(大部分http协议是80端口,因此可省略)、路径和查询参数五部分组成,能够控制的便是路径和查询参数,double-decode-path和double-decode-query就是可以检查这两部分是否经过了双重URL编码。

libhtp: 
  default-config: 
    personality: IDS
    request-body-limit: 3072 
    response-body-limit: 3072 
    double-decode-path: no
    double-decode-query: no

  server-config: 
     - apache: 
         address: [192.168.1.0/24, 127.0.0.0/8, "::1"] 
         personality: Apache_2_2 
         request-body-limit: 0
         response-body-limit: 0
         double-decode-path: no
         double-decode-query: no

     - iis7: 
         address: 
           - 192.168.0.0/24 
           - 192.168.10.0/24 
         personality: IIS_7_0
         request-body-limit: 4096
         response-body-limit: 8192
         double-decode-path: no
         double-decode-query: no

上一篇 下一篇

猜你喜欢

热点阅读