Firepower System은 패킷의 TCP 헤더와 TCP 스트림 크기를 사용하여 시도된 공격을 식별하도록 설계된 키워드를 지원합니다.
ack
패킷의 TCP 확인 응답 수에 대한 값을 비교하려면 ack
키워드를 사용할 수 있습니다. ack
키워드에 지정된 값이 패킷의 TCP 확인 응답 수에 일치하는 경우 규칙이 트리거됩니다.
ack
의 인수 값은 숫자여야 합니다.
flags
flags
키워드를 사용하여 검사한 패킷에 지정되었을 때, 규칙이 트리거되도록 하는 TCP 플래그의 조합을 지정할 수 있습니다.
참고
|
관례상 flags 값으로 A+ 를 사용할 경우, established 값으로 flow 키워드를 사용해야 합니다. 일반적으로 모든 플래그 조합 탐지를 확인하기 위해 플래그를 사용하는 경우, stateless 값으로 flow 키워드를 사용해야 합니다.
|
flag
키워드에 대해 다음 표에 설명한 값을 확인하거나 무시할 수 있습니다.
표 39. 플래그 인수
인수
|
TCP 플래그
|
Ack
|
데이터를 확인합니다.
|
Psh
|
데이터는 이 패킷에 보내야 합니다.
|
Syn
|
새로운 연결입니다.
|
Urg
|
패킷은 긴급한 데이터를 포함합니다.
|
Fin
|
닫힌 연결입니다.
|
Rst
|
중지된 연결입니다.
|
CWR
|
ECN 정체 창이 줄었습니다. 이는 이전에 R1 인수였으며 하위 호환성을 위해 계속 지원됩니다.
|
ECE
|
ECN 에코입니다. 이는 이전에 R2 인수였으며 하위 호환성을 위해 계속 지원됩니다.
|
flags
키워드를 사용할 때에는 여러 플래그를 기준으로 시스템이 매칭을 수행하는 방법을 나타내기 위해 연산자를 사용할 수 있습니다. 다음 표에서 이 연산자를 설명합니다.
표 40. 플래그와 함께 사용되는 연산자
연산자
|
설명
|
예
|
all
|
패킷은 모든 지정된 플래그를 포함해야 합니다.
|
Urg 및 all 을 선택하여 패킷이 Urgent(긴급) 플래그를 포함해야 하며 다른 모든 플래그를 포함하도록 지정합니다.
|
any
|
패킷은 지정된 플래그를 모두 포함할 수 있습니다.
|
Ack , Psh 및 any 를 선택하여 Ack 및 Psh 플래그 둘 중 하나 또는 둘 다 규칙을 트리거할 수 있도록 설정되어야 하며 모든 플래그가 하나의 패킷에도 설정될 수 있도록 지정합니다.
|
not
|
패킷은 지정된 플래그 집합을 포함할 수 없습니다.
|
Urg 와 not 을 선택하여 Urgent(긴급) 플래그가 이 규칙을 트리거하는 패킷에 설정되지 않도록 지정합니다.
|
flow
flow
키워드를 사용하여 세션 특징에 기반한 규칙에 따라 검사를 위한 패킷을 선택할 수 있습니다. flow
키워드를 사용하면 클라이언트 흐름 또는 서버 흐름에 규칙을 적용하여 규칙이 적용된 트래픽 흐름의 방향을 지정할 수 있습니다. flow
키워드가 패킷을 검사하는 방법을 지정하려면, 분석을 원하는 트래픽의 방향과 검사된 패킷의 상태, 그리고 패킷이 재구축된 스트림의 일부인지 여부를 설정할 수 있습니다.
규칙을 처리할 때 패킷의 상태 저장 검사가 이루어집니다. TCP 규칙이 상태 비저장 트래픽(설정된 세션 컨텍스트가 없는 트래픽)을 무시하기를 원하는 경우, 규칙에 flow
키워드를 추가하고 키워드의 Established 인수를 선택해야 합니다. UDP 규칙이 스테이트리스 트래픽을 무시하도록 하려면 규칙에 flow
키워드를 추가하고 Established 인수나 방향 인수 또는 둘 모두를 선택해야 합니다. 이것은 TCP 또는 UDP 규칙이 패킷의 상태 저장 검사를 수행하도록 합니다.
방향 인수를 추가하면, 규칙 엔진은 지정된 방향과 일치하는 흐름과 함께 설정한 상태가 있는 해당 패킷만 검사합니다. TCP 또는 UDP 연결이 탐지되었을 때 트리거되는 규칙에 established
인수 및 From Client
인수와 함께 flow
키워드를 추가하는 경우, 규칙 엔진은 클라이언트에서 전송된 패킷만 검사합니다.
팁
|
최대 성능을 위해, TCP 규칙 또는 UDP 세션 규칙에서 항상 flow 키워드를 포함합니다.
|
다음 표에서는 flow
키워드에 대해 지정할 수 있는 스트림 관련 인수를 설명합니다.
표 41. 상태 관련 흐름 인수
인수
|
설명
|
Established
|
연결이 설정된 경우 트리거됩니다.
|
Stateless
|
스트림 프로세서의 상태에 상관없이 트리거됩니다.
|
다음 표에서는 flow
키워드에 대해 지정할 수 있는 방향 옵션을 설명합니다.
표 42. 흐름 방향 인수
인수
|
설명
|
To Client
|
서버 응답 시 트리거됩니다.
|
To Server
|
클라이언트 응답 시 트리거됩니다.
|
From Client
|
클라이언트 응답 시 트리거됩니다.
|
From Server
|
서버 응답 시 트리거됩니다.
|
From Server
및 To Client
는 같은 기능을 수행하며, To Server
및 From Client
도 같은 기능을 수행한다는 점에 유의하십시오. 이 옵션은 규칙에 컨텍스트 및 가독성을 추가하기 위해 존재합니다. 예를 들어 서버에서 클라이언트에 취해지는 공격을 탐지하기 위해 설계된 규칙을 작성하는 경우, From Server
를 사용하십시오. 하지만 클라이언트에서 서버에 취해지는 공격을 탐지하기 위해 설계된 규칙을 작성하는 경우, From Client
를 사용합니다.
다음 표에서는 flow
키워드에 대해 지정할 수 있는 스트림 관련 인수를 설명합니다.
표 43. 스트림 관련 흐름 인수
인수
|
설명
|
Ignore Stream Traffic
|
재작성한 스트림 패킷에서 트리거되지 않습니다.
|
Only Stream Traffic
|
재작성된 스트림 패킷에서만 트리거됩니다.
|
예를 들어, 스트림 프리프로세서에 의해 리어셈블된, 설정된 세션에서 클라이언트에서 서버로 이동하는 트래픽을 탐지하려면 flow
키워드에 대해 To Server, Established, Only Stream Traffic
을 사용할 수 있습니다.
seq
seq
키워드로 정적 시퀀스 번호 값을 지정할 수 있습니다. 시퀀스 번호가 특정 인수에 일치하는 패킷은 키워드를 포함하는 규칙을 트리거합니다. 이 키워드는 거의 사용되지 않지만 정적 시퀀스 번호로 생성된 패킷을 사용한 스캔
네트워크와 공격 식별에 도움이 됩니다.
window
window
키워드를 사용하여 관심 있는 TCP 창 크기를 지정할 수 있습니다. 이 키워드를 포함하는 규칙은 지정된 TCP 창 크기의 패킷이 발생할 때마다 트리거됩니다. 이 키워드는 거의 사용되지 않지만 정적 TCP 창 크기로 생성된
패킷을 사용한 스캔 네트워크와 공격 식별에 도움이 됩니다.
stream_size
다음 형식을 사용하여 stream_size
키워드를 TCP 스트림 바이트의 크기를 결정하는 스트림 전처리기와 함께 사용할 수 있습니다.
direction,operator,bytes
bytes가 바이트 수인 경우. 쉼표(,)로 인수의 각 옵션을 구분해야 합니다.
다음 표에서는 stream_size
키워드에 대해 지정할 수 있는 대소문자를 구분하지 않는 방향 옵션을 설명합니다.
표 44. stream_size 키워드 방향 인수
인수
|
설명
|
client
|
지정된 스트림 크기와 일치하는 클라이언트의 스트림에서 트리거됩니다.
|
server
|
지정된 스트림 크기와 일치하는 서버의 스트림에서 트리거됩니다.
|
both
|
클라이언트 트래픽 및 지정된 스트림 크기와 일치하는 서버의 트래픽 모두에서 트리거됩니다.
예를 들어, both, >, 200 인수는 클라이언트 발신 트래픽이 200바이트보다 큰 경우 및 서버 발신 트래픽이 200바이트보다 큰 경우에 트리거됩니다.
|
either
|
무엇이 먼저 발생하든 지정된 스트림 크기와 일치하는 클라이언트 또는 서버의 트래픽에서 트리거됩니다.
예를 들어, either, >, 200 인수는 클라이언트 발신 트래픽이 200바이트보다 큰 경우 또는 서버 발신 트래픽이 200바이트보다 큰 경우에 트리거됩니다.
|
다음 표에서는 stream_size
키워드와 함께 사용할 수 있는 연산자를 설명합니다.
표 45. stream_size 키워드 인수 연산자
연산자
|
설명
|
=
|
같음
|
!=
|
같지 않음
|
>
|
보다 큼
|
<
|
보다 작음
|
>=
|
보다 크거나 같음
|
<=
|
보다 작거나 같음
|
예를 들어, client, >=, 5001216
을 stream_size
키워드의 인수로 사용하여 클라이언트에서 5001216바이트와 같거나 큰 서버로 이동하는 TCP 스트림을 탐지할 수 있습니다.