PyPI 存储库包含潜在的不安全代码

图尔库大学的研究人员 (芬兰) 揭晓 最近 分析结果 他们对存储库中的包做了 通过 PyPI 用于使用可能产生漏洞的潜在危险结构。 在分析中认为 执行了大约 197.000 个包裹,并确定了 749.000 个可能的安全问题。

换句话说,46% 的包至少有这些问题中的一个,其中最常见的问题是与处理异常和使用代码替换功能有关的问题。

在发现的 749 万个问题中,442 万个问题 (41%) 被标记为未成年人, 227 (30%) 为中度危险 80 (11%) 为危险。

该数据集基于存储在 Python 包索引 (PyPI) 中的所有包的快照...

就问题的类型而言,异常处理和不同的代码注入是最常见的问题。 从这个意义上说,线程模块脱颖而出。 考虑到通常较小的数据包大小,软件大小指标不能很好地预测通过分析揭示的问题数量。 

有些包与众不同,包含成千上万的问题:例如在PyGGI包中发现2589个问题,主要与使用“try-except-pass”构造有关,在appengine-sdk包中发现2356个问题。 genie.libs.ops、pbcore 和 genie.libs.parser 包也有很多问题。

应该注意的是,结果是在自动静态分析的基础上获得的,它没有考虑到某些结构的应用背景。

习惯扫描代码的 Bandit 开发人员建议 由于大量的误报,l扫描结果不能视为漏洞 无需对每个问题进行额外的人工审查。

例如,解析器将不可靠的随机数生成器和散列算法(如 MD5)的使用视为安全问题,而在代码中,此类算法可用于不影响安全性的目的。

分析器还认为任何外部数据处理 在不安全的函数中,例如 pickle、yaml.load、subprocess 和 eval 这是一个问题,但这种使用不一定与漏洞相关,事实上,这些功能的使用可能是一个问题,不会对安全构成威胁。

在研究中使用的对照中:

  • 使用可能不安全的函数 exec、mktemp、eval、mark_safe 等。
  • 文件访问权限的不安全配置。
  • 将网络插头连接到所有网络接口。
  • 密码和加密密钥的使用。
  • 使用预定义的临时目录。
  • 在 catch-all-style 异常处理程序中使用 pass 和 continue。
  • 在启用调试模式的情况下启动基于 Flask Web 框架的 Web 应用程序。
  • 使用不安全的方法反序列化数据。
  • 使用 MD2、MD4、MD5 和 SHA1 哈希函数。
  • 使用不安全的 DES 密码和加密模式。
  • 在某些版本的 Python 中使用不安全的 HTTPSConnection 实现。
  • 指定文件:// urlopen 中的架构。
  • 在执行加密任务时使用伪随机数生成器。
  • 使用 Telnet 协议。
  • 使用不安全的 XML 解析器。

此外,还提到了在 PyPI 目录中检测到 8 个恶意包。 问题包在被删除之前被下载了超过 30 次。 为了隐藏恶意活动并避免对包进行简单的静态解析器警告,我们对使用 Base64 格式的代码使用块编码,并在解码后通过调用 eval 来组织它们的执行。

在noblesse、genesisbot、suff、noblesse2和noblessev2包中发现的代码用于拦截存储在Chrome和Edge浏览器中的信用卡号和密码,以及从Discord应用程序转移帐户令牌并从系统发送数据,包括屏幕截图画面内容。 ... pytagora 和 pytagora2 包包括下载和运行第三方可执行代码的能力。

最后 如果您有兴趣了解更多信息,您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。