본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 보안·개인정보 · 윈도우즈 유틸

capa

0

capa는 Mandiant(구 FireEye)의 FLARE 팀에서 개발한 오픈소스 도구로, 실행 파일(PE, ELF, .NET, 셸코드 등)의 기능을 분석하여 해당 프로그램이 수행할 수 있는 행동을 탐지합니다.

기능 탐지바이너리 분석샌드박스 연동악성코드 분석역공학오픈소스

소개

capa는 Mandiant(구 FireEye)의 FLARE 팀에서 개발한 오픈소스 도구로, 실행 파일(PE, ELF, .NET, 셸코드 등)의 기능을 분석하여 해당 프로그램이 수행할 수 있는 행동을 탐지합니다. 이 도구는 정적 분석과 동적 분석(샌드박스 보고서 기반)을 모두 지원하며, MITRE ATT&CK 프레임워크와 연계된 결과를 제공합니다. capa는 명령줄 도구로 제공되며, 독립 실행형 바이너리로 다운로드하여 설치 없이 사용할 수 있습니다. 또한, capa Explorer 웹 인터페이스를 통해 브라우저에서 결과를 시각적으로 탐색할 수 있습니다.

상세정보

정적 기능 탐지

capa는 로컬 실행 파일을 직접 분석하여 내장된 규칙 세트를 기반으로 기능을 탐지합니다. 예를 들어, 파일이 HTTP 통신을 수행하거나, 서비스를 생성하거나, 레지스트리를 수정하거나, 쉘 명령을 실행할 수 있는지 판단합니다. 탐지 결과는 기능 이름과 해당 네임스페이스(예: communication/http/client, persistence/service)로 분류되어 표 형태로 제공됩니다.

동적 기능 탐지 (샌드박스 연동)

capa는 CAPE, DRAKVUF, VMRay와 같은 샌드박스에서 생성된 보고서(.json, .log, .zip 등)를 입력으로 받아 동적 분석 결과를 지원합니다. 이는 실행 중인 프로세스의 실제 행동을 포착하여, 정적 분석에서 놓칠 수 있는 패커드 또는 난독화된 malware의 행동을 탐지하는 데 유용합니다. 사용자는 샌드박스에서 파일을 실행한 후 생성된 보고서 파일을 capa에 전달하여 분석할 수 있습니다.

ATT&CK 및 MBC 연계 출력

모든 탐지 결과는 MITRE ATT&CK 전술·기술 및 Malware Behavior Catalog(MBC)와 매핑되어 제공됩니다.これにより、 분석자는 탐지된 기능이 어떤 공격 단계와 관련 있는지 직관적으로 이해할 수 있습니다. 예를 들어, ‘DEFENSE EVASION’ 전술 하의 ‘Obfuscated Files or Information [T1027]’ 또는 ‘PERSISTENCE’ 전술 하의 ‘Create or Modify System Process::Windows Service [T1543.003]’과 같은 결과를 확인할 수 있습니다.

상세 분석 (-vv 플래그)

-vv(매우 상세) 플래그를 사용하면 capa는 각 기능이 발견된 정확한 주소, 관련 함수, 사용된 API 또는 문자열 등을 보여줍니다. 이는 분석자가 결과를 검증하고, IDA Pro나 Ghidra와 같은 디스어셈블러에서 해당 코드 위치를 직접 조사하는 데 도움을 줍니다. 예를 들어, ‘create a process with modified I/O handles’ 기능이 0x4011C0 주소에서 kernel32.CreateProcess API 호출과 연결됨을 확인할 수 있습니다.

확장 가능한 규칙 시스템

capa는 YAML 기반의 규칙을 사용하여 기능을 정의하며, 사용자는 새로운 규칙을 작성하여 탐지 범위를 확장할 수 있습니다. 공식 규칙 저장소인 capa-rules에는 수백 개의 표준 규칙이 포함되어 있으며, 커뮤니티 기여를 통해 지속적으로 업데이트됩니다. 규칙 작성 가이드와 예제가 문서에 제공되어 역공학 초보자도 규칙 개발에 참여할 수 있습니다.

통합 도구 지원

capa는 IDA Pro 및 Ghidra와 같은 주요 역공학 플러그인과 통합되어 사용할 수 있습니다. IDA Pro용 capa explorer 플러그인은 디스어셈블리 뷰 내에서 직접 기능을 탐지하고, 주석 및 규칙 개발을 지원합니다. 또한, PyGhidra 백엔드를 통해 Ghidra의 분석 엔진을 활용한 기능 추출도 가능합니다.

다운로드·설치 방법

capa는 독립 실행형 바이너리로 제공되므로 별도의 설치 절차가 필요하지 않습니다. 공식 GitHub 저장소의 Releases 페이지에서 최신 버전의 Windows용 capa.exe 파일을 다운로드할 수 있습니다. 다운로드 후 압축을 해제하고, 명령 프롬프트 또는 PowerShell에서 해당 디렉터리로 이동하여 실행하면 됩니다. 예를 들어, capa.exe suspicious.exe와 같이 실행 파일을 인자로 전달하여 분석을 시작할 수 있습니다.

라이브러리로 사용하거나 다른 도구와 통합하려는 경우, doc/installation.md에 따라 Python 패키지(flare-capa)를 pip로 설치할 수 있습니다. 이 방법은 스크립트 기반 자동화 또는 대규모 분석 파이프라인 구축에 적합합니다.

기본 사용법/명령어

capa는 명령줄 인터페이스(CLI) 도구로 작동합니다. 가장 기본적인 사용법은 다음과 같습니다:

  • capa.exe <파일 경로> – 대상 실행 파일에 대한 정적 분석 수행
  • capa.exe <파일 경로> -vv – 매우 상세한 출력으로 증거 위치 및 세부 정보 표시
  • capa.exe <샌드박스 보고서 파일> – CAPE, DRAKVUF, VMRay 등에서 생성된 보고서 파일로 동적 분석 수행

예를 들어, capa.exe suspicious.exe 명령을 실행하면, 해당 파일이 수행할 수 있는 기능 목록이 표 형태로 출력됩니다. 출력은 기능 이름, 네임스페이스, 그리고 선택적으로 ATT&CK 기술 정보를 포함합니다. 추가로 -vv 플래그를 사용하면, 각 기능이 발견된 메모리 주소, 관련 함수, 사용된 API 호출 등을 확인할 수 있어 분석의 신뢰성을 높일 수 있습니다.

이런 경우에 유용합니다

악성코드 분석가가 알 수 없는 실행 파일의 행동을 빠르게 파악해야 할 때, capa는 정적 분석만으로도 해당 파일이 백도어 기능을 가지고 있는지, 서비스를 설치하려는지, 네트워크 통신을 시도하는지 등을 판단하는 데 유용합니다. 특히, 샌드박스에서 실행한 파일의 보고서를 capa에 입력하면, 실제 실행 중 포착된 행동을 탐지하여 정적 분석의 한계를 보완할 수 있습니다. 이는 사고 대응, 위협 사냥, 멀웨어 분류 작업에서 분석 시간을 단축하고 정확도를 높이는 데 도움이 됩니다.

보안 연구원이나 역공학 학습자가 새로운 기법을 탐지하거나 자신만의 탐지 규칙을 작성하고 싶을 때, capa의 오픈소스 규칙 시스템은 학습 및 기여의 좋은 출발점이 됩니다. 공식 문서와 예제 규칙을 참조하여 YAML 기반 규칙을 작성하고, capa-rules 저장소에 기여함으로써 커뮤니티에 공헌할 수 있습니다.

지원 환경·시스템 요구사항

capa는 Windows, Linux, macOS에서 실행할 수 있는 크로스플랫폼 도구입니다. Windows 사용자는 공식 배포 페이지에서 capa.exe 바이너리를 다운로드하여 사용할 수 있으며, 추가적인 런타임 의존성(.NET 등)은 필요하지 않습니다. Python 기반 라이브러리 버전을 사용하려면 Python 3.7 이상이 필요하며, pip를 통해 flare-capa 패키지를 설치할 수 있습니다.

최신 버전·업데이트

현재 버전은 1.2.0이며, 최신 릴리스 정보와 다운로드 링크는 GitHub 저장소의 Releases 섹션에서 확인할 수 있습니다. 버전 업데이트는 새로운 기능 탐지 규칙 추가, 샌드박스 보고서 형식 지원 확장, 성능 개선, 버그 수정 등을 포함합니다. 변경 사항은 각 릴리스 페이지의 release notes에서 상세히 확인할 수 있습니다.

제한 사항·확인 사항

capa는 정적 분석 기반 도구이므로, 강력한 난독화 또는 패커가 적용된 파일에 대해서는 정확도가 낮을 수 있습니다. 이와 같은 경우, 공식 문서에서는 파일을 언패킹하거나, 샌드박스에서 실행하여 생성된 보고서를 capa에 입력하여 동적 분석을 수행할 것을 권장합니다. 또한, capa는 탐지 규칙에 의존하므로, 새로운 공격 기법에 대한 탐지는 해당 규칙이 업데이트된 후에 가능합니다. 사용자는 최신 규칙 세트를 유지하기 위해 capa-rules 저장소를 정기적으로 확인하거나, 최신 버전의 capa를 사용하는 것이 좋습니다.

FAQ

  • capa는 무료로 사용할 수 있나요?

    네, capa는 Apache-2.0 라이선스 하에 배포되는 오픈소스 도구로, 상업적 및 비상업적 목적으로 자유롭게 사용할 수 있습니다.

  • Windows에서 실행하려면 추가 설치가 필요한가요?

    아니요. Windows용 capa는 독립 실행형 바이너리(.exe)로 제공되므로, 다운로드 후 압축을 해제하면 바로 실행할 수 있습니다. 별도의 설치 프로그램이나 런타임 의존성은 필요하지 않습니다.

  • 샌드박스 보고서 없이도 사용할 수 있나요?

    네. capa는 로컬 실행 파일에 대한 정적 분석을 기본으로 지원합니다. 샌드박스 보고서는 동적 분석 기능을 활용하기 위한 선택적 입력이며, 필수 사항은 아닙니다.

화면으로 보는 주요 기능

캡처된 실행 파일 분석 결과

캡처된 실행 파일 분석 결과

이 스크린샷은 'al-khaser_x64.exe_'라는 실행 파일에 대한 정적 분석 결과를 보여줍니다. 상단에는 SHA256 해시값, Windows 플랫폼, PE 형식, AMD64 아키텍처, CAPE v7.0.1 분석 도구, 그리고 분석 날짜와 시간이 표시됩니다. 분석 결과는 82개의 규칙, 39개의 네임스페이스, 726개의 함수로 구성되어 있습니다. 검색창과 '기능별 기능 표시', '13개의 라이브러리 규칙 일치 표시', '네임스페이스 차트 표시', '열 필터 표시'와 같은 선택 항목이 있습니다. 주요 내용은 'Rule', 'Address', 'Namespace', 'ATT&CK Technique', 'Malware Behavior Catalog' 열로 구성된 테이블입니다. 각 행은 특정 분석 규칙을 나타내며, 예를 들어 'reference analysis tools strings' 또는 'check for OutputDebugString error'와 같은 항목이 포함되어 있습니다. 일부 행은 하위 항목을 포함하며, 예를 들어 'basic block @ 0x140021244' 아래에 'SetLastError', 'GetLastError', 'OutputDebugString' API 호출이 나열되어 있습니다. 각 항목은 해당 주소와 네임스페이스, 그리고 ATT&CK 기술과 악성행위 카탈로그 항목을 함께 제공합니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.