最近发现了一个有趣的WAF Hihttps。 Github地址是  //github.com/qq4108863/hihttps and website is //hihttps.com which says it has :

无监督学习自主对抗

himqtt / hihttps是具有基本功能的免费Web应用程序防火墙和IoT MQTT防火墙。它支持传统的安全规则检测(例如SQL注入,XSS,恶意漏洞扫描,密码暴力破解,CC,DDOS等),更重要的是,它是对机器收集的样本的无监督学习,可自动生成对抗规则。 点击下载免费版本的CentOS 


重新定义网络安全

If more than 99% of the samples are all in the form of //www.hihttps.com/hihttps.html?id=123, then the following URLs will be considered as attacks:
//www.hihttps.com/hihttps.html?id=123 ‘or 1 =’ 1
//www.hihttps.com/hihttps.html?id=1234567890&t=123
//www.hihttps.com/hihttps.html?id=abc
机器深度学习是防御未知攻击和0DAY漏洞的有效方法,但是还有很长的路要走。

它还提供了 免费版 供CentOS下载。我决定尝试一下它的工作方式。实际上,CentOS中的免费版本很容易安装,并且效果很好。我没有尝试其他规则,例如mod_security的规则,但是基于默认设置,它可以防御使用Qualys VM扫描模拟的某些攻击。 

下载免费版本– Hihttps WAF

可以从以下位置下载 //hihttps.gitee.io/down.html。这是一个15MB的tar文件。文件名是hihttps.tar.gz

我正在使用Firezilla将其上传到Azure云中的CentOS服务器。

一个上传,仅使用命令  “tar –zxvf hihttps.tar.gz”  提取到任何目录。有3个核心文件和3个目录:
1. hihttps是一个支持centos 64位系统的可执行文件。
2. hihttps.cfg是一个配置文件,例如端口/反向代理服务器IP等。
3. ml.cfg是机器学习配置文件。
4.规则目录是对抗规则,包括OWASP SQL注入,XSS,CC,DDOS,密码破解,恶意扫描和机器学习自主对抗规则。
5.火车目录是无监督的机器学习样本收集目录。
6.日志目录用于放置警报日志。

默认 嗨https配置

默认配置在hihttps.cfg文件中。默认情况下,hihttps将前端配置为默认绑定端口443(HTTPS)和端口81(HTTP),以及端口80进行反向代理连接:

https: // serverip / <==> http://127.0.0.1/
http: // serverip: 81 / <==> http://127.0.0.1/

注意:serverip是服务器的实际IP地址或域名。这将是我的CentOS的公共IP和域。

如果您在实验室环境或vmware虚拟机中进行测试,或者服务器上没有Web服务器,请先安装nginx或apache,尽管这不是必需的:
yum install nginx或yum install httpd,打开浏览器http:// serverip /,确认对端口80的访问成功。

My Lab 嗨https配置

如前所述, hihttps打开两个Web端口81和443。请注意,443必须绑定到PEM格式证书。默认情况下,提供了一个名为server.pem的数字证书。如果是这样,请用源服务器的真实性证书替换它。配置如下:

默认 https.cfg:

前端网
模式http
绑定:81
default_backend s_default

前端web_ssl
模式http
绑定:443 ssl crt server.pem #PEM证书建议使用绝对路径,例如/home/xxx/server.pem

default_backend s_default
errorloc302 400 http://www.hihttps.com/ # *** Redirect the webpage, 上 ly DROP blocking mode works

#真实的后端WEB服务器端口
后端s_default
模式http
服务器server_default 127.0.0.1:80

我的配置:前端端口为80,后端端口为81。

[[email protected] hihttps]$ cat hihttps.cfg
global
  pidfile  /var/run/hihttps.pid
        maxconn 5000
        user root
  group root
  tune.ssl.default-dh-param 2048

defaults
         模式http 
        timeout connect 120s
        timeout client 120s
        timeout server 120s
        option http-server-close

frontend web
   模式http 
        bind    :80
        default_backend s_default

frontend web_ssl
         模式http 
        bind :443 ssl crt server.pem     
        default_backend s_default
        errorloc302 400 //opc1.fabiandinkins.com/           

backend s_default
        mode                    http
        server          server_default 127.0.0.1:81

[[email protected] hihttps]$

启动Hihttps


[[email protected] ~]$ cd hihttps/
[[email protected] hihttps]$ ls
hihttps  hihttps.cfg  log  logs  ml.cfg  README.txt  rules  server.pem  train
[[email protected] hihttps]$ ./hihttps
++++++++++++++++++++++++++++++++++++++++++++The OWASP ModSecurity Core Rules++++++++++++++++++++++++++++++++++++++++++++
ruleid:20               severity:'CRITICAL'             LOGIN Brute Force Password test
ruleid:20               severity:'CRITICAL'             LOGIN Brute Force Password test
ruleid:22               severity:'CRITICAL'             CC and DDOS test
ruleid:913100           severity:'CRITICAL'             Found User-Agent associated with security scanner
ruleid:913110           severity:'CRITICAL'             Found request header associated with security scanner
ruleid:913120           severity:'CRITICAL'             Found request filename/argument associated with security scanner
ruleid:913101           severity:'CRITICAL'             Found User-Agent associated with scripting/generic HTTP client
ruleid:941100           severity:'CRITICAL'             XSS Attack Detected via libinjection
ruleid:942100           severity:'CRITICAL'             SQL Injection Attack Detected via libinjection
+++++++++++++++++++++++++++++++++++++++++++++++++++end+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
******************************************Machine 学习for Automatic Defence Rules*********************************
1        URL=/hihttps.html
*********************************************************end***********************************************************
hihttps config file is /home/netsec/hihttps/hihttps.cfg ,start ok......

如果未显示任何错误或警报消息,并且显示启动正常……,则它正在运行。 

检查端口

[[email protected] hihttps]$ netstat -lntp | grep 80
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -
[[email protected] hihttps]$

如果您想将其放入后台运行,只需添加&在命令末尾。 您还可以使用以下命令将控制台的输出导出到日志文件:
./hihttps>> log.txt &





参考文献

通过 约翰

发表评论