Powered by Zoomin Software. For more details please contactZoomin

Flowmon ADS User Guide

カスタムパターン

  • Last Updated: April 5, 2026
  • 21 minute read
    • Flowmon Products
    • Flowmon Anomaly Detection System
    • Documentation

Flowmon ADSアプリケーションでは、シンプルなカスタム振る舞いパターンを作成できます。これらのパターンは、[設定] → [処理][カスタムパターン]で定義できます。これらのパターンは、BPATTERNSメソッドによる処理を有効にできます。パターンは、バイフローレコードからのシンプルなSQLクエリとして定義されます(「バイフローエントリのフィールド」を参照してください)。

バイフローレコードは、ペアになっているフロー(リクエストと返信)によって構成されます。方向ごとに異なるフロー項目は、元の方向に従ってプレフィックス付きでバイフローレコードに保存されます。たとえば、転送されたデータの量はreq_transferredフィールドとrep_transferredフィールドに保存されます。両方の元のフローで同じフロー項目は、リクエストフローに従って1回だけ保存されます。たとえば、バイフローレコードの送信元IPアドレスは、返信では宛先として指定されますが、リクエストフローの送信元IPアドレスに相当します。ペアになっていないフローの場合は、リクエストフローに対応する項目のみがバイフローレコードに入力されます。

カスタムパターンの編集可能なパラメータには、[パターンコード][パターンの説明][パターン詳細]、パターン式パラメータがあります。

  • [パターンコード]では、パターン(BPATTERNSメソッドで指定されたパターンをアクティブ化(非アクティブ化)するためのパラメータとして使用されます)を指定します。

  • [パターンの説明]パラメータでは、パターンによって検知されたイベントについて説明します。

  • [パターン詳細]は、イベント詳細の部分文字列として使用されます。

  • パターン式は、where句having句、イベントソースで表されます。

カスタム振る舞いパターン用に生成されるイベント詳細文字列には以下が含まれます。

  • パターンの短い説明([パターン詳細]パラメータから取得)

  • イベントソースからイベントターゲットへの発信フローの数

  • イベントターゲットからイベントソースへの受信フローの数

  • イベントソースがイベントターゲットに送信したデータの数

  • イベントソースがイベントターゲットから受信したデータの数

  • イベントソースがイベントターゲットに送信したパケットの数

  • イベントソースがイベントターゲットから受信したパケットの数

  • イベントターゲットの数

送信元IPアドレスと宛先IPアドレスを含むバイフローテーブルがあります。[イベントソース]オプションを使用して、イベントのイベントソースとして送信元IPアドレス(デフォルトオプション)または宛先IPアドレスを使用するかどうかを指定できます。宛先IPアドレスをイベントソースとして選択した場合、宛先IPアドレスによってグループ化されたレコードからイベントが検知され、宛先IPアドレスがイベントソースとして使用され、関連するすべてのIPアドレスがイベントターゲットになります。イベントソースに応じて、ターゲットIPと通信していたすべての宛先IPアドレスまたは送信元IPアドレスがイベントターゲットとして表示されます。たとえば、SRVNA検知メソッドでは、宛先IPアドレスによるグループ化を使用し、使用できないターゲット(サービスのIPアドレス)をイベントソースとして、すべての送信元IPアドレス(クライアントの接続試行)をイベントターゲットとしてマークします。

where句とhaving句

パターン自体は、SQL形式で記述されたwhere式とhaving式で定義されます。where式とhaving式で有効なSQLite言語のすべての構成要素がサポートされます。これには下記の演算子と関数が含まれます。文字列を囲むために一重引用符(アポストロフィ)が必要です。これは両方の式に当てはまります。論理式の要素をカッコ内に挿入できます。

where式は、定義済みの条件に基づき、論理演算子と関数を使用してレコードをフィルタリングすることを目的としています。having式では、これらの結果を使用する集計関数を使用できます。つまり、having式とwhere式の違いは、where式がテーブルの行を操作して個々の行をフィルタリングし、その後、havingが集計関数を使用してレコードのグループを操作するオプションを追加する、ということです。以下の集計関数がサポートされます。

  • SUM: 値の合計

  • AVG: 値の平均

  • COUNT: 値の数

  • MAX: 最大値

  • MIN: 最小値

  • VARIANCE: 値の分散

  • STDDEV: 標準偏差

集計関数の一覧とその説明については、SQLiteのマニュアルを参照してください(「集計関数」を参照してください)。where式とhaving式の詳細については、それぞれこちらこちらを参照してください。

カスタムパターンの例」を参照してください。

バイフローエントリのフィールド

以下のフィールドをフィルタリングに使用できます。

  • source_ip_address: 内部形式の送信元IPアドレス。「変換機能のための関数」を参照してください。

  • destination_ip_address: 内部形式の宛先IPアドレス。「変換機能のための関数」を参照してください。

  • protocol: プロトコル番号。

  • source_port: 送信元ポート番号。

  • destination_port: 宛先ポート番号。

  • req_duration: リクエストフローのミリ秒単位の時間(整数)。

  • rep_duration: レスポンスフローのミリ秒単位の時間(整数)。

  • req_transferred: リクエストフローの合計送信バイト数(整数)。

  • rep_transferred: レスポンスフローの合計送信バイト数(整数)。

  • req_packets: リクエストフローの合計パケット数(整数)。

  • rep_packets: レスポンスフローの合計パケット数(整数)。

  • req_flags: リクエストフローのTCPフラグ。適切なフィルタリング関数を使用することをお勧めします(「変換機能のための関数」を参照してください)。

  • rep_flags: レスポンスフローのTCPフラグ。

  • src_mac: 10進数の送信元MACアドレス。「変換機能のための関数」を参照してください。

  • dst_mac: 10進数の宛先MACアドレス。「変換機能のための関数」を参照してください。

  • src_as: 送信元の自律システム番号。

  • dst_as: ターゲットの自律システム番号。

  • src_country: 送信元IPアドレスに割り当てられる国番号(「国の一覧」を参照してください)。

  • dst_country: 宛先IPアドレスに割り当てられる国番号。

  • http_host: HTTPホスト名の最後の32文字。DNSクエリの場合は、クエリされたDNS名が含まれる場合があります。

  • http_url: HTTP GETリクエストで取得されたURLの最初の64文字。

  • src_user_id: 送信元IPアドレス(Flowmon OSの設定の場合は、Active Directoryから取得したもの)を使用しているユーザのID。

  • dst_user_id: 宛先IPアドレスを使用しているユーザのID。

  • tcp_ttl: TCP TTL。TCP SYNフラグが設定されている場合にのみ設定されます。

  • tcp_window: TCPウィンドウ。TCP SYNフラグが設定されている場合にのみ設定されます。

  • syn_size: リクエストフローのTCP SYNパケットのサイズ。

  • ua_os: オペレーティングシステムの番号(HTTPユーザエージェントから取得されます。「オペレーティングシステムの一覧」を参照してください)。65535はOSが不明であることを意味します。

  • ua_os_version: オペレーティングシステムのバージョン番号(HTTPユーザエージェントから取得されます)。10進数で、その整数部はメジャーバージョンを、小数部はマイナーバージョンを表します。65535以上の番号はバージョンが不明であることを意味します。

  • paired: バイフローにフローペア全体が含まれているか、単一のペアになっていないフローのみがあるかを示します。数値は0または1です。

  • ja3_fingerprint: クライアントのTLS JA3フィンガープリントの値。これは、16進数字の32文字長のストリングです。

カスタムパターン定義で使用できる変数:

  • #src_filter#: 割り当てられているフィルタ。送信元IPアドレスに適用されます。

  • #dst_filter#: 割り当てられているフィルタ。宛先IPアドレスに適用されます。

  • #neg_src_filter#: 割り当てられているフィルタのネガティブバージョン。送信元IPアドレスに適用されます(IPアドレスは指定されたフィルタの範囲外になければなりません)。

  • #neg_dst_filter#: 割り当てられているフィルタのネガティブバージョン。宛先IPアドレスに適用されます。

  • #empty_filter#: 割り当てられているフィルタが空かどうかを確認するするために使用します。

カスタムパターン定義で使用できる演算子

  • =: 等価テスト(source_port = 80)

  • <>: 不等テスト(protocol <> 6)

  • >: より大きい(req_transferred > 102400)

  • <: より小さい(req_duration < 10)

  • >=: 以上

  • <=: 以下

  • IN: 指定されたセットに属する(destination_port IN (80, 443))

  • BETWEEN . . .AND: 指定された範囲に属する(req_duration BETWEEN 10 AND 60 (指定された境界を含みます))

  • LIKE: 指定された部分文字列を含む文字列(http_host LIKE '%facebook%' (パーセント記号は任意の文字列を表します))。

  • NOT: 指定された制約の否定(NOT (req_duration < 10 AND source_port = 80))

  • **+: 加算(req_transferred + rep_transferred >= 1048576)

  • **−: 減算(req_duration - rep_duration > 3)

  • ****: 乗算(req_transferred * paired > 0)

  • *: 除算(req_transferred / req_packets = 40)

パターンの関数

カスタムパターン定義で使用できる関数:

  • matchflags(flags, required, forbidden): TCPフラグと一致させるための関数。flagsreq_flagsまたはrep_flagsに置き換える必要があります。この関数は、flagsにすべてのrequiredフラグが含まれていてforbiddenフラグが含まれていない場合(および含まれていない場合にのみ) 0を返します。この関数は、0との等価テストとして使用する必要があります。
補足

例:

  • matchflags('RUAPSF', 'AP', '-') = 0
  • matchflags('..APS.', 'A', 'F') = 0
  • matchflags('..APS.', 'A', 'S') <> 0
  • matchflags('..APS.', '-', 'R') = 0
  • ip_to_int(readable_ip): IPアドレスを内部形式に変換するための関数。

  • mac_to_int(readable_mac): MACアドレスを内部形式に変換するための関数。

カスタムパターンの例

補足

192.168.1.10で実行されているSSHハニーポットでの通信を検知する例(5つを超えるパケットを含むフローのみが対象):

where式:

#neg_src_filter# AND destination_ip_address = ip_to_int('192.168.1.10') AND destination_port = 22

AND protocol = 6 AND matchflags(req_flags, 'S', '-') = 0 AND req_packets > 5

補足

sambaプロトコル経由で合計1GBを超えるデータを伝送しているステーションを検知する例:

where式:

#src_filter# AND destination_port = 445 AND protocol = 6

having式:

SUM(req_transferred) + SUM(rep_transferred) > 1048576000

補足

ポートスキャン検知の例。この場合、having式によってスキャン試行の最小回数が制限されています。

where式:

#src_filter# AND destination_port < 1024 AND protocol = 6 AND req_flags IN ('....S.', '......', '.....F', 'U.P..F')

having式:

COUNT(*) >= 100

国の一覧

LAN ローカルエリアネットワーク 0
AF アフガニスタン 4
AX オーランド諸島 248
AL アルバニア 8
DZ アルジェリア 12
AS 米国領サモア 16
AD アンドラ 20
AO アンゴラ 24
AI アンギラ 660
AQ 南極 10
AG アンティグアバーブーダ 28
AR アルゼンチン 32
AM アルメニア 51
AW アルバ 533
AU オーストラリア 36
AT オーストリア 40
AZ アゼルバイジャン 31
BS バハマ 44
BH バーレーン 48
BD バングラデシュ 50
BB バルバドス 52
BY ベラルーシ 112
BE ベルギー 56
BZ ベリーズ 84
BJ ベナン 204
BM バミューダ 60
BT ブータン 64
BO ボリビア多民族国 68
BQ ボネール、シントユースタティウスおよびサバ 535
BA ボスニアヘルツェゴビナ 70
BW ボツワナ 72
BV ブーヴェ島 74
BR ブラジル 76
IO イギリス領インド洋地域 86
BN ブルネイダルサラーム 96
BG ブルガリア 100
BF ブルキナファソ 854
BI ブルンジ 108
KH カンボジア 116
CM カメルーン 120
CA カナダ 124
CV カーボベルデ 132
KY ケイマン諸島 136
CF 中央アフリカ共和国 140
TD チャド 148
CL チリ 152
CN 中国 156
CX クリスマス島 162
CC ココス(キーリング)諸島 166
CO コロンビア 170
KM コモロ 174
CG コンゴ 178
CD コンゴ民主共和国 180
CK クック諸島 184
CR コスタリカ 188
CI コートジボワール 384
HR クロアチア 191
CU キューバ 192
CW キュラソー島 531
CY キプロス 196
CZ チェコ共和国 203
DK デンマーク 208
DJ ジブチ 262
DM ドミニカ 212
DO ドミニカ共和国 214
EC エクアドル 218
EG エジプト 818
SV エルサルバドル 222
GQ 赤道ギニア 226
ER エリトリア 232
EE エストニア 233
ET エチオピア 231
FK フォークランド諸島(マルビナス諸島) 238
FO フェロー諸島 234
FJ フィジー 242
FI フィンランド 246
FR フランス 250
GF フランス領ギアナ 254
PF フランス領ポリネシア 258
TF フランス領南方・南極地域 260
GA ガボン 266
GM ガンビア 270
GE ジョージア 268
DE ドイツ 276
GH ガーナ 288
GI ジブラルタル 292
GR ギリシャ 300
GL グリーンランド 304
GD グレナダ 308
GP グアドループ島 312
GU グアム島 316
GT グアテマラ 320
GG ガーンジー島 831
GN ギニア 324
GW ギニアビサウ 624
GY ガイアナ 328
HT ハイチ 332
HM ハード島およびマクドナルド諸島 334
VA 教皇庁(バチカン市国) 336
HN ホンジュラス 340
HK 香港 344
HU ハンガリー 348
IN インド 356
ID インドネシア 360
IR イランイスラム共和国 364
IQ イラク 368
IE アイルランド 372
IM マン島 833
IL イスラエル 376
IT イタリア 380
JM ジャマイカ 388
JP 日本 392
JE ジャージー島 832
JO ヨルダン 400
KZ カザフスタン 398
KE ケニア 404
KI キリバス 296
KP 朝鮮民主主義人民共和国 408
KR 大韓民国 410
KW クウェート 414
KG キルギスタン 417
LA ラオス人民民主共和国 418
LV ラトビア 428
LB レバノン 422
LS レソト 426
LR リベリア 430
LY リビア 434
LI リヒテンシュタイン 438
LT リトアニア 440
LU ルクセンブルグ 442
MO マカオ 446
MK 北マケドニア共和国 807
MG マダガスカル 450
MW マラウイ 454
MY マレーシア 458
MV モルディブ 462
ML マリ 466
MT マルタ 470
MH マーシャル諸島 584
MQ マルティニーク島 474
MR モーリタニア 478
MU モーリシャス 480
YT マヨット島 175
MX メキシコ 484
FM ミクロネシア連邦 583
MD モルドバ共和国 498
MC モナコ 492
MN モンゴル 496
ME モンテネグロ 499
MS モントセラト島 500
MA モロッコ 504
MZ モザンビーク 508
MM ミャンマー 104
NA ナミビア 516
NR ナウル 520
NP ネパール 524
NL オランダ 528
NC ニューカレドニア 540
NZ ニュージーランド 554
NI ニカラグア 558
NE ニジェール 562
NG ナイジェリア 566
NU ニウエ 570
NF ノーフォーク島 574
MP 北マリアナ諸島 580
NO ノルウェー 578
OM オマーン 512
PK パキスタン 586
PW パラオ 585
PS パレスチナ国 275
PA パナマ 591
PG パプアニューギニア 598
PY パラグアイ 600
PE ペルー 604
PH フィリピン 608
PN ピトケアン島 612
PL ポーランド 616
PT ポルトガル 620
PR プエルトリコ 630
QA カタール 634
RE レユニオン 638
RO ルーマニア 642
RU ロシア連邦 643
RW ルワンダ 646
BL サンバルテルミー島 652
SH セントヘレナ・アセンションおよびトリスタンダクーニャ 654
KN セントクリストファーネービス 659
LC セントルシア 662
MF サンマルタン(フランス領) 663
PM サンピエール島およびミクロン島 666
VC セントビンセントおよびグレナディーン諸島 670
WS サモア 882
SM サンマリノ 674
ST サントメプリンシペ 678
SA サウジアラビア 682
SN セネガル 686
RS セルビア 688
SC セーシェル 690
SL シエラレオネ 694
SG シンガポール 702
SX シントマールテン(オランダ領) 534
SK スロバキア 703
SI スロベニア 705
SB ソロモン諸島 90
SO ソマリア 706
ZA 南アフリカ 710
GS サウスジョージアおよびサウスサンドウィッチ諸島 239
SS 南スーダン 728
ES スペイン 724
LK スリランカ 144
SD スーダン 729
SR スリナム 740
SJ スヴァールバル諸島およびヤンマイエン島 744
SZ スワジランド 748
SE スウェーデン 752
CH スイス 756
SY シリアアラブ共和国 760
TW 中国台湾省 158
TJ タジキスタン 762
TZ タンザニア連合共和国 834
TH タイ 764
TL 東ティモール 626
TG トーゴ 768
TK トケラウ 772
TO トンガ 776
TT トリニダードトバゴ 780
TN チュニジア 788
TR トルコ 792
TM トルクメニスタン 795
TC タークスカイコス諸島 796
TV ツバル 798
UG ウガンダ 800
UA ウクライナ 804
AE アラブ首長国連邦 784
GB イギリス 826
US アメリカ合衆国 840
UM 合衆国領有小離島 581
UY ウルグアイ 858
UZ ウズベキスタン 860
VU バヌアツ 548
VE ベネズエラボリバル共和国 862
VN ベトナム 704
VG 英領バージン諸島 92
VI 米領バージン諸島 850
WF ウォリスフトゥーナ 876
EH 西サハラ 732
YE イエメン 887
ZM ザンビア 894
ZW ジンバブエ 716

オペレーティングシステムの一覧

ID OS名 ID OS名 ID OS名
1 AIX 26 Arch Linux 51 Nintendo Wii U
2 Amiga OS 27 CentOS 52 OpenBSD
3 Android 28 Debian 53 OpenVMS
4 iOS 29 Fedora 54 OS/2
5 Mac OS 30 Gentoo 55 OS/2 Warp
6 Mac OS X 31 Knoppix 56 Palm OS
7 AROS 32 Kanotix 57 OPClinuxOS
8 Bada 33 Lindspire 58 QNX
9 BeOS 34 Mageia 59 RISC OS
10 BlackBerry 35 Mandriva 60 Sailfish
11 BlackBerry Tablet 36 Mint 61 SkyOS
12 Brew 37 Red Hat 62 Solaris
13 Chrome OS 38 Slackware 63 Syllable
14 Danger Hiptop 39 SUSE 64 Symbian
15 Darwin 40 Ubuntu 65 Tizen
16 DragonFly BSD 41 VectorLinux 66 Ubuntu Touch
17 Firefox OS 42 LiveArea 67 webOS
18 FreeBSD 43 MeeGo 68 Windows
19 GNU OS 44 MINIX 69 Windows 3.x
20 Haiku OS 45 MorphOS 70 Windows CE
21 HP-UX 46 MSN TV (WebTV) 71 Windows Phone
22 Inferno 47 NetBSD 72 Windows Xbox
23 IRIX 48 Nintento 3DS 73 XrossMediaBar
24 Joli OS 49 Nintento DS
25 Linux 50 Nintendo Wii
TitleResults for “How to create a CRG?”Also Available inAlert