Skip to content ↓ | Skip to navigation ↓

News. Trends. Insights.

SSL はインターネットにおいて最も基本となる防御レイヤーです。SSL は、信頼できないネットワーク上でも認証に基づいたプライベートな通信を可能にします。しかしながら、強力かつ安全な SSL スタックを実装することは簡単ではありません。もし間違えば、OpenSSL 上で発見された「Heartbleed」のように、大きな攻撃対象領域を提供することになります。

「Heartbleed」の発見を受けて、セキュリティコミュニティは、コーディング方法やさまざまな SSL スタックでの設計の選択に関し技術的な考察や、公開討論を多数行いました。このインシデントにより、OpenSSL を捨てて、NSS や GnuTLS あるいは Polar SSL などに乗り換えることが推奨されるようになりました。デバイスの場合、Internet of Things(IoT)向けに特別に設計された非常にコンパクトな SSL/TLS スタックの MatrixSSL を使用することが一般的に推奨されてきました。

SEC Consult 社のゼロデイリサーチラボが 2015 年に実施したインターネット規模の調査では、MatrixSSL のソースリポジトリ内に公開されたサンプルキーを使用しているオンライン上のデバイスが 80,000 台以上特定されています。MatrixSSL を実行中の数万台もの他のデバイスも、サーチエンジン Shodan で見つけることができます。また、インターネット上の検索では見つからない、ホームネットワーク内のデバイスも大量にある可能性があります。

問題となっているデバイスの多くは、WiMAX ゲートウェイや、インターネットサービスプロバイダから提供されたケーブルモデムのようなネットワークゲートウェイデバイスです。つまり、このコードに内在する重大な脆弱性が、プライバシーが絡む多数のインシデントの発端となる可能性があることを意味します。

過去に、有名なリサーチャーである Florian Weimer 氏と Hanno Böck 氏は、プライベートキー情報の漏えいの可能性を含む、MatrixSSL に内在する危険な暗号化の問題を発見しました。これらの欠陥について Böck 氏と何度か話をした後、MatrixSSL の X.509 証明書を扱うコードにメモリーの安全性に関わる問題がないか調べてみることにしました。

このために、私はよく使用される American Fuzzy Lop(AFL)ツールを使用してファズテストを実施すルータめの環境を準備しました。このツールは、Google のエンジニアであり有名なセキュリティリサーチャーでもある Michal Zalewski 氏によって開発されたものです。対象のプログラムの状態を監視して、データの操作が行われる間、このプロセスに変化がないか観察しました。

数分と経たないうちに、メモリーの安全性の問題を示す結果が出ました。そして、その後まもなく、ヒープバッファオーバーフローの脆弱性を含む、3 つの問題を特定しました。バッファオーバーフローには CVE-2016-6890、バッファエラーには CVE-2016-6891、また x509FreeExtensions() の不正な解放には CVE-2016-6892 が割り当てられました。

MatrixSSL を使用して、クライアント認証のために証明書を送信して反応を見るような用途で、信頼できない X.509 証明書を処理するシステムは、SSL スタックのコンテキストにおいて未認証のリモートコード実行の攻撃を受けやすくなります。ルータまたはその他の IoT デバイスの場合では、攻撃者がルートユーザとして、システムのフル制御を奪えてしまうことを意味します。

MatrixSSL を使用する組み込みデバイスのメーカーは、9 月にこの問題についての通知を受け、影響を受ける製品に対するアップデートを既にリリース済みであると思われます。もし、まだの場合はすぐに実行すべきです。MatrixSSL を使用するベンダーおよび個人ユーザは、Matrix SSL GitHub リポジトリから更新済みのコードを入手できます。これらの問題を修正すルータめの変更箇所はcommit b8dcfd875923da5a65ecfdbbe790ed63b1d33de3のリリース 3.8.6 で参照できます。

ユーザが Heartbleed の件で OpenSSL の使用を控えたように、これらの脆弱性が MatrixSSL の使用を抑制することはないであろうと私は考えています。定期的なパッチ適用のような、適切なセキュリティプラクティスを促進するシステムの設計が大きな課題となっています。

残念なことに、脆弱性のある MatrixSSL コードを実行する多くのデバイスは今後もフィックスを適用されないことが推測されます。それは、多くの IoT デバイスのベンダーがセキュリティ上の欠陥を解決すルータめのアップデートのリリースを怠っていることや、ほとんどのユーザがアップデートが自動で行われない限りアップデートをインストールしないといった理由によるものです。

この記事をご覧になっているベンダーの方への私からのアドバイスは、優れたアップデートメカニズムを備えたデバイスの構築と、迅速なアップデートの配信を可能にする開発に注力されることです。一方で、ユーザの方々は、購入する組み込みデバイスの長期サポートをベンダーに要求する必要があるでしょう。

 
Title image courtesy of ShutterStock

元の記事はこちらからご覧いただけます。

Endpoint Detection and Response For Dummies