2021年10月現在、Linuxのパッケージマネージャ管理下のソフトウェアの脆弱性は以下の方法で可能です。
それぞれの特徴を説明します。
Vulsのスキャナ経由でスキャンし構成情報をクラウドサービスにアップロードする方法です。 スキャン対象は対応環境を参照してください。
コンテナレジストリにあるイメージは、trivyを用いて検知し、FutureVulsにアップロードする方法がおすすめです。CI/CDパイプラインに組み込みも可能です。 スキャン対象は対応環境を参照してください。
クラウドサービスのコンテナレジストリと連携する方法も用意しています。こちらはAWS・GCPのDockerRegistryに対応しています。 スキャン対象は対応環境を参照してください。
ペーストスキャンは、スキャナの導入が難しい環境の脆弱性管理が可能です。
サーバ上で構成情報を取得するいくつかのコマンドを実行し、コマンドの実行結果をFutureVuls画面上にコピーペーストするだけで登録完了です。
開発者REST APIを用いるとREST APIでペーストサーバを作成・更新することもできます。
構成情報の登録〰脆弱性スキャン実施までのステップを説明します。
サーバ追加
> PASTEサーバ追加
スキャン対象は対応環境を参照してください。
PASTEサーバ追加
サーバ名・OSの種類などを入力・ペースト
インストールされたパッケージリストをペースト
登録後は画面上から手動スキャンをクリックすると脆弱性を検知できます。
該当サーバのパッケージをアップデートして構成情報を変更した場合は、サーバ詳細画面内のサーバ情報 > 編集
ボタンから更新してください。
次回のスキャンでは、更新された構成情報を元に検知処理が実行されます。パッケージアップデートにより解消されたタスクは「Patch_Applied」ステータスに自動変更されます。
OS | Version | Kernel Release | Kernel Version | Packages |
---|---|---|---|---|
CentOS | cat /etc/redhat-release | uname -r | - | rpm -qa –queryformat “%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n” |
RHEL | cat /etc/redhat-release | uname -r | - | rpm -qa –queryformat “%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n” |
Amazon Linux | awk ‘{if ($0 ~ /Amazon Linux release 2022/) print $4; else 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 | uname -r | - | rpm -qa –queryformat “%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n” |
Debian | cat /etc/debian_version | uname -r | uname -a | awk ‘{print $7}’ | dpkg-query -W -f=”${binary:Package},${db:Status-Abbrev},${Version},${Source},${source:Version}\n” |
Ubuntu | lsb_release -sr | awk ‘{print $1}’ | uname -r | - | dpkg-query -W -f="${binary:Package},${db:Status-Abbrev},${Version},${Source},${source:Version}\n" |
Windows | - | - | - | (Get-Hotfix | Select-Object -Property HotFixID | % { If ($_ -match ‘(KB\d{6,7})’) { $Matches[0] }}) -Join ‘,’ |
上記以外のOSを登録したい場合は、FutureVulsの画面にてペーストサーバ作成用のダイアログ表示して確認してください。
Linuxのパッケージはバックポートの仕組みでアップデートが提供されます。 FutureVulsでは、Linuxディストリビューターが提供するSecurity TrackerやOVALを用いて検知処理を行います。 これらの脆弱性DBは、各OSに対応する「実際にバックポートされたバージョン番号」が書かれているため、正確に検知できます。
各スキャン方法の詳細な検知ロジックはOSSのソースコードを参照してください。
また、OSやパッケージのCPEを登録して正確に脆弱性を検知できますか、とよく質問されます。 以下の理由により誤検知が多発するためOSパッケージはCPEスキャンでは非推奨です。 詳細をFAQ>CPEスキャンに記載しましたので気になる方は一読ください。