web-dev-qa-db-ja.com

HTTPリクエストを傍受するために誰かが私のネットワークに接続する必要がありますか?

TL; DR HTTPリクエストを読み取るために、潜在的な攻撃者は私のWi-Fiパスワードを持ち、ネットワークに接続する必要がありますか?

過去1年かそこらの間、私はいくつかのDIYホームオートメーションプロジェクトを作りました。これに含まれているのはガレージドアオープナーです。基本的な前提は、ガレージを開きたいときに、ホームオートメーションハブがhttphttpsではなく)GETリクエスト(例192.168.1.xxx/openGarage)を送信することです。 )ガレージを開くDIY IoTデバイスに。 (IoTデバイスは、特定の/openGarageリクエストを受信するたびにガレージをトリガーします)

しかし、しばらくの間、これは私を心配させました。ネットワークに接続していない攻撃者がHTTP getリクエスト(192.168.1.xxx/openGarage)を傍受し、このgetリクエストを再生して、知らないうちにガレージを開くことができるかどうか疑問に思っていました。

ですから、私の質問は、攻撃者がこのGETリクエスト(/openGarage)を傍受するためにホームネットワークに接続する必要があるのか​​、それともこれを確認するために接続する必要があるのか​​、です。

よろしくお願いいたします。

よろしく、ロッコ

追伸このリクエストをhttpsにすることでリクエストが難読化されることを理解していますが、このIoTデバイスで使用しているESP8266に適切なSSL暗号化を実装することは非常に困難です。したがって、私は自分のセキュリティを自分のWPA2パスワードの強度に依存する用意があります。つまり、上記の質問に従って、攻撃者が最初に私のネットワークに接続してリクエストを傍受する必要がある場合です。

3
Rocco

はい。攻撃者は、ネットワーク内のHTTPリクエストを傍受するために、ワイヤレスまたは有線でネットワーク上にいる必要があります。それがより広いインターネットのためにネットワークを離れた場合、攻撃者は潜在的にあなたの資産とサーバーの間のどこかでそれを傍受する可能性がありますが、同じローカルネットワーク上のサーバーではトラフィックはルーターを離れません。 WPAは暗号化とリプレイの両方の保護を提供するため、攻撃者は送信しているメッセージを知ることも、メッセージをリプレイすることもできません(ただし、トラフィック分析-パケットサイズの記録など)ガレージのドアが開く前に、特定のMACアドレスのメッセージが常に送信されることに注意してください-可能です)。

ただし、この方法でシステムを実装することで、Webアプリケーション/ Webサービスのセキュリティの脆弱性という膨大な世界に自分を開放することになります。些細な例として、現在のサービスはほぼ間違いなくCSRFに対して脆弱です。ネットワーク上のいずれかのマシンが、256個の非表示のイメージタグ(<img src="http://192.168.1.0/openGarage">から<img src="http://192.168.1.255/openGarage">まで1つずつ)を含むWebページにアクセスすると、ガレージのドアが開きます。 JSを使用すると、はるかに大きなスペースでも非常にすばやく反復できます。

7
CBHacking

関連する主題領域を読みたくない限り、これは単純な質問と単純な答えです。はい、パケットの内容と/ openGarage APIを確認するには、攻撃者がネットワークに接続している必要があります(ネットワークが暗号化されている場合)。

あなたが気にしているのがそれだけなら、私たちは完了です。ただし、セキュリティで保護されていない(http)環境でも、だれもがAPIを正常にヒットしていないことをある程度のレベルで保証できる可能性があると、私は言い続けます。これを行う方法は、IOTデバイスとサーバーの間で事前共有キーを使用することです。これは、お互いの検証に使用するために継続的に変化するトークンを生成するために使用されます。基本的に、ワンタイムパスコードと同じモデル。これは、HTTPSデータの処理に苦労する可能性のある非常に基本的なIoTデバイスでも達成できるはずです。理想的なシナリオは、攻撃者が競合状態を悪用してトークンを再利用するのを防ぐために、「サーバー」が最後に使用されたトークンを認識していることです。

セキュリティを追加する他のほとんどの試みは、あいまいさに依存する必要があります。本当にひどい例として、「/ openGarage」を「/ questions」に変更し、そのネットワーク上でDNSサーバーを使用して、リクエストが「stackexchange.com/questions」に送信されるように見せることができます。攻撃者が何を見るかに応じて、エンドポイントに興味や価値がないと騙されてしまう可能性があります。

最後に。 IoTデバイスがそれを処理できる場合...一部のロギングは決して害を及ぼしません。

2
hiburn8