กระโดดเข้าสู่เชลล์ - bin/bash - หลุดออกจากเชลล์ที่ถูกจำกัด

Jumping Shell: วิธีที่ผู้โจมตีหลบหนีออกจากเชลล์ที่ถูกจำกัดไปยัง /bin/bash

สารบัญ

บทความที่ต้องอ่าน

บทความล่าสุดที่น่าสนใจ

Restricted Shell คืออะไร และเหตุใดการโจมตีแบบ Jumping Shell จึงมีความสำคัญ

เชลล์แบบจำกัดสิทธิ์ใช้เพื่อควบคุมคำสั่งที่ผู้ใช้สามารถเรียกใช้ได้ ซึ่งมักจะป้องกันการกระทำต่างๆ เช่น cdเช่น การเปิดใช้งานเชลล์ใหม่ หรือการส่งออกตัวแปรสภาพแวดล้อม โดยทั่วไปแล้วจะถูกนำไปใช้งานใน CI/CD ตัวแทนหรือสร้างสภาพแวดล้อมเพื่อจำกัดพฤติกรรมของผู้ใช้ อย่างไรก็ตาม ผู้โจมตีมองหาวิธีการสร้าง jumping shell ซึ่งเป็นวิธีการที่ใช้ในการหลุดพ้นจากสภาพแวดล้อม shell ที่ถูกจำกัด และเข้าถึง shell ที่ไม่จำกัด เช่น ถัง / ทุบตีเมื่อเข้าไปข้างในแล้ว itผู้โจมตีสามารถควบคุมผ่านบรรทัดคำสั่งได้อย่างเต็มที่ โดยหลีกเลี่ยงข้อจำกัดทั้งหมดของสภาพแวดล้อมที่ถูกจำกัดไว้

วิธีใช้งาน Jumping Shell: จากโหมดจำกัดสิทธิ์ไปจนถึงโหมด bin/bash

เป้าหมายของ jumping shell คือการใช้ประโยชน์จากจุดอ่อนในสภาพแวดล้อมที่จำกัด และกระตุ้นให้ shell หลุดออกจากพื้นที่ ซึ่งจะนำไปสู่... ถัง / ทุบตีเทคนิคทั่วไปในการหลบหนีการโจมตีแบบจำกัดขอบเขต ได้แก่:

$ ls /bin/bash $ /bin/bash

If ถัง / ทุบตี สามารถเข้าถึงได้ การเรียกใช้งานอย่างง่ายนี้ก็ทำให้เสร็จสมบูรณ์แล้ว

อีกวิธีที่นิยมใช้:

$ echo "/bin/bash" > run.sh $ sh run.sh 

ผู้โจมตีอาจใช้ช่องโหว่ของโปรแกรมแก้ไขข้อความ เช่น vi or น้อยลง:

vi :set shell=/bin/bash :shell 

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

ความเสี่ยงที่แท้จริงของการโจมตีเหล่านี้ใน DevOps

ในการแบ่งปัน CI/CD ในสภาพแวดล้อมต่างๆ เชลล์ที่จำกัดจะถูกใช้เพื่อแยกการสร้างและลดความเสี่ยง แต่เมื่อผู้โจมตีประสบความสำเร็จในการใช้ jumping shell และเข้าถึงได้ ถัง / ทุบตีรูปแบบการรักษาความปลอดภัยจึงล่มสลาย

ความเสี่ยงรวมถึง:

  • การเข้าถึงข้อมูลลับของสภาพแวดล้อมโดยไม่ได้รับอนุญาต
  • การยกระดับสิทธิ์ผ่านทางการเข้าถึงแบบไม่จำกัด ถัง / ทุบตี
  • การแก้ไขดัดแปลงโครงสร้าง pipelineหรือสิ่งประดิษฐ์
  • การใช้งานเครื่องมือแบบถาวรภายใน pipeline

เปลือกหุ้มที่จำกัดการหลบหนีไปยัง ถัง / ทุบตี เปิดประตูสู่การเจาะระบบอย่างสมบูรณ์ ซึ่งมักเป็นขั้นตอนแรกในแผนการที่กว้างขวางกว่า การโจมตี DevSecOps.

การตรวจสอบและตรวจจับ Jumping Shell และ bin/bash Escapes

ในการตรวจจับพฤติกรรมการกระโดดเข้าสู่เชลล์ และบล็อกความพยายามในการเข้าสู่เชลล์ที่ถูกจำกัดการเข้าถึง ทีมรักษาความปลอดภัยต้องดำเนินการดังต่อไปนี้:

  • บันทึกกิจกรรมทั้งหมดของเชลล์ โดยเฉพาะ... / bin / bash การปฏิบัติ
  • ตรวจสอบการใช้โปรแกรมแก้ไขข้อความในทางที่ผิดและการใช้สคริปต์เป็นช่องทางในการเรียกใช้เชลล์
  • ติดตามการเข้าถึงไฟล์การกำหนดค่าเชลล์ เช่น .bashrc or .bash_profile

รูปแบบพฤติกรรม เช่น การเปิดตัว ถัง / ทุบตี การตรวจจับจากสภาพแวดล้อมที่จำกัดควรได้รับการพิจารณาว่าเป็นสัญญาณเตือนที่มีความสำคัญสูง การตรวจพบตั้งแต่เนิ่นๆ สามารถป้องกันการเคลื่อนตัวในแนวด้านข้างที่รุนแรงขึ้นได้

การป้องกันการโจมตีและการใช้ช่องโหว่ของ Escape Restricted Shell

เพื่อลดความเสี่ยงจากการโจมตีแบบ Jumping Shell และป้องกันไม่ให้ผู้โจมตีทำการโจมตี ถัง / ทุบตี:

  • เสริมความแข็งแกร่งให้กับเปลือกหุ้มที่ถูกจำกัด: ถอดหรือปิดกั้น เข้า
  • ใช้ AppArmor หรือ SELinux เพื่อจำกัดการเรียกใช้คำสั่ง
  • บังคับใช้หลักสิทธิพิเศษขั้นต่ำสุดในทุกด้าน CI/CD บทบาทและนักวิ่ง
  • Containerize สร้างอิมเมจด้วยดิสโทรเลสที่ไม่มีเชลล์ เช่น ถัง / ทุบตี
  • ตรวจสอบสภาพแวดล้อมก่อนและหลังการสร้างเพื่อตรวจจับความผิดปกติ

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

สรุป: ทางออกของกระสุนปืนเป็นจุดเข้า

กระสุนจำกัดเป็นเพียงชั้นป้องกัน ไม่ใช่การรับประกัน การโจมตีด้วยกระสุนกระโดดมุ่งเป้าไปที่การแยกส่วนที่อ่อนแอและการตรวจสอบที่ไม่ดี เมื่อเข้าไปข้างในได้แล้ว / bin / bashผู้โจมตีสามารถเปลี่ยนกลยุทธ์ รุกคืบ และบุกรุกโครงสร้างพื้นฐาน DevSecOps ได้

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

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

sca-tools-software-composition-analysis-tools
จัดลำดับความสำคัญ แก้ไข และรักษาความปลอดภัยความเสี่ยงด้านซอฟต์แวร์ของคุณ
สมัครบัญชีฟรีได้เลย
ไม่ต้องใช้บัตรเครดิต

รักษาความปลอดภัยให้กับการพัฒนาและส่งมอบซอฟต์แวร์ของคุณ

ด้วยชุดผลิตภัณฑ์ Xygeni