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操作系统

Download history 124/week @ 2024-04-21 83/week @ 2024-04-28 70/week @ 2024-05-05 132/week @ 2024-05-12 106/week @ 2024-05-19 74/week @ 2024-05-26 115/week @ 2024-06-02 129/week @ 2024-06-09 159/week @ 2024-06-16 161/week @ 2024-06-23 16/week @ 2024-06-30 303/week @ 2024-07-07 5/week @ 2024-07-14 2/week @ 2024-07-21 37/week @ 2024-07-28 54/week @ 2024-08-04

每月105 次下载

GPL-3.0-or-later

345KB
2K SLoC

Birdcage

GitHub GitHub issues Contributor Covenant Discord Crate Documentation

Birdcage logo

关于

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