
特定のネットワークIoTプロトコルを使用したIoTデバイスのセキュリティテストのためのツールセット
.d8888b. 888 d8b
d88P Y88b 888 Y8P
888 888 888
888 .d88b. 888888 .d88b. 88888b. 8888b. 888 888 888
888 d88""88b 888 d88""88b 888 "88b "88b 'Y8bd8P' 888
888 888 888 888 888 888 888 888 888 .d888888 X88K 888
Y88b d88P Y88..88P Y88b. Y88..88P 888 d88P 888 888 .d8""8b. 888
"Y8888P" "Y88P" "Y888 "Y88P" 88888P" "Y888888 888 888 888
888
888
888
IoTデバイスのセキュリティテスト用ツールセット。対応プロトコル: AMQP, CoAP, DTLS, HTCPCP, HTTP, HTTP/2, gRPC, KNX, mDNS, MQTT, MQTT-SN, QUIC, RTSP, SSDP。
CotopaxiはGNU General Public License, version 2を使用しています: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Cotopaxiツールキットは、認可されたセキュリティテストにのみ使用することを意図しています!
一部のツール(特に脆弱性テスターやプロトコルファザー)は、対象のデバイスやサーバーが意図した動作を停止させる可能性があります。 例えば、テスト対象のクラッシュやハング、ネットワークトラフィックによる他のエンティティへの過剰な負荷などが発生する可能性があります。
これらのツールを実行する前に、テスト対象のデバイスまたはサーバーの所有者から許可を得ていることを確認してください。
これらのツールを実行する前に、地域の法律を確認してください!
最小限のCotopaxiバージョン(機械学習や開発ツールなし)のインストール:
pip install cotopaxi
ほぼ完全なインストール(DTLSサポートに必要なscapy-ssl_tlsは含まれません):
pip install cotopaxi[all]
インストールの詳細なドキュメントについては、インストールガイドを参照してください。
CotopaxiツールをMetasploitから使用したい場合は、Metasploit統合を参照してください。
device_identificationツールで使用される機械学習分類器は、以下の論文の著者によって提供されたコーパス「IMC 2019 ペイロードデータセット」を使用してトレーニングされました:
タイトル: Information Exposure for Consumer IoT Devices: A Multidimensional, Network-Informed Measurement Approach 著者: Jingjing Ren, Daniel J. Dubois, David Choffnes, Anna Maria Mandalari, Roman Kolcun, Hamed Haddadi 発表: Internet Measurement Conference (IMC) 2019 URL: https://moniotrlab.ccis.neu.edu/imc19dataset/
このコーパスを共有してくださった上記の著者に感謝します!
各ツールがサポートするプロトコル(左側のボックスはPython 2での実装、右側はPython 3での実装を示します):
各ツールの詳細なドキュメントについては、ツールを参照してください。
Cotopaxiチームが特定した、Cotopaxiでテスト可能な脆弱性:
Cotopaxiでサポートされているその他の脆弱性:
新しい脆弱性は、vulnerabilities.yaml 内のデータベースに簡単に追加でき、 ペイロードは cotopaxi/vulnerabilities//<payload.raw> に追加できます。
scapyをネットワークライブラリとして使用することによる既知の問題や制限事項がいくつかあります:
詳細は以下を参照: https://scapy.readthedocs.io/en/latest/troubleshooting.html#
Cotopaxiの開発に関する詳細情報については、開発ガイドを参照してください。
| Tool | AMQP | CoAP | DTLS | HTCPCP | HTTP/2 | gRPC | KNX | mDNS | MQTT | MQTT-SN | QUIC | RTSP | SSDP |
|---|
| service_ping | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| server_fingerprinter | ☐☐ | ☑☑ | ☑☑ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ |
| device_identification | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☐ | ☐☐ | ☐☐ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ |
| traffic_analyzer | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ |
| resource_listing | ☐☐ | ☑☑ | N/A | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☑☑ | ☐☐ | ☐☐ | N/A | ☑☑ | ☑☑ |
| protocol_fuzzer | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| client_proto_fuzzer | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| vulnerability_tester | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| client_vuln_tester | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| amplifier_detector | N/A | ☑☑ | ☑☑ | N/A | N/A | N/A | N/A | ☑☑ | N/A | ☑☑ | ☑☑ | N/A | ☑☑ |
| active_scanner | ☐☐ | ☐☐ | ☑☑ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ |