비공개 클론

Panther에서 관리하는 Python 탐지를 CI/CD 워크플로우 내에서 활용하기 위해 사용할 수 있는 한 가지 방법은 panther-analysisarrow-up-right.

조직에서 탐지 모음과 기타 관련 Panther 구성을 비공개로 유지하려는 경우, panther-analysisarrow-up-right 의 비공개 복제 리포지토리가 최선의 선택입니다. 이 모델에서는 로컬 리포지토리 설정이 내부 콘텐츠에 대한 액세스 권한을 제어합니다.

아래에 설명된 대로 비공개 복제 리포지토리를 구성하면 브랜치를 만들고 풀 리퀘스트를 활용하여 탐지 모음에 대한 사용자 지정 사항을 도입할 수 있습니다.

리포지토리의 공개 포크를 생성하는 방법에 대한 정보는 공개 포크.

circle-info

새로운 태그된 릴리스arrow-up-right가 있을 때 panther-analysis에서 업스트림 변경사항을 가져오는 것이 권장됩니다. main 브랜치arrow-up-right에서도 가져올 수 있습니다. 다른 브랜치는 안정적이라고 간주해서는 안됩니다.

panther-analysis 리포지토리의 비공개 복제본 구성

다음은 현재 지원되는 기능을 기반으로 권장하는 구성입니다.

  1. GitHub에서 비공개 리포지토리를 생성합니다.

  2. 복제 panther-analysis arrow-up-right그리고 git push --mirror 를 사용하여 업스트림의 git 콘텐츠와 히스토리로 비공개 복제 리포지토리를 채우십시오.

    1. gh repo clone panther-labs/panther-analysis

    2. cd panther-analysis

    3. git checkout main

    4. git push --mirror https://github.com/your_org/your_private_repo.git 리포지토리의 미러를 유지 관리하는 방법에 대한 자세한 내용은 GitHub 문서: 리포지토리 복제하기arrow-up-right.

  3. GitHub에서 리포지토리에 대한 올바른 워크플로 권한을 활성화합니다.

    1. 비공개 리포지토리 내에서 다음으로 이동하십시오. 설정 > Actions > 일반.

    2. 다음에서 다음 선택을 합니다. 워크플로 권한 섹션:

      • 토글 읽기 및 쓰기 권한 을(를) 켭니다.

      • 확인 GitHub Actions가 풀 리퀘스트를 생성하고 승인하도록 허용.

    3. 클릭 저장.

  4. 로컬에서 비공개 리포지토리를 복제하고 새 브랜치를 만든 후 기존 rules/ 디렉터리 내에 로컬 탐지 콘텐츠를 위한 디렉터리를 만듭니다:

    1. git checkout -b feat/my_first_branch

    2. mkdir rules/my_local_rules

  5. 샘플 규칙을 추가합니다:

    1. 아래 templates/, example_rule.pyexample_rule.yml.

    2. 이를 rules/my_local_rules/.

      1. cp templates/example_rule.* rules/my_local_rules

  6. 다음 명령을 실행합니다: make venv 그런 다음 make test 를 실행하여 로컬 Python 환경을 설정하고 테스트 스위트를 실행합니다.

    • 파일을 변경하지 않았다면 다음과 유사한 오류가 표시됩니다: 키 'LogTypes' 오류: LOG_TYPE_REGEX가 'LogType.Name'과 일치하지 않습니다

  7. 이전 단계 이후에 발생한 오류를 해결하십시오:

    1. 을(를) 변경 문자열의 단일 리스트 참고: 을(를) Panther에서 알려진 로그 소스(예:)로 AWS.CloudTrail 를 호출하여 각 example_rule.yml

    2. 을(를) 변경 파일명 내의 example_rule.yml 에서 example_rule.py.

  8. 현재 브랜치에서 원격에 변경사항을 커밋합니다. (git rev-parse –abbrev-ref HEAD 는 현재 브랜치를 제공하며, 이 값을 직접 제공할 수도 있습니다.)

    1. git add rules/my_local_rules

    2. git commit -m "feat: new example rules"

    3. git push origin `git rev-parse --abbrev-ref HEAD`

      • 이 명령은 출력에 링크를 제공합니다.

  9. 이전 단계의 출력에서 제공된 링크를 사용하여 git push 브랜치에 대한 풀 리퀘스트를 생성합니다.

  10. 풀 리퀘스트를 병합하고 원하면 브랜치를 삭제하십시오.

비공개 복제본을 업스트림 panther-analysis 업데이트와 동기화 상태로 유지하기

업스트림 변경 사항과 동기화를 유지하려면 Sync Panther Analysis from Upstream arrow-up-rightGitHub Action을 사용하는 것이 권장됩니다. 이 Action은 주기적으로 panther-analysis의 최신 변경사항으로 리포지토리의 기본 브랜치에 대한 풀 리퀘스트를 엽니다.

이 Action을 구성하려면:

  1. 다음 권한으로 GitHub 토큰을 생성합니다:

    • 관리 - 읽기

    • 콘텐츠 - 읽기 및 쓰기

    • 메타데이터 - 읽기

    • 풀 리퀘스트 - 읽기 및 쓰기

    • 워크플로 - 읽기 및 쓰기

  2. 포크한 리포지토리에서 이름이 PANTHER_SYNC_UPSTREAM 인 새 시크릿을 추가하고 이전 단계에서 생성한 토큰을 값으로 설정합니다.

circle-exclamation
  1. 포크를 업스트림 리포지토리와 처음으로 동기화하여 Action을 트리거하려면, GitHub의 리포지토리에서 클릭하십시오. Actions > Sync Panther Analysis from Upstream.

  2. 클릭 Run Workflow > Run workflow.

    • Action이 완료되면 워크플로 실행 옆에 녹색 원이 표시됩니다. 변경 사항이 있으면 GitHub Actions가 작성한 새 오픈 풀 리퀘스트가 표시됩니다. 변경 사항이 없으면 “로컬 리포지토리가 이미 최신 릴리스와 동기화되어 있습니다.”와 유사한 메시지가 표시됩니다.

    • 설정은 Sync Panther Analysis from Upstream Action은 매주 화요일 15:00Z에 크론 스케줄로 실행되도록 구성되어 있습니다. 이 일정을 .github/workflows/sync-from-upstream.yml.

  3. 의 6행에서 수정할 수 있습니다.

풀 리퀘스트를 일반적인 풀 리퀘스트처럼 기본 브랜치에 병합하십시오.

리포지토리는 병합을 최신 변경으로 반영하며, 비공개 리포지토리와 panther-analysis의 git 히스토리를 모두 확인할 수 있습니다. 병합 충돌이 발생하거나 "모든 작업이 실패했습니다(all jobs have failed)"라는 오류가 표시되면, 다음 문제 해결 문서를 참조하십시오:arrow-up-right

GitHub Action sync-panther-analysis-from-upstream을 사용할 때 병합 충돌 및 실패한 동기화를 어떻게 해결합니까?

다음 단계 CircleCI리포지토리를 복제한 후 Panther 탐지를 CI/CD 워크플로에 통합할 수 있습니다—문서를 참조하세요:.

리포지토리를 복제한 후 Panther 탐지를 CI/CD 워크플로에 통합할 수 있습니다—문서를 참조하세요:

GitHub Actions

참조 탐지 콘텐츠 관리를 위한 GitHub Actions 를 참조하세요.

고객 기여 콘텐츠

기여를 통해 panther-analysis에 콘텐츠를 다시 제공하는 것을 권장하지만, 업스트림에 대한 풀 리퀘스트는 공개 리포지토리에서만 가능합니다. 비공개 리포지토리를 사용하고 콘텐츠를 기여하려면 Panther 지원팀에 문의하십시오.

Last updated

Was this helpful?