Log Service は、WhiteHat Security のグローバル共有資産ライブラリを使用したセキュリティチェック関数を提供しています。これらの関数は、ログ内の IP アドレス、ドメイン名、または URL が不審であるかどうかをチェックします。このトピックでは、これらの関数の構文について説明し、例を示します。
ユースケース
セキュリティチェック関数は、以下のシナリオで使用できます。
- インターネット、ゲーム、コンサルティングなど、サービス運用に厳しい要件がある業界では、IT およびセキュリティ担当者が不審なアクセス、攻撃、侵入を迅速に検出し、対応することができます。
- 銀行、証券、E コマースなど、内部資産を保護する必要がある業界では、IT およびセキュリティ担当者が不審な Web サイトへの内部アクセスやトロイの木馬のダウンロードを特定し、即座に対応することができます。
機能
セキュリティチェック関数は、以下の機能を提供しています。
- 信頼性:WhiteHat Security の継続的に更新されるグローバル共有資産ライブラリを活用しています。
- 高速:数百万の IP アドレス、ドメイン名、または URL を数秒でチェックします。
- シンプル:security_check_ip、security_check_domain、security_check_url の 3 つの SQL 関数を呼び出すだけで、任意のネットワークログから結果を取得できます。
- 柔軟性:インタラクティブクエリ、データ可視化、アラート作成をサポートします。
関数
Log Service は、以下のセキュリティチェック関数をサポートしています。
重要
分析文で文字列を使用する場合は、文字列を一重引用符 ('') で囲む必要があります。囲まれていない文字列または二重引用符 ("") で囲まれている文字列は、フィールド名または列名を示します。たとえば、 'status' は「status」という文字列を示し、status または "status" は「status」というフィールドを示します。
| 関数 | 構文 | 説明 |
| security_check_ip 関数 | security_check_ip(x) | IP アドレスが不審であるかどうかをチェックします。 |
| security_check_domain 関数 | security_check_domain(x) | ドメイン名が不審であるかどうかをチェックします。 |
| security_check_url 関数 | security_check_url(x) | URL が不審であるかどうかをチェックします。 |
security_check_ip
構文
security_check_ip(x)
パラメーター
| パラメーター | 説明 |
| x | チェックする IP アドレス。 |
戻り値のデータ型
bigint 値を返します。以下のいずれかの値となります。
- 1:IP アドレスが不審です。
- 0:IP アドレスは安全です。
例
client_ip フィールドを使用して、Web サイトにアクセスする不審なクライアントを検出します。
- クエリ文
* | SELECT client_ip, ip_to_country(client_ip,'en') AS country, ip_to_provider(client_ip) AS provider, count(1) AS PV WHERE security_check_ip(client_ip) = 1 GROUP BY client_ip ORDER BY PV DESC - クエリは、 client_ip、 country、 provider、 PV の 4 つの列を含むテーブルを返します。このテーブルには、不審な各クライアント IP アドレスのソース国、プロバイダー、ページビューが表示されます。
security_check_domain
構文
security_check_domain(x)
パラメーター
| パラメーター | 説明 |
| x | チェックするドメイン名。 |
戻り値のデータ型
bigint 値を返します。以下のいずれかの値となります。
- 1:ドメイン名が不審です。
- 0:ドメイン名は安全です。
例
この例では、1 分あたりの不審なアクセス試行回数を計算し、結果を折れ線グラフとして表示します。
- クエリ文
status : * | SELECT count_if( security_check_domain (http_referer) != 0 ) AS "Total Issues", time_series(__time__, '1m', '%H:%i:%s', '0') AS time GROUP BY time - クエリ結果

security_check_url
構文
security_check_url(x)
パラメーター
| パラメーター | 説明 |
| x | チェックする URL。 |
戻り値のデータ型
bigint 値を返します。以下のいずれかの値となります。
- 1:URL が不審です。
- 0:URL は安全です。
例
この例では、1 分あたりの安全なアクセス試行回数を計算し、結果を折れ線グラフとして表示します。
- クエリ文
status : * | SELECT count_if( security_check_url (request_uri) = 0 ) AS "Total Secure Count", time_series(__time__, '1m', '%H:%i', '0') as time GROUP BY time LIMIT 20 - クエリ結果
