IoTデバイスの脆弱性とAWS IoT Core が VPC エンドポイントのサポート

2021年7月に発表された「AWS IoT Core が VPC エンドポイントのサポート」の意味を考えるために書いています。

AWS公式の発表記事は以下です。

[AWS IoT Core が VPC エンドポイントのサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2021/07/aws-iot-core-supports-vpc-endpoints/)

#1.VPCエンドポイント とはなんのことか？
AWS上のVPC内のサービスと、VPC外のサービスをプライベート接続で通信できるようにするための仮想デバイスです。
・PrivateLink と呼ばれるサービスを使って、各サービスを接続させることが出来ます
・PrivateLink の実体はVPC内のENI(Elastic Network Interface) になります
・PrivateLink自体がIPアドレスを持ってVPCの中にエンドポイントが出来ます

[公式ドキュメン](https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html)トからの引用ですが、以下のような制約があります。

・VPCエンドポイントは、現在IoTデータエンドポイントのみサポートされています。
・MQTTのキープアライブ期間は230秒に制限されています。この期間を超えるキープアライブは自動的に230秒に短縮されます
・各VPCエンドポイントは、合計100,000台の同時接続デバイスをサポートします。それ以上の接続数が必要な場合は、「IoT CoreでVPCエンドポイントを拡張する」を参照してください。
・VPCエンドポイントは、IPv4トラフィックのみをサポートします。
・VPCエンドポイントは、カスタムドメインを除き、ATS証明書のみを提供します。
・VPCエンドポイントのポリシーは、現時点ではサポートされていません。

#2.IoTデバイスの脆弱性と要因

・外部からサイバー攻撃を受けることで、IoT機器そのものの制御が効かなくなり、物理的な事故などを引き起こす。
・AIカメラやスマートスピカーなどの機器が乗っ取られることにより、情報を盗まれる。
・踏み台攻撃に利用され、知らぬ間にサイバー攻撃に加担させられる。

この種類の脆弱性の根本的な要因は
・デバイス自体がパブリックなIPを持ち外部からアクセス可能になっている
・アクセスがID/パスワードだけで可能で、かつ、それがデフォルト設定になっている
・ファームウェアが更新されず、セキュリティ的な脆弱性を持ったまま放置されている
ことが挙げられます。

現在、世界中のサイバー攻撃の4割が上記の脆弱性を持つIoTデバイスに対して、例えば
23番ポート(telnet)への通信を探るものになっています。

#3.根本的な対策
上記のようなことに対する根本的な対策は
・ファームウェアの更新
・不要なポートを閉じる
とかももちろんありますが、より根本的な対策をこうじようとすれば、当然
・証明書等による通信相手のデバイス認証（ID/パスワードに依存しない）
・そもそも閉域網だけでネットワークを構成して、外部に公開しない
が一番望ましいわけです。

クラウドのIoTサービスは証明書による相互認証サービスは普通に提供されていますので、ここでは、閉域網だけでネットワークを構成する点について考えているわけです。

#4.SORACOM等の通信ベンダーによる閉域網の実現

SORACOMなどのIoT通信ベンダーには、以下のような閉域通信のサービスがあります。

###１）キャリア網（閉域）＋クラウド環境への直結サービスは以前からありました
AWS PrivateLinkとSORACOM CanalでAWSのマネージドサービスに閉域アクセスする（SORACOM公式ブログ）
https://blog.soracom.com/ja-jp/2019/09/05/isolated-access-to-aws/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129241/a0b75a8c-217c-2d66-7637-9170a03639cd.png)

###２）更にそれをWi-Fiや有線回線にも拡張した“SORACOM Arc”
Wi-Fiや有線回線からもソラコムを。セキュアリンクサービス “SORACOM Arc” の提供を開始します（SORACOM公式ブログ）
https://blog.soracom.com/ja-jp/2021/06/23/launch-soracom-arc/

特に、“SORACOM Arc”は、今まで、SIM経由でないと利用できなかったSORACOMのプラットフォームを、WireGuardというVPNソリューションを利用することで伝送路の安全性を確保しつつ、SORACOMのプラットフォームに接続することを可能にしたものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129241/087b523b-0177-db59-1cdc-5b535effd554.png)

「バーチャルSIM」という仕組みを提供していますが、それはあくまでもSORACOMのサービスを管理するためのものです。ただ、オンデマンドリモートアクセスサービス SORACOM Napter と組み合わせることにより、Arcを利用するデバイスに対し必要な時だけインターネット経由でアクセスできるのは大きいですね。


#5.SORACOMを使用しない解決方法
ただどうしてもデバイス単位で課金されてしまうため、予算上使えないケースもあるかと思います。AWS IoT Core が VPC エンドポイントをサポートしたことで、それよりは安い予算で閉域網通信ができるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129241/e013fb90-809f-bf36-5ae2-5081f51a36aa.png)


以下に試した人の記事を紹介しておきます。

[AWS IoT CoreにVPN環境からアクセス](https://qiita.com/morikaz/items/85988aead232c9001062)

また、関連しそうなネタを貼っておきます。

[AWS IoT Coreをオンプレミス環境と使う際のアーキテクチャ例](https://pages.awscloud.com/rs/112-TZM-766/images/EV_aws-iot-deep-dive-5-915-topic3_Sep-2021.pdf)


それと、最近のアップデートなのですが、発表が地味で偶然見つけたネタですが、IoTデバイス管理に重要そうなので、こちらも貼っておきます。

新機能 AWS Systems Manager を使用して AWS IoT Greengrass エッジデバイスを安全に管理する
https://aws.amazon.com/jp/blogs/news/new-securely-manage-your-aws-iot-greengrass-edge-devices-using-aws-systems-manager/