튜토리얼: 병합 요청 승인 정책 설정하기
이 튜토리얼에서는 병합 요청 승인 정책을 생성하고 구성하는 방법을 보여줍니다. 이러한 정책은 스캔 결과를 기반으로 조치를 취하도록 설정할 수 있습니다.
예를 들어, 이 튜토리얼에서는 병합 요청에서 취약점이 감지되면 두 명의 지정된 사용자로부터 승인을 요구하는 정책을 설정합니다.
병합 요청 승인 정책을 설정하려면 다음을 수행하세요:
시작하기 전에
이 튜토리얼에 사용되는 네임스페이스는 다음을 충족해야 합니다:
- 본인을 포함한 최소 세 명의 사용자가 있어야 합니다. 다른 두 명의 사용자가 없다면 먼저 생성해야 합니다. 자세한 내용은 사용자 생성을 참조하세요.
테스트 프로젝트 생성
- 왼쪽 사이드바에서, 상단의 새로 만들기 ()를 선택하고 새 프로젝트/저장소를 선택합니다.
- 빈 프로젝트 생성을 선택합니다.
- 필드를 채웁니다.
-
프로젝트 이름:
sast-scan-result-policy
. - 정적 애플리케이션 보안 테스트(SAST) 체크 박스를 선택합니다.
-
프로젝트 이름:
- 프로젝트 생성을 선택합니다.
- 새로 생성된 프로젝트로 이동하여 보호된 브랜치를 생성합니다.
병합 요청 승인 정책 추가
다음으로, 테스트 프로젝트에 병합 요청 승인 정책을 추가할 것입니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
sast-scan-result-policy
프로젝트를 찾습니다. - 보안 > 정책을 선택합니다.
- 새 정책을 선택합니다.
- 병합 요청 승인 정책에서 정책 선택을 선택합니다.
- 필드를 채웁니다.
-
이름:
sast-scan-result-policy
- 정책 상태: 활성화됨
-
이름:
-
다음 규칙을 추가합니다:
IF |Security Scan| from |SAST| find(s) more than |0| |All severity levels| |All vulnerability states| vulnerabilities in an open merge request targeting |All protected branches|
-
작업을 다음으로 설정합니다:
THEN Require approval from | 2 | of the following approvers:
- 두 명의 사용자를 선택합니다.
-
병합 요청으로 구성을 선택합니다.
애플리케이션은 정책과 연결된 정책을 저장할 새 프로젝트를 생성하고 정책을 정의하기 위한 병합 요청을 생성합니다.
- 병합을 선택합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
sast-scan-result-policy
프로젝트를 찾습니다. -
보안 > 정책을 선택합니다.
이전 단계에서 추가한 정책 목록을 볼 수 있습니다.
병합 요청 승인 정책 테스트
잘 하셨습니다. 병합 요청 승인 정책을 생성했습니다. 테스트하려면 몇 가지 취약점을 만들어 결과를 확인하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
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
를 입력합니다. - 변경 사항 커밋을 선택합니다. 새 병합 요청 양식이 열립니다.
-
새 병합 요청에서
병합 요청 생성
을 선택합니다.파이프라인이 완료될 때까지 기다립니다. 몇 분이 걸릴 수 있습니다.
병합 요청 보안 위젯은 보안 스캐닝이 잠재적인 취약점을 하나 감지했음을 확인합니다. 병합 요청 승인 정책에 정의된 대로 병합 요청은 차단되고 승인을 기다리고 있습니다.
병합 요청 승인 정책을 설정하고 취약점을 포착하는 방법을 الآن 알게 되었습니다!