Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
badBANANA-threat-observatory — CISA KEV, ThreatFox, URLhaus, MalwareBazaar 피드를 집계하는 위협 인텔리전스 관측소로, 검색, 변경 추적 및 STIX/CSV/JSONL 내보내기를 지원합니다. | Kitploit
도구/GitLabGitLab/gnomeman/badbanana-threat-observatory
Defensive ToolsIndicator of Compromise (IOC) ManagementOSINT (Open Source Intelligence)Threat Feeds & AggregatorsVulnerability AnalysisInformation GatheringThreat Intelligence
GitLab

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
gnomeman/badbanana-threat-observatory

badBANANA-threat-observatory

CISA KEV, ThreatFox, URLhaus, MalwareBazaar 피드를 집계하는 위협 인텔리전스 관측소로, 검색, 변경 추적 및 STIX/CSV/JSONL 내보내기를 지원합니다.

저장소 보기웹사이트
791개월 전아직 검토되지 않음

badBANANA // 위협 관측소

악용된 취약점과 위협 지표를 검사하고, 해당 출처 증거를 확인하며, 보존된 변경 사항을 검토하세요.

실시간 관측소 열기 · KEV 둘러보기 체험 · 출처 범위 · 직접 실행하기

관측소는 CISA KEV, ThreatFox, URLhaus, MalwareBazaar를 하나의 분석가 작업 공간으로 통합합니다. 이를 사용하여 출처 레코드를 검사하고, 출처 날짜와 수집 시각을 구분하며, 범위가 제한된 현재 상태 결과를 내보낼 수 있습니다. 누락되었거나, 오래되었거나, 비활성화되었거나, 사용할 수 없는 데이터는 눈에 띄게 표시된 상태로 유지됩니다.

badBANANA Observatory eye

체험하기: 악용된 취약점 하나 검사하기

  1. 실시간 관측소를 열고 Sources를 선택하여 CISA의 가용성과 최신성을 확인합니다.
  2. Exploited를 선택한 다음 RECENT KEV / DAY-GRANULAR와 7D를 선택합니다. 이 범위는 일 단위 정밀도로 CISA의 추가 날짜를 사용합니다.
  3. 반환된 CVE 행을 엽니다. 레코드의 출처 정보와 함께 출처별 공급업체, 제품, 필수 조치, 랜섬웨어 사용 필드를 검사합니다.
  4. OBSERVATION TIME, FIRST INGESTED, LAST MATERIAL CHANGE를 비교합니다. 이들은 서로 다른 질문에 답합니다. 최신 가져오기가 새로운 악용을 증명하지는 않습니다.
  5. 사용 가능한 경우 OPEN VALIDATED UPSTREAM SOURCE PAGE를 사용하여 원본 참조를 검사합니다.

7일 보기에서 일치 항목이 반환되지 않으면 CURRENT KEV CATALOG를 사용하여 기존 항목을 검사하세요. 성공적인 빈 결과, 오래된 출처, 사용할 수 없는 읽기는 서로 다른 의미를 가집니다. 어느 것도 귀하의 시스템이 영향을 받지 않았다는 것을 입증하지 않습니다.

결과: 날짜 기준과 수집 한계가 표시된 상태로 검사하고 참조할 수 있는 출처 기반 CVE 레코드입니다. 이 워크플로는 귀하의 자산이 취약한지 여부를 판단하지 않습니다.

범위가 지정된 현재 상태 페이지 내보내기

내보내기는 별도의 워크플로입니다. Pulse, Infrastructure, URLs, Malware에서 시작하여 시간 범위를 선택하고 사용 가능한 검색 또는 필터를 적용합니다. 그런 다음 Export를 선택하고, 출처 선택과 표시된 페이지 수를 검토하고, JSONL, CSV, STIX 2.1, 무력화 텍스트 또는 매니페스트를 선택한 후 결과를 다운로드합니다.

내보내기는 선택한 정책이 적용된 후 로드된 페이지를 대상으로 합니다. 내보낸 수와 지원되지 않는 수를 검토하세요. 전용 Exploited 작업 공간의 KEV 필터는 내보내기로 직접 이어지지 않습니다.

증거의 의미

현재 출처 상태, 중요 변경 이벤트, 가져오기 원격 측정은 서로 분리되어 유지됩니다. 인터페이스는 데모 레코드나 추론된 귀속으로 대체하지 않습니다. 수집은 수요 기반이며, 이 배포는 지속적인 모니터링을 주장하지 않습니다.

구현과 한계는 아래에 문서화되어 있으며, 출처 범위, 보존, 출처 정보, 내보내기 의미를 포함합니다.

프로덕션 뷰

badBANANA Threat Observatory Pulse relationship view

Pulse — 출처 간 관계, 출처 상태, 현재 상태 분석.

badBANANA Threat Observatory Transition Replay

Replay — 보존된 NEW, UPDATED, REMOVED 전환의 페이지 범위 재구성.

추가 실시간 화면에는 대략적인 공인 IP 인프라 지리 정보와 자체 URLhaus / MalwareBazaar 증거 뷰가 포함됩니다. 해당 화면은 이 README에서 의도적으로 자리 표시자나 중복 스크린샷으로 표현하지 않습니다.

프로덕션 캡처는 실시간 v1.2.0 관측소에서 가져온 출처 보존 스크린샷입니다. 프레젠테이션을 위해 잘라내고 크기를 조정/압축했으며, 표시된 증거, 타임스탬프, 수치, IOC 값, 인터페이스 상태는 재생성되거나 대체되지 않습니다.

실시간 배포

  • 프로덕션: https://badbanana-threat-observatory.badbanana6969.workers.dev
  • 현재 소스: https://github.com/GnomeMan4201/badBANANA-threat-observatory/tree/main
  • 동결된 v1.2.2 소스: https://github.com/GnomeMan4201/badBANANA-threat-observatory/tree/release/v1.2.2

프로덕션 Worker는 Cloudflare D1을 기반으로 합니다. 피드 자격 증명은 서버 전용 Cloudflare Worker 시크릿으로 유지되며 브라우저에서 요구되지 않습니다.

릴리스 상태

  • 버전: 1.2.2
  • 런타임: Node.js 22.13.0 이상
  • 배포: vinext 및 Cloudflare Vite 플러그인을 통한 Cloudflare Workers 상의 Next.js
  • 영속성: 명시적으로 레이블이 지정된 isolate-memory 저하를 동반한 Cloudflare D1
  • 프로덕션 의존성 감사: CI에서 high 심각도로 적용

수집 모드

이 배포는 demand-driven 모드로 실행됩니다. 저장소는 이제 표준 Cloudflare Workers를 직접 대상으로 하며, v1.2.2에서는 예약 트리거가 의도적으로 활성화되지 않으므로 애플리케이션은 지속적 수집을 주장하지 않습니다. 향후 스케줄러는 별도의 정확성 및 운영 검증 후 동일한 runIngestionCycle() 작업을 호출할 수 있습니다.

브라우저는 최초 사용 시 그리고 열려 있는 동안 5분마다 명시적인 제한된 유지보수 요청을 수행합니다:

POST /api/ingest
        ↓
runIngestionCycle()
        ↓
configuration → TTL → backoff → D1 lease → fetch → normalize → validate
        ↓
snapshot cache + current observations + material events + cycle statistics

일반 읽기는 별개이며 로컬에서 이루어집니다:

GET /api/observations → D1 current state, scoped before pagination
GET /api/search       → D1 current state, scoped before pagination
GET /api/kev          → D1 current CISA catalog
GET /api/events       → D1 material change ledger
GET /api/geo          → local observations + bounded cached IP enrichment

이 GET 라우트 중 어느 것도 소스 어댑터를 호출하지 않습니다. 이 프로젝트가 나중에 진정으로 지원되는 스케줄러를 갖추게 되면, 두 번째 갱신 구현을 만들지 않고도 동일한 runIngestionCycle() 작업을 호출할 수 있습니다.

소스 커버리지

소스자격 증명TTL실제 커버리지
CISA KEV없음30분전체 현재 검증된 카탈로그
ThreatFoxTHREATFOX_AUTH_KEY15분요청된 24시간 IOC 윈도우
URLhausURLHAUS_AUTH_KEY15분recent 엔드포인트가 반환한 최신 500개 레코드
MalwareBazaarMALWAREBAZAAR_AUTH_KEY15분엔드포인트가 반환한 최신 100개 메타데이터 레코드

커버리지는 소스별로 표시됩니다. 범위가 제한된 API는 완전한 카탈로그로 제시되지 않습니다.

저장 모델

DB 바인딩은 서로 구분되는 데이터셋을 소유합니다:

  • threat_source_cache 및 threat_source_cache_chunks: 최신 검증된 소스별 스냅샷으로, 세대 키 기반 청크로 저장됩니다.
  • observations: 안정적인 소스 식별자별 최신 정규화된 현재 상태입니다. 최초 수집, 최신 소스 목격, 마지막 실질적 변경, 현재 해시, 리비전 횟수, 최신 수집 결과를 보존합니다.
  • observation_events: 의미 있는 NEW, UPDATED, 그리고 근거 있는 REMOVED 증거 이벤트입니다. 이전 및 현재 정규화된 페이로드, 해시, 결정적 필드 diff를 통해 이전 상태를 재구성할 수 있습니다.
  • source_fetch_log: 응답 본문이나 자격 증명이 없는, 범위가 제한된 fetch 시도 텔레메트리입니다.
  • source_ingest_cycles: fetched, valid, rejected, new, updated, unchanged, removed 레코드에 대한 범위가 제한된 갱신별 카운트입니다.
  • source_refresh_lease: 동시에 실행되는 isolate가 업스트림 갱신을 중복 수행하지 않도록 방지하는, D1 기반의 소스별 단기 임차입니다.
  • ingestion_runtime: 최신 전체 수집 사이클 상태입니다.
  • geo_ip_cache: 검증된 대략적 IP 지오로케이션 결과와 범위가 제한된 네거티브 캐시 항목입니다. 성공한 결과는 30일 후 만료되며, 실패한 조회는 5분 후 재시도됩니다. 만료된 D1 행은 GEO 요청 중 기회적으로 제거되며, isolate 폴백은 최대 2,000개 항목으로 제한됩니다.

런타임 스키마 정의는 db/schema.ts에 있습니다. 초기화는 종속 인덱스를 생성하기 전에 기존 observations 테이블에 새로운 현재 상태 컬럼을 추가합니다.

상태 및 보존 의미론

다음 질문들은 의도적으로 서로 다릅니다:

  1. 소스는 지금 무엇을 말하는가? observations와 검증된 소스 스냅샷이 이에 답합니다.
  2. badBANANA는 이 소스 시간 윈도우 동안 무엇을 관측했는가? /api/observations?window=...는 업스트림 observedAt을 기준으로 현재 관측을 필터링합니다.
  3. 관측 사이에 무엇이 변경되었는가? observation_events와 /api/revisions가 이에 답합니다.

현재 상태는 7일 이력 테이블로 부정확하게 설명되지 않습니다. 실질적 이벤트 원장은 7일 동안 보존됩니다. fetch 및 사이클 텔레메트리는 2일 동안 보존되며 소스당 최대 200개 행으로 제한됩니다. 카탈로그가 아닌 현재 관측 중 7일 동안 다시 나타나지 않은 것은 정리됩니다. CISA는 모든 성공적인 응답이 전체 카탈로그이므로 현재 상태로 유지됩니다. 해당 카탈로그에서 제거된 행은 정리 전까지 30일 동안 사용 가능합니다. 현재 CISA의 부재만이 REMOVED 이벤트를 생성할 수 있는데, 그 어댑터가 전체 현재 카탈로그를 검색하기 때문입니다. 범위가 제한된 ThreatFox, URLhaus, MalwareBazaar 결과에서의 부재는 삭제로 간주되지 않습니다.

변경되지 않은 목격은 현재 lastObservedInSnapshotAt/lastIngestedAt을 갱신하지만 이벤트를 생성하거나 revisionCount를 증가시키지 않습니다. lastChangedAt은 이후의 변경되지 않은 목격에서도 유지됩니다.

CISA 분석가 워크스페이스

Exploited 뷰는 다음을 구분합니다:

  • Current KEV Catalog: 대시보드 시간 윈도우와 무관한, 완전히 검증된 현재 상태입니다.
  • Recent KEV: 일 단위 CISA dateAdded가 명시적인 TODAY, 7D, 또는 30D 범위에 속하는 레코드입니다. 일 미만의 Observatory 윈도우는 CISA 정밀도로 제시되지 않습니다.

현재 카탈로그는 서버 측 검색, 공급업체, 제품, 신규 추가, 랜섬웨어 연관성, 추가 날짜 필터, 그리고 불투명 커서 페이지네이션을 지원합니다. CVE, 공급업체, 제품, 취약점 이름, 추가 날짜, 기한, 랜섬웨어 연관성, 필수 조치를 표시합니다. CVSS 점수를 임의로 만들어내지 않습니다.

변경 원장 및 리비전

콘텐츠 해시는 정규화된 증거 필드를 대상으로 하며, Observatory의 부기 정보는 포함하지 않습니다. 해시가 변경되면 이전 정규화 페이로드, 새 정규화 페이로드, 이전/새 해시, 그리고 다음 항목에 대한 결정적 diff를 포함하는 UPDATED 이벤트가 생성됩니다:

  • 제목
  • 악성코드 패밀리
  • 위협 유형
  • 신뢰도
  • 소스 최초/최종 확인 시각
  • 태그
  • 참조
  • 정규화된 메타데이터 키

출처 드로어는 /api/revisions?id=...를 조회하여 현재 해시, 마지막 실질 변경, 리비전 수, 보존된 이벤트, 필드 수준 diff를 노출합니다. 휘발성 수집 타임스탬프는 콘텐츠 diff에 나타나지 않습니다.

드로어는 또한 승인된 모든 레코드에 대해 버전이 지정된 증거 추적을 노출합니다: 승인된 정규화 필드, 부재로 남은 선택적 필드, 표시 전용 변환, 분류 근거, 안정적 식별 근거. 이 추적은 보존된 증거만을 설명합니다. 거부된 업스트림 값은 보존되지 않으며, 절대 합성된 Observatory 식별자가 부여되지 않습니다. 거부는 필드 및 사유 코드가 제한된 사이클별 집계 수치로 별도로 표현되며, 해당 스키마 이전에 수집된 오래된 사이클은 재구성되지 않고 세부 분석이 없는 것으로 표시됩니다.

최근 이벤트는 실질 변경만 표시합니다. 전체 CISA 새로고침 후 수백 개의 변경되지 않은 SEEN 행을 내보내지 않습니다. 해당 목격 정보는 소스 사이클 통계로 요약됩니다.

기기 로컬 브리핑

도구 다운로드