Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
api-security-audit-action — CI/CD에서 OpenAPI 계약에 대한 정적 API 보안 감사를 자동화하며, 인증·권한 부여·데이터 제약 조건에 대해 300개 이상의 검사를 실행하고, 최소 점수 게이트와 SARIF 출력을 제공합니다. | Kitploit
도구/GitHubGitHub/42crunch/api-security-audit-action
Defensive ToolsStatic AnalysisVulnerability AnalysisAPI Security TestingDevSecOpsAPI Security
GitHub42crunch/api-security-audit-action

api-security-audit-action

CI/CD에서 OpenAPI 계약에 대한 정적 API 보안 감사를 자동화하며, 인증·권한 부여·데이터 제약 조건에 대해 300개 이상의 검사를 실행하고, 최소 점수 게이트와 SARIF 출력을 제공합니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
361413일 전Kitploit 검토 완료

GitHub Action: 42Crunch REST API 정적 보안 테스트

REST API 정적 보안 테스트 작업은 OpenAPI Specification(OAS, 이전 명칭: Swagger)을 따르는 REST API 계약을 찾아 철저한 보안 검사를 실행합니다. OAS v2 및 v3.0.x를 모두 지원하며 JSON 및 YAML 형식을 모두 지원합니다.

이 액션은 다음과 같은 시나리오에서 사용할 수 있습니다.

  • CI/CD 워크플로에 자동 정적 API 보안 테스트(SAST) 작업을 추가합니다.
  • 풀 리퀘스트 검토 및/또는 코드 병합 시 이러한 검사를 수행합니다.
  • GitHub의 보안 / 코드 스캐닝 알림에서 발견된 문제를 표시합니다.

이 액션은 42Crunch API 보안 감사를 기반으로 합니다. 보안 감사는 API 정의에 대한 정적 분석을 수행하며, 인증, 권한 부여 및 데이터 제약과 관련된 모범 사례와 잠재적 취약점에 대한 300개 이상의 검사를 포함합니다.

리포지토리에서 API 검색

기본적으로 이 액션은 다음을 수행합니다.

  1. 리포지토리에서 .json 및 .yaml 파일을 찾습니다.
  2. OpenAPI 스키마를 사용하는 파일을 선택합니다.
  3. OpenAPI 정의에 대해 보안 감사를 수행합니다.

이렇게 하면 리포지토리에서 새로 추가되거나 변경된 API 계약을 찾을 수 있습니다.

API 검색에 포함하거나 제외할 리포지토리의 특정 부분이나 파일 이름 마스크를 지정하여 액션 동작을 세밀하게 조정할 수 있습니다. 검색을 완전히 비활성화하고 대신 검사할 특정 API 파일만 나열하여 42Crunch API 보안 플랫폼의 기존 API에 매핑할 수도 있습니다. 이러한 모든 설정은 구성 파일 42c-conf.yaml에서 구성합니다. 고급 예제는 여기를 참조하세요.

검색된 모든 API는 42Crunch 플랫폼의 API 컬렉션에 업로드됩니다. 기본적으로 액션은 환경 변수 GITHUB_REPOSITORY 및 GITHUB_REF를 사용하여 API 컬렉션이 시작된 리포지토리와 브랜치/태그/PR 이름을 지정합니다. default-collection-name 액션 매개변수를 사용하여 이름을 재정의할 수 있습니다. 이후 실행 중에 컬렉션의 API는 리포지토리의 변경 사항과 동기화된 상태로 유지됩니다.

이 액션을 사용하여 취약한 API 배포 차단

이 액션을 GitHub의 CI/CD 워크플로에 추가하여 보안 문제가 있는 API 정의에서 실패하도록 하세요.

보안 감사는 각 API 계약에 API의 보안 표면을 반영하는 0~100점의 감사 점수를 부여합니다. GitHub Action의 min-score 매개변수를 사용하여 액션이 실패하는 감사 점수의 임계값을 설정할 수 있습니다(다른 값이 지정되지 않은 경우 기본값은 75). 이렇게 하면 품질이 낮은 API 정의를 조기에 발견하고 설계 단계에서 문제를 해결하는 데 도움이 됩니다.

더 고급 실패 조건은 구성 파일 42c-conf.yaml에서 설정할 수 있습니다. 예를 들어 카테고리(보안 또는 데이터 검증)별 감사 점수, 문제의 심각도 수준, 또는 문제 ID로 지정된 특정 문제를 설정할 수 있습니다. 고급 예제는 여기를 참조하세요.

또한 이 플러그인은 플랫폼 수준에서 정의된 보안 품질 게이트(기본 또는 태그 기반)를 적용합니다. 보안 품질 게이트는 기업 내에서 정의된 애플리케이션 보안 요구 사항을 적용합니다.

상세하고 실행 가능한 보고서 읽기

액션이 실행될 때마다 각 OpenAPI 파일에 대한 상세하고 우선순위가 지정된 실행 가능한 보고서 링크가 포함됩니다:

링크를 따라 42Crunch 플랫폼에서 상세 보고서를 읽으세요:

42Crunch 알림을 GitHub 코드 스캐닝에 업로드

42Crunch 감사에서 발견한 문제를 GitHub의 코드 스캐닝 알림 아래 보안 탭에서 직접 추적할 수도 있습니다.

이 기능을 사용하려면 GitHub 워크플로의 액션 매개변수에 upload-to-code-scanning:true를 포함하기만 하면 됩니다.

알림을 클릭하면 코드에서 정확한 위치를 확인하고 취약점 세부 정보와 권장 수정 단계를 확인할 수 있습니다.

시작하기

이 액션은 42Crunch API 보안 감사 서비스를 사용합니다. 액션을 사용하기 전에 42Crunch 플랫폼에 계정이 있어야 합니다. 42Crunch 고객이 아닌 경우 이 페이지에서 무료 계정을 요청할 수 있습니다: https://42crunch.com/get-started/.

그런 다음 문서에 설명된 단계에 따라 액션이 42Crunch 플랫폼에 인증하는 데 사용할 API 토큰을 만들고 GitHub에 시크릿으로 저장하세요.

액션 매개변수

api-token

필수 GitHub 액션이 42Crunch 플랫폼에 인증하는 데 사용하는 API 토큰입니다. API 토큰을 워크플로 파일에 직접 넣지 마세요! 대신 리포지토리 설정에서 GitHub 시크릿을 만들고 아래 예제와 같이 참조하세요.

min-score

OpenAPI 파일이 도달해야 하는 최소 감사 점수입니다. 그렇지 않으면 액션이 실패합니다. 기본값은 75입니다.

upload-to-code-scanning

감사 결과를 GitHub 코드 스캐닝에 업로드합니다. 기본값은 false입니다. 이 단계가 성공하려면 워크플로에 특정 권한이 있어야 합니다.

root@kitploit:~
...
jobs:
  run_42c_audit:
    permissions:
      contents: read # for actions/checkout to fetch code
      security-events: write # for results upload to Github Code Scanning
...

ignore-failures

true로 설정하면 설정한 실패 조건(예: min-score 또는 SQG 기준)이 충족되더라도 실행이 성공적으로 완료되도록 강제합니다. 기본값은 false입니다.

이 매개변수는 SQG 실패 시나리오를 강제하지 않고 감지하려는 경우(즉, 빌드를 중단하기 전에 개발 팀에 유예 기간을 제공) 유용할 수 있습니다.

ignore-network-errors

true로 설정하면 42Crunch 플랫폼에 연결 실패 등의 네트워크 오류가 발생해도 실행이 성공적으로 완료되도록 강제합니다. 기본값은 false입니다.

skip-local-checks

true로 설정하면 42c-conf.yaml 파일에 설정된 모든 실패 조건(예: 최소 점수)을 비활성화하고 SQG에 정의된 기준이 충족되지 않은 경우에만 실행을 실패시킵니다. 기본값은 false입니다.

platform-url

42Crunch 플랫폼에 액세스하는 URL입니다. 기본값은 https://us.42crunch.cloud입니다.

엔터프라이즈 고객인 경우 프로덕션 플랫폼에 액세스하는 데 사용하는 URL을 입력하세요.

root-directory

42c-conf.yaml 구성 파일이 포함된 루트 디렉터리입니다. 지정하지 않으면 플러그인의 현재 작업 디렉터리가 대신 사용되며, 일반적으로 체크아웃된 리포지토리의 루트에 해당합니다.

default-collection-name

검색된 API에 대한 컬렉션을 만들 때 사용되는 기본 컬렉션 이름입니다. 이름이 지정되지 않으면 리포지토리 및 브랜치/PR 정보에서 기본 이름이 생성됩니다.

log-level

로그의 세부 수준입니다. FATAL, ERROR, WARN, INFO, DEBUG 중 하나입니다. 기본값은 INFO입니다.

share-everyone

CI/CD 작업이 만든 API 컬렉션을 42Crunch 플랫폼의 조직 내 모든 사용자와 자동으로 공유합니다. 허용되는 값은 OFF, READ_ONLY, READ_WRITE입니다. 기본값은 OFF입니다. 액션이 실행되는 ID(API 토큰 소유자)에게 Share with Everyone 권한이 있어야 합니다. 그렇지 않으면 작업이 403 오류와 함께 실패합니다.

json-report

감사 실행 보고서를 JSON 형식으로 지정된 파일에 씁니다. 실행 보고서는 생성, 업데이트 및 삭제된 API 목록을 자세히 설명합니다. 이는 후속 파이프라인 단계에서 감사 실행 결과를 자동으로 사용하려는 경우 유용합니다. 기본적으로 보고서는 작성되지 않습니다.

api-tags

CI/CD 작업은 새로 생성된 API에 태그를 자동으로 할당할 수 있습니다. 태그는 category1:name1 category2:name2 형식으로 지정합니다. 이 플래그는 선택 사항입니다.

sarif-report

감사 원시 JSON 형식을 SARIF로 변환하고 결과를 지정된 파일에 저장합니다. 기본적으로 보고서는 작성되지 않습니다.

audit-timeout

감사 보고서의 최대 시간 제한(초)을 설정합니다. 결과가 해당 간격 내에 준비되지 않으면 작업이 실패합니다. 기본값: 600

사전 요구 사항

42Crunch 플랫폼에서 API 토큰을 만들고 해당 값을 API_TOKEN이라는 리포지토리 시크릿에 복사하세요.

예제

단일 단계 예제

기존 워크플로에 추가하는 일반적인 새 단계는 다음과 같습니다:

root@kitploit:~
- name: 42crunch-static-api-testing
        uses: 42Crunch/api-security-audit-action@v4
        with:
          api-token: ${{ secrets.API_TOKEN }}
          default-collection-name: GitHub-MyRepo-${{ github.ref_name }}
          log-level: info
          json-report: audit-action-report-${{ github.run_id }}
          sarif-report: 42Crunch_AuditReport_${{ github.run_id }}.SARIF

전체 워크플로 예제

리포지토리의 콘텐츠를 확인하고, 프로젝트에서 찾은 각 OpenAPI 파일에 대해 보안 감사를 실행하고, 실행 파일을 아티팩트로 저장하는 일반적인 워크플로는 다음과 같습니다:

root@kitploit:~
name: "42crunch-audit-workflow"

# follow standard Code Scanning triggers
on:
  push:
    branches: [ "main" ]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [ "main" ]
  schedule:
    - cron: '19 9 * * 6'

env:
  PLATFORM_URL: https://us.42crunch.cloud

jobs:
  run_42c_audit:
    environment: QA
    permissions:
      contents: read # for actions/checkout to fetch code
      security-events: write # for results upload to Github Code Scanning
    runs-on: ubuntu-latest
    steps:
      - name: checkout repo
        uses: actions/checkout@v3
      - name: 42crunch-static-api-testing
        uses: 42Crunch/api-security-audit-action@v4
        with:
          api-token: ${{ secrets.API_TOKEN }}
          platform-url: ${{ env.PLATFORM_URL}}
          default-collection-name: GitHub-MyRepo-${{ github.ref_name }}
          # Upload results to Github code scanning
          upload-to-code-scanning: false
          log-level: info
          json-report: audit-action-report-${{ github.run_id }}
          sarif-report: 42Crunch_AuditReport_${{ github.run_id }}.SARIF
      - name: save-audit-report
        if: always()        
        uses: actions/upload-artifact@v3
        with:
          name: auditaction-report-${{ github.run_id }}
          path: audit-action-report-${{ github.run_id }}.json
          if-no-files-found: error

지원

이 액션은 42Crunch Ecosystems 팀이 유지 관리합니다. 문제가 발생하거나 여기에서 답변되지 않은 질문이 있는 경우 support.42crunch.com에서 지원 티켓을 생성할 수 있습니다.

문제를 보고할 때 다음을 포함하세요:

  • GitHub 액션 버전
  • 관련 로그 및 오류 메시지
  • 문제를 재현하는 단계
도구 다운로드