홈 네트워크 해킹



Similar documents
홈 네트워크 해킹

PowerPoint 프레젠테이션

망고100 보드로 놀아보자-4

슬라이드 1

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

SBR-100S User Manual

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint 프레젠테이션

Smart Power Scope Release Informations.pages

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

슬라이드 제목 없음

hd1300_k_v1r2_Final_.PDF

1217 WebTrafMon II

H3250_Wi-Fi_E.book

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

1. 배경 업무 내용이나 개인정보가 담긴 청구서 등을 메일로 전달 시 중요한 정보가 유출되는 경우가 발생하고 있으며, 이에 따른 메일 암호화 솔루션을 도입하고 있으나 기존 ActiveX를 기반으로 한 플러그인 방식은 여러 가지 제약으로 인해 사용성이 저하되고, 고객 대

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

(SW3704) Gingerbread Source Build & Working Guide

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

Mango220 Android How to compile and Transfer image to Target

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

하드웨어 해커가 되어보자!

bn2019_2

슬라이드 1

PowerPoint 프레젠테이션

Subnet Address Internet Network G Network Network class B networ

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech

컴퓨터관리2번째시간

(72) 발명자 서진교 경기 용인시 수지구 풍덕천2동 1167 진산마을 삼성5차아파트526동 1004호 조필제 경기 용인시 풍덕천동 유스빌 401호 - 2 -

온라인등록용 메뉴얼

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech

vm-웨어-앞부속

Microsoft PowerPoint - 02-Development-Environment-1.ppt

벤처연구사업(전동휠체어) 평가

Smart Home Hacking in Real World

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

untitled

Adobe Flash 취약점 분석 (CVE )


Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

untitled

ActFax 4.31 Local Privilege Escalation Exploit

PowerPoint 프레젠테이션

ConnectCore i.mx53 / Wi-i.MX53 Freescale i.mx53 Cortex A8 system-on-module 네트워크가가능한 i.mx53 ConnectCore는새로운프리스케일 i.mx53 Application 프로세서기반인고성능 32-bit S

슬라이드 1

Sena Technologies, Inc. HelloDevice Super 1.1.0

Microsoft Word - MV210_CPUSpec.doc

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3

LN_5_Rootfs

DE1-SoC Board

제20회_해킹방지워크샵_(이재석)


커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

슬라이드 1

RHEV 2.2 인증서 만료 확인 및 갱신

歯 동아일보(2-1).PDF

Microsoft Word - PEB08_USER_GUIDE.doc

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

DSP_MON 프로그램 메뉴얼

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

TCP.IP.ppt

Microsoft Word - Armjtag_문서1.doc

1. 제품사진및보드설명 < 그림 1.1> AVR-ATmega128 확장형 DEV 보드사진 1.1 제품소개 ATMEL사의 8비트프로세서인 AVR-ATmega128 MCU를이용하여학습및개발을할수있는 AVR 개발보드입니다. 초보자를세심하게배려하기위하여모든부품의부품이름및부품정

Car Hacking Training - 몽이와함께하는자동차해킹 - 강의소개 - 최근스마트카, 커넥티드카, 자율주행차와같은키워드들과함께차량에대한관심이나날이증가되고있습니다. 하지만이처럼자동차의기능이확장되고특히인터넷과주변기기에연결될수록해커로부터공격을당할수있는접점은더욱다양해

Microsoft PowerPoint - em8-리눅스설치.ppt

휠세미나3 ver0.4

PowerPoint Presentation


PowerPoint 프레젠테이션

Chap 10 안드로이드커널 (Kernel)

Contents I. 칼라스 네트워크 플레이어란 1. Pc-Fi를 넘어서 발전한 차세대 음악 플레이어 칼라스 네트워크 플레이어의 장점 3. 시스템 기본 구성

Microsoft Word doc

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

untitled

작성자 : saint Overview BackTrack 는 LILO 를부트로더로사용한다. BactTrack 을기본환경설정그대로설치하면부팅할수없는경우가있는데, 이것은실린더크기가 1024 보다큰하드디스크에설치하면 LILO 가 OS 를정상적으로읽어올수없기때문이다. 요즘나오는

cam_IG.book

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

SMB_ICMP_UDP(huichang).PDF

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Microsoft PowerPoint - 03-Development-Environment-2.ppt

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

ㅇ악성코드 분석

5" TFT- LCD 및감압터치지원 : 800x480 USB Host 2.0, USB OTG 2.0, GPS, Wireless LAN, Ethernet 10/100Mbps 통신지원 300 만화소 CMOS Image Sensor 고해상도카메라모듈내장 전원은베이스보드에서공

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

manual pdfÃÖÁ¾

hlogin2

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

CAN-fly Quick Manual

Web Scraper in 30 Minutes 강철

untitled

Transcription:

임베디드 시스템 취약점 분석 (홈네트워크 사례 중심) cybermong@grayhash.com 2015.4.23

목차 발표자 소개 홈 네트워크 연구 계기 홈 네트워크 시스템의 구조 펌웨어(소프트웨어) 획득 취약점 공격 과정 설명 취약점 데모 월패드 쉘 획득 전등 제어 현관/로비 도어락 제어 화상카메라 감시 대응방안

발표자 소개 정구홍(멍멍, 몽이) GrayHash(grayhash.com) 수석 연구원 해커스쿨(hackerschool.org) 운영자 각종 해킹대회(codegate, secuinside) 운영 Defcon CTF 본선 다수 진출 연락처 cybermong@grayhash.com http://facebook.com/goohong.jung

홈 네트워크 해킹 계기

홈 네트워크 해킹 계기

홈 네트워크 해킹 계기

홈 네트워크 해킹 계기

홈 네트워크 해킹 계기

하지만 내 눈에 들어온 것은..

하지만 내 눈에 들어온 것은..

홈 네트워크 해킹 계기

월패드 공략 절차

월패드 공략 절차 Step1 : 홈 네트워크 시스템의 구조 파악 Step2 : 공격 대상 선정(wallpad) Step3 : wallpad 펌웨어(소프트웨어) 획득 Step4 : wallpad 분해 Step5 : UART 연결 Step6 : 취약점 분석 Step7 : 공격(Exploitation) 진행

Step1 홈 네트워크 시스템의 구조 파악

현관 : 중앙 컨트롤러(gateway)

현관 : 중앙 컨트롤러(gateway)

현관 : 중앙 컨트롤러(gateway)

현관 : 중앙 컨트롤러(gateway) OS : Embedded Linux

거실 : Wallpad (사용자 인터페이스) OS : Linux (개조된 Android 2.3)

거실 : Wallpad (사용자 인터페이스)

스마트홈 제어 방식

전등 제어 스마트홈 제어 방식

가스 제어 스마트홈 제어 방식

난방 제어 스마트홈 제어 방식

현관 도어락 제어 스마트홈 제어 방식

로비 출입문 제어 스마트홈 제어 방식

엘리베이터 호출 스마트홈 제어 방식

스마트홈 제어 방식 타 세대와의 음성/화상 통화 (P2P)

스마트홈 제어 방식 단지 내 모든 세대가 서로 연결되어 있음

스마트홈 제어 방식 사설망 (인터넷 연결 안 됨)

Step2 공격 대상 선정

Wallpad VS Gateway Wallpad 사용자 UI 역할 각종 제어 패킷 송신 P2P 화상 통화 기능 Gateway 라우터, 중앙 컨트롤러 역할 각종 패킷 수신 및 주변장치 제어 화상 통화에 관여하지 않음

Wallpad VS Gateway 둘 모두 결국 같은 패킷을 송수신하므로 둘 중 어떤 것을 분석해도 상관 없다. 즉, 둘 중 하나를 이용해서 패킷 분석 가능 하지만, 화상 카메라는 Gateway와 단절되어 있기 때문에(실제 통화 시의 패킷만 지나감) 화상 카메라를 제어하기 위해선 결국 Wallpad 를 노려야 한다.

Step3 Wallpad 펌웨어(소프트웨어 획득)

펌웨어를 획득하는 여섯 가지 방법 1. 제조사에서 공개하는 펌웨어 다운로드 2. 자동/수동 업데이트가 될 때 패킷 스니핑 3. UART 포트 접속 4. 논리적 취약점을 이용하여 Shell 접근 권한 획득 후 추출 (partition dump, /dev/mtdblock) 5. Flash Memory 덤프 6. JTAG 포트 접속

1. 제조사에서 공개하는 펌웨어 다운로드

업데이트 파일 다운받기 http://www.iptime.co.kr/~iptime/bbs/zboard.php?id=sw_download

업데이트 파일 다운받기

업데이트 파일 다운받기

업데이트 파일의 구성 Boot-loader Kernel Ram Disk (initrd) Root File System (applications) 위와 같은 파일들이 하나의 파일로 덩어리져있다. 업데이트 파일의 성격에 따라 구성이 다를 수 있다.

2. 자동/수동 업데이트가 될 때 패킷 스니핑

자동 업데이트가 될 때 패킷 스니핑

자동 업데이트가 될 때 패킷 스니핑 언제 업데이트가 되는가? 기기를 재부팅 할 때 => 최신 버전 체크 특정 기간이 지났을 때 ex> 매월 1일 특수한 방법으로 기기를 켤 때 Ex> 파워키+리셋키 => 복구 모드 패킷 스니핑 방법들 포트 미러링 TWIN IP ARP Spoofing

포트 미러링 공격 대상 장비를 랜선에서 분리시킨 후, 그 랜선에 해커의 공유기를 연결 공유기에 대상 장비를 연결 공유기에 해커의 노트북을 연결 포트미러링 기능을 이용하여 공유기로 오가는 모든 패킷을 해커의 노트북으로 전달 단점 대상 기기가 고정 IP를 사용하는 경우 활용 어려움

TWIN IP 공유기의 IP주소를 NAT로 물린 특정 MAC의 내부 기기와 동일시 하는 기능 즉, 마치 공유기가 없는 것 같은 효과를 얻게 됨 대상 기기가 특정 IP 상에서만 통신이 가능할 경우에 유용

ARP Spoofing Ettercap 툴 추천 ettercap -T -M arp /192.168.0.1/ /192.168.0.10/ 192.168.0.1 : 라우터, 192.168.0.10 : Sniffing 대상

3. UART PORT 접속

UART 포트 접속

UART PORT 접속 Shell 접근이 가능할 시 파티션 덤프 부트로더 접근이 가능할 시 memory reading

4. 논리적 취약점 이용

논리적 취약점 이용 원격 백도어, Shell command execution 등의 단순한 취약점을 이용하여 Shell 획득 /dev/에 접근하여 파티션 덤프

갤럭시S 파티션 덤프 예제 부트로더 dd if=/dev/block/bml1 of=/sdcard/boot.bin bs=512 커널 dd if=/dev/block/bml7 of=/sdcard/zimage bs=4096 파일시스템 dd if=/dev/block/stl9 of=/sdcard/factoryfs.rfs bs=4096

5. Flash Memory Dump

desoldering Flash Memory 덤프

Flash Memory 덤프 Socket Adaptor

DataSheet 학습 Flash Memory 덤프

Flash Memory 덤프

6. JTAG 포트 접속

CPU의 JTAG 포트 접속

JTAG의 비유 JTAG = marionette(꼭두각시) CPU를 마음대로 조정할 수 있다.

JTAG을 통해 Flash Memory 제어

획득한 Firmware 분석

펌웨어 자동 분석 툴 Binwalk (Firmware Analysis Tool) 펌웨어 파일의 구성 분석 펌웨어 분석의 원리 Signature 탐색 Ex> squashfs == hsqs http://binwalk.org/ FMK (Firmware Mod Kit) 펌웨어 파일 내에서 각종 파일 추출 혹은 수정된 파일을 기반으로 새 펌웨어 빌드 https://code.google.com/p/firmware-mod-kit/

Firmware Mod Kit 사용 예제 [root@hackerschool trunk]#./extract-ng.sh g104_kr_8_46.bin Firmware Mod Kit (build-ng) 0.73 beta, (c)2011 Craig Heffner, Jeremy Collake http://www.bitsum.com Scanning firmware... DECIMAL HEX DESCRIPTION --------------------------------------------------------------------------- ------------------ 720896 0xB0000 Squashfs filesystem, little endian, version 3.0, size: 1235415 bytes, 257 inodes, blocksize: 65536 bytes, created: Wed Nov 14 13:28:13 2012 Extracting 720896 bytes of header image at offset 0 Extracting squashfs file system at offset 720896 Extracting 160 byte footer from offset 1957920 Extracting squashfs files... Firmware extraction successful! Firmware parts can be found in 'fmk/*' [root@hackerschool trunk]#

Firmware Mod Kit 사용 예제 [root@hackerschool rootfs]# ls -al 합계 132 drwxr-xr-x 15 root root 4096 10월 14 2014. drwxr-xr-x 5 root root 4096 4월 3 14:22.. drwxr-xr-x 4 553779200 4160815104 4096 10월 14 2014 bin drwxr-xr-x 6 553779200 4160815104 4096 10월 14 2014 default drwxr-xr-x 2 553779200 4160815104 4096 10월 14 2014 dev lrwxrwxrwx 1 root root 8 4월 3 14:22 etc -> /tmp/etc drwxr-xr-x 3 553779200 4160815104 4096 10월 14 2014 home drwxr-xr-x 3 553779200 4160815104 4096 10월 14 2014 lib lrwxrwxrwx 1 root root 11 4월 3 14:22 linuxrc -> bin/busybox drwxr-xr-x 2 553779200 4160815104 4096 10월 14 2014 ndbin drwxr-xr-x 2 553779200 4160815104 4096 10월 14 2014 plugin drwxr-xr-x 2 553779200 4160815104 4096 10월 14 2014 proc drwxr-xr-x 2 553779200 4160815104 4096 10월 14 2014 save drwxr-xr-x 2 553779200 4160815104 4096 10월 14 2014 sbin drwxr-xr-x 2 553779200 4160815104 4096 10월 14 2014 tmp drwxr-xr-x 2 553779200 4160815104 4096 10월 14 2014 upgrade-bin drwxr-xr-x 5 553779200 4160815104 4096 10월 14 2014 usr lrwxrwxrwx 1 root root 8 4월 3 14:22 var -> /tmp/var [root@hackerschool rootfs]#

Binary 분석

월패드 분석 결과 1. 제조사에서 공개하는 펌웨어 다운로드 2. 자동/수동 업데이트가 될 때 패킷 스니핑 3. UART 포트 접속 4. 논리적 취약점을 이용하여 Shell 접근 권한 획득 후 추출 (partition dump, /dev/mtdblock) 5. Flash Memory 덤프 6. JTAG 포트 접속

Step4 월패드(wallpad) 분해

월패드 분해

월패드 분해

월패드 분해

월패드 분해

무언가를 분해했다면? CPU가 무엇인가? ARM? MIPS? CPU의 종류에 따라서, 어셈블리어 문법이 달라진다. 공격코드(쉘코드)의 구현 방법이 달라진다. Flash Memory가 무엇인가? AMD? SAMSUNG? Flash Memory의 종류에 따라서, Reading/Writing 구현 방법이 달라진다.

무언가를 분해했다면? UART 포트가 있는가? UART 콘솔 접속 가능 주로 4핀 포트 uart debug rs232 라고 적힌 부분 확인 JTAG 포트가 있는가? CPU 동적 디버깅 가능 TDI, TDO, TMS, TCK라고 적힌 핀 확인

월패드 분해 결과 CPU NXP2120 ARM11 기반의 32비트 프로세서 Flash Memory K9F1G08U0D 삼성 제작, Nand Type, TSOP Package (48p) UART 포트 (O) JTAG 포트 (X)

Step5 UART 연결

UART 포트

UART 포트

UART란? Universal asynchronous receiver/transmitter 범용 비동기 송/수신기 직렬 통신 프로토콜 데이터 송신/수신 시 각각 하나의 LINE만 이용 하드웨어 통신 규약의 한 종류 프로토콜이 매우 간단함 => 디버깅 용도로 많이 쓰임

하드웨어 디버깅 임베디드 개발자들도 개발의 고충이 있다 수 많은 버그들과의 싸움 기기의 상태 값을 실시간으로 출력하는 디버깅 방법 필요 LED로 출력? => 표현의 한계 LCD로 출력? => 구현이 복잡하고 화면 작음 네트워크로? => 배보다 배꼽이 더 그렇다면 개발자들의 선택은? 단순한 UART!

UART의 장점들 프로토콜이 단순하다. 관련 프로그램 구하기가 쉽다. Putty, Xshell, 하이퍼 터미널, 관련 장비를 구하기가 쉽다. USB-UART, USB-RS232, USB-SERIAL

총 4개의 핀 사용 TX : 데이터 송신 핀 RX : 데이터 수신 핀 GND : 그라운드 VCC : 전압 UART Pin의 구성 TX와 RX는 항상 자신의 입장에서 봐야 한다. PC의 TX : PC에서 데이터 송신 기기의 TX : 기기에서 데이터 송신

해커가 UART를 통해 얻을 수 있는 것들 커널, OS 메시지 취약점 공략에 필요한 각종 정보 획득 디버그 메시지 Ex> printf( initializing network adaptor ok\n ); 오류 메시지 Ex> Segmentation fault, command not found

해커가 UART를 통해 얻을 수 있는 것들 Hidden or Setting Menu 부트로더(Bootloader) 펌웨어 획득 새로운 펌웨어 Writing 커맨드 쉘(Command Shell) 펌웨어, 바이너리 획득 동적 분석

월패드의 UART 포트

문제점 너무 작은 UART 커넥터

UART 케이블 구매

UART 연결을 위한 장비 USB-UART, USB-RS232, USB-SERIAL USB 기반 UART 통신 장비 장치관리자 -> 포트 ->COM(n)으로 연결 됨

UART 연결 절차 요약 관련 USB 드라이버 설치 CP2102, PL2303, FT232 등 점퍼 케이블 연결 RS, TX, GND, VCC 터미널 소프트웨어 설치 Putty Xshell 연결 정보 설정 및 연결 수행

UART 포트 연결

UART 포트 연결

UART 연결 결과 동영상 Demo

Shell 접속 후 확인된 내용 UART 접속 시 바로 root 쉘 획득 Android 기반 운영체제 Telnet(원격 관리) 포트가 열려있음 홈 네트워트 작동에 필요한 포트들이 열려있음 홈 네트워크 작동에 필요한 프로세스들 실행 중

Step6 취약점 분석

홈 네트워크 해킹 구상 기본 모든 제어는 network packet 기반으로 이루어 진다. 그러므로 packet replay attack에 취약할 수 있다. 가정 (1) 패킷 송신자의 identity/credential 검사를 하지 않을 것이다. 가정 (2) 만약 검사를 한다면 spoofing/bypass가 가능할 것이다.

취약점 분석 대상 (1) Wallpad와 Gateway 사이의 패킷 분석 스마트홈 시스템 제어

취약점 분석 대상 (2) Wallpad device 장악 카메라/마이크 제어

바이너리 분석 취약점 분석 진행

취약점 분석 진행 네트워크 패킷 분석 (tcpdump + wireshark)

발견된 취약점 정리 1. telnet 서비스(/user/app/bin/telnetd)가 열려 있으며, passwd가 암호화 되어 있지 않고, 기기별로 다르게 설정되어 있지 않음 2. 모든 제어 통신 패킷이 암호화 되어 있지 않아 해커가 쉽게 분석 가능 3. 모든 제어 통신 패킷에 인증 절차 및 ACL 제어가 적용되어 있지 않음 4. 특정 서비스(/user/app/bin/cmxnp)를 통해 원격 임의 명령 실행 가능 5. 많은 서비스들에 secure coding이 되어 있지 않아 Buffer Overflow 및 Format String 취약점에 노출되어 있음

Step7 공격(Exploitation) 진행

Telnet 계정 분석 /etc/passwd, /etc/shadow가 존재하지 않음 /usr/bin/login 계정 정보를 담고 있는 파일 탐색 => 계정 정보를 바이너리 안에 가지고 있는 것을 확인 암호가 평문 형태로 존재하는 것을 확인 Hash를 사용하지 않음

Telnet 계정 분석

Telnet 계정 분석

IP 체계 분석 Gateway : 10.7.5.30 Wallpad : 10.7.5.31 10 : 공통 7 : 동 5 : 층 3x : 호수 30 : gateway 31 : wallpad

스마트홈 강제 제어 취약점 전등 제어 현관 도어락 제어 임의 명령 실행 화상 카메라/마이크 제어

스마트홈 제어 패킷 예제 전등 제어 패킷

전등 제어 동영상 Demo

스마트홈 제어 패킷 예제 현관 도어락 오픈 패킷

현관 도어락 제어 동영상 Demo

외부에서의 접근 방법 집 내부에 두 개의 공유기 설치 공유기1 : 인터넷 라인 192.168.0.1/255 공유기2 : 홈네트워크 라인 192.168.1.1/255 공유기 1은 PC의 유선 어댑터로 연결 공유기 2는 PC의 무선 어댑터로 연결 이 라인에 리눅스 연결 공유기 1의 특정 포트로 들어오는 연결을 공유기 2에 연결되어 있는 리눅스의 SSH로 포트 포워딩

외부에서의 접근 방법

스마트홈 제어 패킷 예제 임의 명령 실행 가능

스마트홈 제어 패킷 예제 화상 카메라/마이크 제어 명령 Gstreamer Library 이용 월패드 서버 # /user/app/bin/gst-launch-1.0 cmxvideosrc src=cmos header=true xpos=0 ypos=0 width=0 height=0 bitrate=6 gop=6 lcd=true! video/mpeg, mpegversion=4, width=320, height=240, framerate=6/1! tcpserversink host=10.11.10.21 port=6161 해커 서버 # gst-launch-1.0 -v tcpclientsrc host=10.11.10.21 port=6161! filesink location=/tmp/capture.mpg

화상 카메라 제어 동영상 Demo

대응 방안 wallpad/gateway의 취약점(특히 remote) 제거 계정 정보 및 각종 패스워드 암호화 BOF, FS 및 논리적 취약점 패치 해커의 리버싱을 방해한다. 난독화(Obfuscation) 안티 리버싱(Anti-Reversing)

대응 방안 이상 패킷 모니터링 허용 리스트에 없는 IP나 MAC으로부터 패킷 수신 시 경고 예상되지 않은 패킷 발생 시 경고 디바이스에 Shell 접속이 이루어질 시 경고 마이크/카메라 사용 시 하드웨어적으로 표시 제어 패킷 송신자의 identity 확인 IP, MAC Address 제어 패킷 암호화 대칭키 비대칭키

제어 패킷 송신자의 identity 확인 송신자의 IP가 설치된 기기의 IP가 맞는가? 해커가 임의로 할당 받은 IP 차단 해당 IP의 MAC이 올바른가? 단점 IP Spoofing 및 ARP Spoofing 가능 해결책 제어 패킷 암호화

제어 패킷 암호화 (대칭키) 대칭키 암호화 제 3자가 패킷을 해석하거나 변조하지 못한다. 세대별로 서로 다른 KEY를 사용해야 한다. 101호 : wallpad(keya 사용) <-> gateway(keya 사용) 102호 : wallpad(keyb 사용) <-> gateway(keyb 사용) Key의 규칙성이 존재하면 안된다. 단점 Packet replay attack에는 여전히 취약하다. 해결책 Timestamp Nonce

해결책 Timestamp 제어 패킷 안에 시간 정보를 함께 보낸다. 허용 시간 범위내의 패킷이 아니라면 무시한다. Nonce 매 요청 시마다 바뀌는 nonce 값을 이용하여 암호화 요청이 끝나면 해당 nonce 값은 폐기 해커가 packet replay attack을 했을 때 nonce가 다르기 때문에 packet이 무시됨 보통은 평문+Timestamp Nonce를 HMAC 으로 생성 HMAC : keyed-hash message authentication code

제어 패킷 암호화 (비대칭키) 제 3자가 패킷을 해석하거나 변조하지 못한다. 단점 해커가 자신의 공개키/개인키 사용 가능 본인 장비 분석을 통해 평문의 포맷은 알고 있다고 가정 해결책 Certificate Pinning Permanent Session

해결책 Certificate Pinning 특정 기관에서 발급한 인증서만 인정하도록 제한 본 홈 네트워크 환경에서는 해당 안 됨 무조건 정해진 public key만 사용하도록 고정 Ex> wallpad A의 public key만 사용 가능 Permanent Session 홈 네트워크 시스템 최초 초기화 시 random한 Session 생성 후 gateway와 wallpad가 공유 이 값이 맞아야만 정상적인 통신 가능

UART 콘솔 접속 불가 현재 패치 상황 telnet 서비스 접속 불가 SSH로 대체, shadow 파일 사용 Packet replay attack에 반응하지 않음 원격 명령 실행 취약점 패치됨

결론 - 공격 과정 요약 Step1 : 홈 네트워크 시스템의 구조 파악 gateway + wallpad Step2 : 공격 대상 선정(wallpad) Step3 : wallpad 펌웨어(소프트웨어) 획득 UART, Update, Flash Memory Dump Step4 : wallpad 분해 Step5 : UART 연결 Root Shell 획득 Step6 : 취약점 분석 패킷 스니핑 + 바이너리 분석 Step7 : 공격(Exploitation) 진행

결론 임베디드 장비의 보안 BOF, FS 등의 철저한 취약점 검증 필요 패킷/데이터 암호화 및 Identity 확인 필요 리버싱 방지를 위한 난독화, 안티리버싱 적용 필요 하드웨어적인 보안 작업 필요 (UART, JTAG 차단) 언제든지 해커의 먹이가 될 수 있다는 인식 전환 필요

감사합니다.