Security 系统调用什么来阻止/允许/检查以创建程序主管

Security 系统调用什么来阻止/允许/检查以创建程序主管,security,system-calls,Security,System Calls,根据,我正在尝试创建在线法官的程序主管组件 我需要完全阻止、始终允许或检查to的哪些系统调用: 防止分叉或运行其他命令 限制为标准的“安全”C和C++ LIBS 阻止网络访问 限制对除2个文件“in.txt”和“out.txt”以外的所有文件的访问 阻止访问任何系统功能或详细信息 防止应用程序逃离其主管 防止任何令人讨厌的事情发生 非常感谢您的帮助/建议/链接。从安全角度来看,最好的方法是找出需要允许的内容,而不是需要拒绝的内容。我建议从一个只记录已知良性程序集所做的一切的主管开始,然后将

根据,我正在尝试创建在线法官的程序主管组件

我需要完全阻止、始终允许或检查to的哪些系统调用:

  • 防止分叉或运行其他命令
  • 限制为标准的“安全”C和C++ LIBS
  • 阻止网络访问
  • 限制对除2个文件“in.txt”和“out.txt”以外的所有文件的访问
  • 阻止访问任何系统功能或详细信息
  • 防止应用程序逃离其主管
  • 防止任何令人讨厌的事情发生

非常感谢您的帮助/建议/链接。

从安全角度来看,最好的方法是找出需要允许的内容,而不是需要拒绝的内容。我建议从一个只记录已知良性程序集所做的一切的主管开始,然后将那些系统调用和文件访问列为白名单。由于新程序运行时与这个非常严格的沙箱相冲突,因此您可以逐个评估放宽限制的情况,直到找到正确的配置文件


这基本上就是在Mac OS X上开发应用程序沙盒配置文件的方式。

如果您只希望系统调用检查另一个processus,您可以使用ptrace(),但您将没有任何保证,如中所述

您可以使用valgrind来检查和钩住函数调用、库,但这将是一个乏味的过程,也许黑名单并不是实现这一点的好方法

您还可以使用systrace,()编写规则,以授权/阻止各种事情,如仅打开某些文件等。。。使用它来沙箱处理processus很简单。

也许您可以配置来执行您想要的操作。从常见问题解答:

AppArmor是目前市场上最有效、最易于使用的Linux应用程序安全系统。AppArmor是一个安全框架,通过强制执行良好的程序行为并防止未知软件缺陷被利用,主动保护操作系统和应用程序免受外部或内部威胁,甚至零日攻击。AppArmor安全配置文件完全定义了各个程序可以访问的系统资源以及权限。AppArmor包含许多默认策略,通过结合使用高级静态分析和基于学习的工具,即使是非常复杂的应用程序,也可以在数小时内成功部署AppArmor策略