แจ้งเตือน การเปิดเผยอีเมลโปรเจกต์บน GitLab สาธารณะ เสี่ยงถูกสั่งรันคำสั่งโดยไม่ได้รับอนุญาต - Thailand Computer Emergency Response Team (ThaiCERT)警告:在公共 GitLab 平台上披露项目电子邮件地址存在未经授权执行命令的风险 - 泰国计算机应急响应小组 (ThaiCERT)
ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่ง

ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่งชาติ (ThaiCERT) ขอแจ้งเตือนถึงภัยคุกคามที่เกิดจากการเปิดเผยที่อยู่อีเมลโปรเจกต์ (Project Email Addresses) ผ่าน GitLab สาธารณะในเอกสารประกอบ เช่น README หรือคู่มือการสนับสนุนอื่น ๆ ภายในโปรเจกต์ ซึ่งอาจทำให้ผู้ไม่หวังดีสามารถส่งโค้ดหรือคำสั่งเข้าสู่ระบบได้โดยไม่ได้รับอนุญาต
1. รายละเอียดภัยคุกคาม [1] GitLab มีฟีเจอร์ที่อนุญาตให้ผู้ใช้ส่งอีเมลไปยังที่อยู่เฉพาะ (Project Email Addresses) เพื่อสร้าง Issue หรือ Merge Request โดยอัตโนมัติ อย่างไรก็ตาม ช่องโหว่ด้านความปลอดภัยนี้เกิดจากการที่นักพัฒนาหรือผู้ดูแลระบบมักเปิดเผยอีเมลเหล่านี้ในหน้าเว็บสาธารณะอย่าง README.md, CONTRIBUTING.md หรือหน้า Support เพื่ออำนวยความสะดวกในการรายงานช่องโหว่ หรือ Bug ภายในโปรเจกต์ เมื่อผู้ไม่หวังดีพบอีเมลเฉพาะของโปรเจกต์ (Project Email Addresses) เหล่านี้ อาจทำให้ผู้ไม่หวังดีสามารถส่งอีเมลที่มีเนื้อหาเป็นโค้ดหรือสคริปต์อันตรายไปยังที่อยู่นั้นได้ หากโปรเจกต์มีการตั้งค่าให้รันคำสั่งอัตโนมัติ (เช่น CI/CD pipelines) เมื่อมี Merge Request ใหม่ หรือหากมีกระบวนการตรวจสอบโค้ด (Code Review) ที่ไม่เข้มงวด โค้ดอันตรายอาจถูกผสานรวมเข้ากับโค้ดหลักได้ นอกจากนี้ การเปิดเผยอีเมลยังอาจนำไปสู่การโจมตีแบบฟิชชิ่ง (Phishing) ต่อทีมพัฒนา หรือการโจมตีแบบ Supply Chain Attack หากโค้ดที่ส่งเข้าไปถูกนำไปใช้ต่อในโปรเจกต์อื่น ๆ ที่พึ่งพา Library นี้
2. ระบบที่อาจได้รับผลกระทบ 2.1 ระบบ GitLab ที่เปิดใช้งานฟีเจอร์ Project Email Addresses สำหรับโปรเจกต์สาธารณะ 2.2 องค์กรที่เผยแพร่ที่อยู่อีเมลโปรเจกต์ GitLab ในหน้าเว็บสาธารณะ เช่น README, CONTRIBUTING.md, หรือหน้า Support 2.3 ระบบ CI/CD Pipeline ที่เชื่อมต่อกับ GitLab และอนุญาตให้รันคำสั่งจาก Merge Request ที่สร้างผ่านอีเมล
3. ผลกระทบที่อาจเกิดขึ้น หากถูกโจมตีสำเร็จ ผู้ไม่หวังดีสามารถใช้สคริปต์อัตโนมัติเพื่อค้นหาที่อยู่อีเมลโปรเจกต์จากหน้าเว็บสาธารณะ และส่งอีเมลที่มีเนื้อหาที่เป็นอันตราย เช่น โค้ดสคริปต์ที่พยายามรันคำสั่งบนเซิร์ฟเวอร์ CI/CD หรือการแก้ไขไฟล์ Configuration ซึ่งอาจนำไปสู่การขโมยข้อมูล Credential หรือการ Lateral Movement ภายในเครือข่ายองค์กรได้
4. แนวทางการตรวจสอบและป้องกัน 4.1 ตรวจสอบและลบที่อยู่อีเมลโปรเจกต์ GitLab ออกจากหน้าเว็บสาธารณะทั้งหมด รวมถึง README, คู่มือการสนับสนุน และเอกสารอื่น ๆ 4.2 ปิดใช้งานฟีเจอร์ Project Email Addresses สำหรับโปรเจกต์ที่ไม่จำเป็นต้องรับรายงานผ่านอีเมล หรือจำกัดการเข้าถึงให้เฉพาะผู้ใช้ภายในองค์กรเท่านั้น 4.3 ตรวจสอบบันทึกการเข้าถึง (Access Logs) ของ GitLab เพื่อค้นหาความผิดปกติในการสร้าง Issue หรือ Merge Request ผ่านอีเมลในช่วงเวลาที่ผ่านมา 4.4 อัปเดตระบบ CI/CD Pipeline ให้มีการตรวจสอบโค้ด (Code Review) อย่างเข้มงวดก่อนการรันคำสั่งใด ๆ จาก Merge Request ที่สร้างผ่านช่องทางที่ไม่ใช่ Web Interface
5. แนวทางลดความเสี่ยงชั่วคราว 5.1 จำกัดการเข้าถึงที่อยู่อีเมลโปรเจกต์ GitLab ให้เฉพาะผู้ใช้ที่ผ่านการยืนยันตัวตน (Authenticated Users) เท่านั้น 5.2 ใช้ระบบกรองอีเมล (Email Filtering) เพื่อตรวจจับและบล็อกอีเมลที่มีเนื้อหาที่เป็นอันตรายหรือพยายามรันคำสั่ง 5.3 ตรวจสอบสิทธิ์การเข้าถึงระบบ CI/CD Pipeline ให้แน่ใจว่าผู้ใช้ภายนอกไม่สามารถรันคำสั่งหรือเข้าถึงข้อมูลความลับได้
ThaiCERT เห็นว่า การเปิดเผยข้อมูลที่ไม่จำเป็นบนหน้าเว็บสาธารณะเป็นความเสี่ยงที่องค์กรควรให้ความสำคัญอย่างยิ่ง โดยเฉพาะอย่างยิ่งข้อมูลที่เกี่ยวข้องกับระบบพัฒนาซอฟต์แวร์ ดังนั้น องค์กรควรทบทวนและปรับปรุงนโยบายการเปิดเผยข้อมูล รวมถึงเพิ่มมาตรการรักษาความปลอดภัยสำหรับระบบ GitLab และ CI/CD Pipeline อย่างเร่งด่วน
แหล่งอ้างอิง [1] https://dg.th/er5i9jxvcl
泰国国家计算机安全事件响应中心 (ThaiCERT) 发出警告,公开的 GitLab 文档(例如 README 文件或其他项目支持手册)中泄露项目电子邮件地址会带来安全威胁。恶意攻击者可能利用这些信息向系统中注入未经授权的代码或命令。
1. 威胁详情 [1] GitLab 提供了一项功能,允许用户自动向特定项目邮箱地址发送电子邮件以创建 Issue 或 Merge Request。然而,此安全漏洞源于开发者或管理员经常在 README.md、CONTRIBUTING.md 或支持页面等公共网页上公开这些邮箱地址,以便于报告项目中的漏洞或错误。当恶意方找到这些项目邮箱地址时,他们可能能够向这些地址发送包含恶意代码或脚本的电子邮件。如果项目配置为在创建新的 Merge Request 时自动运行命令(例如,CI/CD 流水线),或者代码审查流程不够严格,则恶意代码可能被集成到核心代码中。此外,如果提交的代码被用于其他依赖该库的项目,则公开这些邮箱地址可能导致针对开发团队的网络钓鱼攻击或供应链攻击。
2. 可能受影响的系统:2.1 为公共项目启用“项目电子邮件地址”功能的 GitLab 系统。2.2 在公共网页(例如 README、CONTRIBUTING.md 或支持页面)上发布 GitLab 项目电子邮件地址的组织。2.3 连接到 GitLab 并允许执行通过电子邮件创建的合并请求中命令的 CI/CD 流水线系统。
3. 潜在影响:如果攻击成功,恶意攻击者可以使用自动化脚本从公共网页中查找项目电子邮件地址,并发送包含有害内容的电子邮件,例如试图在 CI/CD 服务器上执行命令或修改配置文件的脚本代码。这可能导致凭证被盗或在组织网络内横向移动。
4. 监控和预防指南 4.1 审查并从所有公共网页(包括 README 文件、支持指南和其他文档)中移除 GitLab 项目电子邮件地址。4.2 对不需要电子邮件报告的项目禁用“项目电子邮件地址”功能,或仅限内部用户访问。4.3 审查 GitLab 访问日志,查找过去通过电子邮件创建问题或合并请求的异常情况。4.4 更新 CI/CD 流水线,在执行通过 Web 界面以外的渠道创建的合并请求中的任何命令之前,进行严格的代码审查。
5. 临时风险缓解措施:5.1 仅限已验证用户访问 GitLab 项目邮箱地址。5.2 使用邮件过滤功能检测并阻止包含恶意内容或试图执行命令的邮件。5.3 验证 CI/CD 流水线访问权限,确保外部用户无法执行命令或访问机密数据。
ThaiCERT认为,在公共网站上披露不必要的信息会带来风险,组织机构应高度重视,尤其是与软件开发系统相关的信息。因此,各组织机构应尽快审查并修订其信息披露政策,并加强GitLab和CI/CD流水线的安全措施。
参考文献[1] https://dg.th/er5i9jxvcl