コンテンツにスキップ

GraphQL アナリティクス

GraphQL アナリティクス API を使用して、トラフィックに一致するルールに関連する Magic Firewall ネットワークトラフィックのデータを確認します。これには、Magic Firewall ダッシュボードで構成したルールと、Cloudflare が Magic Firewall 管理ルール および Magic Firewall IDS 機能の一部として管理するルールの両方が含まれます。

始める前に、API トークンを取得する必要があります。GraphQL アナリティクスの使い方についての追加情報は、GraphQL アナリティクス APIを参照してください。

Cloudflare アカウント ID を取得する

オブジェクトのための Magic Firewall GraphQL クエリを構築するには、Cloudflare アカウント ID が必要です。

Cloudflare アカウント ID を取得する

  1. Cloudflare ダッシュボードにログインし、アカウントを選択します。
  2. ブラウザのアドレスバーの URL は https://dash.cloudflare.com/ の後に16進数の文字列が表示されるはずです。この16進数の文字列があなたの Cloudflare アカウント ID です。

ファイアウォールルールのルール ID を取得する

特定のルールのアナリティクスを収集するためのクエリを構築するには、各ファイアウォールルールのルール ID が必要です。

  1. Cloudflare ダッシュボードにログインし、アカウントを選択します。
  2. Magic Firewall を選択します。
  3. ルール ID が必要なルールをリストから見つけ、編集を選択します。
  4. ルール ID を見つけ、コピーボタンを選択します。
  5. キャンセル を選択して Magic Firewall ページに戻ります。

Magic Firewall クエリの例で GraphQL スキーマを探索する

このセクションでは、5 分間隔で構成されたすべての Magic Firewall ルールの 5 分間のカウントを取得するテストクエリを実行します。以下のコードを GraphiQL にコピーして貼り付けることができます。

アナリティクススキーマに関する追加情報は、GraphiQL でアナリティクススキーマを探索するを参照してください。

query {
viewer {
accounts(filter: {accountTag: "<YOUR_ACCOUNT_ID>"}) {
magicFirewallSamplesAdaptiveGroups(
filter: {datetime_geq: "2022-01-05T11:00:00Z",
datetime_leq: "2022-01-05T12:00:00Z"},
limit: 2,
orderBy: [datetimeFiveMinute_DESC])
{
sum {
bits
packets
}
dimensions {
datetimeFiveMinute
ruleId
}
}
}
}
}

Magic Firewall の例クエリ

特定のルールのアナリティクスを取得する

以下の例を使用して、過去1時間以内の疑わしい悪意のあるトラフィックストリームの上位10件のパケットとビットの合計を表示します。結果を受け取った後、5 分間の平均でパケットレートでソートできます。

各ストリームについて、以下を表示します:

  • ソースおよび宛先 IP アドレス
  • 受信した Cloudflare データセンター
  • 1時間以内に受信したビットおよびパケットの合計トラフィック量
  • ファイアウォールルールによって取られたアクション
query{
viewer {
accounts(filter: {accountTag: "<ACCOUNT_ID>"}) {
magicFirewallNetworkAnalyticsAdaptiveGroups(
filter: {
ruleId: "<RULE_ID>",
datetime_geq: "2022-01-12T10:00:00Z",
datetime_leq: "2022-01-12T11:00:00Z"
}
limit: 10,
orderBy: [avg_packetRateFiveMinutes_DESC])
{
sum {
bits
packets
}
dimensions {
coloCity
ipDestinationAddress
ipSourceAddress
outcome
}
}
}
}
}

IDS アナリティクスを取得する

以下の例を使用して、Magic Firewall IDS が過去1時間に検出した上位10件のトラフィックストリームのパケットとビットの合計を表示します。

verdictdrop に設定し、outcomepass に設定することで、検出としてマークされたトラフィック(すなわち、verdict が drop であったが、ドロップされなかったトラフィック)をフィルタリングしています(たとえば、outcome が pass であった)。これは、現在のところ、Magic Firewall IDS は悪意のあるトラフィックを検出するだけで、トラフィックをドロップしないためです。

各ストリームについて、以下を表示します:

  • ソースおよび宛先 IP アドレス。
  • 受信した Cloudflare データセンター。
  • 1時間以内に受信したビットおよびパケットの合計トラフィック量。
query{
viewer {
accounts(filter: {accountTag: "<ACCOUNT_ID>"}) {
magicIDPSNetworkAnalyticsAdaptiveGroups(
filter: {
datetime_geq: "2022-01-12T10:00:00Z",
datetime_leq: "2022-01-12T11:00:00Z",
verdict: drop,
outcome: pass
}
limit: 10,
orderBy: [avg_packetRateFiveMinutes_DESC])
{
sum {
bits
packets
}
dimensions {
coloCity
ipDestinationAddress
ipSourceAddress
}
}
}
}
}

また、分析されたすべてのトラフィックを検査するために、悪意のあるトラフィックとその他のトラフィックにグループ化された例を使用することもできます。応答には、各5分間のタイムスタンプに対して2つのエントリが含まれます。悪意のあるトラフィックには verdictdrop に設定され、IDS ルールに一致しなかったトラフィックには verdictpass に設定されます。

query{
viewer {
accounts(filter: {accountTag: "<ACCOUNT_ID>"}) {
magicIDPSNetworkAnalyticsAdaptiveGroups(
filter: {
datetime_geq: "2022-01-12T10:00:00Z",
datetime_leq: "2022-01-12T11:00:00Z"
}
limit: 10,
orderBy: [avg_packetRateFiveMinutes_DESC])
{
sum {
bits
packets
}
dimensions {
coloCity
ipDestinationAddress
ipSourceAddress
verdict
}
}
}
}
}