【ITニュース解説】複数のJohnson Controls製品における複数の脆弱性
ITニュース概要
ビル管理システムなどを提供するジョンソンコントロールズ社の複数製品に、セキュリティ上の欠陥(脆弱性)が発見された。悪用されると遠隔から不正操作される危険があるため、利用者は速やかにアップデート等の対策を行う必要がある。
ITニュース解説
Johnson Controls社が提供する複数の製品において、複数のセキュリティ上の弱点、すなわち脆弱性が存在することが報告された。同社はビルディングオートメーションや産業用冷凍、空調制御システムなどを手がける世界的な企業であり、その製品はオフィスビル、工場、病院といった社会インフラを支える多くの施設で利用されている。したがって、これらの製品に存在する脆弱性は、単なる情報システム上の問題にとどまらず、ビルの物理的な安全性や快適性、さらには事業の継続性にまで影響を及ぼす可能性を持つ重要な問題である。 ソフトウェアにおける脆弱性とは、プログラムの設計上の誤りや実装の不備によって生じる、セキュリティ上の欠陥を指す。この欠陥を悪用することで、攻撃者は本来許可されていない操作を実行したり、機密情報を盗み出したりすることが可能になる。システムを開発・運用する上で、脆弱性をいかにして発見し、修正していくかは極めて重要な課題である。今回の報告では、複数の異なる種類の脆弱性が指摘されている。その一つに、プログラム内部にパスワードなどの認証情報が直接書き込まれている「ハードコードされた認証情報」の問題がある。これは、攻撃者がプログラムを解析することで容易に認証情報を発見し、正規の利用者になりすましてシステムへ不正に侵入することを可能にする。また、本来アクセス権限のない利用者が重要な情報や機能にアクセスできてしまう「不適切なアクセス制御」も確認されている。これにより、システムの内部設定や個人情報といった機密情報が漏えいしたり、不正に設定が変更されたりする危険性がある。さらに、一般ユーザーの権限でログインした攻撃者が、何らかの手段で管理者権限を不正に取得してしまう「権限昇格」の脆弱性も存在する。管理者権限を奪われると、システム全体が乗っ取られ、データの改ざんや削除、他のユーザーアカウントの操作など、あらゆる不正行為が可能となる。 これらに加え、Webアプリケーションで頻繁に見られる古典的な脆弱性も含まれている。例えば、「クロスサイトスクリプティング(XSS)」は、攻撃者が悪意のあるスクリプトをWebサイトに埋め込み、それを閲覧した他の利用者のブラウザ上で実行させる攻撃手法である。これにより、利用者のクッキー情報が盗まれてセッションを乗っ取られたり、偽の入力フォームを表示してIDやパスワードを窃取されたりする被害が発生しうる。「SQLインジェクション」は、データベースへの問い合わせ言語であるSQLを不正に操作する攻撃で、データベースに格納されている情報を不正に閲覧、改ざん、削除することが可能になる。顧客情報や取引データといった重要な情報がその標的となりやすい。その他にも、システムに過剰な負荷をかけて機能を停止させる「サービス運用妨害(DoS)」につながる脆弱性も報告されており、攻撃された場合、ビル管理システムが停止し、空調や照明、セキュリティゲートなどが正常に機能しなくなる事態も想定される。 これらの脆弱性への対策として、製品の開発元であるJohnson Controls社は、ソフトウェアのアップデートや修正プログラム(パッチ)の提供を進めている。システムを運用する管理者は、開発元から提供される情報を常に確認し、可及的速やかにこれらの対策を適用することが求められる。システムエンジニアを目指す者にとって、今回の事例は多くの教訓を含んでいる。第一に、脆弱性情報を日常的に収集する習慣の重要性である。JVN(Japan Vulnerability Notes)のような公的機関が発表する情報や、利用している製品ベンダーのセキュリティ情報を定期的にチェックし、自らが関わるシステムに影響がないかを確認する必要がある。第二に、パッチ適用の重要性とその手順を理解することである。脆弱性が公表されたソフトウェアを放置することは、攻撃者に対して無防備な状態を晒すことと同義である。ただし、本番環境へパッチを適用する際は、事前にテスト環境で動作検証を行い、既存のシステムに予期せぬ不具合が発生しないかを確認する慎重さも不可欠である。さらに、そもそも脆弱性を作り込まないための「セキュアコーディング」の知識を身につけることも重要だ。今回指摘された「ハードコードされたパスワード」のような問題は、セキュアコーディングの基本原則を守ることで防ぐことができる。また、セキュリティは一つの対策だけで万全となるものではなく、複数の防御策を組み合わせる「多層防御」の考え方が基本となる。たとえ一つの防御壁が突破されても、次の防御壁で攻撃を食い止めるという設計思想は、堅牢なシステムを構築する上で欠かせない。今回のニュースは、社会インフラを支える重要なシステムにも、基本的な脆弱性が存在しうるという事実を示している。システムエンジニアは、自身が開発・運用するシステムが社会に与える影響の大きさを自覚し、セキュリティに対する高い意識と知識を持ち続けることが強く求められる。