DLL 은 Dynamic Link Libraries 를 나타내며 (Dynamic Link Libraries)Windows 또는 기타 운영 체제 에서 실행되는 응용 프로그램의 외부 부분입니다 . 대부분의 응용 프로그램은 그 자체로 완전하지 않으며 코드를 다른 파일에 저장합니다. 코드가 필요한 경우 관련 파일을 메모리에 로드하여 사용합니다. 이렇게 하면 RAM(RAM) 사용을 최적화하면서 응용 프로그램 파일 크기를 줄일 수 있습니다 . 이 문서에서는 DLL 하이재킹(DLL Hijacking) 이 무엇이며 이를 감지하고 방지하는 방법에 대해 설명합니다.
DLL 파일(Files) 또는 동적 링크 라이브러리 란 무엇입니까?(Dynamic Link Libraries)
DLL 파일은 동적 링크 라이브러리(Dynamic Link Libraries) 이며 이름에서 알 수 있듯이 다른 응용 프로그램의 확장입니다. 우리가 사용하는 모든 응용 프로그램은 특정 코드를 사용하거나 사용하지 않을 수 있습니다. 이러한 코드는 다른 파일에 저장되며 관련 코드가 필요할 때만 호출되거나 RAM 에 로드됩니다. (RAM)따라서 애플리케이션 파일이 너무 커지는 것을 방지하고 애플리케이션에 의한 리소스 호깅을 방지합니다.
DLL 파일 의 경로 는 Windows 운영 체제에서 설정합니다. 경로는 전역 환경 변수(Global Environmental Variables) 를 사용하여 설정됩니다 . 기본적으로 응용 프로그램이 DLL 파일을 요청하면 운영 체제는 응용 프로그램이 저장된 동일한 폴더를 찾습니다. 거기에 없으면 전역 변수에 의해 설정된 다른 폴더로 이동합니다. 경로에 우선 순위가 첨부되어 있으며 Windows 에서 DLL(DLLs) 을 찾을 폴더를 결정하는 데 도움이 됩니다 . 여기서 DLL 하이재킹이 발생합니다.
DLL 하이재킹이란
DLL(DLLs) 은 확장이고 컴퓨터의 거의 모든 응용 프로그램을 사용하는 데 필요하기 때문에 설명된 대로 컴퓨터의 다른 폴더에 있습니다. 원본 DLL 파일을 악성 코드가 포함 된 가짜 DLL 파일로 대체하는 것을 (DLL)DLL 하이재킹(DLL Hijacking) 이라고 합니다.
앞서 언급했듯이 운영 체제가 DLL 파일을 찾는 위치에 대한 우선 순위가 있습니다. 먼저(First) 애플리케이션 폴더와 동일한 폴더를 살펴본 후 운영체제의 환경변수로 설정한 우선순위에 따라 검색을 진행한다. 따라서 good.dll 파일이 SysWOW64 폴더에 있고 누군가가 bad.dll을 SysWOW64 폴더보다 우선 순위가 높은 폴더에 넣으면 운영 체제는 (SysWOW64)DLL 과 이름이 같기 때문에 bad.dll 파일을 사용합니다. 응용 프로그램에서 요청한. RAM 에 들어가면 파일에 포함된 악성 코드를 실행할 수 있으며 컴퓨터나 네트워크를 손상시킬 수 있습니다.
DLL 하이재킹을 감지하는 방법
DLL 하이재킹 을 감지하고 방지하는 가장 쉬운 방법 은 타사 도구를 사용하는 것입니다. DLL 해킹 시도 를 감지하고 방지하는 데 도움이 되는 몇 가지 좋은 무료 도구가 시중에 나와 있습니다.
그러한 프로그램 중 하나는 DLL Hijack Auditor 이지만 32비트 응용 프로그램만 지원합니다. 컴퓨터에 설치하고 모든 Windows 응용 프로그램을 스캔하여 모든 응용 프로그램이 DLL 하이재킹에 취약한지 확인할 수 있습니다. 인터페이스는 간단하고 설명이 필요 없습니다. 이 응용 프로그램의 유일한 단점은 64비트 응용 프로그램을 스캔할 수 없다는 것입니다.
DLL 하이재킹 을 감지하는 또 다른 프로그램인 DLL_HIJACK_DETECT 는 (DLL_HIJACK_DETECT,)GitHub 를 통해 사용할 수 있습니다 . 이 프로그램은 응용 프로그램이 DLL(DLL) 하이재킹 에 취약한지 확인합니다 . 그렇다면 프로그램은 사용자에게 알립니다. 응용 프로그램에는 x86 및 x64 의 두 가지 버전 이 있으므로 각각을 사용하여 32비트 및 64비트 응용 프로그램을 모두 스캔할 수 있습니다.
위의 프로그램은 Windows 플랫폼 의 응용 프로그램에서 취약점 을 검색할 뿐 실제로 DLL 파일의 하이재킹을 방지하지는 않습니다.
DLL 하이재킹을 방지하는 방법
보안 시스템을 강화하는 것 외에는 할 수 있는 일이 많지 않기 때문에 이 문제는 우선 프로그래머가 해결해야 합니다. 상대 경로 대신에 프로그래머가 절대 경로를 사용하기 시작하면 취약점이 줄어듭니다. 절대 경로를 읽으면 Windows 또는 기타 운영 체제는 경로에 대한 시스템 변수에 의존하지 않고 의도한 DLL 로 바로 이동하므로 더 높은 우선 순위 경로에서 동일한 이름의 DLL 을 로드할 가능성이 사라집니다 . 이 방법도 시스템이 손상되고 사이버 범죄자가 DLL(DLL) 의 정확한 경로를 알고 있는 경우 원래 DLL 을 가짜 DLL 로 교체 하기 때문에 실패하지 않습니다.. 원래 DLL(DLL) 이 악성 코드로 변경 되도록 파일을 덮어씁니다 . 그러나 사이버 범죄자는 DLL(DLL) 을 호출하는 응용 프로그램에 언급된 정확한 절대 경로를 알아야 합니다 . 이 프로세스는 사이버 범죄자에게 가혹하기 때문에 신뢰할 수 있습니다.
할 수 있는 일로 돌아가서 보안 시스템을 확장 하여 Windows 시스템(secure your Windows system) 의 보안을 강화하십시오 . 좋은 방화벽(firewall) 을 사용하십시오 . 가능하면 하드웨어 방화벽을 사용하거나 라우터 방화벽을 켜십시오. 누군가가 당신의 컴퓨터를 가지고 노는 것을 알 수 있도록 좋은 침입 탐지 시스템 을 사용하십시오.
컴퓨터 문제 해결에 관심이 있는 경우 보안을 강화하기 위해 다음을 수행할 수도 있습니다.
- 원격 네트워크 공유에서 DLL 로드 비활성화
- WebDAV 에서 (WebDAV)DLL 파일 로드 비활성화
- WebClient 서비스를 완전히 비활성화 하거나 수동으로 설정하십시오.
- (Block)컴퓨터를 손상시키는 데 가장 많이 사용되는 TCP 포트 445 및 139를 (TCP)차단 합니다.
- 운영 체제 및 보안 소프트웨어에 대한 최신 업데이트를 설치합니다.
Microsoft 는 (Microsoft)DLL 로드 하이재킹 공격 을 차단하는 도구를 출시했습니다 . 이 도구는 응용 프로그램이 DLL(DLL) 파일 에서 코드를 안전하지 않게 로드하는 것을 방지하여 DLL 하이재킹 공격 의 위험을 완화 합니다.
기사에 추가하고 싶은 내용이 있으면 아래에 의견을 보내주십시오.(If you would like to add anything to the article, please comment below.)
DLL Hijacking Vulnerability Attacks, Prevention & Detection
DLL stands for Dynamic Link Libraries and are external parts of applicatіons that run on Windows or any other operating system. Most applications are not complеte in themselves and store code in different files. If thеre is a need fоr thе code, the related file is loaded into memory and used. Τhis reduces application file size whilе optimizing the usage of RAM. This articlе explains whаt is DLL Hijacking and how to detect and prevent it.
What are DLL Files or Dynamic Link Libraries
DLL files are Dynamic Link Libraries and as evident by the name, are extensions of different applications. Any application we use may or may not use certain codes. Such codes are stored in different files and are invoked or loaded into RAM only when the related code is required. Thus, it saves an application file from becoming too big and to prevent resource hogging by the application.
The path for DLL files are set by the Windows operating system. The path is set using Global Environmental Variables. By default, if an application requests a DLL file, the operating system looks into the same folder in which the application is stored. If it is not found there, it goes to other folders as set by the global variables. There are priorities attached to paths and it helps Windows in determining what folders to look for the DLLs. This is where the DLL hijacking comes in.
What is DLL Hijacking
Since DLLs are extensions and necessary to using almost all applications on your machines, they are present on the computer in different folders as explained. If the original DLL file is replaced with a fake DLL file containing malicious code, it is known as DLL Hijacking.
As mentioned earlier, there are priorities as to where the operating system looks for DLL files. First, it looks into the same folder as the application folder and then goes searching, based on the priorities set by the environment variables of the operating system. Thus if a good.dll file is in SysWOW64 folder and someone places a bad.dll in a folder that has higher priority compared to SysWOW64 folder, the operating system will use the bad.dll file, as it has the same name as the DLL requested by the application. Once in RAM, it can execute the malicious code contained in the file and may compromise your computer or networks.
How to detect DLL Hijacking
The easiest method to detect and prevent DLL hijacking is to use third-party tools. There are some good free tools available in the market that helps in detecting a DLL hack attempt and prevent it.
One such program is DLL Hijack Auditor but it supports only 32-bit applications. You can install it on your computer and scan all your Windows applications to see what all applications are vulnerable to DLL hijack. The interface is simple and self-explanatory. The only drawback of this application is that you cannot scan 64-bit applications.
Another program, to detect DLL hijacking, DLL_HIJACK_DETECT, is available via GitHub. This program checks applications to see if any of them are vulnerable to DLL hijacking. If it is, the program informs the user. The application has two versions – x86 and x64 so that you can use each to scan both 32-bit and 64-bit applications respectively.
It should be noted that the above programs just scan the applications on the Windows platform for vulnerabilities and do not actually prevent the hijacking of DLL files.
How to prevent DLL Hijacking
The issue should be tackled by the programmers in the first place as there is not much you can do except to beef up your security systems. If instead of a relative path, programmers start using an absolute path, the vulnerability will be reduced. Reading the absolute path, the Windows or any other operating system will not depend on system variables for path and will go straight for the intended DLL, thereby dismissing the chances of loading the same name DLL in a higher priority path. This method too, is not fail-proof because if the system is compromised, and the cybercriminals know the exact path of DLL, they will replace the original DLL with the fake DLL. That would be overwriting the file so that the original DLL is changed into malicious code. But again, the cybercriminal will need to know the exact absolute path mentioned in the application that calls for the DLL. The process is tough for cybercriminals and hence can be counted upon.
Coming back to what you can do, just try to scale up your security systems to better secure your Windows system. Use a good firewall. If possible, use a hardware firewall or turn on the router firewall. Use good intrusion detection systems so that you know if anyone is trying to play with your computer.
If you are into troubleshooting computers, you may also perform the following to up your security:
- Disable DLL loading from remote network shares
- Disable loading of DLL files from WebDAV
- Disable WebClient service completely or set it to manual
- Block the TCP ports 445 and 139 as they are used most for compromising computers
- Install the latest updates to the operating system and security software.
Microsoft has released a tool to block DLL load hijacking attacks. This tool mitigates the risk of DLL hijacking attacks by preventing applications from insecurely loading code from DLL files.
If you would like to add anything to the article, please comment below.