GitLab CI 및 GitHub Actions를 위한 오픈 소스 보안 및 컴플라이언스 게이트: SBOM, 의존성 취약점, SAST, 시크릿, IaC 및 라이선스를 하나의 버전 관리된 정책과 하나의 판정 아래에서 처리합니다. SaaS 없이, 제3자에게 코드를 전송하지 않습니다.
GitLab CI 및 GitHub Actions를 위한 100% 오픈 소스 코드 분석 제품군(보안 및 규정 준수) — SCA, SAST, 시크릿, 라이선스를 단일 버전 관리 정책으로 구동합니다. 다국어 저장소(Go, Rust, Java/JVM, Python, JS/TS, C/C++)를 지원합니다. SaaS 없이, 제3자에게 코드를 전송하지 않습니다.
oss-analyzer는 CI에서 저장소의 보안 및 규정 준수를 게이트합니다: 스캐너를 실행하고, 하나의 버전 관리 정책을 적용하여 하나의 판정을 내리며, HTML 대시보드와 머지 리퀘스트 보고서를 제공합니다.
flowchart LR
repo["Your repository"]
subgraph checks["Scanners: they collect, never block"]
deps["Dependencies<br/>Syft SBOM<br/>Grype, OSV-Scanner"]
licenses["Licenses<br/>license gate on the SBOM<br/>policy-licenses.yml"]
code["Code<br/>Semgrep<br/>policy-semgrep.yml"]
secrets["Secrets<br/>Gitleaks, whole git history<br/>policy-gitleaks.toml"]
iac["Dockerfiles, IaC<br/>Trivy"]
headers["SPDX headers<br/>REUSE"]
end
policy{{"Policy<br/>thresholds, modes, exceptions<br/>policy-global.yml"}}
verdict(["One verdict: pass or block<br/>dashboard, merge request reports"])
repo --> deps & licenses & code & secrets & iac & headers --> policy --> verdict
policy-* 파일은 security/ 폴더에 있는 설정입니다. 각 파일은 선택 사항이며 oss-analyzer의 기본값을 보완합니다(oss-analyzer 사용자 지정 참조).
모든 발견 사항은 하나의 대시보드에 표시됩니다. 다음은 의도적으로 취약하게 만든 데모 프로젝트의 예시입니다(발견 사항 590건, 그중 333건이 차단 대상):

동일한 정책과 동일한 보고서로 실행하는 세 가지 방법이 있습니다:
include:
- component: gitlab.com/thalesgroup/oss-analyzer/[email protected]
gitlab.com에서 구성 요소는 이 저장소의 읽기 전용 복사본인 gitlab.com/thalesgroup/oss-analyzer의 CI/CD Catalog에 게시됩니다. 자체 관리 인스턴스는 자체 프로젝트만 포함할 수 있으므로, 해당 프로젝트를 그곳에 미러링하고 인스턴스의 경로로 포함하세요. 이미지는 registry.gitlab.com/thalesgroup/oss-analyzer(OSA_IMAGE_REPOSITORY)에 유지되며, 구성 요소의 커밋 SHA로 태그가 지정됩니다. 분석은 머지 리퀘스트, 기본 브랜치, 스케줄 및 태그에서 test 스테이지로 실행되며, 차단할 수 있는 작업은 osa_report_aggregate뿐입니다. 대시보드는 MR 파이프라인 위젯에서 OSS security dashboard로 링크되며, MR의 Reports 탭에는 발견 사항(Security scan, Code Quality)이 표시됩니다.
OSA_<TOOL>_IMAGE 입력을 재정의하세요 — Container images를 참조하세요.security/policy-global.yml, policy-licenses.yml, policy-semgrep.yml, policy-gitleaks.toml 중 원하는 파일을 추가하세요 — Customizing oss-analyzer를 참조하세요. inputs:
OSA_DISTRIBUTION_MODEL: distributed # saas | distributed | oss_library
OSA_MODE: audit # onboarding: report everything, never block
OSA_JOB_NEEDS: ["build"] # wait for your build first
각 입력은 컴포넌트의 CI/CD Catalog 페이지와
templates/analyze.yml에 문서화되어 있습니다.OSA_MODE: audit는 모든 것을 보고하고
아무것도 차단하지 않습니다. OSA_GATE_SCOPE: new는 새로운 것만 차단합니다:
머지 리퀘스트에서는 대상 브랜치의 최신 성공 보고서에 아직 없는 것만
차단하며, 그 외의 경우에는 발견 사항이 차단 없이 보고됩니다(따라서 머지 리퀘스트
파이프라인이 필요합니다). 새 발견 사항만을 참조하세요.OSA_ENABLE_MR_COMMENT: true는 판정, 차단하는
발견 사항, 대시보드 링크를 하나의 코멘트로 게시하며, 모든 파이프라인에 의해
업데이트됩니다. 마스킹된 OSA_GITLAB_TOKEN CI/CD 변수에 프로젝트 액세스 토큰(스코프 api, 역할
Reporter)이 필요합니다.OSA_MAVEN_MIRROR_URL(예: 아티팩트 저장소의
Maven Central 원격)과, 자격 증명이 필요한 경우 마스킹된 OSA_MAVEN_MIRROR_AUTH
변수를 사용하면 미러를 통해 해석됩니다 —
알려진 함정을 참조하세요.@0.4는 해당 패치를 따릅니다). 0.x
인터페이스는 1.0.0까지 여전히 변경될 수 있습니다: 호환성을 깨는 변경은
마이너 버전을 올립니다. CHANGELOG.md를 참조하세요.jobs:
security:
uses: ThalesGroup/oss-analyzer/.github/workflows/security.yml@<ref>
with:
oss-analyzer-repository: ThalesGroup/oss-analyzer
oss-analyzer-ref: <ref> # the same ref as in `uses:`
입력, 권한 및 시크릿: GitHub Actions를 참조하세요.
CI를 설정하지 않고 수신한 프로젝트 아카이브(.zip, .tar.gz) 또는 폴더를 분석합니다:
security/scripts/analyze-archive.sh my-project.zip
보고서와 HTML 대시보드는
security-reports/<project-name>/ 아래에 생성됩니다 — 사용법을 참고하세요.
전체 문서는 **security/README.md**에 있습니다: 설정, 모든 입력과 설정값, 보고서, 알려진 함정을 다룹니다. CHANGELOG.md는 버전을 나열하며, 호환성을 깨는 변경 사항을 먼저 보여줍니다.
각 영역마다 훌륭한 오픈 소스 스캐너가 존재합니다: Semgrep, Gitleaks, Syft, Grype, OSV-Scanner, Trivy, cdxgen, REUSE. 팀에 부족한 것은 스캐너 하나가 더 있는 경우가 드뭅니다. 부족한 것은 그 사이를 잇는 부분입니다: 쌓인 보고서 대신 하나의 결정, 기억에 의존하는 대신 문서로 기록된 규칙, 그리고 CVE만큼이나 진지하게 다루는 라이선스. oss-analyzer가 바로 그 부분입니다.
각 실행은 배포하는 것의 세 가지 표면을 함께 살펴봅니다:
OR, AND, WITH) 해석됩니다.2026년 10월 기준 스냅샷이며, 각 프로젝트의 문서를 기반으로 합니다.