변환

수집 시 데이터 구조 변형

개요

Transformations는 Panther로 인제스트될 때 데이터의 형태를 수정하기 위해 사용자 정의 로그 소스 스키마에서 사용할 수 있는 함수입니다. 그런 다음 데이터는 새 형식으로 저장됩니다.

Transformations는 저장된 데이터를 디텍션 및 쿼리 로직의 요구에 맞추는 데 도움을 주어 임시적인 데이터 조작의 필요를 없애고 디텍션 작성 및 검색을 가속화합니다.

다음 변환들이 사용 가능합니다:

circle-info

인제스트 시에 추가로 데이터를 조작하려면 필드 및 지표(Fields & Indicators).

변환 실행 순서

변환이 수행되는 특정한 순서가 있어 변환들이 예측 가능한 방식으로 차례대로 적용되도록 보장합니다. 실행 순서는 위의 개요에 있는 변환 목록에 제공된 순서.

정의된 순서를 따르며 데이터를 정확하게 변환하십시오. 시퀀스의 각 변환은 이전 변환이 남긴 상태의 데이터를 대상으로 작동합니다. 이 순서를 알면 일관성이 유지되고 예기치 않은 결과를 피할 수 있습니다.

변환 결합

개별 변환들은 더 복잡한 데이터 변환을 달성하기 위해 쌍이나 시퀀스로 결합될 수 있습니다. 이를 통해 특정 데이터 요구사항을 충족하고 효율적인 디텍션 생성 및 검색 작업을 용이하게 하는 더 큰 유연성과 맞춤화를 제공합니다.

예를 들어 개인 식별 번호(PIN)를 포함하는 필드가 있다고 가정해 봅시다. 보안상의 이유로 해당 필드의 이름을 덜 노출되는 것으로 변경하면서 PIN을 가리기 위해 마스크를 적용하려고 합니다.

이를 달성하려면 다음을 사용할 수 있습니다: rename 변환을 사용하여 필드의 이름을 추상적인 것으로 변경합니다. 예를 들어 필드 이름을 다음으로 변경할 수 있습니다: userId.

다음으로, mask 변환을 해당 userId 필드에 적용하여 PIN의 숫자를 미리 정의된 수의 별표로 교체합니다. 이렇게 하면 PIN이 숨겨져 데이터 프라이버시가 보장됩니다.

다음과 같이 renamemask 지시문을 모두 가진 필드 스키마를 정의할 수 있습니다:

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

rename

사용자를 사용할 것이며, rename 변환은 필드의 이름을 변경합니다. 이는 데이터 소스 간에 필드 이름을 표준화하거나 데이터 구조의 명확성을 개선하거나 잘못된 문자나 예약어를 포함한 필드 이름을 조정하려는 경우 유용할 수 있습니다.

다음과 같은 rename 지시문으로 필드 스키마를 정의하면:

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

copy

사용자를 사용할 것이며, copy 변환은 중첩된 필드의 값을 다른 최상위 필드로 복사합니다. 이는 데이터의 JSON 구조를 플랫하게 만들고자 할 때 유용합니다. 원한다면 새로 정의한 필드를 지표별로 보여줍니다..

다음과 같은 copy 지시문으로 필드 스키마를 정의하면:

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

concat

사용자를 사용할 것이며, concat "user": "someone"

변환은 여러 필드의 값을 새 필드의 값으로 연결(concatenate)할 수 있게 합니다. 생성된 결합 필드는 예를 들어 엔리치먼트의 키로 사용될 수 있습니다. 유형 정의되어 타임스탬프 값이

인 필드는 연결 연산에 사용할 수 없습니다. concat을 사용하려면, 문자열 결과를 저장할 concat필드를 선언하세요. 내에서경로들 과 선택적으로구분자 내에서를 정의하세요. 과 선택적으로 내에서는 결합하려는 기존 스키마 필드를 지정하기 위해 절대 경로를 사용해야 합니다. 이러한 필드의 순서는 연결 순서를 결정합니다. 만약"").

다음과 같은 concat 지시문으로 필드 스키마를 정의하면:

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

split

사용자를 사용할 것이며, split "socket": "192.168.0.1:443" indicators변환은 구분자를 기준으로 문자열 필드를 분할하여 특정 값을 추출할 수 있게 합니다. 분할된 결과 필드들은 개별 스키마 필드로 취급될 수 있어

로 지정할 수 있습니다. Split 변환은 또한 비정형 데이터 형식을 표준화된 필드로 정규화하는 데 도움을 주어 처리하기 쉽게 만듭니다. 문자열 타입이 인 필드만 다른 필드들로 분할될 수 있습니다(즉, split:from: type: string).

인 필드는 연결 연산에 사용할 수 없습니다. split의 값은 split 를 포함하도록 해야 합니다). 결과를 저장하려면 객체, 배열, JSON을 제외한 임의의 원시 타입 필드를 선언하세요.

  • 지시문 내에는 다음의 필수 필드를 포함하세요:from

  • 과 선택적으로: 분할할 필드의 절대 경로를 제공하세요.

  • : 분할할 문자를 제공하세요.index

다음과 같은 split 지시문으로 필드 스키마를 정의하면:

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

"port": 443 split 또한 배열 요소를 분할하기 위해

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

mask

사용자를 사용할 것이며, mask "port": 80

변환은 로그 내의 민감한 정보를 숨길 수 있게 해줍니다. 마스킹은 특정 데이터의 기밀성을 보호해야 할 때 유용합니다.

또는 여러분이 제공한 다른 문자열로 교체합니다. 이 기술을 사용하면 값은 참조 무결성을 잃습니다. 특정 필드를 마스킹하면 이후에 Panther의 검색 도구

를 사용해 원래 값을 쿼리할 수 없지만 해시된 값으로는 검색할 수 있다는 점을 유의하세요.

Obfuscation (해싱)

수신 데이터를 해싱하면 향후 사용 가능성을 유지하면서 보안을 강화할 수 있습니다. 해싱의 보호를 강화하기 위해 솔트를 포함할 수 있습니다. maskObfuscation을 사용하려면 스키마의 대상 필드에 mask을 포함하세요. 유형그리고 선택적으로 아래의.

유형 salt

  • sha256

  • 값이 유효한 IEEE 802 MAC-48, EUI-48, EUI-64 또는 20옥텟 IP over InfiniBand 링크 계층 주소이면 p_any_mac_addresses에 추가합니다.

  • sha1

  • 를 포함하세요.

의 값은 사용하려는 해싱 알고리즘입니다. 지원되는 값에는 다음이 포함됩니다: 아래의 sha512

가 반환하는 값의 수가 하나라면, 해당 단일 값만 반환됩니다. mask선택적 유형 key의 값은 여러분이 선택한 문자열입니다. 이 값은 해싱되기 전에 필드 값에 추가됩니다. 문자열대상 필드의 type: string 값은 항상

다음과 같은 mask 로 설정되어야 합니다. 실제 입력 데이터는 어떤 타입이든 될 수 있지만,

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

(해시라고도 함): 이 기술은 선택적 솔트 값을 사용해 데이터를 해싱합니다. 이 기술을 사용하면 값은 참조 무결성을 유지합니다.

"username": "john"

"username": "98b4ceb956e9ed4539b0721add25cab0bacce4307cf3140c4430c1513476a3e4" maskObfuscation을 사용하려면 스키마의 대상 필드에 mask을 포함하세요. type: redact그리고 선택적으로 에서.

수신 데이터를 편집(레다액션)한다는 것은 미리 정의된 값으로 교체하는 것을 의미합니다. 이 기술은 민감한 정보에 접근하거나 복구할 수 없도록 보장하고자 할 때 유용합니다. 에서 레다액션을 사용하려면 스키마의 대상 필드에 에서 를 포함하세요. : 이 기술은 민감한 값을선택적

가 반환하는 값의 수가 하나라면, 해당 단일 값만 반환됩니다. mask선택적 유형 key의 값은 여러분이 선택한 문자열입니다. 이 값은 해싱되기 전에 필드 값에 추가됩니다. 문자열대상 필드의 type: string 값은 항상

다음과 같은 mask 로 설정되어야 합니다. 실제 입력 데이터는 어떤 타입이든 될 수 있지만,

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

isEmbeddedJSON

이 사용됩니다.

to: "XXXX" # 선택사항, 기본값: "REDACTED" "username": "XXXX" 때때로 JSON 값이 문자열 안에 임베디드되어 전달됩니다. object인 필드가, 타임스탬프 값json 형으로 분류됩니다..

다음과 같은 isEmbeddedJSON 로 설정되어야 합니다. 실제 입력 데이터는 어떤 타입이든 될 수 있지만,

다음과 같은 페이로드를 변환하게 됩니다:

다음으로:

마지막 업데이트

도움이 되었나요?