在上周早些时候,来自巴西的安全研究人员Fábio Castro通过推特发出警告称,配置错误的Django应用程序会暴露诸如API密钥、数据库密码或AWS访问密钥之类的敏感信息。
Castro表示,这种暴露的主要原因来自于服务器管理员没有关闭Django应用程序的调试模式,而并非来自于Django应用程序本身,这是一种属于由“人为原因”导致的数据泄露问题。
Django是一个非常强大且可自定义的Python框架,通常用于创建基于Python的Web应用程序、企业内部网络和应用程序后端。
28,165台运行Django的服务器存在暴露风险
Castro表示,他在上周通过Shodan搜索引擎共发现了28,165台没有关闭Django应用程序调试模式的服务器。
在对这些服务器进行粗略查看之后,Castro发现这样的应用程序会暴露一些极其敏感的信息,甚至能会让潜在攻击者能够访问到服务器所存储的全部数据。
Castro指出,Django在服务器上被运用得越深入,暴露的敏感信息可能会越多。在某些情况下,暴露的数据不仅仅来自应用程序本身,还可能是API密钥、数据库密码和AWS访问密钥,甚至可能允许潜在攻击者通过Django应用程序访问到其他IT基础设施上的信息。
原因来自配置错误 而非Django应用程序本身
“我在一个小型项目中使用Django框架时发现了这个问题。”Castro说:“我注意到了一些错误异常,然后使用Shodan进行了查找。”
Castro 补充说:“暴露的主要原因都启用了调试模式,这不是Django应用程序本身存在问题,我的建议是在将应用程序部署到生产环境时对调试模式进行禁用。”