SAST 규칙

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed형, GitLab Dedicated

GitLab SAST는 잠재적인 취약점을 검사하기 위해 분석기 세트를 사용합니다. 각 분석기는 코드를 처리한 다음 소스 코드의 가능한 취약점을 찾기 위해 규칙을 사용합니다. 규칙은 분석기가 보고하는 취약점의 유형을 결정합니다.

규칙의 출처

Semgrep 기반 분석기

GitLab은 Semgrep 기반 GitLab SAST 분석기에서 사용되는 규칙을 생성, 유지, 지원합니다. 이 분석기는 단일 CI/CD 파이프라인 작업에서 여러 언어를 스캔합니다. 이는 다음을 결합합니다:

  • Semgrep 오픈 소스 엔진.
  • GitLab이 관리하는 검출 규칙.
  • 취약점 추적을 위한 GitLab 고유 기술 및 잘못된 양성 탐지.

다른 분석기

GitLab SAST는 다른 분석기를 사용하여 남은 지원되는 언어를 스캔합니다. 이러한 스캔의 규칙은 각 스캐너의 상류 프로젝트에서 정의됩니다.

규칙 업데이트 방법

GitLab은 고객 의견 및 내부 연구를 기반으로 규칙을 정기적으로 업데이트합니다. 규칙은 각 분석기의 컨테이너 이미지의 일부로 릴리스됩니다. 귀하의 특정 버전으로 매뉴얼으로 고정하지 않는 한, 업데이트된 분석기와 규칙을 자동으로 받게 됩니다.

관련된 업데이트가 가능한 경우 분석기 및 해당 규칙은 최소 한 달에 한 번 업데이트됩니다.

Semgrep 기반 분석기를 위한 GitLab 규칙세트는 GitLab이 관리하는 오픈 소스 sast-rules 프로젝트에서 관리됩니다. 규칙이 업데이트되면 이는 Semgrep 기반 분석기의 컨테이너 이미지의 일부로 릴리스됩니다.

규칙 업데이트 정책

SAST 규칙의 업데이트는 기능을 파괴하지 않는 변경이 아닙니다. 이는 룰이 사전 통지 없이 추가, 제거 또는 업데이트될 수 있음을 의미합니다.

그러나 룰 변경을 더 편리하고 이해하기 쉽게 만들기 위해 GitLab은 다음을 수행합니다:

프로젝트에서 규칙 구성

특정한 이유가 없는 한 기본 SAST 규칙을 사용해야 합니다. 기본 규칙은 대부분의 프로젝트에 적용되도록 설계되었습니다.

그러나 어떤 이유로든 변경을 해야할 경우 이를 제어하려면, 여러분은 어떤 규칙이 사용되는지를 사용자 정의하거나 제어할 수 있습니다.

지역 규칙 설정 적용

조직에서 특정한 취약성 클래스에 우선순위를 할당하거나, 다른 취약성 클래스보다 먼저 Cross-Site Scripting(XSS) 또는 SQL Injection을 해결하기로 선택한 경우:

  • 프로젝트를 스캔할 때 사용되는 규칙을 변경하거나
  • 심각도를 조정하거나 다른 기본 설정을 적용하기를 원할 수 있습니다. 이 경우 Rulesets의 사용자 정의를 참조하십시오.
  • 귀하의 사용자 정의가 다른 사용자에게 이익을 줄 수 있는 경우, GitLab에 문제 보고를 고려하십시오.

규칙 롤아웃 조정

규칙 변경을 제어하려면, SAST 분석기를 특정 버전으로 고정할 수 있습니다.

여러 프로젝트에 걸쳐 동시에 변경을 하려면 다음 변수를 설정하는 것을 고려하시기 바랍니다:

GitLab SAST 규칙 문제 신고하기

GitLab은 SAST에서 사용되는 규칙 세트에 대한 기여를 환영합니다. 기여 사항은 다음을 포함할 수 있습니다:

  • 잠재적인 취약성이 잘못된 경우 잘못된 양성 결과.
  • SAST가 실제로 존재하는 잠재적인 취약점을 보고하지 않은 경우 잘못된 음성 결과.
  • 규칙의 이름, 심각도 등에 대한 설명, 지침 또는 기타 설명 내용.

모든 사용자를 위해 규칙을 개선할 수 있다고 생각하는 경우:

중요한 규칙 변경

GitLab은 SAST 규칙을 정기적으로 업데이트합니다. 이 섹션은 가장 중요한 변경 사항을 강조합니다. 자세한 내용은 릴리스 공지에서와 제공된 CHANGELOG 링크에서 확인할 수 있습니다.

Semgrep 기반 분석기의 규칙 변경

Semgrep 기반 스캐닝에 대한 GitLab이 관리하는 규칙 세트에 대한 주요 변경 사항은 다음과 같습니다:

  • GitLab 16.3부터 GitLab 정적 분석 및 취약점 연구 팀은 일부 규칙을 제거하기 위해 노력하고 있습니다. 이러한 제거된 규칙의 기존 결과는 자동으로 해결됩니다; 이제 보안 대시보드취약점 보고서의 기본 보기에 표시되지 않습니다. 이 작업은 epic 10907에서 추적되고 있습니다.
  • GitLab 16.0부터 16.2까지 GitLab 취약점 연구 팀은 각 결과에 포함된 지침을 업데이트했습니다.
  • GitLab 15.10에서 detect-object-injection 규칙이 기본적으로 제거되었으며 해당 결과가 자동으로 해결되었습니다.

자세한 내용은 CHANGELOG for sast-rules을 참조하십시오.

다른 분석기의 규칙 변경

분석기에 대한 CHANGELOG 파일을 확인하여 각 버전에 포함된 새로운 또는 업데이트된 규칙에 대한 세부 정보를 확인하십시오.