露出したIoTオートメーションサーバとサイバー犯罪

トレンドマイクロは、スマートホームやスマートビルディングのような「複雑なモノのインターネット(Internet of Things、IoT)環境」を狙う攻撃シナリオについて調査し、リサーチペーパー「Cybersecurity Risks in Complex IoT Environments: Threats to Smart Homes, Buildings and Other Structures」にまとめました。この調査を通して、複雑なIoT環境にとって不可欠な構成要素であるオートメーションサーバが多数インターネットに露出していることが判明しました。

調査に際し、「複雑なIoT環境(Complex IoT Environments、CIEs)」を「設定されたルールに基づく動的な相互作用ネットワークの構築に十分な数のIoTデバイスで構成された環境」と定義しました。「十分な数」については経験上10台としています。このようなCIEにおいて、オートメーションサーバは、各デバイスを機能的に連結し相互作用することを可能にします。オートメーションサーバには、大きく分けてオープンソースのサーバと商用サーバの2種類があり、どちらもデバイスを制御できるだけでなく、重要な情報も保持しています。デバイスの追加に従って相互作用の組み合わせとルールの数が指数関数的に増加するような環境において、オートメーションサーバは決定的な役割を果たします。

オートメーションサーバがオンラインに露出していた場合、攻撃者によってオートメーションルールが再プログラミングされたり、ハードコードされた認証情報を窃取されたりする恐れがあります。オートメーションルールは追加されたデバイスが多いほど複雑になるため、管理者が調査を実施したとしても攻撃者によるロジックの変更に気付くのは容易ではありません。そのため、オートメーションサーバが露出していないか確認することはCIEのセキュリティにとって非常に重要です。

トレンドマイクロは、インターネットに接続したデバイスを対象とする検索エンジン「Shodan」を使用し、実際に露出しているオートメーションサーバの有無を調査しました。本記事では調査結果の詳細について解説します。

■調査結果の概要

Shodanを使用した調査の結果、オープンソースのオートメーションサーバが数万台規模で露出していることが判明しました。オープンソースのオートメーションサーバの特徴はプログラム可能な論理レイヤです。論理レイヤをプログラムすることによりCIEに対するルールの追加および変更が可能です。このような特徴により、後述する商用オートメーションサーバと比較してオープンソースのサーバはより多くの目的に使用することが可能になっています。

露出したオープンソースのIoTオートメーションサーバの上位は、「Domoticz」、「Home Assistant」、「openHAB」、「Fibaro Home Center」でした。国別に見ると、欧州の工業国、北米、オーストラリア、および日本で多くのサーバが確認されました。注目すべき国として、タイ、ベトナム、チリ、アルゼンチンでもオートメーションサーバが露出していました。このような検索結果は、まだ初期段階にあるIoTのオートメーションが、早くも世界的な広がりを見せていることを示しているのかもしれません。

露出したIoTオートメーションサーバ

図1:露出したIoTオートメーションサーバ(Shodanの検索結果に基づく)

露出しているオートメーションサーバの数は純粋にShodanの検索結果に基づいているため、以下に留意する必要があります。

  1. Shodanのデータにすべての露出したサーバが含まれているわけではない
  2. すべてのオートメーションサーバがインターネットに露出しているわけではない
  3. IPアドレスの動的な変化等の要因により検索結果は常に変化する

以上を踏まえると、実際に露出しているオートメーションサーバの合計数はShodanの検索結果よりも多い可能性があります。

実際の数にかかわらず数万台規模の露出は懸念すべき事実です。露出したシステムに機密情報が含まれていた場合、誰もがアクセスできてしまう可能性があります。実際に今回の調査を通して、「Home Assistant」、「FHEM」、および「Node RED」で情報が露出していることが確認されています。

■オープンソースの家庭用オートメーションサーバ

図1のように、数千台の「Home Assistant」サーバが露出していることがShodanで確認されました。Home Assistantは、モバイルフレンドリーな単一のインターフェイスを通してインターネットに接続されたすべての家庭用デバイスを実行することができるオープンソースの家庭用オートメーションサーバです。Raspberry Piであれローカルサーバであれ、Home Assistantは専用のサーバで動作します。そのためすべてのデバイスのデータはクラウドではなくローカルに保存されます。人気のあるIoTデバイスの多くに初期設定で対応しており、GUIを通してまたはYAML形式で記述することによりルールをプログラムすることが可能です。

露出している6,200台以上のHome Assistantサーバのほとんどは米国または欧州で確認されました。Home Assistantはデバイスの稼働状態を表示する履歴機能を備えているため、履歴情報にアクセスされた場合、そのパターンから住民が不在にしている時間帯を知られてしまう恐れがあります。また、露出したHome Assistantの設定ファイルに、ハードコードされたユーザ名とパスワードのような重要な認証情報が含まれている事例も確認されました。Home Assistantはパスワードによる保護機能を提供しており、露出していた家庭用サーバのほとんどはパスワードによって保護されていました。

露出していたデバイスの履歴情報

図2:露出していたデバイスの履歴情報

一方、露出している「FHEM」サーバはそれほど多くは確認されませんでした。FHEMは欧州で人気のあるオートメーションサーバです。これは、露出したFHEMサーバのほとんどがオーストリアとドイツで確認されたという事実とも一致します。FHEMはPerlで書かれたオートメーションサーバです。サーモスタットの制御、電灯のオン・オフ、消費電力の制限のような毎日の繰り返しタスクを自動化するために使用されます。Home Assistantと同様に、FHEMのプログラムは専用デバイスで実行され、Web、スマートフォン、Telnet、またはTCP/IPを使用して制御することが可能です。

露出したFHEMサーバには、設定ファイルやデバイスの活動に関する情報が含まれていました。設定ファイルには、ハードコードされた認証情報、家庭内のデバイス一覧、そして各デバイスの位置のような多くの情報が含まれています。また、デバイスの状態、センサの読み取りデータ、使用電力のような、接続されたデバイスの詳細情報を露出しているFHEMサーバも確認されました。

設定ファイルと同じ場所で確認されたFHEMのログファイル

図3:設定ファイルと同じ場所で確認されたFHEMのログファイル
トリガーされたすべてのイベントが記録されている

■オープンソースの家庭用および工業用サーバ

別のタイプのオートメーションサーバとして、家庭用デバイスと工業用デバイスの両方に対応した「Node-RED」の露出も確認されました。Node-REDは、デバイス、API、そしてオンラインサービスをフローチャートのようにつなぎ合わせることのできるオートメーションサーバです。トレンドマイクロは、その他のIoTオートメーションプラットフォームでも、いずれはこのようにIoTと産業用IoT(Industrial Internet of Things、IIoT)の両方への対応が進んでいくと考えています。

約880台の露出したNode-REDサーバのほとんどは、米国、ドイツ、日本、英国、そしてオランダで確認されました。Node-REDは家庭用および工業用アプリケーションの両方に利用可能なため、これらのサーバはスマートホームだけでなく、さまざまな用途に使用されているものでした。露出していたサーバの中には、日本の温室や車庫を管理するフローも含まれていました。

日本で確認された車庫を管理するオートメーションフロー

図4:日本で確認された車庫を管理するオートメーションフロー

■商用オートメーションサーバ

ごく少数の家庭向け商用オートメーションサーバも確認されました。商用オートメーションサーバは、オープンソースのオートメーションサーバと比較して、広範なIoTデバイスの統合という面で柔軟性は少なく、プリインストールされたデバイスの管理に使用されます。

商用オートメーションサーバは、ユーザがプログラムすることのできる論理レイヤを持っていないため、露出した商用オートメーションサーバの論理レイヤを改ざんするような攻撃を実行することは困難だと考えられます。しかし、Shodanの検索結果に表示される情報は、問い合わせに対して無制限に公開されています。また、適切な認証無しに管理画面にアクセス可能な状態になっているサーバも確認されました。トレンドマイクロは、インターホン、ネットワークカメラ、電灯、そして警報システムの管理画面が露出していたことを確認しています。

露出した家庭用警報システムの管理画面

図5:露出した家庭用警報システムの管理画面

■まとめ

オートメーションサーバが露出していた場合、スマートホームやスマートビルディングのようなIoT環境をさまざまな攻撃シナリオに対して晒してしまう恐れがあります。攻撃者はオートメーションルールをプログラムすることにより、デバイスの追加からセキュリティ機能の停止にいたるまで、さまざまな攻撃を実行することができるでしょう。ルールをプログラムすることが不可能な商用サーバでさえ、攻撃者に警報システムのようなシステムの管理画面へのアクセスを許し、家庭用デバイスの物理的な制御を可能にしてしまうかもしれません。スマートビルディングやスマートファクトリーのオートメーションサーバの場合、設定が改ざんされることによって業務が妨害されることも十分考えられます。加えて、露出したサーバで確認可能な情報の監視により、住人の行動パターンが特定されてしまうこともあるでしょう。

CIEを守る上でオートメーションサーバは良いスタート地点です。今回調査したオートメーションサーバの中にはルールの変更をユーザに警告する機能を持つものはありませんでした。そのため、ユーザは論理レイヤに変更が無いか頻繁に確認する必要があります。コードの変更を追跡し、改ざんされていた場合に迅速に元のバージョンに戻すためには、バージョン管理ソフトウェアの使用が有効でしょう。オートメーションサーバが保持する情報を限定することも推奨されます。

オートメーションサーバは、CIEを円滑かつ効率的に運用するための強力なツールです。そのため、オートメーションサーバの管理を適切なユーザの手に委ね、予期せぬ攻撃者のアクセスを許さないことが重要です。

オートメーションサーバを狙う脅威シナリオおよびより安全なCIE構築のためのベストプラクティスの詳細については、リサーチペーパー「Cybersecurity Risks in Complex IoT Environments: Threats to Smart Homes, Buildings and Other Structures」を参照してください。

参考記事:

翻訳: 澤山 高士(Core Technology Marketing, TrendLabs)