Alex Birsan รายงานถึงการโจมตีองค์กรขนาดใหญ่จำนวนมากด้วยการสร้างแพ็กเกจไลบรารีเลียนแบบชื่อไลบรารีในองค์กรแล้วไปวางตามบริการดาวน์โหลดไลบรารีไม่ว่าจะเป็น RubyGems, npm, หรือ PyPI
องค์กรขนาดใหญ่จำนวนมากมักมีไลบรารีเฉพาะทางของตัวเองใช้งานภายในเป็นเรื่องปกติ และหลายครั้งชื่อไลบรารีเหล่านี้ก็หลุดออกมาสู่โลกภายนอก เช่น Paypal เคยทำไฟล์ package.json ที่ใช้ภายในหลุดออกมาอยู่บน GitHub ทำให้รู้ว่าบริษัทมีการใช้งานไลบรารีภายในเช่น pplogger, auth-paypal, wurfl-paypal, analytics-paypal เป็นต้น หรือแม้แต่แอปเปิลก็เคยทำรายชื่อแพ็กเกจเหล่านี้หลุดออกมาเช่นกัน
การติดตั้งไลบรารีนับเป็นสิทธิค่อนข้างสูง ตัวติดตั้งไลบรารีมักรันโค้ดในส่วนติดตั้งแพ็กเกจทันทีที่ดาวน์โหลดเสร็จ ทำให้หากแฮกเกอร์หลอกให้องค์กรดาวน์โหลดแพ็กเกจได้ก็จะรันโค้ดจากภายในองค์กรได้ทันที ตัว Alex เองพัฒนาแพ็กเกจพิเศษที่จะรายงานกลับเซิร์ฟเวอร์ทุกครั้งที่มีคนติดตั้งแพ็กเกจไป โดยรายงานผ่าน DNS lookup ทำให้เซิร์ฟเวอร์ควบคุมรู้ได้ว่าเครื่องอะไรติดตั้งแพ็กเกจไปแล้วบ้างแม้ตัวเครื่องนั้นจะเชื่อมต่ออินเทอร์เน็ตไม่ได้ก็ตามที เขาวางแพ็กเกจแบบเดียวกันใน 3 ภาษาคือ Ruby, JavaScript, และ Python
ผลของการวางแพ็กเกจทำให้ Alex สามารถรันโค้ดจากภายในองค์กรใหญ่ๆ ได้จำนวนมาก ทั้ง Apple, Microsoft, Netflix, Shopify, Uber, Yelp ส่งผลให้เขาได้รางวัลรายงานช่องโหว่ระดับสูงจากบริษัทเหล่านี้
ต้นตอของปัญหาคือระบบดาวน์โหลดแพ็กเกจของภาษาต่างๆ จะพยายามเลือกแพ็กเกจเวอร์ชั่นสูงสุดให้เสมอ หากพบว่ามีแพ็กเกจชื่อเดียวกันแต่เลขเวอร์ชั่นสูงกว่าในเซิร์ฟเวอร์นอกบริษัท ตัวดาวน์โหลดแพ็กเกจก็จะพยายามดาวน์โหลดจากภายนอกทันที
ทางด้าน Microsoft Azure ออกรายงานแนะนำกระบวนการป้องกันการโจมตีรูปแบบนี้พร้อมกับรายงานของ Alex
ที่มา - Medium: @alex.birsan

on
วางแผนรอบเดียว กินรอบวงเลย
sukoom2001 Thu, 11/02/2021 - 12:48
วางแผนรอบเดียว กินรอบวงเลย
เก่งม าก
tom789 Thu, 11/02/2021 - 12:54
เก่งม าก
กล้ามาก
jane Thu, 11/02/2021 - 13:15
In reply to เก่งม าก by tom789
กล้ามาก
ขอบใจ
narate Thu, 11/02/2021 - 13:48
In reply to กล้ามาก by jane
ขอบใจ
หนึ่ง สอง หนึ่ง สอง สาม
crucifier Thu, 11/02/2021 - 14:13
In reply to ขอบใจ by narate
หนึ่ง สอง หนึ่ง สอง สาม
โฟว์ ไฟท์
Hadakung Thu, 11/02/2021 - 17:44
In reply to หนึ่ง สอง หนึ่ง สอง สาม by crucifier
โฟว์ ไฟท์
หนึ่ง หนึ่ง สอง หนึ่ง หนึ่ง
Pearseak Fri, 12/02/2021 - 10:35
In reply to หนึ่ง สอง หนึ่ง สอง สาม by crucifier
หนึ่ง หนึ่ง สอง หนึ่ง หนึ่ง สอง หนึ่ง
hahaha
olosol@hotmail.com Thu, 11/02/2021 - 14:31
hahaha
แสดงว่าต้องรู้ชื่อ package
deaknaew Thu, 11/02/2021 - 21:26
แสดงว่าต้องรู้ชื่อ package ภายใน และชื่อนั้นต้องไม่โดนจองไว้ด้วย และเลขเวอร์ชั่นก็ต้องมากกว่าในองค์กรและ ไม่เวอร์วัง ด้วย?
ชื่อ package
lew Thu, 11/02/2021 - 22:18
In reply to แสดงว่าต้องรู้ชื่อ package by deaknaew
-paypalต่อท้ายชื่อแพ็กเกจ ไม่ให้ซ้ำใครง่าย ๆ จนคิดไม่ถึงเลย โหดมาก
-Rookies- Thu, 11/02/2021 - 23:15
ง่าย ๆ จนคิดไม่ถึงเลย โหดมาก
หรือจริง ๆ
mr_tawan Fri, 12/02/2021 - 14:07
หรือจริง ๆ ในระดับองค์กรณ์ควรใช้ registry แบบ pull จาก repository ของนักพัฒนาโปรเจคตรง ๆ (แลวดูแลเอง) มากกว่า registry ที่เปิดให้ใครมา push package ใส่ให้ก็ได้กันนะ ?
แต่เอาจริง ๆ การใช้โค๊ดแบบไม่ระบุที่มามันก็อันตรายอยู่แฮะ