보안 아티클
·6 CI/CDGitHub Actions자동화

배포 파이프라인에 보안 게이트 넣는 법 (GitHub Actions 기준)

'배포 전에 확인하세요'는 결국 잊혀집니다. 푸시할 때마다 자동으로 막는 게이트를 5분 만에 설정하는 법.


"다음부터는 배포 전에 꼭 확인하겠습니다" — 이 다짐은 대개 세 번째 배포쯤에서 잊혀집니다. 사람의 의지에 기대는 점검은 결국 실패합니다. 답은 점검을 자동화하고, 실패하면 배포 자체를 막는 것입니다.

왜 "확인하겠다"는 실패하는가

바쁠 때, 급할 때, 금요일 오후 배포일 때 — 사람은 체크리스트를 건너뜁니다. 한 번 건너뛰어도 아무 일이 없으면, 다음엔 더 쉽게 건너뜁니다. 이건 게으름의 문제가 아니라 구조의 문제입니다. 사람이 매번 기억해야 지켜지는 규칙은 결국 깨집니다.

게이트란 무엇인가

"게이트"는 간단합니다. 검사가 실패하면 병합(merge)이나 배포가 막히는 것. 사람이 확인을 잊어도, 파이프라인이 대신 막아줍니다. 뚫고 지나가려면 문제를 고치는 수밖에 없습니다.

GitHub Actions에 최소로 넣는 법

레포에 .github/workflows/security.yml을 하나 추가하는 것으로 시작할 수 있습니다.

name: security-gate
on: [pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run dependency audit
        run: npm audit --audit-level=high

이 한 단계만으로도 고위험 취약점이 있는 PR은 병합 전에 붉은 X 표시가 뜹니다. 여기에 시크릿 스캔, SAST(정적 분석) 단계를 추가하면 커버리지가 넓어집니다.

무엇을 게이트로 걸어야 하나

모든 것을 다 막으면 아무도 못 배포합니다. 우선순위를 정하세요.

  • 반드시 차단: 하드코딩된 시크릿, Critical/High 등급 CVE
  • 경고만 표시: Low/Medium 등급, 스타일 이슈
  • 점진적으로 강화: 처음엔 경고만 띄우다가, 팀이 익숙해지면 차단으로 전환

오탐을 방치하면 게이트가 무력화된다

게이트가 자주 틀리면, 팀은 "또 오탐이네"하며 우회 방법을 찾기 시작합니다(예: 검사 스킵 플래그를 습관적으로 사용). 오탐률을 낮게 유지하는 것이 게이트를 오래 살아있게 하는 핵심입니다. 필요하면 예외 목록을 명시적으로 관리하세요 — 조용히 끄는 것보다 훨씬 낫습니다.


WhiteHat Code는 GitHub 저장소를 연결하면 푸시·PR마다 자동으로 스캔하고, 심각도별로 결과를 정리해 보여줍니다. 게이트를 직접 짤 필요 없이 바로 시작할 수 있습니다.

AI 공격에 맞서, AI로 준비하세요.

스캔

보안 아티클