CDIC 2023

นักวิจัยพบวิธีซ่อนมัลแวร์ไว้ในไฟล์ที่ถูกเซ็นด้วย Digital Signature

Tom Nipravsky นักวิจัยด้านความมั่นคงปลอดภัยจาก Deep Instinct ค้นพบเทคนิคการซ่อนพรางมัลแวร์ไว้ในไฟล์ข้อมูลปกติที่ถูกเซ็นด้วย Digital Signature ซึ่งช่วยให้แฮ็คเกอร์สามารถลอบส่งมัลแวร์เข้ามาในระบบโดยที่ Antivirus ไม่สามารถตรวจจับได้ ที่น่าตกใจคือ Signature ยังมีค่าเท่าเดิมไม่เปลี่ยนแปลงทั้งๆ ที่ข้อมูลถูกแก้ไข

ttt_steganography-McIek
Credit: McIek/ShutterStock

พัฒนาเทคนิค Steganography ไปอีกขึ้น ซ่อนมัลแวร์ไว้ในไฟล์ที่ถูกเซ็นชื่อเรียบร้อย

เทคนิคของ Nipravsky เรียกได้ว่าเป็นรูปแบบหนึ่งของการซ่อนพรางข้อมูล (Steganography) ซึ่งสมัยก่อนมักจะเป็นการซ่อนมัลแวร์ไว้ในไฟล์รูปภาพ แต่ Nipravsky พัฒนาการซ่อนพรางไปอีกขึ้น คือ ซ่อนมัลแวร์ไว้ในไฟล์ข้อมูลปกติที่ถูกเซ็นด้วย Digital Signature ซึ่งปกติจะการันตีว่า ไฟล์ดังกล่าวมาจากนักพัฒนาจริง ไม่ได้ถูกเปลี่ยนแปลงแก้ไขระหว่างทาง

ปูพื้นเรื่อง Digital Signature สักเล็กน้อย

Digital Signature หรือลายเซ็นต์ดิจิทัล เป็นกลไกที่สร้างขึ้นเพื่อปกป้อง Authenticity และ Integrity ของข้อมูล กล่าวคือ เพื่อการันตีว่า ข้อมูลมาจากผู้ส่งจริง และไม่ได้ถูกเปลี่ยนแปลงแก้ไขระหว่างทาง ซึ่งขั้นตอนของการทำ Digital Signature โดยสรุปคือ ไฟล์ข้อมูลจะถูกเข้าฟังก์ชัน Hash ผลลัพธ์ที่ได้เรียกว่า Message Digest จากนั้นจะถูกเข้ารหัสต่อด้วย Private Key ของผู้ส่ง กลายเป็น Digital Signature ซึ่ง Signature นี้จะถูกผูกติดไปกับข้อมูลส่งไปยังผู้รับ เมื่อผู้รับได้รับข้อความก็จะใช้ Public Key แกะ Signature ออกมา แล้วนำส่วนของข้อมูลที่ได้รับมาเข้าฟังก์ชัน Hash เพื่อเปรียบเทียบกับ Message Digest ที่ถอดรหัสมาได้ ถ้าทั้งสองค่าเท่ากัน แสดงว่าข้อมูลที่ได้รับมานั้นมาจากผู้ส่งจริง และไม่ถูกแก้ไขระหว่างทาง

digital_signature

งานวิจัยของ Nipravsky แบ่งออกเป็น 2 ส่วน คือ การซ่อนพรางมัลแวร์ และการโหลดมัลแวร์เข้าสู่ Memory

ซ่อนมัลแวร์ไว้ใน Header

โดยปกติแล้วไฟล์ EXE ที่ถูกเซ็นชื่อ ข้อมูลเกี่ยวกับ Signature จะถูกเก็บไว้บนฟิลด์ของ Header ที่ชื่อว่า Attribute Certificate Table (ACT) ซึ่งจะไม่ถูกนำไปคำนวณค่า Hash (เพราะ Digital Signature ไม่ใช่ส่วนหนึ่งของข้อมูล เพียงแค่แปะไปกับข้อมูลด้วยเฉยๆ) นั่นหมายความว่า แฮ็คเกอร์สามารถปรับแต่ง Header ดังกล่าว เช่น แอบเพิ่มข้อมูล เช่น มัลแวร์เข้าไปในฟิลด์ ACT ได้โดยที่ Message Digest จะยังคงมีค่าเท่าเดิม อย่างไรก็ตาม การเพิ่มข้อมูลเข้าไปนี้ส่งผลให้ขนาดไฟล์บนดิสก์เปลี่ยนแปลงไป ซึ่งขนาดไฟล์จะถูกตรวจสอบโดยเทคโนโลยี Authenticode ของ Microsoft เมื่อผู้รับทำการยืนยัน Signature

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

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

อย่างไรก็ตาม ข้อมูลแปลกปลอม (มัลแวร์) ที่เพิ่มเข้าไปใน ACT จะไม่ถูกโหลดเข้าสู่ Memory เพื่อเริ่มการทำงาน เนื่องจากเป็นส่วนหนึ่งของ Header ไม่ใช่เนื้อไฟล์จริง จึงทำได้เพียงแค่ซ่อนมัลแวร์ไว้ก่อนเท่านั้น ที่น่ากลัวคือ ระบบความมั่นคงปลอดภัยส่วนใหญ่จะปล่อยผ่านไฟล์ดังกล่าว เนื่องจากไฟล์มี Digital Signature ของผู้พัฒนาที่ทาง Microsoft เชื่อถือ กลไกนี้มีไว้เพื่อป้องกัน False Positive ซึ่งอาจนำไปสู่การลบไฟล์สำคัญและระบบหยุดให้บริการได้

ทำ Reverse Engineering เพื่อโหลดมัลแวร์จาก Header เข้าสู่ Memory

หลังจากซ่อนมัลแวร์ได้แล้ว Nipravsky ได้พัฒนาวิธีลับในการโหลดมัลแวร์จากไฟล์ที่ถูกเซ็นชื่อโดยไม่ถูกตรวจจับ ซึ่งเขาได้ใช้เวลากว่า 4 เดือนในการทำ Reverse Engineering วิธีที่ Windows โหลดไฟล์ PE เข้าสู่ Memory (กลไกดังกล่าวไม่มีการเปิดเผยสู่สาธารณะ เนื่องจากเป็นหน้าที่ของ OS ในการรันไฟล์ ไม่ใช่สิ่งที่นักพัฒนาจำเป็นต้องทำ)

วิธีลับของ Nipravsky อาจเรียกได้ว่าเป็น Reflective PE Loader ซึ่งเป็นแอพพลิเคชันที่สามารถโหลดไฟล์ PE บน Header ไปรันที่ Memory ได้โดยตรง โดยไม่มีการทิ้งร่องรอยใดๆ ไว้บนดิสก์ และจากการที่วิธีดังกล่าวใช้ Process เดียวกับที่ OS ใช้ ระบบรักษาความปลอดภัยต่างๆ จึงตรวจจับพฤติกรรมที่ผิดปกติได้ยาก

Nipravsky ระบุว่า จะไม่มีการเปิดเผย PE Loader ที่เขาคิดค้นขึ้นออกสู่สาธารณะ เนื่องจากอาจถูกเอาไปใช้ในทางที่ผิดได้ แต่ถ้าเป็นแฮ็คเกอร์ผู้ช่ำชอง ก็อาจสามารถสร้าง PE Loader เลียนแบบตามได้

POC โดยซ่อน Ransomware ไว้ในไฟล์ปกติ

Nipravsky ได้สาธิตงานวิจัยของเขาในงาน Black Hat USA 2016 ที่เพิ่งจัดไป โดยทดสอบกับ Ransomware ที่โปรแกรม Antivirus ทั่วไปสามารถตรวจจับได้ แต่เมื่อเขาซ่อน Ransomware ไว้ในฟิลด์ ACT บนไฟล์ที่ถูกเซ็นด้วย Digital Signature แล้วใช้ PE Loader สั่งเริ่มการทำงาน ผลปรากฏว่า Antivirus ตรวจจับได้เฉพาะไฟล์ข้อความเรียกค่าไถ่ที่ถูกสร้างขึ้นโดย Ransomware หลังจากที่ไฟล์ข้อมูลทั้งหมดของผู้ใช้ถูกเข้ารหัสไปแล้ว เรียกได้ว่า สายเกินไปนั่นเอง

อ่าน Paper ฉบับเต็มของ Nipravsky ได้ที่ https://www.blackhat.com/docs/us-16/materials/us-16-Nipravsky-Certificate-Bypass-Hiding-And-Executing-Malware-From-A-Digitally-Signed-Executable-wp.pdf

ที่มา: http://www.csoonline.com/article/3104652/security/researcher-hides-stealthy-malware-inside-legitimate-digitally-signed-files.html


About techtalkthai

ทีมงาน TechTalkThai เป็นกลุ่มบุคคลที่ทำงานในสาย Enterprise IT ที่มีความเชี่ยวชาญทางด้าน Network, Security, Server, Storage, Operating System และ Virtualization มารวมตัวกันเพื่ออัพเดตข่าวสารทางด้าน Enterprise IT ให้แก่ชาว IT ในไทยโดยเฉพาะ

Check Also

เชิญร่วมงานสัมมนาออนไลน์ Unlock the Limits of Your SAP System with Google Cloud โดย Tangerine [18 ต.ค. 2023]

พลาดไม่ได้! สำหรับองค์กรที่ใช้ระบบ SAP ซึ่งนับเป็นระบบสำคัญที่อยู่เบื้องหลังในการดำเนินธุรกิจให้สำเร็จ ซึ่งภายใต้การแข่งขันที่สูงขึ้นความสำคัญก็ยิ่งเพิ่มขึ้นตามไปด้วย ฉะนั้นจะทำอย่างไร? ให้ธุรกิจสามารถรองรับการใช้งานตามความต้องการที่มีการเปลี่ยนแปลงอยู่เสมอ และจะดีกว่าหรือไม่ หากสามารถนำข้อมูลภายใน SAP มาประยุกต์ใช้กับข้อมูลภายนอก สร้าง Analytics Dashboard ได้ง่ายและรวดเร็ว …

Raspberry Pi 5 เตรียมวางขายภายในตุลาคมนี้

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