18个版本 (重大更改)

0.13.0 2024年7月17日
0.12.1 2023年4月12日
0.12.0 2023年2月13日
0.11.1 2022年6月21日
0.2.0 2021年2月22日

#793 in 网络编程

Download history 4140/week @ 2024-04-26 1765/week @ 2024-05-03 2392/week @ 2024-05-10 2617/week @ 2024-05-17 2801/week @ 2024-05-24 3530/week @ 2024-05-31 2100/week @ 2024-06-07 1810/week @ 2024-06-14 2015/week @ 2024-06-21 2722/week @ 2024-06-28 2356/week @ 2024-07-05 2437/week @ 2024-07-12 1868/week @ 2024-07-19 2830/week @ 2024-07-26 1956/week @ 2024-08-02 1341/week @ 2024-08-09

每月8,390次下载
suricata中使用

MIT许可证

160KB
3.5K SLoC

法语

安全感知的线协议解析库。

此库包含各种线协议的解析器,并旨在在网络安全传感器中使用。

每个解析器都公开一个通用接口,允许传感器引擎将字节喂入解析器,并接收解析后的元数据。字节预期在会话层,因此引擎负责将传输层数据组装成会话有效载荷,然后将其喂入此库。

此库旨在具有弹性,并尽可能多地解析野外观测到的消息。如果消息无效或不符合规范,解析器不应将其丢弃。解析器将在消息失败验证时设置标志,而不是返回错误。

每个解析器的接口都是统一的和简单的,仅包含几个函数,用于

  • 测试有效载荷是否是或不是所讨论的协议(例如,这是Modbus吗?)
  • 向解析器提供更多字节
  • 设置回调以在协议元数据事件上调用(待定)
  • 指示某些字节不可用(即通知数据包丢失)(待定)
  • 指示会话已结束(待定)

此库公开了Rust和C绑定,以便轻松集成到现有的和未来的网络安全传感器平台。(待定)

使用方法

通过在项目的Cargo.toml依赖项中包含解析器来开始使用SAWP。还需要基本库来使用常见类型。

支持的最低版本的 rustc1.63.0

示例

[dependencies]
sawp-modbus = "0.13.0"
sawp = "0.13.0"

FFI 支持

一些解析器为 C/C++ 项目提供了外部函数接口。可以通过使用 ffi 功能来启用 FFI 支持。

还提供了一个 Makefile 以简化构建过程。请参阅此文件以获取更深入的文档。

# Install cbindgen which is required to generate headers
cargo install --force cbindgen

# Build headers and shared objects
make

贡献

此项目正在积极维护,并接受开源贡献。有关详细信息,请参阅 CONTRIBUTING

依赖

~1.4–3MB
~53K SLoC