actions-marketplace-validations/StamusNetworks_suricata-rules-check
GitHub: actions-marketplace-validations/StamusNetworks_suricata-rules-check
一个用于在 GitHub Actions 工作流中自动验证 Suricata 规则文件并将诊断信息报告为 PR 注释的 GitHub Action。
Stars: 0 | Forks: 0
# 验证 Suricata 规则
一个 GitHub Action,用于验证 Suricata 签名文件,并将诊断信息作为 GitHub 注释报告在你的 Pull Request 和工作流运行中。
## 用法
```
- uses: StamusNetworks/suricata-rules-check@v1
```
默认情况下,该 Action 会在仓库中查找所有 `*.rules` 文件,并使用 `suricata-language-server` 对每个文件进行验证。
## 示例工作流
### 在每次 Pull Request 时进行验证
```
name: Validate Suricata Rules
on:
pull_request:
push:
branches: [main]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: StamusNetworks/suricata-rules-check@v1
```
### 警告时报错并使用固定版本的 Suricata
```
- uses: StamusNetworks/suricata-rules-check@v1
with:
fail-on-warnings: 'true'
suricata-image: 'jasonish/suricata:7.0'
```
### 快速验证(跳过引擎分析)
引擎分析能发现更多问题,但需要拉取 Docker 镜像并运行 Suricata。跳过此步骤可更快地获得仅针对语法的检查反馈:
```
- uses: StamusNetworks/suricata-rules-check@v1
with:
engine-analysis: 'false'
```
### 使用输出来控制部署
```
- uses: StamusNetworks/suricata-rules-check@v1
id: check
- name: Summarize results
run: |
echo "Errors: ${{ steps.check.outputs.error-count }}"
echo "Warnings: ${{ steps.check.outputs.warning-count }}"
```
## 输入
| 输入 | 必填 | 默认值 | 描述 |
|-------|----------|---------|-------------|
| `rules-path` | 否 | `.` | 搜索规则文件的目录 |
| `rules-pattern` | 否 | `*.rules` | 用于在仓库中定位规则文件的 `find -name` 模式 |
| `suricata-image` | 否 | `jasonish/suricata:latest` | 用于引擎分析的 Suricata Docker 镜像 |
| `fail-on-warnings` | 否 | `false` | 如果发现任何警告,除错误外,也会以失败状态退出 |
| `engine-analysis` | 否 | `true` | 运行 Suricata 引擎分析。设置为 `false` 可仅验证语法并加快 Action 的运行速度 |
## 输出
| 输出 | 描述 |
|--------|-------------|
| `error-count` | 在所有文件中发现的错误级别诊断的总数 |
| `warning-count` | 在所有文件中发现的警告级别诊断的总数 |
## 工作原理
对于每个匹配的规则文件,该 Action 会调用 `suricata-language-server` 生成结构化的诊断信息。这些诊断信息会被转换为 [GitHub 工作流注释](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#setting-a-notice-message)(错误、警告和通知),并直接显示在 Pull Request 的文件差异和工作流摘要页面中。
在 Action 退出之前,始终会检查所有文件,因此即使多个文件存在问题,你也可以在单次运行中查看全面的情况。
如果任何文件产生了错误级别的诊断信息,或者在启用了 `fail-on-warnings` 的情况下发现了任何警告,该 Action 将以非零状态退出。
## 要求
运行器必须安装有 Docker。该 Action 会自动安装 Python 和 `suricata-language-server`。
标签:AMSI绕过, DevSecOps, DNS解析, Docker, GitHub Action, Metaprompt, Suricata, Suricata语言服务器, 上游代理, 云安全监控, 云计算, 代码审查, 威胁检测, 安全防御评估, 开源框架, 开源项目, 持续集成, 现代安全运营, 网络安全, 规则引擎, 规则验证, 请求拦截, 逆向工具, 隐私保护, 静态分析