คอมเพล็กซ์มัลแวร์ Drovorub แพร่ระบาดไปยัง Linux OS

สำนักงานความมั่นคงแห่งชาติและสำนักงานสืบสวนกลางแห่งสหรัฐอเมริกา เผยแพร่รายงานตามที่ศูนย์บริการหลักหลักแห่งที่ 85 ผู้อำนวยการหลักของเจ้าหน้าที่ทั่วไปของกองทัพรัสเซีย (85 GCSS GRU) มีการใช้มัลแวร์ที่ซับซ้อนที่เรียกว่า “Drovorub” Drovorub มีรูทคิทในรูปแบบของโมดูลเคอร์เนล Linux เครื่องมือสำหรับการถ่ายโอนไฟล์และการเปลี่ยนเส้นทางพอร์ตเครือข่าย และเซิร์ฟเวอร์ควบคุม ส่วนของไคลเอนต์สามารถดาวน์โหลดและอัพโหลดไฟล์ รันคำสั่งที่กำหนดเองในฐานะผู้ใช้รูท และเปลี่ยนเส้นทางพอร์ตเครือข่ายไปยังโหนดเครือข่ายอื่น

ศูนย์ควบคุม Drovorub ได้รับเส้นทางไปยังไฟล์การกำหนดค่าในรูปแบบ JSON เป็นอาร์กิวเมนต์บรรทัดคำสั่ง:

{
"db_host" : " ",
"db_port" : " ",
"db_db" : " ",
"db_user" : " ",
"db_password" : " ",

"พอร์ต" : " ",
"lhost" : " ",
"ping_sec" : " ",

"priv_key_file" : " ",
"วลี" : " »
}

MySQL DBMS ถูกใช้เป็นแบ็กเอนด์ โปรโตคอล WebSocket ใช้เพื่อเชื่อมต่อไคลเอนต์

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

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
"กุญแจ": "Y2xpZW50a2V5"
}

ที่นี่ "id" คือตัวระบุเฉพาะที่ออกโดยเซิร์ฟเวอร์ ซึ่ง 48 บิตสุดท้ายสอดคล้องกับที่อยู่ MAC ของอินเทอร์เฟซเครือข่ายของเซิร์ฟเวอร์ พารามิเตอร์ "key" เริ่มต้นคือสตริง "clientkey" ที่เข้ารหัส base64 ซึ่งใช้โดยเซิร์ฟเวอร์ในระหว่างการจับมือครั้งแรก นอกจากนี้ ไฟล์การกำหนดค่าอาจมีข้อมูลเกี่ยวกับไฟล์ โมดูล และพอร์ตเครือข่ายที่ซ่อนอยู่:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"กุญแจ": "Y2xpZW50a2V5",
"เฝ้าสังเกต" : {
"ไฟล์" : [
{
"ใช้งานอยู่" : "จริง"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"mask" : "testfile1"
}
],
"โมดูล" : [
{
"ใช้งานอยู่" : "จริง"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"หน้ากาก" : "testmodule1"
}
],
"สุทธิ" : [
{
"ใช้งานอยู่" : "จริง"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"พอร์ต" : "12345",
"โปรโตคอล" : "tcp"
}
] }
}

ส่วนประกอบอื่นของ Drovorub คือเอเจนต์ ไฟล์การกำหนดค่าประกอบด้วยข้อมูลสำหรับการเชื่อมต่อกับเซิร์ฟเวอร์:

{
"client_login" : "user123",
"client_pass" : "pass4567",
"ลูกค้า" : "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"public_key",
"server_host" : "192.168.57.100",
"server_port" :"45122″,
"server_uri" :"/ws"
}

ฟิลด์ "clientid" และ "clientkey_base64" หายไปในตอนแรก โดยจะถูกเพิ่มหลังจากการลงทะเบียนครั้งแรกบนเซิร์ฟเวอร์

หลังการติดตั้ง จะดำเนินการดังต่อไปนี้:

  • โหลดโมดูลเคอร์เนลซึ่งลงทะเบียน hooks สำหรับการเรียกระบบ
  • ไคลเอนต์ลงทะเบียนกับโมดูลเคอร์เนล
  • โมดูลเคอร์เนลซ่อนกระบวนการไคลเอนต์ที่ทำงานอยู่และไฟล์ปฏิบัติการบนดิสก์

อุปกรณ์หลอก เช่น /dev/zero ถูกใช้เพื่อสื่อสารระหว่างไคลเอ็นต์และโมดูลเคอร์เนล โมดูลเคอร์เนลจะแยกวิเคราะห์ข้อมูลทั้งหมดที่เขียนลงในอุปกรณ์ และสำหรับการส่งสัญญาณในทิศทางตรงกันข้าม โมดูลจะส่งสัญญาณ SIGUSR1 ไปยังไคลเอนต์ หลังจากนั้นจะอ่านข้อมูลจากอุปกรณ์เดียวกัน

ในการตรวจจับ Lumberjack คุณสามารถใช้การวิเคราะห์การรับส่งข้อมูลเครือข่ายโดยใช้ NIDS (ไม่สามารถตรวจพบกิจกรรมเครือข่ายที่เป็นอันตรายในระบบที่ติดไวรัสได้ เนื่องจากโมดูลเคอร์เนลซ่อนซ็อกเก็ตเครือข่ายที่ใช้ กฎ netfilter และแพ็กเก็ตที่อาจดักจับโดยซ็อกเก็ตดิบ) . ในระบบที่ติดตั้ง Drovorub คุณสามารถตรวจจับโมดูลเคอร์เนลได้โดยส่งคำสั่งให้ซ่อนไฟล์:

สัมผัสไฟล์ทดสอบ
สะท้อน “ASDFZXCV:hf:testfile” > /dev/zero
ls

ไฟล์ "testfile" ที่สร้างขึ้นจะมองไม่เห็น

วิธีการตรวจจับอื่นๆ ได้แก่ การวิเคราะห์หน่วยความจำและเนื้อหาดิสก์ เพื่อป้องกันการติดเชื้อ ขอแนะนำให้ใช้การตรวจสอบลายเซ็นบังคับของเคอร์เนลและโมดูล โดยเริ่มตั้งแต่เคอร์เนล Linux เวอร์ชัน 3.7

รายงานประกอบด้วยกฎ Snort สำหรับการตรวจจับกิจกรรมเครือข่ายของกฎ Drovorub และ Yara สำหรับการตรวจจับส่วนประกอบ

ให้เราระลึกว่า 85th GTSSS GRU (หน่วยทหาร 26165) มีความเกี่ยวข้องกับกลุ่ม APT28 (แฟนซี แบร์)รับผิดชอบต่อการโจมตีทางไซเบอร์มากมาย

ที่มา: opennet.ru