0Pricing
DevOps Bootcamp · 강의

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

배포 전에 코드의 보안 취약점을 자동으로 식별하도록 SAST 도구를 워크플로에 통합합니다.

정적 애플리케이션 보안 테스트 (SAST)은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

SAST란 무엇인가요?

정적 애플리케이션 보안 테스트(SAST)를 시작합니다! SAST는 개발 프로세스 초기에 코드를 보호하는 데 중요한 역할을 합니다.

SAST를 '화이트박스' 테스트 방법이라고 생각해 보세요. 애플리케이션을 실제로 실행하지 않고 소스 코드, 바이트코드 또는 바이너리 코드를 검사합니다.

  • 정적: 실행되지 않는 상태의 코드를 분석합니다.
  • 애플리케이션: 소프트웨어에 집중합니다.
  • 보안: 취약점을 찾는 것을 목표로 합니다.

SAST 작동 방식

SAST 도구는 알려진 보안 취약점 패턴을 찾아 코드를 검사합니다. 다음을 분석합니다.

  • 데이터 흐름: 데이터가 애플리케이션을 통해 이동하는 방식입니다.
  • 제어 흐름: 명령이 실행되는 순서입니다.
  • 구조적 결함: 잘못된 코딩 방식이나 잘못된 구성입니다.

이러한 심층 분석을 통해 SQL 삽입, 사이트 간 스크립팅(XSS) 및 안전하지 않은 직접 객체 참조(IDOR)와 같은 문제를 식별할 수 있습니다.

SAST가 중요한 이유

SAST를 CI/CD 파이프라인에 통합하면 다음과 같은 중요한 이점이 있습니다:

  • 조기 탐지: 배포 전에 취약점을 찾아내므로 수정 비용이 가장 저렴합니다.
  • 향상된 보안 상태: 개발자가 처음부터 더 안전한 코드를 작성하도록 돕습니다.
  • 규정 준수: 다양한 보안 표준과 규정을 충족하는 데 도움이 됩니다.

문제를 조기에 발견하면 비용이 많이 드는 수정과 나중에 발생할 수 있는 보안 침해를 예방할 수 있습니다.

일반적인 SAST 도구

SAST 도구는 오픈 소스와 상용 도구를 포함해 다양하게 제공됩니다. 인기 있는 도구로는 다음과 같은 것들이 있습니다:

  • GitHub CodeQL: GitHub의 기본 SAST 엔진입니다.
  • SonarQube: 지속적인 코드 품질 및 보안을 위해 널리 사용되는 플랫폼입니다.
  • Bandit: Python 프로젝트용 보안 린터입니다.
  • Snyk Code: 개발자 워크플로에 보안을 통합합니다.

GitHub Actions에서는 기본 제공되는 CodeQL을 통합하는 것이 가장 쉬운 경우가 많습니다.

GitHub Actions에서의 SAST

SAST 도구를 GitHub Actions 워크플로에 직접 통합할 수 있습니다. 즉, 코드를 푸시하거나 풀 리퀘스트를 열 때마다 코드에서 취약점을 자동으로 검사할 수 있습니다.

이를 통해 지속적인 피드백을 받을 수 있으므로, 개발자는 나중 단계까지 기다리지 않고 보안 문제를 발생하는 즉시 수정할 수 있습니다.

워크플로에서 CodeQL 설정

CodeQL을 설정하기 위한 기본 GitHub Actions 워크플로 코드 조각을 살펴보겠습니다. 이 작업은 푸시와 풀 리퀘스트가 발생할 때마다 자동으로 실행되어 코드를 검사합니다.

github/codeql-action/init@v3 단계는 CodeQL 환경을 준비합니다.

name: CodeQL Scan

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v3
      with:
        languages: javascript, python
    # ... more steps for building and analyzing

CodeQL 분석 실행

CodeQL을 초기화한 후에는 코드를 빌드할 수 있는 경우 코드를 빌드하고 분석을 실행해야 합니다. autobuild 단계는 일반적인 빌드 과정을 대신 처리하는 경우가 많습니다.

마지막으로 analyze 단계가 결과를 GitHub 보안 탭에 업로드합니다.

    # ... previous steps from last scene
    - name: Autobuild
      uses: github/codeql-action/autobuild@v3
      # This step attempts to build your code (e.g., Maven, npm)
      # If your project has a complex build, you might need a custom build step.
    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v3

SAST 보고서 이해하기

SAST 검사가 완료되면 보고서가 생성됩니다. GitHub에서 CodeQL 탐지 결과는 저장소의 '보안' 탭과 풀 리퀘스트의 주석에 직접 표시됩니다.

이러한 보고서에는 일반적으로 다음과 같은 내용이 포함됩니다:

  • 취약점 유형: 어떤 종류의 문제인지 보여 줍니다.
  • 심각도 수준: 치명적, 높음, 중간, 낮음으로 표시됩니다.
  • 위치: 코드에 있는 파일과 줄 번호입니다.
  • 수정 지침: 취약점을 수정하는 방법입니다.

SAST 모범 사례

SAST를 최대한 활용하려면 다음을 따르십시오:

  • 조기에 통합하기: 가능한 한 빨리 코드를 검사합니다.
  • 검사 자동화하기: 모든 푸시 또는 PR마다 SAST를 실행합니다.
  • 탐지 결과 우선순위 지정하기: 먼저 치명적 문제와 심각도가 높은 문제에 집중합니다.
  • 개발자 교육하기: 팀이 일반적인 취약점을 이해하고 수정하도록 돕습니다.

SAST 구성을 정기적으로 검토하고 개선하는 것도 중요합니다.

SAST 지식 확인

정적 애플리케이션 보안 테스트(SAST)는 애플리케이션을 보호하는 강력한 도구입니다. 다음 중 SAST의 주요 특징을 가장 잘 설명하는 것은 무엇입니까?

복습: 파이프라인의 SAST

이 단원에서는 정적 애플리케이션 보안 테스트(SAST)를 살펴보았습니다. SAST는 코드를 실행하지 않고 분석하여 개발 주기의 초기에 취약점을 찾아낸다는 것을 배웠습니다.

SAST 도구의 작동 방식과 이점, 그리고 GitHub CodeQL과 같은 강력한 도구를 GitHub Actions 워크플로에 통합하는 방법을 알아보았습니다. SAST를 도입하면 애플리케이션의 보안 상태를 크게 강화할 수 있습니다.

자주 묻는 질문

“정적 애플리케이션 보안 테스트 (SAST)” 강의는 무료인가요?

네 — “정적 애플리케이션 보안 테스트 (SAST)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

“정적 애플리케이션 보안 테스트 (SAST)”에서 뭘 배우나요?

배포 전에 코드의 보안 취약점을 자동으로 식별하도록 SAST 도구를 워크플로에 통합합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“정적 애플리케이션 보안 테스트 (SAST)” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. CI/CD 보안 모범 사례
  2. GitHub를 사용한 보안 비밀 관리
  3. 정적 애플리케이션 보안 테스트 (SAST)
  4. 의존성 및 공급망 보안(SCA)
← DevOps Bootcamp(으)로 돌아가기