採用情報

お問い合わせ

BLOG

EMLinux

2025 年 01 月 22 日

第 5 話:組込み Linux「EMLinux」の脆弱性検査機能を使ってみよう

はじめに

Heartbleed、Shellshock、Log4Shell、これらの単語に共通するものは何でしょうか?

いずれも、OSS (Open Source Software) の重大な脆弱性に付けられた名前です。

特に 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 の受託開発と併せて「EMLinux カスタムメンテナンスサービス」のご利用もご検討いただければ幸いです。

関連リンク
連載リンク
CentOS 7 延長サポートサービス
デジタルトランスフォーメーションのための電子認証基盤 iTrust
SSL/TLS サーバー証明書 SureServer Prime