2025 年 01 月 22 日
第 5 話:組込み Linux「EMLinux」の脆弱性検査機能を使ってみよう
はじめに
Heartbleed、Shellshock、Log4Shell、これらの単語に共通するものは何でしょうか?
いずれも、OSS (Open Source Software) の重大な脆弱性に付けられた名前です。
- OpenSSL の脆弱性 "Heartbleed" (CVE-2014-0160) の影響と対処
- Bash の脆弱性 (CVE-2014-7169, CVE-2014-6271) の影響と対処
- Apache Log4j の脆弱性 (CVE-2021-44228) の影響について
特に Log4j はその利便性ゆえに、サーバ、組込み機器、IoT 製品など、ありとあらゆるシステムに導入されています。そのため、2021 年に Log4Shell の脆弱性が見つかった際には、どのシステムに Log4j が導入されているか特定するために、非常に多くの時間を要し、サポートエンジニアたちの大きな負担となりました。
自分たちが利用しているシステムに、重大な脆弱性が含まれているか簡単に知る方法はないのでしょうか?
そんな要望にお応えするために、EMLinux には脆弱性検査機能があります。
EMLinux の脆弱性検査機能
第 3 話:組込み Linux「EMLinux」をカスタマイズしてみよう を参考に、EMLinux のビルド用コンテナを起動してください。
コンテナ起動後、work ディレクトリにて以下のコマンドを実行してください。
build@28d700e79b8d:~/work$ source setup-emlinux
脆弱性検査機能は cve_check.py というコマンドを使います。cve_check.py --help を実行すると、以下のように使用例が表示されます。
build@28d700e79b8d:~/work/build$ cve_check.py --help usage: cve_check.py [-h] [--nvd-api-key NVDAPIKEY] [--debian-codename DEBIANCODENAME] [--output-format OUTPUTFORMAT] [--cve-product CVEPRODUCT] [--cve-ignore CVEPRODUCT] --image-name IMAGENAME [--cve-db-predownload] [--update-cve-databese-only] [--verbose] options: -h, --help show this help message and exit --nvd-api-key NVDAPIKEY API key for NVD API --debian-codename DEBIANCODENAME debian codename(Debian 12 is bookworm) --output-format OUTPUTFORMAT output format. available formats are text, json. formats can be comma separated string(e.g. text,json) --cve-product CVEPRODUCT User defined cve-product file --cve-ignore CVEPRODUCT User defined cve-check-ignore file --image-name IMAGENAME EMLinux image name --cve-db-predownload Enable CVE database predownload.URL should be defined by CVE_DB_PREDOWNLOAD_URL in conf/local.conf. --update-cve-databese-only Do not run cve check. Update CVE database only. --verbose Enable verbose output
以下のように cve_check.py を実行してください。
build@28d700e79b8d:~/work/build$ cve_check.py --image-name custom-image \ --output-format text,json 2024-10-03 02:27:27,718:INFO: Update NVD CVE database 2024-10-03 02:47:53,038:INFO: Update last modified date 2024-10-03 02:47:53,043:INFO: Update debian CVE database 2024-10-03 02:47:54,471:INFO: clone cip-kernel-sec 2024-10-03 02:47:57,628:INFO: Checking CVEs ... 2024-10-03 02:48:34,786:INFO: CVE check finished. CVE check results are stored in /home/build/work/build/tmp/deploy/cve/custom-image-emlinux-bookworm-qemu-arm64
コマンドの実行が完了しましたら、exit コマンドでコンテナからログアウトしてください。
build@28d700e79b8d:~/work/build$ exit
実行後、build ディレクトリに脆弱性情報が保存されたファイルが生成されます。
- /home/emlinux/EMLinux_3.1-202409/source/emlinux-3.1-202409/build/tmp/deploy/cve/custom-image-emlinux-bookworm-qemu-arm64
上記 cve_check.py 実行時に --output-format オプションに text, json を設定しているために、テキスト形式および JSON 形式のファイルが生成されています。
$ ls -lh total 19M -rw-r--r-- 1 emlinux emlinux 7.9M Oct 3 02:48 custom-image-emlinux-bookworm-qemu-arm64_cve -rw-r--r-- 1 emlinux emlinux 11M Oct 3 02:48 custom-image-emlinux-bookworm-qemu-arm64_cve.json drwxr-xr-x 2 emlinux emlinux 4.0K Oct 3 02:48 json drwxr-xr-x 2 emlinux emlinux 4.0K Oct 3 02:48 text
例えば、EMLinux 3.1-202409 では CVE-2024-42154 (CVSS Version 3.x のスコアが 9.8) という脆弱性を修正しており、CVE STATUS が Patched になっています。
テキスト形式の場合
PACKAGE NAME: linux-cip BINARY PACKAGE NAME: linux-image-cip VERSION: 6.1.102-cip26+r0 CVE: CVE-2024-42154 CVE STATUS: Patched (後略)
JSON 形式の場合
"CVE": "CVE-2024-42154", "PACKAGE NAME": "linux-cip", "BINARY PACKAGE NAME": [ "linux-image-cip" ], "VERSION": "6.1.102-cip26+r0", "CVE STATUS": "Patched", (後略)
さいごに
EMLinux には脆弱性検査機能が実装されており、本記事で示したように、簡単に脆弱性の情報を得ることが可能です。
脆弱性検査機能は無償評価版でも利用可能です。ぜひ、「EMLinux 無償評価版」で脆弱性検査機能をお試しください。
補足 : EMLinux カスタムメンテナンスサービス
サイバートラストでは、お客様の組込み機器に合わせて EMLinux をカスタマイズする受託開発を提供しております。また、 受託開発 にて新規に開発させていただいた部分について、継続的な脆弱性対応を提供させていただくサービスもご用意しております。
お客様の組込み機器のセキュリティ向上のため、EMLinux の受託開発と併せて「EMLinux カスタムメンテナンスサービス」のご利用もご検討いただければ幸いです。
関連リンク
連載リンク
- 第 1 話:商用組込み Linux:「EMLinux」のご紹介
- 第 2 話:組込み Linux「EMLinux」を使ってみよう
- 第 3 話:組込み Linux「EMLinux」をカスタマイズしてみよう
- 第 4 話:組込み Linux「EMLinux」の SBOM 出力機能を使ってみよう
- 第 5 話:組込み Linux「EMLinux」の脆弱性検査機能を使ってみよう