IBM X-Force Exchange Commercial API試用法 Sales ENABLEMENT 日本アイビーエム株式会社 セキュリティー事業本部 セキュリティーシステムズ事業部 2017年9月27日
はじめにユーザー登録しましょう このページにアクセスしてください。 https://exchange.xforce.ibmcloud.com/ IBM ID をお持ちで無い場合、画面右上の「IBM IDの作成」からIBM IDを作成してください。 IBM ID をお持ちでしたら、画面右上の「ログイン」メニューからログイン(次ページ参照)してください。
ログイン画面 電子メールアドレスを入力して「Continue」をクリックします。 その後、パスワードを入力します。
商用APIを試用するためのキーを発行しましょう。(1) 自身の情報を設定するサブ画面が表示されます。サブ画面の左下の「設定」をクリックします。 商用APIを試用する場合、ライセンスキーを生成し、登録しておく必要があります。 毎月5000レコード以下の取得であれば、無償でお使いいただけます(ライセンス登録は必要です)。 ライセンス発行に進むため、ログイン後、画面右上の○と横棒が組み合わさったアイコン部分 をクリックします。
商用APIを試用するためのキーを発行しましょう。(2)
商用APIを試用するためのキーを発行しましょう。(3) 「APIアクセス」をクリック後の画面です。過去に生成したAPIキーが表示されます。 次ページへ
商用APIを試用するためのキーを発行しましょう。(4) API を使用するには、API キーとパスワードを使用して認証する必要があります。 開始するには、生成された API キーと対応する API パスワードをコピーして、API 文書 に貼り付けてください。
商用APIを試用するためのキーを貼り付けましょう。 次のスライドから、試しに使ってみましょう。
APIの簡単な使用例をweb上で試してみましょう。 例 : MS16-003情報の取得 左のメニューで、「Vulnerabilities」⇒「Get by Microsoft Security Bulletin ID」をクリックします。 次のスライドへ
APIの簡単な使用例をweb上で試してみましょう。 例 : MS16-003情報の取得 右側のペインの「Parameters」欄にMS16-003と入力します。 次のスライドへ
APIの簡単な使用例をweb上で試してみましょう。 例 : MS16-003情報の取得 右側のペインの「Try it out!」ボタンをクリックします。 次のスライドへ
APIの簡単な使用例をweb上で試してみましょう。 例 : MS16-003情報の取得 右側のペインの「Curl」欄には、同じAPI呼び出しをcurl で実行する場合にコマンドラインに入力する内容が表示されます。 「Response Body」欄には、応答が表示されます。 以上
API使用量の確認 ログイン後、「設定」⇒「APIアクセス」 ⇒「API使用量」をクリックすると現在の使用量が表示されます。 下図はIBM社内ユーザーのアカウントであるため、無制限量取得可能になっています。
コマンドラインで公開コレクションの更新をチェックする方法例
公開(public)コレクション例 公開 (public)コレクションには、X-Force がまとめた advisory など直近の脅威情報を要約した内容が公開されています。これらは、web上で確認することも出来ますし、更新がある場合に登録したメールアドレスに通知を送信する設定も出来るようになっています。 ここではコマンドラインからAPIを用いて、内容をチェックする方法の事例を紹介します。コマンドを定期的に実行することで、更新の差分だけを確認するといったことに応用可能です。
認証に必要な情報の準備 コマンドラインからAPIにアクセスする場合、BASIC認証を使用します。すでに取得済みのAPIキーとAPIパスワードからBASIC認証に必要な文字列を作成します。 まず、APIキーの文字列、次にコロン ( ”:” )、最後にAPIパスワードの文字列を連結します。連結した文字列をbase64エンコードします。 例 APIキー: ABCDE、APIパスワード: XYZ 連結した文字列 ABCDE:XYZ これをbase64でエンコードすると : QUJDREU6WFlaCg== curl コマンドで使う場合、次の構文になります。 curl -X GET --header ‘Accept: application/json’ --header ‘Authorization: Basic ここにBASIC認証の文字列' 'https://api.xforce.ibmcloud.com/xyzxyzxyzxyz' Base64エンコードのツールは各自探してください。
公開(public)コレクションの一覧取得 次のコマンドで、 public-collections.json に公開コレクションの一覧が保存されます。 curl -X GET --header ‘Accept: application/json’ --header ‘Authorization: Basic ここにBASIC認証の文字列' 'https://api.xforce.ibmcloud.com/casefiles/public' > public-collections.json 次にperlなどコマンドで取得したjsonから caseFileID (各コレクションを識別する固有ID)を抽出します。次ページでそのスクリプト例を示します。 Perl に限らず、お好きな処理環境をご使用いただければと思います。
Perl でcaseFileIDを抽出する例 JSONを処理するためのperl用モジュールは各自入手してください。 このスクリプトでは、json から caseFileID、作成された日付、コレクションに設定されているタグ一覧を取得し、csv形式で書き出します。”advisory” タグが設定されているコレクションだけを抽出するなどの応用が考えられます。 # filename : extractID4advisory.pl use strict; use warnings; use JSON; my $json_data = <>; my $items = JSON->new()->decode($json_data); foreach my $casefile ( @{ $items->{casefiles} } ) { print $casefile->{caseFileID}; print ','; print $casefile->{created}; foreach my $tag ( @{ $casefile->{tags}}){ print ':'; print $tag; } print "\n";
caseFileIDからコレクションの内容を取得する例 例えば、次のコマンドでコレクションの内容が取得できます。URLの最後の部分がcaseFileIDになっています。 curl -X GET --header ‘Accept: application/json’ --header ‘Authorization: BasicここにBASIC認証の文字列' 'https://api.xforce.ibmcloud.com/casefiles/86c043225f16a9b3d86a82dcb9cbce24' > collection000.json 更に、コレクションのwiki部分を抽出してみます。次の perl スクリプトで実行できます。内容を過去取得した内容と比較することで、更新の有無を知ることが出来ます。 # filename : extract_contents_from_collection.pl use strict; use warnings; use JSON; my $json_data = <>; my $items = JSON->new()->decode($json_data); my $wiki = $items->{contents}->{wiki}; print $wiki;
Mandatory Thank You Slide (available in English only).
IBM X-Force® Exchange IBM X-Force Exchange enables research on threat indicators in a collaborative environment to increase the quality of threat intelligence and help speed time to action Users on the platform can participate and build in public and private communities to streamline decision making and workflow around higher level intelligence and security investigations. IBM/Business Partner USE