Skip to content

kwanghoon/hsbom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HSBOM - Haskell Security Bill of Materials

License: MIT

Haskell Security Advisory Database 기반 보안 취약점 검사 도구

개요

HSBOM은 Haskell 프로젝트의 의존성을 분석하여 알려진 보안 취약점을 검사하는 도구입니다. Haskell Security Advisory Database의 데이터를 SBOM(Software Bill of Materials) 형식으로 변환하고, Cabal 또는 Stack 프로젝트의 의존성과 비교하여 취약점을 보고합니다.

주요 기능

  • 🔍 Advisory 데이터베이스 구축: GitHub에서 최신 보안 권고사항을 가져와 CycloneDX 형식으로 저장
  • 📦 의존성 분석: Cabal (.cabal) 및 Stack (stack.yaml) 프로젝트 파일 파싱
  • ⚠️ 취약점 매칭: 프로젝트의 의존성을 알려진 취약점과 비교
  • 📊 상세 리포트: 발견된 취약점에 대한 텍스트 또는 JSON 형식 리포트 생성
  • 🔎 Hackage/Stackage 검사: 설치 없이 패키지 직접 검사
  • 📋 취약점 패키지 목록: 알려진 모든 취약점 패키지 조회
  • 🪟 Windows 지원: Windows 환경에서도 완벽하게 동작

빠른 시작

Python 버전

# 설치
cd python
pip install -e .

# Advisory 데이터베이스 구축
python -m hsbom build-db

# 프로젝트 검사
python -m hsbom check --project ../examples/example-project.cabal

# Hackage 패키지 직접 검사
python -m hsbom check-package aeson

# 취약점이 있는 패키지 목록 보기
python -m hsbom list-packages

Haskell 버전

# 빌드
cd haskell
cabal build

# 사용
cabal run hsbom-exe -- build-db
cabal run hsbom-exe -- check --project ../examples/example-project.cabal
cabal run hsbom-exe -- check-package aeson
cabal run hsbom-exe -- list-packages

프로젝트 구조

hsbom/
├── README.md              # 프로젝트 개요
├── USAGE.md              # 상세 사용법 및 문서
├── python/               # Python 구현
│   ├── hsbom/           # 메인 패키지
│   │   ├── models.py    # 데이터 모델
│   │   ├── parser.py    # Advisory 파서
│   │   ├── fetcher.py   # GitHub 데이터 가져오기
│   │   ├── database.py  # SBOM 데이터베이스
│   │   ├── project.py   # Cabal/Stack 파서
│   │   ├── checker.py   # 취약점 검사
│   │   └── cli.py       # CLI 인터페이스
│   ├── tests/           # 테스트
│   └── pyproject.toml   # 프로젝트 설정
├── haskell/             # Haskell 구현
│   ├── app/            # CLI 애플리케이션
│   ├── src/HSBOM/      # 라이브러리 모듈
│   ├── test/           # 테스트
│   └── hsbom.cabal     # Cabal 프로젝트 파일
└── examples/           # 예제 프로젝트
    └── example-project.cabal

데이터 소스

SBOM 포맷

CycloneDX 1.5 사양을 따르는 JSON 형식으로 취약점 정보를 저장합니다.

각 advisory는 다음 정보를 포함합니다:

  • ID (HSEC-YYYY-NNNN)
  • 영향받는 패키지 및 버전 범위
  • CVSS 점수 및 심각도
  • CWE/CVE 참조
  • 설명 및 참고 자료

상세 문서

전체 사용법, 예제, 개발 가이드는 USAGE.md를 참조하세요.

라이선스

  • Python 코드: MIT License
  • Haskell 코드: BSD-3-Clause
  • Advisory 데이터: Public Domain (Haskell Security Advisory Database)

기여

이슈와 PR을 환영합니다!

관련 프로젝트

About

Haskell Security Bill of Materials

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors