Tenable ブログ
ブログ通知を受信するTenable.io APIの紹介
Tenable.ioは、世界初のサイバーエクスポージャープラットフォームです。これはネットワークの完璧な可視性を実現し、最新のアタックサーフェスの管理および評価を可能にします。Tenable.io Vulnerability Managementの強力な機能はすべて、Tenable.io APIで利用できます。このAPIは、あらゆる経験レベルのユーザーが利用できる、堅固で詳細に文書化されているツールです。Tenable.ioのユーザーは、パブリックで利用可能なウェブインターフェイスを介してAPIにアクセスできます。高度に専門的なユーザーであれば、cURLやPostmanのようなユーティリティを使用してAPIを活用することで、データを自動収集したり、ウェブUIでは即時に得られない追加の詳細を入手したりできます。
Tenable.io APIの使用
Tenable.io APIのウェブUIを使用することにより、APIクエリの作成や、cURL、Postmanなどのユーティリティの使用に馴染みがなくても、APIの多くの機能を活用できます。
必ずしも明らかではないAPI UIを活用する鍵となるのが、ほとんどのリクエストでは認証が要求されるということです。これは、2つのウィンドウまたはタブを開くことでとても簡単に実行できます。1つはTenable.ioの認証されたセッション、もう1つはTenable.io APIで開きます。 これにより、Tenable.io APIは認証されたセッションを使用してクエリを実行できます。APIのクエリ送信を試みる際に認証に失敗した場合は、通常、以下のようなエラーメッセージが表示されます。認証してからAPIページを更新すると、エラーは解消されます。
推奨されるクエリ
Tenable.io APIは、19種類のデータタイプに対するクエリを受け入れ、100以上のメソッドと追加のフィルターまたはパラメーターを利用できます。このAPIは、スキャンの作成と制御、ユーザーの追加やパーミッション設定、スキャン方針の変更や作成、その他数十種のタスクの実行に使用できます。多くのタスクは、APIクエリのスクリプト化による自動化の際に役立ちますが、Tenable.io APIに関する基本的理解が必要となります。
Tenable.ioコンテナ内の資産リストを取得
API UIは、様々なメソッド、リクエストおよびパラメーターの動作について理解するのに役立ちます。たとえば、Tenable.ioコンテナ内の資産リストを取得する手順について説明します。
- まず、Tenable.ioが認証されていることと、API UIが開いていることを確認します。
- 次に、画面左のバーから\[workbenches]をクリックし、 \[assets]をクリックします。
- それから、ウェブページの一番下までスクロールして、[Test]セクションを表示します。
ご覧の通り、そこにはクエリ結果をフィルターするオプションパラメーターがいくつかあります。今回は、デフォルトのままにして[Send]をクリックします。リクエストが完了すると、資産リストと詳細がJSONフォーマットで取得されます。
脆弱性リストを取得
\[workbenches] > \[vulnerabilities] のクエリはよく似た動作となりますが、より多くのパラメーターが設定可能です。どれでもパラメーターを設定すればクエリ結果がフィルターされ、探している対象に応じて結果を自由に調整できます。
フィルタフィールドにワードを入力するだけで、フィルター群を定義し、[filter.search_type]フィールドの定義に従って「and」または「or」で論理的に結び付けることができます。この例のフィルタフィールドでは、フィルターがグレー表示されています。この例はクエリ実行時に実際には適用されませんが、フィルターを何か入力すると、それが適用されます。追加のフィルター詳細は、ウェブページのずっと上にある[Filters]セクションで確認できます。
脆弱性クエリに対する応答では、個別のプラグインまたは脆弱性の結果に関する詳細は確認できません。しかし、リストからは、他のクエリで使用するプラグインIDを確認できます。[workbenches] > [vulnerability-info]クエリにプラグインIDを設定すると、プラグインに関する追加情報が得られます。\[workbenches] > \[vulnerability-output]クエリにプラグインIDを設定すると、脆弱性が発見された資産など、脆弱性の結果情報が得られます。
他のAPIユーティリティの使用
Tenable.io APIのUIを使って十分な基礎を構築しておくなら、cURLやPostmanなど、他のAPIユーティリティを使用してより複雑なリクエストを実行できるようになります。通常、データへのリクエストを実行する際には、ユーティリティからの認証が必要となります。本体から認証を得た状態で<https://cloud.tenable.com/session>にPOSTすることにより、データクエリを実行するのに必要なセッショントークンを取得できます。認証されたセッショントークンを取得するためのcURLリクエストはこれに類似しますが、あなた自身の認証情報で行う必要があります(これはhttpsのURLに対するPOSTリクエストであるため、あなたの認証情報はプレーンテキストでは送信されません。):
curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{"username":"[email protected]", "password":"YourPasswordHere"}' "https://cloud.tenable.com/session"
セッショントークンを取得したら、クエリを実行してAPI UI経由で利用可能なタスクを実行できます。 API UIで、HTTPリクエスト情報を調べて、クエリを実行するための適切なメソッドとURL構文を取得します。たとえばこのクエリでは、スキャンと詳細のリストを確認できます。
curl -X GET -H "X-Cookie: token=YourSessionTokenHere" -H "Cache-Control: no-cache" "https://cloud.tenable.com/scans"
これのようなリクエストでは、ターゲットグループのリストが返されます。
curl -X GET -H "X-Cookie: token=YourSessionTokenHere" -H "Cache-Control: no-cache" "https://cloud.tenable.com/target-groups"
このリクエストは、セッションを閉じます。
curl -X DELETE -H "X-Cookie: token=YourSessionTokenHere" -H "Cache-Control: no-cache" "https://cloud.tenable.com/session"
これらのcURLリクエストはすべて、Postmanや様々な言語のスクリプトで使用するための変更も容易に行えます。
Tenable.ioのソリューション
Tenableのお客様ではなくても、ご自身のブラウザーから即時にTeneble.io APIをお試しいただけます。このAPIは公開されており、ご覧いただければすぐにわかるとおり、完全に文書化されています。Tenableをご利用の場合、Tenable.io Vulnerability Managementの機能(正確な資産追跡、脆弱性ステータス、ワークベンチとレポートなど)はすべて、APIから利用可能となり、お客様およびパートナー様は必要とするデータを自動的に取得して利用できます。Tenable.io APIはまた、様々なAPIユーティリティ経由の使用や、様々な言語によるスクリプティングのための機能を豊富に揃えています。
今すぐTenable.io Vulnerability Managementの60日間無料トライアルをお試しください!
無料トライアルを開始関連記事
- Tenable Vulnerability Management