swuforce

[안랩 ASEC] 정상 EXE 파일 실행 시 감염되는 정보탈취 악성코드 주의 (DLL Hijacking)

범호야 2024. 10. 1. 11:48

정상 EXE파일 실행을 유도해서 정보를 탈취하려는 악성코드가 활발히 유포 중이므로 주의가 필요하다

 

DLL Hijacking이란?

DLL Hijacking은 공격자가 유효한 서명을 포함한 (정상 EXE파일) + (악성 DLL)을 같은 디렉토리에 압축하여 유포한다. 

EXE파일은 정상이지만, 악성 DLL과 동일한 디렉토리에서 실행될 경우 악성 DLL을 자동으로 실행한다. 

사이트에서 Download 버튼을 클릭하면 여러 리디렉션을 거쳐 최종 유포지에 도달한다. 다운로드 된 파일은 암호화된 RAR 압축파일이며, 정상적으로 보이도록 포장되어 있다. 해당 파일을 압축 해제 후 내부의 정상 EXE 파일을 실행하면 악성코드에 감염된다. 

 

악성 DLL 파일은 원본 정상 DLL 파일의 일부분을 변조하여 제작되었다. 변조된 코드는 동일 디렉토리 내 특정 데이터 파일을 읽어 복호화 후 실행하는 행위를 한다. 악성코드 데이터 전체를 DLL 파일에 담을 경우 파일 외형이 심하게 변형되므로 탐지가 쉬워진다. 때문에 원본 DLL 파일에서 최소한의 수정만으로 악성 행위를 구현하기 위해 이러한 방식을 사용한 것으로 추정된다.

 

윈도우 운영체제에서만 사용할 수 있고, 크게 4가지 기법으로 나눌 수 있다. 

① Search Order Hijacking

- 가장 많이 알려진 기법이고, 공격자가 윈도우 운영체제에서 dll 검색에 사용되는 검색 방식을 악용하여 합법적인 프로세스에서 악성코드를 실행하도록 속이는 기법이다. 

② Relative path DLL hijacking

- search order hijacking에서 변행된 기법으로 공격자가 적절한 쓰기 권한이 있는 폴더에 악성dll과 함께 합법적인 실행 파일의 이름을 변경하여 생성하는 기법니다. 예를 들어, note.exe가 불러오는 dll 정보를 미리 확보한 후 note.exe가 위치한 경로가 아닌 전혀 다른 경로에 옮긴 이후 파일명을 바꾸고 악성 dll을 같은 폴더에 두고 실행하는 경우이다.

③ Phantom DLL hijacking

- 공격자가 윈도우 운영체제에서 존재하지 않는 dll파일을 참조하여 누락된 dll 중 하나를 지정하여 악성 dll을 작성하여 공격하는 기법이다. 

④ DLL redirection

- 가장 최신의 공격기법 중 하나로 공격자가 미리 정의된 검색 순서를 활용하는 대신 운영체제가 dll파일을 검색하는 위치를 변경한다. 이를 통해 프로그램이 다른 dll파일을 실행하도록 하는게 가능하다 

 

4가지 기법 중에서도 이번에는 Search Order Hijacking에 대해 자세히 알아볼 것이다.

Search Order Hijacking 은 공격자가 Windows 운영 체제의 잘 문서화된 동작을 악용하여 합법적인 프로세스에서 악성 코드를 실행하도록 속이는 경우이다. 

Windows 시스템은 프로그램에 로드 할 필수 DLL을 찾는 데 일반적인 방법을 사용한다. 

찾는 순서는 

    1) 프로그램이 로드된 디렉토리
    2) 시스템 디렉토리 (system32, SysWO64)
    3) 16비트 시스템 디렉토리 (거의 사용되지 않음)
    4) Windows 디렉토리
    5) 현재 디렉토리
    6) PATH 환경변수에 설정된 디렉토리

 

빠른 순서에서 탐색된 dll을 먼저 로드하기 때문에 공격자는 정상 프로그램이 로드해야 할 dll 보다 빠른 순서에 악성 dll을 삽입하여 먼저 로드될 수 있도록 한다. 

 

DLL 파일?
DLL은 ‘Dynamic Link Library(동적 링크 라이브러리)’의 약자로 여러 프로그램에서 사용할 수 있는 코드 및 데이터를 포함하는 파일 유형이다. 윈도우 운영체제 컴퓨터에서 어떠한 기능을 수행하면 소스 코드의 일종인 것이다. 
DLL파일은 프로그램을 통해 쉽게 수정이 가능하다는 장점과 단점으로 DLL Hijacking에 이용되고 있다. 

 

 

이러한 방식의 유포는 유명 소프트웨어의 정상 EXE 실행으로 감염되며, 악성 DLL은 원본 DLL 파일과 외형이 매우 유사하기 때문에 단순 EXE로 유포되는 악성코드와는 다르게 발생 초기 AV 벤더의 진단률이 매우 저조한 편이므로 주의가 필요하다.

[참고 문헌]

https://asec.ahnlab.com/ko/58088/

https://www.igloo.co.kr/security-information/dll-hijacking-part-1-search-order-hijacking/