脅威インテリジェンス オープンAPI
Juniper Advanced Threat Prevention Cloud(Juniper ATP Cloud)は、以下のAPIを提供し、優れたクラウドベースの保護機能を使用して、高度なマルウェアやサイバー攻撃からネットワークを守れます。
脅威インテリジェンス API の概要
脅威インテリジェンスオープンAPIにより、要件に合わせてJuniper ATP Cloudコマンド&コントロールサーバー(C&C)フィードをプログラムすることができます。脅威インテリジェンス API を使用して、次の操作を実行できます。
IP、URL、またはドメインを、脅威レベルが 1 から 10 の C&C フィードに挿入します。最大 30 種類のカスタム C&C フィードを作成できます。
IP には、IP アドレス、IP 範囲、または IP サブネットを指定できます。
IPv4 アドレスと IPv6 アドレスの両方をサポートしています。
IP、URL、またはドメインの脅威レベルを 1 から 10 に更新します。
フィード内の特定のサーバーを削除するか、フィード全体を削除します。
フィード処理エンジンから、操作 (処理中) またはエラー (存在する場合) の現在のステータスを取得します。
脅威インテリジェンス API は、JSON 形式の Swagger API 仕様をサポートしており、プログラムによるアクセスを可能にします。Swagger API 仕様の詳細については、 https://threat-api.sky.junipersecurity.net/swagger.json を参照してください。
Junos OS 19.2以降、SRXシリーズファイアウォールは、脅威インテリジェンスフィード内のHTTPトラフィックだけでなく、encrypted traffic(HTTPS)の検査もサポートしています。サーバー名識別 (SNI) チェックもサポートされています。これらの変更により、新しいCLIコマンドが導入されることはありません。既存のコマンドは、この機能を利用します。
次の表に、脅威インテリジェンス API のレート制限 (1 分あたりに作成できる要求の数) を示します。これらのレート制限を超えると、 429 - Too many Requests
エラーが表示されます。
特徴 |
1 分あたりの最大要求数 |
---|---|
C&Cフィード |
60 |
ブロックリストフィード |
60 |
許可リストフィード |
60 |
DNS |
50 |
構成とセットアップ
APIにアクセスするには、Juniper ATP Cloud Web UIでアプリケーショントークンを作成し、そのトークンを認証ヘッダーのベアラートークンとして使用する必要があります。
アプリケーショントークンを生成するには、次のようにします。
認証情報を使用して、Juniper ATP Cloud Web UIにログインします。「 管理」>「アプリケーション・トークン 」を選択し、プラス(+)記号をクリックします。表示されるポップアップボックスにトークンの名前とその他の必要な詳細を入力し、[ OK ]をクリックして新しいトークンを作成します。 図 1 を参照してください。
図 1: アプリケーション トークンの作成
図 2 に示すように、新しいトークンが作成されたことを示す確認ポップアップ メッセージが表示されます。これで、このトークンを使用して Juniper ATP Cloud API にアクセスできるようになります。
図 2: アプリケーション トークンの作成の確認
手記:ユーザーごとに最大 10 個のトークンを生成でき、各トークンは 1 年間有効です。
アプリケーショントークンの作成方法の詳細については、「 アプリケーショントークンの作成」を参照してください。
使用例
次の cURL の例は、脅威インテリジェンス API の使用法を示しています。
curl -k -v -XPOST -H "Authorization: Bearer <TOKEN>" -F file=@/tmp/whitelist.txt <API HOST>/v1/cloudfeeds/whitelist/file/ip/<FEEDNAME>
curl -k -v -XPOST -H "Authorization: Bearer <TOKEN>" -F file=@/tmp/whitelist.txt <API HOST>/v1/cloudfeeds/cc/file/ip/<FEEDNAME>
どこ:
API HOST
は、カスタマーポータルの場所に対応するオープンAPIホスト名の名前です。お住まいの地域の正しいホスト名については、 表 3 を参照してください。TOKEN
は、Juniper ATP Cloud Web UIで生成されたアプリケーショントークンです。FEED NAME
は、作成するフィードの名前です。
Juniper ATP Cloud APIの概要
Juniper ATP Cloud APIを使用して、以下の操作を実行できます。
特定のサーバータイプのブロックリストまたは許可リストを取得します。
ブロックリストまたは許可リストのサーバーリストの IP、URL、または FQDN を更新します。
IP には、IP アドレス、IP 範囲、または IP サブネットを指定できます。
IPv4 アドレスと IPv6 アドレスの両方をサポートしています。
リスト内の特定のサーバーを削除するか、リスト全体を削除します。
Juniper ATP Cloud APIは、JSON形式のSwagger API仕様をサポートしており、プログラムによるアクセスを可能にします。Swagger API 仕様の詳細については、 https://api.sky.junipersecurity.net/swagger.json を参照してください。
以下の表は、Juniper ATP Cloud APIのレート制限(1分あたりに作成できるリクエスト数)の一覧です。これらのレート制限を超えると、 429 - Too many Requests
エラーが表示されます。
特徴 |
1 分あたりの最大要求数 |
---|---|
ハッシュ検索 |
50 |
ファイル送信 |
10 |
ブロックリスト |
60 |
許可リスト |
60 |
Juniper ATP Cloud は、許可リストで最大 3,000 エントリ、ブロックリストで最大 3,000 エントリをサポートします。
構成とセットアップ
APIにアクセスするには、Juniper ATP Cloud Web UIでアプリケーショントークンを作成し、そのトークンを認証ヘッダーのベアラートークンとして使用する必要があります。トークンの作成に関する詳しい情報は、 設定と設定 をご覧ください。
Juniper ATP Cloud の URL
Juniper ATP Cloudのホスト名は場所によって異なります。以下の表を参照してください。
場所 |
Juniper ATP Cloud URL |
---|---|
米国 |
カスタマーポータル: https://amer.sky.junipersecurity.net Open API(感染したホスト、許可リスト/ブロックリスト、サンプル送信): https://api.sky.junipersecurity.net オープンAPI(脅威インテリジェンス): https://threat-api.sky.junipersecurity.net |
欧州連合 |
カスタマーポータル: https://euapac.sky.junipersecurity.net Open API(感染したホスト、許可リスト/ブロックリスト、サンプル送信): https://api-eu.sky.junipersecurity.net オープンAPI(脅威インテリジェンス): https://threat-api.sky.junipersecurity.net |
APAC |
カスタマーポータル: https://apac.sky.junipersecurity.net Open API(感染したホスト、許可リスト/ブロックリスト、サンプル送信): https://api-apac.sky.junipersecurity.net オープンAPI(脅威インテリジェンス): https://threat-api-apac.sky.junipersecurity.net |
カナダ |
カスタマーポータル: https://canada.sky.junipersecurity.net Open API(感染したホスト、許可リスト/ブロックリスト、サンプル送信): https://api-canada.sky.junipersecurity.net オープンAPI(脅威インテリジェンス): https://threat-api-canada.sky.junipersecurity.net |
使用例
次のcURLの例は、Juniper ATP Cloud APIの使用方法を示しています。
curl -k -v -XPOST -H "Authorization: Bearer <TOKEN>” -F file=@/tmp/blacklist.txt <API HOSTNAME>/v1/skyatp/blacklist/file/ip/<FEED NAME>
どこ:
API HOST
は、カスタマーポータルの場所に対応するオープンAPIホスト名の名前です。お住まいの地域の正しいホスト名については、 表 3 を参照してください。TOKEN
は、Juniper ATP Cloud Web UIで生成されたアプリケーショントークンです。FEED NAME
は、作成するフィードの名前です。
ファイル/ハッシュ API の概要
ファイル/ハッシュ API を使用すると、分析のためにファイルを送信できます。次の操作を実行できます。
サンプルのマルウェアスコアをハッシュで検索します。
マルウェア分析用のサンプルを送信します。
特定のリスト内のファイルから IP、URL、または FQDN を更新します。
IP には、IP アドレス、IP 範囲、または IP サブネットを指定できます。
IPv4 アドレスと IPv6 アドレスの両方をサポートしています。
ファイル/ハッシュ API は、JSON 形式の Swagger API 仕様をサポートしており、プログラムによるアクセスを可能にします。Swagger API 仕様の詳細については、 https://api.sky.junipersecurity.net/swagger.json を参照してください。
構成とセットアップ
APIにアクセスするには、Juniper ATP Cloud Web UIでアプリケーショントークンを作成し、そのトークンを認証ヘッダーのベアラートークンとして使用する必要があります。トークンの作成に関する詳しい情報は、 設定と設定 をご覧ください。
使用例
次の cURL の例は、ファイル/ハッシュ API の使用法を示しています。
curl -H "Authorization: Bearer<TOKEN>” -k <API HOSTNAME>/v1/skyatp/lookup/hash/<SHA256>?full_report=true
curl -H "Authorization: Bearer<TOKEN>” -k -F file=@/srv/sample.exe <API HOSTNAME>/v1/skyatp/submit/sample
API HOST
は、カスタマーポータルの場所に対応するオープンAPIホスト名の名前です。お住まいの地域の正しいホスト名については、 表 3 を参照してください。
どこ:
TOKEN
は、Juniper ATP Cloud Web UIで生成されたアプリケーショントークンです。SHA256
はサンプル ハッシュです。現時点では、SHA256 のみがサポートされています。
完全なレポートは、今後のリリースで完全にサポートされる予定です。現在お送りしているレポートは、外観や内容が若干異なる場合があります。
感染ホストAPIの概要
感染したホストフィードはJuniper ATP Cloudによって生成され、侵害されたホストにフラグ付けするために使用されます。フィードは動的です。Juniper ATP Cloudが(独自のアルゴリズムにより)ホストの侵害が疑われた場合、ホストは自動的に追加され、ホストが侵害されていないと感じたら、ユーザーインターフェイスからリストから手動で削除できます。フィードには、ホストの IP アドレスまたは IP サブネットが、脅威レベル (xxx.xxx.xxx.133 や脅威レベル 5 など) とともに一覧表示されます。このフィードはレルムに固有であり、実際の IP アドレスは重複していないと見なされます。
感染したホストフィードには、許可リストとブロックリストが関連付けられています。これらは、一般的な Juniper ATP Cloud の許可リストおよびブロックリストとは異なります。感染したホストフィードは、これらのリストを使用して、現在感染したホストフィード(許可リスト)にあるホストを削除し、常に感染したホストフィード(ブロックリスト)にホストをリストします。
感染したホスト API を使用すると、次の操作を実行できます。
現在の感染したホストフィード内のすべての IP アドレスのリストを返します。
感染したホストの許可リストまたはブロックリストに含まれるすべての IP アドレスのリストを返します。
感染したホストの許可リストまたはブロックリストから IP アドレスを削除します。
感染したホストの許可リストまたはブロックリストに IP アドレスを追加します。
感染したホストAPIは、JSON形式のSwagger API仕様をサポートしており、プログラムによるアクセスを可能にします。Swagger API 仕様の詳細については、 https://api.sky.junipersecurity.net/swagger.json を参照してください。
構成とセットアップ
APIにアクセスするには、Juniper ATP Cloud Web UIでアプリケーショントークンを作成し、そのトークンを認証ヘッダーのベアラートークンとして使用する必要があります。トークンの作成に関する詳しい情報は、 設定と設定 をご覧ください。
IPフィルター API の概要
動的アドレス エントリ (DAE) は、動的 IP アドレス情報をセキュリティ ポリシーに提供します。DAEは、単一のIPプレフィックスではなく、インポート可能なIPアドレスのグループです。これらの IP アドレスは、特定のドメイン用、または脅威をもたらす特定の望ましくない場所など、共通の属性を持つエンティティ用です。管理者は、セキュリティ・ポリシー内でDAEを使用するようにセキュリティ・ポリシーを構成できます。DAEが更新されると、変更は自動的にセキュリティ・ポリシーの一部になります。ポリシーを手動で更新する必要はありません。これは IP アドレスのみのフィードであることに注意してください。URL や完全修飾ドメイン名 (FQDN) はサポートされていません。
IP フィルター API を使用すると、以下のタスクを実行できます。
IP フィルター・フィードから IP アドレス (.csv ファイル内) を除去する
IP アドレス (.csv ファイル内) を IP フィルター フィードに追加します。
IP フィルター フィードから特定の IP アドレスを削除します。
IP フィルター フィードに特定の IP アドレスを追加します。
特定の IP フィルター フィードを削除します。
特定の IPフィルターフィードの処理ステータスを取得します。
IP フィルター API は、プログラムによるアクセスを可能にするために、JSON 形式の Swagger API 仕様をサポートしています。Swagger API 仕様の詳細については、 https://api.sky.junipersecurity.net/swagger.json を参照してください。
構成とセットアップ
APIにアクセスするには、Juniper ATP Cloud Web UIでアプリケーショントークンを作成し、そのトークンを認証ヘッダーのベアラートークンとして使用する必要があります。トークンの作成に関する詳しい情報は、 設定と設定 をご覧ください。
例
この例では、DMZ内のWebサーバーに対して、Torで身元を隠しながら標的型攻撃が行われています。Tor出口ノードは頻繁に移動し、ファイアウォールポリシー内のすべての1000+出口ノードの最新のリストを維持することはほとんど不可能です。ただし、これはJuniper ATP CloudのAPIを使えば簡単に行うことができます。この例の詳細については、 Sky ATP によるサイバー脅威インテリジェンスの自動化を参照してください。
以下に、次のアクションを実行するスクリプトの例を示します。
公式のTorProjectのexit-nodeリストをcURL経由でポーリングし、
grep
経由で正当なIP情報を抽出します。Juniper ATP CloudオープンAPIを利用して、サードパーティの脅威インテリジェンスをインストールし、ネットワーク内のすべてのSRXシリーズファイアウォールに伝送します。
cronを介して時間単位で実行され、アクティブなTorリレーが常にブロックされていることを確認します。
#!/bin/bash # Define Application Token (Paste in your value between the "") APPToken="Your_Application_Token_Here" # Define the name of the feed you wish to create FeedName="Tor_Exit_Nodes" #Define temporary file to store address list TorList=/var/tmp/torlist.txt # cURL fetches Tor Relay list from https://check.torproject.org/exit-addresses # grep identifies and extracts valid IP addresses from the list curl -k https://check.torproject.org/exit-addresses | grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]? [0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5] |2[0-4][0-9]|[01]?[0-9][0-9]?)' > $TorList #Remove old Feed information before uploading new list curl -k -v -X DELETE -H "Authorization: Bearer $APPToken" -F server='*' https://threat-api.sky.junipersecurity.net/v1/cloudfeeds/ipfilter/param/ip/${FeedName} # Wait for 5 seconds before uploading new list sleep 5 #Upload List to SkyATP as Feed Tor_Exit_Nodes curl -k -v -X POST -H "Authorization: Bearer $APPToken" -F file=@${TorList} https://threat-api.sky.junipersecurity.net/v1/cloudfeeds/ipfilter/file/ip/${FeedName} # Cleanup rm $TorList # Exit
スクリプトが正常に実行されると、以下のICMPリクエスト中に最新のTorノードがブロックされていることがわかります(feed-name=Tor_Exit_Nodes
)
<14>1 2016-10-17T15:18:11.618Z SRX-1500 RT_SECINTEL - SECINTEL_ACTION_LOG [junos@x.x.x.x.x.137 category="secintel" sub-category="Blacklist" action="BLOCK" action-detail="DROP" http-host="N/A" threat-severity="0" source-address="5.196.121.161" source-port="1" destination-address="x.x.0.10" destination-port="24039" protocol-id="1" application="N/A" nested-application="N/A" feed-name="Tor_Exit_Nodes" policy-name="cc_policy" profile-name="Blacklist" username="N/A" roles="N/A" session-id-32="572564" source-zone-name="Outside" destination-zone-name="DMZ"] category=secintel sub-category=Blacklist action=BLOCK action-detail=DROP http-host=N/A threat-severity=0 source-address=x.x.0.110 source-port=1 destination-address=x.x.x.161 destination-port=24039 protocol-id=1 application=N/A nested-application=N/A feed-name=Tor_Exit_Nodes policy-name=cc_policy profile-name=Blacklist username=N/A roles=N/A session-id-32=572564 source-zone-name=Outside destination-zone-name=DMZ
SRXシリーズクラウドフィードの更新間隔
次の表に、各フィードの種類の更新間隔を示します。SRXシリーズファイアウォールが新規および更新されたフィードコンテンツをリクエストするときに、新しいコンテンツがない場合、その時点で更新はダウンロードされないことに注意してください。
カテゴリ |
フィード |
SRXシリーズファイアウォールの更新間隔(秒単位) |
---|---|---|
コマンド&コントロール(C&C) |
ジュニパーフィード |
1,800 |
統合フィード |
86,400 |
|
顧客フィード |
60 |
|
ジオIP |
geoip_country |
86,400 |
許可リスト |
ジュニパーフィード(whitelist_dns) | 1,800 |
ジュニパーフィード(whitelist_dns_umbrella) | 86,400 | |
顧客フィード(ドメイン、IP、ドメイン生成アルゴリズム(DNS)) |
1,800 |
|
顧客フィード(リバースシェル) | 300 | |
ブロックリスト |
顧客フィード(ドメインとIP) |
1800 |
感染したホスト |
感染したホスト |
60 |
不審なホスト | 不審なホスト | 60 |
DNS | ジュニパーフィード | 1800 |
顧客フィード | 60 | |
動的アドレス グループ(DAG) |
顧客フィード |
1,800 |
サードパーティの DAG フィード。たとえば、Office 365 などです。 |
1,800 |
Open API for DNS カテゴリ
以下の表は、SRXシリーズファイアウォールによってダウンロードされるフィードマニフェストを示しています。
HTTP メソッド |
URI |
要求本文 |
応答 |
---|---|---|---|
ポスト/パッチ |
/DNS/ファイル/{feed_name} |
ファイル : file.txt 猫file_content> 1.1.1.1,10 1.1.1.2,10 |
{ "request_id": "文字列" } |
取得 |
/DNS/ファイル/{feed_name} |
{ "message":"文字列", "request_id": "文字列" } |
|
削除 |
/DNS/ファイル/{feed_name} |
ファイル : file.txt 猫file_content> 1.1.1.1,10 |
{ "request_id": "文字列" } |