DLL 하이재킹 취약점 공격, 예방 및 탐지

DLLDynamic Link Libraries 를 나타내며 (Dynamic Link Libraries)Windows 또는 기타 운영 체제 에서 실행되는 응용 프로그램의 외부 부분입니다 . 대부분의 응용 프로그램은 그 자체로 완전하지 않으며 코드를 다른 파일에 저장합니다. 코드가 필요한 경우 관련 파일을 메모리에 로드하여 사용합니다. 이렇게 하면 RAM(RAM) 사용을 최적화하면서 응용 프로그램 파일 크기를 줄일 수 있습니다 . 이 문서에서는 DLL 하이재킹(DLL Hijacking) 이 무엇이며 이를 감지하고 방지하는 방법에 대해 설명합니다.

DLL 파일(Files) 또는 동적 링크 라이브러리 란 무엇입니까?(Dynamic Link Libraries)

DLL 하이재킹

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) 을 사용하십시오 . 가능하면 하드웨어 방화벽을 사용하거나 라우터 방화벽을 켜십시오. 누군가가 당신의 컴퓨터를 가지고 노는 것을 알 수 있도록 좋은 침입 탐지 시스템 을 사용하십시오.

컴퓨터 문제 해결에 관심이 있는 경우 보안을 강화하기 위해 다음을 수행할 수도 있습니다.

  1. 원격 네트워크 공유에서 DLL 로드 비활성화
  2. WebDAV 에서 (WebDAV)DLL 파일 로드 비활성화
  3. WebClient 서비스를 완전히 비활성화 하거나 수동으로 설정하십시오.
  4. (Block)컴퓨터를 손상시키는 데 가장 많이 사용되는 TCP 포트 445 및 139를 (TCP)차단 합니다.
  5. 운영 체제 및 보안 소프트웨어에 대한 최신 업데이트를 설치합니다.

Microsoft 는 (Microsoft)DLL 로드 하이재킹 공격 을 차단하는 도구를 출시했습니다 . 이 도구는 응용 프로그램이 DLL(DLL) 파일 에서 코드를 안전하지 않게 로드하는 것을 방지하여 DLL 하이재킹 공격 의 위험을 완화 합니다.

기사에 추가하고 싶은 내용이 있으면 아래에 의견을 보내주십시오.(If you would like to add anything to the article, please comment below.)



About the author

저는 12년 이상의 경험을 가진 숙련된 iOS 개발자입니다. 저는 iPhone과 iPad 플랫폼 모두에서 일해 왔으며 최신 Apple 기술을 사용하여 앱을 만들고 사용자화하는 방법을 알고 있습니다. aiOS 개발자로서의 기술 외에도 Adobe Photoshop 및 Illustrator 사용과 WordPress 및 Laravel과 같은 프레임워크를 통한 웹 개발에 대한 강력한 경험이 있습니다.



Related posts