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 には、「シグネチャの上書きは、VALID/WARNING シグネチャに対してのみ許可されます」というエラー メッセージが表示されます。また、古いバンドルのシグネチャを使用するように以前に更新された 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 断片化オフセット フィールドの特定の 10 進数の値で一致します。
ttl
特定の IP アドレスの存続時間の値を確認します。
tos
IP ヘッダー TOS フィールドの特定の 10 進数の値で一致します。
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 cookie-buffer でのみ一致するコンテンツ修飾子。
http.cookie
HTTP Cookie/Set-Cookie バッファで一致するスティッキー バッファ。
http_method
HTTP method-buffer でのみ一致するコンテンツ修飾子。
http.method
特に HTTP メソッド バッファでのみ一致するスティッキー バッファ。
http.protocol
http_protocol スティッキー バッファを定義します。
http.start
http_start スティッキー バッファを定義します。
urilen
HTTP URI の長さで一致します。
http_client_body
HTTP request-body でのみ一致するコンテンツ修飾子。
http.request_body
HTTP 要求本文バッファで一致するスティッキー バッファ。
http_server_body
HTTP response-body で一致するコンテンツ修飾子。
http.response_body
HTTP 応答本文バッファで一致するスティッキー バッファ。
http_header
HTTP header-buffer でのみ一致するコンテンツ修飾子。
http.header
正規化された HTTP header-buffer で一致するスティッキー バッファ。
http.header_names
http_header_names スティッキー バッファを定義します。
http.accept
http accept ヘッダーの http.accept スティッキー バッファを定義します。
http.accept_lang
http accept language ヘッダーの http.accept_lang スティッキー バッファを定義します。
http.accept_enc
http accept encoding ヘッダーの 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
Raw HTTP ヘッダー バッファで一致するコンテンツ修飾子。
http.header.raw
Raw HTTP ヘッダー バッファで一致するスティッキー バッファ。
http_uri
特に HTTP uri-buffer でのみ一致するコンテンツ修飾子。
http.uri
特に正規化された HTTP URI バッファでのみ一致するスティッキー バッファ。
http.uri.raw
特に Raw HTTP URI バッファでのみ一致するスティッキー バッファ。
http_raw_uri
Raw 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 の Raw ホスト名で一致するコンテンツ修飾子。
http.host.raw
HTTP ホスト ヘッダーまたは HTTP URI の Raw ホスト名で一致するスティッキー バッファ。
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
App Layer Parsers およびプロトコル検出エンジンによって生成されたイベントで一致します。
dcerpc.iface
DCERPC ヘッダーのインターフェイス UUID の値で一致します。
dcerpc.opnum
DCERPC ヘッダーのインターフェイス内の 1 つまたは複数の操作番号または操作番号の範囲で一致します。
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 query-buffer に一致するスティッキー バッファ。
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
EtherNet/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
検査の前に、連続する空白文字を 1 つに圧縮するようにバッファを変更します。
strip_whitespace
検査の前に、空白を取り除くようにバッファを変更します。
to_md5
バッファの md5 ハッシュに変換します。
to_sha1
バッファの sha1 ハッシュに変換します。
to_sha256
バッファの sha256 ハッシュに変換します。
dotprefix
dotprefix を抽出するようにバッファを変更します。
nopcap
アラート時にフローから pcap コンテンツを切り取らないようにします。