> 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 Filter를 추가하여 조정할 수 있습니다. Inline Filter는 디택션 로직이 실행되기 전에 반드시 통과해야 하는 조건입니다. Inline Filter는 예약된 룰이나 정책이 아니라 룰에서만 사용할 수 있습니다.

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

필터의 일반적인 사용 사례는 allowlist 또는 denylist를 추가하는 것입니다.

### Inline Filter 작동 방식

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

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

이벤트에 필터가 평가하는 필드가 포함되어 있지 않으면 필터는 통과합니다. 필터가 평가하는 필드의 값이 `없음`이면, 필터는 `false` 양의 비교 연산자나 적용되지 않는 비교 연산자에서는 통과하고 `true` 역 비교 연산자에서는 실패합니다.

Console에서는 새 룰을 만드는 동안 사용할 수 없습니다. CLI 워크플로우에서는 `InlineFilters` 새 룰에 Inline Filter를 포함할 수 있습니다.

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

## Panther Console에서 필터 만들기

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

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

1. Panther 콘솔의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **디택션**.
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. 선택한 **조건** 에 입력된 값이 필요하면(예: `있거나` 또는 `포함`), 값 또는 값 목록을 제공합니다.
      * values(s) 필드가 배열을 받는 경우, [아래의 배열 값 입력 방법을 참조하세요](#inputting-array-values).
5. 각 필터와 필터 그룹 사이에서 올바른 결합자(즉, **그리고** 또는 **또는**)가 선택되었는지 확인합니다.
6. 추가한 필터가 통과하는지 단위 테스트를 실행합니다.
7. 페이지 오른쪽 상단에서 **배포** 을 눌러 변경 사항을 저장합니다.
   {% endtab %}

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

관련 룰을 조정하려는 이벤트에서 룰에 Inline Filter를 직접 추가할 수 있습니다. 이는 거짓 양성 알러트를 받은 경우 특히 유용하며, 트리거된 디택션을 조정하여 앞으로 유사한 이벤트에서 일치하지 않도록 할 때 도움이 됩니다.

1. Panther 콘솔의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **알러트**.
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 %}

### 배열 값 입력

선택한 룰 필터 연산자가 value 필드에 배열을 받도록 요구하는 경우(예: `is in` 연산자), value 필드를 클릭하면 나타나는 모달에서 배열 값을 입력합니다.

배열에 값을 추가하려면:

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는 와일드카드 배열 인덱스(`[*]`)를 적용하여 배열 내 모든 객체의 선택한 필드 값 전체를 검색합니다.  `[*]` 가 사용되면 해당 값들의 배열이 만들어져 검색됩니다. 따라서 배열 조건만 사용할 수 있습니다: `비어 있음`, `비어 있지 않음`, `포함`, `포함하지 않음`.

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

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

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

그러나 `*` 를 정수로 바꾸어 배열의 인덱스를 지정할 수 있으며, 그러면 배열 내 단일 객체가 지정됩니다. 이 경우 Panther는 해당 인덱스의 중첩 필드 값만 평가합니다.

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

![필터 표현식에서 키 선택기에 "resources\[0\].type"가 표시되고 조건 드롭다운이 열려 있습니다. is not, is in, is public 등 다양한 조건이 표시됩니다.](/files/224e481015031cc39f86d60052e86c4122818d9d)

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

Panther Console에서 코드 없는 룰 필터를 만드는 것 외에도, Python 또는 Simple 디택션으로 작성된 룰에 YAML 필터를 만들 수도 있습니다. [Simple 디택션](/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`, `모든` 직접 지정되지 않으면

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

예:

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

### YAML Inline Filter의 제한 사항

에서 설명한 일부 일치 표현식 기능은 [간단한 디택션 일치 표현식 참조](/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`:
  * [다중 키 일치 표현식](/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)
  * [절대 일치 표현식](/ko/detections/rules/writing-simple-detections/match-expression.md#absolute-match-expressions)
  * [보강 일치 표현식](/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`—only `KeyPath` 만 사용할 수 있습니다.
* 해당 `OnlyOne` 그리고 `없음` [ 결합자](/ko/detections/rules/writing-simple-detections/match-expression.md#combinators) 내에서 사용할 수 없습니다 `InlineFilters`—only `모든` 그리고 `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 만드는 방법

CLI 워크플로우에서 Python 또는 Simple 디택션으로 생성된 룰에 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>string, ip, bool, int</td><td>username은 “root”입니다</td></tr><tr><td>is / is not (대소문자 구분 없음)</td><td>필드가 필터의 값과 일치/불일치할 때 이벤트가 대소문자를 구분하지 않는 방식으로 일치합니다</td><td>string, ip, bool, int</td><td>username은(대소문자 구분 없음) “rOot”입니다</td></tr><tr><td>is in / is not in</td><td>필드가 필터의 값 목록 항목과 일치/불일치하면 이벤트가 일치합니다</td><td>string, int</td><td><p>username이 [ “root”, “admin” ]에 있음<br></p><p>port가 [25, 553]에 있음</p></td></tr><tr><td>비어 있음</td><td>필드 값이 지정되지 않으면 이벤트가 일치합니다. 이 연산자는 데이터 부재만 검사합니다</td><td>string, int 배열, ip 배열, float 배열, bool 배열, string 배열</td><td>errors_list가 비어 있음</td></tr><tr><td>비어 있지 않음</td><td>필드 값이 지정되면 이벤트가 일치합니다. 이 연산자는 데이터 존재 여부만 검사합니다</td><td>string, int 배열, ip 배열, float 배열, bool 배열, string 배열</td><td>errors_list가 비어 있지 않음</td></tr><tr><td>포함</td><td><p>지정된 필드의 값에 제공된 값이 포함되면 이벤트가 일치합니다</p><p>이벤트 값이 문자열 또는 문자열 배열인 경우 부분 일치가 지원됩니다</p></td><td>string, int 배열, ip 배열, bool 배열, string 배열</td><td><p>domain에 “.google.com”이 포함됨<br></p><p>p_any_port에 22가 포함됨</p></td></tr><tr><td>contains (대소문자 구분 없음)</td><td><p>지정된 필드의 값이 대소문자를 구분하지 않는 방식으로 제공된 값을 포함하면 이벤트가 일치합니다</p><p>이벤트 값이 문자열 또는 문자열 배열인 경우 부분 일치가 지원됩니다</p></td><td>string, string 배열</td><td>username에 (대소문자 구분 없음) "bad"가 포함됨<br><br>p_any_email에 (대소문자 구분 없음) "bad"가 포함됨</td></tr><tr><td>포함하지 않음</td><td><p>지정된 필드의 값에 제공된 값이 포함되지 않으면 이벤트가 일치합니다</p><p>이벤트 값이 문자열 또는 문자열 배열인 경우 부분 일치가 지원됩니다</p></td><td>string, int 배열, ip 배열, bool 배열, string 배열</td><td><p>domain !contains “.google.com”<br></p><p>p_any_port !contains 22</p></td></tr><tr><td>does not contain (대소문자 구분 없음)</td><td><p>지정된 필드의 값에 대소문자를 구분하지 않는 방식으로 제공된 값이 포함되지 않으면 이벤트가 일치합니다</p><p>이벤트 값이 문자열 또는 문자열 배열인 경우 부분 일치가 지원됩니다</p></td><td>string, string 배열</td><td><p>domain !contains (대소문자 구분 없음) “.gOogle.com”<br></p><p>p_any_email !contains "good"</p></td></tr><tr><td>starts with</td><td>지정된 필드의 값이 제공된 값으로 시작하면 이벤트가 일치합니다</td><td>문자열</td><td>role starts with “admin_”</td></tr><tr><td>starts with (대소문자 구분 없음)</td><td>지정된 필드의 값이 대소문자를 구분하지 않는 방식으로 제공된 값으로 시작하면 이벤트가 일치합니다</td><td>문자열</td><td>role starts with (대소문자 구분 없음) “aDmin_”</td></tr><tr><td>does not start with</td><td>지정된 필드의 값이 제공된 값으로 시작하지 않으면 이벤트가 일치합니다</td><td>문자열</td><td>role does not start with "admin_"</td></tr><tr><td>does not start with (대소문자 구분 없음)</td><td>지정된 필드의 값이 대소문자를 구분하지 않는 방식으로 제공된 값으로 시작하지 않으면 이벤트가 일치합니다</td><td>문자열</td><td>role does not start with (대소문자 구분 없음) "aDmin_"</td></tr><tr><td>ends with</td><td>지정된 필드의 값이 제공된 값으로 끝나면 이벤트가 일치합니다</td><td>문자열</td><td>domain ends with “.cc”</td></tr><tr><td>ends with (대소문자 구분 없음)</td><td>지정된 필드의 값이 대소문자를 구분하지 않는 방식으로 제공된 값으로 끝나면 이벤트가 일치합니다</td><td>문자열</td><td>domain ends with (대소문자 구분 없음) “.Cc”</td></tr><tr><td>does not end with</td><td>지정된 필드의 값이 제공된 값으로 끝나지 않으면 이벤트가 일치합니다</td><td>문자열</td><td>domain does not end with ".com"</td></tr><tr><td>does not end with (대소문자 구분 없음)</td><td>지정된 필드의 값이 대소문자를 구분하지 않는 방식으로 제공된 값으로 끝나지 않으면 이벤트가 일치합니다</td><td>문자열</td><td>domain does not end with ".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>정수</td><td>count ≥ 1</td></tr><tr><td>보다 작거나 같음</td><td>필드 값이 필터에서 제공된 값보다 작거나 같으면 이벤트가 일치합니다</td><td>정수</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>문자열</code></td><td>문자열 값</td></tr><tr><td><code>정수</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>배열</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.
