图尔库大学的研究人员 (芬兰) 揭晓 最近 分析结果 他们对存储库中的包做了 通过 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 包包括下载和运行第三方可执行代码的能力。
最后 如果您有兴趣了解更多信息,您可以查看详细信息 在下面的链接中。