사용자 지정 서명 번들을 NSX IDS/IPS 엔진에 업로드합니다.

사용자 지정 서명을 업로드할 때의 고려 사항:

  • NSX IDS/IPS에 대한 사용자 지정 서명을 배포할 때 NSX와 호환되는 지원되는 키워드만 포함해야 합니다. 아래에서 지원되는 키워드 목록을 참조하십시오.

  • 지원되는 주소 그룹 및 포트만 서명에 사용되는지 확인합니다.

    address-groups:
    HOME_NET: "any"    EXTERNAL_NET: "any"    HOME_NETWORK: "[10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,fd00::/8]"    HTTP_SERVERS: "$HOME_NET"    SMTP_SERVERS: "$HOME_NET"    SQL_SERVERS: "$HOME_NET"    DNS_SERVERS: "$HOME_NET"    TELNET_SERVERS: "$HOME_NET"    AIM_SERVERS: "$EXTERNAL_NET"    DC_SERVERS: "$HOME_NET"    DNP3_SERVER: "$HOME_NET"    DNP3_CLIENT: "$HOME_NET"    MODBUS_CLIENT: "$HOME_NET"    MODBUS_SERVER: "$HOME_NET"    ENIP_CLIENT: "$HOME_NET"    ENIP_SERVER: "$HOME_NET"
    
    port-groups:
    HTTP_PORTS: "any"    SHELLCODE_PORTS: "!80"    ORACLE_PORTS: 1521    SSH_PORTS: 22    DNP3_PORTS: 20000    MODBUS_PORTS: 502    FILE_DATA_PORTS: "[$HTTP_PORTS,110,143]"    FTP_PORTS: 21    VXLAN_PORTS: "4789"
  • 업로드하려는 사용자 지정 서명 번들의 형식이 올바른지 확인합니다. 즉, .zip 확장명이 있어야 합니다(예: sample_rules.zip). NSX에서는 사용자 지정 서명에 대한 종속성을 추적하지 않으므로 종속 서명이 게시 프로세스에 포함되어 있는지 확인합니다.

  • 유효한 사용자 지정 서명을 게시한 후 유효하지 않은 사용자 지정 서명만 포함된 새 번들로 재정의하는 경우 NSX에서는 새 번들을 게시하도록 허용하지 않습니다. NSX에서는 "재정의된 서명은 유효/주의 서명에만 허용됩니다." 오류 메시지를 표시합니다. 또한 이전 번들의 서명을 사용하도록 이전에 업데이트된 모든 IDPS 프로파일은 새 번들에 해당 서명이 없으므로 유효하지 않게 됩니다. 새 번들에 이전 번들의 일부인 사용자 지정 서명이 포함되어 있으면 기존 서명으로 표시되고, 기존 프로파일에 대해 유효한 서명으로 남아 있습니다.

  • 모든 사용자 지정 서명이 지원되는 키워드를 사용하는지 확인합니다. 지원되는 키워드 목록은 다음과 같습니다.

    sid

    규칙 ID를 설정합니다.

    priority

    우선 순위가 높은 규칙이 먼저 검토됩니다.

    rev

    규칙의 버전을 설정합니다.

    classtype

    규칙 및 경고의 분류에 대한 정보입니다.

    app-layer-protocol

    감지된 app-layer 프로토콜에서 일치됩니다.

    tcp.ack

    특정 TCP 승인 번호를 확인합니다.

    tcp.seq

    특정 TCP 시퀀스 번호를 확인합니다.

    tcp.window

    특정 TCP 기간 크기를 확인합니다.

    ipopts

    특정 IP 옵션이 설정되어 있는지 확인합니다.

    tcp.flags

    TCP 헤더에 설정된 플래그를 감지합니다.

    fragbits

    조각화 및 예약된 비트가 IP 헤더에 설정되어 있는지 확인합니다.

    fragoffset

    [IP 조각 오프셋] 필드의 특정 십진수 값과 일치됩니다.

    ttl

    특정 IP Time-to-Live 값을 확인합니다.

    tos

    [IP 헤더 TOS] 필드의 특정 십진수 값과 일치됩니다.

    itype

    특정 ICMP 유형과 일치됩니다.

    icode

    특정 ICMP id-value과 일치됩니다.

    icmp_id

    ICMP ID를 확인합니다.

    icmp_seq

    ICMP 시퀀스 번호를 확인합니다.

    dsize

    패킷 페이로드의 크기에 일치됩니다.

    flow

    흐름의 방향 및 상태에 일치됩니다.

    threshold

    규칙의 경고 빈도를 제어합니다.

    metadata

    로깅에 사용됩니다.

    reference

    규칙에 대한 정보를 찾을 수 있는 위치로 직접 연결합니다.

    tag

    태그를 정의합니다.

    msg

    규칙 및 가능한 경고에 대한 정보입니다.

    content

    페이로드 컨텐츠에 일치됩니다.

    uricontent

    요청 URI 버퍼에서 일치시킬 레거시 키워드입니다.

    pcre

    정규식에 일치됩니다.

    depth

    페이로드 시작 부분에서 확인할 바이트 수를 지정합니다.

    startswith

    패턴은 버퍼의 시작 부분에 있어야 합니다('depth:<pattern len>'과 동일).

    endswith

    이전 컨텐츠가 버퍼 끝에 정확히 일치되는지 확인합니다.

    distance

    이 컨텐츠 키워드와 그 이전에 나온 컨텐츠 간 관계를 나타냅니다.

    within

    이 컨텐츠 일치가 이전 컨텐츠 키워드 일치와 특정 거리 내에 있어야 함을 나타냅니다.

    abs_offset

    일치 항목을 찾기 위해 스트림의 어느 바이트부터 확인할지 지정합니다.

    offset

    일치 항목을 찾기 위해 페이로드의 어느 바이트부터 확인할지 지정합니다.

    replace

    IPS 모드에서만 사용할 수 있습니다.

    nocase

    대/소문자를 구분하지 않도록 컨텐츠 일치를 수정합니다.

    fast_pattern

    다중 패턴 일치기에서 강제로 이전 컨텐츠를 사용하도록 합니다.

    rawbytes

    사용되는 서명과 호환되도록 하기 위해 포함됩니다.

    byte_test

    <num of bytes>를 추출하고 특정 <offset>에서 <test value>의 값에 대해 <operator>로 선택한 작업을 수행합니다.

    byte_jump

    <offset>에서 <num of bytes>를 선택하고 감지 포인터를 해당 위치로 이동할 수 있도록 허용합니다.

    sameip

    소스의 IP 주소가 대상의 IP 주소와 동일한지 확인합니다.

    geoip

    네트워크 트래픽의 소스, 대상 또는 소스 및 대상 IP 주소와 일치시키고 IP 주소가 속하는 국가를 파악합니다.

    ip_proto

    packet-header의 IP 프로토콜과 일치됩니다.

    ftpbounce

    FTP 바운스 공격을 감지합니다.

    isdataat

    페이로드의 특정 부분에 아직 데이터가 있는지 확인합니다.

    id

    특정 IP ID 값과 일치됩니다.

    rpc

    RPC 프로시저 번호 및 RPC 버전과 일치됩니다.

    flowvar

    흐름 변수를 설정합니다.

    flowint

    흐름별 정수에 작동합니다.

    pktvar

    패킷 변수를 정의합니다.

    noalert

    규칙에 의해 경고가 생성되지 않습니다.

    flowbits

    흐름 플래그에 작동합니다.

    hostbits

    호스트 플래그에 작동합니다.

    ipv4-csum

    IPv4 체크섬 오류를 확인합니다.

    tcpv4-csum

    TCPv4 체크섬 오류를 확인합니다.

    tcpv6-csum

    TCPv6 체크섬 오류를 확인합니다.

    udpv4-csum

    UDPv4 체크섬 오류를 확인합니다.

    udpv6-csum

    UDPv6 체크섬 오류를 확인합니다.

    icmpv4-csum

    ICMPv4 체크섬 오류를 확인합니다.

    icmpv6-csum

    ICMPv6 체크섬 오류를 확인합니다.

    stream_size

    스트림의 바이트 양에 일치됩니다.

    detection_filter

    임계값에 도달한 후 매 일치할 때마다 경고가 발생합니다.

    dataset

    고정 버퍼를 데이터 집합과 일치시킵니다(실험 버전).

    datarep

    데이터 집합(실험 버전)에 작동합니다.

    decode-event

    개별 패킷을 디코딩하는 동안 감지된 값 및 조건입니다.

    gid

    다른 서명 그룹에 다른 ID 값을 제공합니다.

    nfq_set_mark

    iptables 규칙에서 NFQUEUE를 사용하여 Suricata로 패킷을 전송합니다.

    bsize

    버퍼 길이와 일치됩니다.

    tls.version

    TLS/SSL 버전과 일치됩니다.

    tls.subject

    [TLS/SSL 인증서 주체] 필드와 일치됩니다.

    tls.issuerdn

    [TLS/SSL 인증서 IssuerDN] 필드와 일치됩니다.

    tls_cert_notbefore

    [TLS 인증서 notBefore] 필드와 일치됩니다.

    tls_cert_notafter

    [TLS 인증서 notAfter] 필드와 일치됩니다.

    tls_cert_expired

    만료된 TLS 인증서와 일치됩니다.

    tls_cert_valid

    유효한 TLS 인증서와 일치됩니다.

    tls.fingerprint

    TLS/SSL 인증서 SHA1 지문과 일치됩니다.

    tls_store

    TLS/SSL 인증서를 디스크에 저장합니다.

    http_cookie

    HTTP 쿠키 버퍼와만 일치시킬 컨텐츠 수정자입니다.

    http.cookie

    HTTP 쿠키/세트 쿠키 버퍼와 일치시킬 고정 버퍼입니다.

    http_method

    HTTP 메서드 버퍼와만 일치시킬 컨텐츠 수정자입니다.

    http.method

    HTTP 메서드 버퍼와만 일치시킬 고정 버퍼입니다.

    http.protocol

    http_protocol 고정 버퍼를 정의합니다.

    http.start

    http_start 고정 버퍼를 정의합니다.

    urilen

    HTTP URI 길이와 일치됩니다.

    http_client_body

    HTTP 요청 본문과만 일치시킬 컨텐츠 수정자입니다.

    http.request_body

    HTTP 요청 본문 버퍼와 일치시킬 고정 버퍼입니다.

    http_server_body

    HTTP 응답 본문과 일치시킬 컨텐츠 수정자입니다.

    http.response_body

    HTTP 응답 본문 버퍼와 일치시킬 고정 버퍼입니다.

    http_header

    HTTP 헤더 버퍼와만 일치시킬 컨텐츠 수정자입니다.

    http.header

    정규화된 HTTP 헤더 버퍼와 일치시킬 고정 버퍼입니다.

    http.header_names

    http_header_names 고정 버퍼를 정의합니다.

    http.accept

    http accept 헤더에 대한 http.accept 고정 버퍼를 정의합니다.

    http.accept_lang

    http accept 언어 헤더에 대한 http.accept_lang 고정 버퍼를 정의합니다.

    http.accept_enc

    http accept 인코딩 헤더에 대한 http.accept_enc 고정 버퍼를 정의합니다.

    http.connection

    http connection 헤더에 대한 http.connection 고정 버퍼를 정의합니다.

    http.content_len

    http content length 헤더에 대한 http.content_len 고정 버퍼를 정의합니다.

    http.content_type

    http content type 헤더에 대한 http.content_type 고정 버퍼를 정의합니다.

    http.location

    http location 헤더에 대한 http.location 고정 버퍼를 정의합니다.

    http.server

    http server 헤더에 대한 http.server 고정 버퍼를 정의합니다.

    http.referer

    http referer 헤더에 대한 http.referer 고정 버퍼를 정의합니다.

    http_raw_header

    원시 HTTP 헤더 버퍼와 일치시킬 컨텐츠 수정자입니다.

    http.header.raw

    원시 HTTP 헤더 버퍼와 일치시킬 고정 버퍼입니다.

    http_uri

    HTTP uri-buffer와만 일치시킬 컨텐츠 수정자입니다.

    http.uri

    특별히 표준화된 HTTP URI 버퍼와만 일치시킬 고정 버퍼입니다.

    http.uri.raw

    특별히 원시 HTTP URI 버퍼와만 일치시킬 고정 버퍼입니다.

    http_raw_uri

    원시 HTTP URI와 일치시킬 컨텐츠 수정자입니다.

    http_stat_msg

    HTTP stat-msg-buffer와 일치시킬 컨텐츠 수정자입니다.

    http.stat_msg

    HTTP 응답 상태 메시지와 일치시킬 고정 버퍼입니다.

    http_stat_code

    HTTP stat-code-buffer와만 일치시킬 컨텐츠 수정자입니다.

    http.stat_code

    HTTP stat-code-buffer와만 일치시킬 고정 버퍼입니다.

    http_user_agent

    HTTP User-Agent 헤더와만 일치시킬 컨텐츠 수정자입니다.

    http.user_agent

    HTTP 사용자 에이전트 버퍼와만 일치시킬 고정 버퍼입니다.

    http_host

    HTTP 호스트 이름과 일치시킬 컨텐츠 수정자입니다.

    http.host

    HTTP 호스트 버퍼와 일치시킬 고정 버퍼입니다.

    http_raw_host

    HTTP 호스트 헤더 또는 HTTP URI의 원시 호스트 이름과 일치시킬 컨텐츠 수정자입니다.

    http.host.raw

    HTTP 호스트 헤더 또는 HTTP URI의 원시 호스트 이름과 일치시킬 고정 버퍼입니다.

    http.request_line

    HTTP 요청 줄과 일치시킬 고정 버퍼입니다.

    http.response_line

    HTTP 응답 줄과 일치시킬 컨텐츠 수정자입니다.

    nfs_procedure

    NFS 절차와 일치시킬 고정 버퍼입니다.

    nfs.version

    NFS 버전과 일치시킬 고정 버퍼입니다.

    ssh.proto

    ssh 프로토콜과 일치시킬 고정 버퍼입니다.

    ssh.protoversion

    SSH 프로토콜 버전과 일치시킬 고정 버퍼입니다.

    ssh.software

    SSH 소프트웨어와 일치시킬 고정 버퍼입니다.

    ssh.softwareversion

    SSH 소프트웨어 문자열과 일치시킬 고정 버퍼입니다.

    ssl_version

    SSL/TLS 레코드 버전과 일치시킬 고정 버퍼입니다.

    ssl_state

    SSL 연결의 상태와 일치시킬 고정 버퍼입니다.

    byte_extract

    특정 <offset>에서 <num of bytes>를 추출하고 <var_name>에 저장합니다.

    file.data

    파일 데이터와 컨텐츠 키워드를 일치시킵니다.

    pkt_data

    감지 포인터를 패킷 페이로드의 시작 부분으로 재설정합니다.

    app-layer-event

    애플리케이션 계층 구문 분석기 및 프로토콜 감지 엔진에서 생성된 이벤트와 일치됩니다.

    dcerpc.iface

    DCERPC 헤더의 인터페이스 UUID 값과 일치됩니다.

    dcerpc.opnum

    DCERPC 헤더의 인터페이스 내에서 하나 이상의 작업 번호 및/또는 작업 번호 범위와 일치됩니다.

    dcerpc.stub_data

    지정된 DCERPC 패킷의 스텁 데이터와 일치됩니다. '고정 버퍼'입니다.

    smb.named_pipe

    트리 연결의 SMB 명명 파이프와 일치시킬 고정 버퍼입니다.

    smb.share

    트리 연결의 SMB 공유 이름과 일치시킬 고정 버퍼입니다.

    asn1

    데이터를 구조화하고 설명하는 표준 표기법입니다.

    engine-event

    Suricata 침입 탐지 시스템의 감지 이벤트 기록입니다.

    stream-event

    TCP 스트림 엔진 이벤트와 일치시킬 규칙입니다.

    filename

    파일 이름과 일치됩니다.

    file.name

    파일 이름과 일치시킬 고정 버퍼입니다.

    fileext

    파일 이름의 확장명과 일치됩니다.

    filestore

    규칙이 일치하면 파일을 디스크에 저장합니다.

    filemagic

    libmagic이 파일에 대해 반환하는 정보에 일치됩니다.

    file.magic

    파일 매직에서 일치시킬 고정 버퍼입니다.

    filemd5

    MD5 체크섬 목록과 MD5 파일을 일치시킵니다.

    filesha1

    SHA-1 체크섬 목록과 SHA-1 파일을 일치시킵니다.

    filesha256

    SHA-256 체크섬 목록과 SHA-256 파일을 일치시킵니다.

    filesize

    전송 중인 파일의 크기에 일치됩니다.

    l3_proto

    서명이 IPv4, IPv6 또는 둘 다와 일치해야 하는지를 지정합니다.

    lua

    lua 스크립트를 사용하여 일치됩니다.

    iprep

    호스트의 IP 신뢰도 정보와 일치됩니다.

    dns.query

    DNS 쿼리 버퍼와 일치시킬 고정 버퍼입니다.

    dns.opcode

    DNS 헤더 opcode 플래그와 일치됩니다.

    tls.sni

    특별히 TLS SNI 버퍼와만 일치시킬 컨텐츠 수정자입니다.

    tls.certs

    TLS 인증서 고정 버퍼와 일치시킬 컨텐츠 수정자입니다.

    tls.cert_issuer

    특별히 TLS 인증서 발급자 버퍼와만 일치시킬 컨텐츠 수정자입니다.

    tls.cert_subject

    TLS 인증서 주체 버퍼와만 일치시킬 컨텐츠 수정자입니다.

    tls.cert_serial

    TLS 인증서 직렬 버퍼와 일치시킬 컨텐츠 수정자입니다.

    tls.cert_fingerprint

    TLS 인증서 지문 버퍼와 일치됩니다.

    ja3.hash

    JA3 해시 버퍼와 일치시킬 컨텐츠 수정자입니다.

    ja3.string

    JA3 문자열 버퍼와 일치시킬 컨텐츠 수정자입니다.

    ja3s.hash

    JA3S 해시 고정 버퍼와 일치시킬 컨텐츠 수정자입니다.

    ja3s.string

    JA3S 문자열 고정 버퍼와 일치시킬 컨텐츠 수정자입니다.

    modbus

    Modbus 요청의 다양한 속성과 일치됩니다.

    cip_service

    CIP 서비스와 일치됩니다.

    enip_command

    이더넷/IP 명령을 감지하기 위한 규칙입니다.

    dnp3.data

    다음 컨텐츠 옵션이 재조립된 애플리케이션 버퍼와 일치되도록 합니다.

    dnp3_func

    DNP3 요청 및 응답에 있는 애플리케이션 기능 코드와 일치됩니다.

    dnp3_ind

    응답 애플리케이션 헤더의 DNP3 내부 표시기 플래그와 일치됩니다.

    dnp3_obj

    DNP3 애플리케이션 데이터 개체와 일치됩니다.

    xbits

    비트에 작동합니다.

    base64_decode

    base64로 인코딩된 데이터를 디코딩합니다.

    base64_data

    컨텐츠는 base64 디코딩된 데이터와 일치됩니다.

    krb5_err_code

    Kerberos 5 오류 코드와 일치됩니다.

    krb5_msg_type

    Kerberos 5 메시지 유형과 일치됩니다.

    krb5.cname

    Kerberos 5 클라이언트 이름과 일치시킬 고정 버퍼입니다.

    krb5.sname

    Kerberos 5 서버 이름과 일치시킬 고정 버퍼입니다.

    sip.method

    SIP 메서드 버퍼와 일치시킬 고정 버퍼입니다.

    sip.uri

    SIP URI와 일치시킬 고정 버퍼입니다.

    sip.protocol

    SIP 프로토콜과 일치시킬 고정 버퍼입니다.

    sip.stat_code

    SIP 상태 코드와 일치시킬 고정 버퍼입니다.

    sip.stat_msg

    SIP 상태 메시지와 일치시킬 고정 버퍼입니다.

    sip.request_line

    SIP 요청 줄과 일치시킬 고정 버퍼입니다.

    sip.response_line

    SIP 응답 줄과 일치시킬 고정 버퍼입니다.

    template2

    템플릿입니다.

    ipv4.hdr

    IPV4 헤더와 일치시킬 고정 버퍼입니다.

    ipv6.hdr

    IPV6 헤더와 일치시킬 고정 버퍼입니다.

    tcp.hdr

    TCP 헤더와 일치시킬 고정 버퍼입니다.

    udp.hdr

    UDP 헤더와 일치시킬 고정 버퍼입니다.

    tcp.mss

    TCP MSS 옵션 필드와 일치시킬 고정 버퍼입니다.

    ftpdata_command

    FTP 데이터 채널을 트리거하는 FTP 명령과 일치됩니다.

    target

    공격의 대상이 어느 쪽인지를 출력 모듈에 나타냅니다.

    snmp.version

    SNMP 버전과 일치됩니다.

    snmp.community

    SNMP 커뮤니티와 일치시킬 SNMP 컨텐츠 수정자입니다.

    snmp.pdu_type

    SNMP PDU 유형과 일치됩니다.

    bypass

    sig의 일치가 완료되면 바이패스 콜백을 호출합니다.

    prefilter

    강제로 조건이 사전 필터로 사용되도록 합니다.

    compress_whitespace

    검사 전에 연속 공백 문자를 하나의 공백으로 압축하도록 버퍼를 수정합니다.

    strip_whitespace

    검사 전에 공백을 제거하도록 버퍼를 수정합니다.

    to_md5

    버퍼의 md5 해시로 변환합니다.

    to_sha1

    버퍼의 sha1 해시로 변환합니다.

    to_sha256

    버퍼의 sha256 해시로 변환합니다.

    dotprefix

    버퍼를 수정하여 dotprefix를 추출합니다.

    nopcap

    경고 시 흐름에서 pcap 컨텐츠가 잘리지 않도록 합니다.

프로시저

  1. NSX Manager에서 보안 > IDS/IPS 및 Malware Prevention([정책 관리] 섹션 아래에 있음)으로 이동합니다.
  2. IDS/IPS 및 Malware Prevention 페이지에서 서명 관리 탭으로 이동하고 사용자 지정 서명을 선택합니다.
  3. 추가를 클릭하고 파일에서 로드 옵션을 선택합니다.
  4. 이전에 서명 번들을 업로드한 경우 업로드하려는 새 번들로 모든 서명이 대체된다는 점에 유의하십시오. 따라서 기존 번들을 컴퓨터로 내보내고 새 서명으로 업데이트한 다음, 수정된 번들을 업로드합니다.
  5. 사용자 지정 서명 번들을 처음으로 업로드하는 경우 새 서명 집합 정의 창에서 서명 이름을 입력하고 컴퓨터의 해당 위치로 이동하여 서명 번들을 선택합니다. 유효성 검사를 클릭합니다.
  6. 서명을 게시하기 전에 유효 서명 및 명시적으로 선택한 주의 서명만 전송 노드 및 NSX Edge에 게시된다는 점에 유의하십시오.
    참고:

    유효하지 않은 서명 및 선택되지 않은 주의 서명은 전송 노드 및 NSX Edge에 게시되지 않습니다.

  7. 게시를 클릭합니다. 아직 게시되지 않은 새 서명 번들은 여전히 되돌릴 수 있으며 기존 서명을 유지할 수 있습니다. 게시되지 않은 서명을 NSX Manager UI에서 되돌릴 수 있습니다.