병합 충돌을 피하기 위해 파생 디택션 사용하기

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

배경

사용해야 하는 가장 설득력 있는 이유 중 하나는 파생 디텍션만약 귀하가 CLI 워크플로우를 사용하여 Panther 디텍션 콘텐츠를 관리하는 팀이라면, 외부 팀이 동일한 디텍션을 업데이트할 때 발생할 수 있는 병합 충돌의 문제를 피하면서도 귀사 팀만이 관리·업데이트하지 않는 디텍션을 사용하고 맞춤화할 수 있다는 점입니다.

이 시나리오는 Panther의 위협 연구 팀이 via를 통해 생성·배포한 디텍션을 사용할 때 나타날 수 있습니다 panther-analysis 리포지토리arrow-up-right으로 알려진 Panther 관리 디텍션입니다. 병합 충돌은 다음을 포크하여 유지하려고 할 때 발생할 수 있습니다 panther-analysis 귀하가 Panther 관리 디텍션을 맞춤화했지만 포크를 업스트림 리포지토리와 동기화하여 Panther의 콘텐츠 변경 사항을 계속 유지하려는 경우에 발생할 수 있습니다.

이 경우, 파생(derivation)은 유용합니다. 파생을 사용하면 Panther가 수정하는 파일과 완전히 별개의 파일을 편집하여 Panther 관리 디텍션을 맞춤화할 수 있으므로, 이후 Panther로부터 콘텐츠 업데이트를 받아도 병합 충돌을 일으키지 않습니다.

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

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

시나리오

다음의 AWS.Console.LoginWithoutMFA Panther 관리 디텍션을 사용하고 싶다고 가정해 보겠습니다(다음 참조: 여기의 Python 파일arrow-up-right여기의 YAML 파일arrow-up-right), 하지만 귀하는 또한 다음과 같은 수정사항을 적용하고 싶습니다:

  • 로그인되는 계정이 개발 계정(dev account)인 경우에는 알러트하지 않기를 원합니다

    • 이에 따라 테스트도 이 논리를 반영하도록 변경하고 싶습니다

  • 심각도(severity)를 낮음 로그인되는 계정이 내부의 비개발 계정(internal, non-dev account)인 경우에는 높음 그렇지 않으면

  • 런북(runbook)을 변경하고 싶습니다

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

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

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

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

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

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

    • 섹션을 교체하여 개발 계정 ID를 포함하는 로그와 포함하지 않는 로그에 대한 테스트를 포함한 새로운 테스트 시리즈로 바꿉니다 Tests (위치가 t50과 연속되는 항목임)

    • 값을 업데이트합니다 Runbook 사용자 정의 런북 링크로

이러한 변경을 한 후 룰은 조직의 요구에 맞게 맞춤화됩니다. 하지만 이 시점부터 Panther가 어느 한 파일을 변경하면, 업데이트를 풀할 때 병합 충돌이 발생할 가능성이 큽니다.

아래에서 동일한 모든 맞춤화를 하면서도 병합 충돌을 피하기 위해 파생을 사용하는 방법을 확인하세요.

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

파생 워크플로우에서는, 기본 디텍션의 모든 측면을 기본값으로 상속하는 파생 디텍션(Derived Detection)을 생성하는 것으로 시작합니다:

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

다음을 추가합니다 InlineFilters 로그인되는 AWS 계정이 개발 계정인 경우 룰이 실행되지 않도록 표시하려면:

다음을 추가합니다 DynamicSeverities 계정이 스테이징 계정인 경우 심각도를 조정하려면:

마지막으로, 추가한 디텍션과 필터를 테스트할 수 있도록 자체 Tests 세트를 추가합니다. 아래는 앞서 언급한 모든 오버라이드를 추가한 후의 완전한 파생 디텍션입니다:

이제 파생 디텍션에 모든 오버라이드를 추가했으므로, 이를 Panther에 업로드하여 다른 디텍션과 동일하게 사용할 수 있습니다.

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

마지막 업데이트

도움이 되었나요?