Panther 시스템 아키텍처
Panther 시스템 아키텍처의 다이어그램과 설명
Panther 시스템 개요

위의 다이어그램은 대체로 왼쪽에서 오른쪽으로 흐르며, 다음 단계로 읽을 수 있습니다:
원시 로그 데이터는 SaaS 풀러(예: Okta) 및 데이터 전송 소스(예: AWS S3)를 포함한 다양한 로그 소스에서 Panther로 유입됩니다. 이러한 원시 로그는 Log Processing 서브시스템에서 구문 분석, 필터링 및 정규화됩니다.
의 출력은 Log Processing 두 개의 서브시스템으로 흘러갑니다: Data Lake 및 Detection.
가 활성화되어 있으면, Cloud Security Scanning 이 온보딩된 클라우드 인프라를 스캔한 다음 찾은 리소스를 Detection 서브시스템에서 구문 분석, 필터링 및 정규화됩니다.
The Enrichment 서브시스템은 선택적으로 Detection 서브시스템으로 들어가는 데이터에 추가 컨텍스트를 더할 수 있으며, 이는 디텍션 효율을 높이는 데 사용될 수 있습니다(예: IPinfo, Okta Profiles).
The Detection 서브시스템은 다음 입력에 디텍션을 적용합니다:
From Log Processing: 로그 이벤트
From Scheduled Searches: 로그 이벤트
From Cloud Security Scanning: 인프라 리소스
The AI 서브시스템은 알러트 트리아지에 사용되며, 알러트가 생성될 때 자동으로 트리거되도록 구성할 수 있습니다. AI 서비스는 API 및 다양한 콘솔 UI 진입 지점.
다이어그램 하단에서 Control Plane은 위의 서브시스템들(데이터 플레인)을 구성하고 제어하는 교차 절단 인프라를 나타냅니다. 이는 아래 각 서브시스템 설명에서 더 자세히 다룹니다. API Server 는 오른쪽 상단에 표시된 Control Plane의 외부 진입 지점입니다.
일반 고려 사항
AWS
각 Panther 고객은 전용 AWS 계정에 배포된 Panther 인스턴스를 보유합니다.
고객은 AWS 계정을 직접 소유하거나 Panther가 계정을 관리하도록 선택할 수 있습니다.
고객 간에 데이터는 공유되거나 접근되지 않습니다.
AWS 계정이 애플리케이션의 권한 경계를 형성합니다.
네트워킹이 필요한 서비스에는 단일 VPC가 사용됩니다.
처리는 AWS Lambda 및 Fargate 인스턴스를 통해 이루어집니다.
독점 Control Plane이 비용을 최소화하기 위해 최적의 컴퓨트를 동적으로 선택합니다(아래 참조).
컴퓨트 리소스는 서로 직접 통신하지 않고, AWS 서비스를 통해 통신합니다. 다시 말해, "east/west" 네트워크 트래픽은 없고 "north/south" 네트워크 트래픽만 있습니다
The 최소 권한의 원칙 은 각 인프라 구성 요소에 대해 최소 범위의 IAM 역할을 사용함으로써 준수됩니다.
Datalake
각 Panther 고객은 Snowflake 또는 Databricks 인스턴스 중 하나를 보유합니다.
Snowflake
전용 Snowflake 계정에 배포된 Panther Snowflake 인스턴스입니다.
고객은 Snowflake 계정을 직접 소유하거나 Panther가 계정을 관리하도록 선택할 수 있습니다.
고객 간에 데이터는 공유되거나 접근되지 않습니다.
Snowflake 시크릿은 RSA 키를 사용하여 AWS Secret Manager에서 관리되며 매일 회전됩니다.
Databricks
고객은 자체 Databricks 인스턴스를 보유해야 합니다.
고객 간에 데이터는 공유되거나 접근되지 않습니다.
기타
모든 데이터는 전송 중 및 저장 시 암호화됩니다.
모든 외부 상호작용은 API:
를 사용하여 수행됩니다. Panther Console은 API 서버와 연동하는 React 애플리케이션입니다.
모든 API 작업은 Panther Audit Logs로 기록되며, 이후 Panther에서 로그 소스로 수집될 수 있습니다.
외부 통합과 관련된 시크릿은 Amazon DynamoDB 에서 KMS 암호화 필드를 사용해 관리됩니다.
시스템은 부하에 따라 확장 및 축소됩니다.
Panther 인프라는 Pulumi.
로 관리됩니다. 모든 인프라는 태그(예: 리소스 이름, 서브시스템)가 지정되어 효과적인 청구 분석이 가능합니다.
AWS 계정을 소유한 고객은 자체 태그를 추가하여 더 큰 조직의 청구 보고에 통합할 수 있습니다.
모니터링은 다음의 조합을 사용해 수행됩니다. CloudWatch, Sentry및 Datadog.
API 서브시스템

The Panther API 는 Panther와의 모든 외부 상호작용을 위한 진입 지점입니다. Console, GraphQL및 REST 클라이언트는 AWS ALB를 통해 연결됩니다. 고객은 IP CIDR을 사용하여 ALB 접근 허용 목록을 선택적으로 구성할 수 있습니다.
API 인증은 AWS Cognito를 사용해 수행됩니다. GraphQL 및 REST 클라이언트는 토큰을 사용하는 반면, Panther Console은 AWS Cognito가 관리하는 JWT 를 사용합니다. Console은 Single Sign-On (SSO) 를 AWS Cognito를 통해 지원합니다.
요청을 처리하는 내부 API 서버가 있습니다. 일부 요청은 API 서버 내에서 완전히 처리되지만, 다른 요청은 AWS Lambda 함수로 구현된 하나 이상의 내부 서비스 호출을 필요로 합니다.
Log Processing 서브시스템

이 서브시스템에 입력되는 모든 데이터는 AWS S3 및 S3 알림을 통해 전달됩니다. S3 기반이 아닌 상위 소스(예: SaaS 풀러, HTTP Source, Google Cloud Storage Source)는 이벤트를 S3 객체로 집계하기 위해 Amazon Data Firehose 를 사용합니다. 이러한 알림은 마스터 Amazon SNS 토픽을 통해 라우팅됩니다. Log Processing 및 Event Sampling 워크플로는 각각 이 SNS 토픽을 구독합니다.
Log Processing 연산은 AWS Lambda 및 Fargate로 구현됩니다.
동적 컴퓨트 비용 최적화
Panther는 컴퓨트 선택, 집계 및 스케일링을 조정하는 효율적인 독점 Control Plane을 사용합니다.
트래픽이 증가하면 추가 컴퓨트가 필요합니다. Panther의 Control Plane은 트래픽에 맞게 확장되며, 이는 사용되는 컴퓨트 인스턴스 수를 최소화하여 데이터 집계를 극대화하고 비용을 최소화한다는 의미입니다.
Lambda는 낮은 지연 시간 덕분에 트래픽 변화를 빠르게 따라갈 수 있어 Panther의 핵심 컴퓨트로 사용되며, 이는 급증하는 가벼운 트래픽 부하에 비용 효율적입니다. 그러나 Lambda의 단위 시간당 비용은 다른 컴퓨트 옵션보다 높습니다. 지속적이고 예측 가능한 트래픽의 경우 Lambda는 다른 컴퓨트 옵션만큼 비용 효율적이지 않습니다. 그렇기 때문에 Control Plane이 높은 볼륨의 안정적인 트래픽을 감지하면, 비용을 최소화하기 위해 Lambda 대신 Fargate(Fargate Spot, 사용 가능한 경우)가 사용됩니다.
각 알림을 받으면 다음 단계가 수행됩니다:
S3 객체와 연결된 통합 소스를 DynamoDB에서 조회하고, 읽기를 위해 연결된 역할을 assume합니다.
데이터를 S3에서 읽습니다.
각 이벤트는 해당 스키마 에 따라 해당 데이터 타입으로 파싱됩니다.
분류 또는 파싱 오류가 발생하면 System Errors 가 생성되고 관련된 "잘못된" 데이터는 Data Lake의
classification_failures테이블에 저장됩니다.
Ingestion filters 및 변환 이 적용됩니다.
Indicator fields (
p_any필드) 가 추출되고, 표준 필드 가 삽입됩니다.
선택적으로 event threshold alarm 을 각 온보딩된 로그 소스에 대해 구성하여 트래픽이 예기치 않게 중단되면 알림을 받을 수 있습니다.
S3 알림은 Event Sampling 서브시스템으로도 라우팅되며, 이는 로그 스키마 필드 탐색에 사용됩니다. 데이터에서 새로운 속성이 발견되면, 이를 분석하여 스키마(및 관련 Data Lake 테이블)에 자동으로 추가합니다.
Enrichment 서브시스템

Enrichment in Panther는 Lookup Tables(LUT)를 통해 구현됩니다. LUT는 고유한 기본 키와 연관된 데이터를 담는 테이블입니다. LUT에는 스키마에서 기본 키로의 매핑도 있어 Detection 서브시스템에서 자동 보강이 가능합니다. 디텍션은 함수 호출 인터페이스를 사용해 데이터를 조회할 수도 있습니다.
IPinfo, 예를 들어, 는 지리 위치 데이터를 포함하는 Panther 관리 보강 제공자입니다. 로그 이벤트의 IP 주소는 위치, ASN 및 개인정보 정보로 자동 보강됩니다. 고객은 또한 자체 사용자 정의 LUT 를 생성하여 비즈니스 및 보안 관심사와 관련된 컨텍스트를 가져올 수 있습니다.
LUT는 Panther Console 또는 CLI 워크플로(YAML 사양 파일 사용)를 통해 생성됩니다. LUT의 데이터는 여러 방식으로 Panther에서 접근 가능하게 만들 수 있습니다: Console에 업로드, CLI 설정의 파일로 포함, 또는 S3 객체로 저장. 일반적으로 LUT 데이터를 관리하는 가장 유용한 방법은 S3 객체 참조로 관리하는 것입니다. 즉, 자체 계정에 S3 객체를 만들 수 있으며 Panther가 변경 사항을 폴링합니다.
LUT와 관련된 메타데이터는 DynamoDB에 저장됩니다. 새 데이터가 있으면 Lookup Table Processor가 메타데이터에서 지정된 역할을 assume하고 S3 데이터를 처리합니다. 이로 인해 두 가지 출력이 생성됩니다: Detection 서브시스템에서 사용되는 EFS의 실시간 데이터베이스와 Data Lake. Data Lake의 테이블은 Scheduled Searches 이 조인을 사용해 이벤트를 보강하는 데 사용할 수 있습니다.
Detection 서브시스템

스트리밍 디텍션 프로세서는 Python 기반 디텍션이 Log Processing 및 Scheduled Searches의 로그 이벤트와 Cloud Security Scanning의 리소스에서 실행되도록 합니다. 스트리밍 디텍션 프로세서는 Python의 고속 실행에 최적화된 AWS Lambda 함수(또는 Fargate 인스턴스)로 실행됩니다. (다만 이 프로세서는 단순한 Python Lambda는 아닙니다. Panther 인프라의 초기 버전에서는 그랬지만, 수년간의 경험을 통해 우리는 순진한 Python Lambda 구현이 효율적이지도 비용 효율적이지도 않다는 것을 배웠습니다.)
스트리밍 디텍션 프로세서는 다음 유형의 디텍션을 평가합니다:
Streaming detections (룰): 하나 이상의 로그 스키마를 대상으로 함(또는
LogTypes)Scheduled detections (예약 룰): 하나 이상의 출력 대상 Scheduled Searches
Policy detections: 리소스를 대상으로 함
이러한 소스의 데이터 처리는 다음 단계로 진행됩니다:
활성화된 각 Lookup Table에 대해 일치 항목이
p_enrichment필드에 적용되어 해당 정보가 디텍션에 사용 가능해집니다.주어진
LogType, 클라우드 리소스 또는 Scheduled Search와 연결된 모든 디텍션이 찾아집니다.
만약 Scheduled Search 가 실행을 완료하면, 스트리밍 디텍션 프로세서 Lambda가 쿼리 결과에 대한 참조와 함께 호출됩니다. 결과를 읽고, 각 이벤트는 위의 단계에 따라 처리됩니다.
Data Replay 는 과거 데이터에서 디텍션을 테스트할 수 있게 합니다. 이는 실시간 인프라와 독립적인 "미러" 인프라 세트를 통해 구현됩니다.
Data Lake 서브시스템

Panther 고객은 Snowflake 또는 Databricks 을 보안 데이터레이크로 사용할 수 있습니다.
Snowflake
Panther는 Snowflake Snowpipe 서비스 를 사용해 Snowflake로 데이터를 수집합니다. 이 서비스는 AWS IAM 권한을 사용하므로 쿼리 및 관리를 위해 구성된 Snowflake 사용자에 의존하지 않습니다. Panther에서 새 데이터 소스를 온보딩하면 Admin database API Lambda를 사용해 관련 테이블과 Snowpipe 인프라가 생성됩니다. 이 Lambda에는 Panther 데이터베이스 및 스키마에 대한 읽기/쓰기 권한을 가진 관련 사용자가 있습니다. 이 Lambda를 호출하기 위한 직접적인 외부 연결은 없으며, 대신 내부 Control Plane이 이 Lambda를 구동합니다.
테이블은 p_event_time 을 클러스터 키로 사용합니다.
Snowflake 시크릿은 AWS Secrets Manger. 에 저장되며, RSA 시크릿이 사용되고 매일 회전됩니다.
Databricks
Panther에는 로드할 파일에 대한 S3 알림을 내부 SNS 토픽에서 듣는 로더 프로세스가 있습니다. 로더 프로세스는 모든 테이블을 관리하며 COPY INTO 명령을 사용해 S3 파일을 대량 로드합니다.
테이블은 liquid clustering 을 p_event_time 컬럼에 적용합니다.
Databricks OAuth 자격 증명은 AWS Secrets Manger 고객의 Databricks AWS 계정에 저장됩니다.
Queries
쿼리는 read only database API Lambda를 사용해 실행됩니다. 이 Lambda에는 read only 권한을 가진 관련 사용자가 있습니다.
쿼리는 비동기식입니다. API 요청으로 쿼리를 실행하면 관련 SQL이 Datalake에서 실행되어 queryId를 반환합니다. 그런 다음 API 호출은 queryId 를 사용해 상태를 확인하고 관련 결과를 읽습니다. 쿼리 실행 상태는 DynamoDB에서 추적됩니다.
쿼리 결과는 30일 동안 EFS에 저장됩니다(이 기간은 구성 가능). 고객은 Panther의 Search History 를 사용해 과거 검색 결과를 볼 수 있습니다.
Scheduled Searches used by Detection 는 AWS Step Function을 통해 실행됩니다. 쿼리 실행이 완료되면, 이후 처리를 위해 쿼리 결과에 대한 참조와 함께 스트리밍 디텍션 프로세서가 호출됩니다.
When RBAC per logtype (현재는 Snowflake에서만 지원됨)이 활성화되면, 역할별로 고유한 관리형 읽기 전용 사용자가 생성됩니다.
Alerting 서브시스템

The Detection 서브시스템은 알러트를 DynamoDB 테이블에 삽입하며, 알러트 디스패치 Lambda가 스트림에서 이를 수신합니다. 이 Lambda는 구성된 통합 을 사용해 알러트를 대상에 전송합니다.
Panther Console에 알러트를 표시하기 위해 핵심 알러트 데이터는 DynamoDB에서 가져오고, 알러트와 연관된 이벤트는 Data Lake에서 가져옵니다.
The alert limiter 기능 은(는) 잘못 구성된 디텍션으로 인해 발생할 수 있는 "알러트 폭주"가 대상 시스템을 과부하시키는 것을 방지하기 위한 것입니다. 동일한 디텍션에서 한 시간에 1000개가 넘는 알러트가 생성되면 알러트는 억제됩니다. (이 한도는 구성 가능합니다.) 한도에 도달하더라도 디텍션은 계속 실행되고 이벤트를 Data Lake에 저장하므로(데이터 손실은 없음), 알러트는 생성되지 않습니다. 이 경우 System Error 가 생성되어 고객에게 알리고, 고객은 Console에서 수동으로 알러트 억제를 제거할 수 있습니다(아마도 디텍션 조정 후).
Jira와 Slack에는 알러트 상태를 동기화하기 위해 Panther로 "콜백"하는 특별한 인증 엔드포인트가 있습니다(예: 알러트 상태를 Resolved).
AI 서브시스템

The Panther AI 서브시스템은 구조적으로 복잡하지 않습니다. 다음으로 구성됩니다:
서버: 요청을 수신하고 응답 및 지속 저장을 조정
진입 지점과 컨텍스트에 따라 시스템 프롬프트를 동적으로 생성
할당량 및 권한을 강제
와 연동 Amazon Bedrock API
를 조정 도구 사용(이것은 내부 Panther API를 호출하는 것으로 구성됨)
에 응답을 저장하도록 관리 Amazon DynamoDB
Amazon Bedrock: 서버는 모든 AI 추론을 위해 Bedrock과 통신합니다
Amazon DynamoDB: AI 응답의 지속 저장에 사용됩니다
응답은 명시적으로 저장
Panther AI 워크플로
Panther AI 는 인간 Panther 사용자가 사용할 수 있는 많은 서비스를 도구. Panther AI는 필요에 따라 도구를 사용하므로(즉, 컨텍스트와 작업에 따라), 워크플로는 종종 가변적입니다. 아래에는 일반적인 알러트 트리아지 워크플로가 예시로 표시되어 있습니다.

FAQ: Panther AI 아키텍처 및 보안
Panther는 AI 학습에 고객 데이터를 사용합니까?
아니요, Panther는 AI 학습에 고객 데이터를 사용하지 않습니다. Panther AI는 Amazon Bedrock 기반 모델.
Panther AI는 어떤 기반 모델을 사용합니까?
Panther AI는 Anthropic Claude 모델을 사용합니다.
AI 응답은 어떻게 저장되고 보호됩니까?
AI 응답은 Amazon DynamoDB에 Panther 고객 계정 내에 저장됩니다. 응답은 명시적으로 저장.
모든 AI 추론은 호출한 사용자의 신원과 권한으로 실행됩니다. 이는 Panther AI가 사용자가 Console이나 API를 통해 수행할 수 없는 데이터에 접근하거나, 리소스를 수정하거나, 작업을 수행할 수 없음을 의미합니다.
Panther AI는 로그 타입 접근 제한이 현재 사용자의 역할에 설정되어 있는 경우 이를 강제합니다. 이는 다음을 의미합니다:
알러트에 대한 응답은 알러트에 대한 사용자의 권한에 따라 접근이 제한됩니다.
Search 결과에 대한 응답은 데이터 레이크에 대한 사용자의 권한에 따라 접근이 제한됩니다.
AI 대화의 기본 가시성은 진입 지점에 따라 다릅니다. Panther AI 페이지에서 시작한 대화는 기본적으로 비공개이며(개인정보 보호 컨트롤이 활성화된 경우), 알러트 트리아지 및 기타 진입 지점은 기본적으로 공유로 설정됩니다. 사용자는 언제든지 어떤 대화든 공유와 비공개 사이를 전환할 수 있습니다. View AI Private Responses 권한이 있는 다른 사용자는 비공개 대화를 계속 볼 수 있습니다.
Panther AI에 가드레일이 있습니까?
Panther AI에는 다음과 같은 비용 안전 제어 할당량이 있습니다(요청 시 변경될 수 있음):
시간당 추론 수(기본값은 100)
시간당 실행되는 데이터 레이크 쿼리 수(기본값은 100)
추가로, Cloud Connected 고객은 다음을 구현할 수 있습니다. Amazon Bedrock Guard Rails.
Panther는 또한 CloudTrail detections 를 제공하여 Amazon Bedrock을 모니터링합니다.
Panther에 모든 AI 추론과 도구 호출의 감사 로그가 있습니까?
예, 각 추론과 관련 도구 호출은 Panther Audit logs에 기록되며, 이는 데이터 레이크에서 사용할 수 있습니다. 메타데이터만 기록되며 민감한 데이터는 기록되지 않습니다.
Panther AI를 API 호출로 사용할 수 있습니까?
예, Cloud Connected 고객과 SaaS 고객 중 "pass-through billing"을 사용하는 경우 AI API 작업을 사용할 수 있습니다. API를 통해 호출되면 Panther AI는 요청 인증에 사용된 API 토큰의 권한으로 실행됩니다 — 도구 사용, 데이터 레이크 쿼리 및 기타 모든 작업은 토큰과 연결된 권한을 따릅니다.
마지막 업데이트
도움이 되었나요?

