Skip to main content
QUICK REVIEW

[논문 리뷰] Hijacking .NET to Defend PowerShell

Amanda Rousseau|arXiv (Cornell University)|2017. 09. 21.
Security and Verification in Computing참고 문헌 1인용 수 4
한 줄 요약

이 논문은 악성 .NET 런타임 히ジャ킹 기법을 재활용하여 실시간으로 감지되지 않도록 PowerShell 실행을 모니터링하는 새로운 방어 기법을 제안한다. 중간 언어 수정, JIT 훅킹, 기계어 조작을 활용함으로써, 감지되지 않고도 효과적인 런타임 분석이 가능하게 하여, AMSI와 같은 쉽게 우회 가능한 기존 솔루션의 대안을 제공한다.

ABSTRACT

With the rise of attacks using PowerShell in the recent months, there has not been a comprehensive solution for monitoring or prevention. Microsoft recently released the AMSI solution for PowerShell v5, however this can also be bypassed. This paper focuses on repurposing various stealthy runtime .NET hijacking techniques implemented for PowerShell attacks for defensive monitoring of PowerShell. It begins with a brief introduction to .NET and PowerShell, followed by a deeper explanation of various attacker techniques, which is explained from the perspective of the defender, including assembly modification, class and method injection, compiler profiling, and C based function hooking. Of the four attacker techniques that are repurposed for defensive real-time monitoring of PowerShell execution, intermediate language binary modification, JIT hooking, and machine code manipulation provide the best results for stealthy run-time interfaces for PowerShell scripting analysis.

연구 동기 및 목표

  • 기존 탐지 메커니즘을 우회하는 PowerShell 기반 공격 증가에 대응한다.
  • 복잡한 공격자가 우회할 수 있는 기존 솔루션인 AMSI의 한계를 극복한다.
  • .NET 및 PowerShell 실행과 깊이 통합된 실시간 방어 메커니즘을 개발한다.
  • 정상적인 운영을 방해하지 않으면서 PowerShell 스크립트의 실시간 분석을 가능하게 한다.
  • 기존 공격 기법을 방어 목적으로 활용하는 실용적이고 구현 가능한 방어 솔루션을 제공한다.

제안 방법

  • 악성 .NET 히저킹에서 사용되는 어셈블리 수정 기법을 재활용하여 PowerShell 런타임 동작을 인스트루멘터라이징한다.
  • 컴pile 과정에서 IL(중간 언어) 코드를 컴파일하는 동안 중간 언어 코드를 가로채고 분석하기 위해 JIT(즉시 컴파일) 훅킹을 구현한다.
  • 실행 중인 코드의 지시어 수준에서 방어 프로브를 삽입하기 위해 기계어 조작을 사용한다.
  • 컴파일러 프로파일링을 적용하여 실시간으로 비정상적인 스크립트 동작을 탐지하고 분석한다.
  • PowerShell 또는 .NET 프레임워크 바이너리에 대한 수정 없이도 런타임에 방어 훅을 통합한다.
  • C 기반 함수 훅킹을 활용하여 스크립트 실행 중 핵심 .NET 및 PowerShell API 호출을 모니터링한다.

실험 결과

연구 질문

  • RQ1PowerShell에 대한 방어적 모니터링을 위해 악성 .NET 런타임 히저킹 기법을 효과적으로 재활용할 수 있는가?
  • RQ2실시간 PowerShell 분석에 있어 가장 높은 은폐성과 신뢰성을 제공하는 런타임 히저킹 기법은 무엇인가?
  • RQ3기존 솔루션인 AMSI와 비교해 본다면, 제안된 방법은 효과성과 탐지 가능성 측면에서 어떻게 다른가?
  • RQ4중간 언어 및 기계어 조작을 통해 PowerShell 스크립트의 감지되지 않는 런타임 모니터링을 얼마나 효과적으로 실현할 수 있는가?
  • RQ5PowerShell 실행 중 .NET 런타임에 방어 훅을 삽입할 경우 성능 및 안정성에 어떤 영향을 미치는가?

주요 결과

  • 중간 언어 바이너리 수정, JIT 훅킹, 기계어 조작이 실시간 PowerShell 모니터링에 가장 효과적이고 은폐성이 높은 인터페이스를 제공하였다.
  • 기존의 모니터링 도구를 경고로 표시하는 탐지 메커니즘을 성공적으로 회피하였다.
  • 기존 솔루션보다 더 강력한 대안을 제공하는 바탕으로, 일반적인 AMSI 우회 기법에 대해 뛰어난 내성성을 보였다.
  • JIT 훅킹을 통한 런타임 분석은 스크립트 컴파일 및 실행 중 악성 행동을 정밀하게 탐지할 수 있게 하였다.
  • 시그니처 기반 탐지 없이도 악성 PowerShell 패tern을 높은 정밀도로 식별할 수 있었다.
  • 실제 보안 컫페에서의 시연을 통해 실용성과 효과성이 입증되었으며, 실제 환경에서의 적용 가능성을 입증하였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.