Python 包的 PyPI(Python 包索引)存储库的管理员报告了一起事件,攻击者因此能够夺取对 arrapi、tmdbapis、nagerapi 和 pmmutils 项目的控制权,每月下载量约为 4.5 次。 所有项目均由一位作者(meisnate12、Nathan Taggart)维护,并因其帐户被盗而被捕获。 获得了项目控制权的攻击者很快就被阻止,没有时间进行更改和创建修改后的版本。
此次接管是通过更换项目业主进行的。 攻击者创建了帐户“dvolk”,然后代表主要维护者“meisnate12”生成了一个邀请,将用户“dvolk”纳入维护者之中,在接受该邀请并获得对该项目的控制访问权限后,他删除了该项目的原始作者并仍然是一名维护者。 执行类似操作后,所有项目都会启动删除“meisnate12”帐户的过程。
项目被接管 5 小时后,PyPI 管理员收到了原作者发来的关于所发生事件的消息,封锁了攻击者的帐户并恢复了项目的所有权。 事件的原因被确定为帐户保护不充分且缺乏双因素身份验证,这使得攻击者能够确定用户“meisnate12”的登录参数并代表他执行操作。
到今年年底,PyPI 存储库打算将支持至少一个项目或监管组织成员的所有用户帐户转为强制使用两因素身份验证。 使用双因素身份验证将加强对开发过程的保护,并保护项目免受因凭据泄露、在受感染网站上使用相同密码、开发人员本地系统遭到黑客攻击或使用社会工程而导致的恶意更改方法。
首选的双因素身份验证方法是带有 FIDO U2F 令牌的 WebAuthn 或支持 TOTP 的一次性密码身份验证应用程序,例如 Authy、Google Authenticator 和 FreeOTP。 下载软件包时,还建议开发人员切换到基于 OpenID Connect (OIDC) 标准的“受信任的发布者”身份验证方法或使用 API 令牌。
来源: opennet.ru
