2 个版本
0.0.2 | 2022 年 6 月 23 日 |
---|---|
0.0.1 | 2021 年 11 月 4 日 |
#2 in #cascade
200KB
5K SLoC
简介
Cascade 是一个旨在构建用于定义 SELinux 策略的新高级语言的项目。
该语言的整体结构基本上是面向对象的,类型承载了它们的使用知识,以及一个类型定义的层次继承树,它反映了各种场景中的现实世界使用。语法主要受到 Rust 的启发,虽然也受到各种语言的启发,但重点在于简单、一致性和对不同背景开发者的熟悉度。
入门指南
要构建可执行文件,请运行
$ cargo build
要运行测试,请运行
$ cargo test
Cargo 将自动下载所有 Rust crate 依赖项。测试依赖于 secilc 包。
casc
Cascade 编译器名为 casc,成功构建后位于 target/debug/casc。输入文件作为参数提供。递归搜索目录以查找策略文件。如果没有找到有效的策略文件,casc 将以错误退出。
$ casc my_policy.cas
casc 将创建一个名为 out.cil 的文件,其中包含 CIL 策略。然后可以使用 secilc 将此 CIL 策略编译成最终的 SELinux 策略。
未来版本将添加更多 casc 参数和配置
audit2cascade
当前的 audit2cascade 二进制文件是一个简单的占位符。最终,这将成为一个类似 audit2allow 或 audit2why 的工具,根据审计日志中 AVC 否决消息的输出生成 Cascade 策略。它将利用 hll 策略中存在的语义信息,帮助开发者就处理否决做出明智的决策,而不仅仅是添加原始允许规则。
编写 Cascade 策略
有关编写 Cascade 策略的详细信息,请参阅 类型强制。
贡献
感谢您对贡献的兴趣!您可以通过多种方式为此项目做出贡献。
报告错误和建议改进
如果您发现错误或对改进有建议,请随时在 问题跟踪器 中创建问题
贡献代码
我们欢迎您通过GitHub PR提交代码贡献。如果您计划添加主要功能,最好在开始大量工作之前在问题跟踪器中进行讨论,以便我们都能就其工作方式达成共识。对于较小的调整和错误修复不需要进行高级讨论。
项目状态
项目仍处于早期阶段,正在快速开发和改进。文档中列出的所有功能可能尚未完全实现。有关最新更改,请参阅 CHANGELOG.md,有关未来的工作计划和里程碑,请参阅 ROADMAP.md。
依赖项
~8–18MB
~245K SLoC