Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ALFA — Google Workspace 감사 로그를 위한 자동 포렌식 분석 도구입니다. 모든 로그 유형을 수집하고 이벤트를 MITRE ATT&CK Cloud Framework에 매핑하며 통계적 점수화를 통해 킬 체인을 식별합니다. | Kitploit
도구/GitHubGitHub/invictus-ir/alfa
ForensicsDigital ForensicsCloud SecurityThreat IntelligenceIncident ResponseLog Analysis
GitHubinvictus-ir/alfa

ALFA

Google Workspace 감사 로그를 위한 자동 포렌식 분석 도구입니다. 모든 로그 유형을 수집하고 이벤트를 MITRE ATT&CK Cloud Framework에 매핑하며 통계적 점수화를 통해 킬 체인을 식별합니다.

저장소 보기
183293일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ALFA

Google Workspace 자동 감사 로그 법의학 분석

Copyright (c) 2026 Invictus Incident Response
원저자 Greg Charitonos & BertJanCyber Invictus Incident Response가 유지 관리

시작하기 전에

지원되는 운영 체제에 대한 참고 사항: ALFA는 여러 Linux 배포판(Debian 및 Ubuntu)에서 테스트되었습니다.
Windows나 macOS에서 사용할 수도 있지만 결과가 다를 수 있으므로 자신의 책임 하에 진행하십시오.

설치

  1. 이 프로젝트를 다운로드하세요
  2. 터미널에서 폴더로 이동한 후 sudo pip install -e . 또는 sudo pip3 install -e .를 실행하세요

macOS에서 설치

  1. pyenv를 사용하여 Python 3.9 설치 ALFA는 Python 3.9에서 가장 잘 작동합니다. pyenv를 사용하여 이 버전을 관리하고 설치할 수 있습니다.

    • 아직 pyenv를 설치하지 않았다면 Homebrew를 사용하여 설치할 수 있습니다:
      root@kitploit:~
      brew install pyenv
      
    • 셸 구성 파일(예: ~/.zshrc 또는 ~/.bashrc)에 다음을 추가하여 pyenv를 설정하세요:
      root@kitploit:~
      export PYENV_ROOT="$HOME/.pyenv"
      export PATH="$PYENV_ROOT/bin:$PATH"
      eval "$(pyenv init --path)"
      
      파일을 업데이트한 후 셸을 다시 로드하세요:
      root@kitploit:~
      source ~/.zshrc  # 또는 source ~/.bashrc
      
    • pyenv를 사용하여 Python 3.9를 설치하세요:
      root@kitploit:~
      pyenv install 3.9
      
    • Python 3.9를 현재 버전으로 설정하세요:
      root@kitploit:~
      pyenv global 3.9
      
      또는 현재 세션에만 적용:
    root@kitploit:~
     pyenv shell 3.9
    
  2. (선택 사항) 가상 환경 생성 종속성을 격리하기 위해 가상 환경에서 프로젝트를 실행하는 것이 좋습니다. 방금 설정한 Python 3.9 버전을 사용하여 가상 환경을 생성하세요:

    root@kitploit:~
    python -m venv alfa
    
    • 가상 환경 활성화:
      root@kitploit:~
      source alfa/bin/activate
      
  3. ALFA 설치 ALFA 프로젝트가 있는 폴더 내에서 pip를 사용하여 설치합니다:

    root@kitploit:~
    pip install -e .
    

    가상 환경을 사용하지 않는 경우 sudo가 필요할 수 있습니다:

    root@kitploit:~
    sudo pip install -e .
    
  4. 설치 확인 설치 후 명령줄 도구 alfa를 실행하여 ALFA가 설치되었는지 확인할 수 있습니다.

ALFA 사용

참고: credentials.json을 검색하려면 CREDENTIALS.md를 참조하세요.

설정

  1. 첫 번째 단계는 ALFA를 초기화하는 것입니다. alfa init projectname을 실행하면 구성 및 데이터를 저장할 새 디렉터리가 생성됩니다. 예: alfa init project_x
  2. 'project_x'라는 새 프로젝트가 생성되었습니다. 해당 폴더 내에서 credentials.json을 config/ 폴더로 복사하세요. (CREDENTIALS.md 참조) 자세한 지침을 확인하세요.
  3. credentials.json 파일을 복사한 후 ALFA를 사용할 준비가 되었습니다.

ALFA는 아래 설명된 세 가지 옵션이 있습니다:

1. ALFA 수집

모든 Google Workspace 감사 로그 수집

  1. 'project_x'(또는 이전에 선택한 이름) 내에서 alfa acquire를 실행하세요
  2. ALFA가 모든 사용자의 모든 로그 유형을 가져와 'data' 폴더의 하위 디렉터리에 저장합니다. 로그 유형별로 .json 파일이 생성됩니다.
  3. 다른 옵션을 보려면 alfa acquire -h를 입력하세요.

ALFA를 사용한 고급 수집

수집하는 데이터를 제한하기 위해 다양한 필터링을 수행할 수 있습니다. 아래 몇 가지 예시가 있습니다:

  • 'admin' 로그 유형만 가져오기 alfa acquire --logtype=admin
  • 출력을 특정 폴더에 저장 alfa acquire -d /tmp/project_secret
  • 특정 사용자에 대한 로그만 가져오기 alfa acquire --user=insert_username
  • 정의된 기간 내 로그 가져오기 alfa acquire --start-time=2022-07-10T10:00:00Z --end-time=2022-07-11T14:26:01Z 시간 형식은 (RFC3339)

이제 ALFA의 힘을 발휘할 멋진 작업을 위해 데이터를 수집하는 방법을 알게 되었습니다.

2. ALFA 분석

분석 기능은 지정된 Google Workspace의 모든 감사 로그 데이터를 자동으로 분석하여 의심스러운 활동을 식별합니다.

작동 방식

  1. 분류 각 개별 이벤트는 alfa/config/event_to_mitre.yml에 정의된 매핑을 기반으로 분류됩니다. 이벤트가 해당 목록과 일치하면 MITRE ATT&CK Cloud Framework (https://attack.mitre.org/matrices/enterprise/cloud/)의 일부인 기술에 매핑됩니다.

  2. 점수화 다음으로 ALFA는 모든 매핑된 이벤트를 시간순으로 분석하여 킬 체인 또는 논리적 공격 경로를 식별하려고 시도합니다. 예를 들어, 지속성(Persistence) 단계에 매핑된 이벤트 다음에 자격 증명 액세스(Credential Access) 단계에 매핑된 이벤트가 오면 더 높은 점수가 부여됩니다.

  3. 결과 궁극적으로 ALFA는 분석가에게 추가 분석이 가능한 식별된 '서브체인' 목록을 제공합니다.

ALFA 분석 사용 방법?

  1. 먼저 alfa analyze를 실행하면 자동으로 식별됩니다(찾을 수 없으면 식별되지 않음). 또한 후속 활동을 수행할 수 있는 셸로 이동합니다.
  2. 특정 서브체인에 대한 자세한 정보를 얻으려면 A.subchains()를 실행하면 됩니다. 그러면 (number_of_first_event_in_chain,number_of_last_event_in_chain,killchain_score) 형식으로 체인이 표시됩니다. 점수 1은 완벽한 체인이 식별되었음을 의미하며 0에 가까울수록 체인이 약합니다.
  3. 이 체인을 유발한 의심스러운 이벤트에 액세스하려면 A.aoi(export='activities.json')을 사용하여 식별된 모든 서브체인을 파일로 내보낸 후 추가 분석에 사용할 수 있습니다.

3. ALFA 로드

로컬 저장소에서 데이터 로드

로컬 저장소에서

로컬 저장소에서 로그를 로드하고 분석하려면 A = Alfa.load([logname])를 사용하세요. 모든 로그를 로드하려면 A = Alfa.load('all')을 사용하세요. Alfa는 기본적으로 정상 활동을 필터링합니다. 필터링되지 않은 모든 활동 및 이벤트를 로드하려면 Alfa.load([logname], filter=False)를 사용하세요.

변경 사항 적용

새 이벤트 매핑 추가

config/event_to_mitre.yml 파일을 직접 편집할 수 있지만 권장되지 않습니다. 이 파일의 레이아웃은 직관적이지 않습니다. 대신 utils/mappings.yml을 수정하는 것을 고려하세요. 그런 다음 utils/event_mitre_remap.py를 실행하여 config/event_to_mitre.yml을 다시 채웁니다.

킬 체인 탐지 방법 수정

킬 체인 탐지 기능은 하드코딩된 상수를 사용합니다. 이는 config/config.yml에서 찾을 수 있습니다. 법의학 분석가는 값을 검토하고 필요에 따라 작업 공간에 맞게 수정하는 것이 좋습니다. 이러한 상수는 킬 체인 통계(kcs)와 킬 체인 탐지(서브체인) 모두를 담당합니다.

FAQ

ALFA에 사용된 통계 및 알고리즘에 대해 더 알고 싶으신가요? 이에 대한 블로그 게시물을 작성했습니다: (https://medium.com/@invictus-ir/automated-forensic-analysis-of-google-workspace-859ed50c5c92)

알려진 오류

ValueError: missing config/credentials.json

프로젝트 폴더의 'config' 하위 디렉터리에 credentials.json 파일을 추가해야 합니다. 'CREDENTIALS.md' 파일에 지침이 있습니다.

OSError: [Errno 98] Address already in use

이는 포트 8089가 다른 애플리케이션에서 이미 사용 중임을 의미합니다. 이 포트에서 웹 서버가 실행 중이거나 Splunk가 기본적으로 포트 8089를 사용하는 경우 발생할 수 있습니다. 해결 방법은 인증 흐름에 해당 포트를 사용할 수 있어야 하므로 해당 포트의 사용을 (일시적으로) 중지하는 것입니다.

ValueError: Authorized user info was not in the expected format, missing fields refresh_token.

때로는 인증 정보를 업데이트해야 합니다. 가장 쉬운 방법은 project_name/config 폴더에서 'token.json'을 제거한 다음 명령을 다시 실행하는 것입니다. 그래도 문제가 발생하면 token.json과 credentials.json을 제거하고 CREDENTIALS.MD에 설명된 대로 OAuth 애플리케이션을 다시 등록하세요.

Access is blocked: This app's request is invalid // Error 400: redirect_uri_mismatch

애플리케이션의 OAuth 2.0 클라이언트 ID에 있는 Authorized redirect URIs URI http://localhost:8089 끝에 백슬래시(/)가 있는지 확인하세요. image

도구 다운로드