튜토리얼: 병합 요청 승인 정책 설정
이 튜토리얼에서는 병합 요청 승인 정책을 만들고 구성하는 방법을 안내합니다. 이러한 정책은 스캔 결과에 기반하여 조치를 취할 수 있도록 설정할 수 있습니다. 예를 들어, 이 튜토리얼에서는 병합 요청에서 취약점이 감지되면 두 지정된 사용자의 승인이 필요한 정책을 설정합니다.
병합 요청 승인 정책을 설정하려면:
- 테스트 프로젝트 생성합니다.
- 병합 요청 승인 정책 추가합니다.
- 병합 요청 승인 정책 테스트합니다.
시작하기 전에
이 튜토리얼에 사용되는 네임스페이스는 다음을 포함해야합니다:
- 귀하를 포함하여 최소 세 명의 사용자가 있어야 합니다. 다른 사용자가 두 명 이상이 없는 경우 먼저 그들을 만들어야 합니다. 자세한 내용은 사용자 생성을 참조하십시오.
테스트 프로젝트 생성
- 왼쪽 사이드바의 상단에서 만들기() 및 새 프로젝트/저장소 만들기를 선택합니다.
- 빈 프로젝트 만들기를 선택합니다.
- 필드를 작성합니다.
-
프로젝트 이름:
sast-scan-result-policy
. - 정적 응용 보안 테스트 (SAST) 활성화 확인란을 선택합니다.
-
프로젝트 이름:
- 프로젝트 만들기를 선택합니다.
- 새로 만든 프로젝트로 이동하고 보호된 브랜치를 만듭니다.
병합 요청 승인 정책 추가
다음으로, 테스트 프로젝트에 병합 요청 승인 정책을 추가합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
sast-scan-result-policy
프로젝트를 찾습니다. - 보안 > 정책을 선택합니다.
- 새로운 정책을 선택합니다.
- 병합 요청 승인 정책에서 정책 선택을 선택합니다.
- 필드를 작성합니다.
-
이름:
sast-scan-result-policy
- 정책 상태: 활성화
-
이름:
-
다음 규칙을 추가합니다:
IF |보안 스캔| from |SAST| 에서 |0| 이상의 |모든 심각도 레벨| |모든 취약성 상태| 취약점이 모든 보호된 브랜치를 대상으로 하는 열린 병합 요청에서 검색되면
-
동작을 다음과 같이 설정합니다:
그런 다음, 다음 승인자 중 2명의 승인이 필요합니다:
- 두 사용자를 선택합니다.
-
병합 요청과 함께 구성을 선택합니다.
응용 프로그램은 정책에 연결된 새 프로젝트를 만들고 정책을 정의하는 병합 요청을 만듭니다.
- 병합을 선택합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
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
를 입력합니다. - 변경 내용 커밋을 선택합니다. 새 병합 요청 양식이 열립니다.
- 병합 요청 만들기를 선택합니다.
-
새 병합 요청에서
병합 요청 생성
을 선택합니다.파이프라인 완료까지 기다립니다. 이 작업에는 몇 분이 소요될 수 있습니다.
병합 요청 보안 위젯에서 보안 스캔이 잠재적인 취약점을 감지했음을 확인합니다. 병합 요청 승인 정책에 따라 병합 요청이 차단되고 승인을 기다리는 상태임을 확인합니다.
이제 병합 요청 승인 정책을 설정하고 사용하는 방법을 알게 되었습니다!