การเคลื่อนที่ด้านข้าง (Lateral Movement) ในด้านความปลอดภัยทางไซเบอร์คืออะไร และเหตุใดจึงมีความสำคัญสำหรับนักพัฒนา
หากคุณเป็นนักพัฒนาที่เขียน Infrastructure as Code การกำหนดค่า Build จะมีความสำคัญมาก pipelineไม่ว่าจะเป็นการใช้งาน S&P หรือการใช้งานคอนเทนเนอร์ คุณจำเป็นต้องเข้าใจว่าการเคลื่อนที่แบบแนวนอน (Lateral Movement) ในด้านความปลอดภัยทางไซเบอร์นั้นหมายถึงอะไร มันไม่ใช่แค่กลยุทธ์ของทีมโจมตีสีแดง (Red Team) เท่านั้น แต่เป็นวิธีการที่ผู้โจมตีตัวจริงใช้ในการเคลื่อนที่เข้าไปในระบบของคุณหลังจากที่เจาะระบบได้สำเร็จครั้งแรก และมันส่งผลกระทบโดยตรงต่อขั้นตอนการทำงานของคุณ หมายถึงความสามารถของผู้โจมตีในการเปลี่ยนเส้นทางไปยังระบบต่างๆ เช่น จาก CI runner ที่ถูกบุกรุก ไปยังบัญชีคลาวด์ หรือจากคอนเทนเนอร์ไปยัง control plane ของคุณ และการยกระดับสิทธิ์คือสิ่งที่ทำให้สิ่งนี้เป็นไปได้: เปลี่ยนการเข้าถึงแบบจำกัดให้เป็นการควบคุมระดับผู้ดูแลระบบ
เหตุใดจึงสำคัญสำหรับนักพัฒนา:
- Pipelineมักมีการตั้งค่าสิทธิ์มากเกินไป
- ข้อมูลลับจะถูกนำกลับมาใช้ซ้ำในสภาพแวดล้อมต่างๆ
- คอนเทนเนอร์ที่ตั้งค่าไม่ถูกต้องจะเปิดช่องทางให้เข้าถึงบริการอื่นๆ ได้
การรู้ว่าการเคลื่อนไหวในแนวนอนของความปลอดภัยทางไซเบอร์คืออะไรคือขั้นตอนแรก การหยุดยั้งการเคลื่อนไหวนั้นที่ระดับโค้ดและ... pipeline ระดับนี้คือจุดที่นักพัฒนาเข้ามามีบทบาท
การยกระดับสิทธิพิเศษเป็นเชื้อเพลิงสำหรับการเคลื่อนย้ายในแนวนอน
การยกระดับสิทธิ์คือสิ่งที่เปลี่ยนการละเมิดเล็กน้อยให้กลายเป็นการรุกล้ำในวงกว้าง เมื่อเข้าไปข้างในได้แล้ว ผู้โจมตีจะมองหาวิธีใด ๆ ก็ตามที่จะเพิ่มการเข้าถึง ไม่ว่าจะเป็นผ่านคีย์ที่รั่วไหล บริการที่ตั้งค่าไม่ถูกต้อง หรือบทบาทที่มีสิทธิ์มากเกินไป
ตัวอย่างที่นักพัฒนาควรให้ความสนใจ:
- งาน GitHub Actions ที่ทำงานด้วยฟังก์ชันเต็มรูปแบบ สิทธิ์การเข้าถึงของ AWS
- ใส่ข้อมูลประจำตัวผู้ดูแลระบบแบบตายตัวในสคริปต์
- คอนเทนเนอร์ที่เชื่อมต่อกับซ็อกเก็ต Docker หรือพาธของโฮสต์
- งาน CI ที่สามารถปรับใช้สู่ระบบการผลิตได้โดยตรง
⚠️คำเตือน: ห้ามพิมพ์ข้อมูลลับหรือโทเค็นลงในไฟล์บันทึกเด็ดขาด นี่เป็นสาเหตุสำคัญที่ทำให้ผู้ไม่ประสงค์ดีถูกยกระดับสิทธิ์
ไม่มี guardrailsผู้โจมตีใช้สิทธิ์เหล่านี้ในทางที่ผิดเพื่อเคลื่อนย้ายไปมาระหว่างงาน คอนเทนเนอร์ หรือบริการต่างๆ การยกระดับสิทธิ์เป็นสิ่งที่ขับเคลื่อนการเคลื่อนย้ายในแนวนอนในยุคปัจจุบัน สภาพแวดล้อม DevOps
เส้นทางทั่วไปใน CI/CD และสภาพแวดล้อมคลาวด์
การทำความเข้าใจว่าการเคลื่อนที่ในแนวนอน (Lateral Movement) ในด้านความปลอดภัยทางไซเบอร์คืออะไร เริ่มต้นจากการสร้างแผนผังเส้นทางการโจมตีจริง สภาพแวดล้อมการพัฒนาเต็มไปด้วยเส้นทางการโจมตีเหล่านี้
ทิศทางการเคลื่อนที่ด้านข้างที่มีความเสี่ยงสูง:
- การนำโทเค็นหรือข้อมูลประจำตัวกลับมาใช้ซ้ำในหลายๆ ที่ pipelines
- คอนเทนเนอร์ที่ทำงานร่วมกับ ได้รับการยกเว้น หรือการเข้าถึง hostPath
- โครงสร้างเครือข่ายแบบแบนราบที่ไม่มีการแยกบริการ
- การพึ่งพาแบบโอเพนซอร์ส พร้อมสคริปต์ก่อน/หลังการติดตั้ง
⚠️คำเตือน: หลีกเลี่ยงการเรียกใช้คอนเทนเนอร์ด้วยสิทธิ์ระดับสูง เว้นแต่จำเป็นจริงๆ
⚠️คำเตือน: สคริปต์หลังการติดตั้งในแพ็กเกจจากผู้พัฒนาภายนอกเป็นช่องทางโจมตีที่รู้จักกันดี
นี่คือจุดเริ่มต้นของการเคลื่อนตัวในแนวราบโดยทั่วไป เมื่อชิ้นส่วนหรือส่วนประกอบหนึ่งชำรุด นำไปสู่ชิ้นส่วนหรือส่วนประกอบอื่นๆ ที่ชำรุดตามมา
การตรวจจับและควบคุมการเคลื่อนที่ด้านข้างก่อนที่จะถึงขั้นตอนการผลิต
คุณไม่จำเป็นต้องมี SOC เต็มรูปแบบเพื่อหยุดการแพร่กระจายในแนวนอน คุณแค่ต้องการการมองเห็นและการควบคุมในระดับนักพัฒนา
วิธีตรวจจับการยกระดับสิทธิ์และการเคลื่อนย้ายข้ามระบบตั้งแต่เนิ่นๆ:
- ตรวจสอบว่ามีการใช้ข้อมูลประจำตัวที่ใดบ้างการใช้งานในลักษณะที่ไม่คาดคิดในงานที่ไม่เกี่ยวข้องถือเป็นสัญญาณเตือนภัย
- ติดตามคำสั่งที่ผิดปกติการถอดรหัส Base64, การโทรออกไปยังเครือข่าย หรือการเข้าถึงไฟล์เงาใน CI เป็นสัญญาณที่ไม่ดี
- ใช้ สิทธิพิเศษน้อยที่สุด in pipelinesอย่าให้สิทธิ์การปรับใช้ในสภาพแวดล้อมการผลิตแก่งานทดสอบ
เคล็ดลับ: ตรวจสอบการใช้งาน Docker ที่ไม่ปลอดภัยภายใน pipelines.
การยกระดับสิทธิ์สามารถตรวจจับได้ก่อนที่จะก่อให้เกิดความเสียหายร้ายแรง หากคุณสร้างระบบตรวจจับไว้ในขั้นตอนการทำงาน
ก้าวข้ามขีดจำกัดของการตรวจจับ: Xygeni ช่วยติดตามเส้นทางการโจมตีได้อย่างไร
การเคลื่อนที่ด้านข้างไม่ได้เกิดขึ้นโดยบังเอิญ แต่มันเป็นไปตามรูปแบบ ไซเกนี ช่วยให้ทีมพัฒนาสามารถระบุรูปแบบเหล่านั้นได้ก่อนที่ผู้โจมตีจะทำได้ Xygeni ช่วยได้อย่างไร:
- แสดงภาพเส้นทางข้ามคลังเก็บข้อมูล (repository) CI/CDและเมฆ
- ระบุจุดที่มีการยกระดับสิทธิ์ในงานสร้างและคอนเทนเนอร์
- แจ้งเตือนการใช้ข้อมูลลับ โทเค็น และแพ็กเกจที่มีความเสี่ยงสูงในทางที่ผิด
- สร้างเกณฑ์พื้นฐานด้านพฤติกรรมเพื่อตรวจจับความผิดปกติเมื่อเวลาผ่านไป
นี่คือวิธีการ "ขยับไปทางซ้าย" ไม่ใช่แค่ในการทดสอบ แต่รวมถึงการหยุดยั้งการเคลื่อนย้ายข้ามสายงานและการใช้สิทธิ์ในทางที่ผิดก่อนที่จะส่งผลกระทบต่อการผลิต
การหยุดยั้งการยกระดับสิทธิพิเศษ: การป้องกันที่ดีที่สุดของคุณจากการโยกย้ายตำแหน่งในระดับเดียวกัน
คุณไม่สามารถหยุดสิ่งที่คุณมองไม่เห็นได้ และถ้าคุณไม่เข้าใจว่าการเคลื่อนไหวในแนวนอนในด้านความปลอดภัยทางไซเบอร์คืออะไร โค้ดของคุณ... pipelineและภาชนะบรรจุต่างๆ ก็ถูกเปิดเผยอยู่แล้ว
เพื่อให้การพัฒนาซอฟต์แวร์ของคุณมีความปลอดภัยตลอดวงจรการพัฒนา:
- ถือว่าการยกระดับสิทธิ์เป็นความเสี่ยงหลักด้านความปลอดภัยของแอปพลิเคชัน
- สังเกตสัญญาณเริ่มต้นของการเคลื่อนไหวไปด้านข้างใน CI/CD และเมฆ
- ใช้เครื่องมืออย่าง Xygeni เพื่อติดตามเส้นทางการโจมตีในโค้ด การสร้าง และการปรับใช้
นี่ไม่ใช่เรื่องสมมติ มันคือสภาพแวดล้อมของคุณ เว้นแต่คุณจะล็อกมันไว้




