3个版本 (1个稳定版本)
8.0.0-alpha.20240613 | 2024年6月14日 |
---|---|
8.0.0-alpha.1 | 2024年4月12日 |
7.0.5 | 2024年6月14日 |
7.0.0-alpha.5 |
|
7.0.0-alpha.3 |
|
#9 在 #suricata
每月29次下载
用于 suricata
16KB
289 行
Suricata
简介
Suricata 是由 OISF 和 Suricata 社区开发的一种网络入侵检测系统、入侵防御系统和网络安全监控引擎。
资源
贡献
我们愉快地接受补丁和其他贡献。请参阅我们的 贡献流程 了解如何开始。
Suricata 是一个处理大量不受信任输入的复杂软件。处理不当此输入将产生严重后果
- 在IPS模式下,崩溃可能导致网络离线
- 在被动模式下,IDS的妥协可能导致关键和机密数据的丢失
- 未检测到可能导致网络未被发现的安全漏洞
换句话说,我们认为风险相当高,特别是在许多常见情况下,IDS/IPS 将直接可被攻击者访问。
因此,我们开发了一个相当广泛的质量保证流程。结果是,对 Suricata 的贡献可能是一个相对漫长的过程。
在高级别上,步骤如下
- 基于 GitHub-CI 的检查。在提交拉取请求时自动运行。
- 团队和社区的审查
- 来自私有 QA 设置的质量保证运行。这些设置是私有的,因为测试流量性质。
Suricata 的 QA 步骤概述
OISF 团队成员能够将构建提交到我们的私有 QA 设置。它将运行一系列构建测试和回归测试套件,以确认没有现有的功能被破坏。
最终的质量保证运行至少需要几个小时,通常在夜间运行。目前运行
- 在不同操作系统、编译器、优化级别、配置功能上的广泛构建测试
- 使用cppcheck和scan-build进行静态代码分析
- 使用valgrind、AddressSanitizer和LeakSanitizer进行运行时代码分析
- 对过去的错误进行回归测试
- 日志输出验证
- Unix套接字测试
- 使用ASAN和LSAN的基于pcap的模糊测试
- 基于流量回放的入侵检测系统(IDS)和入侵防御系统(IPS)测试
除了这些测试外,还可以根据代码更改的类型手动运行更多测试
- 流量回放测试(多吉比特)
- 大pcap集合处理(多太字节)
- 模糊测试(可能需要多天甚至几周)
- 基于pcap的性能测试
- 实时性能测试
- 基于对所提议更改的评估,进行各种其他手动测试
重要的是要认识到,上述几乎所有测试都用作验收测试。如果出现问题,您需要在自己的代码中解决这些问题。
QA的一个步骤目前在合并后运行。我们将构建提交到Coverity Scan程序。由于该(免费)服务的限制,我们每天最多只能提交一次。当然,合并后社区可能会发现问题。对于这两种情况,我们请求您帮助他们解决可能出现的问题。
常见问题解答
问题:您会接受我的PR吗?
答案:这取决于许多事情,包括代码质量。对于新功能,还取决于团队和/或社区认为该功能是否有用,它对其他代码和功能的影响有多大,性能回归的风险等。
问题:我的PR何时会合并?
答案:这取决于情况,如果这是一个主要功能或被认为是高风险更改,它可能将进入下一个主要版本。
问题:为什么我的PR被关闭了?
答案:如Suricata GitHub工作流程中所述,我们期望每个更改都有一个新的拉取请求。
通常,团队(或社区)会在拉取请求后给出反馈,然后期望用改进的PR来替换。所以看看评论。如果我们不同意评论,我们仍然可以在关闭的PR中讨论它们。
如果PR在没有评论的情况下被关闭,很可能是由于QA失败。如果GitHub-CI检查失败,应立即修复PR。没有必要讨论它,除非您认为QA失败是不正确的。
问题:编译器/代码分析器/工具出错了怎么办?
答案:为了帮助自动化QA,我们不接受警告或错误保留。在某些情况下,这可能意味着如果工具支持,我们将添加抑制(例如,valgrind,DrMemory)。一些警告可以禁用。在某些特殊情况下,唯一的“解决方案”是将代码重构以绕过静态代码检查器的误报限制。虽然令人沮丧,但我们更愿意这样做,而不是在输出中留下警告。警告往往会被人忽略,然后增加隐藏其他警告的风险。
问题:我认为您的QA测试是错误的
答案:如果您真的这样认为,我们可以讨论如何改进它。但不要太快下结论,更常见的情况是代码是错误的。
问题:您是否需要签署贡献者许可协议?
答案:是的,我们这样做是为了保持Suricata的所有权在一手:开放信息安全基金会。请参阅http://suricata.io/about/open-source/和http://suricata.io/about/contribution-agreement/
依赖关系
~2MB
~44K SLoC