木村の re:Invent 2022 2 日目: IoT デバイスとセキュリティを考える

こんにちは!GIMLE チームで MLOps サービスを担当している木村です。

2 日目は、Adam Selipsky Keynote、チョークトークを 2 つ、あとビンゴ大会に参加してみました。 せっかくラスベガスに来ていることもあり、現地でしか体験できないチョークトークやワークショップなどを中心に参加していますが、だいぶ英語力が必要なこともあり、なかなか難しく感じています。

今日の内容は、「Protect your IoT Devices from DDoS events and enforce with Zero Trust」というチョークトークの内容から、「IoT とセキュリティ」について書いてみようと思います。

IoT デバイスとクラウド

ここ数年で、インターネットとつながる家電製品や車などのデバイスが増えました。
今まで単体で機能していた製品がインターネットにつながるようになったことで、ますます便利になりました。例えば、家の電気を外から消せたり、家の中から車のエンジンをかけてエアコンをつけて車内を温めたり、さまざまな製品があります。

そんな IoT デバイスの中には、AWS などのクラウドサービスに接続されているものもあります。デバイスについている様々なセンサーのデータが蓄積されたり、さらにそのデータを使って処理が行われたりしています。

IoT デバイスへの攻撃

ところで、パソコンやタブレットなどでインターネットを利用する際、セキュリティを意識したことはありませんか?パソコンがウイルスに侵されたり攻撃されないように、ウイルス対策ソフトの導入をしている方もいるかと思います。では IoT デバイスのセキュリティはどうでしょうか?

IoT デバイスももちろん例外ではなく、攻撃の対象となります。また、IoT デバイスからクラウドへ攻撃をしかけることがあるかもしれません。
攻撃手法は多数ありますが、なかでも簡単かつ、端末の種類に関わらず攻撃が有効である DoS 攻撃や DDoS 攻撃がよく使われるようです。

では DDoS 攻撃から IoT デバイスやクラウドリソースをどのように守ればよいでしょうか?

IoT デバイスを保護する

会場では DDoS 攻撃に対する保護の原則が紹介されました。

  • 責任共有モデルを理解する
  • サービスを理解する
  • 防御を上流に設定する
  • クラウドネイティブのサービスを使用して構築およびスケーリングする
  • 対応計画を立てる (運用を継続する)
  • クラウド中心のサービスを使用して定期的に監視およびテストする

クラウド側の設計を実施する際に、DDoS 攻撃の対策を実施しながら構築することが大切です。

また同時にゼロトラストという考え方を取り入れて設計することについても紹介されました。 ゼロトラストとは、「何も信用しない」ことを前提にしたセキュリティモデルです。
例えば、下記のような箇所に注意を向けます。

  • 内部と外部の脅威は常に存在することを意識すること
  • すべてのデバイスが敵対する可能性があると仮定し注意すること
  • 常に認証と認可を行うこと
  • 信頼されたデバイスのイベントが危険にさらされる可能性があること
  • ポリシーの動的な更新と変更をガードすること

最初からすべての IoT デバイスを信用しないという設計をすることで、DDoS 攻撃をしてくるデバイスを排除する考えです。

これらの観点から、ベストプラクティスとして落とし込むと下記のようになります。

  • データ処理からデータ取り込み部分を分離
  • オフラインの挙動を考慮した設計
  • エッジでリーンデータを設計し、クラウドでリッチ化
    • エッジ側で取得できるデータをできるだけエッジで処理し、デバイスからクラウドにアップロードするデータが小さくなるようにする
  • パーソナライゼーションへの対応
  • 定期的にデバイスのステータスチェックを送信
  • 機械学習(ML)を活用したデバイス監視の自動化
  • デバイスのセキュリティライフサイクルの全体的な管理
  • 最小権限でのアクセス権の確保
  • デバイスのクレデンシャルを静止状態で保護
  • デバイスのアイデンティティ・ライフサイクル管理の実装
  • データセキュリティの全体像の把握

たくさんの観点に気を配る必要があります。

実際に販売されている製品を眺める

会場では、上記のベストプラクティスを盛り込んで作られた製品のデモが行われました。
デモでは、ドアに取り付けられた指紋センサーで指紋を読み取り、正しいユーザーであればドアロックを解除する装置を動画で紹介していました。

ドアに取り付けられた指紋センサーに正しいユーザーが触れると、ロックが解除されます。
違うユーザーが触るとロックは解除されず、電話で通知されます。

この製品について、構成は下記の図のようになっています。

セキュリティと機械学習

私がこの構成で注目したのは、AWS IoT Device Defender ML 検知を利用している点でした。
AWS IoT Device Defender ML 検知は 2021 年 3 月に発表された機能で、過去のデバイスデータからの学習に基づいて、IoT デバイスレベルの運用およびセキュリティの異常を自動的に検出する機能です。 異常を検知した際にアラームを発報する設定をすることもできます。
この機能について今まで注目していなかったため、公開された時の AWS ブログを確認してみると、下記のような機能が紹介されていました。

  • ほぼリアルタイムの継続的な監視のために 6 つのクラウド側メトリクスと 7 つのデバイス側メトリクスをサポートし、メトリクスデータポイントに異常があるかどうかの推論に機械学習アルゴリズムを適用します。
  • ML アラーム通知の信頼水準 HIGH/MEDIUM/LOW をサポートします。
  • 最初の ML トレーニング期間中、この機能は、デバイス全体で 14 日間、メトリクスごとに最低 25,000 のデータポイントを集計集約し、最初のモデル作成時に、デバイスの動作異常の識別を開始します。
  • 最初のモデルが作成された後、この機能は、メトリクスごとに最低 25,000 のデータポイントを使用してモデルを毎日再トレーニングし、最新の 14 日間に基づいて予想されるデバイスの動作を更新します。
  • 組み込みの緩和アクションをサポートしているため、デバイスの問題に対処できます。
  • AWS IoT Device Defender ルール検出と同じアラームメカニズムを使用します。これには、Amazon SNS 通知の統合が含まれます。

4 つ目の項目ですが、毎日データを取り込みながら学習モデルを作り変え、それをデプロイし、現在のメトリクスの状態が異常かどうか判断できる状態にしている、というのが MLOps っぽいなと感じました。学習モデルを毎日作り変えながら予測をおこなうシステムを構築する際、パイプラインを使って自動化し、MLOps サイクルを高速でまわせるように設計するのはとても重要だと感じます。

IoT のセキュリティを考える際にも、機械学習が必要不可欠になりつつありますね。

セキュリティを意識した設計を心がけたい

今回は IoT デバイスのセキュリティというテーマでお話を聞いていましたが、ここでも機械学習が登場してきました。 普段 IoT とクラウドのことを考える際、 IoT デバイスからクラウドに送信されたデータを機械学習で活用することを考える機会のほうが多かったですが、裏方でも機械学習が活用されていることを知りました。

今後 IoT デバイスと関わる際に、セキュリティを意識しつつ、機械学習を活用できるポイントも考えながら設計をしたいと感じました。