TL; DR
การประนีประนอมของ axios npm แสดงให้เห็น ห่วงโซ่อุปทานสมัยใหม่โจมตีอย่างไร การใช้ประโยชน์จากจุดอ่อนที่เชื่อถือได้เพื่อเข้าถึงข้อมูลที่ละเอียดอ่อนในระหว่างการทำงาน เหตุการณ์นี้ได้รับการวิเคราะห์โดยนักวิจัยด้านความปลอดภัยหลายคน รวมถึงการวิเคราะห์โดยละเอียดจาก... Unit42 การรายงานข่าวในอุตสาหกรรมที่เน้นรูปแบบการระบุแหล่งที่มาซึ่งเชื่อมโยงกับกิจกรรมของรัฐชาติ
เหตุการณ์นี้ส่งผลกระทบต่อ:
- ทีม DevOps ที่กำลังดำเนินการ CI/CD pipelines ที่มีการตรวจสอบสิทธิ์ตามสภาพแวดล้อม
- บริการแบ็กเอนด์ที่จัดการคำขอ API ที่ผ่านการตรวจสอบสิทธิ์
- แอปพลิเคชันที่ใช้ axios สำหรับการสื่อสาร HTTP ภายในและภายนอก
เนื่องจาก axios อยู่ในเลเยอร์การร้องขอ เวอร์ชันที่ถูกบุกรุกจึงสามารถเข้าถึงสิ่งต่อไปนี้ได้:
- ส่วนหัวการอนุญาตและ โทเค็น API
- ตัวแปรสภาพแวดล้อมและข้อมูลลับ
- การสื่อสารบริการภายใน
ผลกระทบที่แท้จริงไม่ได้อยู่ที่การพึ่งพาอาศัยกันนั้น แต่เป็นสิ่งที่สามารถเข้าถึงได้เมื่อดำเนินการแล้ว
การดำเนินการทันที:
- ล็อกเวอร์ชันของส่วนประกอบที่จำเป็นและตรวจสอบการอัปเดตล่าสุด
- หมุนเวียนคีย์ API โทเค็น และ CI/CD หนังสือรับรอง
- ตรวจสอบคำขอขาออกและกิจกรรมการตรวจสอบสิทธิ์
- กรรมการตรวจสอบ pipelines สำหรับความลับที่ถูกเปิดเผย
เกิดอะไรขึ้นในการโจมตี npm ของ Axios
เหตุการณ์ที่เกิดขึ้นกับ axios เป็นตัวอย่างหนึ่งของรูปแบบการโจมตีห่วงโซ่อุปทานที่กำลังเพิ่มมากขึ้น โดยผู้โจมตีมักมุ่งเป้าไปที่ส่วนประกอบที่ใช้งานกันอย่างแพร่หลาย แทนที่จะโจมตีช่องโหว่ของแอปพลิเคชัน
ด้วยการเจาะระบบแพ็กเกจที่เชื่อถือได้ ผู้โจมตีสามารถเข้าถึงและสั่งการในสภาพแวดล้อมนับพันแห่งพร้อมกันได้
เนื่องจาก axios เป็นหนึ่งในไคลเอ็นต์ HTTP ที่ใช้กันอย่างแพร่หลายที่สุดในระบบนิเวศของ JavaScript จึงมีการบูรณาการอย่างลึกซึ้งกับ:
- บริการแบ็กเอนด์
- แอปพลิเคชันฟรอนต์เอนด์
- CI/CD pipelines
สิ่งนี้ทำให้มันเป็นเป้าหมายที่มีมูลค่าสูง
เมื่อมีการนำเวอร์ชันที่เป็นอันตรายเข้ามาและเรียกใช้งาน มันจะได้รับสิทธิ์เดียวกันกับแอปพลิเคชันที่นำเข้า ซึ่งรวมถึงการเข้าถึงการรับส่งข้อมูลเครือข่าย ข้อมูลประจำตัว และบริการภายใน
การรั่วไหลของข้อมูลดังกล่าวได้รับความสนใจในวงกว้างนอกเหนือจากแวดวงความปลอดภัย โดยมีรายงานจากสำนักข่าวต่างๆ เช่น Axios ความคุ้มครอง
ซึ่งชี้ให้เห็นถึงความเชื่อมโยงที่อาจเกิดขึ้นกับกลุ่มผู้คุกคามขั้นสูงและแคมเปญที่ประสานงานกัน
สิ่งที่ Axios Attack ทำจริง ๆ ในระหว่างการทำงาน
หัวใจสำคัญในการทำความเข้าใจการโจมตีนี้คือการวิเคราะห์พฤติกรรมขณะรันไทม์
Axios ทำงานที่เลเยอร์ HTTP ซึ่งหมายความว่ามันจัดการคำขอขาออก ทำให้มันสามารถมองเห็นข้อมูลสำคัญที่ไหลผ่านแอปพลิเคชันได้โดยตรง
เวอร์ชันที่ถูกดัดแปลงอาจ:
- ดักจับคำขอขาออกก่อนที่จะถูกส่งออกไป
- การจับกุม
Authorizationส่วนหัวและโทเค็น API - เข้าถึงตัวแปรสภาพแวดล้อมผ่านทาง
process.env - สังเกตการสื่อสารระหว่างหน่วยงานภายใน
ตัวอย่างเช่น โปรแกรมดักจับข้อมูลที่เป็นอันตรายสามารถดึงส่วนหัวการตรวจสอบสิทธิ์และส่งต่อไปยังปลายทางภายนอกโดยไม่ให้ใครรู้ได้
ในขณะเดียวกัน การเข้าถึงตัวแปรสภาพแวดล้อมทำให้ผู้โจมตีสามารถดึงข้อมูลประจำตัวได้โดยไม่ต้องแก้ไขตรรกะของแอปพลิเคชัน
จากภายนอก ทุกอย่างยังคงทำงานได้ตามปกติ คำขอต่างๆ เสร็จสมบูรณ์ บริการตอบสนองตามปกติ และ pipelineระบบไม่แสดงสัญญาณความล้มเหลวใดๆ ในขณะเดียวกัน ข้อมูลสำคัญอาจถูกเปิดเผยไปแล้วผ่านทางเส้นทางการทำงานเบื้องหลัง
ขั้นตอนการโจมตีของ Axios: จากแพ็กเกจที่ถูกบุกรุกไปสู่การเปิดเผยข้อมูลลับ
1. ประนีประนอม
ผู้โจมตีเข้าควบคุมบัญชีผู้ดูแลระบบที่เชื่อถือได้ หรือเส้นทางการเผยแพร่แพ็กเกจภายในระบบนิเวศของ axios ได้
2 การกระจาย
มัลแวร์เวอร์ชันที่เป็นอันตรายจะถูกเผยแพร่ไปยัง npm และถูกดึงเข้าไปในเครื่องของนักพัฒนา CI/CD pipelineและการสร้างแอปพลิเคชันจะดำเนินการผ่านการอัปเดตการพึ่งพาตามปกติ
3. การประมวลผลขณะรันไทม์
โค้ดส่วนนี้จะทำงานเมื่อมีการนำเข้าและใช้งาน axios โดยจะได้รับสิทธิ์การทำงานในขณะรันไทม์เช่นเดียวกับแอปพลิเคชัน
4. การเข้าถึงแบบลับ
การพึ่งพาที่ถูกบุกรุกทำให้สามารถมองเห็นส่วนหัว โทเค็น ตัวแปรสภาพแวดล้อม และการสื่อสาร HTTP ภายในได้
5. การแทรกซึมออก
ข้อมูลสำคัญถูกส่งไปยังโครงสร้างพื้นฐานที่ผู้โจมตีควบคุมโดยไม่ให้ผู้โจมตีรู้ตัว ในขณะที่คำขอเดิมยังคงทำงานได้ตามปกติ
ตัวชี้วัดการประนีประนอม (IoCs)
เพื่อตรวจสอบความเสี่ยงที่อาจเกิดขึ้น ทีมควรเริ่มต้นด้วยการทบทวนตัวบ่งชี้ที่ทราบแล้วซึ่งเกี่ยวข้องกับการถูกโจมตีด้วยช่องโหว่ axios ตารางด้านล่างสรุปสัญญาณที่เกี่ยวข้องมากที่สุดจากแพ็กเกจ กิจกรรมเครือข่าย และหลักฐานจากโฮสต์
วิธีตีความ IoC เหล่านี้
แม้ว่าตัวชี้วัดเหล่านี้จะมีประโยชน์ แต่ไม่ควรนำมาใช้เป็นกลยุทธ์การตรวจจับที่สมบูรณ์แบบ
ในทางปฏิบัติ การโจมตีลักษณะนี้แทบจะไม่พึ่งพาสัญญาณคงที่เพียงอย่างเดียว โดเมนเปลี่ยนแปลง เพย์โหลดพัฒนาขึ้น และแฮชก็ล้าสมัยอย่างรวดเร็ว สิ่งที่ยังคงเหมือนเดิมคือพฤติกรรม
ตัวอย่างเช่น การส่งคำขอขาออกที่ไม่คาดคิดระหว่างการทำงานของ HTTP ตามปกติ อาจบ่งชี้ถึงการรั่วไหลของข้อมูล ในทำนองเดียวกัน การใช้ข้อมูลประจำตัวที่ถูกต้องในบริบทที่ไม่ปกติ มักเป็นสัญญาณว่าข้อมูลลับได้ถูกเปิดเผยไปแล้ว
ในระดับโฮสต์ การพบสคริปต์หรือไฟล์ไบนารีชั่วคราวอาจบ่งชี้ถึงกิจกรรมหลังการโจมตี โดยเฉพาะอย่างยิ่งเมื่อพบร่วมกับความผิดปกติของเครือข่าย
กล่าวอีกนัยหนึ่ง IoC ช่วยให้คุณยืนยันเหตุการณ์ได้
อย่างไรก็ตาม การเข้าใจพฤติกรรมจะช่วยให้คุณตรวจจับพฤติกรรมนั้นได้ตั้งแต่เนิ่นๆ
| Category | ตัวบ่งชี้ | รายละเอียด |
|---|---|---|
| แพ็คเกจ | axios@1.14.1 | ชาซุม: 2553649f2322049666871cea80a5d0d6adc700ca |
| แพ็คเกจ | axios@0.30.4 | ชาซุม: d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71 |
| การอยู่ที่ | plain-crypto-js@4.2.1 | ชาซุม: 07d889e2dadce6f3910dcbc253317d28ca61c766 |
| เครือข่าย | sfrclak[.]com | โดเมนการสั่งการและควบคุม |
| เครือข่าย | 142.11.206[.]73 | โครงสร้างพื้นฐาน IP ที่เกี่ยวข้อง |
| เครือข่าย | http://sfrclak[.]com:8000/6202033 | จุดสิ้นสุดการซึมออกที่สังเกตได้ |
| MacOS | /Library/Caches/com.apple.act.mond | SHA256: 92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a |
| Windows | %PROGRAMDATA%\wt.exe | สิ่งแปลกปลอมที่อาจคงอยู่ |
| Windows | %TEMP%\6202033.vbs | อาร์ติแฟกต์การดำเนินการตามสคริปต์ |
| Windows | %TEMP%\6202033.ps1 | เพย์โหลด PowerShell ค่า SHA256: 617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101 |
| ลินุกซ์ | /tmp/ld.py | SHA256: fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf |
หมายเหตุการสอบสวน: ตัวบ่งชี้การบุกรุก (IoC) เหล่านี้เป็นจุดเริ่มต้นที่มีประโยชน์สำหรับการค้นหาภัยคุกคาม อย่างไรก็ตาม ผู้โจมตีสามารถเปลี่ยนโดเมน เพย์โหลด และสิ่งประดิษฐ์ได้อย่างรวดเร็ว ด้วยเหตุนี้ ทีมจึงควรเชื่อมโยงตัวบ่งชี้เหล่านี้กับสัญญาณพฤติกรรม เช่น การรับส่งข้อมูล HTTP ขาออกที่ไม่คาดคิด การเข้าถึงที่ผิดปกติ process.envและการอัปเดตการพึ่งพาที่ไม่ปกติ
ตัวอย่าง: วิธีที่ไลบรารี Axios npm ที่ถูกบุกรุกสามารถขโมยข้อมูลได้
เพื่อให้เข้าใจว่าการโจมตี Axios npm นี้ทำงานอย่างไรในทางปฏิบัติ ลองพิจารณาตัวอย่างที่ง่ายขึ้น
Axios อนุญาตให้นักพัฒนาสามารถกำหนดตัวดักจับคำขอได้ ตัวดักจับเหล่านี้จะทำงานโดยอัตโนมัติก่อนคำขอ HTTP แต่ละครั้ง
โปรแกรม axios เวอร์ชันที่เป็นอันตรายสามารถใช้กลไกนี้ในทางที่ผิดได้:
เหตุใด Axios npm Attack จึงอันตราย
มองเผินๆ แล้วดูเหมือนไม่มีอะไรผิดปกติ การร้องขอได้รับการดำเนินการอย่างสำเร็จ แอปพลิเคชันทำงานได้ตามที่คาดไว้ และ pipelineการตรวจสอบยังคงดำเนินไปโดยไม่มีข้อผิดพลาด
อย่างไรก็ตาม รายละเอียดที่สำคัญเกิดขึ้นก่อนที่จะมีการส่งคำขอ ในช่วงเวลาการดำเนินการนั้น ส่วนประกอบที่ถูกบุกรุกสามารถเข้าถึงและรวบรวมข้อมูลที่ละเอียดอ่อนได้อย่างเงียบ ๆ เช่น ส่วนหัวการอนุญาต โทเค็น API เมตาเดตาของคำขอ และตัวแปรสภาพแวดล้อม
เนื่องจากตรรกะนี้ทำงานอยู่ภายในไลบรารีที่เชื่อถือได้ซึ่งอยู่ตรงเส้นทางการร้องขอ HTTP จึงทำให้มันทำงานด้วยสิทธิ์เดียวกันกับแอปพลิเคชันนั้นๆ ส่งผลให้สามารถเข้าถึงข้อมูลที่โดยปกติแล้วจะได้รับการปกป้องจากผู้โจมตีภายนอกได้
สิ่งที่ทำให้เรื่องนี้อันตรายเป็นพิเศษไม่ใช่แค่การเข้าถึงข้อมูล แต่คือการที่ไม่มีผลกระทบที่เห็นได้ชัด ไม่มีการหยุดชะงักของฟังก์ชันการทำงาน ไม่มีคำขอที่ล้มเหลว และไม่มีสัญญาณใดๆ ที่บ่งบอกว่ามีบางอย่างผิดปกติ จากมุมมองด้านการปฏิบัติงาน ทุกอย่างยังคงทำงานได้ตามปกติ
ในขณะเดียวกัน ข้อมูลสำคัญอาจกำลังรั่วไหลออกจากระบบผ่านการเชื่อมต่อขาออกที่ปะปนอยู่กับปริมาณการใช้งานแอปพลิเคชันตามปกติ
เหตุใดนี่จึงเป็นปัญหาของ DevOps
สำหรับทีม DevOps การโจมตีประเภทนี้ตรวจจับได้ยากเป็นพิเศษ เพราะมันผสานรวมเข้ากับขั้นตอนการทำงานที่มีอยู่ได้อย่างราบรื่น
โปรแกรมที่จำเป็นจะถูกติดตั้งโดยอัตโนมัติ pipelineการทำงานเป็นไปตามปกติ และไม่มีข้อผิดพลาดเกิดขึ้นในทันที
ในเวลาเดียวกัน, CI/CD สภาพแวดล้อมต่างๆ มักเปิดเผยข้อมูลประจำตัวที่มีมูลค่าสูง ซึ่งรวมถึง:
- โทเค็นผู้ให้บริการคลาวด์
- คีย์การปรับใช้
- CI/CD ความลับการตรวจสอบสิทธิ์
หากโปรแกรมหรือไลบรารีใดทำงานผิดปกติในบริบทนี้ การเข้าถึงข้อมูลประจำตัวเหล่านั้นจะทำได้โดยตรง
สถานการณ์เช่นนี้ทำให้ทุกอย่างดูเหมือนปกติ ในขณะที่ข้อมูลสำคัญกำลังถูกเข้าถึงอยู่เบื้องหลัง
ความเสี่ยงที่แท้จริง: การเปิดเผยความลับในวงกว้าง
ช่องโหว่ axios npm ชี้ให้เห็นถึงการเปลี่ยนแปลงที่สำคัญในกลยุทธ์การโจมตีสมัยใหม่
เป้าหมายไม่ใช่การใช้ประโยชน์จากช่องโหว่อีกต่อไป แต่เป็นการเข้าถึงข้อมูลประจำตัวที่ถูกต้อง
เนื่องจากระบบสมัยใหม่ใช้การตรวจสอบสิทธิ์ตามสภาพแวดล้อม ดังนั้นส่วนประกอบที่ทำงานในระหว่างการทำงานจึงสามารถเข้าถึงสิ่งต่อไปนี้ได้:
- คีย์ API
- โทเค็นบริการ
- ข้อมูลรับรองระบบคลาวด์
ไม่จำเป็นต้องทำลายข้อมูลประจำตัวเหล่านี้
เพียงแค่ต้องนำไปใช้งานเท่านั้น
สิ่งนี้ทำให้ผู้โจมตีสามารถเคลื่อนที่ไปมาระหว่างเซิร์ฟเวอร์ เข้าถึงบริการ และดึงข้อมูลโดยใช้การตรวจสอบสิทธิ์ที่ถูกต้องได้
ดังนั้น ผลกระทบจึงขึ้นอยู่กับว่าความลับใดถูกเปิดเผย ไม่ใช่ขึ้นอยู่กับวิธีการโจมตี
เหตุใดเครื่องมือรักษาความปลอดภัยแบบดั้งเดิมจึงมองข้ามสิ่งนี้
วิธีการแบบดั้งเดิมตรวจจับการโจมตีเหล่านี้ได้ยาก เนื่องจากมุ่งเน้นไปที่ช่องโหว่ที่รู้จักหรือรูปแบบการโจมตีแบบคงที่ อย่างไรก็ตาม ดังที่ได้เน้นไว้ใน การวิเคราะห์ของ OpenAI จากกรณีการถูกโจมตีของเครื่องมือพัฒนา Axios ความเสี่ยงที่แท้จริงเกิดขึ้นในระหว่างการทำงาน เมื่อส่วนประกอบที่เชื่อถือได้มีการโต้ตอบกับข้อมูลที่ละเอียดอ่อน
อย่างไรก็ตาม การเชื่อมต่อที่เสียหายอาจไม่มีสัญญาณบ่งชี้ที่ชัดเจนใดๆ
อาจมี:
- ไม่มี CVE
- ไม่มีลายเซ็นที่เป็นอันตราย
- ไม่มีไวยากรณ์ที่ผิดปกติ
ในขณะเดียวกัน การวิเคราะห์แบบคงที่ (static analysis) ไม่ได้ประเมินพฤติกรรมขณะรันไทม์ (runtime behavior) ไม่สามารถระบุได้ว่าไลบรารีที่เกี่ยวข้องมีปฏิสัมพันธ์กับข้อมูลสำคัญอย่างไรเมื่อถูกเรียกใช้งานแล้ว
สิ่งนี้ทำให้เกิดช่องโหว่ที่โค้ดดูปลอดภัยในระหว่างการวิเคราะห์ แต่กลับกลายเป็นอันตรายในระหว่างการใช้งานจริง
วิธีการตรวจจับและป้องกันการโจมตีแบบ Axios npm-like
การป้องกันการโจมตี Axios npm ประเภทนี้ จำเป็นต้องเปลี่ยนจากการตรวจสอบแบบคงที่ไปเป็นการตรวจสอบขณะรันไทม์
ทีมจำเป็นต้องมองเห็นภาพรวมว่าความสัมพันธ์ระหว่างส่วนประกอบต่างๆ ทำงานอย่างไร ไม่ใช่แค่เพียงว่าส่วนประกอบเหล่านั้นมีอะไรบ้าง
ซึ่งรวมถึง:
- การตรวจสอบการเข้าถึงข้อมูลที่ละเอียดอ่อนในระหว่างการทำงาน
- ตรวจจับข้อมูลลับก่อนที่จะถึงแหล่งเก็บข้อมูล
- การสแกน pipelineและหลักฐานสำหรับข้อมูลประจำตัวที่ถูกเปิดเผย
- ตรวจสอบกิจกรรมเครือข่ายขาออกเพื่อหาความผิดปกติ
อย่างไรก็ตาม การตรวจจับเพียงอย่างเดียวไม่เพียงพอ
จากการตรวจจับสู่การป้องกัน: อะไรคือสิ่งที่ช่วยลดความเสี่ยงได้อย่างแท้จริง
หลังเกิดเหตุการณ์เช่นนี้ ทีมงานมักต้องเผชิญกับข้อมูลประจำตัวที่อาจถูกเปิดเผยจำนวนมาก
ความท้าทายไม่ได้อยู่ที่การค้นหา แต่เป็นการระบุว่าสิ่งใดสำคัญต่างหาก
คำถามสำคัญจึงอยู่ที่ว่า:
ความลับใดบ้างที่ยังคงใช้ได้และสามารถนำไปใช้ประโยชน์ได้?
หากไม่มีการตรวจสอบยืนยัน ทีมงานจะเสียเวลาไปกับข้อมูลประจำตัวที่ไม่ได้ใช้งาน ในขณะที่ความเสี่ยงที่แท้จริงยังคงมีอยู่
การตอบสนองอย่างมีประสิทธิภาพต้องอาศัย:
- การตรวจจับความลับที่ถูกเปิดเผย
- ตรวจสอบว่าพวกเขายังคงอนุญาตให้เข้าถึงอยู่หรือไม่
- เพิกถอนหรือหมุนเวียนอย่างรวดเร็ว
วิธีนี้จะช่วยลดระยะเวลาการเปิดเผยข้อมูลและจำกัดโอกาสที่ผู้โจมตีจะเข้ามาโจมตีได้
Xygeni ช่วยลดความเสี่ยงในห่วงโซ่อุปทานได้อย่างไร
ไซเกนี โซลูชันนี้แก้ปัญหาดังกล่าวโดยการรวมการตรวจจับ การตรวจสอบ และการแก้ไขเข้าไว้ในขั้นตอนการทำงานเดียว
มันตรวจจับความลับที่ถูกเปิดเผยในโค้ดอย่างต่อเนื่อง pipelineรวมถึงข้อมูลประจำตัวและสิ่งประดิษฐ์ต่างๆ ในขณะเดียวกัน ระบบจะตรวจสอบว่าข้อมูลประจำตัวเหล่านั้นยังคงใช้งานได้ในสภาพแวดล้อมหรือไม่
สิ่งนี้ช่วยให้ทีมสามารถมุ่งเน้นไปที่สิ่งที่ผู้โจมตีอาจใช้ได้จริง
เมื่อระบุความลับที่ใช้งานอยู่ได้แล้ว กระบวนการแก้ไขอัตโนมัติจะช่วยลดระยะเวลาการเปิดเผยข้อมูลผ่านการยกเลิกหรือการหมุนเวียนอย่างเป็นระบบ
ส่งผลให้การตอบสนองรวดเร็วและทันท่วงทีมากขึ้นcisและก่อให้เกิดผลกระทบน้อยกว่า
สรุป
การโจมตี axios npm สะท้อนให้เห็นถึงวิวัฒนาการของการโจมตีห่วงโซ่อุปทาน
ปัจจุบันผู้โจมตีไม่จำเป็นต้องเจาะระบบอีกต่อไปแล้ว พวกเขาอาศัยการพึ่งพาที่เชื่อถือได้เพื่อเข้าถึงข้อมูลสำคัญระหว่างการดำเนินการ
สำหรับทีม DevOps นั่นหมายถึงการทำความเข้าใจพฤติกรรมขณะรันไทม์ สำหรับผู้นำด้านความปลอดภัย นั่นหมายถึงการลดความเสี่ยงได้อย่างรวดเร็วและมีประสิทธิภาพ
เพราะในสภาพแวดล้อมยุคใหม่ ความเสี่ยงที่ใหญ่ที่สุดไม่ได้อยู่ที่สิ่งที่ถูกลงมือทำ
นี่คือสิ่งที่จะถูกเข้าถึงเมื่อโปรแกรมเริ่มทำงาน




