실전으로 배우는 IoT 해킹 [IoT 해킹과 보안 완벽 가이드]
- 원서명Practical IoT Hacking:The Definitive Guide to Attacking the Internet of Things (ISBN 9781718500907)
- 지은이포티오스 찬치스(Fotios Chantzis), 요안니스 스타이스(Ioannis Stais), 폴리노 칼데론(Paulino Calderon), 에반겔로스 데이르멘조글루(Evangelos Deirmentzoglou), 보 우즈(Beau Woods)
- 옮긴이장민창
- ISBN : 9791161759609
- 45,000원
- 2024년 12월 31일 펴냄
- 페이퍼백 | 644쪽 | 188*235mm
- 시리즈 : 해킹과 보안
책 소개
요약
인터넷에 연결된 다양한 IoT 장치는 일상에 편리함을 더해 주지만, 그 편리함 뒤에 숨겨진 부작용으로 다양한 위협이 존재한다. IoT 장치를 해킹하는 데 필요한 도구와 접근 방식을 상세히 설명하며, 실제 IoT 장치에서 위협을 발견하는 해킹 과정을 다양한 계층의 관점에서 다루고 있다. IoT 해킹을 처음 접하는 초보 해커부터 보안 전문가까지 누구나 쉽게 이해할 수 있도록 상세하고 유연한 내용으로 구성돼 있다. 더욱 안전한 IoT 인프라를 설계하는 데 도움이 될 것이다.
추천의 글
오늘날의 보안 프로그램은 기업 내의 전통적인 위협을 처리하도록 설계돼 있다. 그러나 기술이 너무 빠르게 발전하기 때문에 조직의 보안 경계를 유지하는 일이 점점 더 어려워지고 있다.
사물인터넷(IoT)의 탄생은 전통적인 제조업체를 하룻밤 사이에 소프트웨어 개발 회사로 바꿔 놨다. 이러한 기업들은 제품의 효율성, 업데이트, 사용 편의성, 유지 보수성을 개선하기 위해 통합 하드웨어와 소프트웨어를 결합하기 시작했다. 이는 일반적으로 가정이나 기업 네트워크와 같은 주요 기반 시설에서 주로 볼 수 있으며, 이제는 우리의 삶을 더 편리하게 만들어주는 새로운 기능과 적응력을 제공하는 것처럼 보인다.
이러한 기기는 보안 체계에 새로운 고민거리를 가져왔다. 제조업의 사고방식으로 설계된 기기는 보안 내재화가 거의 이뤄지지 않았다. 그 결과, 우리의 삶을 새로운 위협에 노출시키고 이전에는 존재하지 않았던 인프라로의 진입점을 제공하게 됐다. 게다가 여러 보안 취약점을 갖고 있고, 여전히 모니터링이 잘 이뤄지지 않아 기기에 발생하는 침입을 거의 인지하지 못하고 있다. 기업의 위협을 식별할 때 이러한 기기는 잘 드러나지 않는다. 종종 기업 내에서 보안 검토 대상에 오르지도 못하는 경우가 많다.
이 책은 단순한 보안 서적이 아니라 보안 테스트에 대한 철학을 제시하며, 가정과 기업 내의 연결된 기기에 우리의 관점을 변화시켜 더 나은 보호 모델을 구축해야 한다고 강조한다. 많은 제조업체가 개발 생명주기에 보안 조치를 포함시키지 않고 있어 관련 시스템은 공격에 매우 취약하다. 이러한 기기는 우리 삶의 거의 모든 요소에서 찾아볼 수 있다. IoT는 모든 산업 분야와 기업에 영향을 미치며 대부분의 기업이 감당할 준비가 돼 있지 않은 위험을 초래한다.
대부분의 사람은 IoT 기기와 관련된 위험을 제대로 이해하지 못하고 있다. 일반적으로 IoT 기기가 민감한 정보를 포함하지 않거나 회사에 중요하지 않다고 생각하는 경우가 많다. 실제로 공격자는 IoT 기기를 네트워크로 침투하는 은밀한 경로로 사용하며, 장기간 탐지되지 않은 채로 기업의 나머지 데이터에 직접적인 위협을 준다. 예를 들어 나는 최근 한 대형 제조업체의 사고 대응 사례에 기여했다. 공격자가 프로그래밍 가능한 로직 컨트롤러(PLC, Programmable Logic Controller)를 통해 조직에 침입했다는 사실을 발견했다. 해당 제조 공장 중 하나는 서드파티 계약업체를 통해 로직 컨트롤러를 관리하고 있었고, 공격자들은 이 계약업체의 시스템에 접근할 수 있었다. 이로 인해 공격자는 회사가 모르는 사이에 2년 이상 모든 고객 정보와 회사 데이터에 접근할 수 있었다.
프로그래밍 가능한 로직 컨트롤러는 전체 네트워크의 접근 지점이었고, 궁극적으로는 회사의 지적 재산과 고유 자산 대부분이 포함된 연구 개발 시스템에 직접적인 접근을 허용했다. 이 공격이 탐지된 유일한 이유는 공격자 중 한 명이 도메인 컨트롤러의 사용자 이름과 비밀번호를 추출하는 과정에서 실수를 저질러 시스템이 다운됐고, 이로 인해 조사가 시작됐기 때문이다.
저자들은 위협 모델링을 통해 위험과 노출이 무엇인지 이해하고 IoT 기기의 성공적인 테스트 방법론을 구축하는 데 중점을 두고 책을 집필했다. 또한 하드웨어 해킹, 네트워크 해킹, 무선 해킹, IoT 생태계 전체를 대상으로 하는 내용으로 확장되며, IoT 기기의 기술적 평가를 통해 식별된 노출을 이해할 수 있게 한다. 그리고 IoT 기기의 테스트 방법론을 수립할 때 조직 내에서 IoT의 테스트 프로그램을 설정하는 방법뿐만 아니라 실제 테스트를 수행하는 방법에 필요한 모든 것을 다루고 있다. 이 책은 대부분의 조직에서 보안 테스트를 수행하는 방식을 바꾸고, 그 과정에서 IoT 테스트를 포함해 위험의 이해를 돕는 것을 목표로 하고 있다.
기술적인 분야에 종사하는 사람들, 특히 IoT 기기를 제조하는 사람들 또는 가정이나 기업에서 IoT 기기를 보유한 모든 사람에게 이 책을 추천한다. 시스템 보안과 정보 보호가 그 어느 때보다 중요한 시기에 그 목적을 정확히 수행하고 있다. 이 책에 담긴 노력을 보며 미래에 더 안전한 IoT 인프라를 설계하는 데 큰 도움이 될 것이라고 확신한다.
─데이브 케네디(Dave Kennedy)
트러스티드섹(TrustedSec), 바이너리 디펜스(Binary Defense) 창립자
이 책에서 다루는 내용
◆ 실제 IoT 시스템, 프로토콜, 장치를 신속하게 테스트할 수 있는 개념과 기술 서술
◆ UART, I2C, SPI, JTAG, SWD와 같은 가장 기본적인 하드웨어 해킹 기술 탐구
◆ UPnP, WS-Discovery, mDNS 등의 IoT 네트워크 프로토콜 분석
◆ 전문적인 테스트 업무를 하면서 저자가 겪었던 실제 사례
이 책의 대상 독자
해커(때때로 보안 연구자로 불림)를 대상으로 집필했지만, 다음과 같은 사람들에게도 유용할 것으로 기대한다.
◆ IoT 생태계의 낯선 프로토콜, 데이터 구조, 구성 요소, 개념을 실험하는 참고 자료가 필요한 보안 연구자
◆ 조직 환경과 자산을 더 잘 보호하는 방법을 배우고자 하는 기업 시스템 관리자나 네트워크 엔지니어
◆ 고객의 새로운 요구 사항을 발견하고, 요구 사항을 제품에 반영함으로써 비용을 절감하고 제품 출시 시간을 단축하고자 하는 IoT 기기의 제품 관리자
◆ 새로운 기술을 습득해 더 나은 서비스를 제공하고자 하는 보안 평가자
◆ 사람을 보호하는 보람 있는 직업으로 나아가는 데 도움이 되는 지식을 원하는 호기심 많은 학생
이 책의 구성
1장, ‘IoT 보안 세계’에서는 IoT 보안이 왜 중요한지, IoT 해킹이 무엇이 특별한지 설명하며, 책의 나머지 부분에 필요한 기초를 마련한다.
2장, ‘위협 모델링’에서는 IoT 시스템에서 위협 모델링을 적용하는 방법과 일반적인 IoT 위협을 다루며, 약물 주입 펌프와 그 구성 요소들의 위협 모델 예시를 통해 이를 설명한다.
3장, ‘보안 평가 방법론’에서는 IoT 시스템의 모든 계층에서 포괄적인 수동 보안 평가를 수행하기 위한 견고한 프레임워크를 제시한다.
4장, ‘네트워크 평가’에서는 IoT 네트워크에서 VLAN 호핑을 수행하고, 네트워크에서 IoT 기기를 식별하며, Ncrack 모듈을 생성해 MQTT 인증을 공격하는 방법을 살펴본다.
5장, ‘네트워크 프로토콜 분석’에서는 낯선 네트워크 프로토콜을 다루는 방법론을 제공하고, DICOM 프로토콜을 위한 와이어샤크 디섹터(dissector)와 Nmap 스크립트 엔진 모듈 개발 과정을 설명한다.
6장, ‘무설정 네트워킹 익스플로잇’에서는 IoT 시스템의 배포와 구성을 자동화하기 위해 사용되는 네트워크 프로토콜을 살펴보고, UPnP, mDNS, DNS-SD, WS-Discovery의 공격을 다룬다.
7장, ‘UART, JTAG, SWD 익스플로잇’에서는 UART와 JTAG 핀을 열거하는 방법과 UART와 SWD를 사용해 STM32F103 마이크로컨트롤러를 해킹하는 방법을 설명함으로써 UART와 JTAG/SWD의 내부 작동을 다룬다.
8장, ‘SPI 및 I2C’에서는 2개의 버스 프로토콜을 다양한 도구와 함께 활용해 임베디드 IoT 기기를 공격하는 방법을 살펴본다.
9장, ‘펌웨어 해킹’에서는 백도어 펌웨어를 입수, 추출, 분석하는 방법과 펌웨어 업데이트 프로세스의 일반적인 취약점을 조사하는 방법을 보여준다.
10장, ‘단거리 무선 통신’에서는 RFID 남용에서는 카드를 읽고 복제하는 방법 등 RFID 시스템 대상의 다양한 공격을 다룬다.
11장, ‘저전력 블루투스(BLE)’에서는 간단한 실습을 통해 저전력 블루투스 프로토콜을 공격하는 방법을 설명한다.
12장, ‘중거리 무선: 와이파이 해킹’에서는 무선 클라이언트의 와이파이 연결 공격, 와이파이 다이렉트를 악용하는 방법, 액세스 포인트 대상 일반적인 와이파이 공격을 설명한다.
13장, ‘장거리 무선: LPWAN’에서는 LoRa 및 LoRaWAN 프로토콜에 대한 기본적인 소개와 함께 이러한 종류의 패킷을 캡처하고 디코딩하는 방법과 일반적인 공격을 다룬다.
14장, ‘모바일 애플리케이션 공격’에서는 안드로이드 및 iOS 플랫폼에서 모바일 앱을 테스트할 때 발생할 수 있는 일반적인 위협, 보안 문제, 기술을 검토한다.
15장, ‘스마트 홈 해킹’에서는 스마트 도어락을 우회하는 기술, 무선 경보 시스템을 방해하는 방법, IP 카메라 피드를 재생하는 방법을 설명하며, 책에서 다룬 많은 아이디어를 실제 사례로 설명한다. 15장은 스마트 러닝머신을 제어하는 실제 사례를 통해 마무리된다.
목차
목차
- 1부. IoT 위협 환경
- 1장. IoT 보안 세계
- IoT 보안의 중요성
- IoT 보안과 기존 IT 보안의 다른 점
- IoT 해킹의 특별한 점
- 프레임워크, 표준, 가이드
- 사례 연구: IoT 보안 문제 발견, 보고, 공개
- 전문가 관점: IoT 환경 탐색
- IoT 해킹 관련 법률
- IoT 보안에서 정부의 역할
- 환자 관점에서 의료 장치 보안
- 결론
- 2장. 위협 모델링
- IoT 위협 모델링
- 위협 모델링을 위한 프레임워크 준수
- 시스템 구조 식별
- 시스템 구조를 구성 요소로 분해
- 위협 식별
- 공격 트리를 사용한 위협 식별
- DREAD 분류 기법에 따른 위협 평가
- 기타 유형의 위협 모델링과 프레임워크 및 도구
- 일반적인 IoT 위협
- 신호 교란 공격
- 재전송 공격
- 설정 변조 공격
- 하드웨어 무결성 공격
- 노드 복제
- 보안 및 프라이버시 침해
- 사용자 보안 인식
- 결론
- 3장. 보안 평가 방법론
- 수동적 정찰
- 물리 또는 하드웨어 계층
- 주변 인터페이스
- 부팅 환경
- 잠금장치
- 변조 방지 및 탐지
- 펌웨어
- 디버그 인터페이스
- 물리적 견고성
- 네트워크 계층
- 정찰
- 네트워크 프로토콜과 서비스 공격
- 무선 프로토콜 테스트
- 웹 애플리케이션 평가
- 애플리케이션 매핑
- 클라이언트 측 제어
- 인증
- 세션 관리
- 접근 제어와 인증
- 입력 검증
- 논리 결함
- 애플리케이션 서버
- 호스트 구성 검토
- 사용자 계정
- 비밀번호 강도
- 계정 권한
- 패치 수준
- 원격 유지 보수
- 파일 시스템 접근 제어
- 데이터 암호화
- 서버 구성 오류
- 모바일 애플리케이션과 클라우드 테스팅
- 결론
- 2부. 네트워크 해킹
- 4장. 네트워크 평가
- IoT 네트워크로 뛰어들기
- VLAN과 네트워크 스위치
- 스위치 스푸핑
- 이중 태그
- VoIP 장치 모방
- _네트워크상의 IoT 기기 식별
- 핑거프린팅 서비스를 통한 비밀번호 찾기
- 새로운 Nmap 서비스 프로브 작성
- MQTT 공격
- 테스트 환경설정
- Ncrack에서 MQTT 인증 크래킹 모듈 작성
- MQTT에 대한 Ncrack 모듈 테스트
- 결론
- IoT 네트워크로 뛰어들기
- 5장. 네트워크 프로토콜 분석
- 네트워크 프로토콜 검사
- 정보 수집
- 분석
- 프로토타이핑과 도구 개발
- 보안 평가 수행
- DICOM 프로토콜 분석용 루아 기반 와이어샤크 분석기 개발
- 루아로 작업
- DICOM 프로토콜 이해
- DICOM 트래픽 생성
- 와이어샤크에서 루아 활성화
- 분석기 정의
- 메인 프로토콜 분석기 기능 정의
- 분석기 완성
- C-ECHO 요청 분석기 만들기
- AET의 문자열 값 추출
- 분석기 함수 채우기
- 가변 길이 필드 구문 분석
- 분석기 테스트
- Nmap 스크립팅 엔진용 DICOM 서비스 스캐너 작성
- DICOM용 Nmap 스크립팅 엔진 라이브러리 작성
- DICOM 코드와 상수
- 소켓 생성 및 소멸 함수 작성
- DICOM 패킷 송수신 기능 정의
- DICOM 패킷 헤더 생성
- A-ASSOCIATE 요청 메시지 콘텍스트 작성
- Nmap 스크립팅 엔진에서 스크립트 인수 읽기
- A-ASSOCIATE 요청 구조 정의
- A-ASSOCIATE 응답 구문 분석
- 최종 스크립트 작성
- 결론
- 네트워크 프로토콜 검사
- 6장. 무설정 네트워킹 익스플로잇
- UPnP 익스플로잇
- UPnP 스택
- 알려진 UPnP 취약점
- 방화벽에 홀 펀칭
- WAN 인터페이스를 통한 UPnP 악용
- 기타 UPnP 공격
- mDNS와 DNS-SD 익스플로잇
- mDNS 작동 방식
- DNS-SD 작동 방식
- mDNS 및 DNS-SD로 정찰
- mDNS 프로빙 단계 악용
- mDNS와 DNS-SD 중간자 공격
- WS-Discovery 활용
- WS-Discovery 작동 방식
- 네트워크에서 카메라 위조
- WS-Discovery 공격 제작
- 결론
- UPnP 익스플로잇
- 3부. 하드웨어 해킹
- 7장. UART, JTAG, SWD 익스플로잇
- UART
- UART와 통신하기 위한 하드웨어 도구
- UART 포트 식별
- UART 전송 속도 식별
- JTAG와 SWD
- JTAG
- SWD 작동 방식
- JTAG 및 SWD와 통신하기 위한 하드웨어 도구
- JTAG 핀 식별
- UART 및 SWD를 통한 장치 해킹
- STM32F103C8T6(블랙필) 대상 장치
- 디버깅 환경설정
- 아두이노에서 타깃 프로그램 코딩
- 아두이노 프로그램 플래싱과 실행
- 대상 디버깅
- 결론
- UART
- 8장. SPI와 I2C
- SPI 및 I2C 통신을 위한 하드웨어
- SPI
- SPI 작동 방식
- SPI를 사용한 EEPROM 플래시 메모리칩 덤핑
- I2C
- I2C 작동 방식
- 컨트롤러 주변 장치 I2C 버스 아키텍처 설정
- 버스 파이러트로 I2C 공격
- 결론
- 9장. 펌웨어 해킹
- 펌웨어와 운영체제
- 펌웨어 확보
- 무선 공유기 해킹
- 파일 시스템 추출
- 파일 시스템 콘텐츠 정적 분석
- 펌웨어 에뮬레이션
- 동적 분석
- 펌웨어에 백도어 심기
- 펌웨어 업데이트 메커니즘 공략
- 컴파일 및 설정
- 클라이언트 코드
- 업데이트 서비스 실행
- 펌웨어 업데이트 서비스의 취약점
- 결론
- 4부. 무선 해킹
- 10장. 단거리 무선 통신: RFID 남용
- RFID 작동 원리
- 무선 주파수 대역
- 수동형 및 능동형 RFID 기술
- RFID 태그의 구조
- 저주파 RFID 태그
- 고주파 RFID 태그
- Proxmark3로 RFID 시스템 공격
- Proxmark3 설정
- Proxmark3 업데이트
- 저주파 및 고주파 카드 식별
- 저주파 태그 복제
- 고주파 태그 복제
- RFID 태그 시뮬레이션
- RFID 태그 변경
- 안드로이드 앱으로 MIFARE 공격
- 비브랜드 또는 비상업적 RFID 태그에 대한 RAW 명령
- 태그-리더기 통신 도청
- 캡처된 트래픽에서 섹터 키 추출
- 합법적인 RFID 리더기 공격
- Proxmark3 스크립팅 엔진을 사용해 RFID 공격 자동화
- 사용자 지정 스크립팅을 사용한 RFID 퍼징
- 결론
- RFID 작동 원리
- 11장. 저전력 블루투스(BLE)
- BLE 동작 방식
- 일반 액세스 프로필과 일반 속성 프로필
- BLE로 작업
- BLE 하드웨어
- BlueZ
- BLE 인터페이스 구성
- 장치 검색과 특성 나열
- GATTTool
- Bettercap
- 특성, 서비스 및 설명자 나열
- 읽기와 쓰기 특성
- BLE 해킹
- BLE CTF Infinity 설정
- 시작하기
- 플래그 1: 특성 및 설명자 살펴보기
- 플래그 2: 인증
- 플래그 3: MAC 주소 스푸핑
- 결론
- BLE 동작 방식
- 12장. 중거리 무선: 와이파이 해킹
- 와이파이 작동 방식
- 와이파이 보안 평가를 위한 하드웨어
- 무선 클라이언트 대상 와이파이 공격
- 인증 해제 및 서비스 거부 공격
- 와이파이 연결 공격
- 와이파이 다이렉트
- 액세스 포인트 대상 와이파이 공격
- WPA/WPA2 크랙
- WPA/WPA2 엔터프라이즈 크랙으로 자격증명 획득
- 테스트 방법론
- 결론
- 13장. 장거리 무선: LPWAN
- LPWAN, LoRa, LoRaWAN
- LoRa 트래픽 캡처
- 헬텍 LoRa 32 개발 보드 설정
- LoStik 설정
- CatWAN USB 스틱을 LoRa 스니퍼로 전환
- LoRaWAN 프로토콜 디코딩
- LoRaWAN 패킷 형식
- LoRaWAN 네트워크에 참여
- LoRaWAN 공격
- 비트 플립핑 공격
- 키 생성 및 관리
- 리플레이 공격
- 도청
- ACK 스푸핑
- 애플리케이션별 공격
- 결론
- 5부. IoT 생태계 공략
- 14장. 모바일 애플리케이션 공격
- IoT 모바일 앱의 위협 요소
- 아키텍처를 구성 요소로 세분화
- 위협 식별
- 안드로이드 및 iOS 보안 제어
- 데이터 보호 및 암호화된 파일 시스템
- 애플리케이션 샌드박스, 보안 IPC 및 서비스
- 애플리케이션 서명
- 사용자 인증
- 격리된 하드웨어 구성 요소 및 키 관리
- 검증 및 보안 부팅
- iOS 애플리케이션 분석
- 테스트 환경 준비
- IPA 추출 및 재서명
- 속성 목록 파일에서 민감한 데이터 검사
- 동적 분석
- 인젝션 공격
- 키체인 저장소
- 바이너리 리버싱
- 네트워크 트래픽 가로채기 및 검사
- 동적 패치를 사용해 탈옥 탐지 피하기
- 정적 패치를 사용해 탈옥 탐지 피하기
- 안드로이드 애플리케이션 분석
- 테스트 환경 준비
- APK 추출
- 정적 분석
- 바이너리 리버싱
- 동적 분석
- 네트워크 트래픽 가로채기 및 검사
- 부채널 유출
- 정적 패치를 이용한 루팅 탐지 피하기
- 동적 패치를 사용해 루팅 탐지 피하기
- 결론
- IoT 모바일 앱의 위협 요소
- 15장. 스마트 홈 해킹
- 건물에 물리적으로 침입
- 도어록 시스템의 RFID 태그 복제
- 무선 경보 재밍
- IP 카메라 스트림 재생
- 스트리밍 프로토콜의 이해
- IP 카메라 네트워크 트래픽 분석
- 비디오 스트림 추출
- 스마트 러닝머신 공격
- 스마트 러닝머신과 안드로이드 운영체제
- 안드로이드 기반 스마트 러닝머신 제어
- 결론
- 건물에 물리적으로 침입