티스토리 뷰

728x90
위성 DLL 로드 취약점

위성 DLL 로드 취약점

1. 위성 DLL 로드 취약점이란?

위성 DLL 로드 취약점(Satellite DLL Load Vulnerability)은 응용 프로그램이 특정 언어 리소스나 플러그인과 같은 위성 DLL을 로드할 때 발생할 수 있는 보안 문제입니다. 위성 DLL은 프로그램의 실행 파일과 같은 경로에 있거나, 특정 경로에서 로드됩니다. 이 취약점을 악용하면, 공격자는 악성 DLL을 시스템에 배치하여 응용 프로그램이 이를 로드하게 만들 수 있습니다.

2. 위성 DLL 로드 취약점의 유형

  • DLL 하이재킹(DLL Hijacking): 프로그램이 특정 DLL을 로드할 때, 시스템의 경로 탐색 순서에 따라 악성 DLL이 먼저 로드되는 경우입니다. 공격자는 프로그램과 동일한 이름의 악성 DLL을 경로 상에 배치해 시스템이 이를 먼저 로드하게 만듭니다.
  • DLL 경로 탐색 순서 취약점: 운영체제는 특정 경로에서 먼저 DLL을 검색합니다. 공격자가 이 경로 탐색 순서를 악용해 악성 DLL을 우선 로드하게 만들 수 있습니다.
  • 위성 DLL 하이재킹(Satellite DLL Hijacking): 프로그램이 지역화된 리소스나 언어별 리소스를 로드하는 위성 DLL을 동적으로 로드할 때, 잘못된 경로에서 로드되면 공격자가 악성 DLL을 실행시킬 수 있습니다.

3. 취약점이 발생하는 원인

  • 불명확한 DLL 경로 지정: 프로그램이 LoadLibrary() 또는 LoadLibraryEx()와 같은 함수를 사용할 때 명확한 절대 경로를 지정하지 않으면, 운영체제가 경로 탐색 순서에 따라 예상하지 않은 경로에서 DLL을 로드할 수 있습니다.
  • 기본 경로 탐색 순서의 오용: 기본적으로 윈도우는 실행 파일 경로, 시스템 디렉터리, PATH 환경 변수의 순서대로 DLL을 찾습니다. 공격자는 이를 악용해 프로그램이 악성 DLL을 로드하게 할 수 있습니다.
  • 사용자 권한 부족: 낮은 권한을 가진 사용자가 임시 디렉터리에 접근할 수 있는 경우, 악성 DLL을 해당 디렉터리에 배치하여 시스템을 공격할 수 있습니다.

4. 방지 방법

  • 명시적 경로 사용: LoadLibrary() 또는 LoadLibraryEx() 함수를 사용할 때, 명확한 절대 경로를 지정하여 DLL을 로드해야 합니다. 상대 경로나 기본 경로에 의존하지 않고, 명확한 경로를 설정해 악성 DLL이 로드되지 않도록 해야 합니다.
  • DLL 검색 경로 제한: SetDllDirectory() 함수를 사용해 특정 경로에서만 DLL을 로드하도록 설정할 수 있습니다. 이를 통해 예상하지 못한 경로에서 악성 DLL이 로드되는 것을 방지할 수 있습니다.
  • Safe DLL Search Mode 사용: 윈도우에서 Safe DLL Search Mode를 활성화하면, 시스템 디렉터리와 Windows 디렉터리부터 먼저 탐색하므로, DLL 하이재킹 위험을 줄일 수 있습니다.
  • 디지털 서명 확인: DLL에 디지털 서명을 적용해, 로드 시 무결성과 신뢰성을 확인하여 악성 DLL이 아닌 신뢰할 수 있는 DLL만 로드되도록 할 수 있습니다.
  • Application Manifest 사용: 애플리케이션 매니페스트 파일에서 RequireAdministrator 속성을 설정하여 관리자 권한으로 프로그램을 실행함으로써 악성 DLL이 쉽게 설치되지 않도록 방지할 수 있습니다.

5. 결론

위성 DLL 로드 취약점은 시스템의 경로 탐색 순서나 불명확한 경로 지정으로 인해 발생하는 중요한 보안 문제입니다. 공격자는 이를 이용해 악성 DLL을 로드시켜 프로그램의 동작을 변경하거나, 악성 코드를 실행할 수 있습니다. 이러한 문제를 방지하기 위해서는 DLL 로드 경로를 명확하게 설정하고, 시스템의 기본 경로 탐색 순서를 조정해 안전한 방식으로 DLL을 관리하는 것이 필요합니다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함
250x250