OWASP IoT ToP 10 2018をまとめてみた

##OWASP IoT ToP 10 2018とは？
OWASP(Open Web Application Security Project)というWebアプリケーションのセキュリティでとても有名なコミュニティが定めた, IoTで懸念される10個の要素をランキング形式で発表したもの. 
2014年に発表以来更新されていなかったランキングだが, つい先日最新版が公表された. <br>

- 公式：　[OWASP IoT ToP 10 2018](https://www.owasp.org/index.php/OWASP_Internet_of_Things_Project)

<br>
##ランキング
公表されたランキングは以下のようなもの.

|順位|脅威|日本語|
|:--:|:--:|:--:|:--:|
|1|Weak, Guessable, Hardcoded Password|弱い、推測しやすい、<br>またはハードコード化されたパスワード|ー
|2|Insecure Network Services|安全でないネットワークサービス|3
|3|Insecure Ecosystem interfaces|安全でないエコシステムインターフェイス|ー
|4|Lack of Service Update Mechanism|サービスのアップデートメカニズムの欠如|ー
|5|Use of Insecure or Outdated Components|安全でないまたは古くなったコンポーネントの使用|ー
|6|Insufficient Privacy Protection|不十分なプライバシー保護|5
|7|Insecure Data Transfer and Storage|安全でないデータ転送と保存|
|8|Lack of Device Management|デバイス管理の欠如|ー
|9|Insecure Default Settings|安全でない初期設定|ー
|10|Lack of Physical Hardening|物理的強度の欠如|10

<br><br>

- **Weak, Guessable, Hardcoded Password**


> Use of easily bruteforced, publicly available, or unchangeable credentials, including backdoors in firmware or client software that grants unauthorized access to deployed systems.
> 
> Google翻訳<br>
> 展開されたシステムへの不正アクセスを許可するファームウェアまたはクライアントソフトウェアのバックドアを含む、容易にブルートフォースされた、公に利用可能な、または変更不可能な資格情報の使用。

IoT機器への攻撃においてtelnetによるパスワードクラッキングとSSHによるパスワードクラッキングが大半を占める
MiraiなんかもハードコーディングされたIDとパスワードでtelnetによるログインを行う. IoT機器の典型的なユーザ名とパスワードというものは攻撃者には知られているので, 初期パスワードのまま利用するのは危ない. 
	
<br>
	
- **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.
> 
> Google翻訳<br>
> デバイス自体で実行されている不要または安全でないネットワークサービス、特にインターネットに公開されているサービス。機密性、完全性/信頼性、または情報の可用性を危うくしたり、無許可のリモートコントロールを可能にします。

不要なポートが開いている, UPnPによってインターネットから直接アクセスできる脆弱性. IoT機器が利用していないにもかかわらずFTPやtelnetのポートが開いているケースは割とある. 

<br>


- **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.
> 
> Google翻訳<br>
> デバイスまたはその関連コンポーネントの侵害を可能にする、デバイス外部のエコシステム内の安全でないWeb、バックエンドAPI、クラウド、またはモバイルインターフェイス。 一般的な問題には、認証/承認の欠如、暗号化の欠如または脆弱性、および入力および出力のフィルタリングの欠如が含まれます。

IoT機器自体のセキュリティだけでなく, IoT機器を組み込んだエコシステムのセキュリティも重要だということ. エコシステム内の認証機能が弱かったり, 暗号化不足だととIoT機器の安全性も損なわれる.<br> ネットワークに繋がったIoTデバイスがwifiのユーザ名とパスワードを平文でブロードキャストした事例も. 同じシステム内にセキュリティレベルの低いIoT機器があるとそれだけでシステム全体のセキュリティレベルが低下してしまう. 

<br>

- **Lack of Service 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.
> 
> Google翻訳<br>
> デバイスを安全にアップデートする機能の欠如、これには、デバイス上のファームウェア検証の欠如、安全な配信の欠如（転送中に暗号化されていない）、ロールバック防止メカニズムの欠如、およびアップデートによる通知セキュリティの変化の欠如が含まれる。

よく言われるセキュリティ対策の「ソフトウェアは常に最新のものにしておきましょう」これができない. 最近では自動更新機能を持ったIoT機器も増えつつある？

<br>


- **Use of Insecure or Outdated Components**

> 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.
> 
> Google翻訳<br>
> デバイスが危険にさらされる可能性がある、非推奨または安全でないソフトウェアコンポーネント/ライブラリの使用。 これには、オペレーティングシステムプラットフォームの安全でないカスタマイズ、および妥協したサプライチェーンからのサードパーティ製ソフトウェアまたはハードウェアコンポーネントの使用が含まれます。

IoT機器を安く作るためとはいえ, 安全でないまたは古いソフトウェアコンポーネントやライブラリを使用することは, 既に脆弱性が知られている可能性がある. 

<br>

- **Insufficient Privacy Protection**

> User's personal information stored on the device or in the ecosystem that is used insecurely, improperly, or without permission.

> Google翻訳<br>
> 安全でない、不適切に、または許可なしに使用される、デバイスまたはエコシステムに保存されているユーザーの個人情報。

保存したり転送する際の暗号化や収集した情報で個人が特定できないようにする必要がある. 開発企業に勝手にデータが転送されている可能性も捨てきれないので, IoT機器を導入する際はよく選ぶ必要がある. 



<br>

- **Insecure Data Transfer and Storage**

> Lack of encryption or access control of sensitive data anywhere within the ecosystem, including at rest, in transit, or during processing.

> Google翻訳<br>
> エコシステム内のあらゆる場所（機密保持中、転送中、または処理中）での機密データの暗号化またはアクセス制御の欠如。

個人情報等を暗号化もせずにストレージに保存したりネットワークで伝送すると盗聴される恐れがある. 暗号化したら100%安全だという訳ではないが, せめて盗聴させないぞという意識はしてほしい. 

<br>

- **Lack of Device Management**

> Lack of security support on devices deployed in production, including asset management, update management, secure decommissioning, systems monitoring, and response capabilities.

> Google翻訳<br>
> 資産管理、更新管理、安全な廃止、システム監視、および応答機能を含む、本番環境に展開されているデバイスに対するセキュリティサポートの欠如。

IoT機器の量産に伴い, 4位のアップデート機能の欠如と併せてこのような機器のサポート機能が欠如している脆弱性がある. 開発企業はただ販売するだけでなく, 販売後のサポートも重要である. 未使用ポートを閉じるk能がないのは辛いですね. 

<br>

- **Insecure Default Settings**

> Devices or systems shipped with insecure default settings or lack the ability to make the system more secure by restrcting operators from modifying configurations.

> Google翻訳<br>
> デバイスやシステムが安全でないデフォルト設定で出荷されているか、オペレータが設定を変更しないようにしてシステムをより安全にする機能がありません。

開発企業側が設定した初期ユーザ名とパスワードがroot/passwardとかだったら不正アクセスしてくれと言っているようなもで, 企業側に対しての初期設定をどうにかした方がいいという項目. もちろん利用者側も設定を変更したりなど対策を怠ってはいけないが. IoT機器に管理者権限で管理できる機能をつけろと指摘している？

<br>

- **Lack of Physical Hardening**

> 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.

> Google翻訳<br>
> 物理的なセキュリティ強化策が欠如しているため、潜在的な攻撃者が将来のリモート攻撃に役立つ可能性のある機密情報を入手したり、デバイスをローカルに制御したりする可能性があります。

物理的なセキュリティ. IoT機器が公共の場なんかにお置いてあって誰でもUSBポートから機器にアクセスできたりSDカード等のストレージを盗めたらセキュリティもクソもない. 廃棄もしくは中古として販売した機器にデータが残っていたり. リバースエンジニアリングで機器の仕組みを解析し脆弱性探しなど攻撃の事前準備されないようにしろということ. 
<br><br>