> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/detections/rules/inline-filters.md).

# 인라인 필터로 디택션 수정

## 개요

기존 [룰](/ko/detections/rules.md),를 포함하여 [Panther에서 관리하는 규칙](/ko/detections/panther-managed.md), Inline Filters를 추가하여 조정할 수 있습니다. Inline Filter는 디택션 로직이 실행되기 위해 통과해야 하는 조건입니다. Inline Filters는 룰에서만 사용할 수 있으며, 예약된 룰이나 정책에서는 사용할 수 없습니다.

다음 [Panther Console에서,](#creating-filters-in-the-panther-console) 코드 없이 빌더를 사용하여 Inline Filters를 만들 수 있습니다. 다음에서 [CLI 워크플로](#creating-filters-in-the-cli-workflow), 에서는 다음을 추가하여 Inline Filters를 만들 수 있습니다 `InlineFilters` YAML 키.

필터의 일반적인 사용 사례는 허용 목록이나 차단 목록을 추가하는 것입니다.

### Inline Filters가 작동하는 방식

필터 문은 디택션의 로직보다 먼저 평가됩니다. 필터는 반환해야 합니다 `true` (즉, 이벤트와 일치해야 함) 그래야 디택션 로직 자체가 실행됩니다. 다시 말해, Inline Filters는 포함 필터입니다.

Console과 CLI 워크플로우 모두에서 필터는 다음을 사용하여 그룹화할 수 있습니다: `AND` 또는 `또는` 로직. Inline Filters는 다음을 따릅니다 [드모르간의 법칙](https://en.wikipedia.org/wiki/De_Morgan's_laws). 이 Knowledge Base 문서에서 로직 예시를 확인하세요: [Panther 디택션 Inline Filters 문제 해결 가이드](https://help.panther.com/articles/9840276836-why-is-my-panther-inline-filter-not-working-as-expected).

이벤트에 필터가 평가 중인 필드가 포함되어 있지 않으면 필터는 통과합니다. 필터가 평가 중인 필드의 값이 `없음`, 필터는 반환합니다 `false` 양의 비교자 또는 적용되지 않는 비교자에서는, 그리고 `true` 역방향 비교자에서는 실패합니다.

Console에서는 새 룰 생성 중에는 필터를 사용할 수 없습니다. CLI 워크플로우에서는 다음을 포함할 수 있습니다 `InlineFilters` 새 룰에.

{% hint style="info" %}
디택션 콘텐츠를 CLI 워크플로우와 Console을 동시에 사용하여 관리하는 것은 전반적으로 권장되지 않지만, 이는 *이* Console에서 CLI 워크플로우와 함께 Inline Filters를 사용하는 것이 가능합니다. Console에서 생성된 필터는 CLI 워크플로우에서 디택션 콘텐츠가 업데이트되어도 덮어쓰여지거나 삭제되지 않습니다.
{% endhint %}

## Panther Console에서 필터 만들기

룰의 편집 페이지에서, 또는 해당 룰에 의해 트리거된 알러트 내에서 필터를 추가할 수 있습니다.

{% tabs %}
{% tab title="룰에서" %}
**룰의 편집 페이지에서 필터 추가**

1. Panther Console의 왼쪽 탐색 표시줄에서 **디택션**.
2. 디택션 목록에서 룰 이름을 클릭하여 세부 정보 페이지를 봅니다.
3. 해당 **탐지** 섹션에서, 다음 아래에 **이벤트만 포함하도록 필터링:** 그리고 다음의 오른쪽에 **Where**, **+**.
   * 표시되는 메뉴에서 다음 중 하나를 선택합니다: **필터 추가** 또는 **필터 그룹 추가**.\
     ![There is a plus button (+) next to the word "Where." A menu is open below the plus, with options "Add Filter" and "Add Filter Group."](/files/cbacf052ce59466064bcafc3ec1632261e08a38b)
4. 각 필터(단독으로 또는 그룹 내에서)에 대해 로직을 정의합니다:
   1. 다음을 클릭합니다 **키**, 그런 다음 조건이 적용될 이벤트 키를 선택합니다.
      * 중첩 필드를 나타내려면 JSON path 표기법을 사용하세요.
      * 일부 옵션에는 다음이 포함될 수 있습니다 `[*]`, 이는 해당 키가 객체 배열임을 나타냅니다. [아래에서 객체 배열 인덱싱에 대해 자세히 알아보세요](#indexing-an-array-of-objects).
   2. 다음을 클릭합니다 **조건**, 그런 다음 조건을 선택합니다.
   3. 선택한 **조건** 입력된 값(들)이 필요하면(예: `이` 또는 `contains`), 값 또는 값 목록을 제공합니다.
      * values(s) 필드가 배열을 받는 경우 아래의 [배열 값 입력 지침을 참조하세요](#inputting-array-values).
5. 각 필터와 필터 그룹 사이에 올바른 결합자(즉, **및** 또는 **또는**)가 선택되어 있는지 확인하세요.
6. 추가된 필터가 통과하는지 확인하려면 단위 테스트를 실행하세요.
7. 페이지 오른쪽 상단에서 클릭하세요 **배포** 을 클릭하여 변경 사항을 저장하세요.
   {% endtab %}

{% tab title="알러트 이벤트에서" %}
**알러트 이벤트에서 필터 추가**

연관된 알러트의 이벤트에서 직접 룰에 Inline Filters를 추가할 수 있습니다. 이는 거짓 양성 알러트를 받았고, 트리거된 디택션을 조정하여 앞으로 유사한 이벤트에 일치하지 않게 하고 싶을 때 특히 유용합니다.

1. Panther Console의 왼쪽 탐색 표시줄에서 **알러트**.
2. 조정하려는 연관 룰의 알러트를 찾은 다음 이름을 클릭하세요.
3. 알러트의 세부 정보 페이지에서 아래로 스크롤하여 다음으로 이동합니다 **이벤트** 섹션의 명령을 실행하세요.
4. 이벤트의 JSON에서 새 필터의 대상이 되길 원하는 표시 위로 마우스를 올린 다음 대상 아이콘을 클릭하세요.\
   ![While viewing an alert, the event JSON is shown. One event field is hovered over, and three icons have appeared. The third is a target, and the tooltip reads "Add to Rule Filter"](/files/8d5012ea8724f598ebb065013126b12c09884505)
   * 다음 **필터 추가** 슬라이드 아웃 패널이 창의 오른쪽에 열립니다.
5. 다음 **필터 추가** 슬라이드 아웃 패널에서 새 필터는 다음과 같이 미리 채워집니다:
   * **키**: 이벤트 JSON에서 대상 아이콘을 클릭한 필드를 기본값으로 사용합니다.
   * **조건**: 기본값은 **아님**, 앞으로 이런 *이 아니라* 이벤트에 대해 알러트를 받고 싶다고 가정합니다.
   * **문자열**: 이벤트 JSON에서 선택한 필드의 값이 기본값입니다.\
     ![The Ad Filter panel is shown. It displays a Target, Filters section (with a new filter pre-populated with "actionName is not SIGN\_IN", a read-only Rule Function section, and a Unit Test section. at the bottom there are buttons for Close, Discard Changes, and Save & Run Test](/files/52dbab403a299a0943afb2c9b1af83a3286b302a)
6. 필터를 원하는 대로 변경하세요. 미리 채워진 모든 필드(즉, **키**, **조건** 및 **문자열**)는 편집할 수 있습니다.
7. 를 찾고 **단위 테스트** 패널 하단 근처의 섹션입니다. 룰이 [Panther가 관리하는](/ko/detections/panther-managed.md) 그리고 현재 이벤트를 사용하여 룰에 대한 새 단위 테스트를 만들고 싶다면, 다음 레이블이 붙은 체크박스를 클릭하세요 **현재 알러트 이벤트를 단위 테스트로 추가**.
   * 다음 레이블이 붙은 토글은 **디택션은 예시 이벤트를 기반으로 트리거되어야 합니다** 편집할 수 있습니다. 기본값은 **아니요**, 앞으로 이런 알러트를 방지하려는 경우가 많기 때문입니다.\
     ![The Unit Test section of the panel is shown. A checkbox labeled "Add the current alert event as a unit test" is checked. There is a toggle below with the label "The detection should trigger based on the example event:"](/files/e132107a1d8ef111a8dd80dfdf94b3ec4169a515)
   * 룰이 [Panther가 관리하는](/ko/detections/panther-managed.md)이 경우 이 옵션은 회색으로 비활성화됩니다.\
     ![The Unit Test section is greyed out. The informational tooltip says "Unit Test is created and managed by the Panther team."](/files/c6f8586868d1849c6a0a4152c79f68313ac847fb)
8. 다음을 클릭합니다 **저장 및 테스트 실행**.
   * 대상 룰의 모든 단위 테스트가 실행됩니다. 7단계에서 새 단위 테스트를 만들었다면 그것도 실행됩니다.
   * 새 필터가 저장되려면 룰의 모든 단위 테스트가 통과해야 합니다. 단위 테스트 중 하나라도 실패하면:
     * 룰이 [Panther가 관리하는](/ko/detections/panther-managed.md), **디택션 보기** 단위 테스트를 편집하려면 룰의 세부 정보 페이지로 이동합니다. 거기에서 클릭할 수 있습니다 **업데이트** 룰 변경 사항을 저장하려면.\
       ![An error message reads "There were errors trying to save the rule with additional filter(s). Changes have not been saved to your detection." A button reads "View Detection"](/files/f0c2652951d3d58c6bd3b5d0d4ef504a84da00a6)
     * 룰이 [Panther가 관리하는](/ko/detections/panther-managed.md), 해당 단위 테스트는 읽기 전용이므로 실패한 테스트를 수정하여 통과하게 만들 수 없습니다. 필터를 성공적으로 추가하려면 대신 다음을 따르세요 [필터와 함께 실패한 단위 테스트 처리하기](#working-with-failed-unit-tests-with-filters) 워크플로우.
       {% endtab %}
       {% endtabs %}

### 배열 값 입력

선택한 룰 필터 연산자가 값 필드에 배열이 필요하다면(예: `에 포함됨` 연산자), 값 필드를 클릭하면 나타나는 모달에서 배열 값을 입력하게 됩니다.

배열에 값을 추가하려면:

1. 다음을 선택한 후 **키** 및 **조건** 필터에 대해, values 필드를 클릭하세요.

   <figure><img src="/files/844e3897492dc73d45cb5281e9c380e6379dbd11" alt="In the Filters to only include: section, Field, Operator and List inputs are shown. Field has an &#x22;EventId&#x22; value, Operator has an &#x22;is in&#x22; value, and (empty list) doesn&#x27;t yet have a value, but the field is circled."><figcaption></figcaption></figure>

   * 그러면 배열 입력 모달이 열립니다.
2. 모달에서 입력 필드에 배열 값(들)을 입력하세요.
   * 입력이 쉼표로 구분되어 있으면 다음을 체크하세요 **위에 입력한 값은 쉼표로 구분됨** 체크박스
     * 이 필드가 선택되면 values 필드에 입력한 텍스트가 (쉼표 구분자를 사용하여) 여러 값으로 분리됩니다. 예를 들어 "User 1,User 2,User 3"를 입력하면 세 개의 값이 추가됩니다.

       <img src="/files/c01bd4794ae52a796ab63614e4718a934df3d2e1" alt="The array input modal says &#x22;Enter a list of strings...&#x22; at the top. It has an input textfield, and a checkbox that says &#x22;Values entered above are comma-delimited,&#x22; which is checked. Three values have been entered: User 3, User 2, and User 1." data-size="original">
   * 입력이 쉼표로 구분되어 있지 않으면 다음을 그대로 두세요 **위에 입력한 값은 쉼표로 구분됨** 선택 해제
     * 이 필드의 선택이 해제되면 쉼표를 포함한 값을 하나씩 추가할 수 있습니다. 예를 들어 "1,000"을 입력하면 값 하나만 추가됩니다.\
       ![The array input modal says "Enter a list of strings..." at the top. It has an input textfield, and a checkbox that says "Values entered above are comma-delimited," which is unchecked. One value has been entered: 1,000](/files/0872d9f9fa4856657a61a6b46263f81fdf0d2386)
3. 다음을 클릭합니다 **추가**.
4. 모든 값이 배열에 추가될 때까지 필요에 따라 2-3단계를 반복하세요.
5. 다음을 클릭합니다 **적용**.

### 객체 배열 인덱싱

필터 표현식을 만드는 동안, 값이 객체 배열인 이벤트 키가 있으면 해당 키는 드롭다운 선택기에 배열 인덱싱 기호와 함께 표시됩니다 `[*]`그리고 객체의 필드들도 함께 표시됩니다. 다음을 사용할 수 있습니다 `[*]` 배열의 모든 객체에서 선택한 필드를 대상으로 지정하거나, 다음을 바꿔 `*` 정수로 배열을 인덱싱하여 단일 필드를 대상으로 지정할 수 있습니다.

#### 예시

예를 들어, 다음을 보세요 `resources` 필드의 [`AWS.CloudTrail` 스키마](https://docs.panther.com/ko/detections/rules/pages/2c1da8057c863c39494f4a159ac24e02406365e5#aws.cloudtrail):\
![A "resources" field is shown, with three nested fields: arn, accountId, and type. "resources" and the nested fields are circled.](/files/2c3d3fd618b9521a6ae1bdfe6a34a64c339a49e1)

이벤트 필드 선택기에서는 다음과 같이 표시됩니다:

!["Where,"가 앞에 붙은 필드에는 빈 필터 표현식이 표시됩니다. 필드 선택기가 열려 있으며 다음 필드가 동그라미로 표시되어 있습니다: resources\[\*\].accountId, resources\[\*\].arn, resources\[\*\].type.](/files/186ed05b672d6044c8a5fa983ff63f03ee042d65)

기본적으로 Panther는 와일드카드 배열 인덱스(`[*]`)를 적용하여 배열 내 모든 객체의 선택한 필드 값 전체를 검색합니다.  `[*]` 를 사용하면 이 값들의 배열이 생성되어 검색됩니다. 따라서 배열 조건만 사용할 수 있습니다: `비어 있음`, `비어 있지 않음`, `contains`, `포함하지 않음`.

![필터 표현식에서 키로 "resources\[\*\].type"가 선택되어 있고 조건 선택기가 열려 있습니다. 네 가지 조건이 표시되어 동그라미로 표시되어 있습니다: 비어 있음, 비어 있지 않음, 포함함, 포함하지 않음.](/files/12c76d982604d6ad4316d5e1525a39915de2774d)

예를 들어, 아래 필터 표현식(`resources[*].type` `contains` `AWS::IAM::Role`)은 이벤트가 다음 경우 일치함을 의미합니다 *모든* 값이 `유형` 의 `resources` 배열이 `AWS::IAM::Role`.

![필터 칩에는 "resources\[\*\].type contains AWS::IAM::Role"라고 표시됩니다](/files/d46396f08d0a57dfd1bee83374d9cafc20c8a202)

그러나 다음을 바꿀 수 있습니다 `*` 정수로 배열을 인덱싱하면 배열의 단일 객체를 지정할 수 있습니다. 이 경우 Panther는 해당 인덱스의 중첩 필드 값만 평가합니다.

표시되는 조건은 선택한 중첩 필드의 데이터 유형에 적용 가능한 조건으로 업데이트됩니다:

![필터 표현식에서 키 선택기에는 "resources\[0\].type"라고 표시되어 있고 조건 드롭다운이 열려 있습니다. 다양한 조건이 표시되며, 예를 들어 아님, 포함됨, 공개됨이 있습니다.](/files/224e481015031cc39f86d60052e86c4122818d9d)

## CLI 워크플로우에서 필터 만들기

Panther Console에서 코드 없는 룰 필터를 만드는 것 외에도, 다음과 같이 작성된 룰에 YAML 필터를 만들 수도 있습니다 [간단한 디택션](/ko/detections/rules/writing-simple-detections.md) 또는 [Python 디택션](/ko/detections/rules/python.md).

Console에서 만든 필터와 마찬가지로 YAML 필터는 룰의 디택션 로직보다 먼저 평가됩니다. 필터가 반환하면 `true`, 디택션 로직이 실행됩니다. 필터가 반환하면 `false`, 디택션의 평가가 중지되고, 디택션은 반환됩니다 `false` 완전히

### YAML `InlineFilter` 구문

YAML 필터는 다음으로 표시됩니다 `InlineFilters` 키.  `InlineFilters`하나 이상의 매치 표현식을 나열합니다. 다음을 사용할 수 있습니다 `모든` 및 `Any` [결합자](/ko/detections/rules/writing-simple-detections/match-expression.md#combinators) 을 사용하여 각각 AND 또는 OR 로직을 지정하고, 결합자를 중첩하여 필터 그룹을 만들 수 있습니다. 결합자가 다음 바로 아래에 지정되지 않으면 `InlineFilters`, `모든` 로 가정됩니다.

참고 [Simple 디택션 매치 표현식 참고](/ko/detections/rules/writing-simple-detections/match-expression.md) 다양한 유형의 매치 표현식을 구성하는 방법을 알아보세요.

예:

```yaml
InlineFilters: 
  - KeyPath: environment
    Condition: StartsWith
    Value: "Sandbox"
```

### YAML Inline Filters의 제한 사항

에 설명된 일부 매치 표현식 기능은 [Simple 디택션 매치 표현식 참고](/ko/detections/rules/writing-simple-detections/match-expression.md) 에서는 사용할 수 없습니다 `InlineFilters`. 이러한 제한 사항은 다음과 같습니다:

* `InlineFilters` 예약된 룰이나 정책에는 사용할 수 없으며, 룰에만 사용할 수 있습니다.
* 다음 [매치 표현식 유형은](/ko/detections/rules/writing-simple-detections/match-expression.md#types-of-match-expressions) 내부에서는 사용할 수 없습니다 `InlineFilters`:
  * [Multi-key 매치 표현식](/ko/detections/rules/writing-simple-detections/match-expression.md#multi-key-match-expressions)
  * [리스트 컴프리헨션 매치 표현식](/ko/detections/rules/writing-simple-detections/match-expression.md#list-comprehension-match-expressions)
  * [Absolute 매치 표현식](/ko/detections/rules/writing-simple-detections/match-expression.md#absolute-match-expressions)
  * [Enrichment 매치 표현식](/ko/detections/rules/writing-simple-detections/match-expression.md#enrichment-match-expressions)
* 다음 `키` 및 `DeepKey` [키 지정자](/ko/detections/rules/writing-simple-detections/match-expression.md#key-specifiers) 내부에서는 사용할 수 없습니다 `InlineFilters`—오직 `KeyPath` 만 사용할 수 있습니다.
* 다음 `OnlyOne` 및 `None` [결합자](/ko/detections/rules/writing-simple-detections/match-expression.md#combinators) 내부에서는 사용할 수 없습니다 `InlineFilters`—오직 `모든` 및 `Any` 만 사용할 수 있습니다.
* 특정 [`조건`](/ko/detections/rules/writing-simple-detections/match-expression.md#condition) 값은 다음 내부에서 사용할 수 없습니다 `InlineFilters`. 다음 조건은 지원되지 않습니다:
  * `Exists`
  * `DoestNotExist`
  * `IsNull`
  * `IsNotNull`
  * `IsIPAddress`
  * `IsIPv4Address`
  * `IsIPv6Address`
  * `AnyElement`
  * `AllElements`
  * `OnlyOneElement`
  * `NoElement`

### CLI 워크플로우에서 Inline Filter 만드는 방법

Python 또는 Simple 디택션으로 생성된 룰의 CLI 워크플로우에서 Inline Filter를 만들려면, 디택션의 YAML 파일에 다음을 포함하세요 `InlineFilters` 키.  `InlineFilters`, 하나 이상의 [매치 표현식](/ko/detections/rules/writing-simple-detections/match-expression.md).

## 필터와 함께 실패한 단위 테스트 처리하기

자체 호스팅 [Panther가 관리하는](/ko/detections/panther-managed.md) 필터가 있는 룰의 경우 현재 단위 테스트를 추가하거나 편집할 수 없습니다. 단위 테스트가 통과하지 않으면 룰을 저장할 수 없습니다.

단위 테스트가 실패하면 다음 단계를 수행하세요:

1. Panther가 관리하는 룰을 복제합니다.
2. 복제된 룰에 필터를 추가합니다.
3. 복제된 룰의 단위 테스트를 편집하여 통과하게 합니다.

## Inline filter 참고

Console에서 필터를 구성할 때 아래의 연산자 및 값 유형을 참조하세요.

### 지원되는 Console 연산자

<table data-full-width="false"><thead><tr><th width="138">작업</th><th width="280">사용 지침</th><th width="195">지원되는 필드 유형</th><th>예시</th></tr></thead><tbody><tr><td>같음 / 같지 않음</td><td>필드가 필터의 값과 일치하거나 일치하지 않을 때 이벤트가 일치합니다</td><td>문자열, ip, bool, int</td><td>username이 “root”입니다</td></tr><tr><td>일치 / 일치하지 않음(대소문자 구분 안 함)</td><td>필드가 필터의 값과 대소문자를 구분하지 않고 일치하거나 일치하지 않을 때 이벤트가 일치합니다</td><td>문자열, ip, bool, int</td><td>username이(대소문자 구분 안 함) “rOot”입니다</td></tr><tr><td>포함됨 / 포함되지 않음</td><td>필드가 필터의 값 목록 중 항목과 일치하거나 일치하지 않을 때 이벤트가 일치합니다</td><td>문자열, int</td><td><p>username이 [ “root”, “admin” ]에 포함됨<br></p><p>port가 [25, 553]에 포함됨</p></td></tr><tr><td>비어 있음</td><td>필드의 값이 지정되지 않았을 때 이벤트가 일치합니다. 이 연산자는 데이터의 부재만 검사합니다</td><td>문자열, int 배열, ip 배열, float 배열, bool 배열, 문자열 배열</td><td>errors_list가 비어 있음</td></tr><tr><td>비어 있지 않음</td><td>필드의 값이 지정되었을 때 이벤트가 일치합니다. 이 연산자는 데이터의 존재만 검사합니다</td><td>문자열, int 배열, ip 배열, float 배열, bool 배열, 문자열 배열</td><td>errors_list가 비어 있지 않음</td></tr><tr><td>contains</td><td><p>지정한 필드의 값에 제공된 값이 포함될 때 이벤트가 일치합니다</p><p>이벤트 값이 문자열 또는 문자열 배열인 경우 부분 일치가 지원됩니다</p></td><td>문자열, int 배열, ip 배열, bool 배열, 문자열 배열</td><td><p>domain에 “.google.com”이 포함됨<br></p><p>p_any_port에 22가 포함됨</p></td></tr><tr><td>포함됨(대소문자 구분 안 함)</td><td><p>지정한 필드의 값에 제공된 값이 대소문자를 구분하지 않고 포함될 때 이벤트가 일치합니다</p><p>이벤트 값이 문자열 또는 문자열 배열인 경우 부분 일치가 지원됩니다</p></td><td>문자열, 문자열 배열</td><td>username에(대소문자 구분 안 함) "bad"가 포함됨<br><br>p_any_email에(대소문자 구분 안 함) "bad"가 포함됨</td></tr><tr><td>포함하지 않음</td><td><p>지정한 필드의 값에 제공된 값이 포함되지 않을 때 이벤트가 일치합니다</p><p>이벤트 값이 문자열 또는 문자열 배열인 경우 부분 일치가 지원됩니다</p></td><td>문자열, int 배열, ip 배열, bool 배열, 문자열 배열</td><td><p>domain에 “.google.com”이 포함되지 않음<br></p><p>p_any_port에 22가 포함되지 않음</p></td></tr><tr><td>포함되지 않음(대소문자 구분 안 함)</td><td><p>지정한 필드의 값에 제공된 값이 대소문자를 구분하지 않고 포함되지 않을 때 이벤트가 일치합니다</p><p>이벤트 값이 문자열 또는 문자열 배열인 경우 부분 일치가 지원됩니다</p></td><td>문자열, 문자열 배열</td><td><p>domain에(대소문자 구분 안 함) “.gOogle.com”이 포함되지 않음<br></p><p>p_any_email에 "good"이 포함되지 않음</p></td></tr><tr><td>다음으로 시작함</td><td>지정한 필드의 값이 제공된 값으로 시작할 때 이벤트가 일치합니다</td><td>string</td><td>role이 “admin_”으로 시작함</td></tr><tr><td>다음으로 시작함(대소문자 구분 안 함)</td><td>지정한 필드의 값이 제공된 값으로 대소문자를 구분하지 않고 시작할 때 이벤트가 일치합니다</td><td>string</td><td>role이(대소문자 구분 안 함) “aDmin_”으로 시작함</td></tr><tr><td>다음으로 시작하지 않음</td><td>지정한 필드의 값이 제공된 값으로 시작하지 않을 때 이벤트가 일치합니다</td><td>string</td><td>role이 "admin_"으로 시작하지 않음</td></tr><tr><td>다음으로 시작하지 않음(대소문자 구분 안 함)</td><td>지정한 필드의 값이 제공된 값으로 대소문자를 구분하지 않고 시작하지 않을 때 이벤트가 일치합니다</td><td>string</td><td>role이(대소문자 구분 안 함) "aDmin_"으로 시작하지 않음</td></tr><tr><td>다음으로 끝남</td><td>지정한 필드의 값이 제공된 값으로 끝날 때 이벤트가 일치합니다</td><td>string</td><td>domain이 “.cc”로 끝남</td></tr><tr><td>다음으로 끝남(대소문자 구분 안 함)</td><td>지정한 필드의 값이 제공된 값으로 대소문자를 구분하지 않고 끝날 때 이벤트가 일치합니다</td><td>string</td><td>domain이(대소문자 구분 안 함) “.Cc”로 끝남</td></tr><tr><td>다음으로 끝나지 않음</td><td>지정한 필드의 값이 제공된 값으로 끝나지 않을 때 이벤트가 일치합니다</td><td>string</td><td>domain이 ".com"으로 끝나지 않음</td></tr><tr><td>다음으로 끝나지 않음(대소문자 구분 안 함)</td><td>지정한 필드의 값이 제공된 값으로 대소문자를 구분하지 않고 끝나지 않을 때 이벤트가 일치합니다</td><td>string</td><td>domain이 ".coM"으로 끝나지 않음</td></tr><tr><td>보다 큼</td><td>필드의 값이 필터에 제공된 값보다 클 때 이벤트가 일치합니다</td><td>int, float</td><td>port > 1023</td></tr><tr><td>보다 작음</td><td>필드의 값이 필터에 제공된 값보다 작을 때 이벤트가 일치합니다</td><td>int, float</td><td>port &#x3C; 1024</td></tr><tr><td>보다 크거나 같음</td><td>필드의 값이 필터에 제공된 값보다 크거나 같을 때 이벤트가 일치합니다</td><td>int</td><td>count ≥ 1</td></tr><tr><td>보다 작거나 같음</td><td>필드의 값이 필터에 제공된 값보다 작거나 같을 때 이벤트가 일치합니다</td><td>int</td><td>count ≤ 100</td></tr><tr><td>비공개임</td><td>지정한 IP 주소가 비공개일 때 이벤트가 일치합니다</td><td>IP</td><td>dst_ip is_private</td></tr><tr><td>공개됨</td><td>지정한 IP 주소가 공개일 때 이벤트가 일치합니다</td><td>IP</td><td>src_ip is_public</td></tr><tr><td>CIDR에 포함됨 / CIDR에 포함되지 않음</td><td>지정한 IP 주소가 제공된 CIDR(Classless Inter-Domain Routing) 블록 안에 있거나/없을 때 이벤트가 일치합니다</td><td>IP</td><td>src_ip in_cidr 192.168.0.0/16</td></tr><tr><td>CIDR의 IP를 포함하지 않음</td><td>지정한 IP 배열에 제공된 CIDR 블록 내 IP 주소가 하나도 포함되어 있지 않을 때 이벤트가 일치합니다</td><td>ip 배열</td><td><p>p_any_ip_address !contains_ip 8.8.0.0/16<br></p><p>p_any_ip_address !contains_ip 1.1.1.1/32</p></td></tr><tr><td>CIDR의 IP를 포함함</td><td>지정한 IP 배열에 제공된 CIDR 블록 내 IP 주소가 포함되어 있을 때 이벤트가 일치합니다</td><td>ip 배열</td><td><p>p_any_ip_address contains_ip 8.8.0.0/16<br></p><p>p_any_ip_address contains_ip 1.1.1.1/32</p></td></tr></tbody></table>

### 지원되는 값 유형

<table><thead><tr><th width="153">값 유형</th><th>설명</th></tr></thead><tbody><tr><td><code>string</code></td><td>문자열 값</td></tr><tr><td><code>int</code></td><td>범위 내의 32비트 정수 <code>-2147483648</code>, <code>2147483647</code></td></tr><tr><td><code>float</code></td><td>64비트 부동소수점 수</td></tr><tr><td><code>boolean</code></td><td>불리언 값 <code>true</code> / <code>false</code></td></tr><tr><td><code>array</code></td><td>각 요소가 같은 유형인 JSON 배열</td></tr><tr><td><code>ip</code></td><td>유효한 IPv4 또는 IPv6 주소 하나</td></tr><tr><td><code>CIDR</code></td><td>클래스리스 인터도메인 라우팅 블록 하나</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/detections/rules/inline-filters.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
