【IDS场景模拟】suricata检测HTTPS流量

这篇具有很好参考价值的文章主要介绍了【IDS场景模拟】suricata检测HTTPS流量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、如何实现检测?

针对HTTPS流量来说,毕竟不是攻击流量,而是互联网通信的标配,所以服务器端是可以解密的,解密后变成明文HTTP协议,就可以很好地实现入侵检测了。所以,要处理HTTPS流量,最关键的是,先解密HTTPS数据包,才对其进行入侵检测,通常的解决方案有两种:一是直接在代码层面进行检测,对用户输入进行检测判断。第二种方案就是通过配置HTTPS反向代理的方式来进行检测,如下图所示:

suricata tls证书,IDS,https,网络协议,http,wireshark

二、构造实验环境

1、一台客户机,模拟客户端发送HTTPS请求给Nginx服务器,此IP地址为:192.168.101.1

2、一台Nginx服务器,该Nginx配置HTTPS证书,并反向代理到远程Tomcat主机,此IP地址为:192.168.112.170

3、一台Tomcat服务器,docker拉取Tomcat,不配置HTTPS证书,将8080端口映射到8848端口,IP地址为:192.168.112.149

4、在Nginx或Tomcat任意一台服务器上安装Suricata,均可对Tomcat的流量进行入侵检测或防御。本次安装在Tomcat服务器中。

整个过程的通信过程如下:

suricata tls证书,IDS,https,网络协议,http,wireshark

三、配置Tomcat服务器

在Tomcat服务器上安装MySQL与Tomcat,并部署WoniuSales在此,同时在该服务器上安装Suricata,实现对Tomcat流量的检测

一、部署靶场

1、拉取mysql镜像

docker pull mysql:5.6

suricata tls证书,IDS,https,网络协议,http,wireshark

2、挂载部署mysql

docker run --name mysql01 -p 3303:3306 --privileged=true -v /usr/local/mysql01/data:/var/lib/mysql -v /usr/local/mysql01/logs:/logs -v /usr/local/mysql01/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

suricata tls证书,IDS,https,网络协议,http,wireshark

3、使用docker拉取tomcat镜像文件

docker pull daocloud.io/library/tomcat:8.5.15-jre8

suricata tls证书,IDS,https,网络协议,http,wireshark

4、部署tomcat镜像为容器

docker run -d -p 8848:8080 --name mytomcat -v /usr/local/mytomcat01/webapps:/usr/local/tomcat/webapps --privileged IMAGE-ID

#注意需要换成你自己的IMAGE-ID docker images 查看id

suricata tls证书,IDS,https,网络协议,http,wireshark

3、启动容器

docker start mytomcat

suricata tls证书,IDS,https,网络协议,http,wireshark

4、部署woniusales靶场项目

将WoniuSales1.4.war包 上传到Tomcat服务器的/usr/local/mytomcat01/webapps目录下,重启Tomcat后,会在/usr/local/mytomcat01/webapps 生成一个 文件夹 WoniuSales1.4

5、修改数据库配置

vim /usr/local/mytomcat01/webapps/WoniuSales1.4/WEB-INF/classes/db.properties

suricata tls证书,IDS,https,网络协议,http,wireshark

配置自己的服务器地址和端口,设置mysql数据库密码

6、创建数据库

6.1、使用navicat连接docker中的MySQL数据库,主机端口账号密码就是上一步设置的。

suricata tls证书,IDS,https,网络协议,http,wireshark

6.2、新建数据库 数据库名称是 woniusales 字符集编码是 utf8 排序规则 utf8_bin

suricata tls证书,IDS,https,网络协议,http,wireshark

6.3、点亮数据库,将 woniusales1.4.sql 拖入

suricata tls证书,IDS,https,网络协议,http,wireshark

6.4、运行完毕后点击刷新,即可看到user数据表

suricata tls证书,IDS,https,网络协议,http,wireshark

7、重启docker中的tomcat,即可在浏览器访问该靶场

docker restart mytomcat

http://192.168.101.149:8848/WoniuSales1.4/

suricata tls证书,IDS,https,网络协议,http,wireshark

二、安装suricata

1、二进制安装

yum install epel-release yum-plugin-copr
yum copr enable @oisf/suricata-6.0
yum -y install suricata

2、启动suricata

suricata  -c  /etc/suricata/suricata/yaml  -i ens33

3、排除启动存在的问题

suricata启动时候需要加载规则,从主配置文件中可以看到规则目录,默认的规则文件路径是/var/lib/suricata/rules,但是这个目录是不存在的,需要自己创建目录,同时rule-files指定suricata.rules文件也是不存在。如果安装之后立即启动就会报错

suricata自带的规则文件存放在/etc/suricata/rules,这里有许多配置好的规则文件,所以我们需要在主配置文件中按照如下进行修改,同时在/etc/suricata/rules目录下面创建一个文件suricata.rules,保存主文件的变更

#default-rule-path: /var/lib/suricata/rules
default-rule-path: /etc/suricata/rules
rule-files:
  - suricata.rules

还需要在suricata.rules文件中,增加一条规则,如:

alert http $EXTERNAL_NET any <> $HOME_NET 80 (msg:"出现404错误"; content: "404"; http_stat_code; sid: 561001;)

接下来使用命令行启动,则可以看到如下提示/;

[root@Tomcat-suricata suricata]# suricata -c suricata.yaml -i ens33
23/3/2024 -- 15:50:08 - <Info> - Configuration node 'HOME_NET' redefined.
23/3/2024 -- 15:50:08 - <Notice> - This is Suricata version 6.0.17 RELEASE running in SYSTEM mode
23/3/2024 -- 15:50:08 - <Notice> - all 2 packet processing threads, 4 management threads initialized, engine started.

四、配置Nginx服务器

1、安装Nginx服务器,确保在编译时支持SSL模块

yum install -y nginx

如果提示没有可用软件包 nginx,则需要安装epel,之后重新安装Nginx即可。

yum -y install epel-release

suricata tls证书,IDS,https,网络协议,http,wireshark

因为Nginx位于第三方的yum源里面,而不在CentOs官方yum源里面。

suricata tls证书,IDS,https,网络协议,http,wireshark

2、为Nginx生成证书

2.1、先确认openssl是否已经安装好
OpenSSL1.0.2k-fips 26Jan2017
2.2、生成私钥,需要输入密码,如123456
openssl genrsa -des3 -out server.pass.key 2048
2.3、去除私钥中的密码
openssl rsa -in server.pass.key -out server.key
2.4、生成CSR证书,注意最后必须是localhost
openssl req -new-key server.key -out server.csr -subj "/C=CN/ST=BeiJing/L=BeiJing/O=dev/OU=dev/CN=localhost"
2.5、生成SSL证书
openssl x509 -req -days 365-in server.csr -signkey server.key -out server.crt
2.6、最终只需要三个文件:server.crt, server.csr, server.key,将上述三个文件复制到/etc/nginx/目录下

3、修改nginx.conf配置文件(先做好备份)

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    # 添加该upstream节点实现反向代理到Tomcat
    upstream mytomcat {
        server 192.168.101.149:8848 weight=1;
    }
    # 添加server节点,定义SSL证书路径,端口,转发地址等
    server {
        listen       443 ssl;
        server_name  localhost;
        ssl_certificate      "server.crt";
        ssl_certificate_key  "server.key";
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        # 配置网站目录
        location / {
            root   html;
            index  index.html index.htm;
        }
        location /WoniuSales1.4/ {
            proxy_pass http://192.168.101.149:8848/WoniuSales1.4/;
            proxy_redirect default;
        }
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
                    

4、重启Tomcat和Nginx,即可访问Nginx服务器

Tomcat服务器:docker restart mytomcat

Nginx服务器:systemctl restart nginx

suricata tls证书,IDS,https,网络协议,http,wireshark

五、使用Wireshark抓包

在Nginx上登录靶场

suricata tls证书,IDS,https,网络协议,http,wireshark

客户机(192.168.101.1)访问Nginx服务器(192.168.101.170),抓取到的都是TLS协议的加密流量;

suricata tls证书,IDS,https,网络协议,http,wireshark

Nginx服务器(192.168.101.170)访问Tomcat服务器(192.168.101.149),抓取到的都是HTTP协议的明文流量。

suricata tls证书,IDS,https,网络协议,http,wireshark

所以,在Nignx或Tomcat上安装Suricata对其流量进行检测即可,因为Nginx与Tomcat的通信流量是非加密的,所以在哪一台电脑上安装Suricat取决于实际需要,如果要更真实模拟一个IDS或WAF硬件设备的部署方式,通常建议安装在Nginx这台代理服务器上。

六、利用Suricata对流量进行检测

[root@Tomcat-suricata rules]# vim /etc/suricata/rules/suricata.rules

监测所有源IP和端口,发送到tomcat服务器(192.168.101.149:8848)的流量,对具有SQL注入和xss特征的流量进行告警。

alert http any any -> $HOME_NET 8848 (msg:"POST请求时SQL注入"; http.method; pcre:"/POST/i"; http.request_body; pcre:"/updatexml|union|select/i"; sid:564001;)
alert http any any -> $HOME_NET 8848 (msg:"GET请求时SQL注入"; http.method; pcre:"/GET/i"; http.uri; pcre:"/updatexml|union|select/i"; sid:564002;)
alert http any any -> $HOME_NET 8848 (msg:"XSS跨站攻击"; http.method; pcre:"/GET/i"; http.uri; pcre:"/script|javascript|alert/i"; sid:564003;)

配置好规则后重启suricata,查看流量实时监控

[root@Tomcat-suricata suricata]# tail -f /var/log/suricata/fast.log

七、在Nginx服务器上尝试SQL注入

开启suricata流量实时监控后,在Nginx服务器上进行sql注入,则能成功监测。

suricata tls证书,IDS,https,网络协议,http,wireshark文章来源地址https://www.toymoban.com/news/detail-858876.html

到了这里,关于【IDS场景模拟】suricata检测HTTPS流量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 浏览器安装证书,使用burp抓取任意https协议的流量

    抓包显示都是http的。 接受风险后: 给burp加证书: 点击后会让你下载,证书已下载 证书长这个样子~~~  浏览器设置中直接搜索证书: 勾选信任:  会到之前加载不出的页面刷新就可以看到加载出来图片等:   此时看到的都是https.

    2024年01月25日
    浏览(54)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(43)
  • suricata初体验+wireshark流量分析

    目录 一、suricata介绍 1.下载安装 2.如何使用-攻击模拟 二、wireshark流量分析 1.wireshark过滤器使用  2.wireshark其他使用 通过官网下载suricata,根据官网步骤进行安装。    以上配置完毕后,重启suricata。  进入wazuh匹配文件,需将suricata加入,使wazuh代理可以读取suricata日志文件。

    2024年02月11日
    浏览(31)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS的缺点 && HTTP如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(46)
  • C#调用webapi HTTPS报错:基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系--安全证书问题

    1、首先加入命名空间: using System.Net.Security; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; SSL网站,连接时需要提供证书,对于非必须提供客户端证书的情况,只要返回一个安全确认即可。我的是.NET FrameWork4.0 2、加入以下代码: 3、接收证书进行身份验

    2024年02月13日
    浏览(44)
  • 深入解析IDS/IPS与SSL/TLS和网络安全

    目录 防火墙 IDS IPS DMZ VPN VPS SSL/TLS 动态IP 静态IP 防火墙 防火墙是一种网络安全设备,用于监控和控制网络流量,保护网络免受未经授权的访问、恶意攻击和威胁。防火墙可以基于规则进行数据包过滤,允许或阻止特定类型的流量通过。常见的防火墙类型包括网络层防火墙和应

    2024年02月12日
    浏览(30)
  • Win2008系统IIS7配置ssl证书,类型绑定https时,主机名为灰色无法填写状态,配置微信小程序时配置TLS1.2及以上版本支持

    一、申请ssl证书,本人证书是使用的腾讯云的免费的ssl证书。 申请证书流程不做介绍,可以参考:腾讯云SSL证书—1.申请免费公网SSL证书-腾讯云开发者社区-腾讯云 二、下载证书,解压后得到文件  三、打开IIS管理器  四、选择证书,填入密码  ------------------------------------

    2024年02月03日
    浏览(37)
  • 使用nginx提供https端点,实现不修改浏览器地址(不触发重定向)转发网络流量,附生成自签ssl证书最简单的方法(2个命令)

    近日笔者需要实现一个网络流量转发的需求。要求很简单:将浏览器的请求转发到一个指定的域名,需要提供一个https端口并且把http端口转发到https端口。由于笔者对nginx的认知有限,因此磕磕绊绊研究了一阵,将结果写出来,以供其他有类似需求的同学参考对照。 nginx的官方

    2024年02月08日
    浏览(64)
  • wireshark解密TLS流量

    通过设置环境变量截取浏览器的master_secret,进而实现解密 TLS 的目的。 未解密的TLS包: 右键我的电脑点击属性高级系统设置环境变量 新建变量SSLKEYLOGFILE,自定义创建路径D:sslssl.log(ssl.log文件会自动生成不需要创建) 在D:ssl路径下自动生成ssl.log文件 打开wireshark,点击编辑

    2024年02月12日
    浏览(39)
  • 设备安全——入侵检测IDS

    IDS(入侵检测系统):对系统的运行状态进行监视,发现各种攻击企图、攻击行为、攻击结果。用于保证系统资源的安全(机密性、完整性、可用性) 设备本身(IDS系统)是一个软件与硬件的组合系统。 IDS的作用:实时监测 经典检测模型 通用的入侵检测系统抽象模型 ● 主

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包