Search
๐Ÿง

Is Your Firmware Real or Re-Hosted?

Created
2022/04/26 17:43
Tags
Firmware
Re-hosting
VxWorks
Conference
NDSS
Published
2021

Is Your Firmware Real or Re-Hosted?

A case study in re-hosting VxWorks control system firmware

0. Abstract

ํŽŒ์›จ์–ด ๋ฆฌํ˜ธ์ŠคํŒ…์€ ์ทจ์•ฝ์  ๋ถ„์„์— ์žˆ์–ด์„œ ์ ์  ๋” ํ•„์ˆ˜์ ์œผ๋กœ ์—ฌ๊ฒจ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๋…ผ๋ฌธ์€ HALucinator๋ฅผ ํ™•์žฅํ•˜์—ฌ VxWorks RTOS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ์—ฐ๊ตฌํŒ€์€ Schneider Electric SCADAPack 350, Schneider Electric Modicon 340, ๊ทธ๋ฆฌ๊ณ  Hughes 9201 BGAN์ด ๊ตฌ๋™ ๋ฐ ๋ฆฌํ˜ธ์ŠคํŒ…์„ ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋ฆฌํ˜ธ์ŠคํŒ… support layer(์ •์˜ ๋ฐ ๊ตฌํ˜„)์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ณธ ์—ฐ๊ตฌํŒ€์€ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ 3๊ฐœ์˜ ์‹ค์ œ ์žฅ์น˜์— ๋Œ€ํ•ด case-study๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

1. Background Information

Vocabulary

Firmware Re-Hosting
์›๋ž˜ ์˜๋„๋˜์—ˆ๋˜ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์•„๋‹Œ ํ”Œ๋žซํผ์—์„œ ํŽŒ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ
Emulation vs. Re-Hosting
ํ†ต์ƒ์ ์œผ๋กœ emulation๊ณผ re-hosting์€ ์„œ๋กœ ๋น„์Šทํ•œ ๊ฐœ๋…์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ณดํ†ต ํ˜ผ์šฉํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ์‹œ์Šคํ…œ์„ ์—๋ฎฌ๋ ˆ์ดํŒ…ํ•˜๋Š” ๊ฒƒ์„ ํŽŒ์›จ์–ด๋ฅผ ๋ฆฌํ˜ธ์ŠคํŒ… ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ฒŒ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•ด ์‹œ์Šคํ…œ์„ ์—๋ฎฌ๋ ˆ์ดํŒ…ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ํŽŒ์›จ์–ด ๋ฆฌํ˜ธ์ŠคํŒ…์„ ์ˆ˜๋‹จ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ ์ •์˜๋ฅผ ํ•œ ์ด์œ ๋Š” ๋ฆฌํ˜ธ์ŠคํŒ… ํ•˜๋Š” ๊ณผ์ •์—์„œ ํŒ๋‹จ์˜ ๊ทผ๊ฑฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฆฌํ˜ธ์ŠคํŒ…์„ ํ•  ๋•Œ ์ „์› ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ๋†’์€ ๊ตฌํ˜„๋„๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ•ด๋ด…์‹œ๋‹ค. ์ „์› ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ ํ…Œ์ŠคํŠธ ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋ผ๋ฉด ํ•„์š”ํ•˜๊ฒ ์ง€๋งŒ, ์ฃผ์š”ํ•œ ๋ถ€๋ถ„์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฆฌํ˜ธ์ŠคํŒ…์— ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
Re-hosting Support Layer(RSL)
๋ฆฌํ˜ธ์ŠคํŒ…์„ ์œ„ํ•ด ๋Œ€์ฒด๋˜๋Š” ํŽŒ์›จ์–ด์˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. HALucinator์™€ ๋ณธ ๋…ผ๋ฌธ์˜ ๋งฅ๋ฝ์—์„œ, Re-hosting Support Layer๋Š” HALucinator๊ฐ€ ํŽŒ์›จ์–ด๋ฅผ ๋ฆฌํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ์™€ ๋ชจ๋ธ์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.
VxWorks vs. Device Code
RSL์„ ๊ฐœ๋ฐœํ•  ๋•Œ, ๋Œ€์ฒด๋˜๋Š” ๊ธฐ๋Šฅ์ด ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€, ์–ด๋–ค ์ถœ์ฒ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ฒƒ์€ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VxWorks ์ž์ฒด์˜ ๊ธฐ๋Šฅ์„ ๋Œ€์ฒดํ•  ๊ฒฝ์šฐ ๋ฆฌํ˜ธ์ŠคํŒ… ์ง€์› ๊ณ„์ธต์„ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— Device Code๋ฅผ ๋Œ€์ฒดํ•  ๊ฒฝ์šฐ ์†Œ์ˆ˜์˜ ์žฅ์น˜์—์„œ๋งŒ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด์— ์—๋ฎฌ๋ ˆ์ด์…˜๋œ ์‹œ์Šคํ…œ ์ž์ฒด์˜ ์ •ํ™•๋„๋Š” ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” VxWorks์˜ ์ฝ”๋“œ ๋ถ€๋ถ„์„ VxWorks ์ฝ”๋“œ๋กœ, ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ๋ชจ๋‘ Device Code๋กœ ๊ฐ„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Emulation Utility Scale

์—๋ฎฌ๋ ˆ์ดํŒ…์ด ๋œ ์‹œ์Šคํ…œ์˜ ์œ ์šฉ์„ฑ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ด์— ๋Œ€ํ•œ ์ฒ™๋„๋ฅผ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ ˆ๋ฒจ์˜ ์ˆ˜์ค€์€ ๋ฆฌํ˜ธ์ŠคํŒ…์˜ ์ด์œ ์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฒ™๋„๋Š” ์ž์œจ ์ฃผํ–‰์˜ ํŒ๋‹จ ์ฒ™๋„์—์„œ ์˜ํ–ฅ์„ ๋ฐ›์•˜์œผ๋ฉฐ ๋‚ด์šฉ์€ Figure 1๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Figure 1๊ณผ ๊ฐ™์ด, ๋ณธ scale์€ ์ด 6๊ฐœ์˜ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
โ€ข
Level 0: ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ ์–ด๋„ ํ•˜๋‚˜์˜ ๋ช…๋ น์ด ์‹คํ–‰๋จ (ISA๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹๋ณ„๋˜๋ฉฐ, ํŽŒ์›จ์–ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์ฃผ์†Œ๋กœ ๋กœ๋“œ๋˜์—ˆ์Œ). ๊ทธ๋Ÿฌ๋‚˜ ์ •์ƒ์ ์ธ ์‹คํ–‰์€ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ
โ€ข
Level 1: ์˜ฌ๋ฐ”๋ฅธ entry point์—์„œ ์‹คํ–‰์ด ๋˜๋ฉฐ ์‹œ์Šคํ…œ initialization์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋จ. ๋‹จ, ํ•˜๋“œ์›จ์–ด ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋ˆ„๋ฝ๋˜์–ด ์ดˆ๊ธฐํ™”๊ฐ€ ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ
โ€ข
Level 2: ์ ์–ด๋„ ํ•˜๋‚˜ ์ด์ƒ์˜ ์–‘๋ฐฉํ–ฅ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ž‘๋™๋จ.(ex. ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ, ๋„คํŠธ์›Œํ‚น, ์ง๋ ฌ ํฌํŠธ, interactive shell ๋“ฑ)
โ€ข
Level 3: ํŒŒ์ผ ์‹œ์Šคํ…œ, ์ž‘์—… ์Šค์ผ€์ค„๋ง, ๋„คํŠธ์›Œํ‚น ๋“ฑ ํ•ต์‹ฌ์ ์ธ OS ๊ธฐ๋Šฅ์ด ์ž‘๋™.
โ€ข
Level 4: ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์žฅ์น˜๋ณ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•จ.(๋ฌผ๋ฆฌ์  ์‹œ์Šคํ…œ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘)
โ€ข
Level 5: ๋ชจ๋“  OS์˜ ๊ธฐ๋Šฅ๊ณผ ์žฅ์น˜๋ณ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ. ์ด ๊ฒฝ์šฐ black-box ๊ด€์ ์—์„œ๋Š” ์‹ค์ œ ์‹œ์Šคํ…œ์„ ๊ตฌ๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ์ฐจ์ด๊ฐ€ ์—†์–ด์•ผ ํ•จ
๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” ๊ฐ scale ๋‹จ๊ณ„์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ๊ณ„์ธต์— ์ดˆ์ ์„ ๋งž์ถ”๊ณ , ๊ฐ ์—๋ฎฌ๋ ˆ์ด์…˜๋œ ์‹œ์Šคํ…œ์˜ ์œ ์šฉ์„ฑ์„ ์ตœ๋Œ€ํ•œ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ตฌ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

HALucinator

HALucinator ๋ถ€๋ถ„ ๋‹ค์‹œ ์ •๋ฆฌ ํ•„์š”
HALucinator๋Š” ๋ฒ ์–ด ๋ฉ”ํƒˆ ํŽŒ์›จ์–ด๋ฅผ ์œ„ํ•œ HLE(High Level Emulation)๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŽŒ์›จ์–ด ์ถ”์ƒํ™”๋ฅผ ํ†ตํ•ด ๋‚ฎ์€ ์ˆ˜์ค€์˜ ํ•˜๋“œ์›จ์–ด ์ž‘์—…์„ ๋†’์€ ์ˆ˜์ค€์˜ API๋กœ ์ถ”์ƒํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋…ผ๋ฌธ์— ๋Œ€ํ•œ ์ •๋ฆฌ๋Š” ์ด๋ฏธ ๋งŽ์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณธ ๋…ผ๋ฌธ์—์„œ ๊ฐ•์กฐํ•œ ๋ถ€๋ถ„๋งŒ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. (์ฐธ๊ณ : )
HALucinator๋Š” ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํ•ธ๋“ค๋Ÿฌ, ์ฃผ๋ณ€ ๋ชจ๋ธ(peripheral models), ๊ทธ๋ฆฌ๊ณ  ์™ธ๋ถ€ ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ๋Š” ์—๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์ƒํƒœ(๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ)๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด ํŽŒ์›จ์–ด์˜ API์™€ ์ฃผ๋ณ€์žฅ์น˜๋ฅผ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋ณ€ ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ๋‹ค์–‘ํ•œ ์žฅ์น˜๋“ค๋กœ๋ถ€ํ„ฐ ์ž…์ถœ๋ ฅ์„ ํ•˜๊ธฐ ์œ„ํ•ด HALucinator์˜ IO server๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์—์„œ ์šฐ๋ฆฌ๋Š” ํŽŒ์›จ์–ด ํด๋ž˜์Šค๋ฅผ Re-hosting Support Layer(RSL)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ•ธ๋“ค๋Ÿฌ ๋ฐ ๋ชจ๋ธ ์„ธํŠธ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ์ถ”๊ฐ€์ ์œผ๋กœ VxWorks์— ํ•„์š”ํ•œ Re-hosting Support Layer๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ VxWorks์˜ ํŽŒ์›จ์–ด๋„ ๋ฆฌํ˜ธ์ŠคํŒ…์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

VxWorks

VxWorks๋Š” VRTX๋ฅผ ๋Œ€์ฒดํ•  ์ž์ฒด ์ปค๋„์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ, RTOS๋กœ ๋ฐœ์ „ํ•˜์˜€์Šต๋‹ˆ๋‹ค. VxWorks๋Š” ํ˜„์žฌ 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ ARM, Inter ๋ฐ Power ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. VxWorks์˜ ์ฃผ์š” ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋Š” OS ์ปค๋„์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ๋ณด๋“œ ์ง€์› ํŒจํ‚ค์ง€, ๋ฏธ๋“ค์›จ์–ด ๋ฐ ๊ธฐํƒ€ ํŒจํ‚ค์ง€์™€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณ€๊ฒฝํ•  ํ•„์š” ์—†์ด OS ๋ฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋Ÿฌํ•œ ์ถ”์ƒํ™”๋Š” HLE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽŒ์›จ์–ด๋ฅผ ์žฌํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” VxWorks5.5์™€ 6.4 Firmware๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , ์ด์— ๋Œ€ํ•œ layer๋ฅผ ์กฐ์‚ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋„์‹์€ Figure 2์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2. ๋…ผ๋ฌธ ๋‚ด์šฉ

VxWorks Re-hosting Support Layer

๊ฐ€์žฅ ๋จผ์ € ์—ฐ๊ตฌํŒ€์ด ์ •ํ•œ ๊ฒƒ์€ RSL(Re-hosting Support Layer)์„ ์„ ์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌํŒ€์€ ๋ฆฌํ˜ธ์ŠคํŒ…์— ์žˆ์–ด ํ•„์š”ํ•œ ์š”์†Œ๋“ค์— ๋Œ€ํ•ด์„œ ์กฐ์‚ฌํ•˜๊ณ , ๊ทธ ๋’ค์— ๊ฐ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฐ๊ตฌํŒ€์€ utility scale์„ 3๋‹จ๊ณ„๊นŒ์ง€ ๋Œ์–ด์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. ๋ฆฌํ˜ธ์ŠคํŒ…์„ ํ†ตํ•ด ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ์‹คํ–‰, interrupt triggering, serial communication, DOS ํŒŒ์ผ์‹œ์Šคํ…œ ์ž‘๋™, ์ด๋”๋„ท ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Serial Port in VxWorks
HALucinator์—์„œ ์ถ”๊ฐ€๋œ ๋‚ด์šฉ
โ€ข
ARM ๊ธฐ๊ธฐ ์ „์šฉ์˜ IRQ ํ•ธ๋“ค๋Ÿฌ
โ€ข
๋กœ๊น… ๊ธฐ๋Šฅ ์ถ”๊ฐ€
โ€ข
๋ช‡๋ช‡ ํ”„๋กœ์„ธ์„œ ์ถ”๊ฐ€
โ€ข
memory allocation

Firmware Analysis

HQ Tracer
โ€ข
Halucinator์™€ QEMU์—์„œ ์ฐพ์€ execution trace๋ฅผ Ghidra์—์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Œ
โ€ข
์ด๋ฅผ ํ†ตํ•ด ๋” ์ˆ˜์›”ํ•œ ๋ถ„์„์ด ๊ฐ€๋Šฅ

3. Conclusion

๋ณธ ์—ฐ๊ตฌํŒ€์€ ์ถ”๊ฐ€์ ์œผ๋กœ RSL์„ ๊ตฌ์ถ•ํ•˜๋ฉด์„œ SCADAPack 350, Modicon 340 ๊ทธ๋ฆฌ๊ณ  Hughes 9201 BGAN ๋ชจ๋ธ์— ๋Œ€ํ•œ ๋ฆฌํ˜ธ์ŠคํŒ…์„ ์„ฑ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด VxWorks RTOS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŽŒ์›จ์–ด๋“ค์˜ ๋ฆฌํ˜ธ์ŠคํŒ… ๊ณผ์ •์„ ๋‹จ์ˆœํ™”ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ฆฌํ˜ธ์ŠคํŒ… ์ดํ›„๋กœ๋Š” ์ทจ์•ฝ์  ๋ถ„์„ ๋ฐ ๊ธฐํƒ€ ์‹œ์Šคํ…œ ๋ถ„์„์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์—ฐ๊ตฌํŒ€๋“ค๋„ HALucinator ํ•ธ๋“ค๋Ÿฌ์™€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํ˜ธ์ŠคํŒ…์˜ ๋ฒ”์œ„๋ฅผ ๋” ๋„“ํ˜€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

Reference

๋ฐœํ‘œ ์˜์ƒ: https://www.youtube.com/watch?v=3R7GEt7dTvk