추천의 글
오늘날의 보안 프로그램은 기업 내의 전통적인 위협을 처리하도록 설계돼 있다. 그러나 기술이 너무 빠르게 발전하기 때문에 조직의 보안 경계를 유지하는 일이 점점 더 어려워지고 있다.
사물인터넷(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, Internet of Things) 시대를 맞이하고 있다. 세탁기, 청소기, TV, 에어컨, 자동차, 손목시계 등 우리 생활에 밀접한 사물이 컴퓨터화되고, ‘스마트’라는 접두사가 붙어 스마트 TV, 스마트 에어컨, 스마트 워치라 불리며, 인터넷 연결 이전의 제품들과 구분돼 호칭되고 있다.
사물이 인터넷에 연결되는 이유는 바로 사용자의 편의성이 높아지기 때문이다. 하지만 사물이 인터넷에 연결되면 편의성만 높아지는 것이 아니라 그 이면의 부작용도 함께 동작한다.
2013년, 세계적인 해킹 콘퍼런스인 블랙햇 USA에서 우리나라의 유명 해커 이승진(aka Beist) 씨는 국내 대기업의 스마트 TV를 해킹하는 내용을 발표했다. 발표 내용 중 조작된 재난 방송이 TV 화면으로 송출되는 것을 시연했는데, 이러한 공격이 현실에서 발생한다면 매우 큰 사회적 혼란이 발생할 것이라는 데 동의하지 않을 사람은 없을 것이다. 이러한 문제가 발생하는 근본적인 이유는 사물이 인터넷과 연결되고 컴퓨터화되는 속도를 보안이 따라잡지 못하기 때문일 것이다.
물론 스마트 TV와 같은 대기업의 제품은 취약점이 발견되면 빠르게 조치되겠지만, 그렇지 못한 수많은 IoT 기기는 악의적인 해커의 공격으로부터 자유롭지 못하다. 지금 이 순간에도 취약점을 가진 공유기와 IP 카메라는 누군가에게 편리함을 제공하는 동시에 봇넷 악성코드에 감염돼 지구 반대편에 있는 기업을 대상으로 DDoS 공격에 사용되고 있을지도 모른다.
이 책은 단순한 보안 서적을 넘어 가정과 기업에서 사용하는 IoT 기기를 바라보는 관점을 바꾸고 더 나은 보호 모델을 구축하는 데 목적이 있다. 우리나라는 2018년부터 사물인터넷 인증 제도를 시행했지만 의무가 아니기에 아직 크게 활성화되지 못하고 있는데, 저자의 바람처럼 이 책을 선택한 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장은 스마트 러닝머신을 제어하는 실제 사례를 통해 마무리된다.