FutureVulsでは外部アプリ開発用にAPIを用意しています。 FutureVulsのデータをAPIを利用して取得できます。
開発者APIの概略は以下のようになっています。
APIドキュメントページには、ブラウザ上からAPIを実行できる機能がありますが、 こちらの機能は動作していませんのでご注意ください。
開発用のAPIのトークンはグループ設定、グループセット設定のトークンページでそれぞれ管理されています。
ここでは、Scanner用のトークンや、開発者API用のトークンを管理可能です。
グループ設定はグループ管理者権限をもつユーザのみ、グループセット設定はグループセット管理者権限をもつユーザのみアクセス可能です。
トークン追加
からトークンの追加を行えます。
トークンの名前と権限を設定して作成します。
設定できる権限は以下の通りです。
編集アイコンからトークン名、API権限、スキャン権限を編集できます。
トークンの再生成では、トークンのハッシュを再生成できます。
元に戻すことができないため、確認の上、再生成してください。
ステータス列の 有効
をクリックすると該当のトークンを無効化します。
ステータス列の 無効
をクリックすると該当のトークンを有効化します。
削除アイコンからトークンを削除します。
https://rest.vuls.biz
に、以下のURLを指定してHTTPリクエストを行ってください。
HTTPメソッド | URL | 説明 | 必要な権限 |
---|---|---|---|
GET | /health | health | なし |
HTTPメソッド | URL | 説明 | 必要な権限 | 備考 |
---|---|---|---|---|
GET | /v1/cve/{cveID} | cve詳細 | 読み込み | cveIDの取得方法 |
GET | /v1/cves | cve一覧 | 読み込み | オプションあり |
GET | /v1/lockfiles | Lockファイル一覧 | 読み込み | オプションあり |
GET | /v1/lockfile/{lockfileID} | Lockファイル詳細 | 読み込み | lockファイルIDの取得方法 |
POST | /v1/lockfile | Lockファイル追加 | 更新 | Lockファイル追加 |
POST | /v1/lockfile/sbom | SBOMファイル追加 | 更新 | |
PUT | /v1/lockfile/{lockfileID} | Lockファイル更新 | 更新 | lockファイルIDの取得方法 |
DELETE | /v1/lockfile/{lockfileID} | Lockファイル削除 | 更新 | lockファイルIDの取得方法 |
POST | /v1/pkgCpe/cpe | cpe追加 | 更新 | |
DELETE | /v1/pkgCpe/cpe/{cpeID} | cpe削除 | 更新 | cpeIDの取得方法 |
DELETE | /v1/pkgCpe/cpe | [DEPRECATED]cpe削除 | 更新 | cpeIDの取得方法 |
GET | /v1/pkgCpe/cpe/{cpeID} | cpe詳細 | 読み込み | cpeIDの取得方法 |
GET | /v1/pkgCpe/pkg/{pkgID} | package詳細 | 読み込み | pkgIDの取得方法 |
GET | /v1/pkgCpes | package&cpe一覧 | 読み込み | オプションあり |
GET | /v1/role/{roleID} | ロール詳細 | 読み込み | roleIDの取得方法 |
PUT | /v1/role/{roleID} | ロール更新 | 更新 | roleIDの取得方法 |
DELETE | /v1/role/{roleID} | ロール削除 | 更新 | roleIDの取得方法 |
GET | /v1/roles | ロール一覧 | 読み込み | オプションあり |
POST | /v1/server/pseudo | 擬似サーバの作成 | serverIDの取得方法 | |
POST | /v1/server/paste | ペイストサーバの作成 | serverIDの取得方法 | |
PUT | /v1/server/paste/{serverID} | ペイストサーバの更新 | serverIDの取得方法 | |
GET | /v1/server/uuid/{serverUuid} | UUIDを使ったサーバ詳細 | 読み込み | UUIDの取得方法 |
GET | /v1/server/uuid/{serverUuid} | UUIDを使ったサーバ詳細 | 読み込み | UUIDの取得方法 |
POST | /v1/server/scan/{serverID} | サーバスキャン | 更新 | serverIDの取得方法 |
GET | /v1/server/{serverID} | サーバ詳細 | 読み込み | serverIDの取得方法 |
PUT | /v1/server/{serverID} | サーバ更新 | 更新 | serverIDの取得方法 |
DELETE | /v1/server/{serverID} | サーバ削除 | 更新 | serverIDの取得方法 |
GET | /v1/servers | サーバ一覧 | 読み込み | オプションあり |
GET | /v1/task/{taskID} | タスク詳細 | 読み込み | taskIDの取得方法 |
PUT | /v1/task/{taskID} | タスク更新 | 更新 | taskIDの取得方法 |
POST | /v1/task/{taskID}/comment | タスクコメント追加 | 更新 | taskIDの取得方法 |
PUT | /v1/task/{taskID}/ignore | タスク非表示設定 | 更新 | taskIDの取得方法 |
GET | /v1/tasks | タスク一覧 | 読み込み | オプションあり |
HTTPメソッド | URL | 説明 | 必要な権限 | 備考 |
---|---|---|---|---|
GET | /v1/groupSet/cve/{cveID} | cve詳細 | 読み込み | cveIDの取得方法 |
GET | /v1/groupSet/cves | cve一覧 | 読み込み | オプションあり |
GET | /v1/groupSet/pkgCpe/cpe/{cpeID} | cpe詳細 | 読み込み | cpeIDの取得方法 |
GET | /v1/groupSet/pkgCpe/pkg/{pkgID} | package詳細 | 読み込み | pkgIDの取得方法 |
GET | /v1/groupSet/pkgCpes | package&cpe一覧 | 読み込み | オプションあり |
GET | /v1/groupSet/server/uuid/{serverUuid} | UUIDを使ったサーバ詳細 | 読み込み | UUIDの取得方法 |
GET | /v1/groupSet/server/{serverID} | サーバ詳細 | 読み込み | serverIDの取得方法 |
GET | /v1/groupSet/servers | サーバ一覧 | 読み込み | オプションあり |
GET | /v1/groupSet/task/{taskID} | タスク詳細 | 読み込み | taskIDの取得方法 |
GET | /v1/groupSet/tasks | タスク一覧 | 読み込み | オプションあり |
タスク一覧取得といった、レスポンスに複数のデータが含まれるAPIでは、そのIDの昇順にデータが取得されます。
開発者APIドキュメントで、各APIのmodelをクリックすると、リクエスト・レスポンスのデータモデルが確認できます。
以下の2つの方法のどちらかで取得できます。
CVE ID
列を参照する。https://rest.vuls.biz/v1/cves
にGETリクエストを行い、脆弱性一覧を取得する。レスポンスJSONの cves
に含まれるデータのうち、IDを取得したい脆弱性の cveID
を参照する。https://rest.vuls.biz/v1/groupSet/cves
にGETリクエストを行い、脆弱性一覧を取得する。レスポンスJSONの cves
に含まれるデータのうち、IDを取得したい脆弱性の cveID
を参照する。
以下の方法で取得できます。
https://rest.vuls.biz/v1/pkgCpes
にGETリクエストを行い、package&cpe一覧を取得する。レスポンスJSONの pkgCpes
に含まれるデータのうち、IDを取得したいcpeの cpeID
を参照する。https://rest.vuls.biz/v1/groupSet/pkgCpes
にGETリクエストを行い、package&cpe一覧を取得する。レスポンスJSONの pkgCpes
に含まれるデータのうち、IDを取得したいcpeの cpeID
を参照する。以下の方法で取得できます。
https://rest.vuls.biz/v1/pkgCpes
にGETリクエストを行い、package&cpe一覧を取得する。レスポンスJSONの pkgCpes
に含まれるデータのうち、IDを取得したいパッケージの pkgID
を参照する。https://rest.vuls.biz/v1/groupSet/pkgCpes
にGETリクエストを行い、package&cpe一覧を取得する。レスポンスJSONの pkgCpes
に含まれるデータのうち、IDを取得したいパッケージの pkgID
を参照する。以下の2つの方法のどちらかで取得できます。
サーバUUID
列を参照する。(サーバUUID
列は表示項目の編集から表示)https://rest.vuls.biz/v1/servers
にGETリクエストを行い、サーバ一覧を取得する。レスポンスJSONの servers
に含まれるデータのうち、IDを取得したいサーバの serverUuid
を参照する。https://rest.vuls.biz/v1/groupSet/servers
にGETリクエストを行い、サーバ一覧を取得する。レスポンスJSONの servers
に含まれるデータのうち、IDを取得したいサーバの serverUuid
を参照する。以下の2つの方法のどちらかで取得できます。
サーバID
列を参照する。(サーバID
列は表示項目の編集から表示)https://rest.vuls.biz/v1/servers
にGETリクエストを行い、サーバ一覧を取得する。レスポンスJSONの servers
に含まれるデータのうち、IDを取得したいサーバの id
を参照する。https://rest.vuls.biz/v1/groupSet/servers
にGETリクエストを行い、サーバ一覧を取得する。レスポンスJSONの servers
に含まれるデータのうち、IDを取得したいサーバの id
を参照する。以下の2つの方法のどちらかで取得できます。
タスクID
列を参照する。(タスクID
列は表示項目の編集から表示)https://rest.vuls.biz/v1/tasks
にGETリクエストを行い、タスク一覧を取得する。レスポンスJSONの tasks
に含まれるデータのうち、IDを取得したいタスクの id
を参照する。https://rest.vuls.biz/v1/groupSet/tasks
にGETリクエストを行い、タスク一覧を取得する。レスポンスJSONの tasks
に含まれるデータのうち、IDを取得したいタスクの id
を参照する。FutureVulsのREST APIは大量データをサポートするために、ページネーション形式を採用しています。 APIによって、データを取得する際に以下のオプションが指定可能です。
各APIごとに指定可能なオプションは開発者APIドキュメントを参照ください。
パラメータ | タイプ | デフォルト値 | 説明 |
---|---|---|---|
page | integer | 1 | ページネーション分割されたデータの、取得するページ番号 |
limit | integer | 20 | ページネーション分割するデータの、1ページあたりの件数 |
offset | integer | 0 | ページネーション分割する前のデータのオフセット |
filterCveID | string | - | 指定したcveIDの脆弱性に関連するデータのみ取得 |
filterTaskID | integer | - | 指定したtaskIDのタスクに関連するデータのみ取得 |
filterServerID | integer | - | 指定したserverIDのサーバに関連するデータのみ取得 |
filterRoleID | integer | - | 指定したroleIDのロールに関連するデータのみ取得 |
filterPkgID | integer | - | 指定したpkgIDのpackageに関連するデータのみ取得 |
filterCpeID | integer | - | 指定したcpeIDのcpeに関連するデータのみ取得 |
filterStatus | array[string] | [“new”, “investigating”, “ongoing”] | 指定したステータスのタスクのみ取得 |
filterPriority | array[string] | - | 指定した優先度のタスクのみ取得 |
filterIgnore | boolean | - | 指定した非表示フラグのタスクのみ取得(trueの場合に非表示にしたもののみ、falseの場合全件表示) |
filterMainUserIDs | array[integer] | - | 指定したuserIDのユーザが主担当であるタスクのみ取得 |
filterSubUserIDs | array[integer] | - | 指定したuserIDのユーザが副担当であるタスクのみ取得 |
例えば https://rest.vuls.biz/v1/servers?page=1&limit=20&offset=5
にGETリクエストし、グループに登録されているサーバ一覧を取得した場合、
serverID順に並んだサーバ情報の先頭5件を除き、20件ずつ区切られたデータの最初の20件を取得します。
つまり、6件目のデータから25件目のデータが取得されます。
https://rest.vuls.biz/v1/servers?page=2&limit=20&offset=5
とすると、26件目のデータから45件目のデータが取得されます。
オフセットを指定せず、https://rest.vuls.biz/v1/servers?page=1&limit=20
とした場合は、1件目のデータから20件目のデータが取得されます。
また、https://rest.vuls.biz/v1/tasks?filterPriority=high&&filterPriority=medium
にGETリクエストを行うと、タスク優先度が HIGH
もしくは MEDIUM
であるタスク一覧が取得できます。
curlを使って開発者APIにアクセスする方法を紹介します。
xxxxxxxxxxxxxにはトークンが入ります。
curl -H 'Authorization:xxxxxxxxxxxxx' 'https://rest.vuls.biz/v1/cves'
{"paging":{"totalPage":8,"offset":0,"page":1,"limit":20,"totalCount":158},"cves":[{"cveID":"CVE-2016-3191","scoreV2s":{"jvn":7.5,"nvd":7.5},"scoreV3s":{"nvd":9.8},"vectorV2s":
...
...
curl -H 'Authorization:xxxxxxxxxxxxx' 'https://rest.vuls.biz/v1/servers'
{"paging":{"totalPage":1,"offset":0,"page":1,"limit":20,"totalCount":2},"servers":[{"id":21384,"serverUuid":"","hostUuid":"","serverName":"ip-192-168-0-188","serverIpv4":"192.168.0.188","platformName":"aws","platformInstanceId":"","serverroleId":1522,"serverroleName":"default","osFamily":"amazon","osVersion":"2017.03","needKernelRestart":false,"lastScannedAt":"2018-12-17T00:05:22.376924Z","lastUploadedAt":"2018-12-17T00:05:28.254655Z","tags":[{"id":363,"name":"tag1"}],"successScanCount":12,"createdAt":"2018-11-22T07:16:35.665921Z","updatedAt":"2018-12-17T00:05:28.289345Z"},{"id":23772,"serverUuid":"","hostUuid":"","serverName":"dummy-server","serverIpv4":"","platformName":"","platformInstanceId":"","serverroleId":1522,"serverroleName":"default","osFamily":"pseudo","osVersion":"unknown","needKernelRestart":false,"lastScannedAt":"2018-12-16T22:06:16.629504Z","lastUploadedAt":"2018-12-16T22:08:52.065021Z","successScanCount":14,"createdAt":"2018-12-03T07:34:01.676822Z","updatedAt":"2018-12-16T22:08:52.071344Z"}]}
各種一覧には、フィルタも用意されているため、フィルタを利用してのアクセスも可能です。
curl -X POST "https://rest.vuls.biz/v1/server/paste" -H "accept: application/json" -H "Authorization: xxxxxxxxxxxxx" -d '{ "serverName": "amazonLinuxPaste", "osFamily": "amazon", "kernelRelease": "4.9.75-25.55.amzn1.x86_64", "osVersion": "2018.03", "pkgPasteText": "libgcc48 0 4.8.5 28.142.amzn1 x86_64\n python27-kitchen 0 1.1.1 5.6.amzn1 noarch\n nspr 0 4.21.0 1.43.amzn1 x86_64\n openssl 1 1.0.2k 16.153.amzn1 x86_64\n python27-docutils 0 0.11 1.15.amzn1 noarch\n info 0 5.1 4.10.amzn1 x86_64\n python27 0 2.7.18 2.141.amzn1 x86_64\n python27-iniparse 0 0.3.1 2.1.9.amzn1 noarch\n file-libs 0 5.37 8.49.amzn1 x86_64\n python27-requests 0 1.2.3 5.10.amzn1 noarch\n tcp_wrappers-libs 0 7.6 77.12.amzn1 x86_64\n rubygem20-psych 0 2.0.0 2.39.amzn1 x86_64\n python27-pystache 0 0.5.3 2.8.amzn1 noarch\n lua 0 5.1.4 4.1.9.amzn1 x86_64\n ruby20 0 2.0.0.648 2.39.amzn1 x86_64\n libevent 0 2.0.21 4.19.amzn1 x86_64\n nss 0 3.44.0 7.84.amzn1 x86_64\n libffi 0 3.0.13 16.5.amzn1 x86_64\n python26 0 2.6.9 2.92.amzn1 x86_64\n words 0 3.0 17.8.amzn1 noarch\n perl-macros 4 5.16.3 294.43.amzn1 x86_64\n fontpackages-filesystem 0 1.41 1.1.2.amzn1 noarch\n libedit 0 2.11 4.20080712cvs.1.6.amzn1 x86_64\n procps 0 3.2.8 45.16.amzn1 x86_64\n ncurses-base 0 5.7 4.20090207.14.amzn1 x86_64\n p11-kit-trust 0 0.18.5 2.3.amzn1 x86_64\n nss-tools 0 3.44.0 7.84.amzn1 x86_64\n libselinux 0 2.1.10 3.22.amzn1 x86_64\n perl-Encode 0 2.51 7.5.amzn1 x86_64\n file 0 5.37 8.49.amzn1 x86_64\n bzip2-libs 0 1.0.6 8.12.amzn1 x86_64\n perl-Storable 0 2.45 3.5.amzn1 x86_64\n python27-jinja2 0 2.7.2 3.16.amzn1 noarch\n audit-libs 0 2.6.5 3.28.amzn1 x86_64\n perl-File-Temp 0 0.23.01 3.5.amzn1 noarch\n libtirpc 0 0.2.4 0.16.15.amzn1 x86_64\n shadow-utils 2 4.1.4.2 13.10.amzn1 x86_64\n perl-Digest-MD5 0 2.52 3.5.amzn1 x86_64\n libnghttp2 0 1.33.0 1.1.6.amzn1 x86_64\n cyrus-sasl-lib 0 2.1.23 13.16.amzn1 x86_64\n rsync 0 3.0.6 12.13.amzn1 x86_64\n rpm 0 4.11.3 40.78.amzn1 x86_64\n libidn 0 1.18 2.8.amzn1 x86_64\n pinentry 0 0.7.6 6.11.amzn1 x86_64\n rpm-build-libs 0 4.11.3 40.78.amzn1 x86_64\n libassuan 0 2.0.3 3.3.amzn1 x86_64\n mingetty 0 1.08 5.9.amzn1 x86_64\n system-release 0 2018.03 0.2 noarch\n libsmartcols 0 2.23.2 63.33.amzn1 x86_64\n python27-PyYAML 0 3.10 3.10.amzn1 x86_64\n subversion 0 1.9.7 1.61.amzn1 x86_64\n perl-Pod-Perldoc 0 3.20 4.7.amzn1 noarch\n git-core-doc 0 2.18.5 2.73.amzn1 noarch\n perl-Exporter 0 5.68 3.5.amzn1 noarch\n python27-backports 0 1.0 3.14.amzn1 x86_64\n ntpdate 0 4.2.8p15 1.44.amzn1 x86_64\n perl-threads-shared 0 1.43 6.5.amzn1 x86_64\n newt-python27 0 0.52.11 3.11.amzn1 x86_64\n kernel 0 4.14.225 121.362.amzn1 x86_64\n perl-Digest 0 1.17 245.5.amzn1 noarch\n freetype 0 2.3.11 19.15.amzn1 x86_64\n keyutils 0 1.5.8 3.12.amzn1 x86_64\n copy-jdk-configs 0 3.3 10.3.amzn1 noarch\n dejavu-fonts-common 0 2.33 6.6.amzn1 noarch\n kernel-headers 0 4.14.225 121.362.amzn1 x86_64\n autogen-libopts 0 5.18 5.8.amzn1 x86_64\n golang-src 0 1.15.5 1.65.amzn1 noarch\n libXcomposite 0 0.4.3 4.6.amzn1 x86_64\n libX11 0 1.6.0 2.2.13.amzn1 x86_64\n pam 0 1.1.8 12.33.amzn1 x86_64\n vim-enhanced 2 8.0.0503 1.47.amzn1 x86_64\n zlib 0 1.2.8 7.18.amzn1 x86_64\n irqbalance 2 1.5.0 1.27.amzn1 x86_64\n python27-configobj 0 4.7.2 7.15.amzn1 noarch\n chkconfig 0 1.3.49.3 2.14.amzn1 x86_64\n openssh-server 0 7.4p1 21.75.amzn1 x86_64\n readline 0 6.2 9.14.amzn1 x86_64\n yum-plugin-upgrade-helper 0 1.1.31 46.30.amzn1 noarch"}'
パラメータ | タイプ |
---|---|
serverName | サーバの名前 |
osFamily | OSの種類(amazon, centos, ubuntu, debian, redhat) |
kernelRelease | 以下詳細 |
kernelVersion | 以下詳細 |
pkgPasteText | 以下詳細 |
パラメータ | amazon |
---|---|
osFamily | amazon |
osVersion | awk '{if ($0 ~ /Amazon\ Linux\ release\ 2/) printf("%s %s",$4, $5); else if ($0 ~ /Amazon\ Linux\ 2/) for (i=3; i<=NF; i++) printf("%s ", $i); else if (NF==5) print $5}' /etc/system-release |
kernelRelease | uname -r |
kernelVersion | 不要 |
pkgPasteText | rpm -qa --queryformat "%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n" |
パラメータ | centos6 | centos7 |
---|---|---|
osFamily | centos | centos |
osVersion | awk '{print $3}' /etc/redhat-release |
awk '{print $4}' /etc/redhat-release |
kernelRelease | uname -r |
uname -r |
kernelVersion | 不要 | 不要 |
pkgPasteText | rpm -qa --queryformat "%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n |
rpm -qa --queryformat "%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n |
パラメータ | redhat |
---|---|
osFamily | redhat |
osVersion | awk '{print $7}' /etc/redhat-release |
kernelRelease | uname -r |
kernelVersion | 不要 |
pkgPasteText | rpm -qa --queryformat "%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n |
パラメータ | debian |
---|---|
osFamily | debian |
osVersion | cat /etc/debian_version |
kernelRelease | uname -r |
kernelVersion | `uname -a |
pkgPasteText | $(dpkg-query -W -f="\${binary:Package},\${db:Status-Abbrev},\${Version},\${Source},\${source:Version}\n") |
パラメータ | ubuntu |
---|---|
osFamily | ubuntu |
osVersion | `lsb_release -sr |
kernelRelease | uname -r |
kernelVersion | 不要 |
pkgPasteText | $(dpkg-query -W -f="\${binary:Package},\${db:Status-Abbrev},\${Version},\${Source},\${source:Version}\n") |
パラメータ | 説明 | 備考 |
---|---|---|
serverID | Lockファイルを追加するサーバのID | serverIDの取得方法 |
path | Lockファイルのパスとファイル名 | サポートされているLockファイル |
fileContent | Lockファイルの内容 |
curl -X POST -H 'accept: application/json' -H Authorization:XXXXXX 'https://rest.vuls.biz/v1/lockfile' -d '{ "serverID": 192730, "path": "/REST_API/go.sum", "fileContent": "github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=\n github.com/go-gitea/gitea v1.2.3 h1:L0SC8kIr3+UnxNAte9M9bmdQ8Bdrc6I5b4Zuz/T+NCw=\n github.com/go-gitea/gitea v1.2.3/go.mod h1:g8iUbfFNyuJp8u7GsSggxI8NQyuxeGTyqxogl3imbQM=\n github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\n github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=\n golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\n golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\n golang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\n golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\n golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=\n golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\n golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\n golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\n golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\n golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\n golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\n golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\n golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\n golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\n golang.org/x/crypto v0.0.0-20191119213627-4f8c1d86b1ba h1:9bFeDpN3gTqNanMVqNcoR/pJQuP5uroC3t1D7eXozTE=\n golang.org/x/crypto v0.0.0-20191119213627-4f8c1d86b1ba/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\n gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=\n gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\n"}'
curl -H 'Authorization:xxxxxxxxxxxxx' 'https://rest.vuls.biz/v1/tasks?filterStatus=new&&filterStatus=investigating&&filterStatus=ongoing&&filterStatus=workaround&&filterStatus=patch_applied'
{"paging":{"totalPage":8,"offset":0,"page":1,"limit":20,"totalCount":157},"tasks":[{"id":1331193,"cveID":"CVE-2014-9402","serverID":21384,"serverUuid":"","serverName":"ip-192-168-0-188","serverTags":["tag1"],"osFamily":"amazon","osVersion":"2017.03","roleID":1522,"roleName":"default","hasExploit":false,"hasMitigation":false,"hasWorkaround":false,"pkgCpeNames":["glibc","glibc-common","glibc-devel","glibc-headers"],"pkgNotFixedYet":false,"applyingPatchOn":"1970-01-01T00:00:00Z","status":"new","priority":"none","ignore":false,"detectionTools":[{"name":"vuls"}],"advisoryIDs":["ALAS-2018-1017"],"createdAt":"2018-11-22T07:16:39.677041Z","updatedAt":"2018-12-17T00:05:28.289345Z"},{"id":1331194,"cveID":"CVE-2015-5180","serverID":21384,"serverUuid":"","serverName":"ip-192-168-0-188","serverTags":["tag1"],"osFamily":"amazon","osVersion":"2017.03","roleID":1522,"
...
...
タスク一覧はデフォルトで、workaroundとpatch_appliedが除外されています。すべてのタスクを取得するには、上記のように、filterStatusですべてのステータスを指定する必要があります。
&&
で繋いでいく。 (ex. filterStatus=new&&filterStatus=investigating
)