linux中有没有办法限制应用程序访问系统时间?
我想让应用程序启动时尽可能从环境中抽象出来。如果您可以通过权限限制对设备/文件系统的访问,则不清楚如何限制对系统时钟的访问,因为这不是标准系统设备。
答案1
如果你想拒绝访问系统时间,你几乎必须编写一个系统调用过滤器;如今,这将是seccomp过滤器。看Kees Cook 的简单教程,或者对于更复杂的要求,libseccomp。您至少需要拒绝访问gettimeofday
、clock_gettime
、 和;time
详细信息取决于您是否正在尝试处理对抗性应用程序(您可能还想拒绝访问等exec
,system
以防止应用程序运行外部应用程序 - 尽管 seccomp 过滤器是继承的,因此这可能并不重要 - 并且拒绝访问外部、直接或间接时间源(例如网络甚至文件系统)。
如果您想给应用程序一个人工时间,请查看faketime
和 libfaketime。