본문 바로가기
C.W.K.
Stream
Lesson 10 of 13 · published

보안 스캔

~12 min · security, sast, secrets, supply-chain

Level 0견습생
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

무료에 자동이라 안 할 핑계가 없어

깃허브가 풀 리퀘스트 리뷰 화면과 바로 연동되는 자체 스캐너를 여러 개 제공해. 새로운 인프라를 구축할 필요도 없고, 코드 리뷰 옆에 바로 취약점 발견 내역이 뜨니까 그냥 켜두자.

CodeQL — SAST (정적 애플리케이션 보안 테스트)

  • 깃허브가 직접 관리해.
  • SQL 인젝션, XSS, 경로 순회, 역직렬화 같은 전형적인 취약점 패턴을 잡아낸다.
  • 공개 저장소는 무료고, 비공개 저장소는 깃허브 어드밴스드 시큐리티에 포함돼 있어.
  • 설정은 github/codeql-action을 사용하는 워크플로 파일 하나면 충분해.

비밀값 스캐닝

  • 깃허브에 내장돼 있어서 워크플로 설정이 필요 없어.
  • AWS, GCP, Stripe, OpenAI, Anthropic, 깃허브 PAT 등 200개 이상의 토큰 형식을 탐지해.
  • 푸시 보호 기능을 켜면 비밀값을 발견했을 때 git push 단계에서 커밋을 바로 차단해.

의존성 스캐닝

  • 디펜더봇이 알려진 취약한 의존성이 있으면 경고를 띄워.
  • 디펜더봇 버전 업데이트는 새 버전이 나오면 자동으로 풀 리퀘스트를 만들어줘.
  • 둘 다 저장소 설정의 코드 보안 메뉴에서 활성화할 수 있어.

추가해볼 만한 서드파티 스캐너

  • trivy — 컨테이너 이미지와 IaC를 스캔해.
  • gitleaks — 추가적인 비밀값 패턴을 잡아낸다.
  • semgrep — 애플리케이션에 맞춘 커스텀 규칙으로 특정 패턴을 탐지해.

Code

CodeQL — 최소 워크플로·yaml
name: codeql
on:
  push: { branches: [main] }
  pull_request: {}
  schedule:
    - cron: '0 6 * * 1'   # weekly Monday

jobs:
  analyze:
    runs-on: ubuntu-latest
    permissions:
      security-events: write
      contents: read
    strategy:
      matrix:
        language: [python, javascript]
    steps:
      - uses: actions/checkout@v4
      - uses: github/codeql-action/init@v3
        with: { languages: '${{ matrix.language }}' }
      - uses: github/codeql-action/analyze@v3

External links

Exercise

네가 소유한 저장소에서 비밀값 스캐닝, 푸시 보호, 디펜더봇 알림, 디펜더봇 버전 업데이트를 활성화해 봐. CodeQL 워크플로도 추가하고. 새로운 코드를 작성할 필요는 없고 전부 체크박스로 켜면 돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.