병합 충돌을 피하기 위해 파생 탐지 사용하기

병합 충돌을 일으킬 수 있는 워크플로우를 탐지 파생으로 재구성한 사례

배경

사용해야 하는 가장 설득력 있는 이유 중 하나는 파생 탐지( Derived Detections )만약 여러분이 Panther 탐지 콘텐츠를 CLI 워크플로arrow-up-right를 사용해 팀 차원에서 관리하고 있다면, 외부 팀이 동일한 탐지를 업데이트할 때 발생할 수 있는 병합 충돌 문제를 피하면서도 반드시 여러분 팀만 관리·업데이트하지 않는 탐지를 사용하고 커스터마이즈할 수 있다는 점입니다.

이 시나리오는 Panther의 위협 리서치 팀이 panther-analysis 저장소(repository)arrow-up-right를 통해 제작·배포하는 탐지를 사용할 때 발생할 수 있으며, 이는 Panther 관리 탐지의 포크를 유지하려고 할 때 병합 충돌이 발생할 수 있습니다. panther-analysis 여러분이 Panther가 관리하는 탐지를 커스터마이즈한

포크를 유지하려고 하면서 업스트림 저장소와 동기화하여 Panther의 콘텐츠 변경사항을 계속 따라가려 할 때 병합 충돌이 발생할 수 있습니다.

이 경우 파생(derivation)은 유용합니다. 파생을 사용하면 Panther가 수정하는 파일과 완전히 분리된 파일을 편집하여 Panther가 관리하는 탐지를 커스터마이즈할 수 있으므로, 이후 Panther로부터 콘텐츠 업데이트를 받을 때 병합 충돌을 발생시키지 않습니다.

파생이 유용한 시나리오 살펴보기

아래 시나리오에서는 사용자가 Panther가 관리하는 탐지를 수정하려고 합니다. 파생을 사용하지 않았을 때와 사용했을 때 어떻게 업데이트되는지 확인하세요.

시나리오 예를 들어 여러분이 AWS.Console.LoginWithoutMFA Panther가 관리하는 탐지(다음의arrow-up-rightPython 파일은 여기arrow-up-rightYAML 파일은 여기 )를 사용하려고 하는데, 여러분은 또한

  • 다음과 같은 수정을 하고 싶습니다:

    • 로그인되는 계정이 개발(dev) 계정이면 경고하지 않기를 원합니다

  • 이에 따라 테스트들도 이 논리를 반영하도록 변경하기를 원합니다 낮음 로그인되는 계정이 내부의 비개발(internal, non-dev) 계정인 경우 심각도(severity)를 높음 나머지 경우에는

  • 런북(runbook)을 변경하기를 원합니다

파생 없이 이러한 수정을 수행하는 방법

파생을 사용하지 않는 경우, CLI 워크플로에서 다음과 같은 변경을 합니다:

  • 다음 방식으로 aws_console_login_without_mfa.py 파일을 수정합니다:

    • 다음과 유사한 논리를 포함하도록 rule() 함수를 변경합니다:

    • 다음과 유사한 severity() 함수를 추가합니다:

  • 다음 방식으로 aws_console_login_without_mfa.yml 파일을 수정합니다:

    • 섹션을 대체하여 개발 계정 ID를 포함하는 로그와 포함하지 않는 로그에 대한 테스트를 포함한 새로운 테스트 시리즈로 바꿉니다 값을 구성하는 방법에 대해 자세히 알아보려면 상관 규칙 참조의 해당 항목을 확인하세요. 로그가 개발 계정 ID를 포함하는 경우와 포함하지 않는 경우에 대한 테스트를 포함합니다

    • 값을 업데이트하여 런북 여러분의 사용자 정의 런북 링크로 바꿉니다

이러한 변경을 하면 규칙이 조직의 요구에 맞게 커스터마이즈됩니다. 그러나 이 시점부터 Panther가 두 파일 중 어느 하나라도 변경하면 업데이트를 가져올 때 병합 충돌이 발생할 가능성이 큽니다.

아래에서 동일한 모든 커스터마이즈를 수행하면서 병합 충돌을 피하기 위해 파생을 사용하는 방법을 확인하세요.

파생을 사용하여 이러한 수정을 수행하는 방법

파생 워크플로에서는 기본 탐지(Base Detection)를 기본적으로 모든 측면에서 상속하는 파생 탐지(Derived Detection)를 생성하는 것으로 시작합니다:

그런 다음 오버라이드를 추가하기 시작합니다. 먼저 다음과 같이 시작합니다. 런북:

추가(Add) InlineFilters 를 사용해 로그인되는 AWS 계정이 개발 계정이면 규칙이 실행되지 않도록 표시합니다:

추가(Add) DynamicSeverities 를 사용해 계정이 스테이징(staging) 계정인 경우 심각도를 조정합니다:

마지막으로, 여러분이 추가한 탐지와 필터를 테스트할 수 있는 자체 값을 구성하는 방법에 대해 자세히 알아보려면 상관 규칙 참조의 해당 항목을 확인하세요. 테스트 세트를 추가합니다. 아래는 앞서 언급한 모든 오버라이드를 추가한 후의 완전한 파생 탐지입니다:

이제 파생 탐지에 모든 오버라이드를 추가했으므로 이를 Panther에 업로드하고 다른 탐지와 동일하게 사용할 수 있습니다.

Panther가 기본 탐지(Base Detection)를 업데이트할 때—즉 Panther가 두 aws_console_login_without_mfa.py 또는 aws_console_login_without_mfa.yml 파일 중 어느 하나를 수정할 때—여러분은 파생 탐지를 수동으로 업데이트할 필요 없이 변경사항을 상속받게 됩니다(단, 이러한 변경이 파생 탐지에서 오버라이드로 추가한 필드들에 대한 것이 아닌 경우에 한함). 가장 중요한 점은 병합 충돌이 발생하지 않는다는 것입니다.

Last updated

Was this helpful?