如何在Linux上安全地运行不受信任的可执行文件?


34

我已经下载了由第三方编译的可执行文件,并且我需要它在我的机器(Ubuntu 16.04-x64)上运行,并且可以完全访问硬件资源,例如CPU和GPU(通过nVidia驱动程序)。

假设此可执行文件包含病毒或后门,我应该如何运行它?

我应该创建一个新用户,然后运行它,然后删除用户本身吗?

编辑

由于firejail 可能无法正常工作,因此尚未批准以下答案。

编辑2

firejail 还可以,但是在指定黑名单白名单的所有选项时必须格外小心。默认情况下,它不执行 linux-magazine文章中引用的内容(另请参阅firejail作者的一些评论)。

使用它时请格外小心,如果没有正确的选择,它可能会给您带来虚假的安全感。


Answers:


56

首先,如果它是一个非常高风险的二进制文件,则必须设置一台隔离的物理机,运行该二进制文件,然后物理销毁HDD,主板以及基本上所有的其余部分。因为在当今时代,即使您的机器人吸尘器也可以传播恶意软件。而且,如果程序已经通过PC扬声器使用高频数据传输感染了微波炉,该怎么办?

但是,让我们摘下锡箔帽子,然后跳回现实。

没有虚拟化,使用方便: Firejail

它已经打包在Ubuntu上了,它很小,几乎没有依赖性。
如何在Ubuntu上安装:sudo apt-get install firejail

网站:https//firejail.wordpress.com/

套餐信息:

Package: firejail
Priority: optional
Section: universe/utils
Installed-Size: 457
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Reiner Herrmann <reiner@reiner-h.de>
Architecture: amd64
Version: 0.9.38-1
Depends: libc6 (>= 2.15)
Filename: pool/universe/f/firejail/firejail_0.9.38-1_amd64.deb
Size: 136284
MD5sum: 81a9a9ef0e094e818eb70152f267b0b6
SHA1: 41d73f8b9d9fd50ef6520dc354825d43ab3cdb16
SHA256: f1cbc1e2191dbe6c5cf4fb0520c7c3d592d631efda21f7ea43ab03a3e8e4b194
Description-en: sandbox to restrict the application environment
 Firejail is a SUID security sandbox program that reduces the risk of
 security breaches by restricting the running environment of untrusted
 applications using Linux namespaces and seccomp-bpf.  It allows a
 process and all its descendants to have their own private view of the
 globally shared kernel resources, such as the network stack, process
 table, mount table.
Description-md5: 001e4831e20916b1cb21d90a1306806f
Homepage: https://firejail.wordpress.com
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu  

几天前,我不得不运行类似的“不受信任”的二进制文件。我的搜索导致了这个非常酷的小程序。

虚拟化: KVMVirtualbox
这是最安全的选择。取决于二进制文件。但是,请看上面。
如果它是由黑带程序员“黑帽先生”(黑帽程序员)发送的,则二进制文件有可能逃脱虚拟化环境。

恶意软件二进制文件,节省费用的方法:租一台机器!虚拟的。虚拟服务器提供程序示例:亚马逊(AWS),微软(Azure),DigitalOcean,Linode,Vultr,Ramnode。您租用机器,运行所需的任何东西,然后它们就会将它们清除。大多数较大的提供商按小时收费,因此它确实很便宜。


评论不作进一步讨论;此对话已转移至聊天
Journeyman Geek

2

只需在单独的安装上运行它-在外部驱动器或另一个硬盘驱动器上设置单独的安装,请确保安装主安装的分区(或者最好断开它们的连接),然后进行测试。您可以备份此预安装,以防万一您再次需要它,并在完成后对其进行核对。

它比沙箱/监狱更为健壮,您可以放心地将第二次安装视为一次性使用和/或仅在需要时使用。


2

从Firejail手册页:

   Without  any  options,  the sandbox consists of a filesystem build in a
   new mount namespace, and new PID and UTS namespaces. IPC,  network  and
   user  namespaces  can  be  added  using  the  command line options. The
   default Firejail filesystem is based on the host  filesystem  with  the
   main  system directories mounted read-only. These directories are /etc,
   /var, /usr, /bin, /sbin, /lib, /lib32, /libx32 and /lib64.  Only  /home
   and /tmp are writable.

这是一个高级描述,还有其他事情在进行,例如/ boot被列入黑名单,/ sbin和/ usr / sbin也是如此。

https://firejail.wordpress.com/features-3/man-firejail/

您也可以查看以下文档:https : //firejail.wordpress.com/documentation-2/firefox-guide/-它们对文件系统有很好的描述。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.