Linuxプラットフォームのセキュリティを確保する方法とは?
図1:接続デバイスの増加により、データ量とリスクが増加
オープンソースのLinuxは、組込みシステムやデバイスの開発者に一般的な選択肢ですが、相互接続されたIoTデバイスの導入がますます増えているため、Linuxソフトウェアの脆弱性がこれまで以上に広まっています。Linuxの脆弱性を解決するために、監視、評価、勧告、修正の4つのステップを踏むことが重要とされています。しかし、脆弱性を特定し、脅威を軽減するために必要なアップデートを行うことは、デバイスの開発者やメーカーは非常に困難な作業であることが少なくありません。
Linuxは、組込みシステムの業界で最も人気のある開発プラットフォームです。 パブリッククラウドのワークロードの90%は、Linuxで実行されています(Ubuntu、2021年)。この数字は、オープンソースソリューションがインテリジェントエッジの境界を押し広げるにつれて、今後も増え続けるでしょう。Linuxベースのシステムとデバイスのセキュリティ確保は、開発者とデバイスメーカーが直面する最も緊急性の高いかつ厄介な課題の1つになっています。 デバイスの導入は、「導入したら終わり」という時代ではなくなりました 今日、すべてのデバイスは、相互接続するために設計されており、そのため、すべてのデバイスがセキュリティ上の脆弱性を抱えています。現実は、接続されたデバイスは、悪用が報告されるたびに、より脆弱になっている可能性が高いのです。
Linux開発における課題
図2:Linuxの開発で一般的な課題
相互接続されたデバイスは、指数関数的な速度で増殖しています。この数は、データ量、ネットワークトラフィック、ユーザーの大幅な増加と、より広い攻撃対象領域においてのサイバー脅威の増加に比例しています。 これに対し、デバイスメーカーやIoTアプリケーションの開発者は、設計の初期段階から強力なセキュリティ機能を組み込むために、洗練された方法を採用しています。 しかし、それだけでは十分ではありません。脅威は常に進化しており、オープンソースシステムのオペレーターは、デバイスのセキュリティをそのライフサイクル全体にわたって維持する仕組みを必要としています。
自分のノートPCを例にとって考えてみましょう。かつてはパスワードさえあれば安全であり、外部からの最大の脅威は感染したフロッピーディスクでした。しかし、インターネットに接続すると、そのコンピュータに搭載されているアプリケーションを経由して、攻撃者のターゲットとなります。 新たに発見されたソフトウェアの脆弱性からコンピュータを保護するためには、アプリケーションプロバイダから毎週または毎月のアップデート勧告や自動アップデートが行われる可能性があります。
Linux を実行するすべての IoT デバイスには、これと同レベルの継続した保護が必要です。問題は、それをどのようにシステム化し、スケーラブル、かつ費用対効果の高い方法で実現するかということです。
以下は、プロジェクトチームが開発でLinuxを使用する際に直面する主な課題です。
- 品質: 2021年には、21,957件のセキュリティ脆弱性と(NIST NVDデータベース)、開発者の時間の40%がデバッグに費やされている(Infopulse, 2019)ことが報告されました。
- コスト: デプロイされたデバイスのバグを修正するには、開発中に修正するよりも100倍以上のコストがかかると言われています。(The Register、2021年)。組込みソリューションがデプロイ後にサポートされる期間は、平均10~15年です。
- CVE: この5年間で、CVEとも呼ばれるセキュリティ脆弱性の数は急ピッチで増え続けています。2021年には、新たに報告されたCVEは20,000件を超えました。2022年半ばには、その数はすでに16,000件に達しています(cvedetails.com)。新しいセキュリティ脆弱性をすべて把握することは、特に新機能を統合し、厳しい納期を守ろうとする場合、困難ですが非常に重要です。
- サポート:組込みシステムのプロジェクトでは、デプロイメントのライフサイクルが長いのが一般的です。組込みデバイスは、5年から20年の間、使用されている可能性があります。そのデバイスが適切に廃棄されるまでは、サービスやメンテナンスを行う必要があります。
- スキルとリテンション: すべての企業は、適切なスキルセットを持つ同じリソースを求めて競合しています。優秀で経験豊富なソフトウェアエンジニアを見つけるのは難しく、維持するのはさらに難しいことです。
- ライフサイクルに関わる専門知識: 多くの場合、5年前に組込みプロジェクトを構築し、デプロイした人材は、現在デプロイされているデバイスをメンテンナンスするために在籍していません。ドメインの知識は無くなっているか、以前在籍していた誰かのノートPCに保存されています。
- 変化のスピードの管理: 業界はより速いスピードで複雑化しています。新しいテクノロジー、ツール、プロセスを活用する機械経済へ急速に移行しています。さらに、エンドユーザは新しい機能をより早く求めるようになっています。リリーススケジュールは短くなる一方です。
- 輸出とコンプライアンスの要件の管理: グローバル経済では、輸出、コンプライアンス、スタンダードなど、デバイスに課される新たな要件があります。
セキュリティ脆弱性の特定
97.8
脆弱性の修正に要する平均日数
—The Linux Foundation, 2022
システムの脆弱性を修正する前に、どこにどんな脆弱性があるのかを知る必要があります。IoTの普及と並行してセキュリティの脆弱性が増えているため、その難易度はますます高まっています。
共通脆弱性識別子(CVE) データベースは、脆弱性を特定、修復、および報告するための事実上の業界標準として広く受け入れられています。 CVE識別子を使用することで、脆弱性に関する情報を適切なセキュリティパッチや保護技術に関連付けることができ、これはオープンソースソフトウェアの世界では特に重要なことです。脆弱性の開示は、ソフトウェアベンダー、セキュリティベンダー、独立系研究者、コミュニティのメーリングリスト、米国コンピュータ緊急対応チーム(US-CERT)の政府機関など、さまざまなソースから行われます。しかし、CVEデータベースは、IoTの世界に起因する脆弱性の量と規模に対応することが課題となっています。
この10年間で、CVEの数はそれまでの10年間に比べ爆発的に増加し、毎年数千件が報告されています。 しかも、その深刻度は増す傾向にあります。米国国立標準技術研究所(NIST)によると、外部からの攻撃の80%は、パッチが適用されていない、または設定が誤っているシステムの既知の脆弱性を利用しています。 一方、McAfee Labsは、「2016 Threats Predictions」レポートの中で、最近のゼロデイ攻撃(ベンダーに知られる前に脆弱性を悪用する攻撃)の多くが、特にオープンソースソフトウェアの脆弱性を標的にしていると報告しています。
潜在的な問題点
ここでは、潜在的な問題点を特定するための確認事項をいくつか紹介します。
- あなたのLinuxプラットフォームは、未来の新しい要件に適応できるように設計されていますか?
- セキュリティ、イノベーション、継続的なメンテナンスのニーズに対応するための適切な技術スキルセットを持っていますか?
- 製品の全ライフサイクルに対応したセキュリティポリシーを策定していますか?
- セキュリティ上の問題が発生した場合、迅速に解決に向けた対応ができますか?
- CVEを緩和し、修復するためのスキルセットを持っていますか?
- コードのコンプライアンス問題を発見し、解決する方法をご存知ですか?
- 複数のプラットフォームのデプロイメントを管理・維持することができますか?
- 既存のプラットフォームを管理しながら、イノベーションに対応することができますか?
- デプロイされたLinuxプラットフォームのCVEや不具合を保守・管理できるかリソースはありますか?
4つの重要なステップ
デプロイされたシステムの脅威を継続的に軽減するには、監視、評価、勧告、修正の4つのステップを踏む必要があります。
監視
監視は、セキュリティ戦略における「監視カメラ」だと考えてください。2つの家に強力な鍵があるとして、監視カメラのある家は侵入に対してより良い備えができることになります。この場合、監視カメラは、US-CERT、NIST、CVEデータベース、各種セキュリティベンダー、民間のメーリングリスト、Linuxの脆弱性発見に注力するコミュニティなど、脆弱性の警告や勧告を発行する組織が運営しています。
しかし、何十もの機関が勧告を発表しているため、ある程度の憶測は避けられず、どの機関が正確で実用的な情報を提供してくれるかを知ることが重要です。
評価
勧告やセキュリティレポートを受け取ると、システムオペレータやそのソフトウェアパートナーは、自社のデバイスが脆弱であるかどうか、またどの程度脆弱であるかを判断する必要があります。 脆弱性は通常、高、中、低、無しのランクに分類され、起こりうる重大性、攻撃の難しさ、回避の可能性に基づいて優先順位が付けられます。
評価には、どのパッケージやバージョンに脆弱性があるか、また、お客様のシステムの構成を正確に把握することが必要です。脆弱性のある製品については、脆弱性が顕在化した瞬間からパッチを見つけるための作業が始まっています。
勧告
脆弱性が評価されたら、影響を受けるユーザに対して、問題点、脆弱性の判定、および是正のための行動計画を勧告する必要があります。このステップでは、影響を受けるすべての関係者にタイムリーかつ効率的に勧告を通知するために、適切なツールと方法論が必要です。
修復
修復のタイミングと方法は、通常、優先順位に基づいて決定されます。深刻度が高いと判断された脆弱性については、即時の「ホットフィックス」が必要な場合もあれば、深刻度が低いものについては、定期的なソフトウェア更新で対応する場合もあります。
課題は、効果的なパッチを迅速に提供し、安全な経路でエンドユーザに配布する方法を持つことです。
ウインドリバーのアプローチ
Wind River Studio Linux Services は、設計の複雑さや技術的負債など、Linux 開発者が直面する難問に対応します。
ソフトウェア開発チームが、半導体企業から提供された Linux OS を使用してプラット フォームプロジェクトを開始することは珍しいことではありません。プラットフォーム開発チームは、セミリナックスを使用することで、プロトタイプ段階から、場合によっては本生産までプロジェクトを加速することができるメリットを実感しています。しかし、認識されていない、あるいは計算されていない技術的負債や設計上の課題に直面する可能性もあります。そこで、ウインドリバーが支援します。
Wind River Studio Linux Services
Wind River Studio Linux Servicesを使用すれば、リソース、品質、市場投入期間の間で大幅なトレードオフを行う必要がなくなります。Wind River Studio Linux Servicesは、Linux開発者の3大課題に対応しています。
- セキュリティ問題や継続的なメンテナンス、運用による技術的な負債を軽減することができます。
- イノベーションを阻害するような時間のかかる作業のリソース負担を軽減することができます。
- 業界と技術に関する深い経験を活かし、製品ライフサイクルを通じて繁栄するデザインを構築することができます。
Wind River Studio Linux Servicesの特長
ソフトウェア部品表(SBOM)のCVEスキャン | 脅威と脆弱性の監視 | 設計上の問題の予防と解決 |
---|---|---|
|
|
|
図3:Wind River Studio Linux Servicesによるパートナーシップの提供とDIYの負担軽減
セキュリティスキャンサービス
セキュリティの脆弱性は、相互に接続された今日の世界では、単に事実として存在するものです。しかし、このプロセスには、ほとんどの IoT ソリューション開発者、デバイス製造者、およびシステム運用者の範囲を超えるレベルの関与が必要です。幸いなことに、オープンソースコミュニティは、Linuxソフトウェアに影響を与える脆弱性を見つけることに積極的です。このようなコミュニティで活動し、脆弱性の監視、評価、ユーザへの勧告、修正を行う実証済みのプロセスを持つソフトウェアパートナーと協力することで、メーカーや開発者は、サイバー脅威からユーザを保護することができます。
そのプロセスをウインドリバーのセキュリティスキャンサービスで行うことが出来ます。手順は次のとおりです。
1. SBOMのマニフェストを送ります。
- ユーザは通常通り、マニフェストファイルを作成することが可能
- マニフェストの生成方法に関するインストラクション/スクリプトを提供
- ウィンドリバーは、Yocto Projectで有効なレイヤーを提供し、SBOMを生成することが可能
2. データをスキャンし、レポートを
提供します。
- マニフェストまたはSBOMの内容を解析し、重要なCVEをさらに深く理解できるダッシュボードを提供
- 見やすいグラフィカルなダッシュボードを提供
- 露出の度合いを示すパッケージのランク付けをしたレポートを提供
3. 問題に焦点を当てるだけでなく、
成功への道筋を提供します。
- ソフトウェア専門チームとのミーティングにより、結果のより深い分析と話し合い、改善への道筋を提供
- パッケージの影響/軽減とリスクについての話し合い
- 過去の参考文献や進行中の技術的な取り組みを用いて、迅速な解決に向けた戦略的なアプローチを提供