令和前夜、平成最後の記事としてIoTのセキュリティを取り上げることにしました。
平成4年9月、日本最初のホームページが公開されました。(現在もアーカイブ版にアクセスできます。)平成19年にはiphoneが発表されてから10年、既存のWebサービスのデータやコンテンツにスマホ・クラウド・IoTの要素が加わることが珍しくなくなってきました。これにより将来の展開も含めて情報資産の守り方が難しくなってきています。守り方の難しさは単にインターフェースが増えた以外にも、Webの世界とは異なるIoTの世界ならでは考え方があります。
例えば、IoTの世界ではWebの世界と異なりC: Confidentiality(機密性)よりA: Availability(可用性)の優先度が高くなります。なぜなら、もし自動車が内容が信用できないからブレーキの命令はキャンセルしたり、機密情報が漏れるかもしれないから工場のドアを動かないようにしたら、それこそ命に関わるからです。
Webサービスのセキュリティ標準として有名なOWASPでは、IoTの現状を踏まえ「OWASP IoT Top 10」として2018年末に公開されました。現代の日本ではこれだけ連日「IoT」のキーワードを見かけますが、IoTのセキュリティ標準に対する「日本語」記事があまりに少ないので今回記事にすることとしました。
現場では短く説明するよう求められると思いますので、お役立つようにそれぞれ「一言でいうと」をまとめていますのでご参考ください。
I1 Weak Guessable, or Hardcoded Passwords – 弱い認証情報
一言で言うと:簡単に破られるパスワードを設定していることです。
原文:OWASP IoT ToP 10 2018 I1 Weak Guessable, or Hardcoded Passwords
Use of easily bruteforced, publicly available, or unchangeable credentials, including backdoors in firmware or client software that grants unauthorized access to deployed systems.
判断基準
・IDまたはパスワードがハードコードされているなど変更不可能な場合
・そのデバイスの説明書やインターネット上の情報で取得可能な初期ID/パスワードは認証がそのまま設定されている場合
・設定可能な認証情報が数字4桁以内など
・アカウントロックなどのブルートフォース攻撃に対する十分な対策がない場合
・多要素認証の欠如
解説
IDまたはパスワードがハードコードされているなど変更不可能な場合
最近見つかった脆弱性、CVE-2019-9493は、アプリに管理者の認証情報がハードコードされている脆弱性なのでまさにこのカテゴリに当てはまります。こう言ったケースに対して、ハードコードされていた部分を削除して更新版のアプリを出すことは対策になりません。(認証情報のハードコードはCWE分類ではCWE-798: Use of Hard-coded Credentialsに当たります。)
そのデバイスの説明書やインターネット上の情報で取得可能な初期ID/パスワードは認証がそのまま設定されている場合
一昔前まで製品の説明書は分厚く製品の箱に入っていたものですが、最近は非常に薄く最低限で判らなければオンラインヘルプを確認するのが当たり前となりつつあります。そして、大抵の製品の説明書はインターネット上で製品番号を検索すれば出てきます。注意が必要なのは説明書上で管理画面のID/パスワードなど認証に付いて記載されている場合です。
先に述べたように初期IDとパスワードはインターネットで検索できる公開情報なので、情報も容易に手に入り攻撃方法も簡単です。Censysなどを利用すればインターネット上に繋がっているデバイスの情報をいつでも入手できます。「不正アクセス行為の禁止等に関する法律に引っかかるのでは?」と考えるのは自然ですが、デフォルトの公開されているID/パスワードは不正アクセスを主張する本人が定め保有する情報ではないので「他人の識別符号」には当たらず、入手自体も公開情報なわけですから「他人の識別符号を不正に取得する行為」にも当たらず、認証管理されたコンテンツにも見なされない可能性があり施錠してない家とは違い法律が味方してくれない可能性が十分あります。
Webサービスでは広まっていますが、家庭や職場にあるFaxや監視カメラ、ルータなど初期パスワードから変更した確信がないという方もいらっしゃるのではないでしょうか。
2016年わずか60パターンの組み合わせで50万台のデバイスを乗っ取ったMiraiというマルウェアが有名になりました。
今年(2019年)に入って、病院、スーパーマーケット、食料品店の業務用冷凍庫に搭載されている温度制御システムがデフォルトの認証情報で公開状態にあり制御可能になっていると発表する記事もありました。
昨年9月アメリカカリフォルニア州で「IoTデバイスに一律の初期パスワードを設定することが禁じられ、デバイスごとに異なるパスワードを設定するか、利用者が使用前に独自のパスワードを設定することが義務づける」法律が成立しました。日本ではクローリングして初期パスワードの警告を出すようなことに予算を割くより、法制定して原因の発生自体を予防した方が良いのではないでしょうか。
I2 Insecure Network Services 安全でないネットワークサービス
一言で言うと:不正アクセス可能なネットワークサービスが公開されている
原文:OWASP IoT ToP 10 2018 I2 Insecure Network Services
Unneeded or insecure network services running on the device itself, especially those exposed to the internet, that compromise the confidentiality , integrity/authenticity, or availability of information or allow unauthorized remote control.
判断基準
・認証機能のないUPnPなどが公開など、安全でない通信サービスの公開
・メンテナンスサービス/管理用ポートの開放
・不要なポートが空いている
解説
認証機能のないUPnPなどが公開など、安全でない通信サービスの公開
最近増えてきているTelnet(ポート23/TCP)の通信は、IoT狙いの可能性が高いです。Webサーバなどでスキャンして空いていることは滅多に見かけなくなった一方、 IoT機器を遠隔操作するためのプロトコルには、telnetが広く使われていることが根拠です。
M2M接続に利用されるMQTTも注意が必要です。刑務所のドア開放や電車に利用されてるため不正操作された場合の被害を考えると恐ろしいものがあります、
「UPnPに脆弱性・WANから攻撃可能」と発表されたため、UPnPがダメという認識が広まっていますが、25ポートは認証がなく脆弱だからだめと言っているようなものできちんと設定していないだけの話なので、認証の設定も併せて説明する必要性があります。
メンテナンスサービス/管理用ポートの開放
必要な時に空いてないと困り、かつアクセス制限をかけるといざという時に「困りそう」ということで、結局アクセス制限がかけられないまま公開しているなどというケースもあるがメンテナンスサービスで利用されるFTP(21/tcp) SSH(22/tcp)、サーバ管理ツールなどで利用される4000,8080,8443,8888/tcpなどは狙われます。
不要なポートが空いている
一度ネットワークの外部、内部からスキャンし検出されたポートを確認してみましょう。
その際、「〇〇のシステムで利用しています」で胸を撫で下ろすのではなく、そのシステムで検出されたポートに紐付くサービスはネットワークに常時公開する理由が明示できるかどうか考えてみましょう。もし、万が一のために公開しておく必要があれば、常時公開して置いた場合のリスクを明確にし、アクセスを適切に制限しましょう。特定のデバイスが全世界から常時アクセスできるようにしなければならないアクセス要件になることはないと思います。
I3 Insecure Ecosystem Interfaces 安全でないエコシステムインタフェイス
一言で言うと:IoT機器に繋がるデバイスやシステムが脆弱
原文:OWASP IoT ToP 10 2018 I3 Insecure Ecosystem Interfaces
Insecure web, backend API, cloud, or mobile interfaces in the ecosystem outside of the device that allows compromise of the device or its related components. Common issues includ a lack of authentication/authorization, lacking or weak encryption, and a lack of input and output filtering.
判断基準
・IoT機器を操作する端末の認証機能が存在するか、また脆弱な仕様になっていないか
・IoT機器がクラウドやAPIでデータをやり取りする場合の認可制御の不備
解説
エコシステムはそれぞれの製品からのデータ出力と入力により、全体のITサービスとして連携する事を示しています。IoT機器単体でセキュアであっても繋がるWeb API、クラウド、やモバイルなどエコシステムの認証・認可が脆弱だったり、暗号化が脆弱だったりと繋がっているシステム全体で見ると抜け穴があるケースが散見されます。
攻撃者としては目的を達成するために必要な一つの穴でも空いていれば良いわけなので、データのやり取りがあるシステム全体のつながりから脆弱な箇所がないか点検する必要があります。大企業の関連する末端のセキュリティ予算の少ない脆弱な中小企業から攻める「サプライチェーン攻撃」などもこの一種と言っていいでしょう。
認証の欠落という意味では意外なモノが該当します。FAXです。HP製の複合機「Officejet Pro」ではFax番号だけでわかれば受信端末の制御を奪われ、端末上で受信したファックス文書の窃取や改ざんのほか、仮想通貨のマイニングや接続された組織の内部ネットワークに対する攻撃に悪用される可能性がある「CVE-2018-5924」「CVE-2018-5925」が公表されました。発表されたアメリカでは「今どきFAXなんて、」となったそうですが、FAX保有率は97.8%の日本では重大な問題です。
I4 Lack of Secure Update Mechanism アップデートメカニズムの安全性の欠如
一言で言うと:アップデートが脆弱
原文:OWASP IoT ToP 10 2018 I4 Lack of Secure Update Mechanism
Lack of ability to securely update the device, This includes lack of firmware validation on device, lack of secure delivery(un-encrypted in transit), lack of anti-rollback mechanisms, and lack of notification security changes due to updates.
判断基準
・非暗号化通信でアップデートファイルがやり取りされる
・ファイルのアップデートが正しく署名されいるか確認していない
・アップデートファイルが暗号化されていない
・更新サーバが脆弱でないか
解説
I5 Use of Insecure or Outdated Components
一言で言うと:ライブラリやモジュールに脆弱な古いバージョンが使われている
原文:OWASP IoT ToP 10 2018
Use of deprecated or insecure software components/libraries that could allow the device to compromised. This includes insecure customization of operating system platforms, and the use of third-party software or hardware components from a compromised supply chain.
判断基準
・ライブラリやモジュール、プラグインに既知の脆弱性があるか
・ライブラリやモジュール、プラグインのライフサイクルが管理されているか
解説
Webアプリでも既知の脆弱性のある古いライブラリやプラグインが利用されていることで攻撃を受けることは少なくありません。
ここではモジュール、プラグイン、ライブラリなどをひっくるめてソフトウェアコンポーネントと言っています。
本体のソフトウェアを堅牢に作っていても、ソフトウェアコンポーネントに既知の脆弱であれば、よく検証された攻撃ツールで高確率で攻撃は成功してしまいます。
ここで言葉をコンポーネントに関する言葉を整理しておきましょう。
モジュール:システムへの接合部が規格化・標準化されていて、独立性のある一まとまりの機能を持った部品のこと
プラグイン:追加することで機能を拡張できるような機構をもつプログラムで切り離しが可能
ライブラリ:他のプログラムから利用できるように部品化し、複数のプログラム部品を一つのファイルにまとめたもの
ライブラリやモジュール、プラグインに既知の脆弱性がある
最近のWordpressサイトが攻撃された場合のほとんどがプラグインの脆弱性をつかれた場合です。既知の脆弱性は確立した手法で、確実かつ手軽に攻撃される可能性があるため注意が必要です。IoT機器においても関連機器も含め既知の脆弱性がないかマネジメントする体制が必要となります。
I6 Insufficient Privacy Protection
一言で言うと:許可なく送信される機微情報
原文:OWASP IoT ToP 10 2018
User’s personal information stored on the device or in the ecosystem that is used insecurely, improperly, or without permission.
判断基準
・プライバシーに関わり得る情報が許諾を得た上で送信される実装か
・組み合わせや差分、統計の取り方により個人の特定に繋がる情報の収集方法になっていないか
解説
プライバシーに関わり得る情報が許諾を得た上で送信される実装か
スマホのアプリなどの通信にGPS情報や端末の利用情報など、サービス上必要にせよ許可した覚えがない情報を飛ばしていることはままありましたが、IoTの現代、ビックデータとして大量のデータが通信されています。個人情報(PII)は個人を特定する情報(またはその組み合わせ)となっていますが、健康器具から通信されている心拍数、身長、体重、性別、年齢などの情報の組み合わせも少なくとも許諾を得た上で送信されなければプライバシー保護の観点を満たしているとは言い難いです。
組み合わせや差分、統計の取り方により個人の特定に繋がる情報の収集方法になっていないか
最近ではプライバシー保護データマイニング(PPDM:privacy-preserving data mining)が話題になっています。個人情報保護法の平成27年改正(平成27年法律第65号)により、情報通信技術の進展により、膨大なパーソナルデータが収集・分析される、いわゆるビッグデータ時代に対応した、ビッグデータの利活用の促進を図るため、改正個人情報保護法では「匿名加工情報」の概念が導入されました。
匿名加工情報とは、その処理の過程も含め、特定の個人を識別するに復元可能な情報が漏洩しないようにするための技術を施した情報を示します。ある病院である特定のガンで入院した人数の統計をとったところ1人と特定できてしまうような正確な統計はNGということになります。
I7 Insecure Data Transfer and Storage
一言で言うと:機微情報、認証情報が暗号化されていないで取り扱われている
原文:OWASP IoT ToP 10 2018
Lack of encryption or access control of sensitive data anywhere within the ecosystem, including at rest, in transit, or during processing.
判断基準
・機微情報、認証情報が平文で保存されている
・機微情報、認証情報が平文で通信されている
解説
機微情報、認証情報が平文で保存されている
暗号化することで仮にアクセス権が侵害されたとしても、情報を守ることができます。暗号化は通信時だけでなく多層防御の観点からも保存時の暗号化は徹底しなければなりません。
機微情報、認証情報が平文で通信されている
スマホでアプリが出たての頃はどちらも良く検出されていました。特に通信においてはショッピングのアプリケーションなどで会員情報が平文で飛んでいるようなアプリケーションもありましたが、特にiOSアプリケーションでhttpsサイトへの制限を行うApp Transport Security(ATS)の適用後はHTTPS以外で通信される方が少なくなりました。IoTのプラットフォームの提供側が暗号化通信を強制すると一気に改善するかもしれません。
I8 Lack of Device Management
一言で言うと:IoT機器の物理的管理の観点が抜けている
原文:OWASP IoT ToP 10 2018
Lack of security support on devices deployed in production, including asset management, update management, secure decommissioning, systems monitoring, and response capabilities.
判断基準
・サービス終了してもIoT端末としてアクセス権は制御されるか
・廃棄される端末の残存情報が悪用されないか
解説
サービス終了されたアプリケーションのAPIを自力で解析して、サーバを立て復帰させた人がいましたがこのような利用ができてしまうこと自体が脆弱です。監視に頼った防御の場合、サービスが終了すると同時に監視もなくなり残存資産の悪用し放題の状態になる可能性があります。デバイスとして物理的に残るIoT機器はライフサイクルマネジメントをしっかり考慮しなければなりません。
I9 Insecure Default Settings
一言で言うと:出荷状態の認証管理が弱い
原文:OWASP IoT ToP 10 2018
Devices or systems shipped with insecure default settings or lack the ability to make the system more secure by restrcting operators from modifying configurations.
判断基準
・初期出荷状態のID/パスワードがよく知られた値を使っている
・設定変更できる・できないの権限設定する機能が欠落している
解説
初期出荷状態のID/パスワードがよく知られた値を使っている
iOSではrootユーザーとmobileユーザー共にaplineがパスワードに設定されていることは有名だと思います。iOSの例は脱獄などしなければ影響はほぼありませんが、admin/passwordなど総当たりせずともまず試してみそうな脆弱な値が設定されたIoT機器がままあるのでその指摘となります。
設定変更できる・できないの権限設定する機能が欠落している
設定変更できる管理者ユーザと設定確認だけできる一般ユーザなど、必要最低限の権限を付与できるように権限管理すべきという指摘です。追加できるユーザが全て管理者権限の場合、退職者のアカウントで攻撃されるなど管理の隙をつく攻撃を受ける可能性があります。
I10 Lack of Physical Hardening
一言で言うと:機微情報の入ったIoT機器を物理的に簡単に盗めてしまう
原文:OWASP IoT ToP 10 2018
Lack of physical hardening measures, allowing potential attackers to gain sensitive information that can help in a future remote attack or take local control of the device.
判断基準
・IoT機器単体で機微情報が管理されているか
・IoT機器が盗難された場合、情報資産を守る手段はあるか
解説
IoT機器単体で機微情報が管理されているか
スマートフォンでも機微情報の保存は原則リモートサーバ上に暗号化通信にて暗号化した状態で保存されることを推奨していますが、IoT機器では端末内にそのまま保存しているケースも多く、それならば物理的に端末が盗んでしまえば情報資産は文字通り取得されてしまいます。
IoT機器が盗難された場合、情報資産を守る手段はあるか
クレジットカードを無くした際に電話して無効化するように、IoT機器も盗難された際にすぐに無効化できることが推奨されます。入館証ICなども、いつでも管理側から無効化できるのはもちろん有効期限や有効範囲を明確に定め管理する仕様が必要となります。
と以上で「OWASP IoT ToP 10 2018」の紹介・解説になります。いかがでしたでしょうか。
「Webに比べてざっくりな感じが、IoTがまだまだ黎明期なことを示している感じがする」が私の感想です。
令和の新しい時代の情報も加味しながらこの記事の充実を図れたらと考えております。
長文おつき合いいただきありがとうございました。
以上です。参考になれば幸いです。