Windows

การโจมตีและป้องกันช่องโหว่ DLL Hijacking

DLL Hijacking Tutorial

DLL Hijacking Tutorial

สารบัญ:

Anonim

DLL ย่อมาจาก Dynamic Link Libraries และเป็นส่วนภายนอกของแอพพลิเคชันที่รันบน Windows หรือระบบปฏิบัติการอื่น ๆ แอปพลิเคชันส่วนใหญ่ไม่สมบูรณ์ในตัวเองและเก็บรหัสไว้ในไฟล์อื่น หากมีความจำเป็นต้องใช้รหัสไฟล์ที่เกี่ยวข้องจะถูกโหลดลงในหน่วยความจำและใช้ ซึ่งช่วยลดขนาดไฟล์แอ็พพลิเคชันในขณะที่เพิ่มประสิทธิภาพการใช้แรม บทความนี้อธิบายว่าอะไรคือ DLL Hijacking และวิธีการตรวจหาและป้องกันข้อมูล

ไฟล์ DLL หรือไลบรารีการเชื่อมโยงแบบไดนามิกคืออะไร

ไฟล์ DLL คือ Dynamic Link Libraries และเป็นชื่อที่เห็นได้ชัดคือนามสกุล ของการใช้งานที่แตกต่างกัน แอปพลิเคชันที่เราใช้อาจหรือไม่สามารถใช้รหัสบางอย่างได้ รหัสดังกล่าวจะถูกเก็บไว้ในไฟล์ที่แตกต่างกันและเรียกหรือโหลดลงใน RAM เฉพาะเมื่อจำเป็นต้องใช้รหัสที่เกี่ยวข้อง ดังนั้นจะช่วยประหยัดแอ็พพลิเคชันไฟล์จากการเป็นขนาดใหญ่เกินไปและเพื่อป้องกันการรีสตาร์ททรัพยากรโดยแอ็พพลิเคชัน

เส้นทางสำหรับไฟล์ DLL จะถูกกำหนดโดยระบบปฏิบัติการ Windows เส้นทางถูกตั้งค่าโดยใช้ Global Environment Variables โดยค่าเริ่มต้นถ้าแอพพลิเคชันร้องขอไฟล์ DLL ระบบปฏิบัติการจะค้นหาโฟลเดอร์เดียวกันกับที่เก็บแอ็พพลิเคชันไว้ หากไม่พบในที่นี้จะไปที่โฟลเดอร์อื่นตามที่กำหนดโดยตัวแปรส่วนกลาง มีลำดับความสำคัญที่แนบมากับเส้นทางและช่วยให้ Windows ในการกำหนดโฟลเดอร์ที่จะมองหา DLLs นี่คือที่ที่มีการลักลอบ DLL เข้ามา

DLL Hijacking คืออะไร

เนื่องจาก Dll เป็นส่วนขยายและจำเป็นต้องใช้งานเกือบทั้งหมดในเครื่องของคุณ หากไฟล์ DLL เดิมถูกแทนที่ด้วยไฟล์ DLL ปลอมที่มีโค้ดที่เป็นอันตรายเรียกว่า DLL Hijacking

ดังที่ได้กล่าวมาแล้วก่อนหน้านี้มีความสำคัญว่าระบบปฏิบัติการจะค้นหาไฟล์ DLL ที่ใด ขั้นแรกให้ดูในโฟลเดอร์เดียวกับโฟลเดอร์แอพพลิเคชันจากนั้นจะค้นหาตามลำดับความสำคัญที่กำหนดโดยตัวแปรสภาพแวดล้อมของระบบปฏิบัติการ ดังนั้นถ้าแฟ้ม good.dll อยู่ในโฟลเดอร์ SysWOW64 และมีผู้จัดไฟล์ bad.dll ไว้ในโฟลเดอร์ที่มีลำดับความสำคัญสูงกว่าโฟลเดอร์ SysWOW64 ระบบปฏิบัติการจะใช้แฟ้ม bad.dll เนื่องจากมีชื่อเดียวกับ DLL ตามคำขอ เมื่ออยู่ใน RAM จะสามารถรันโค้ดอันตรายที่มีอยู่ในไฟล์และอาจทำให้คอมพิวเตอร์หรือเครือข่ายของคุณเสียหายได้

วิธีตรวจหา DLL Hijacking

วิธีที่ง่ายที่สุดในการตรวจหาและป้องกันการลักลอบ DLL คือการใช้เครื่องมือของบุคคลที่สาม มีบางเครื่องมือที่ดีฟรีในตลาดที่ช่วยในการตรวจสอบความพยายามสับ DLL และป้องกันไม่ให้เป็น

โปรแกรมหนึ่งเช่น DLL Hijack Auditor แต่สนับสนุนเฉพาะโปรแกรม 32 บิต คุณสามารถติดตั้งได้ในคอมพิวเตอร์ของคุณและสแกนแอพพลิเคชัน Windows ทั้งหมดเพื่อดูว่าแอพพลิเคชันใดบ้างที่เสี่ยงต่อการแย่งชิง DLL อินเทอร์เฟซใช้งานง่ายและอธิบายได้ง่าย ข้อเสียเปรียบเพียงอย่างเดียวของแอ็พพลิเคชันนี้ก็คือคุณไม่สามารถสแกนแอพพลิเคชันแบบ 64 บิต

โปรแกรมอื่นเพื่อตรวจหาการลักลอบ DLL, DLL_HIJACK_DETECT สามารถใช้งานได้ผ่านทาง GitHub โปรแกรมนี้จะตรวจสอบแอปพลิเคชันเพื่อดูว่ามีผู้ใดที่เสี่ยงต่อการลักลอบใช้ DLL หรือไม่ หากเป็นเช่นนั้นโปรแกรมจะแจ้งให้ผู้ใช้ทราบ แอ็พพลิเคชันมีสองรุ่นคือ x86 และ x64 เพื่อให้คุณสามารถใช้โปรแกรมสแกนทั้งแบบ 32 บิตและ 64 บิตได้ตามลำดับ

ควรสังเกตว่าโปรแกรมข้างต้นเพียงแค่สแกนแอพพลิเคชันบนแพลตฟอร์ม Windows สำหรับช่องโหว่และไม่เป็นจริง ป้องกันการลักลอบใช้ไฟล์ DLL

วิธีการป้องกันการลักลอบ DLL

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

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

ถ้าคุณกำลังแก้ไขปัญหาคอมพิวเตอร์คุณสามารถดำเนินการต่อไปนี้เพื่อเพิ่มความปลอดภัยของคุณ:

  1. ปิดการโหลด DLL จากเครือข่ายระยะไกล
  2. ปิดการโหลดไฟล์ DLL จาก WebDAV
  3. ปิดใช้งานบริการ WebClient ทั้งหมดหรือตั้งค่าเป็น manual
  4. ปิดกั้นพอร์ต TCP 445 และ 139 ตามที่ใช้มากที่สุดในการประนีประนอมคอมพิวเตอร์
  5. ติดตั้งโปรแกรมปรับปรุงล่าสุดสำหรับระบบปฏิบัติการ ระบบและซอฟต์แวร์รักษาความปลอดภัย

Microsoft ได้ออกเครื่องมือเพื่อป้องกันการโจมตีการลักลอบโหลด DLL เครื่องมือนี้ช่วยลดความเสี่ยงในการโจมตีด้วยการแย่งชิง DLL โดยป้องกันไม่ให้โปรแกรมประยุกต์โหลดโค้ดที่ไม่ปลอดภัยจากไฟล์ DLL

หากคุณต้องการเพิ่มอะไรในบทความนี้โปรดแสดงความคิดเห็นด้านล่าง