튜토리얼: Merge Request 승인 정책 설정
이 튜토리얼에서는 Merge Request 승인 정책을 생성하고 구성하는 방법을 보여줍니다. 이러한 정책은 스캔 결과를 기반으로 조치를 취할 수 있도록 설정할 수 있습니다. 예를 들어, 이 튜토리얼에서는 Merge Request에서 취약점이 감지되면 두 지정된 사용자의 승인이 필요한 정책을 설정합니다.
Merge Request 승인 정책을 설정하려면:
- 테스트 프로젝트 생성을 선택합니다.
- Merge Request 승인 정책 추가를 선택합니다.
- Merge Request 승인 정책 테스트를 선택합니다.
시작하기 전에
이 튜토리얼에 사용되는 네임스페이스는 다음을 포함해야 합니다:
- 귀하를 포함한 최소한 세 명의 사용자가 있어야 합니다. 두 명의 다른 사용자가 없는 경우 먼저 사용자를 생성해야 합니다. 자세한 내용은 사용자 생성을 참조하십시오.
테스트 프로젝트 생성
- 왼쪽 사이드바의 맨 위에서 생성 () 및 새 프로젝트/리포지터리 생성을 선택합니다.
- 빈 프로젝트 생성을 선택합니다.
- 필드를 입력합니다.
-
프로젝트 이름:
sast-scan-result-policy
- 정적 응용 프로그램 보안 테스트 (SAST) 활성화 확인란을 선택합니다.
-
프로젝트 이름:
- 프로젝트 생성을 선택합니다.
- 새롭게 생성된 프로젝트로 이동하여 보호된 브랜치를 생성합니다.
Merge Request 승인 정책 추가
이제 테스트 프로젝트에 Merge Request 승인 정책을 추가합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
sast-scan-result-policy
프로젝트를 찾습니다. - 보안 > 정책을 선택합니다.
- 새 정책을 선택합니다.
- Merge Request 승인 정책에서 정책 선택을 선택합니다.
- 필드를 입력합니다.
-
이름:
sast-scan-result-policy
- 정책 상태: 활성
-
이름:
-
다음 규칙을 추가합니다:
IF |SAST에서 찾은| |Security Scan|이(가) |모든 심각도 수준| |모든 취약점 상태| |모든 보호된 브랜치|를 대상으로 하는 열린 Merge Request에서 |0| 이상의 취약점을 찾으면
-
조치를 다음과 같이 설정합니다:
THEN 다음 승인자 중 2명의 승인이 필요합니다:
- 두 사용자를 선택합니다.
-
Merge Request과 구성을 선택합니다.
응용프로그램은 정책에 연결된 새 프로젝트를 생성하고, 정책을 정의하기 위해 Merge Request을 생성합니다.
- Merge을 선택합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
sast-scan-result-policy
프로젝트를 찾습니다. -
보안 > 정책을 선택합니다.
이전 단계에서 추가된 정책 디렉터리을 볼 수 있습니다.
Merge Request 승인 정책 테스트
수고하셨습니다. 이제 Merge Request 승인 정책을 생성했습니다. 테스트하기 위해 몇 가지 취약점을 생성하고 결과를 확인하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
sast-scan-result-policy
프로젝트를 찾습니다. - 코드 > 리포지터리를 선택합니다.
- 추가 () 드롭다운 디렉터리에서 새 파일을 선택합니다.
-
파일 이름 필드에
main.ts
를 입력합니다. -
파일 내용에 다음을 복사합니다:
// Non-literal require - tsr-detect-non-literal-require var lib: String = 'fs' require(lib) // Eval with variable - tsr-detect-eval-with-expression var myeval: String = 'console.log("Hello.");'; eval(myeval); // Unsafe Regexp - tsr-detect-unsafe-regexp const regex: RegExp = /(x+x+)+y/; // Non-literal Regexp - tsr-detect-non-literal-regexp var myregexpText: String = "/(x+x+)+y/"; var myregexp: RegExp = new RegExp(myregexpText); myregexp.test("(x+x+)+y"); // Markup escaping disabled - tsr-detect-disable-mustache-escape var template: Object = new Object; template.escapeMarkup = false; // Detects HTML injections - tsr-detect-html-injection var element: Element = document.getElementById("mydiv"); var content: String = "mycontent" Element.innerHTML = content; // Timing attack - tsr-detect-possible-timing-attacks var userInput: String = "Jane"; var auth: String = "Jane"; if (userInput == auth) { console.log(userInput); }
-
커밋 메시지 필드에
취약한 파일 추가
를 입력합니다. -
대상 브랜치 필드에
test-branch
를 입력합니다. - 변경 사항 커밋을 선택합니다. 새 Merge Request 양식이 열립니다.
- Merge Request 생성을 선택합니다.
-
새 Merge Request에서
Merge Request 생성
을 선택합니다.파이프라인이 완료될 때까지 기다립니다. 이 작업에는 몇 분이 걸릴 수 있습니다.
Merge Request 보안 위젯은 보안 검사가 한 가지 잠재적인 취약점을 감지했음을 확인합니다. Merge Request 승인 정책에 정의된 대로, Merge Request이 차단되고 승인을 기다리고 있습니다.
이제 Merge Request 승인 정책을 설정하고 사용하여 취약점을 검출하는 방법을 알게 되었습니다!