导语:近日,安全研究人员发现,Django应用程序由于配置错误问题正在暴露诸如API密钥、服务器密码以及AWS访问令牌之类的敏感信息。
近日,安全研究人员发现,Django应用程序由于配置错误问题正在暴露诸如API密钥、服务器密码以及AWS访问令牌之类的敏感信息。
巴西安全研究人员Fábio Castro在本周早些时候接受访问时表示,造成此次安全问题的原因在于Django应用程序的开发人员忘记了禁用该应用程序的调试模式。
据悉,Django是一个非常强大且可以自定义的Python框架,通常用于创建基于Python的Web应用程序、Intranet以及应用程序后端等,其目的是使创建数据库驱动的Web站点和Web应用程序更加容易。
在Shodan上发现28,165个配置错误的Django应用程序
Castro表示,他发现本周共有28,165个配置错误的Django应用程序,其开发人员均忘记了禁用其调试模式。
研究人员仅仅通过浏览部分服务器就发现,其中很多应用程序的调试模式暴露了极其敏感的信息,这些信息可能会允许恶意行为者获得该应用程序所有者的数据的完全访问权。而且,Django应用程序越复杂,查找到更敏感信息的机会就越高。
在某些情况下,暴露的数据库密码和AWS访问令牌不仅仅能够允许攻击者访问应用程序数据,还允许其访问应用程序所有者IT基础设施其他部分的信息。
并非Django本身的错误
Castro在一次私人访问中透露称,
我之所以能够发现这一安全问题,是因为我正在一个小项目中使用Django框架。使用过程中我注意到该框架存在一些错误异常,然后我就在Shodan(基于物联网的搜索引擎)上进行了搜索分析。
Castro继续说道,
分析结果显示,造成所有数据泄漏的主要原因就是启用了调试模式。这并非Django本身存在错误。我的建议是,在将该应用程序部署到生产时先禁用调试模式。
Castro说的确实是正确的。网络开发走过了漫漫25年的时间,你可能认为开发人员现在已经了解到,无论其开发堆栈如何,都永远不要为其站点和web应用程序启用调试模式。然而,事实带来的教训总是发人深省的