警告日志记录安全信息
我很担心人们会记录机密信息服务器日志。 我已经看到生产中的服务器日志。有些开发人员意外地记录了安全相关的信息,如密码,clientId,clientSecret等。警告日志记录安全信息
有没有什么办法像Eclipse插件或任何工具一样在编写代码时提醒开发人员?
`ex : log.info("usernam = " + username + "password = " + password) ;` //
Warn that confidential info is getting logged.
我做了一些调查......我已经见过像sonarLint和FindBug
工具,但这些插件还不能解决我的问题。
SonarLint提供规则S2068: Credentials should not be hard-coded,该规则的目标是硬编码凭证的使用,它看起来接近于您尝试实现的目标,尽管它可能不足以满足您的需求。
在其他的答案然而,如上所述,识别此类安全漏洞可能最终难以和强大的代码审查无疑是一个很好的举措,以降低风险。
现在,如果你真的担心有关记录仪的用途,已经知道潜在的问题,并可能泄露哪些数据,我建议编写自己的Java自定义规则SonarQube。
自定义规则由SonarLint支持,并且可以在企业层面,一旦含自定义插件它部署在SonarQube服务器上应用。该解决方案将允许您明确定义您想要定位的内容,并根据您的需求和企业细节对规则进行微调。编写这样的规则并不难,并在以下教程中有记录:Custom rules for Java。
有许多不同的方式如何安全漏洞能够出现。将数据记录到浏览器控制台只是其中之一。
而且据我所知,没有任何工具,可以自动检测这些安全问题。程序员有责任在页面上不公开私人用户信息。
在这种情况下,建议是:决不登录密码(尤其是未加密的)对浏览器控制台!而是使用无法解密的算法对数据库中的密码进行加密。
'加密'你可能意味着'哈希'。但是必须小心,许多常见的散列算法不适用于密码散列。您应该使用现代散列函数,例如bcrypt。但在这种情况下密码的存储方式并不相关,因为在某些时候用户必须以明文形式输入密码。有些框架可能会帮助您更难直接访问和记录密码。 – Kapep
是的,我的意思是“哈希”。我没有提供关于特定算法的建议,因为正如你所说,许多正式被认为是安全的算法已经不复存在了(而且这个问题已经脱离了这个问题的主题)。 –
可能是你应该尝试的对比工具。它很好,我们已经使用它很久了。
它照顾到所有的更新OWASP十大问题。
相当不错的企业应用程序中发现的安全漏洞。
他们的支持也不错。
另一种方法是创建一个自定义日志的appender看起来对某些搬弄是非的模式(例如相当于“密码”和“passwd文件”)和抹杀的消息,或将引发错误。
但是,这可能是危险的。如果坏人知道你这样做了,他们可能会试图利用它来掩盖他们的踪迹甚至崩溃你的服务器。
我不认为我的呼吸了在这一个部分外的即装即用的解决方案。除了您自己的日志记录之外,您还必须关注由您的依赖关系完成的日志记录。也就是说,您有两个工作领域:进入日志的内容以及谁可以访问日志。
就日志而言,解决此问题的最佳工具是教育和协作(包括上述代码评论)。首先编写一份记录的非功能性需求清单,其中包括解决记录什么和如何记录的安全性(标记,级别,敏感参数等)。我建议与同事们一起定义这份清单,以便它不会被称为“Ravi的伐木运动”而不是“我们真正需要做的事情”。
一旦该列表被定义并且您得到了您的同事和/或管理层的支持,您可以编写用于记录实现的包装器,以支持您组装的非功能性记录需求列表。如果确实需要记录敏感参数,请提供一种参数非对称加密方式,供以后通过根帐户进行检索:例如存储在只能由root/container访问的文件中的加密密钥。对于管理层而言,您可能需要花一些时间撰写价值主张来描述为什么您的计划对贵公司有价值。
下一步与谁定义您的SLDC的工作 - 确保您的SDLC的变化是外部沟通。让他们为您的公司创建一个安全编码清单,并在其上实施一项内容:所有日志记录均使用OurCompanySecureLogger实施。现在你可以开始致力于实施这一举措。我建议在构建服务器上编写一个检查依赖关系,如果它发现直接引用log4j,slf4j,logback等,则构建失败。
关于另一半问题,请与您的SysOps团队一起工作定义职责分离的规则。也就是说,软件工程师不应该访问正在执行日志记录的服务器。如果您现在没有足够的人员来支持这个想法,那么您可能需要发挥创意。
这样的事情无法通过工具100%解决,因为即使您进行静态代码分析,只有当您的日志变量名称或信息文本实际包含“user”或“password”等子字符串时才可以使用。如果他们不这样做,你无法检测到它。你有没有听说过称为代码审查这个有趣的事情?我听说它是有帮助的。 – kriegaex