# panther-analysis 사용하기

## 개요

[panther-analysis](https://github.com/panther-labs/panther-analysis) Panther가 관리하는 디텍션, 저장된 검색(Saved Searches), 글로벌 헬퍼, 룩업 테이블(Lookup Tables) 등 다양한 보안 콘텐츠를 포함하는 공개 오픈 소스 리포지토리입니다.&#x20;

명령줄에서 Panther 디텍션 리포지토리와 상호작용하려면 [Panther 분석 도구(PAT)](https://docs.panther.com/ko/panther/detections-repo/pat)를 사용하세요. 자체 커스텀 디텍션 콘텐츠를 추가하고, Panther의 위협 인텔리전스 팀이 새 버전을 출시할 때 업데이트를 받을 수 있습니다.

Panther 디텍션에 대한 일반 정보 및 모범 사례와 Panther 콘솔에서 디텍션을 관리하는 방법에 대해서는 [디텍션 문서](https://docs.panther.com/ko/detections).

panther-analysis의 사본을 확보한 후에는 [CI/CD 워크플로](https://docs.panther.com/ko/panther/detections-repo/ci-cd) 및 [GitHub 동기화 설정](https://docs.panther.com/ko/system-configuration#github-sync).

## 권장 워크플로

Panther Analysis Tool(PAT) v1.4.0부터 Panther 콘텐츠를 사용하여 버전을 지능적으로 추적하고 자동 병합을 제공하며 콘텐츠를 최신 상태로 유지할 수 있습니다.

* 귀하의 커스터마이제이션이 기반한 Panther 디텍션의 버전을 추적합니다 (`BaseVersion` 필드)
* 자동으로 최신 Panther 콘텐츠를 가져옵니다
* 업데이트를 지능적으로 병합하고 준비가 되었을 때 충돌을 처리할 수 있게 합니다
* 충돌에 대해 대화형 병합 프로세스를 제공합니다
* 관심 있는 콘텐츠만 필요로 합니다&#x20;

## 가상 환경 및 패키지 관리자

panther-analysis와 상호작용하거나 PAT를 사용할 때는 Python 종속성 관리가 복잡해질 수 있으므로 가상 환경과 패키지 관리자를 사용하는 것이 권장됩니다.

[uv](https://docs.astral.sh/uv/) 는 속도와 안정성 때문에 권장되지만, [poetry](https://python-poetry.org/), [pipenv](https://pipenv.pypa.io/en/latest/), 및 [venv](https://docs.python.org/3/library/venv.html) 도 작동합니다.&#x20;

## panther-analysis 릴리스 최신 상태 유지

새 콘텐츠가 출시되면, `pat explore` 또는 `pat clone` 를 실행하면 최신 콘텐츠를 사용할 수 있습니다. `pat pull` 를 실행하면 콘텐츠를 업데이트할 수 있습니다. 또한 `pat clone --filter LogTypes=Okta.SystemLog --filter Severity=High` 를 GitHub Action 또는 다른 스케줄러 내에서 실행하여 제공된 기준과 일치하는 새 콘텐츠를 지속적으로 가져오도록 선택할 수 있습니다.

## 실험적 디텍션

Panther는 일반적으로 새 디텍션을 "실험적" 단계로 릴리스하는데, 이는 해당 디텍션이 아직 개선 중이며 프로덕션 환경에 적합하지 않을 수 있음을 의미합니다.&#x20;

실험 단계의 디텍션:

* 다음을 갖게 됩니다 `상태: 실험적`
* 알러트를 생성하지 않습니다
* Panther 콘솔에 표시되지 않습니다(하지만 [`panther-analysis`](https://github.com/panther-labs/panther-analysis) 리포지토리)에서는 볼 수 있습니다
* 예상 알러트 볼륨을 검증하기 위해 집계된 성능 지표(로그 데이터는 아님)를 수집합니다

실험적 디텍션을 사용할 수는 있지만, 아직 조정 중이므로 평균보다 높은 알러트 볼륨을 초래할 수 있습니다. 공식적으로 릴리스되기 전에 실험적 디텍션을 사용하려면 `Status` 필드의 `Experimental` 값을 제거하고 룰을 업로드하세요.

실험 단계의 기간은 디텍션마다 다르지만 일반적으로 몇 주 동안 지속됩니다. 디텍션이 실험 단계를 벗어나면 해당 `Status` 값은 `Experimental` 으로 `Stable`로 변경됩니다. Stable로 승격된 후에도 디텍션은 여전히 업데이트될 수 있지만 빈도는 줄어듭니다.

## 더 이상 사용되지 않는 Panther 관리 디텍션 제거

Panther는 가끔 더 이상 사용되지 않는 [Panther가 관리하는](https://docs.panther.com/ko/detections/panther-managed) 디텍션 콘텐츠를 사용 중단(deprecate)하고 삭제합니다. 이는 새로운 버전의 panther-analysis에 해당 디텍션(또는 저장/예약된 검색)이 더 이상 포함되지 않음을 의미합니다. 이런 일이 발생하면 제거된 콘텐츠 사용을 중단하려면 Panther 인스턴스에서 수동으로 삭제해야 합니다—리포지토리에서 콘텐츠를 단순히 제거하는 것만으로는 충분하지 않습니다. 업로드 시 [Panther 분석 도구(PAT)](https://docs.panther.com/ko/panther/detections-repo/pat) 는 콘텐츠를 삭제하지 않습니다.

더 이상 사용되지 않는 콘텐츠를 식별하고 제거하는 데 도움을 주기 위해 Panther는 [Makefile 명령](https://github.com/panther-labs/panther-analysis/blob/main/Makefile), `make remove-deprecated`를 제공하며, 이는 Panther 인스턴스에서 더 이상 사용되지 않는 디텍션 콘텐츠를 제거합니다.

이 명령은 리포지토리의 콘텐츠를 [`deprecated.txt`](https://github.com/panther-labs/panther-analysis/blob/main/deprecated.txt)와 비교하여 작동합니다. deprecated.txt는 panther-analysis에 포함된 삭제된 항목의 ID를 담은 파일입니다. 인스턴스에서 더 이상 사용되지 않는 디텍션을 정리하려면 적어도 한 달에 한 번 `make remove-deprecated` 를 실행하는 것이 권장됩니다.

다음에 유의하세요: `make remove-deprecated` 는 API 호스트와 토큰이 환경 변수로 설정되어 있어야 합니다. 자세한 내용은 [환경 변수로 PAT 구성](https://docs.panther.com/ko/panther/pat/install-configure-and-authenticate-with-pat#environment-variables) 을 참조하세요.
