10个版本 (6个破坏性更新)
0.8.1 | 2024年4月19日 |
---|---|
0.7.1 | 2024年2月7日 |
0.7.0 | 2023年12月1日 |
0.6.0 | 2023年11月16日 |
0.1.0 | 2022年10月19日 |
#96 在 操作系统
每月105 次下载
345KB
2K SLoC
Birdcage
关于
Birdcage是一个跨平台的可嵌入沙盒库,允许使用本地操作系统API对文件系统和网络操作进行限制。
Birdcage最初是为Phylum CLI开发的,作为一个额外的安全层,用于防范潜在的恶意依赖项(有关详细信息,请参阅博客文章)。为了更好地保护自己免受这些安全风险,请现在就注册!
Birdcage仅关注文件系统和网络操作。它不是一个完整的沙盒,不能阻止所有副作用或永久性损坏。应用程序仍然可以执行大多数系统调用,当以root身份执行时尤其危险。Birdcage应与其他安全机制结合使用,尤其是如果您正在执行已知的恶意代码。
示例
可以在./examples/sandbox
中找到使用Birdcage API的示例,该示例运行一个具有CLI配置限制的应用程序。
尝试不使用任何异常运行将产生错误
$ cargo run --example sandbox -- echo "Hello, Sandbox\!"
Error: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }
使用显式权限运行相同命令允许执行
$ cargo run --example sandbox -- -e /usr/bin/echo -e /usr/lib echo "Hello, Sandbox\!"
Hello, Sandbox!
查看cargo run --example sandbox -- --help
以获取更多有关如何使用示例的信息。
支持的平台
- Linux通过namespaces
- macOS通过
sandbox_init()
(也称为Seatbelt)
依赖项
~0–9MB
~75K SLoC