如何缓解调用ProcessBuilder.command时的安全问题?



我想在我的linux命令行上调用"openssl"来解密一些东西。

使用时

Process process = new ProcessBuilder().command("openssl", "enc", ...).start();

我如何确定调用了实际的 openssl 命令? 想象一下,攻击者简单地重命名openssl -> openssl2,并将自己的邪恶程序添加为"openssl",而该程序又在后台调用"openssl2",但捕获stdin和stdout并将其悄悄转储到一个秘密文件中。

有什么方法可以确定调用了正确的操作系统程序?

谢谢大家!

OpenSSL 和 JNI

这样,您将使用自己的库示例。当然,如果系统受到损害,它仍然不安全,但这提供了保持完整的小机会

。如果你真的需要使用openssl功能,你可以采取以下方法: 1. 转到此处: https://www.openssl.org/source/2. 为所需(或多个平台(编译 openssl 库。 3. 使用 JNI 调用库中的函数。

你也可以在这里找到一些有用的东西:https://software.intel.com/en-us/blogs/2014/12/05/encryptiondecryption-invoking-openssl-through-jni-calls

相关内容

  • 没有找到相关文章

最新更新