如何减轻安全性调用ProcessBuilder.command时出现问题?

问题描述 投票:0回答:1

我想在我的linux命令行上调用“openssl”来获取一些解密内容。

使用时

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

我怎么能确定实际的openssl命令被调用?想象一个攻击者简单地重命名openssl - > openssl2并将他自己的邪恶程序添加为“openssl”,后者又在后台调用“openssl2”但捕获stdin和stdout并将其静默地转储到一个秘密文件中。

有没有办法确定,是否调用了正确的操作系统程序?

谢谢大家!

java security processbuilder
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.