สำนักงานความมั่นคงแห่งชาติและสำนักงานสืบสวนกลางแห่งสหรัฐอเมริกา
ศูนย์ควบคุม 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) มีความเกี่ยวข้องกับกลุ่ม
ที่มา: opennet.ru