Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

침입 탐지 및 방지(IDP) 서명 언어 개선 사항

Junos OS 19.4R1부터 침입 탐지 및 방지(IDP) 엔진은 서명 언어 구성을 지원합니다. 서명 구성을 통해 IDP는 오탐을 줄이는 데 도움이 되는 보다 효율적인 서명을 생성할 수 있습니다.

시그니처 언어 구문 이해

침입 탐지 및 방지(IDP) 엔진 코드에서 지원되는 구조는 다음과 같습니다.

  • Depth- 지정된 패턴을 검색할 패킷의 깊이를 지정합니다. 깊이 값은 상대적이지 않습니다. 예를 들어 깊이를 100으로 지정할 수 있습니다.
  • Offset- 패킷 내에서 패턴 검색을 시작할 위치를 지정할 수 있습니다. 오프셋 값은 상대적이지 않습니다. 예를 들어, 오프셋 값을 100으로 지정할 수 있습니다.
  • Within- 패턴 일치 사이에 최대 N바이트가 있는지 확인합니다. 패턴 일치는 항상 이전 일치를 기준으로 합니다. 예를 들어, N의 값이 10인 경우입니다. 예제에 따라 m01 일치 후 m02 일치가 10바이트 이내에 발생하여 공격 알림을 트리거합니다.
  • Distance- IDP 엔진이 이전 패턴 일치를 기준으로 지정된 패턴을 검색해야 하는 위치를 지정할 수 있습니다. 이는 항상 이전 경기와 관련이 있으며 거리 값은 음수일 수 있습니다. 예를 들어, N의 값이 10인 경우 m01이 일치하면 m02는 m01 일치의 끝 이후 10바이트가 발생해야 합니다.
  • Ipopts—나열된 모든 ipopts에는 보안 패키지에 정의된 해당 이상이 있으며 디바이스 또는 IDP 엔진에서 구성될 때 탐지될 수 있습니다.

    • rr - 기록 경로

    • eol - 목록의 끝

    • nop - 작동 없음

    • ts - 타임스탬프

    • sec - IP 보안

    • esec - IP 확장 보안

    • lsrr - 느슨한 소스 라우팅

    • ssrr - 엄격한 소스 라우팅

    • satid - 스트림 식별자

Junos OS 20.2R1부터 침입 탐지 및 방지(IDP) 엔진은 서명 언어 구성을 지원합니다. 서명 구성을 통해 IDP는 오탐을 줄이는 데 도움이 되는 보다 효율적인 서명을 생성할 수 있습니다.

  • Byte extract- Byte extract 키워드는 길이가 인코딩된 프로토콜에 대한 서명을 작성하는 데 도움이 되며, 패킷 페이로드를 바이트 단위로 읽고, 나중에 사용할 수 있도록 변수로 저장합니다. 바이트 추출은 상대적일 수도 있고 비상대적일 수도 있습니다. 체인 공격당 사용되는 바이트 추출의 수에는 제한이 없습니다.예를 들어:

    표 1 에는 구성에 대한 필드가 나열되어 있습니다 Byte extract .

    표 1: 바이트 추출 출력 필드

    필드 설명

    align

    바이트 정렬을 지정합니다.

    bitmask

    AND 연산을 위한 비트 마스크(1-4바이트)를 16진수 형식으로 지정합니다.

    bytes

    패킷(1..10)에서 추출할 바이트 수를 지정합니다.

    endianness

    IDP 엔진에서 읽은 바이트를 처리하는 데 사용할 엔디안을 지정합니다.

    multiplier

    읽은 바이트에 대해 곱할 값을 지정합니다.

    offset

    침입 탐지 및 방지(IDP) 엔진이 처리를 시작해야 하는 페이로드의 오프셋 바이트 수를 지정합니다.

    relative

    마지막 패턴 일치를 기준으로 오프셋을 사용할지 여부를 지정합니다.

    string

    문자열 데이터를 구문 분석할 데이터 형식을 지정합니다.

    var-name

    다른 규칙 옵션에서 참조할 변수의 이름을 지정합니다.

  • Byte test-Byte 테스트 키워드를 사용하면 바이트 필드를 작동 값으로 테스트할 수 있습니다. 바이트 테스트는 상대적일 수도 있고 비상대적일 수도 있습니다. > , < , =, &, ^ ,<=,>= 는 지원되는 연산자이며 추출되는 최대 바이트 수는 4입니다.예를 들어:

    표 2 에는 구성에 대한 필드가 나열되어 있습니다 Byte test .

    표 2: 바이트 테스트 출력 필드

    필드 설명

    bitmask

    AND 연산을 위한 비트 마스크(1-4바이트)를 16진수 형식으로 지정합니다.

    bytes

    패킷(1..10)에서 추출할 바이트 수를 지정합니다.

    endianness

    IDP 엔진에서 읽은 바이트를 처리하는 데 사용할 엔디안을 지정합니다.

    negate

    연산자가 참이 아닌지 확인하십시오.

    offset

    오프셋 변수 이름 또는 오프셋 값을 언급합니다

    operator

    추출된 값에 대해 수행할 작업을 지정합니다.

    relative

    마지막 패턴 일치를 기준으로 오프셋을 사용할지 여부를 지정합니다.

    rvalue

    변환된 값은 rvalue를 사용하여 테스트됩니다. .

    string

    문자열 데이터를 구문 분석할 데이터 형식을 지정합니다.

  • Byte jump- Byte jump 키워드는 페이로드의 특정 부분을 건너뛰고 매우 특정한 위치에서 감지를 수행하기 위해 길이로 인코딩된 프로토콜용으로 작성된 서명에 사용됩니다. 바이트 점프 값은 상대적일 수도 있고 비상대적일 수도 있습니다.예를 들어:

    표 3 에는 구성에 대한 필드가 나열되어 있습니다 Byte jump .

    표 3: 바이트 점프 출력 필드

    필드 설명

    align

    IDP 엔진에서 읽은 바이트를 처리하는 데 사용할 엔디안을 지정합니다.

    bitmask

    AND 연산을 위한 비트 마스크(1-4바이트)를 16진수 형식으로 지정합니다.

    bytes

    패킷(1..10)에서 추출할 바이트 수를 지정합니다.

    endianness

    IDP 엔진에서 읽은 바이트를 처리하는 데 사용할 엔디안을 지정합니다.

    from-beginning

    페이로드의 시작 부분부터 점프를 활성화합니다.

    from-end

    페이로드 끝에서 점프를 활성화합니다.

    multiplier

    읽은 바이트에 대해 곱할 값을 지정합니다.

    offset

    사용할 오프셋 변수 이름 또는 오프셋 값을 언급합니다.

    post-offset

    앞으로 또는 뒤로 건너뛸 바이트 수를 지정합니다(-65535..65535).

    relative

    마지막 패턴 일치를 기준으로 오프셋을 사용할지 여부를 지정합니다.

    string

    문자열 데이터를 구문 분석할 데이터 형식을 지정합니다.

  • Byte math- Byte math 키워드를 사용하면 추출된 값, 지정된 값 또는 기존 변수에 대해 수학 연산을 수행할 수 있습니다. 바이트 수학 값은 결과를 새 결과 변수에 저장합니다. 와 같은 1) '+' | '-' | '*' | '/' | '<<' | '>>' 작업이 지원됩니다. 상대적일 수도 있고 비상대적일 수도 있습니다.예를 들어:

    표 4 에는 구성에 대한 필드가 나열되어 있습니다 Byte math .

    표 4: 바이트 수학 출력 필드

    필드 설명

    bitmask

    AND 연산을 위한 비트 마스크(1-4바이트)를 16진수 형식으로 지정합니다.

    bytes

    패킷(1..10)에서 추출할 바이트 수를 지정합니다.

    endianness

    바이트 읽기를 처리하는 데 사용할 엔디안을 지정합니다.

    offset

    처리를 시작할 페이로드의 바이트 수를 지정합니다(0..65535).

    operator

    추출된 값에 대해 수행할 작업을 지정합니다.

    relative

    마지막 패턴 일치를 기준으로 오프셋을 사용할지 여부를 지정합니다.

    result

    결과를 저장할 변수 이름을 지정합니다.

    rvalue

    특정 수학 연산에 사용할 값을 지정합니다.

    string

    문자열 데이터를 구문 분석해야 하는 데이터 형식을 지정합니다.

  • Is-data-at— is-data-at 키워드를 사용하면 페이로드에 지정된 위치의 필수 데이터가 포함되어 있는지 확인할 수 있습니다. 예를 들어:

    표 5 에는 구성에 대한 Is-data-at 필드가 나열되어 있습니다.

    표 5: Isdataat 출력 필드

    필드 설명

    negate

    is-data-at 테스트의 결과를 부정합니다.

    offset

    오프셋 변수 이름 또는 오프셋 값을 언급합니다.

    relative

    마지막 패턴 일치를 기준으로 오프셋을 사용할지 여부를 지정합니다

  • Detection Filter— 탐지 필터는 공격이 일치해야 하는 속도를 정의합니다. 소스 또는 대상에 대한 카운트는 서명에 지정된 옵션 값에 따라 유지됩니다. 탐지 필터는 외부에 <SLE_Constructs> 있으며 공격 멤버가 아닌 공격별로 지정됩니다. 동일한 소스 IP에서 10초 간격으로 5번 공격이 탐지되면 공격으로 플래그가 지정됩니다. 예를 들어: