MITRE ATT&CK: T1059.002 (AppleScript) | 전술: Execution | 플랫폼: macOS
도입: 왜 이 공격이 중요한가
당신이 Mac에서 평소처럼 작업하고 있는데, 갑자기 시스템 알림창이 뜨며 "보안 업데이트를 위해 비밀번호를 입력하세요"라고 요청한다면? 대부분의 사용자는 의심 없이 비밀번호를 입력할 것입니다. 하지만 이 창이 실제로는 AppleScript 로 만들어진 가짜 대화상자일 수 있습니다.
AppleScript 는 macOS에서 애플리케이션과 시스템을 자동화하기 위한 스크립팅 언어입니다. 하지만 공격자들은 이를 악용해 사용자를 속이고, 시스템을 조작하며, 악성 행위를 수행하는 강력한 도구로 사용하고 있습니다.
1. 공격자 관점
왜 이 기법을 사용하는가
- 사용자 신뢰성 악용: 시스템 대화상자와 구분하기 어려운 가짜 창을 만들어 자격 증명을 탈취할 수 있음
- 탐지 회피: 정상적인 시스템 기능으로 위장하여 보안 솔루션의 탐지를 피할 수 있음
- 다양한 실행 방법: 명령줄, 메일 규칙, 캘린더 알람 등 여러 방법으로 실행 가능하여 공격 벡터가 다양함
동작 흐름
💡 쉬운 비유: AppleScript는 Mac의 "리모컨"과 같습니다. 정상적으로는 TV 채널을 바꾸는 용도이지만, 악의적으로 사용하면 사용자 몰래 원하지 않는 채널로 돌리고 볼륨을 조작할 수 있습니다.
2. 실제 공격 사례
📌 Cuckoo Stealer - macOS 정보 탈취 캠페인 (2024년)
배경: 2024년 4월, 연구진들이 음악 변환 소프트웨어로 위장한 새로운 macOS 멀웨어를 발견했습니다. 이 멀웨어는 정보 탈취와 스파이웨어 기능을 결합한 하이브리드 형태로 설계되었습니다.
공격 과정:
- DumpMedia Spotify Music Converter 등 합법적인 소프트웨어로 위장하여 배포
- AppleScript의 osascript 를 사용해 가짜 비밀번호 입력 창을 생성하여 사용자 자격 증명 탈취
- 환경 변수 설정 및 파일 복사 작업을 수행하여 시스템 내 지속성 확보
피해 규모: 18개 이상의 서로 다른 트로이목마화된 애플리케이션으로 확산되었으며, 매일 새로운 샘플이 등장
출처: Malware: Cuckoo Behaves Like Cross Between Infostealer and Spyware
📌 Bundlore - 광고 주입 애드웨어 (2015년~현재)
배경: 2015년부터 지속적으로 활동하고 있는 macOS 애드웨어로, macOS 보안 기능을 우회하여 원치 않는 광고를 표시하는 것이 주요 목적입니다.
공격 과정:
- 정상적인 소프트웨어 번들에 숨어서 시스템에 침투
- AppleScript 를 활용해 브라우저에 악성 JavaScript 코드를 주입
- 사용자 브라우징 중 지속적으로 광고를 표시하며 수익 창출
피해 규모: 10년 가까이 지속되고 있는 장기간 위협으로, 수많은 Mac 사용자들이 피해를 입음
출처: macOS Bundlore: Mac Virus Bypassing macOS Security Features
📌 Dok - 지속성 확보를 위한 로그인 아이템 생성 (2017년)
배경: 2017년 발견된 macOS 멀웨어로, 시스템에서 지속적으로 실행되기 위해 AppleScript를 악용했습니다.
공격 과정:
- 초기 침투 후 시스템 내에서 실행 권한 확보
- AppleScript 를 사용하여 로그인 아이템을 생성해 시스템 재시작 시에도 자동 실행되도록 설정
- 백그라운드에서 지속적으로 악성 활동을 수행하며 탐지를 회피
피해 규모: macOS 사용자를 대상으로 한 대표적인 지속성 확보 사례로 기록됨
3. 왜 탐지가 어려운가?
공식 탐지 방법
DET0414 macOS에서의 AppleScript 기반 실행 탐지 - AN1164: osascript, NSAppleScript/OSAScript API를 통한 AppleScript 실행과 비정상적인 애플리케이션 제어 이벤트를 사용자 세션 전반에 걸쳐 탐지합니다. osascript가 자식 프로세스를 생성하거나, 스크립트로 인한 키 입력, API 기반 대화상자 스푸핑과 같은 인과관계 체인에 집중합니다.
공격자가 이 기법을 선호하는 이유
- 정상 기능과의 구분 어려움: AppleScript는 macOS의 정당한 자동화 도구이므로, 악의적 사용과 정상 사용을 구분하기 매우 어려움
- 사용자 인터페이스 조작: 시스템 대화상자와 거의 구별할 수 없는 가짜 창을 만들어 사용자를 쉽게 속일 수 있음
- 다양한 실행 경로: 명령줄뿐만 아니라 메일 규칙, 캘린더 알람, Automator 워크플로우 등을 통해 실행되어 탐지 포인트가 분산됨
탐지의 현실적 한계
공식 탐지 방법이 존재하지만, 실제 환경에서는 AppleScript의 정상적인 사용이 매우 빈번하여 높은 오탐률이 발생할 수 있습니다. 또한 스크립트 내용을 실시간으로 분석하기 위해서는 상당한 시스템 리소스가 필요하며, 암호화되거나 난독화된 스크립트의 경우 정적 분석만으로는 악의적 행위를 판단하기 어렵습니다.
4. 나도 위험할까? 자가 진단
이 공격이 나와 관련 있는지 확인해보세요.
이런 환경이라면 주의가 필요합니다
- 인터넷에서 무료 소프트웨어(특히 미디어 변환기, 클리너 등)를 자주 다운로드하여 사용
- 시스템 보안 설정에서 "확인되지 않은 개발자의 앱 허용"을 활성화한 상태
- 메일이나 웹사이트에서 받은 파일을 별다른 검증 없이 실행하는 경우
- macOS의 기본 보안 기능(Gatekeeper, XProtect)을 비활성화하거나 우회하여 사용
공식 대응 방안
M1045 코드 서명: 모든 AppleScript가 신뢰할 수 있는 개발자 ID로 서명된 후에만 실행되도록 요구합니다. 이는 임의의 AppleScript 코드 실행을 방지하며, AppleScript 코드를 다른 .app 파일들과 동일한 Gatekeeper 검증 과정을 거치도록 합니다.
M1038 실행 방지: 적절한 경우 애플리케이션 제어를 사용합니다.
당장 할 수 있는 것
- macOS 시스템 환경설정에서 "보안 및 개인정보 보호" → "일반"에서 "확인된 개발자의 앱만 허용" 설정 활성화
- 의심스러운 비밀번호 요청 창이 나타나면, 시스템 환경설정을 통해 직접 확인 후 입력
- 이상한 점 발견 시 전문가에게 문의하거나 관련 기관에 신고하기
5. 관련 기술
| 기법 | 어떤 상황에서 함께 사용되나 |
|---|---|
| T1106 Native API | AppleScript 내에서 NSAppleScript나 OSAScript API를 호출하여 더 정교한 시스템 조작을 수행할 때 |
| T1059.006 Python | AppleScript를 통해 Python 리버스 셸을 실행하여 원격 제어 기능을 구현할 때 |
| T1547 Boot or Logon Autostart Execution | AppleScript로 로그인 아이템을 생성하여 시스템 재시작 시 자동 실행되도록 지속성을 확보할 때 |
참고 자료
📌 이 글은 AI(Claude) 를 활용하여 작성되었으며, MITRE ATT&CK v18.0 기준 (2025-10-28) 을 기준으로 합니다. 본 콘텐츠는 보안 교육 및 방어 목적으로만 제공되며, 이를 악용한 불법 행위에 대한 책임은 전적으로 행위자 본인에게 있습니다.
?뱛 ??湲? [?ㅽ겕由쏀듃 ?ㅽ뻾(T1059) ?쒕━利?(/blog/t1059-command-and-scripting-interpreter)???쇰??낅땲??
COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.