พบแพ็คเกจ Python ที่เป็นอันตรายจำนวนมากบน PyPI มีความเสี่ยงทำให้ผู้ใช้งานถูกขโมย AWS keys

ตรวจพบแพ็คเกจ Python ที่เป็นอันตรายจำนวนมากบน PyPI ทำการขโมยข้อมูล เช่น AWS Credential และส่งข้อมูลไปยังปลายทางที่เป็นสาธารณะซึ่งทุกคนสามารถเข้าถึงได้

PyPI เป็นคลังโปรแกรม และไลบรารีเสริมของ Python ที่เป็น Open Source สำหรับให้นักพัฒนาได้สร้างขึ้น และแบ่งปันให้ผู้อื่นโหลดมาใช้งาน โดยปกติ PyPI จะมีการตอบสนองอย่างรวดเร็วหากมีผู้ใช้งานรายงานไฟล์ที่อันตราย แต่การอัพโหลดไฟล์ขึ้นไปให้ดาวโหลดนั้นกลับไม่มีการตรวจสอบก่อน ทำให้แพ็คเกจที่เป็นอันตรายจึงอาจแฝงตัวอยู่ได้ช่วงเวลาหนึ่ง (more…)

‘CTX’ และ ‘PHPass’ ถูก Hijacking libraries เพื่อขโมย AWS keys

วันที่ 24 พฤษภาคม ที่ผ่านมา มีนักพัฒนาได้สังเกตเห็น “CTX” และ “PHPass” ที่เป็น Library ของ Python และ PHP มีการเปลี่ยนแปลงบางอย่างเพื่อใช้ขโมย AWS credentials ของนักพัฒนาซอฟต์แวร์ โดย library ดังกล่าวได้ถูกดาวน์โหลดไปแล้วมากกว่า 3 ล้านครั้งตลอดช่วงเวลาที่ผ่านมา จึงทำให้กลุ่มนักพัฒนารู้สึกวิตกกังวลจากผลกระทบจาก Hijacking บน Software supply chain นี้

แฮ็กเกอร์ที่อยู่เบื้องหลังการ Hijacking ในครั้งนี้ได้ออกมาอธิบายเหตุผลของการดำเนินการในครั้งนี้ว่า เขาทำไปเพื่อเป็นการฝึกหา Bug และไม่ได้มีเจตนาร้ายใด ๆ

ซึ่งอันที่จริงแล้ว แฮ็กเกอร์ที่ว่านี้เป็นนักวิจัยความปลอดภัยชื่อว่า Yunus Aydin หรือ Sock Puppets ที่อยู่ในอีสตันบูล โดยได้รับการยืนยันข้อเท็จจริงจาก BleepingComputer โดยเขาได้บอกเหตุผลของการขโมย AWS credentials ว่าต้องการให้เห็นถึงผลกระทบสูงสุด ของการโจมตีในรูปแบบนี้

“CTX” ที่เป็น Python library พบว่าถูกโจมตีครั้งแรกจาก Reddit เมื่อมีผู้ใช้ชื่อว่า jimtk ได้สังเกตว่า Library ที่ซึ่งไม่อัพเดทมานานกว่า 8 ปีมีเวอร์ชันใหม่ออกมาอย่างกระทันหัน และมีการดึงข้อมูลจำพวก environment variables และ AWS secret keys ส่งออกไปยังปลายทางบน Heroku

ยังมี Ethical hacker อีกคน ชื่อว่า สมเทพ สังวาลย์ ที่ได้สังเกตเห็นเช่นกันว่า หนึ่งใน PHP framework “PHPass” ก็ได้ถูกดัดแปลงเพื่อขโมย AWS secret keys ในลักษณะเดียวกัน และส่งไปยังปลายทางเดียวกัน

BleepingComputer ได้สังเกตว่า ภายในเวอร์ชันที่แก้ไขของ “CTX” นั้น ชื่อของผู้เขียน “author” ได้รับการแก้ไข โดยมีการระบุชื่อของ “Yunus AYDIN แทนที่ Robert Ledger ที่เป็นผู้ดูแล Library คนเดิม แต่ว่าที่อยู่อีเมลของบัญชียังคงอยู่เหมือนเดิม

ในระหว่างที่ Yunus AYDIN อ้างว่าเป็นการทำไปเพื่องานวิจัยทั้งหมด แต่ผู้ที่ได้รับผลกระทบจากพฤติกรรมเหล่านี้อาจจะไม่ได้มองแบบเดียวกัน

POC และ Bug Bounty Exercises ส่วนใหญ่ที่กำหนดเป้าหมายไปที่ Open source libraries จะใช้โค้ดแบบง่าย ๆ เช่น การพิมพ์ข้อความว่า “you are hacked!” บนระบบของเป้าหมาย หรือการดึงเฉพาะข้อมูลพื้นฐานออกไป เช่น User IP Address, hostname และ working directory

นักวิจัยสามารถใช้ข้อมูลนี้เพื่อพิสูจน์ว่าพวกเขาเจาะระบบได้สำเร็จ และได้รับรางวัลจากโครงการ bug bounty และต้องเปิดเผยข้อมูลอย่างตรงไปตรงมา

แต่ในกรณีของ “CTX” และ “PHPass” เวอร์ชันที่ถูก Hijacking นั้นไม่ได้หยุดอยู่แค่การ POC แต่การกระทำครั้งนี้ยังได้ขโมย environment variables และ AWS credentials ไปด้วย จึงทำให้เกิดข้อสงสัยในเจตนาของ hijacker

การขโมยข้อมูลสำคัญที่ถูกเก็บไว้ใน environment variables เช่น รหัสผ่าน หรือ API keys เป็นการข้ามเส้น โดยเฉพาะอย่างยิ่งเมื่อมีการ hijacking library ยอดนิยมอย่าง ‘ctx’ และ ‘PHPass’

ทาง Aydin ได้กล่าวว่า การวิจัยทั้งหมดของเขาไม่ได้เป็นปฏิบัติการที่เป็นอันตรายแต่อย่างใด และเขาได้มีการส่งรายงานไปที่ HackerOne เพื่อแสดงถึงผลกระทบที่อาจจะเกิดขึ้นแล้ว โดยต้องการแสดงให้เห็นว่าการโจมตีง่าย ๆ นี้ ส่งผลต่อผู้ใช้ และบริษัทกว่า 10 ล้านคนได้ยังไง และข้อมูลทั้งหมดที่เขาได้รับจะถูกลบ และไม่ได้นำไปใช้งานต่อแต่อย่างใด

ในส่วนของวิธีการที่ Aydin ทำการ Hijacking นั้น เริ่มจากเขาได้ใช้บอทเพื่อรวบรวมข้อมูล open source registry ต่าง ๆ และขุดที่อยู่อีเมลของผู้ดูแลที่ถูกระบุไว้แต่ละแพคเกจใน registry และทุกครั้งที่บอทพบที่อยู่อีเมลที่ใช้ชื่อโดเมนที่กำหนดเอง ซึ่งหมดอายุแล้ว Aydin จะได้รับการแจ้งเตือน

ซึ่ง ‘ctx’ ที่ไม่ได้มีการอัพเดทมานานหลายปีได้เผยแพร่ Registry ไปยัง PyPI โดยใช้ที่อยู่อีเมลผู้ดูแลเป็น figlief@figlief[.]com

Aydin ได้อธิบายว่าหลังจากที่บอทพบ domain ดังกล่าวที่หมดอายุก็จะมีการแจ้งเตือนว่าโดเมนไม่ถูกต้อง ดังนั้น ถ้าเขาซื้อโดเมนนั้น เขาจะสามารถส่งอีเมลลืมรหัสผ่าน และเข้าครอบครองแพคเกจ นั้นได้ หลังจากลงทะเบียนชื่อโดเมน figlief[.]com ที่พร้อมใช้งานแล้ว และได้สร้างที่อยู่อีเมลของผู้ดูแลใหม่แล้ว เขาก็จะเริ่มต้นการรีเซ็ตรหัสผ่านบน PyPI สำหรับ ‘ctx’ project ได้สำเร็จ

ด้วยวิธีนี้เขาสามารถเข้าสู่บัญชีผู้ดูแล PyPI สำหรับแพคเกจ ‘ctx’ และเผยแพร่เวอร์ชันที่แก้ไขแล้วได้

การ Hijacking ผ่านโดเมนผู้ดูแลระบบที่หมดอายุนั้นไม่ใช่การโจมตีแบบใหม่ และนี่เป็นปัญหาที่ทราบกันดีอยู่แล้ว ซึ่งไม่เพียงแค่การลงทะเบียน open source เท่านั้น แต่ยังรวมถึงเว็บไซต์แทบทุกแห่งที่ผู้ใช้สามารถลงทะเบียนบัญชีด้วยที่อยู่อีเมลแบบชื่อโดเมนที่กำหนดเองได้ ซึ่งหากชื่อโดเมนหมดอายุในภายหลัง ก็อาจทำให้ผู้ไม่หวังดีสามารถลงทะเบียนชื่อโดเมน และเข้าสู่ระบบเพื่อรีเซ็ตรหัสผ่านได้

นอกจากนี้ กรณีศึกษาจากนักวิจัยจาก Microsoft และ North Carolina State University พบว่าโปรเจ็กต์ JavaScript หลายพันโปรเจ็กต์บน npm ก็มีที่อยู่อีเมลของผู้ดูแลที่ใช้ชื่อโดเมนที่หมดอายุ ซึ่งทำให้โปรเจ็กต์เหล่านี้เสี่ยงต่อการถูก Hijacks ด้วยเช่นกัน

ที่มา : bleepingcomputer.