
DepAlert는 CI/CD 파이프라인을 위한 오픈소스 보안 게이트입니다. SBOM을 악성코드 인텔리전스 데이터와 분석하여 빌드에 알려진 악성 패키지가 포함되어 있는지 신속하게 알려줍니다.
이 도구는 CTWall 플랫폼의 일부입니다. 참조: CTWall
DepAlert는 CI/CD 파이프라인을 위한 오픈소스 보안 게이트입니다. SBOM을 악성코드 인텔리전스 데이터와 분석하여 빌드에 알려진 악성 패키지가 포함되어 있는지 신속하게 알려줍니다.
DepAlert는 릴리스 속도, 위험 및 비용에 직접적인 영향을 미치는 핵심 소프트웨어 공급망 문제를 해결합니다:
MALWARE, CLEAN, UNKNOWN)을 제공하여 보안 병목 현상을 줄입니다.fail-on)과 감사 가능한 예외 워크플로로 팀 전체의 위험 결정을 표준화합니다.단계별 지침은 00_quick_start.md를 참조하세요.
depalert는 다음을 수행하는 CI/CD CLI입니다:
POST /api/v1/ingest)GET /api/v1/tests/{testId}/revisions/{revisionId}/depalert-verdict)이 도구는 프로젝트 범위로 적용됩니다. 다음 방법으로 대상 프로젝트를 선택할 수 있습니다:
project-id (UUID), 또는project-name (API를 통해 확인됨).둘 다 제공된 경우 project-id가 우선합니다.
DepAlert는 하나의 리비전 결과를 반환합니다:
CLEAN - 악성코드 발견 없음 - 종료 코드 0MALWARE - 리비전에서 하나 이상의 악성코드 발견됨 - 종료 코드 1UNKNOWN - 아직 분석이 완료되지 않음 - 종료 코드 2 (또는 fail-on=NONE인 경우 종료 코드 0)CLI 출력 형식:
VERDICT: <MALWARE|CLEAN|UNKNOWN> (malware=<n> clean=<n> unknown=<n> total=<n>, elapsed=<t>)
JSON 모드는 --format json(또는 CTWALL_OUTPUT=json)을 통해 사용할 수 있습니다.
JSON 출력 예시:
{
"version": "1.1.0",
"status": "success",
"exitCode": 0,
"projectId": "28e241e3-b924-4e1a-abc2-d592e8dd811c",
"testId": "13271a70-cf47-4f3b-9e33-cb41ed0c793e",
"revisionId": "c4d1f1a4-c018-488e-9dd0-6cfdbed83bf3",
"verdict": "CLEAN",
"malwareComponents": 0,
"cleanComponents": 12,
"unknownComponents": 0,
"totalComponents": 12,
"elapsedMs": 1842,
"timedOut": false,
"failOn": "MALWARE",
"message": "depalert completed"
}
VERDICT: <MALWARE|CLEAN|UNKNOWN> (malware=<n> clean=<n> unknown=<n> total=<n>, elapsed=<t>)
0 = 통과1 = 정책 실패 또는 런타임 오류2 = 최종 평결이 UNKNOWN이고 fail-on이 NONE이 아님project-id 또는 project-name 중 하나 이상이 필요합니다.project-name은 GET /api/v1/projects를 사용하여 확인됩니다.https가 필요합니다.--allow-insecure, 또는CTWALL_ALLOW_INSECURE=true.--skip-tls-verify, 또는CTWALL_SKIP_TLS_VERIFY=true.를 참조하세요.
DepAlert는 BSD 3-Clause 라이선스에 따라 사용이 허가됩니다.
| 플래그 | 환경 변수 | 필수 | 기본값 | 설명 |
|---|
--url | CTWALL_API_URL | 예 | http://localhost:8080 | CTWall API URL |
--key | CTWALL_API_KEY | 아니오 | empty | API 토큰 (Authorization: Bearer ...) |
--project-id | CTWALL_PROJECT_ID | 조건부 | none | 대상 프로젝트 UUID (project-name보다 우선) |
--project-name | CTWALL_PROJECT_NAME | 조건부 | none | 대상 프로젝트 이름 (API를 통해 UUID로 확인) |
--file | CTWALL_SBOM_FILE (또는 레거시 SBOM_FILE) | 예 | none | SBOM 파일 경로 |
--product | CTWALL_PRODUCT | 예 | none | 제품 이름 |
--scope | CTWALL_SCOPE | 예 | none | 범위 이름 |
--test | CTWALL_TEST | 예 | none | 테스트 이름 |
--fail-on | CTWALL_FAIL_ON | 아니오 | MALWARE | CSV 평결 목록: MALWARE,CLEAN,UNKNOWN 또는 NONE |
--ignore-file | CTWALL_IGNORE_FILE | 아니오 | depalert.ignore | 로컬 평결 재정의 및 분류 업데이트를 위한 선택적 YAML 예외 파일 |
--format | CTWALL_OUTPUT | 아니오 | text | 출력 형식: text 또는 json |
--timeout-seconds | CTWALL_WAIT_TIMEOUT_SECONDS | 아니오 | 180 | 동기 대기 시간 제한(초) |
--allow-insecure | CTWALL_ALLOW_INSECURE | 아니오 | false | 로컬이 아닌 호스트에 HTTP 허용 |
--skip-tls-verify | CTWALL_SKIP_TLS_VERIFY | 아니오 | false | HTTPS에 대한 TLS 인증서 확인 건너뛰기 (안전하지 않음, 테스트 전용) |