애플리케이션 보안 시작하기

애플리케이션의 소스 코드에서 취약점을 식별하고 해결하세요. 소프트웨어 개발 수명주기에 보안 테스트를 통합하여 잠재적인 보안 문제를 자동으로 검사하세요.

여러 프로그래밍 언어와 프레임워크를 스캔하고, SQL 인젝션, 크로스사이트 스크립팅(XSS)과 같은 취약점을 탐지하세요. 보안 스캔 결과는 GitLab UI에 표시되며, 여기서 결과를 검토하고 해결할 수 있습니다.

이러한 기능은 또한 병합 요청 및 파이프라인과 통합되어 보안이 개발 프로세스 전반에 우선순위로 고려되도록 할 수 있습니다.

개요를 보려면 GitLab 애플리케이션 보안 채택을(를) 확인하세요.

인터랙티브 리딩 및 사용 방법 데모 재생 목록을(를) 확인하세요.

이러한 프로세스는 더 큰 워크플로우의 일부입니다:

Workflow

단계 1: 스캔에 대해 알아보기

시크릿 탐지(Secret Detection)는 저장소를 스캔하여 비밀 정보가 노출되는 것을 방지합니다. 모든 프로그래밍 언어와 함께 작동합니다.

의존성 스캔(Dependency Scanning)은 애플리케이션의 종속성을 알려진 취약점을 위해 분석합니다. 모든 종속성, 즉 중첩된 종속성으로도 알려진 이식성 종속성을 포함하여 모든 종속성이 스캔됩니다.

자세한 내용은 다음을 참조하세요:

단계 2: 테스트할 프로젝트 선택하기

GitLab 보안 스캔을 처음 설정하는 경우 하나의 프로젝트에서 시작해야 합니다. 프로젝트는 다음을 포함해야 합니다:

  • 귀하의 조직의 일반적인 프로그래밍 언어와 기술을 사용해야 합니다. 왜냐하면 언어에 따라 일부 스캔 기능이 다르게 작동하기 때문입니다.
  • 팀의 일상적인 작업을 방해하지 않고 필수 승인과 같은 새로운 설정을 시도할 수 있어야 합니다. 고트래픽 프로젝트의 사본을 만들거나 바쁘지 않은 프로젝트를 선택할 수 있습니다.

단계 3: 스캔 활성화하기

프로젝트에서 노출된 비밀 정보와 취약한 패키지를 식별하려면, 시크릿 탐지와 의존성 스캔을 활성화하는 병합 요청을 만드세요.

소스 코드를 스캔하도록 .gitlab-ci.yml 파일을 업데이트하여 스캔이 프로젝트의 CI/CD 파이프라인의 일부로 실행되도록 합니다.

이 MR의 일환으로 프로젝트의 레이아웃이나 구성에 맞게 설정을 변경할 수 있습니다. 예를 들어, 타사 코드의 디렉토리를 제외할 수 있습니다.

이 MR을 기본 브랜치로 병합하면 시스템이 기준 스캔을 생성합니다. 이 스캔은 기본 브랜치에서 이미 존재하는 취약점을 식별합니다. 그런 다음 병합 요청은 새롭게 도입된 문제를 강조합니다.

기준 스캔이 없는 경우 병합 요청은 브랜치의 모든 취약점을 표시하며, 취약점이 이미 기본 브랜치에 존재하더라도 모든 취약점을 표시합니다.

자세한 내용은 다음을 참조하세요:

단계 4: 스캔 결과 검토하기

팀이 병합 요청 및 취약점 보고서에서 보안 문제를 편리하게 확인할 수 있도록하세요.

취약성 진단 워크플로를 수립하세요. 취약점으로부터 생성된 이슈를 관리하는 데 도움이 되도록 레이블과 이슈 보드를 만드세요. 이슈 보드를 사용하면 모든 이해관계자가 모든 이슈를 공통으로 보고 문제 해결 진행률을 추적할 수 있습니다.

보안 대시보드 추세를 모니터링하여 기존 취약점을 해결하고 새로운 취약점이 도입되는 것을 방지하는 성공을 판단하세요.

자세한 내용은 다음을 참조하세요:

단계 5: 미래 스캔 작업 예약하기

스캔 실행 정책을 사용하여 예약된 보안 스캔 작업을 강제하세요. 이러한 예약된 작업은 귀하가 컴플라이언스 프레임워크 파이프라인이나 프로젝트의 .gitlab-ci.yml 파일에 정의한 기타 보안 스캔과는 별도로 실행됩니다.

예정된 스캔은 개발 활동이 낮은 프로젝트나 중요한 브랜치에 가장 유용합니다. 파이프라인 스캔이 빈번하지 않은 곳입니다.

자세한 내용은 다음을 참조하세요:

단계 6: 새로운 취약점 제한하기

필수 스캔 유형을 강제하고 보안과 엔지니어링 간의 권한 분리를 보장하기 위해 스캔 실행 정책을 사용하세요.

기본 브랜치로 새로운 취약점이 병합되는 것을 제한하기 위해 병합 요청 승인 정책을 만드세요.

스캔이 어떻게 작동하는지 익숙해지면 다음을 선택할 수 있습니다:

  • 더 많은 프로젝트에서 스캔을 활성화하려면 같은 단계를 따르세요.
  • 한꺼번에 더 많은 프로젝트에 대해 스캔을 강제하세요.

자세한 내용은 다음을 참조하세요:

단계 7: 새로운 취약점 계속 스캔하기

시간이 지남에 따라 새로운 취약점이 도입되지 않도록 보장해야 합니다.

  • 저장소에 이미 존재하는 새로 발견된 취약점을 노출하려면 정기적으로 의존성 및 컨테이너 스캔을 실행하세요.
  • 제품 클러스터의 컨테이너 이미지를 보안 취약점을 위해 스캔하려면 운영 컨테이너 스캔을 활성화하세요.
  • SAST, DAST 또는 Fuzz 테스트와 같은 다른 스캔 유형을 활성화하세요.
  • 테스트 환경에서 DAST 및 Web API 퍼징을 위해 리뷰 앱 활성화를 고려하세요.

자세한 내용은 다음을 참조하세요: