InfoGrab DocsInfoGrab Docs

튜토리얼: 머지 리퀘스트 승인 정책 설정

요약

이 튜토리얼은 머지 리퀘스트 승인 정책을 만들고 구성하는 방법을 보여줍니다. 머지 리퀘스트 승인 정책을 설정하려면: 이 튜토리얼에 사용하는 네임스페이스에는 자신을 포함하여 최소 3명의 사용자가 있어야 합니다. 기존 그룹에서 새 프로젝트를 만들 권한이 필요합니다.

이 튜토리얼은 머지 리퀘스트 승인 정책을 만들고 구성하는 방법을 보여줍니다. 이러한 정책은 스캔 결과에 따라 조치를 취하도록 설정할 수 있습니다. 예를 들어 이 튜토리얼에서는 머지 리퀘스트에서 취약점이 감지되면 두 명의 지정된 사용자의 승인이 필요한 정책을 설정합니다.

머지 리퀘스트 승인 정책을 설정하려면:

시작하기 전에#

  • 이 튜토리얼에 사용하는 네임스페이스에는 자신을 포함하여 최소 3명의 사용자가 있어야 합니다. 다른 두 명의 사용자가 없다면 먼저 만들어야 합니다. 자세한 내용은 사용자 만들기를 참조하세요.

  • 기존 그룹에서 새 프로젝트를 만들 권한이 필요합니다.

테스트 프로젝트 만들기#

  • 오른쪽 상단에서 Create new(+)와 New project/repository를 선택합니다.

  • Create blank project를 선택합니다.

  • 필드를 완성합니다.

Project name: sast-scan-result-policy.

  • Enable Static Application Security Testing (SAST) 확인란을 선택합니다.

  • Create project를 선택합니다.

  • 기본 브랜치를 보호하려면:

상단 바에서 Search or go to를 선택하고 sast-scan-result-policy를 입력합니다.

  • 왼쪽 사이드바에서 Settings > Repository를 선택합니다.

  • Branch rules를 확장합니다.

  • Add branch rule > Branch name or pattern을 선택합니다.

  • 드롭다운 목록에서 main(또는 기본 브랜치)을 검색하여 선택한 다음 Create branch rule을 선택합니다.

  • Allowed to merge 섹션에서 Edit를 선택하고 Maintainers로 설정한 다음 Save changes를 선택합니다.

  • Allowed to push and merge 섹션에서 Edit를 선택하고 No one으로 설정한 다음 Save changes를 선택합니다.

머지 리퀘스트 승인 정책 추가#

다음으로 테스트 프로젝트에 머지 리퀘스트 승인 정책을 추가합니다:

상단 바에서 Search or go to를 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

Secure > Policies를 선택합니다.

New policy를 선택합니다.

Merge request approval policy에서 Select policy를 선택합니다.

필드를 완성합니다.

Name: sast-scan-result-policy

  • Policy status: Enabled

Add new rule을 선택하고 규칙을 구성합니다:

스캔 유형으로 security scanSAST를 선택합니다.

  • 대상으로 all protected branchesno exceptions를 선택합니다.

  • 취약점 수로 more than을 선택하고 0을 입력합니다.

Global Settings에서 심각도와 상태를 구성합니다:

Severity is: All severity levels

  • Status: New + All vulnerability states

Actions를 다음으로 설정합니다:

THEN Require approval from | 2 | of the following approvers:

두 명의 사용자를 선택합니다.

Configure with a merge request를 선택합니다.

애플리케이션은 연결된 정책을 저장할 새 프로젝트를 만들고 정책을 정의하기 위한 머지 리퀘스트를 만듭니다.

Merge를 선택합니다.

상단 바에서 Search or go to를 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

Secure > Policies를 선택합니다.

이전 단계에서 추가한 정책 목록을 볼 수 있습니다.

머지 리퀘스트 승인 정책 테스트#

잘 하셨습니다. 머지 리퀘스트 승인 정책을 만들었습니다. 테스트하려면 몇 가지 취약점을 만들고 결과를 확인합니다:

상단 바에서 Search or go to를 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

왼쪽 사이드바에서 Code > Repository를 선택합니다.

Add(+) 드롭다운 목록에서 New file을 선택합니다.

Filename 필드에 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);
}

Commit message 필드에 Add vulnerable file을 입력합니다.

Target Branch 필드에 test-branch를 입력합니다.

Commit changes를 선택합니다. New merge request 양식이 열립니다.

Create merge request를 선택합니다.

새 머지 리퀘스트에서 Create merge request를 선택합니다.

파이프라인이 완료될 때까지 기다립니다. 몇 분이 걸릴 수 있습니다.

머지 리퀘스트 Reports 탭에서 보안 스캐닝이 하나의 잠재적인 취약점을 감지했음을 확인합니다. 머지 리퀘스트 승인 정책에 정의된 대로 머지 리퀘스트가 차단되고 승인을 기다립니다.

이제 머지 리퀘스트 승인 정책을 설정하고 사용하여 취약점을 포착하는 방법을 알게 되었습니다!

튜토리얼: 머지 리퀘스트 승인 정책 설정

GitLab v19.3
Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

이 튜토리얼은 머지 리퀘스트 승인 정책을 만들고 구성하는 방법을 보여줍니다. 머지 리퀘스트 승인 정책을 설정하려면: 이 튜토리얼에 사용하는 네임스페이스에는 자신을 포함하여 최소 3명의 사용자가 있어야 합니다. 기존 그룹에서 새 프로젝트를 만들 권한이 필요합니다.

이 튜토리얼은 머지 리퀘스트 승인 정책을 만들고 구성하는 방법을 보여줍니다. 이러한 정책은 스캔 결과에 따라 조치를 취하도록 설정할 수 있습니다. 예를 들어 이 튜토리얼에서는 머지 리퀘스트에서 취약점이 감지되면 두 명의 지정된 사용자의 승인이 필요한 정책을 설정합니다.

머지 리퀘스트 승인 정책을 설정하려면:

시작하기 전에#

  • 이 튜토리얼에 사용하는 네임스페이스에는 자신을 포함하여 최소 3명의 사용자가 있어야 합니다. 다른 두 명의 사용자가 없다면 먼저 만들어야 합니다. 자세한 내용은 사용자 만들기를 참조하세요.

  • 기존 그룹에서 새 프로젝트를 만들 권한이 필요합니다.

테스트 프로젝트 만들기#

  • 오른쪽 상단에서 Create new(+)와 New project/repository를 선택합니다.

  • Create blank project를 선택합니다.

  • 필드를 완성합니다.

Project name: sast-scan-result-policy.

  • Enable Static Application Security Testing (SAST) 확인란을 선택합니다.

  • Create project를 선택합니다.

  • 기본 브랜치를 보호하려면:

상단 바에서 Search or go to를 선택하고 sast-scan-result-policy를 입력합니다.

  • 왼쪽 사이드바에서 Settings > Repository를 선택합니다.

  • Branch rules를 확장합니다.

  • Add branch rule > Branch name or pattern을 선택합니다.

  • 드롭다운 목록에서 main(또는 기본 브랜치)을 검색하여 선택한 다음 Create branch rule을 선택합니다.

  • Allowed to merge 섹션에서 Edit를 선택하고 Maintainers로 설정한 다음 Save changes를 선택합니다.

  • Allowed to push and merge 섹션에서 Edit를 선택하고 No one으로 설정한 다음 Save changes를 선택합니다.

머지 리퀘스트 승인 정책 추가#

다음으로 테스트 프로젝트에 머지 리퀘스트 승인 정책을 추가합니다:

상단 바에서 Search or go to를 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

Secure > Policies를 선택합니다.

New policy를 선택합니다.

Merge request approval policy에서 Select policy를 선택합니다.

필드를 완성합니다.

Name: sast-scan-result-policy

  • Policy status: Enabled

Add new rule을 선택하고 규칙을 구성합니다:

스캔 유형으로 security scanSAST를 선택합니다.

  • 대상으로 all protected branchesno exceptions를 선택합니다.

  • 취약점 수로 more than을 선택하고 0을 입력합니다.

Global Settings에서 심각도와 상태를 구성합니다:

Severity is: All severity levels

  • Status: New + All vulnerability states

Actions를 다음으로 설정합니다:

THEN Require approval from | 2 | of the following approvers:

두 명의 사용자를 선택합니다.

Configure with a merge request를 선택합니다.

애플리케이션은 연결된 정책을 저장할 새 프로젝트를 만들고 정책을 정의하기 위한 머지 리퀘스트를 만듭니다.

Merge를 선택합니다.

상단 바에서 Search or go to를 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

Secure > Policies를 선택합니다.

이전 단계에서 추가한 정책 목록을 볼 수 있습니다.

머지 리퀘스트 승인 정책 테스트#

잘 하셨습니다. 머지 리퀘스트 승인 정책을 만들었습니다. 테스트하려면 몇 가지 취약점을 만들고 결과를 확인합니다:

상단 바에서 Search or go to를 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

왼쪽 사이드바에서 Code > Repository를 선택합니다.

Add(+) 드롭다운 목록에서 New file을 선택합니다.

Filename 필드에 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);
}

Commit message 필드에 Add vulnerable file을 입력합니다.

Target Branch 필드에 test-branch를 입력합니다.

Commit changes를 선택합니다. New merge request 양식이 열립니다.

Create merge request를 선택합니다.

새 머지 리퀘스트에서 Create merge request를 선택합니다.

파이프라인이 완료될 때까지 기다립니다. 몇 분이 걸릴 수 있습니다.

머지 리퀘스트 Reports 탭에서 보안 스캐닝이 하나의 잠재적인 취약점을 감지했음을 확인합니다. 머지 리퀘스트 승인 정책에 정의된 대로 머지 리퀘스트가 차단되고 승인을 기다립니다.

이제 머지 리퀘스트 승인 정책을 설정하고 사용하여 취약점을 포착하는 방법을 알게 되었습니다!