SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Embedded SystemEmbedded System의의
펌웨어펌웨어 보안보안
2nd CodeEngn Seminar
임베디드시스템의 보호 1
펌웨어펌웨어 보안보안
4nsys4nsys 송송 민민 호호
www.CodeEngn.com
목차목차
임베디드임베디드 시스템에서의시스템에서의 소프트웨어소프트웨어
임베디드임베디드 시스템의시스템의 메모리메모리 동작동작
MMUMMU와와 소프트웨어소프트웨어
2임베디드시스템의 보호
MMUMMU에에 의한의한 PagingPaging의의 이해이해
Buffer OverflowBuffer Overflow
펌웨어펌웨어 보호의보호의 다른다른 위험요소위험요소
리버스리버스 엔지니어링과엔지니어링과 임베디드임베디드
임베디드임베디드 시스템에서의시스템에서의
임베디드시스템의 보호 3
소프트웨어소프트웨어
임베디드임베디드 제품의제품의 구성구성
임베디드임베디드 시스템시스템
하드웨어하드웨어 펌웨어펌웨어
4임베디드시스템의 보호
PCPC
하드웨어하드웨어 펌웨어펌웨어
소프트웨어소프트웨어
펌웨어의펌웨어의 운영특징운영특징
항항 목목 내내 용용 비비 고고
OS (Operating System)OS (Operating System) Linux , Windows CE ,Linux , Windows CE ,
Nucleous, pSOS, VxWorks ,Nucleous, pSOS, VxWorks ,
Embedded XP,Embedded XP,
LinuxLinux는는 비용이비용이 저렴저렴
Embedded XPEmbedded XP 는는 PCPC와와 호환되는호환되는 환환
경에서만경에서만 사용가능사용가능
OSOS--어플리케이션어플리케이션 일체형도일체형도 존재존재
저장저장 미디어미디어(Media)(Media) Flash Memory ( NAND , NOR )Flash Memory ( NAND , NOR )
ROMROM
Flash MemoryFlash Memory의의 경우경우 NOR +NOR +
NANDNAND 복합형도복합형도 있음있음
5임베디드시스템의 보호
HDDHDD
미디어미디어 크기크기 일반적으로일반적으로 2 ~ 16 MByte2 ~ 16 MByte 일부일부 매우매우 큰큰 타입도타입도 있음있음
CPUCPU 코어코어 ARM , MIPS , POWER , x86ARM , MIPS , POWER , x86계열계열 ARMARM의의 경우경우 ThumbThumb 모드모드 존재존재
MMUMMU와와 소프트웨어소프트웨어
임베디드시스템의 보호 6
MMUMMU와와 소프트웨어소프트웨어
MMUMMU와와 프로세스의프로세스의 관계관계
프로세스프로세스33
프로세스프로세스22
빈공간빈공간
빈공간빈공간
빈공간빈공간
7임베디드시스템의 보호
프로세스프로세스11
커널커널
페이징 미 지원 시스템 페이징 지원 시스템
프로세스프로세스11
커널커널
프로세스프로세스22
커널커널
프로세스프로세스33
커널커널
PagingPaging 사용의사용의 특징특징
항항 목목 PagingPaging Non PagingNon Paging
프로세스프로세스 독립된독립된 여러여러 개의개의 프로세스를프로세스를 만들만들 수수 있있
다다..
프로세스간프로세스간 독립성구현이독립성구현이 힘들다힘들다
메모리메모리 효율효율 프로세스프로세스 생성및생성및 사용되는사용되는 메모리메모리 할당할당//
헤제에헤제에 의한의한 메모리메모리 단편화를단편화를
최소화최소화 할할 수수 있다있다..
페이지정보를페이지정보를 보관하기위한보관하기위한 영역으로영역으로 메메
리가리가 일일 비된다비된다
프로세스프로세스 생성생성//해제간해제간 메모리단편화메모리단편화
발생가능성이발생가능성이 높다높다..
페이지관리를페이지관리를 위한위한 메모리메모리 소비가소비가 없없
다다..
8임베디드시스템의 보호
모리가모리가 일부일부 소비된다소비된다..
속속 도도 메모리를메모리를 참조하는참조하는 명령은명령은 Page TablePage Table
EntryEntry를를 검색하는검색하는 부하가부하가 걸릴걸릴 수수 있다있다..
영향영향 없다없다..
가상메모리가상메모리 ExceptionException--FaultFault를를 이용한이용한 가상메모리가상메모리 구구
현현
exceptionexception이이 발생한다는발생한다는 것은것은 메모리메모리
가가 부족하다는부족하다는 뜻이다뜻이다..
MMUMMU에에 의한의한
임베디드시스템의 보호 9
PagingPaging의의 이해이해
PagingPaging 형태형태
빈공간빈공간
프로세스프로세스1 (2)1 (2)
프로세스프로세스3 (2)3 (2)
프로세스프로세스3 (3)3 (3)
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
빈공간빈공간
10임베디드시스템의 보호
메모리메모리
프로세스프로세스11 프로세스프로세스33프로세스프로세스22
프로세스프로세스1 (1)1 (1)
프로세스프로세스3 (1)3 (1)
커널커널(2)(2)
프로세스프로세스2 (1)2 (1)
커널커널(1)(1)
페이지앤트리페이지앤트리
빈공간빈공간
프로세스프로세스1 (2)1 (2)
프로세스프로세스1 (1)1 (1)
커널커널(2)(2)
커널커널(1)(1)
프로세스프로세스 공간공간
빈공간빈공간
빈공간빈공간
프로세스프로세스2 (1)2 (1)
커널커널(2)(2)
커널커널(1)(1)
프로세스프로세스3 (3)3 (3)
프로세스프로세스3 (2)3 (2)
프로세스프로세스3 (1)3 (1)
커널커널(2)(2)
커널커널(1)(1)
PagingPaging 의의 동작동작
Page IndexPage Index offsetoffset
가상주소(Virtual Address) Page 0Page 0
Page 1Page 1
Page 2Page 2
Page 3Page 3
11임베디드시스템의 보호
Physical Address 0Physical Address 0
Physical Address 1Physical Address 1
Physical Address 2Physical Address 2
Physical Address 3Physical Address 3
Page 4Page 4
Page 5Page 5
Page 6Page 6
Page 7Page 7
Page Table Entry
실제 메모리
4KByte Page4KByte Page 주소변환주소변환 예예
Page IndexPage Index
22
offsetoffset
0x0100x010
가상주소 0x2010 Page 0 (0x0000)Page 0 (0x0000)
Page 1 (0x1000)Page 1 (0x1000)
Page 2 (0x2000)Page 2 (0x2000)
Page 3 (0x3000)Page 3 (0x3000)
12임베디드시스템의 보호
0x40000x4000
0x10000x1000
0x50000x5000
0x20000x2000
Page 4 (0x4000)Page 4 (0x4000)
Page 5 (0x5000)Page 5 (0x5000)
Page 6 (0x6000)Page 6 (0x6000)
Page 7 (0x7000)Page 7 (0x7000)
Page Table Entry
실제 메모리
Buffer OverflowBuffer Overflow
임베디드시스템의 보호 13
Buffer OverflowBuffer Overflow
개개 요요
String지역변수로 복사
strcpy
지역변수를 넘치는 큰 스트링 입력에 의한
함수 리턴 주소 변경
14임베디드시스템의 보호
네트워크/ 콘솔을
통한 입력
함수 리턴 주소 변경
현재 함수 종료 시
스트링과 같이 넣은 코드로 리턴
주입된 코드 실행
원원 리리
내내 용용 크크 기기 주주 소소
......
Tv_StrTv_Str 3232 0xD0000xD000
지역변수지역변수 22 44 0xD0200xD020
ID :
STACK
터미널,네트워크를 통한 코드주입
Dummy글자 ( 40 byte ) +
R 주소 ( 0 D030 ) S 변수를 넘쳐
15임베디드시스템의 보호
지역변수지역변수 11 44 0xD0240xD024
리턴리턴 주소주소 44 0xD0280xD028
함수함수 파라매터파라매터 44 0xD02C0xD02C
이전함수영역이전함수영역 ?? 0xD0300xD030
......
Return주소 ( 0xD030 ) +
Dummy글자( 4 byte ) +
주입할 코드 ( ? byte )
Tv_Str 변수를 넘쳐
리턴주소등을 덮어씀
실행실행 조건조건
펌웨어펌웨어 업그레이드가업그레이드가 자주자주 없어없어 야한다야한다..
PagingPaging에에 의한의한 프로세스가프로세스가 독립되어야독립되어야
유리하다유리하다..
16임베디드시스템의 보호
최소의최소의 코드로코드로 목적목적 하는하는 바를바를 이룰이룰 수수 있있
는는 환경이환경이 구축되어있어야구축되어있어야 한다한다..
리버스리버스 엔지니어링에엔지니어링에 쉽게쉽게 노출된노출된 제품일제품일
수록수록 약점을약점을 찾기찾기 쉽다쉽다..
방지방지 대책대책
외부로부터외부로부터 문자열등을문자열등을 입력입력 받을받을 때에는때에는
최대최대 입력길이입력길이 제약을제약을 주어야주어야 한다한다..
외부외부 네트워크를네트워크를 통한통한 터미널등터미널등 지원하지지원하지
않도록않도록 커널을커널을 설정한다설정한다
17임베디드시스템의 보호
않도록않도록 커널을커널을 설정한다설정한다..
외부로외부로 부터부터 들어오는들어오는 텍스트정보를텍스트정보를 되도되도
록록 지역변수에지역변수에 넣지넣지 않는다않는다..
펌웨어펌웨어 보호의보호의 다른다른
임베디드시스템의 보호 18
위험요소위험요소
위험요소와위험요소와 대책대책
항항 목목 내내 용용 대대 책책
복복 제제 타회사에서타회사에서 막대한막대한 개발비를개발비를 들여들여 개발한개발한
제품을제품을 무단으로무단으로 복사복사..
주로주로 플래시를플래시를 복사하는복사하는 유형유형
하드웨어와하드웨어와 공조하여공조하여 GPIOGPIO등에등에 킷값킷값
을을 숨김숨김
FPGAFPGA를를 사용사용
데이터데이터 노출노출 저장된저장된 자료나자료나 네트워크로네트워크로 전송중인전송중인 자료자료
를를 유출유출
(ex. CCTV ,Network Storage )(ex. CCTV ,Network Storage )
외부전송외부전송 네트워크네트워크 패킷의패킷의 암호화암호화
저장장치의저장장치의 암호화암호화
19임베디드시스템의 보호
리버스리버스 엔지니어링과엔지니어링과
임베디드시스템의 보호 20
임베디드임베디드
임베디드임베디드 개발에서개발에서 효과효과
기술기술 습득습득 경로의경로의 다양화다양화
컴파일러의컴파일러의 버그버그 검출검출
제품의제품의 고속화고속화
21임베디드시스템의 보호
제품의제품의 안정화안정화
감사합니다감사합니다..
2nd CodeEngn Seminar
임베디드시스템의 보호 22
4nsys4nsys 송송 민민 호호
www.CodeEngn.com

Mais conteúdo relacionado

Semelhante a [2008 CodeEngn Conference 02] 송민호 - 임베디드 시스템에서의 펌웨어 보호

가상화된 코드를 분석해보자
가상화된 코드를 분석해보자가상화된 코드를 분석해보자
가상화된 코드를 분석해보자dkswognsdi
 
윈도우 커널 익스플로잇
윈도우 커널 익스플로잇윈도우 커널 익스플로잇
윈도우 커널 익스플로잇Seungyong Lee
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016perillamint
 
가상화 기반 재해복구 솔루션(Zerto 4.0)
가상화 기반 재해복구 솔루션(Zerto 4.0)가상화 기반 재해복구 솔루션(Zerto 4.0)
가상화 기반 재해복구 솔루션(Zerto 4.0)영철 현
 
샌드박스
샌드박스샌드박스
샌드박스Baekjoon Choi
 
가상화 기반 재해복구 솔루션(Zerto)
가상화 기반 재해복구 솔루션(Zerto)가상화 기반 재해복구 솔루션(Zerto)
가상화 기반 재해복구 솔루션(Zerto)영철 현
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전James (SeokHun) Hwang
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig baseINSIGHT FORENSIC
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340Samsung Electronics
 
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?흥배 최
 
Windows Debugging Technique #3
Windows Debugging Technique #3Windows Debugging Technique #3
Windows Debugging Technique #3Wooseok Seo
 
Talk it zerto_청담정보기술(20160706)
Talk it zerto_청담정보기술(20160706)Talk it zerto_청담정보기술(20160706)
Talk it zerto_청담정보기술(20160706)영철 현
 
Hardware Virtualization
Hardware VirtualizationHardware Virtualization
Hardware VirtualizationJeSam Kim
 
Net debugging 3_전한별
Net debugging 3_전한별Net debugging 3_전한별
Net debugging 3_전한별Han-Byul Jeon
 
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져Chulgyu Shin
 
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Jaeock Shim
 
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안GangSeok Lee
 
가상화와 보안 발표자료
가상화와 보안 발표자료가상화와 보안 발표자료
가상화와 보안 발표자료hanbeom Park
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명Peter YoungSik Yun
 

Semelhante a [2008 CodeEngn Conference 02] 송민호 - 임베디드 시스템에서의 펌웨어 보호 (20)

가상화된 코드를 분석해보자
가상화된 코드를 분석해보자가상화된 코드를 분석해보자
가상화된 코드를 분석해보자
 
윈도우 커널 익스플로잇
윈도우 커널 익스플로잇윈도우 커널 익스플로잇
윈도우 커널 익스플로잇
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016
 
가상화 기반 재해복구 솔루션(Zerto 4.0)
가상화 기반 재해복구 솔루션(Zerto 4.0)가상화 기반 재해복구 솔루션(Zerto 4.0)
가상화 기반 재해복구 솔루션(Zerto 4.0)
 
샌드박스
샌드박스샌드박스
샌드박스
 
가상화 기반 재해복구 솔루션(Zerto)
가상화 기반 재해복구 솔루션(Zerto)가상화 기반 재해복구 솔루션(Zerto)
가상화 기반 재해복구 솔루션(Zerto)
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig base
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
 
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
왜 애플리케이션이 Hang 되어도 OS는 괜찮을까?
 
Windows Debugging Technique #3
Windows Debugging Technique #3Windows Debugging Technique #3
Windows Debugging Technique #3
 
Talk it zerto_청담정보기술(20160706)
Talk it zerto_청담정보기술(20160706)Talk it zerto_청담정보기술(20160706)
Talk it zerto_청담정보기술(20160706)
 
Hardware Virtualization
Hardware VirtualizationHardware Virtualization
Hardware Virtualization
 
Net debugging 3_전한별
Net debugging 3_전한별Net debugging 3_전한별
Net debugging 3_전한별
 
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
 
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)
 
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
 
가상화와 보안 발표자료
가상화와 보안 발표자료가상화와 보안 발표자료
가상화와 보안 발표자료
 
codeache
codeachecodeache
codeache
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
 

Mais de GangSeok Lee

[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석GangSeok Lee
 
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 FuzzingGangSeok Lee
 
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼GangSeok Lee
 
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?GangSeok Lee
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KOGangSeok Lee
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study ENGangSeok Lee
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KOGangSeok Lee
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis ENGangSeok Lee
 
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드GangSeok Lee
 
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)GangSeok Lee
 
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기GangSeok Lee
 
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다GangSeok Lee
 
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과GangSeok Lee
 
[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware Tracker[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware TrackerGangSeok Lee
 
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualizationGangSeok Lee
 
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploitsGangSeok Lee
 
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론GangSeok Lee
 
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석GangSeok Lee
 
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽GangSeok Lee
 
[2010 CodeEngn Conference 04] Max - Fighting against Botnet
[2010 CodeEngn Conference 04] Max - Fighting against Botnet[2010 CodeEngn Conference 04] Max - Fighting against Botnet
[2010 CodeEngn Conference 04] Max - Fighting against BotnetGangSeok Lee
 

Mais de GangSeok Lee (20)

[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
 
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
 
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
 
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
 
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
 
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
 
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기
 
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
 
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
 
[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware Tracker[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware Tracker
 
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
 
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
 
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
 
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
 
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
 
[2010 CodeEngn Conference 04] Max - Fighting against Botnet
[2010 CodeEngn Conference 04] Max - Fighting against Botnet[2010 CodeEngn Conference 04] Max - Fighting against Botnet
[2010 CodeEngn Conference 04] Max - Fighting against Botnet
 

[2008 CodeEngn Conference 02] 송민호 - 임베디드 시스템에서의 펌웨어 보호

  • 1. Embedded SystemEmbedded System의의 펌웨어펌웨어 보안보안 2nd CodeEngn Seminar 임베디드시스템의 보호 1 펌웨어펌웨어 보안보안 4nsys4nsys 송송 민민 호호 www.CodeEngn.com
  • 2. 목차목차 임베디드임베디드 시스템에서의시스템에서의 소프트웨어소프트웨어 임베디드임베디드 시스템의시스템의 메모리메모리 동작동작 MMUMMU와와 소프트웨어소프트웨어 2임베디드시스템의 보호 MMUMMU에에 의한의한 PagingPaging의의 이해이해 Buffer OverflowBuffer Overflow 펌웨어펌웨어 보호의보호의 다른다른 위험요소위험요소 리버스리버스 엔지니어링과엔지니어링과 임베디드임베디드
  • 4. 임베디드임베디드 제품의제품의 구성구성 임베디드임베디드 시스템시스템 하드웨어하드웨어 펌웨어펌웨어 4임베디드시스템의 보호 PCPC 하드웨어하드웨어 펌웨어펌웨어 소프트웨어소프트웨어
  • 5. 펌웨어의펌웨어의 운영특징운영특징 항항 목목 내내 용용 비비 고고 OS (Operating System)OS (Operating System) Linux , Windows CE ,Linux , Windows CE , Nucleous, pSOS, VxWorks ,Nucleous, pSOS, VxWorks , Embedded XP,Embedded XP, LinuxLinux는는 비용이비용이 저렴저렴 Embedded XPEmbedded XP 는는 PCPC와와 호환되는호환되는 환환 경에서만경에서만 사용가능사용가능 OSOS--어플리케이션어플리케이션 일체형도일체형도 존재존재 저장저장 미디어미디어(Media)(Media) Flash Memory ( NAND , NOR )Flash Memory ( NAND , NOR ) ROMROM Flash MemoryFlash Memory의의 경우경우 NOR +NOR + NANDNAND 복합형도복합형도 있음있음 5임베디드시스템의 보호 HDDHDD 미디어미디어 크기크기 일반적으로일반적으로 2 ~ 16 MByte2 ~ 16 MByte 일부일부 매우매우 큰큰 타입도타입도 있음있음 CPUCPU 코어코어 ARM , MIPS , POWER , x86ARM , MIPS , POWER , x86계열계열 ARMARM의의 경우경우 ThumbThumb 모드모드 존재존재
  • 7. MMUMMU와와 프로세스의프로세스의 관계관계 프로세스프로세스33 프로세스프로세스22 빈공간빈공간 빈공간빈공간 빈공간빈공간 7임베디드시스템의 보호 프로세스프로세스11 커널커널 페이징 미 지원 시스템 페이징 지원 시스템 프로세스프로세스11 커널커널 프로세스프로세스22 커널커널 프로세스프로세스33 커널커널
  • 8. PagingPaging 사용의사용의 특징특징 항항 목목 PagingPaging Non PagingNon Paging 프로세스프로세스 독립된독립된 여러여러 개의개의 프로세스를프로세스를 만들만들 수수 있있 다다.. 프로세스간프로세스간 독립성구현이독립성구현이 힘들다힘들다 메모리메모리 효율효율 프로세스프로세스 생성및생성및 사용되는사용되는 메모리메모리 할당할당// 헤제에헤제에 의한의한 메모리메모리 단편화를단편화를 최소화최소화 할할 수수 있다있다.. 페이지정보를페이지정보를 보관하기위한보관하기위한 영역으로영역으로 메메 리가리가 일일 비된다비된다 프로세스프로세스 생성생성//해제간해제간 메모리단편화메모리단편화 발생가능성이발생가능성이 높다높다.. 페이지관리를페이지관리를 위한위한 메모리메모리 소비가소비가 없없 다다.. 8임베디드시스템의 보호 모리가모리가 일부일부 소비된다소비된다.. 속속 도도 메모리를메모리를 참조하는참조하는 명령은명령은 Page TablePage Table EntryEntry를를 검색하는검색하는 부하가부하가 걸릴걸릴 수수 있다있다.. 영향영향 없다없다.. 가상메모리가상메모리 ExceptionException--FaultFault를를 이용한이용한 가상메모리가상메모리 구구 현현 exceptionexception이이 발생한다는발생한다는 것은것은 메모리메모리 가가 부족하다는부족하다는 뜻이다뜻이다..
  • 10. PagingPaging 형태형태 빈공간빈공간 프로세스프로세스1 (2)1 (2) 프로세스프로세스3 (2)3 (2) 프로세스프로세스3 (3)3 (3) 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 빈공간빈공간 10임베디드시스템의 보호 메모리메모리 프로세스프로세스11 프로세스프로세스33프로세스프로세스22 프로세스프로세스1 (1)1 (1) 프로세스프로세스3 (1)3 (1) 커널커널(2)(2) 프로세스프로세스2 (1)2 (1) 커널커널(1)(1) 페이지앤트리페이지앤트리 빈공간빈공간 프로세스프로세스1 (2)1 (2) 프로세스프로세스1 (1)1 (1) 커널커널(2)(2) 커널커널(1)(1) 프로세스프로세스 공간공간 빈공간빈공간 빈공간빈공간 프로세스프로세스2 (1)2 (1) 커널커널(2)(2) 커널커널(1)(1) 프로세스프로세스3 (3)3 (3) 프로세스프로세스3 (2)3 (2) 프로세스프로세스3 (1)3 (1) 커널커널(2)(2) 커널커널(1)(1)
  • 11. PagingPaging 의의 동작동작 Page IndexPage Index offsetoffset 가상주소(Virtual Address) Page 0Page 0 Page 1Page 1 Page 2Page 2 Page 3Page 3 11임베디드시스템의 보호 Physical Address 0Physical Address 0 Physical Address 1Physical Address 1 Physical Address 2Physical Address 2 Physical Address 3Physical Address 3 Page 4Page 4 Page 5Page 5 Page 6Page 6 Page 7Page 7 Page Table Entry 실제 메모리
  • 12. 4KByte Page4KByte Page 주소변환주소변환 예예 Page IndexPage Index 22 offsetoffset 0x0100x010 가상주소 0x2010 Page 0 (0x0000)Page 0 (0x0000) Page 1 (0x1000)Page 1 (0x1000) Page 2 (0x2000)Page 2 (0x2000) Page 3 (0x3000)Page 3 (0x3000) 12임베디드시스템의 보호 0x40000x4000 0x10000x1000 0x50000x5000 0x20000x2000 Page 4 (0x4000)Page 4 (0x4000) Page 5 (0x5000)Page 5 (0x5000) Page 6 (0x6000)Page 6 (0x6000) Page 7 (0x7000)Page 7 (0x7000) Page Table Entry 실제 메모리
  • 13. Buffer OverflowBuffer Overflow 임베디드시스템의 보호 13 Buffer OverflowBuffer Overflow
  • 14. 개개 요요 String지역변수로 복사 strcpy 지역변수를 넘치는 큰 스트링 입력에 의한 함수 리턴 주소 변경 14임베디드시스템의 보호 네트워크/ 콘솔을 통한 입력 함수 리턴 주소 변경 현재 함수 종료 시 스트링과 같이 넣은 코드로 리턴 주입된 코드 실행
  • 15. 원원 리리 내내 용용 크크 기기 주주 소소 ...... Tv_StrTv_Str 3232 0xD0000xD000 지역변수지역변수 22 44 0xD0200xD020 ID : STACK 터미널,네트워크를 통한 코드주입 Dummy글자 ( 40 byte ) + R 주소 ( 0 D030 ) S 변수를 넘쳐 15임베디드시스템의 보호 지역변수지역변수 11 44 0xD0240xD024 리턴리턴 주소주소 44 0xD0280xD028 함수함수 파라매터파라매터 44 0xD02C0xD02C 이전함수영역이전함수영역 ?? 0xD0300xD030 ...... Return주소 ( 0xD030 ) + Dummy글자( 4 byte ) + 주입할 코드 ( ? byte ) Tv_Str 변수를 넘쳐 리턴주소등을 덮어씀
  • 16. 실행실행 조건조건 펌웨어펌웨어 업그레이드가업그레이드가 자주자주 없어없어 야한다야한다.. PagingPaging에에 의한의한 프로세스가프로세스가 독립되어야독립되어야 유리하다유리하다.. 16임베디드시스템의 보호 최소의최소의 코드로코드로 목적목적 하는하는 바를바를 이룰이룰 수수 있있 는는 환경이환경이 구축되어있어야구축되어있어야 한다한다.. 리버스리버스 엔지니어링에엔지니어링에 쉽게쉽게 노출된노출된 제품일제품일 수록수록 약점을약점을 찾기찾기 쉽다쉽다..
  • 17. 방지방지 대책대책 외부로부터외부로부터 문자열등을문자열등을 입력입력 받을받을 때에는때에는 최대최대 입력길이입력길이 제약을제약을 주어야주어야 한다한다.. 외부외부 네트워크를네트워크를 통한통한 터미널등터미널등 지원하지지원하지 않도록않도록 커널을커널을 설정한다설정한다 17임베디드시스템의 보호 않도록않도록 커널을커널을 설정한다설정한다.. 외부로외부로 부터부터 들어오는들어오는 텍스트정보를텍스트정보를 되도되도 록록 지역변수에지역변수에 넣지넣지 않는다않는다..
  • 19. 위험요소와위험요소와 대책대책 항항 목목 내내 용용 대대 책책 복복 제제 타회사에서타회사에서 막대한막대한 개발비를개발비를 들여들여 개발한개발한 제품을제품을 무단으로무단으로 복사복사.. 주로주로 플래시를플래시를 복사하는복사하는 유형유형 하드웨어와하드웨어와 공조하여공조하여 GPIOGPIO등에등에 킷값킷값 을을 숨김숨김 FPGAFPGA를를 사용사용 데이터데이터 노출노출 저장된저장된 자료나자료나 네트워크로네트워크로 전송중인전송중인 자료자료 를를 유출유출 (ex. CCTV ,Network Storage )(ex. CCTV ,Network Storage ) 외부전송외부전송 네트워크네트워크 패킷의패킷의 암호화암호화 저장장치의저장장치의 암호화암호화 19임베디드시스템의 보호
  • 21. 임베디드임베디드 개발에서개발에서 효과효과 기술기술 습득습득 경로의경로의 다양화다양화 컴파일러의컴파일러의 버그버그 검출검출 제품의제품의 고속화고속화 21임베디드시스템의 보호 제품의제품의 안정화안정화
  • 22. 감사합니다감사합니다.. 2nd CodeEngn Seminar 임베디드시스템의 보호 22 4nsys4nsys 송송 민민 호호 www.CodeEngn.com