敏感信息硬编码在程序中

1、敏感信息硬编码在程序中

1.1、描述:

  • 如果将敏感信息(包括口令和加密密钥)硬编码在程序中,可能会将敏感信息暴露给攻击者。任何能够访问到class文件的人都可以反编译class文件并发现这些敏感信息。因此,不能将信息硬编码在程序中。同时,硬编码敏感信息会增加代码管理和维护的难度。

1.2、审计方法:

  • 全局搜索以下关键词

    “password”

1.3、漏洞示例:

  • 恶意用户可以使用javap -c IPaddress命令来反编译class来发现其中硬编码的服务器IP地址。反编译器的输出信息透露了服务器的明文IP地址:172.16.254.1。

图1:错误代码

1.4、漏洞危害:

  • 很容易被攻击者利用,导致系统敏感信息泄露。

1.5、修复方案:

  • 敏感信息存放在配置文件或数据库中并加密存储。(金融行业安全系数更高)
  • 这个正确代码示例从一个安全目录下的外部文件获取服务器IP地址。并在其使用完后立即从内存中将其清除可以防止后续的信息泄露。

图2:正确代码