สรุปสั้น

CrowdSec บริษัทความปลอดภัยสัญชาติฝรั่งเศส เปิดเผยเมื่อวันที่ 18 กันยายนว่ามีผู้โจมตีคัดลอกรีโพซิทอรี GitHub ส่วนตัวของบริษัทไปราว 170 รายการเมื่อวันที่ 22 พฤษภาคม โดยใช้บัญชีของพนักงานที่เพิ่งลาออก จุดตั้งต้นคือเครื่องแล็ปท็อปของอดีตพนักงานผู้นั้นถูกยึดในการโจมตีซัพพลายเชนของ TanStack เมื่อเดือนพฤษภาคม ซึ่งแพ็กเกจ npm เวอร์ชันอันตรายได้ขโมยข้อมูลรับรองจากเครื่องของนักพัฒนา

ซอร์สโค้ดที่ถูกขโมยไปโผล่บนฟอรัมออนไลน์เมื่อวันที่ 16 กันยายน นอกจากโค้ดแล้วยังมีอีเมลของผู้ใช้ CrowdSec จำนวน 83 ราย รวมถึงชื่อ อีเมล และบริบทการลงทุนของนักลงทุนที่มีศักยภาพ 51 รายจากปี 2563 CrowdSec ระบุว่าบัญชีดังกล่าวถูกใช้เพียงเพื่อคัดลอกโค้ดเท่านั้น โครงสร้างพื้นฐานและฐานข้อมูลไม่ถูกเข้าถึง และไม่มีการแก้ไขโค้ดแต่อย่างใด

ที่น่าสังเกตคือรายงานฉบับวันที่ 18 กันยายนขัดแย้งกับแถลงการณ์ฉบับแรกที่ออกก่อนหน้าหนึ่งวัน ซึ่งเดิมระบุว่า “ไม่มีข้อมูลลูกค้า ชื่อผู้ใช้/รหัสผ่าน ชื่อ องค์กร หรือสิ่งใดรั่วไหล” ก่อนที่รายงานฉบับหลังจะยอมรับว่ามีอีเมลผู้ใช้และรายชื่อนักลงทุนหลุดออกไปจริง

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 19 กันยายน พ.ศ. 2569 ว่า CrowdSec ออกมาเปิดเผยรายละเอียดเหตุการณ์ที่มีผู้คัดลอกรีโพซิทอรีส่วนตัวราว 170 รายการของบริษัทไป

บริษัทระบุว่ายังคงเปิดสิทธิ์เข้าถึง GitHub ของอดีตพนักงานผู้นี้ไว้เพื่อให้เขาสะสางงานบางส่วนที่ค้างอยู่ให้เสร็จ โดยเครื่องของเขาถูกยึดในการโจมตีซัพพลายเชนของ TanStack เมื่อเดือนพฤษภาคม การคัดลอกเกิดขึ้นหลังจากนั้น 11 วัน ด้วยโทเคน OAuth ของ GitHub จากบัญชีของอดีตพนักงาน

CrowdSec ถอนบัญชีดังกล่าวออกจากองค์กร GitHub ของบริษัทเมื่อวันที่ 25 พฤษภาคม ซึ่งเป็นเวลาสามวันหลังการคัดลอกและหลายเดือนก่อนที่บริษัทจะรับรู้ถึงการรั่วไหล เนื่องจากสิทธิ์เข้าถึงอื่น ๆ ของเขาถูกถอนไปก่อนแล้ว บริษัทจึงอธิบายว่านี่คือเหตุผลที่ไม่พบกิจกรรมน่าสงสัยในระบบ AWS โทเคนดังกล่าวไม่ทิ้งร่องรอยในบันทึกของ GitHub ที่บริษัทสามารถตรวจสอบได้ และไม่มีอยู่แล้วเมื่อบริษัทรับรู้เรื่องการรั่วไหล ต่อมาทีมสนับสนุนของ GitHub ได้สืบประวัติของโทเคนและยืนยันข้อสงสัยว่า TanStack คือต้นตอ

การโจมตีเดียวกันนี้ยังลุกลามไปถึงบริษัทอื่น โดย Mistral AI ระบุว่ามีอุปกรณ์ของนักพัฒนาเกี่ยวข้องในกรณีของตน และ OpenAI ระบุว่ามีอุปกรณ์ของพนักงานสองเครื่องได้รับผลกระทบ พร้อมการเข้าถึงโดยไม่ได้รับอนุญาตไปยังรีโพซิทอรีโค้ดภายในชุดจำกัด

ไทม์ไลน์ 9 นาทีและตัวตนผู้โจมตี

รายงานของเว็บไซต์ Dark Reading (เผยแพร่ 22 กันยายน 2569) ให้รายละเอียดเพิ่มเติมว่า เครื่องของอดีตพนักงานถูกยึดด้วย worm ชื่อ Shai-Hulud ซึ่งเป็นกลไกเบื้องหลังการโจมตีซัพพลายเชน TanStack และการคัดลอกรีโพเกิดขึ้นอย่างรวดเร็วภายในเวลาเพียงราว 9 นาที ระหว่างเวลา 05:52 ถึง 06:01 UTC ของวันที่ 22 พฤษภาคม โดยผู้ที่ดาวน์โหลดข้อมูลรีโพมาจากที่อยู่ไอพีในเมืองโทรอนโต

การสืบสวนของ CrowdSec ร่วมกับ GitHub นำไปสู่ URL ที่มีโทเคน OAuth ของ GitHub ซึ่งถูกใช้เข้าถึงรีโพส่วนตัว และเชื่อมโยงปฏิบัติการกลับไปยังบัญชีของอดีตนักพัฒนาที่เพิ่งลาออกแต่ยังอยู่ในองค์กร GitHub ของบริษัทด้วยเหตุผลที่ชอบธรรม ทั้งนี้ Dark Reading ระบุว่าผู้ที่ดึงข้อมูลรีโพคือหนึ่งในผู้ก่อตั้ง BreachForum และสมาชิกที่ใช้ชื่อออนไลน์ว่า diencracked ส่วนการรับรู้ถึงการรั่วไหลเกิดขึ้นเมื่อวันที่ 16 กันยายน หลังมีผู้เผยแพร่ไฟล์บีบอัดที่มีซอร์สโค้ดของ CrowdSec บน pwnforum ซึ่งเป็นตลาดใต้ดินด้านอาชญากรรมไซเบอร์ จากนั้นทีม Fuites Info ได้ติดต่อแจ้ง CrowdSec ก่อนที่บริษัทจะเปิดเผยต่อสาธารณะ

วิธีการโจมตี

เมื่อวันที่ 11 พฤษภาคม มีการเผยแพร่แพ็กเกจ npm ของ TanStack เวอร์ชันอันตราย 84 เวอร์ชันจาก 42 แพ็กเกจ การโจมตีนี้ถูกติดตามในชื่อ CVE-2026-45321 การติดตั้งเวอร์ชันดังกล่าวจะรันโค้ดที่ขโมยข้อมูลรับรองจากเครื่อง รวมถึงโทเคน GitHub, คีย์ SSH และข้อมูลรับรองคลาวด์ ตามประกาศความปลอดภัยของ TanStack

จากข้อมูลของ CrowdSec ไฟล์ที่หลุดออกไปประกอบด้วยเว็บคอนโซล สคริปต์และโมเดลด้านวิทยาศาสตร์ข้อมูล สคริปต์อัตโนมัติ และอัลกอริทึมฉันทามติ (consensus algorithm) ที่ใช้ตัดสินว่า IP ใดจะถูกเพิ่มเข้าบัญชีดำ (blocklist) โดยระบุว่าโค้ดเก่าเกือบสี่เดือนและมีการเปลี่ยนแปลงไปมากแล้ว

การรั่วไหลยังเปิดเผยค่าเกณฑ์ (thresholds) ที่อัลกอริทึมฉันทามติใช้ เช่น จำนวนการตรวจจับที่ต้องมีก่อนจะเพิ่ม IP เข้าบัญชีดำ ซึ่งไม่เคยเปิดเผยมาก่อน อย่างไรก็ตาม CrowdSec ระบุว่าเท่าที่ทราบ บัญชีดำยังไม่สามารถถูก “วางยา” (poison) ให้บล็อก IP ที่ไม่เป็นอันตรายได้ เพราะผู้โจมตีต้องมีการตรวจจับหลายสิบครั้งจากเอนจินที่เชื่อถือได้หลายสิบตัวข้ามเครือข่ายหลายสิบเครือข่าย ซึ่งมีต้นทุนสูงมาก และบริษัทสามารถปรับค่าเกณฑ์ได้ตามที่ทำเป็นประจำ บริษัทเสริมว่าข้อมูลรับรองเดียวที่ใช้งานได้จริงในไฟล์ที่หลุดคือคีย์ของบริการแจ้งเตือน AWS SNS ซึ่งเผยแพร่ข้อความได้เพียงหัวข้อเดียว มีผู้พยายามใช้เมื่อวันที่ 17 สิงหาคมแต่ไปต่อไม่ได้

ผลกระทบ

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

มุมมองผู้เชี่ยวชาญและบทเรียนสำหรับผู้ป้องกัน

แม้ CrowdSec จะมีมาตรการความปลอดภัยหลายชั้นอยู่แล้ว ทั้งการแยกสิทธิ์อย่างเข้มงวด การยืนยันตัวตนสองปัจจัย (2FA) ตัวจัดการรหัสผ่าน รวมถึงการบันทึกล็อก การทำ pentest และการตรวจสอบอย่างต่อเนื่อง แต่ก็ยังถูกเจาะได้จากช่องว่างพื้นฐานเพียงจุดเดียว นาย John Strand เจ้าของบริษัท Black Hills Information Security ตั้งข้อสังเกตกับ Dark Reading ว่า หากบริษัทที่ล็อกดาวน์แน่นหนาระดับ CrowdSec ยังถูกเจาะผ่านการโจมตีซัพพลายเชนได้ ก็ชวนให้ตั้งคำถามว่ามีอีกกี่บริษัทที่ถูกเจาะไปแล้วโดยไม่มีมาตรการเข้มงวดในระดับเดียวกัน

นาย Denis Calderone ผู้ร่วมก่อตั้งและ COO ของบริษัท Suzu Labs ระบุว่าเหตุการณ์นี้ป้องกันได้ด้วยสุขอนามัยความปลอดภัยขั้นพื้นฐาน การเพิกถอนสิทธิ์ทันทีที่พนักงานลาออกเป็นเรื่องพื้นฐานที่สุด และย้ำว่าเครื่องแล็ปท็อปของนักพัฒนาถือเป็นส่วนหนึ่งของพื้นผิวการโจมตีขององค์กรไปแล้ว จึงควรติดตั้ง EDR บนทุกเครื่องที่แตะต้องโค้ดหรือโครงสร้างพื้นฐาน ซึ่งเป็นจุดที่ CrowdSec ยอมรับว่ายังไม่ได้บังคับใช้ในขณะเกิดเหตุ นอกจากนี้องค์กรควรปฏิบัติต่อซอร์สโค้ดของตนเสมือนข้อมูลอ่อนไหว สแกนหาความลับที่ฝังในโค้ด (hardcoded secrets) ก่อนที่ผู้โจมตีจะทำ และตั้งสมมติฐานว่าทุกสิ่งที่เคยคอมมิตลงไปอาจหลุดสู่สาธารณะได้เสมอ

คำแนะนำ

  • ถอนสิทธิ์เข้าถึงทั้งหมด รวมถึงโทเคน OAuth และคีย์ API ของพนักงานทันทีเมื่อพ้นสภาพ อย่าเปิดสิทธิ์ค้างไว้แม้เพื่อ “สะสางงาน”
  • บังคับใช้ซอฟต์แวร์ป้องกันปลายทาง (endpoint protection) บนเครื่องของนักพัฒนาและผู้ที่เข้าถึงโค้ดหรือระบบขององค์กร ซึ่ง CrowdSec ยอมรับว่าขณะเกิดเหตุยังไม่ได้บังคับใช้
  • ตรวจสอบและหมุนเวียนข้อมูลรับรองที่อาจสัมผัสกับแพ็กเกจ npm อันตราย และตรึงเวอร์ชันของ dependency (pin/lockfile) พร้อมตรวจสอบก่อนอัปเดต
  • เฝ้าระวังบันทึกการใช้โทเคน OAuth และกิจกรรมการโคลนรีโพผิดปกติในองค์กร GitHub
  • ทบทวนกระบวนการ offboarding ให้เชื่อมโยงกับการเพิกถอนสิทธิ์ทุกช่องทางแบบอัตโนมัติและตรวจสอบได้

แหล่งอ้างอิง