Skip to content

Cisco PSIRT OpenVuln API

Cisco は利用可能な API を Cisco Support APIs で公開しています。 その中でも Cisco PSIRT openVuln API を使うと Cisco 製品に関する脆弱性情報を取得することが出来ます。

更に、この API の利用を簡易化する為に openVulnQuery が公開されています。 今回のこの使い方をメモしておきます。

検証環境

対象 バージョン
macOS 14.2.1
Python 3.12.2

API キーを発行する

Cisco PSIRT openVuln API を含む Cisco Support APIs を利用するには、まず初めに Cisco API Console から API キーを発行する必要があります。

Step.1

Cisco API Console へアクセスします。 既に Cisco アカウントがあれば Sign In を、無ければ Register から進みます。

file

Step.2

My Apps & Keys をクリックします。

file

Step.3

Register a New App をクリックします。

file

Step.4

Register an Appliation 画面が表示されるので、利用したい API などの必要情報を指定します。 今回は以下を設定します。

項目 設定値 備考
Application Details 任意の名前 機能には影響しない。 後から変更も可能
Application Type Service
Grant Type Client Credentials
Select APIs Cisco PSIRT openVuln API

最後に I agree to the terms of service にチェックを入れて Register をクリックします。

file

Step.5

API キーが発行されました。 My Keys & Apps をクリックします。

file

Step.6

発行された API キーから KEYCLIENT SECRET の値を控えておきます。

file

サンプルプログラム

事前に OpenVlunQuery をインストールしておきます。

1
python3 -m pip install openVulnQuery

ソースコード

サンプルプログラムのソースコードは以下の通りです。 client_idclient_secret は事前に発行した値を入力します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/env python3

from openVulnQuery import query_client

query_client = query_client.OpenVulnQueryClient(
    client_id="XXXXXXXXXXXXXXXXXXXXXXXX", client_secret="XXXXXXXXXXXXXXXXXXXXXXXX"
)
advisories = query_client.get_by_latest(adv_format="default", latest=5)

for advisory in advisories:
    print(f"{advisory.advisory_id}:{advisory.advisory_title}")

実行結果

実行例は以下の通りです。

1
2
3
4
5
6
$ ./sample.py
cisco-sa-clamav-hDffu6t:ClamAV OLE2 File Format Parsing Denial of Service Vulnerability
cisco-sa-expressway-csrf-KnnZDMj3:Cisco Expressway Series Cross-Site Request Forgery Vulnerabilities
cisco-sa-ftd-snort3acp-bypass-3bdR2BEh:Multiple Cisco Products Snort 3 Access Control Policy Bypass Vulnerability
cisco-sa-cuc-unauth-afu-FROYsCsD:Cisco Unity Connection Unauthenticated Arbitrary File Upload Vulnerability
cisco-sa-cucm-rce-bWNzQcUm:Cisco Unified Communications Products Remote Code Execution Vulnerability