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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ossem-power-up — 데이터 품질을 평가하는 도구로, 훌륭한 OSSEM을 기반으로 구축되었습니다. | Kitploit
도구/GitHubGitHub/hxnoyd/ossem-power-up
Threat IntelligenceLearning & EducationCurated ResourcesLog Analysis
GitHubhxnoyd/ossem-power-up

ossem-power-up

데이터 품질을 평가하는 도구로, 훌륭한 OSSEM을 기반으로 구축되었습니다.

저장소 보기
791122개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

OSSEM

훌륭한 OSSEM 프로젝트를 기반으로 구축된 데이터 품질 평가 도구입니다.

목표

  • "ATT&CK 기술을 헌팅하고 싶은데, 어떤 로그 소스와 이벤트가 더 적합할까?"라는 질문에 답하기
  • 로그 소스의 장단점에 대한 투명성 제공
  • 로그를 쉽게 평가할 수 있는 방법 제공

OSSEM Power-up 개요

Power-up은 데이터 품질 평가의 기반으로 OSSEM 탐지 데이터 모델(DDM)을 사용합니다. 주요 이유는 DDM이 ATT&CK 데이터 소스, 공통 정보 모델 엔티티(CIM), 데이터 사전(이벤트)을 서로 연관 지을 수 있는 구조화된 방법을 제공하기 때문입니다.

DDM 구조에 익숙하지 않은 분들을 위해 예제를 제공합니다:

ATT&CK 데이터 소스하위 데이터 소스소스 데이터 객체관계대상 데이터 객체EventID
프로세스 모니터링프로세스 생성process생성됨process4688
프로세스 모니터링프로세스 생성process생성됨process1
프로세스 모니터링프로세스 종료process종료됨-4689
프로세스 모니터링프로세스 종료process종료됨-5

보시다시피 DDM의 각 항목은 process, user, file 등의 추상 엔티티를 사용하여 하위 데이터 소스(범위)를 정의합니다. 각 항목에는 해당 범위가 적용되는 이벤트 ID도 포함됩니다. 이러한 엔티티에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

요약하면, DDM 항목은 로그 소스(데이터 채널)가 어떻게 소비될 수 있는지 정의하는 범위를 제공함으로써 원시 이벤트의 복잡성을 제거하는 데 중요한 역할을 합니다.

데이터 품질 차원

Power-up은 다섯 가지 차원에 따라 데이터 품질 점수를 평가합니다:

각 차원은 0(없음)에서 5(우수) 사이의 점수로 평가됩니다.

적용 범위, 적시성 및 보존 기간

이 차원들은 데이터 채널에 연결되며, 해당 채널이 제공하는 모든 이벤트에 전파됩니다.

이러한 차원의 특성상 데이터 채널의 특성에 따라 수동으로 평가해야 합니다.

Power-up은 resources/dcs.yml을 사용하여 데이터 채널을 정의하고 차원을 평가합니다:

root@kitploit:~
data channel: sysmon
description: sysmon monitoring
coverage: 2
timeliness: 5
retention: 2
---
data channel: security
description: windows security auditing
coverage: 5
timeliness: 5
retention: 2

구조

이벤트 구조의 완전성을 계산하기 위해 power-up은 데이터 사전의 표준 이름과 DDM 항목(소스 및 대상)에서 참조된 엔티티(CIM)의 필드를 비교합니다.

모든 엔티티 필드가 관련 있는 것은 아니므로(컨텍스트에 따라 다름), power-up은 프로파일 개념을 사용하여 데이터 사전 표준 이름과 일치해야 하는 필드를 선택합니다. 예를 들어:

root@kitploit:~
# OSSEM CIM 프로파일
process:
    - process_name
    - process_path
    - process_command_line

참고: profiles/default.yml에 예제 프로파일이 있으니 실험해 보세요.

구조 점수는 다음 공식으로 계산됩니다:

SCORE_PERCENT = (MATCHED_FIELDS / TOTAL_RELEVANT_FIELDS) * 100

명확성을 위해 구조 점수가 어떻게 계산되는지 예를 들어 보겠습니다:

참고: Sysmon Event Id 1 데이터 사전이 관련 엔티티 필드의 100%와 일치하므로 구조 점수는 5(우수)로 평가됩니다.

구조 점수는 다음과 같이 0-5 척도로 변환됩니다:

백분율점수

참고: 사용 사례(SIEM, 위협 헌팅, 포렌식)에 따라 다른 프로파일을 정의하여 로그를 다르게 평가할 수 있습니다.

일관성

일관성을 계산하기 위해 power-up은 데이터 사전에서 표준 이름을 가진 필드의 백분율을 계산합니다. 표준 이름에 매핑된 필드가 많은 데이터 사전은 CIM 엔티티와 더 쉽게 연관될 가능성이 높습니다.

일관성 점수는 다음 공식으로 계산됩니다:

SCORE_PERCENT = (STANDARD_NAME_FIELDS / TOTAL_FIELDS) * 100

일관성 점수는 다음과 같이 0-5 척도로 변환됩니다:

백분율점수
00
1 ~ 501
51 ~ 993
1005

사용 방법

시작하기 전에

  • Power-up은 파이썬 스크립트이므로 pip install -r requirements.txt를 실행해야 합니다.
  • OSSEM 저장소의 로컬 복사본이 있어야 합니다.

power-up 실행하기

root@kitploit:~
$> python3 powerup.py --help
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

usage: powerup.py [-h] [-o OSSEM] [-y OSSEM_YAML] [-p PROFILE] [--excel]
                  [--elastic] [--yaml]

훌륭한 OSSEM을 기반으로 구축된 ATT&CK 데이터 소스 적용 범위 평가 도구.

optional arguments:
  -h, --help            도움말 메시지를 표시하고 종료
  -o OSSEM, --ossem OSSEM
                        OSSEM 마크다운을 가져올 경로
  -y OSSEM_YAML, --ossem-yaml OSSEM_YAML
                        OSSEM YAML을 가져올 경로
  -p PROFILE, --profile PROFILE
                        CIM 프로파일 경로
  --excel               OSSEM DDM을 엑셀로 내보내기
  --elastic             OSSEM 데이터 모델을 Elastic으로 내보내기
  --yaml                OSSEM 데이터 모델을 YAML로 내보내기
  --layer               OSSEM 데이터 모델을 Navigator 레이어로 내보내기

보시다시피 power-up은 두 가지 형식의 OSSEM 데이터를 사용할 수 있습니다:

  • OSSEM 마크다운 - git에서 클론할 때의 기본 형식
  • OSSEM yaml - OSSEM의 요약 형식으로, 데이터 필드와 일부 메타데이터만 포함합니다. power-up을 사용하여 OSSEM 마크다운을 yaml로 변환할 수 있습니다.

현재 Power-up은 OSSEM 출력을 다음으로 내보냅니다:

  • Yaml - output/ 폴더에 YAML 형식의 OSSEM 구조 생성
  • Excel - output/ 폴더에 데이터 품질 점수가 추가된 OSSEM DDM 테이블 생성
  • Elastic - Elastic에 OSSEM 구조 생성, 인덱스는 다음과 같습니다:
    • ossem.ddm - 데이터 품질 점수가 추가된 OSSEM DDM 테이블
    • ossem.cim - OSSEM CIM 항목
    • ossem.dds - OSSEM 데이터 사전
    • ossem.dcs - OSSEM 데이터 채널

참고: 프로파일 파일 경로가 지정되지 않으면 power-up은 기본적으로 profiles/default.yml을 사용합니다.

YAML로 내보내기

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --yaml
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] 프로파일 경로: profiles/default.yml
[*] 마크다운에서 OSSEM 파싱 중
[*] OSSEM을 YAML로 내보내는 중
[*] 생성됨 output/ddm_20191114_160246.yml
[*] 생성됨 output/cim_20191114_160246.yml
[*] 생성됨 output/dds_20191114_160246.yml

YAML로 내보내기/가져오기의 목적은 OSSEM 사용자 정의를 용이하게 하기 위함입니다. 아마 가장 먼저 할 일은 자신만의 데이터 사전을 만든 다음 새 DDM 항목을 추가하는 것이므로 YAML이 업데이트를 더 쉽게 만들어 줄 것입니다.

참고 1: resources/config.yml을 수정하여 올바른 구조의 파일 이름을 power-up에 알려줍니다. 그런 다음 파일을 폴더에 넣고 OSSEM_YAML 인수에 전달하면 됩니다.

참고 2: power-up은 전체 OSSEM 객체를 YAML로 파싱하지 않고, 데이터 필드와 일부 메타데이터(예: 설명)만 파싱합니다. 그 이유는 YAML 객체를 데이터 품질 평가에 필요한 데이터만으로 가능한 가볍게 유지하기 위함입니다.

EXCEL로 내보내기

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --excel
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] 프로파일 경로: profiles/default.yml
[*] 마크다운에서 OSSEM 파싱 중
[*] OSSEM DDM을 Excel로 내보내는 중
[*] Excel 저장됨: output/ddm_enriched_20191114_160041.xlsx

Excel로 내보낼 때 power-up은 각 항목에 대한 데이터 품질 차원이 포함된 보기 좋은 DDM을 생성합니다:

ELASTIC으로 내보내기

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --elastic
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] 프로파일 경로: profiles/default.yml
[*] 마크다운에서 OSSEM 파싱 중
[*] OSSEM을 Elastic으로 내보내는 중
[*] Elastic 인덱스 ossem.ddm 생성 중
[*] Elastic 인덱스 ossem.cim 생성 중
[*] Elastic 인덱스 ossem.dds 생성 중
[*] Elastic 인덱스 ossem.dcs 생성 중

Elastic으로 내보낼 때 power-up은 모든 OSSEM 데이터를 Elastic에 저장합니다. DDM에도 해당 데이터 품질 차원이 추가되므로 다음과 같은 대시보드를 만들 수 있습니다:

ATT&CK Navigator로 내보내기

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --layer
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] 프로파일 경로: profiles/default.yml
[*] 마크다운에서 OSSEM 파싱 중
[*] OSSEM을 Navigator 레이어로 내보내는 중
[*] ATT&CK 데이터 가져오는 중
[*] 데이터 소스 품질 레이어 생성 중
[*] 생성됨 output/ds_layer_20191119_220141.json

레이어로 내보낼 때 power-up은 각 기술에 대한 데이터 품질 차원이 포함된 Attack Navigator Layer JSON 파일을 생성합니다:

참고: 기술 점수는 DDM의 데이터 소스 평균 점수에서 파생됩니다.

감사의 말

  • Roberto Rodriguez @Cyb3rWard0g, Jose Luis Rodriguez @Cyb3rPandaH, 그리고 OSSEM을 지원하는 모든 커뮤니티 회원분들께 감사드립니다.
  • DeTTECT의 데이터 품질 차원에 대한 영감을 주신 Marcus Bakker @bakk3rm와 Ruben Bouman @rubenb_2님께 감사드립니다.

할 일

  • 추가 문서 작성
  • ATT&CK Navigator 레이어로 내보내기
  • 동일한 데이터 채널을 공유하지만 운영 체제에 따라 스키마가 다른 데이터 사전을 적절히 처리
  • Kibana 객체(시각화 및 대시보드) 제공
도구 다운로드
차원유형설명
적용 범위데이터 채널데이터 채널이 적용되는 장치 또는 네트워크 세그먼트의 수
적시성데이터 채널이벤트를 사용할 수 있을 때까지 걸리는 시간
보존 기간데이터 채널이벤트가 사용 가능한 상태로 유지되는 기간
구조이벤트관련 필드가 사용 가능한지, 이벤트의 완전성
일관성이벤트이벤트 필드가 표준화되었는지, 필드가 정규화되었는지
00
1 ~ 251
26 ~ 502
51 ~ 753
76 ~ 994
1005