黑盒系统。自定义主机上的安全软件

Posted

技术标签:

【中文标题】黑盒系统。自定义主机上的安全软件【英文标题】:Blackbox system. Secure software on custom host computer 【发布时间】:2019-07-09 17:22:42 【问题描述】:

我正在寻找一种方法来构建一个黑盒系统,该系统可以安全地运行我的算法并将数据输出给用户。

该系统将是我自己的定制 linux 计算机,运行我的算法,我会赠送给用户。现在我想要的是用户可以通过一些预定义的端口配置算法,也可以从预定义的端口接收数据。但是,用户应该看不到算法的任何源代码,最多也不能复制程序(但这不是我的主要考虑)

最好的方法是什么?它不必是超级不可破解的安全性(因为这可能是不可能的)。只是某种良好的安全性,不会使查看和复制源代码变得过于直接。

硬件是我的自定义计算机,我可以根据需要进行配置。该程序不需要在其他任何地方运行。

【问题讨论】:

你使用什么语言? C++。可能还有一些 python,但这不是“要保护”的部分。 为什么不把它托管在某个地方并添加一个公共 api 呢? 如果你想要安全,不要给用户任何东西。使其成为一个云服务,他们可以将数据上传到然后下载结果。那样完全是黑匣子。 由于它是实时关键应用程序,因此不能选择云服务。 【参考方案1】:

如下设置您的盒子:

使用像Kali Mini OS这样的轻量级Linux操作系统

应用设置

编写一个将自身加载到计算机内存中的应用程序,然后从文件系统中删除它自己的可执行文件。这将在您寻找时提供您的基本安全性。 self deleting program after execution - Stack Overflow

编写一个管道(这将允许两个或多个应用程序进行通信)

Unix C++ 指南Background Inter Process Communication 工控机Stack Overflow Question

使用 BG IPC(后台进程间通信),您将能够通过另一个应用程序通过管道端口连接以与用户交谈。

应用程序安全性(可选)

应用程序可以自删除和自解密。

在应用程序启动时,它会要求用户输入密码(启动应用程序) 然后它会从文件系统中删除文件,

额外安全

应用程序可执行文件可以为零或随机字节为空。 这将在删除之前用随机字节值替换可执行文件中的每个字节。这将确保文件不可恢复。

【讨论】:

但是自删除程序在重新启动时不再起作用。还是我错了? 自删除意味着如果应用程序崩溃,或者如果计算机重新启动,那么您需要“重新安装”应用程序,然后再次输入安全密码,因为程序已被删除从内存中删除可执行文件。 这就是我在过去运行中使用的一些企业软件的方式。我们将使用闪存驱动器存储应用程序,然后将其插入,运行应用程序,输入密码,然后将闪存驱动器格式化/清空,然后我们将拔下闪存驱动器。 这仅适用于 linux,请参阅 gist.github.com/DeanVanGreunen/a155bfb13d7b68033c0a398e14b3d107

以上是关于黑盒系统。自定义主机上的安全软件的主要内容,如果未能解决你的问题,请参考以下文章

网络运维与安全学习1——新建一台VMware虚拟机

软件测试-黑盒测试 随机测试技巧

全网最全安全加固指南

sh 运行此命令以获取只能读取安全监视软件的主机文件系统的容器

安全测试&漏洞扫描

linux安全服务器安全建议