16.4K Views
March 24, 23
スライド概要
次のイベントの講演資料です。
https://sciencepark.connpass.com/event/277301/
サイエンスパークの勉強会の資料を公開します。勉強会は2022/3現在、connpassで公開しています。 https://sciencepark.connpass.com
ミニWDDDS はじめてのSBOM 開発者でも実施できるSBOM対策 SP2303-E27 2023/3/22 バグダス検証課 三浦秀朗
ミニWDDDS 目次. 1.はじめに 2.SBOMとは 3.SBOMの診断に使うツール 4.SBOMの診断 5.最後に © SCIENCEPARK CORPORATION. 2
ミニWDDDS 1.はじめに - 自己紹介 サイエンスパーク株式会社 プラットフォーム部 バグダス検証課 兼 社長室 みうら ひであき 三浦 秀朗 ・各種OSでの様々なデバイスドライバの開発 ・Windows向けセキュリティ製品の立上げ・開発 ・Windows向けセキュリティSDKの立上げ・開発 ・デバイスドライバ向け開発ツールの翻訳・国内サポート ・ソフトウェアで実現するStackOverflow対策の研究開発 (米空軍 Award) ・WDMドライバの各種セミナー ・デバイスドライバ関連書籍の翻訳・監修 ・某ゲーム機のスタートアップ・Windowsクロス開発(約5年) ・電力・自動車向けIoT機器のペネトレーションテスト © SCIENCEPARK CORPORATION. 3
ミニWDDDS 1.はじめに 近年、SBOMという言葉が技術系のWeb記事などでよくみられ るようになりました。SBOMは、「Software Bill Of Materials」 の略、無理やり日本語にすると「ソフトウェア部品表」の意味 になります。 日本政府でもこのSBOMの管理を開発者・販売者に周知・強化 する動きが活発になってきています。 今後はIoTデバイスだけでなく、アプリケーションにおいてもこ の概念が重要になってくると思われますので、ぜひ覚えていっ てください。 © SCIENCEPARK CORPORATION. 4
ミニWDDDS 2.SBOMとは ほとんどのソフトウェアは、多数のライブラリやコンポーネン トなどのソフトウェア部品を利用して成り立っています。 その部品のいずれかに脆弱性が発見されれば、そこを起点とし て攻撃が行われる可能性が高くなります。 © SCIENCEPARK CORPORATION. 5
ミニWDDDS 2.SBOMとは 例えば2021年末に発覚したJavaライブラリ「Log4j」の脆弱性は、 非常に幅広いJavaのソフトウェアに深刻な影響を与えました。 広く使われているソフトウェア部品に深刻な脆弱性が発見され た場合、その影響はときに甚大なものになるのです。 © SCIENCEPARK CORPORATION. 6
ミニWDDDS 2.SBOMとは Log4jへの攻撃例: ①攻撃者は特殊な文字列を含んだhttpリクエスト(データ)をサーバ(Javaアプリ ケーション)に送信する ②Javaアプリケーションは送られてきたデータを処理した結果を、そのままログに 書き込んでしまう ③ログに書き込まれたデータに特殊な変数が含まれていると、Log4jのJDNI Lookup機能がそれを実行してしまう ⇒攻撃者が用意したサーバからプログラムをダウンロード ④Log4j がダウンロードした悪意のあるプログラムを読み込み、実行してしまう © SCIENCEPARK CORPORATION. 7
ミニWDDDS 2.SBOMとは Log4jを使っていても、 ①攻撃者は特殊な文字列を含んだhttpリクエスト(データ)をサーバに送信する ②Javaアプリケーションは送られてきたデータを処理した結果を、そのままログに 書き込んでしまう ⇒①は実行されるが、②は実行されない というケースの場合、被害は生じません。 しかし ・脆弱性のあるSBOMを使っている ・ロジック的にその脆弱性は使わないのでセーフ という管理は非常に面倒で、今後脆弱性に影響がでる機能が必要になった時に、こ の脆弱性のことがうまく開発者に伝わっていないと、よろしくないです。なので ⇒脆弱性のあるSBOMぐらいは解決しておきましょう © SCIENCEPARK CORPORATION. 8
ミニWDDDS 2.SBOMとは Log4jの脆弱性が発覚したときに、どのソフトウェアがLog4jに依存してい るのかどうかが分からず、あのソフトウェアは依存している、いや依存し ていないらしい、といった不確実な情報が数多く流れて多くの混乱や対応 への遅延が生じました。 SBOMによって、そのソフトウェアがどのようなソフトウェア部品によっ ていつ構築されたのかが判別できれば、脆弱性の判断と対応も迅速に行え ます。 © SCIENCEPARK CORPORATION. 9
ミニWDDDS 2.SBOMとは ところで最近よく聞く用語で「サプライチェーン」があります。 特定の製品やサービスを顧客に提供するにあたって、原材料の 生産から、消費者に届くまでの一連の過程と、それを構成する 一連の企業の集まりのことを言います。 © SCIENCEPARK CORPORATION. 10
ミニWDDDS 2.SBOMとは ソフトウェアの開発工程において発生するリスクのことを「サ プライチェーンリスク」と呼ぶことがあります。 そして、このサプライチェーンリスクを低減するための方法の 1つとして期待されているのが「SBOM」です。 代表的なものとしては、海外製品をハードウェアとOSをセッ トで仕入れてきて、外側だけ変えて国内で販売するケースです。 © SCIENCEPARK CORPORATION. 11
ミニWDDDS 2.SBOMとは 米国政府はこのサプライチェーンリスクの解決に数年前から真 剣に取り組んでおり、2021年5月に米国のバイデン大統領が署 名した大統領令には、米国政府がSBOMに取り組むことも記さ れています。 日本政府も、情報通信、金融、航空、空港、鉄道、電力、ガス、 政府・行政サービス、医療、水道、物流、化学、クレジット、石 油の14業種を重要インフラ分野と位置づけ、SBOMの提出を必 須とするよう動いています。 https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executiveorder-on-improving-the-nations-cybersecurity/ © SCIENCEPARK CORPORATION. 12
ミニWDDDS 3.SBOMの診断に使うツール 3.1 Microsoft SBOM Tool 3.2 CVE Binary Tool ⇒本セミナーではサプライチェーンリスク に対応するため、「CVE Binary Tool」を中 心にご紹介します。 © SCIENCEPARK CORPORATION. 13
ミニWDDDS 3.1 Microsoft SBOM Tool ・MicrosoftがOSSで提供しているSBOMツールです。 ・プログラムのビルド時に、SBOMリストを作成してくれます。 ・開発者が納品と共にSBOMリストを提出する用途です。 ・有償の製品ではCVE抽出も実施可能なものがあります。 SBOM ToolsはWindows、Linux、Macに対応し、NPM、NuGet、PyPI、 CocoaPods、Maven、Golang、Rust Crates、RubyGems、Gradle、Ivy、GithHub パブリックリポジトリ、コンテナ内のLinuxパッケージなど、さまざまなソフト ウェアの自動検出機能も備えており、今後さらに自動検出機能を強化する予定。 https://github.com/microsoft/sbom-tool © SCIENCEPARK CORPORATION. 14
ミニWDDDS 3.2 CVE Binary Tool ・OSSのSBOM及びCVE抽出ツールです。 ・ビルド後のファイルから、SBOMを抽出してくれます。 ・SBOMに対して、既知の脆弱性があるかをCVEデータベース から抽出してくれます。 ※SBOMを抽出するだけでしたら、他にもOSSのツールがあります。 ・Syft by Anchore – 無料版は制約あり? ・Tern ・Kubernetes BOM tool ・spdx-sbom-generator – 特定フォルダ以下のSBOM抽出できず https://github.com/intel/cve-bin-tool © SCIENCEPARK CORPORATION. 15
ミニWDDDS 3.2 CVE Binary Tool ・CVEデータベースとして、以下の情報を使います。 ① NVD CVE database https://nvd.nist.gov/vuln/ ② GitLab Advisory Database https://advisories.gitlab.com/ ③ RedHat Database https://access.redhat.com/security/security-updates/cve/ ④ Getting Open Source Vulnerability Database https://osv.dev/ © SCIENCEPARK CORPORATION. 16
ミニWDDDS 4.SBOMの診断 必要機材: ・Ubuntu 20.04.5 LTS ⇒Windows10のWSL2(Windows Subsystem for Linux2) ・CVE Binary Tool ⇒Python3が使える環境で、 pip install cve-bin-tool でインストールできます。 https://pypi.org/project/cve-bin-tool/ © SCIENCEPARK CORPORATION. 17
ミニWDDDS 4.SBOMの診断 CVE Binary Toolの主要なオプション: ・--report Produces a report even if there are no CVE for the respective output format 以下は手元にSBOMファイルがある前提なので使用しません ・--sbom {spdx,cyclonedx,swid} ・--sbom-file SBOM_FILE © SCIENCEPARK CORPORATION. 18
ミニWDDDS 4.SBOMの診断 バイナリからライブラリのバージョンを特定する例 ・curlのバイナリ 正規表現で検索 ・curlのバージョンを探すPythonスクリプト © SCIENCEPARK CORPORATION. 19
ミニWDDDS 4.SBOMの診断 SBOMデモ © SCIENCEPARK CORPORATION. 20
ミニWDDDS 4.SBOMの診断 まずは、見つかったSBOMに対して、既知脆弱性(CVE)一覧が表示される。 © SCIENCEPARK CORPORATION. 21
ミニWDDDS 4.SBOMの診断 既知脆弱性(CVE)一覧の下に、SBOMのファイル名(Filename)と、そのファイ ルが使用しているライブラリ(Vendor/Product/Version)が表示される。 © SCIENCEPARK CORPORATION. 22
ミニWDDDS 5.最後に ユーザプログラムに脆弱性があるかもしれない しかし脆弱性に到達する出入口はOSSライブラリがほとんど OSSのライブラリの脆弱性を解消した前提で、 他の部分の脆弱性評価を行いましょう。 ある程度までは開発者で守りましょう!! それでも不安なら弊社にご相談ください © SCIENCEPARK CORPORATION. 23
ミニWDDDS ご清聴ありがとうございました