用于insights组件的bubblewrap沙盒。

insights-sandbox的Python项目详细描述


洞察沙盒

运行规则时只能访问必需的二进制文件和存档工作 目录。在

战略

  • 使用bubblewrap (bwrap)创建沙盒。
    • 只启用所需的linux名称空间(请参阅man namespaces以了解更多信息)。在
  • 通过命名管道使用zeromq与沙盒通信。
    • zmq隐藏底层缓冲区详细信息(man 7 pipe对于fifo)。在

建筑

Client <-> runner adapter proxy <-> named pipes <-> [controller <-> runner adapter <-> runner]

Client创建命名管道和使用bwrap来 调用insights_sandbox.consumer。在

客户机创建一个RunnerAdapterProxy,并用zmq对其进行配置 用于通过管道发送和接收消息的函数。代理人是 用于通过ControllerRunnerAdapter设置{}。在

安装

^{pr2}$

测试存档

./driver.py -p examples.rules <archive>

示例代码

#!/usr/bin/env python3"""This script is only for testing the sandbox."""importargparsefrominsightsimportdr,parse_pluginsfrominsights_sandbox.clientimportClientdefparse_args():p=argparse.ArgumentParser()p.add_argument("--plugins","-p",help="plugins to load",default="")p.add_argument("archive",help="pass an archive to analyze.")returnp.parse_args()defmain():args=parse_args()broker=dr.Broker()packages=parse_plugins(args.plugins)withClient(packages=packages)asclient:doc=client.process(args.archive,broker=broker)print(doc["results"].decode("utf-8"))if__name__=="__main__":main()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener