Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
About me
• 정보보호업체 GRAYHASH 대표
• 각종 해킹대회 우승 및 2006년 아시아 최초 데프콘 본선 진출
• BLACKHAT LasVegas / CANSECWEST / BREAKPOINT 등 국제 해킹 컨퍼런스 발표
• BLACKHAT 싱가폴, 라스베가스 / 일본 코드블루 컨퍼런스 심사위원
• BoB 보안인재 양성 프로그램 멘토
• 고려대학교 정보보호대학원 SANE 랩
From BoB위키.. 어떤 쉐키니?
About this talk
• 특정 자동차 모델에 대한 취약점 공개나 해킹 시연 아님
• 소프트웨어 해커 입장에서 바라본 자동차 해킹에 대한 경험 공유
• 스마트 자동차가 갖고 있는 attack surface
• 전통적인 해킹과 같은 점과 다른 점
개요• 스마트 자동차 보안 연구의 중요성
• 현대의 자동차는 일반적으로 사용하는 컴퓨터와 동일하다고 볼 수 있음
• 컴퓨터, 핸드폰이 해킹 당하는 것과 마찬가지로 자동차도 해킹이 가능
• 워싱턴 대학교에서 선구적인 연구가 진행됐으며 찰리 밀러, 크리스 발라섹에 의해 프랙티컬한 연구가 시작됨
• https://www.youtube.com/watch?v=oqe6S6m73Zw
• http://illmatics.com/Remote%20Car%20Hacking.pdf
• 스마트 자동차 해킹은 현실인가?
• 미디어를 통해 접한 자동차 해킹은 실현 가능한 위협인가?
자동차 해킹 vs 전통적인 해킹
• 버그를 찾는 과정에선 기술적으로 전통적인 해킹과 크게 다르지 않음
• Rich Operating Systems: Windows, Linux, QNX, Real-time OS
• Familiar CPU: Intel, ARM, MIPS, PowerPC, Atmega, etc
• Even, different CPU architecture doesn’t really bother
• Read / reverse engineer code, find bugs and write exploits
무엇이 다른가?• Different attack scenarios
• 차량 소유자의 핸드폰을 장악한 상황
• Telematics 디바이스의 핸드폰 번호를 알고 있는 상황
• 차량에 근접하게 위치할 수 있는 상황
• Different threat scenarios
• 엇? 내 컴퓨터가 랜섬웨어에 당했네? ㅋ 하지만 내 컴엔 중요한거 없어
• vs 고속도로 한 가운데에서 브레이크가 갑자기 작동하지 않는다면?
Attack surfaces?
• Over the air update, Digital radio, TCU (Telematics Control Unit), AVN (Audio Video Navigation), TPMS (Tire Pressure Monitoring System), Physical attack (USB, multimedia, etc), Server side, remote unlock door so on
• Most dangerous attack vector?
• End point: TCU, AVN, Digital radio
NRSC-5 - http://theori.io/research/nrsc-5-c
• TCU - SMS Parser memory corruption bug
TCU 해킹 사례
User given SMS PDU
Length of sender address
Counter
Copy
[Simple memory corruption - intel assembly version]
TCU 버그 impact• As hackers can send malicious SMS PDU messages to a victim car, it’s
completely a remote RCE
• You just need to know the TCU’s mobile number
• 공격 시 문제점
• 공격 페이로드에 따라 통신사 네트워크를 통과하지 못하는 경우도 있음
• 정상적이지 않은 포맷일 경우 통신사에서 처리하지 못하거나 블락 당하는 경우가 있으나 원인에 대해서는 정확히 식별할 수 없음
• 솔루션: 통신사를 통과할 수 있는 다른 유형의 취약점을 찾거나 Fake base station을 구축한다면 통신사 filtering 없이 공격 가능
Firmware 분석
• 차량 연구를 포함한 대부분의 임베디드 시스템 해킹의 첫번째 단계는 펌웨어 확보
• “저 하드웨어 해킹 듣보잡인데요..”
• 그레이해쉬 하드웨어 해킹 트레이닝이 여러분을 기다리고 있습니다!
• 일반적인 펌웨어 덤프 방식
• Flash memory dump, UART, JTAG, etc
• 블라인드 해킹을 통해 쉘을 획득 후, 펌웨어를 가져오는 것도 가능
Advanced Firmware 덤프
• ASLR, DEP, SMEP, Code signing, Integrity check
• 소프트웨어 해킹을 할 때 우리를 괴롭히는 것들
• 하드웨어 해킹도 날이 갈수록 어려워지고 있음
• JTAG, UART disable은 기본
• Encrypted 펌웨어
• Secure boot
Advanced Firmware 덤프
• 그중에서도 하드웨어 해킹에서 가장 어렵게 된 것은
• 펌웨어 덤프
• 기존 방식의 펌웨어 덤프가 먹히지 않는 칩셋들이 존재
• Code protection이 걸린 칩은 하드웨어적으로 보호돼있기 때문에 read가 불가능하며 오직 erase 후 re-write만 가능
Advanced Firmware 덤프
• Code protection이 걸린 칩들에서 펌웨어를 추출하는 방법들
• FIB를 이용한 회로 조작
• “For example, in an integrated circuit, the gallium beam could be used to cut unwanted electrical connections” - wikipedia
Advanced Firmware 덤프• Code protection이 걸린 칩들에서 펌웨어를 추출하는 방법들
• SEM을 이용한 플래쉬 메모리 캡처
Advanced Firmware 덤프
• Code protection이 걸린 칩들에서 펌웨어를 추출하는 방법들
• Glitching 기법을 이용한 각종 꼼수들 (Non-invasive attack)
Normal Abnormal
http://www.newae.com/sidechannel/cwdocs/tutorialglitch.html
Advanced Firmware 어려운 점• Non-invasive와 invasive 공격으로 구분할 수 있음
• Non-invasive 공격에 필요한 장비는 비교적 비싸지 않음
• 그러나 무수히 많은 테스트가 필요
• gdb, WinDbg를 이용할 때와는 비교가 되지 않는 테스트 효율
• Invasive 공격에 필요한 장비는 굉장히 고가
• 개인이나 중소 회사에서 보유하는 것은 매우 어려움, 비쌈
• 대학원 제공하는 공용 장비를 유료 대여하는 것이 일반적임 (시간당 10만원 선)
• Chip 디캐핑 등 굉장한 노가다와 용기가 필요
차량 제어 단계
• TCU, AVN 등의 컴포넌트는 해커 입장에서는 entry point라 볼 수 있음
• Entry point에서 차량의 핸들이나 브레이크 등 크리티컬 모듈을 실질적으로 조작하기 위해서는 CAN (Controller Area Network) bus 통신을 거쳐야 함
• CAN bus 분석의 어려운 점
• TCU, AVN 등은 Rich 컴포넌트라 볼 수 있으며 차량을 조작하는 모듈은 내부에 존재함
• 일반적으로 Rich 컴포넌트는 두개의 MCU(하나는 Rich OS용, 다른 하나는 CAN 통신용)이 탑재돼있으며 Rich MCU -> CAN MCU -> CAN 통신 구간 -> 내부 모듈로 통신하는 구조
차량 제어 단계
Rich component
MAIN MCU
SUB MCU
내부 모듈
핸들제어
악셀제어
브뤡제어
창문제어
기타제어
CAN 통신
외부 입력
차량 제어 단계• CAN 통신 담당 MCU의 펌웨어를 리버스 엔지니어링 하면 해당 차량이 사용하는 CAN 포맷을
분석할 수 있음
• 그러나 어떤 ID, 어떤 페이로드가 핸들 조작에 관여하는지 알기는 어려움
• Sub MCU의 펌웨어는 관련 정보가 부족하기 때문
• 따라서 원하고자 하는 CAN 메시지를 알아내기 위해서는 일반적으로 CAN 메시지 브루트 포스를 통해 확인
• 가령, 0x04를 메시지를 보냈을 때 차량 계기판 등이 어떻게 반응하는지 관찰
• CAN message 모니터링 툴을 통해 보다 원활한 분석 가능
• 신호가 너무 과도하게 발생할 경우, 어떤 메시지가 특정 기능을 담당하는지 분석하기 어려움
차량 제어 단계• CAN BUS 해킹 쉽게(?) 하기
• CAN 해킹 과정 중에는 예측하기 어려운 결과가 나올 수 있음
• 예를 들어, 특정 메시지가 풀-악셀 유도할 경우 테스트 과정 위험 요소
• 넓은 공터에서 리프트 장비를 이용하여 안전하게 테스트하는 방법도 있지만 부품을 별도 준비하여 테스트하는 것도 가능
• 그레이해쉬 Car hacking training coming up!
자동차 소프트웨어의 보안 이슈
• 임베디드 분야 특성상 보안 프로세스가 개발 초기에 합류하지 않으면 향후 보안 문제가 생겼을 때 막대한 비용이 발생할 수 있음
• 최근 많은 차량 제조사 / OEM 업체에서 보안에 관심을 갖고 있음
• Secure SDLC(Software Development Life Cycle)을 도입하고 있는 추세
• 정보보안팀이 개발 초기 단계에 참여하여 시스템 설계를 해야 함
자동차 소프트웨어의 보안 이슈
• 오픈소스를 커스터마이징하여 사용하는 경우가 많음
• 자동차 소프트웨어는 복잡하고 규모가 큼
• 특정 오픈소스를 채용하여 그 위에 플랫폼을 올리는 형태가 대부분
• 문제는 커스터마이징을 과도하게 하다보니 해당 오픈소스가 업데이트될 때마다 적용하는 것에 많은 비용이 발생함
• 라이브러리를 최신 버전으로 유지하는 것이 매우 어려움
• 스마트 자동차 뿐만 아니라 임베디드 시스템 전반적으로 보이고 있는 문제
자동차 소프트웨어의 보안 이슈
• 차량을 한번 설계하면 문제를 고치기가 매우 어려움
• 각각의 하드웨어 모듈은 여러 OEM에 의해 만들어짐
• 초기 설계 시 하드웨어와 소프트웨어 역할에 대해 명시
• 특정 모듈에 디자인적인 보안 결함이 발견할 경우 대응 어려움
• 예) Plain 통신을 하는 TPMS 모듈을 고치기 위한 비용은?
자동차 소프트웨어의 보안 이슈
• 최신 몇몇의 차가 아닐 경우 아직도 Over-the-air를 통한 업데이트가 어려움
• 차량 소유자가 직접 정비소를 방문해야 펌웨어 업데이트 가능
• Android의 파편화 문제처럼, 차량 모델이 워낙 다양하기 때문에 시스템을 유지하는 입장에서는 업데이트 관리도 매우 복잡한 문제
보안 문제 발생 시 일어나는 일은?
• 과거의 차량 리콜 사유
• “유해배출가스 많은 자동차에 리콜제도 시행” - 1990년도 기사
• 현재의 차량 리콜 사유
• “Your car will be recalled in 2017 thanks to poor open-source security” - zdnet
• 사이버 보안 문제로 인한 자동차 리콜은 현실이며 막대한 비용 발생
• 일어나서는 안되지만, 만약 인명 피해의 사고가 일어날 경우 천문학적인 손실
결론• 소프트웨어적인 해킹만 봤을 때는 전통적인 해킹과 크게 다르지 않음
• 그러나 하드웨어 해킹 기술이 필수적으로 요구됨
• 하드웨어 해킹 특성 상, 많은 실패와 시행착오를 이겨내야 함
• 소프트웨어의 문제로 인해 발생하는 자동차 사고는 인명 피해와 직결될 수 있기 때문에 가장 높은 수준의 정보보안이 요구됨
• 제품 완성 후, 정보보호 테스트가 아닌 설계 초기 단계에서의 참여가 중요
• 현재 자동차 보안 수준은 모바일 / 데스크탑에 비교하면 조금 떨어지지만 향후 많은 부분이 빠르게 개선될 것
• TIP: 스마트 자동차 보안 연구 시에는 초기 환경 설정이 중요
• 소프트웨어 해킹과는 달리 문제가 발생했을 때 해결하기가 어려움
Q/A
• “인터넷에서 찾아보면 중국 업체들이 싼 가격에 칩 덤프 떠준다고 하던데..?”