
GitHub Action: Offensive360 SAST 스캔, 코드 스캐닝을 위한 SARIF 출력 지원. 60개 이상의 언어 지원. 오픈 소스에는 무료.
모든 푸시 또는 풀 리퀘스트에서 전체 Offensive360 정적 애플리케이션 보안 스캔(SAST)을 실행합니다. 60개 이상의 언어에 대한 심층 오염(taint) 및 데이터 흐름 분석, GitHub 코드 스캐닝 탭용 SARIF 결과, 파이프라인용 심각도 게이트를 제공합니다.
오픈 소스 무료: 공개 리포지토리는 무료 스캔 토큰을 요청할 수 있습니다 — offensive360.com/free-for-open-source 참조.
name: SAST
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
security-events: write # upload-sarif 활성화 시에만 필요
jobs:
sast:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: offensive360/sast-scan-action@v1
with:
api-url: https://sast.offensive360.com # 또는 자체 온프레미스 인스턴스
api-token: ${{ secrets.O360_API_TOKEN }}
upload-sarif: 'true'
fail-on: high
발견된 결과는 Security → Code scanning 아래에 파일/줄 위치, 영향 및 수정 지침, Offensive360 대시보드의 전체 추적과 함께 표시됩니다.
토큰을 리포지토리 시크릿(예: O360_API_TOKEN)으로 저장하세요. 절대 커밋하지 마세요.
| Input | Default | Description |
|---|---|---|
api-url | — (필수) | Offensive360 인스턴스의 기본 URL |
api-token | — (필수) | 외부 스캔 토큰(리포지토리 시크릿) |
project-name | 리포지토리 이름 | Offensive360 대시보드의 프로젝트 이름 |
path | . | 스캔할 디렉터리 |
dependency-scan | false | 종속성(SCA) 분석도 실행 |
malware-scan | false | 악성코드 / 바이너리 변조 분석도 실행 |
license-scan | false | 라이선스 준수 분석도 실행 |
fail-on | high | 이 심각도 이상에서 작업 실패: none, low, medium, high, critical |
sarif-file | offensive360.sarif | 작성할 SARIF 보고서 경로 |
timeout-seconds | 3000 | 스캔 대기 최대 시간(초) |
exclude | .git node_modules dist … | 업로드에서 제외되는 공백으로 구분된 디렉터리 이름 |
upload-sarif | false | SARIF를 GitHub 코드 스캐닝에 업로드(security-events: write 필요) |
| Output | Description |
|---|---|
total, critical, high, medium, low | 발견 건수 |
status | 스캔 상태(Succeeded, PartialFailed, …) |
sarif-file | 생성된 SARIF 보고서 경로 |
project-id | 이 리포지토리의 Offensive360 프로젝트 ID |
예시 — 이후 단계에 건수 주석 달기:
- uses: offensive360/sast-scan-action@v1
id: o360
with:
api-url: ${{ vars.O360_API_URL }}
api-token: ${{ secrets.O360_API_TOKEN }}
- run: echo "Found ${{ steps.o360.outputs.total }} issues (${{ steps.o360.outputs.critical }} critical)"
GitLab을 사용 중이신가요? 이 리포지토리의 동일한 템플릿을 포함하세요:
include:
- remote: 'https://raw.githubusercontent.com/offensive360/sast-scan-action/main/templates/gitlab-ci.yml'
그리고 O360_API_URL과 마스킹된 O360_API_TOKEN CI/CD 변수를 설정하세요.
스캔은 동일하게 동작합니다(동일한 API, ExternalScanSourceType=GitLab).
bash, zip, curl, python3 — 모두 사전 설치됨).path를 통해 하위 디렉터리를 스캔하거나 자체 인스턴스를 사용하세요.PartialFailed를 보고합니다 — SARIF에는 완료된 모든 발견 결과가 여전히 포함됩니다.SAST, DAST, MAST, SCA, 악성코드 및 바이너리 분석, 라이선스 준수를 위한 단일 플랫폼 — 고정 가격, 무제한 사용자 및 스캔, 온프레미스 또는 클라우드. offensive360.com · 데모 예약