DLL Hijacking Vulnerability Attacks การป้องกัน และการตรวจจับ

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

ไฟล์(Files) DLL หรือDynamic Link Libraries คืออะไร(Dynamic Link Libraries)

DLL Hijacking

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

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

DLL Hijacking คืออะไร

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

ดังที่ได้กล่าวไว้ก่อนหน้านี้ มีลำดับความสำคัญที่ระบบปฏิบัติการค้นหาไฟล์DLL อันดับแรก(First)จะค้นหาในโฟลเดอร์เดียวกับโฟลเดอร์แอปพลิเคชัน จากนั้นทำการค้นหาตามลำดับความสำคัญที่กำหนดโดยตัวแปรสภาพแวดล้อมของระบบปฏิบัติการ ดังนั้น หากไฟล์ 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 เพื่อหา (Windows)ช่องโหว่และไม่ได้ป้องกันการจี้ ไฟล์ DLLจริงๆ

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

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

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

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

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

Microsoftได้เปิดตัวเครื่องมือเพื่อป้องกัน การโจมตี DLL load hijacking เครื่องมือนี้ช่วยลดความเสี่ยงของ การโจมตี DLL hijacking โดยป้องกันไม่ให้แอปพลิเคชันโหลดโค้ดจากไฟล์DLL อย่างไม่ปลอดภัย(DLL)

หากคุณต้องการเพิ่มอะไรในบทความโปรดแสดงความคิดเห็นด้านล่าง(If you would like to add anything to the article, please comment below.)



About the author

ฉันเป็นวิศวกรเสียงมืออาชีพที่มีประสบการณ์มากกว่า 10 ปี ฉันทำงานในวงการเพลงมาสองสามปีแล้ว และได้พัฒนาชื่อเสียงที่แข็งแกร่งในสาขานั้น ฉันยังเป็นบัญชีผู้ใช้ที่มีประสบการณ์สูงและดูแลความปลอดภัยของครอบครัวอีกด้วย ความรับผิดชอบของฉันรวมถึงการจัดการบัญชีผู้ใช้ การให้การสนับสนุนลูกค้า และการให้คำแนะนำด้านความปลอดภัยในครอบครัวแก่พนักงาน



Related posts