Woj*_*Gac 0 security haskell decompiling dump template-haskell
在我的 Haskell 应用程序中,我实现了以下机制来将敏感信息传递到二进制文件(不诉诸 CLI 参数):
TemplateHaskell在编译时读取环境变量的机制:{-# LANGUAGE TemplateHaskell #-}
...
import Language.Haskell.TH.Env
...
myPrecious :: String
myPrecious = fromMaybe "" $$(envQ "MY_PRECIOUS")
...
Run Code Online (Sandbox Code Playgroud)
MY_PRECIOUS=<secret> stack build然后它绑定到myPreciousHaskell 端MY_PRECIOUS看不到它ps aux问题是,我现在可以在文本编辑器中打开该二进制文件或创建内存转储(例如使用 GDB),并通过一点决心挖掘秘密,特别是如果我知道它正在使用的上下文 - 我假设某些恶意行为者可能已经获得了源代码的访问权限。所以我一直想知道,是否有任何方法可以强制 GHC 生成更加混乱/乱码的二进制文件,其中这些值不容易可见。我知道没有这样的保护方案可以是万无一失的,但我正在寻找一种方法来使入侵者的任务变得更加困难。
混淆完全是浪费时间。你最终会花上几天的时间试图想出一些聪明的东西,但菜鸟逆向工程师在几分钟内就能击败它。相反,您应该设置实际的安全性,而不是通过默默无闻的方式来设置安全性,如下所示:
现在,在文本编辑器中打开二进制文件将不会产生任何结果,因为秘密根本不在其中,并且不可能进行内存转储,因为内核不允许您对 setgid 进程执行此操作。
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |