◎ 개요

  • Execution은 Initial Access 이후 공격자가 본격적으로 행동을 시작하는 지점입니다.
  • 이 단계에서는 공격자 제어 코드가 로컬 또는 원격 시스템에서 실행되며, 스크립트, 명령줄, 정상 도구 악용, 클라이언트 측 실행이 모두 포함될 수 있습니다.
  • 즉, 단순히 “프로세스가 떴다”가 아니라, 공격 의도가 실제 시스템 동작으로 전환되는 순간이라고 보시면 됩니다.

 

◎ Script Interpreter

  • Script Interpreter는 PowerShell, Python, Bash, JavaScript, VBScript처럼 스크립트를 해석하고 실행하는 인터프리터를 악용하는 방식입니다.
  • 공격자는 스크립트를 직접 드롭하거나, 명령줄에서 인라인으로 실행하거나, 다른 프로세스가 스크립트를 호출하도록 만들어 탐지를 우회하려고 합니다.
  • 특히 Windows 환경에서는 PowerShell이 가장 흔한 관찰 지점 중 하나이고, Linux나 macOS에서는 셸과 자동화 스크립트가 중요한 대상이 됩니다.
  • 이 기법의 핵심은 “스크립트 자체”보다 “스크립트가 하는 행동”입니다.
  • 예를 들어 인코딩된 명령, 비정상적인 인자, 원격 다운로드 후 실행, 메모리 상에서의 로딩 같은 패턴이 있으면 의심해야 합니다.
  • 따라서 Script Interpreter 탐지는 서명 기반보다 행위 기반에 더 가깝습니다.

 

◎ Command Execution

  • Command Execution은 명령줄을 통해 프로세스를 실행하고 시스템을 조작하는 방식입니다.
  • cmd.exe, bash, sh, wmic, ssh, rundll32, mshta, reg, sc 같은 실행 도구가 여기에 포함될 수 있습니다.
  • 공격자는 이런 명령 실행을 통해 파일 생성, 서비스 제어, 계정 조작, 네트워크 연결, 후속 페이로드 실행을 이어 갑니다.
  • 실무에서 Command Execution이 중요한 이유는 명령줄이 가장 많은 흔적을 남기면서도 가장 잘 숨길 수 있는 지점이기 때문입니다.
  • 단순 실행 여부보다 커맨드라인 인자, 부모-자식 프로세스 관계, 실행 경로, 실행 시점이 훨씬 중요합니다.
  • 특히 정상 관리 도구가 평소와 다른 위치나 다른 컨텍스트에서 호출되면 Execution 가능성을 의심해야 합니다.

 

◎ Living-off-the-land

 - Living-off-the-land, 흔히 LOTL이라고 부르는 기법은 시스템에 원래 존재하는 정상 도구를 악용하는 방식입니다.

  • PowerShell, WMI, rundll32, regsvr32, certutil, mshta, ssh, curl 같은 신뢰할 수 있는 도구가 공격자의 수단이 됩니다.
  • 이 방식의 문제는 악성 파일을 따로 떨어뜨리지 않아도 되기 때문에, 단순 파일 기반 탐지가 잘 먹히지 않는다는 점입니다.
  • LOTL의 본질은 “도구가 악성인가”가 아니라 “어떻게 사용되었는가”입니다.

 - 예를 들어

  • 평소에는 관리 목적으로만 쓰이던 바이너리가 사용자 폴더나 임시 폴더에서 실행되거나, 외부 URL을 받아오거나, 의심
  • 러운 자식 프로세스를 생성하면 위험 신호가 됩니다.
  • 그래서 LOTL 탐지는 정상 도구 목록을 만드는 것보다, 정상적인 사용 맥락을 정의하는 것이 더 중요합니다.

 

◎ EDR 관점의 포인트

 - EDR에서 Execution 탐지는 프로세스 행위 가시성이 핵심입니다.

 

  > 가장 먼저 봐야 할 것은

  • 프로세스 생성, 부모-자식 관계, 커맨드라인, 사용자 컨텍스트, 실행 경로, 서명 여부입니다.
  • 이 정보가 있어야 “누가 어떤 도구를 어떤 인자로 실행했는지”를 재구성할 수 있습니다.

 

  > 두 번째는 이상 행위 패턴입니다.

  • 예를 들어 Office 프로세스가 스크립트 인터프리터를 호출하거나, 임시 디렉터리에서 실행 파일이 올라오거나, 스크립트 실행 직후 네트워크 연결이 발생하는 경우는 대표적인 경보 패턴입니다.
  • 또한 정상 관리용 프로세스가 권한 상승이나 보안 제품 조작과 연결되면 LOTL 가능성을 높게 봐야 합니다.

 

  > 세 번째는 행위의 연속성입니다.

  • Execution은 단독 이벤트보다 연쇄 이벤트로 봐야 효과적입니다.
  • 예를 들어 스크립트 실행 뒤 파일 생성, 레지스트리 변경, 네트워크 통신, 서비스 등록이 짧은 시간 안에 이어지면 공격일 가능성이 높습니다.

 

 - EDR은 이런 연속성 분석에 강하므로, 단일 알림보다 타임라인 관점으로 접근하는 것이 좋습니다.

 

◎ 탐지 설계 팁

  • Execution 탐지를 설계하실 때는 우선 환경의 “정상 도구 기준선”을 만드시는 것이 좋습니다.
  • PowerShell, bash, curl, ssh, Python, cmd.exe 같은 도구는 정상 업무에서도 자주 쓰이므로, 무조건 차단보다 정상 사용 패턴과의 차이를 찾아야 합니다.
  • 그다음 인자 패턴, 네트워크 연결 여부, 파일 시스템 접근, 원격 실행 흔적을 조합하면 탐지 품질이 좋아집니다.
  • 또한 운영체제별로 우선순위를 나누는 것이 현실적입니다.
  • Windows에서는 PowerShell과 LOLBins가 핵심이고, Linux나 macOS에서는 셸 스크립트, 다운로드 도구, cron, launch agent, systemd 관련 행위가 중요합니다.
  • 클라우드 관리 호스트나 컨테이너 환경에서는 쉘 진입과 오케스트레이션 명령 실행도 함께 봐야 합니다.

 

◎ 정리

  • Execution은 공격자가 실제로 코드를 돌리는 단계이며, Script Interpreter, Command Execution, Living-off-the-land가 핵심 축입니다.
  • EDR에서는 프로세스 생성, 부모-자식 관계, 커맨드라인, 실행 경로, 연속 행위를 중심으로 탐지하는 것이 가장 효과적입니다.
  • 결국 Execution 탐지의 핵심은 “무슨 도구를 썼는가”보다 “그 도구가 어떤 맥락에서 어떤 연쇄 행동을 만들었는가”를 보는 데 있습니다.

 

 

 

반응형

+ Recent posts