패스트터틀

임베디드 시스템 보안(19.6.5) 본문

Cyber Security(undergraduate)/embeded system security

임베디드 시스템 보안(19.6.5)

SudekY 2019. 6. 5. 16:43

왜 공유기를 공부해야하나?

홈라우터 Exploitation(공격) 을 함으로써 더 큰 장비를 다루기 위한것

 

Home Router

router는 서로다른네트워크가 연결될수있게 해주는장치. 쉽게말해 연장선인데 여러가지기능이들어간 연장선

 

전문라우터보다 성능은 떨어지지만 기능은 전문라우터보다 훨씬 많이 들어가있음

 

WPS(와이파이 인증 프로토콜)

Traditional(100Mbps,1Gbps)

IPv4 and IPv6

NAT(Netwrok Address Translation) = 네트워크 주소를 바꿔주는것

VPN Server (Virtual Privait Network)

Port Forwarding and UPnP(NAT위에서 p2p형식을 쓰기위해 UPnP가 나옴)

 

Embeded boudary에서 64mb 는 굉장히 큰것이다. pc기준으로는 15년정도 늦다. 하지만 64mb이상으로 늘어날 필요성이 없고 필요이상의 성능은 가격 대비 성능에 있어서 효율이 떨어지기 때문에 이상의 투자를 하지 않는다.

 

SoC(System on a Chip) Manufactures

 

CPU-----(제일 중요, 스펙 결정)

ARM(스마트폰에서 거의 들어가는것)

〓 (서로 상호작용 불가)

▼  

MIPS

----------

Cache

Crpto Engine(암호연산 엔진)

Ethernet Switch core

....

..

.

 

MCU(Micro Computing Unit) 

 

 

Home Router Archiecture

 

Routing processor

Switch fabric(processor) 

 

패킷이 들어오면 Homerouter가 하는역할이 아까 말했듯이 중계하는것인데 어디로 나갈지를 결정하는거가 홈라우터가 하는것인데 Input,output포트 구분은 의미가없음 어디로 나가도 어디로 들어와도됨

 

routing - ip를 가지고 결정(소프트웨어)(control plan)

Swtich - 멕어드레스를 가지고 그다음경로를 결정(하드웨어)(data plan)

drop - 패킷이 갈곳이 없어서 하는것

 

router 에서는 switch 패킷을 볼수없음(소프트웨어로 하드웨어를 못본다)

switch는 하드웨어 구현이 어렵지 않기때문에 만드는것이고 속도가 빨라짐

라우터는 하드웨어로 구현하기에는 굉장히 어렵(고가의 장비에서만 사용) 

 

Line termination - Datalink Processing - Lookup, forwarding, queuing -> switch fabric

                                                                         (quere = 큐 ,fifo , buffer,속도가 느려서 기다려야되서)

                                                                  

Switch fabric

-

1. Memory사용 - 패킷이 들어오면 소프트웨어로 올라가서 메모리로 갔다가 다시 output하는데 이때 램을 거치기때문에 속도가 느림

2. Bus사용 - 램을 안거쳐서 속도느려지는것을 방지했는데(bandwidth 해결) 포트가 여러개가 되면 문제가됨

3. Dediecated Fabric - 포트들을 매트릭스로 연결하여서 하나의 포인트들은 게이트가 있음 버스보다 어느정도 문제해결이 된 방법

 

Software

- 굉장히 다양한 기능이 들어감 그중에서도 핵심은 NAT이다.

장비는 많은데 ip는 하나밖에 받지 못할때 내부아이피를 외부아이피(하나)로 바꿔서 나가는것 그리고 외부에서 들어온것은 내부아이피로 들어갈때 테이블 lookup으로 들어감

테이블로기록했기때문에 어디로 가고 어디서 왔는지를 알고 나눠쓸수있다.

 

그러면 같은곳으로 나갈때에는 돌아올때 어떻게 하느냐?

동일한 포트로 나갈경우는 홈라우터가 포트번호를 바꿔서 나가게한다.

보통 NAT는 만번대부터 시작하는데 (총 6만 몇개) 많기때문에 걱정 ㄴㄴ(하지만 포트 초과시 불가)

 

nat는 리눅스 커널에서 이루어지고 커널안에서 Netfilter Packet Traversal을 거친다.

 

ASUS AC5300 - 게이밍 라우터  (홈,개인)

CISCO CRS - 전세계 네트워크 시장을 Leading하고있는 업체 position이 40%점유율 가지고있다. (전문)

 

                Home Router(홈)        <->          Core Router(전문)

동시처리                  1G                            More than 10G

SwitchingProc       Hardware                          Hardware

RoutingPProc        Software                           Hardware

Media                  Wi-Fi,Ethernet                 Ethernet, SFP, XFP 

( 10G이상에서쓰는 홈라우팅에서 쓰는 구리말고 광케이블을 쓰기때문에 쓰는 SFP,XFP에서 쓰는것이다)

Routing Protocols       Static/Dynamic Routing          Static/Dynamic Routing,OSPF,RIP,EGP,BGP ....

Price                     백만원                            매우비쌈

Physical volume        Small                          From 1U to Rack

OS                      Linux,eCos,VxWorks         Linux, Unix for Management RTOS for Packet Engine(Multi-OS)

                                                         (Linux,Unix는 메니지먼트로 쓰고 RTOS 를 페킷엔진으로 쓴다.)

 

Home Router OS(홈라우터 운영체제)

 

Operaing System = 하나의 체계 라고 말해야함

 

Linux가 많이 사용되는이유 , Linus Torvalds가 Linux kernel 을 만들었는데 그때 당시에는 Unix가 대세였다.

하지만 Unix는 유료이고 소스코드가 공개되어있지 않았었다. 리처드 스텔만의 GNU프로젝트랑 맞물려서 linux GNU가 탄생했다. (GNU는 GNU IS NOT UNIX의 약자이다. 4개의 freedoms을 보장한다. 

1. 어느목적으로든 자유롭게 사용가능하다. 

2. 소프트웨어를 연구하고 바꿔도됨

3. 복제본 배포가능

4. 변경된 복제본도 배포가능

 

이때부터 linux가 시작되어 지금 대세를 이루고있다. 범용운영체제로서의 기능을 넓혀가고 있다.

Good match for embedded system! 

 

VxWorks

Windriver라는 회사에서 만든것으로 Realtime OS( 요청한 응답에대한 시간을 보장하는 OS)이다.

RealtimeOS가 아니라면 발생할수있는 문제, 예를들면 항공같은 실시간 솔루션이 필요한것들에서 필요한것이다.

(항공,자동화,산업로봇,의료장비, 인프라구조 커뮤니케이션 그리고 네트워킹)

linux의 단점은 덩치가커서(사이즈가) 작은사이즈의 디바이스에서는 못넣는것을 VxWorks는 크기가 작아서 좋다.

임베디드시장에서는 VxWorks에서 좋다.

 

홈라우터에서 쓰는 VxWorks는 5.5.1까지이다. 그 이상의 버젼에서는 VxWorks 6.0.0 부터는 커져서 소형장비에서 적합하지 않기 때문이다.

크기가 줄어든다 -> 하드웨어를 싸게 구할수있다.

리눅스에서 도는것은 VxWorks에서 돌아가게 되어있다.

 

2012~2017통계상 linux gnu는 늘어나고 real-time os는 하락(아주 미미함.. 아주 큰차이는 없다)

장비

 

FreeBSD is a popular Operating System in commercial embedded devices

why?

is stabel,easy to customize, BSD License(변경을 가하면 공개해야하는 GNU와다르게 BSD라이센스, 공개할의무가 없는 라이센스이다. 물론 BSD가 GNU보다 기능은 적다)

Not found in Home Router

 

 

 

Outline

 

FIreware Introduction

Binwalk

Lab: Unpacking ZIP archive

Unpacking Linux

Demo

..

 

Fireware

- specific class of computer software that provide low-level control for the device's specific hardware

- 완전한 하나의 운영체제

비휘발성 메모리인 ROM, EPROM, Flash Memory에 저장됨

 

inside

DISK Image 를 포함하고 있다.(가벼운 파일시스템을 포함하는)(LINUX진영)

- squashFS (Linux Kernel mainline이 포함되는) - readonly기때문에 write에 관한 문제를 신경안써도 되기때문에 가벼워진다.

- CramFS( squashFS이전에 쓰던것으로지금은 많이 쓰지 않음)

또는 그냥 실행가능것(RTOS 진영)

- 만약에 실행가능한거라면 ELF에 들어가고 아니면 ELF 공간도아까울경우 RAW에 들어간다.

 

Firmware

Metadata -> Compressed Data  를 설명하는 데이터

 

-커널을 로드할때는 사용되는 정보는 kernel parameters(주소정보,크기 이런것들)에 

-checksum(firmware 변조여부)

 

Linux-based firmware

Metadata

LinuxKernel

Root File System(squashFS)

 

FileSystem을 추출하고 안의 내용물을 변경하고 압축하는 과정인데

 

192.168.219.1 이런것들은 홈라우터의 웹서버에 접속하는것임(웹(서버)가/이 작동하는것임)

그런데 여기서 웹을 작동시키기위해서는 많은 데이터가 필요한데 그래서

실제 파일시스템은 아닌데 웹서버를 속여서 실제 파일시스템이 있는것처럼 웹서버를 속여서 만듬

(Pseudo FS(file system) )

 

공격자가 자기들의 firmware를 분석하여 허점을 이용할수있기 때문에 최대한 비밀유지를 하려고함

(물론 거의 분석되어서 공개됨)

Well-known Metadata format(이미 잘알려진 펌웨어 구조)

 

TRX v1(openWRT에 잘 정리가 잘됨)

-----------------------------------

MagicNumber

Length

32-bit CRC value

TRX Flags / TRX version

Partition offset[0] Izma-loader

Partition offset[1] linux-kernel

Partition offset[2] roofs

-----------------------------------

 

uImage(omega2p)

 

TP-Link 중국에서 만드는 라우터회사중에 가장 큰 것?

복잡한데 결국은 동일한 내용이다. 

 

Binary Analysis Tool written by Craig

 

homerouter로 지나가는 패킷을 보고싶다면?

이런것들을 할려며녀 Root file system쪽에서 하는것이 좋다. (kernel보다는)

그렇다면 firmware 구조가 다양한데 이 압축된 firmware를 볼려면 binwalk를 쓰면된다.

zip파일을 압축풀면 a,b,c를 푸는것처럼 firmware도 이와 동일하게 취급하자는것

binwalk ./omege2p_0.2.2.bn 을 푼다.

이렇게 풀면은 SquashFS가 나오는데 이 SquashFS를 Unsquashing 을 하면 안에 있는것을 볼수있음

Rebuilding 압축을풀고 수정한다음에 다시 압축했을때 다시 압축을 보장하며 수행하는것

CRC - firmware변조여부를 확인하는것

종종 READ ONLY가 아닌 firmware가 있는데 OpenWRT같은것들이 있다.

 

firmware를 변조할때 쓰는킷

- collection of scripts and utilities to extract and rebuild linux based firmware images

Supports TRX firmware rebuilding

- WRT54G v1 - 6

...

..

.

 

DIR - 550라우터 firmware해보기

우선 192.168.10.1/hellwrold.html 를 들어가보면 404 에러가 뜨는데

.sh 로 끝나는건 쉘스크립트이다.

index로 들어가서 html추가하고 unpacking을 했음

 

 

 

 

 

 

                                 

 

 

Comments