InfoGrab Docs

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

요약

이 튜토리얼은 머지 리퀘스트 승인 정책을 만들고 구성하는 방법을 보여줍니다. 머지 리퀘스트 승인 정책을 설정하려면: 다음으로 테스트 프로젝트에 머지 리퀘스트 승인 정책을 추가합니다: 상단 바에서 검색 또는 이동을 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

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

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

  1. 테스트 프로젝트를 만듭니다.
  2. 머지 리퀘스트 승인 정책을 추가합니다.
  3. 머지 리퀘스트 승인 정책을 테스트합니다.

시작하기 전에#

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

테스트 프로젝트 만들기#

  1. 오른쪽 상단에서 Create new(+)와 New project/repository를 선택합니다.
  2. Create blank project를 선택합니다.
  3. 필드를 완성합니다.
    • Project name: sast-scan-result-policy.
    • Enable Static Application Security Testing (SAST) 확인란을 선택합니다.
  4. Create project를 선택합니다.
  5. 새로 만들어진 프로젝트로 이동하여 보호된 브랜치를 만듭니다.

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

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

  1. 상단 바에서 검색 또는 이동을 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

  2. Secure > Policies를 선택합니다.

  3. New policy를 선택합니다.

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

  5. 필드를 완성합니다.

    • Name: sast-scan-result-policy
    • Policy status: Enabled
  6. 다음 규칙을 추가합니다:

    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|
    
  7. Actions를 다음으로 설정합니다:

    THEN Require approval from | 2 | of the following approvers:
    
  8. 두 명의 사용자를 선택합니다.

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

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

  10. Merge를 선택합니다.

  11. 상단 바에서 검색 또는 이동을 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

  12. Secure > Policies를 선택합니다.

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

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

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

  1. 상단 바에서 검색 또는 이동을 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

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

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

  4. Filename 필드에 main.ts를 입력합니다.

  5. 파일 내용에 다음을 복사합니다:

    // 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);
    }
    
  6. Commit message 필드에 Add vulnerable file을 입력합니다.

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

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

  9. Create merge request를 선택합니다.

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

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

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

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

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

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

이 튜토리얼은 머지 리퀘스트 승인 정책을 만들고 구성하는 방법을 보여줍니다. 머지 리퀘스트 승인 정책을 설정하려면: 다음으로 테스트 프로젝트에 머지 리퀘스트 승인 정책을 추가합니다: 상단 바에서 검색 또는 이동을 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

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

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

  1. 테스트 프로젝트를 만듭니다.
  2. 머지 리퀘스트 승인 정책을 추가합니다.
  3. 머지 리퀘스트 승인 정책을 테스트합니다.

시작하기 전에#

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

테스트 프로젝트 만들기#

  1. 오른쪽 상단에서 Create new(+)와 New project/repository를 선택합니다.
  2. Create blank project를 선택합니다.
  3. 필드를 완성합니다.
    • Project name: sast-scan-result-policy.
    • Enable Static Application Security Testing (SAST) 확인란을 선택합니다.
  4. Create project를 선택합니다.
  5. 새로 만들어진 프로젝트로 이동하여 보호된 브랜치를 만듭니다.

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

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

  1. 상단 바에서 검색 또는 이동을 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

  2. Secure > Policies를 선택합니다.

  3. New policy를 선택합니다.

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

  5. 필드를 완성합니다.

    • Name: sast-scan-result-policy
    • Policy status: Enabled
  6. 다음 규칙을 추가합니다:

    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|
    
  7. Actions를 다음으로 설정합니다:

    THEN Require approval from | 2 | of the following approvers:
    
  8. 두 명의 사용자를 선택합니다.

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

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

  10. Merge를 선택합니다.

  11. 상단 바에서 검색 또는 이동을 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

  12. Secure > Policies를 선택합니다.

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

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

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

  1. 상단 바에서 검색 또는 이동을 선택하고 sast-scan-result-policy 프로젝트를 찾습니다.

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

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

  4. Filename 필드에 main.ts를 입력합니다.

  5. 파일 내용에 다음을 복사합니다:

    // 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);
    }
    
  6. Commit message 필드에 Add vulnerable file을 입력합니다.

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

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

  9. Create merge request를 선택합니다.

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

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

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

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