하드웨어해커가되어보자! 정구홍 (mongii) GRAYHASH 수석연구원 cybermong@grayhash.com https://www.facebook.com/goohong.jung
발표자소개 보안커뮤니티해커스쿨운영자 정보보안업체 GRAYHASH 수석연구원 BoB 보안인재양성프로그램멘토 발표내용 다양한하드웨어해킹기술들을단계별로정리 하드웨어해킹공부방법소개
Hardware Hacking 을공부하게된계기 2011 Recon(Reverse Engineering Conference) Montreal, Canada
Recon 2011 의발표주제들 Abusing Hardware Defined Radios RFID Hacking How to develop a rootkit for Broadcom NetExtreme network cards Sticky Fingers & KBC Custom Shop Ghetto Tools for Embedded Analysis Hardware Stuff for Software People
Recon 2011 의발표주제들 Abusing Hardware Defined Radios RFID Hacking How to develop a rootkit for Broadcom NetExtreme network cards Sticky Fingers & KBC Custom Shop Ghetto Tools for Embedded Analysis Hardware Stuff for Software People
After that 하드웨어그룹스터디진행 하드웨어기초 납땜부터.. AVR Programming RC Car 제작실습 MP3 player 제작실습
After that 외국의하드웨어해킹자료들을열심히열심히공부
유무선공유기해킹 스마트폰 UART/JTAG 해킹 스마트 TV 해킹 CCTV 해킹 프린터해킹 홈네트워크해킹 무선해킹 도어락해킹 자동차해킹... After that
하드웨어해킹레벨분류 Level-1 : 용기를가지고분해해보기 Level-2 : Datasheet 를읽어보기 Level-3 : Debug Port 에연결해보기 Level-4 : 전기신호분석해보기 Level-5 : Desoldering Level-6 : Side Channel Attack Level-7 : Decapping & Imaging Level-8 : Glitching Attack Level-9 : FIB(Focused Ion Beam) Attack Level-10 : IC Chip Reversing * 발표자의주관적인견해에따라분류되었습니다.
LEVEL-1 : 용기를가지고분해해보기 주변의전자장비들을무작정뜯어본다! 다양한 IC 칩들의모델명을구글에서검색해본다. 특히 CPU, Flash, RAM 이무엇인지찾아본다. 연결이가능해보이는포트들을찾아본다. USB, UART, JTAG, ISP 분해하고살펴보는과정에서고장이날수도있다. 뒷수습은고장이난다음에생각한다.
일단무조건뜯어본다.
유용한도구들 디지털멀티테스터 전압, 전류, 저항테스트 통전테스트 USB 현미경 IC 칩, 소자확대, 회로패턴분석 500 배율, 3 만원대제품정도면적합
LEVEL-2 : Datasheet 읽어보기 IC 칩모델명검색시 datasheet 단어를추가하여구글검색 CPU, Flash memory 위주로 datasheet 읽어보기 처음엔잘모르겠어도여러번반복해서읽어본다. 특히 Pin Map 과 Memory Map 부분을자세히본다.
Pin Map / Memory Map (CPU 예제 )
Pin Map / Instruction Set (Flash Memory 예제 )
Level-3: Debug Port 에연결해보기 UART Universal asynchronous receiver/transmitter 하드웨어통신규약의한종류 각종디버그메시지를보거나, shell access 권한을획득할수있다. JTAG Joint Test Action Group 하드웨어디버깅의국제표준 대상장비를실시간디버깅하거나, 펌웨어를획득할수있다. USB adb shell, USB2TTL(UART), 저장장치 PC 에 usb 케이블연결시인식되는장치를확인한다.
다양한연결 Port 들을찾아본다. Smartphone JTAG Wallpad UART
Level-4 : 전기신호분석해보기 신호분석기 (Logic Analyzer), 오실로스코프 (oscilloscope) 이용 하드웨어통신신호캡쳐 / 디버깅이가능하다. 특정핀의용도파악, 민감데이터유출시유용하다. 하드웨어의세계에대해더욱잘이해할수있게된다. Clock 및 Rising/Falling edge 에대한이해
무엇보다이런화면을보고있으면친구들이나를진짜하드웨어해커라고생각하게됨
Level-5 : Desoldering IC 칩을 PCB 에서분리해내는작업을의미 IC 칩교체작업시필요함. ( 수리, Upgrade) Flash Memory dump 시필요함. 떼어낸 Flash Memory 칩을아두이노등에연결하여 READ Command 전송 IC Pin Hijacking 시필요함. Ex> CPU 와 Modem 사이에통신하는 AT Command 신호변조
iphone Storage Upgrade
주의 : 만약레고나퍼즐조립을끝까지못한다면성격상안맞을수도..
Level-6 : Side Channel Attack 간접적인정보들을기반으로중요한데이터를획득해내는기술 소비전력 (Power analysis) 분석, 소요시간분석 (Timing Attack), 방출되는전자기파 / 소리분석등의방법들이사용됨 쉬운것에서부터매우어려운것까지다양한기술들이존재함
전류소모량은작업량에따라다르다.
Instruction 에따른전력소모 Secret Exponent value of RSA
Level-7 : Decapping & Imaging 칩의 Package 를제거한후, IC 회로를분석하는작업
Decapping 작업
Optical Imaging 작업 출처 : http://zacsblog.aperturelabs.com/
SEM Imaging 작업
SEM Imaging 결과 자아알보면메모리셀간의차이점이!
Level-8 : Glitching Attack IC 칩에의도적인오류를발생시켜오작동을유발하는기술 이오류가때로는좋은 버그 가되어돌아온다. Glitching 의뜻 : 프로그램오류, bug, exploit, 어지러운 대표적인 Glitching attacks Clock glitching : 비정상적인 clock 을인가하여오작동유발 Voltage glitching : 전압을순간적으로올리거나내려서오작동유발 Thermal glitching : 정상범위를벗어나는온도 (hot or cold) 로오작동유발 효과 Firmware dump, crypto break, bypass secure-boot or some checks
Clock Glitching Attack 예시
Clock Glitching Attack 예시 - Bypass secure booting 1. Secure Boot 관련코드 2. User code loading 루틴 3. EEPROM 에저장된 security bit 체크 4. 만약 0 이라면, 더이상진행하지않음 (endless loop) 5. Clock Glitching 을통해해당 Instruction 이 Fail 되게만들면 Endless loop 탈출가능
Voltage Glitching Attack 예시 - Bypass code protection Normal Operating Erasing Flash Memory Reset Security fuses 10v 5v Datasheet
Level9 : FIB attack FIB = 집속이온빔시스템 (Focused ion beam system) Ga 이온빔을회로내의원하는위치에집속 (Focus) 시켜, 회로를식각 / 증착할수있는장비 식각 : 회로패턴을제거 증착 : 회로패턴을추가 ( 기체 -> 고체 ) 회로에수정을가할수있음! Code Protection 을 break 할수있음 Security bit 에해당하는메모리소자의출력을 GND 나 VCC 로강제연결시킴
FIB 장비예시
Level10 : IC Chip Reversing IC Chip 의회로를분석하여용도를 attack point 를파악하는작업 반도체공정및회로이론에대한지식이뛰어나야함
Book VS Real World 출처 : https://www.youtube.com/watch?v=ahx-xua6f9g
하드웨어해킹을통해얻을수있는것들 임베디드장비 ( 공유기, CCTV 등 ) 0-day 취약점헌팅 KISA 신규취약점신고포상제로제보, 컨퍼런스발표등 컴퓨터작동에대한더욱깊은이해 Clock, Transistor, Logic Gate, Interrupt, Fun! Fun!! DIY : 하드웨어지식이쌓이면원하는장난감, 아이디어제품을직접만들수있다.
하드웨어해킹사례들 드론 스마트폰 스마트카드 충전기 도어락 EGG 스마트카 CCTV 스마트 TV 인터넷폰 공유기 로봇청소기 스카다 가전기기 의료기기 현금인출기 인공위성
하드웨어해킹공부방법추천 추천서적 for newbies 뇌를자극하는하드웨어입문 만화로쉽게배우는전기 짜릿짜릿전자회로 DIY 당근이의 AVR 갖고놀기 일렉트릭유니버스 임베디드레시피 추천사이트 Youtube.com 은진리다! 당근이의 AVR 갖고놀기커뮤니티 http://cafe.naver.com/carroty HACKADAY http://hackaday.com
장비사용실습 - 공용기기원 고려대 https://medicine.korea.ac.kr 경희대 https://crf.khu.ac.kr 나노종합기술원 https://www.nnfc.re.kr 동국대 https://equips.dongguk.edu 서울대 http://irf.snu.ac.kr 성균관대 http://ccrf.skku.edu 세종대 http://rfc.sejong.ac.kr 아주대 http://cmcm.ajou.ac.kr 인천대 http://www.uirf.or.kr 조선대학교 http://www.chosun.ac.kr 충남대 http://www.cnucrf.re.kr 한국산업기술대학교 http://cec.kpu.ac.kr
마지막으로.. 공부를진짜열심히해야한다! 노력없이얻어지는것은없다. 즐겁게공부하는방법을터득해야한다. 그룹스터디, 컨퍼런스발표, 업무로경험할수있는업체취직등 영어공부는필수다. 100 배이상의정보들을흡수할수있다.
QnA
감사합니다.