TroutSoftware/netsniffer
GitHub: TroutSoftware/netsniffer
为 Snort 3 IPS 提供自定义规则和检测器插件的扩展仓库,源自 Trout Software 的 Access Gate 产品实践。
Stars: 1 | Forks: 0
# Trout Snort 模块
[Snort](https://snort.org/) 是目前最好、最健壮的开源 IPS 之一。
其第三个版本基于开放的插件架构构建,支持第三方扩展。
本仓库包含我们在将 Snort 嵌入 [Access Gate](https://www.trout.software/) 作为网络分析器时开发的插件。
# 快速入门
我们目前仅支持在 Alpine Linux 环境中构建,我们提供了一个基于 Bubblewrap 的 Alpine 环境。
该项目使用 [redo](https://redo.readthedocs.io/) 构建。
请确保您的主机系统上已安装 Bubblewrap 和 Redo。
首先,通过执行以下命令来构建并进入 Alpine 环境:
```
test_envr_alpn/bshell.sh
```
首次运行时这将花费一些时间,因为我们需要下载 Alpine 并构建镜像。
bshell.sh 命令(希望)会将您带到一个 Alpine 提示符。
在项目的主文件夹中,您会发现许多脚本,要验证您的安装,可以运行构建测试套件:
```
redo test
```
这将构建 Snort、libdaq、我们的插件,并执行自动化测试。
要启动 Snort,请使用 snort.sh 包装脚本,它接受与普通 Snort 提示符相同的参数,但会确保加载正确的库。
```
./snort.sh --version
```
为了让 Snort 能够从网络捕获数据包,我们需要使用 sudo 启动 Bubblewrap,并稍微调整配置。
在您的主机系统上运行以下脚本,以进入一个 Snort 可以在混杂模式下运行的 Alpine 提示符:
```
test_envr_alpn/bshell_capture.sh
```
用户需要拥有 sudo 权限,您可能需要输入密码。
在提示符下,您可以像往常一样启动 Snort(注意,此启动不需要 sudo)
```
./snort.sh -c [config_script] -i [networkname]
```
_(注意,所有常规构建命令也可以在此捕获环境中工作,但这会带来常见的问题,例如运行 ninja 构建和常规文件权限问题,如果文件是通过提示符更改的(例如,如果运行了 redo format),所以请自行承担风险...)_
# 构建
如果您想在不运行 Snort 的情况下获得 debug 和 release 构建,脚本将确保为运行各个脚本构建足够的组件,可以显式运行以下命令。
对于 release 构建,请运行:
```
redo release
```
这将填充 p/install,其中 Snort 位于 p/install/bin,libdaq 位于 p/install_debug/lib,插件 (tm.so) 位于 p/release。
对于 debug 构建,请运行:
```
redo debug
```
这将填充 p/install_debug,其中 Snort 位于 p/install_debug/bin,libdaq 位于 p/install_debug/lib,插件 (tm.so) 位于 p/debug。
标签:Access Gate, Alpine Linux, AMSI绕过, IPS, Libdaq, rizin, Snort 3, Trout Software, UML, Wildcard支持, 入侵防御系统, 威胁检测, 威胁检测与响应, 威胁猎捕, 插件开发, 网络安全, 网络探针, 自动化侦查, 规则开发, 速率限制, 隐私保护