- Debug 수준의 로그 기록
- GitLab-관리 CI/CD 템플릿 변경으로 인한 파이프라인 오류
- SpotBugs 메시지:
Exception analyzing ... using detector ...
뒤에 Java 스택 추적이 있습니다. - Flawfinder 인코딩 오류
- Semgrep 실행 속도 저하, 예기치 않은 결과 또는 다른 오류
SAST 문제 해결
Debug 수준의 로그 기록
Troubleshooting 시에는 Debug 수준의 로그 기록이 도움이 될 수 있습니다. 자세한 내용은 debug-level logging를 참조하십시오.
GitLab-관리 CI/CD 템플릿 변경으로 인한 파이프라인 오류
GitLab-관리 SAST CI/CD 템플릿은 분석기 작업을 실행하고 구성하는 방법을 제어합니다. 이 템플릿을 사용하는 동안 작업 실패 또는 기타 파이프라인 오류를 경험할 수 있습니다. 예를 들어 다음과 같은 오류 메시지를 볼 수 있습니다: '\<작업 이름>'은 'spotbugs-sast' 작업이 필요하지만, 'spotbugs-sast'가 이전 단계에 없습니다
과 같은 영향을 받은 파이프라인을 보거나 다른 종류의 예기치 않은 문제를 경험할 수 있습니다.
작업 실패나 SAST 관련 yaml invalid
파이프라인 상태를 겪고 있다면 문제를 조사하는 동안 파이프라인이 계속 작동하도록 하기 위해 기존 include
문을 변경하여 CI/CD YAML 파일에서 이전 템플릿 버전으로 임시로 되돌아가도록 할 수 있습니다. 예를 들어 다음과 같이 특정 템플릿 버전을 참조하도록 CI/CD YAML 파일의 기존 include
문을 변경하십시오.
include:
remote: 'https://gitlab.com/gitlab-org/gitlab/-/raw/v15.3.3-ee/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml'
GitLab 인스턴스의 네트워크 연결이 제한적인 경우 파일을 다운로드하여 다른 위치에 호스팅할 수도 있습니다.
이 해결 방법은 임시로만 사용하는 것을 권장하며 조속히 표준 템플릿으로 돌아가는 것이 좋습니다.
… (이하 생략)
링크
SpotBugs 메시지: Exception analyzing ... using detector ...
뒤에 Java 스택 추적이 있습니다.
작업 로그에 “Exception analyzing … using detector …“과 같은 형식의 메시지가 포함되어 있고 그 뒤에 Java 스택 추적이 따라오면, 이는 SAST 파이프라인의 실패가 아닙니다. SpotBugs는 예외를 복구 가능하다고 판단하여 이를 기록하고 분석을 계속합니다.
메시지의 처음 “…” 부분은 분석 중인 클래스이며, 프로젝트의 일부가 아니라면 해당 메시지와 뒤이어 오는 스택 추적을 무시해도 될 것입니다.
그러나 분석 중인 클래스가 프로젝트의 일부인 경우, GitHub에서 SpotBugs 프로젝트에 이슈를 작성하는 것을 고려해보세요.
Flawfinder 인코딩 오류
이 오류는 Flawfinder가 유효하지 않은 UTF-8 문자를 만났을 때 발생합니다. 이를 해결하려면 리포지터리 전체에 문서화된 권고 사항을 적용하거나, before_script
기능을 사용하여 각 작업마다 적용하세요.
각 .gitlab-ci.yml
파일에 before_script
섹션을 구성하거나, 파이프라인 실행 정책 동작을 사용하여 flawfinder-sast-0
작업에 before_script
섹션을 추가하여, 실행 정책에서 생성된 작업에서 .cpp
확장자를 가진 모든 파일을 변환하는 변환기를 설치하고 실행할 수 있습니다.
파이프라인 실행 정책 YAML 예시
---
scan_execution_policy:
- name: SAST
description: 'C++ 애플리케이션에 SAST 실행'
enabled: true
rules:
- type: pipeline
branch_type: all
actions:
- scan: sast
- scan: custom
ci_configuration: |-
flawfinder-sast-0:
before_script:
- pip install cvt2utf
- cvt2utf convert "$PWD" -i cpp
Semgrep 실행 속도 저하, 예기치 않은 결과 또는 다른 오류
Semgrep이 느리거나, 너무 많은 false positive 또는 false negative를 보고하거나, 충돌하거나 실패하거나, 기타 방식으로 작동하지 않는 경우, GitLab SAST 문제 해결을 참조하세요.