
IotShark - IoT 트래픽 모니터링 및 분석
이것은 2019년 가을 학기 CS 219의 기말 프로젝트입니다.
IoTShark은 사용자가 자신의 IoT 장치에서 송수신되는 데이터의 추세를 모니터링할 수 있는 IoT 모니터링 서비스입니다. 일반적으로 적절한 구성을 갖춘 중간자 공격(man-in-the-middle attack)을 설정하는 데는 상당한 시간이 소요될 수 있으며, 컴퓨터 보안이나 컴퓨터 과학에 대한 경험이 거의 또는 전혀 없는 사람에게는 어렵게 느껴질 수 있습니다.
IoTShark은 단일 스크립트를 실행하기만 하면 사용자가 자신의 IoT 장치를 모니터링할 수 있는 [거의] 완전 자동화된 솔루션을 제공하는 것을 목표로 합니다. 사용자는 모니터링하려는 장치를 선택하기만 하면, 이 프로그램이 ARP 스푸핑 시작, 패킷 포워딩 설정, 중간자 패킷 스니퍼 설정 등 나머지 무거운 작업을 처리합니다. 또한 사용자가 포트, 유형, 타임스탬프를 기준으로 패킷을 필터링하여 전송되는 데이터의 양과 시기를 더 폭넓게 이해할 수 있는 이해하기 쉬운 대화형 웹 UI를 제공합니다.
또한 하트비트 메시지, 데이터 전송, 이상 징후와 같은 특정 종류의 데이터를 분류하는 것을 목표로 하지만, 마지막 항목은 대량의 데이터 없이는 이상 탐지가 어렵기 때문에(그리고 그만큼의 데이터를 수집하려면 많은 장치와 개인이 필요할 것이므로) 암호화되지 않은 RPi 테스트에서 시연될 가능성이 높습니다.
🚨🚨🚨 다음 지침은 오직 MacOS에서만 검증되었음을 유의하시기 바랍니다. Linux나 Windows + WSL을 사용하는 경우 결과가 다를 수 있으며 작동하지 않을 수 있습니다. 🚨🚨🚨
pip3 install -r requirements.txtsudo sysctl net.inet.ip.forwarding=1sudo python3 iotshark.pyPython 가상 환경을 생성하고 종속 패키지를 설치합니다.
virtualenv --python=`which python3` venv
source venv/bin/activate
pip install -r requirements.txt
로컬 머신에서 패킷 포워딩이 활성화되어 있는지 확인하세요. 이는 중간자 공격이 작동하는 데 필요합니다. macOS에서는 다음과 같이 설정할 수 있습니다:
sudo sysctl net.inet.ip.forwarding=1
메인 프로그램 iotshark.py를 실행하세요. 허용되는 옵션은 해당 스크립트를 참조하세요.
현재 이 프로그램은 다음 4가지 작업을 수행합니다:
-s 옵션으로 지정된 서브넷 또는 일반적인 주거용 서브넷 집합에서 모든 호스트 스캔-f 옵션 뒤에 csv 파일의 상대 경로를 지정하여 과거 캡처 데이터의 그래프 출력ARP 스푸핑이 실행된 후, Wireshark에서 다음과 같은 디스플레이 필터를 사용하여 대상 장치의 트래픽을 검사할 수 있습니다:
(ip.src==192.168.0.215 or ip.dst==192.168.0.215) and tcp.port != 443
캡처된 데이터는 다음 형식의 csv 파일에 저장됩니다:
{timestamp, incoming_bytes, outgoing_bytes, srcport, dstport, transfer_protocol, connection_protocol, srcip, dstip}
123123213, 0, 240, 36, 80, 65124, HTTP, UDP, 192.168.0.215, 104.24.4.5
123123240, 300, 0, 800, 443, 65125, HTTPS, TCP, 104.24.4.5, 192.168.0.215
예를 들어, 트래픽을 스니핑하는 동안 Alexa Echo Dot/Google Home에 말할 수 있는 긴 문자열이 있습니다. 웨이크 워드 전에 장치가 데이터를 전송하는지 주의하세요.
어둡고 폭풍우 치는 밤입니다. 저와 친구들은 방금 요세미티 국립공원에서 돌아왔는데, 그곳에서 미운 여우가 게으른 개를 뛰어넘습니다. 다음 주는 추수감사절입니다. 2019년 블랙 프라이데이도 곧 다가옵니다. UCLA에서 컴퓨터 보안 수업이나 프로그래밍 언어 수업을 듣는 것처럼 흥미로운 일을 하기에 좋은 시간입니다. 그건 그렇고, 첫 번째 에어버스 A380 점보 제트기가 은퇴합니다. 우리는 그 비행기를 타는 것을 좋아합니다.
WAKE_WORD, 추수감사절에 로스앤젤레스 날씨는 어떤가요?
어쨌든, 대륙 횡단 비행에는 보잉 787 드림라이너가 있습니다. Ravi 교수님의 웹 및 모바일 시스템 수업은 훌륭합니다. 블랙 프라이데이 세일 기간에 상업용 세탁기를 업그레이드해야 합니다. 맑고 화창한 날씨가 돌아오고 조슈아 트리 국립공원으로의 여행이 기다리고 있습니다. 글쎄요, 방금 느린 고양이가 새로운 안드로이드 로봇에 충돌하는 것을 보았습니다. Apple과 Amazon이 만든 다른 로봇들도 있습니다.