์ฑ… ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

**โš ๏ธ ์†Œ์Šค ํŒŒ์ผ ์ฃผ์˜**: ์†Œ์Šค ํŒŒ์ผ๋ช…์€ "The Shellcoder's Handbook (Chris Anley)"์œผ๋กœ ๋˜์–ด ์žˆ์œผ๋‚˜, ์‹ค์ œ ๋‚ด์šฉ์€ ์ด ์ฑ…์ž…๋‹ˆ๋‹ค.

์ด ๋งํฌ๋ฅผ ํ†ตํ•ด ๊ตฌ๋งคํ•˜๋ฉด ์šด์˜์ž์—๊ฒŒ ์†Œ์ •์˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ์ง€๊ธ‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

YES24์—์„œ ๊ตฌ๋งคํ•˜๊ธฐ

Rootkits: Subverting the Windows Kernel โ€” Greg Hoglund & James Butler (2005)

โš ๏ธ ์†Œ์Šค ํŒŒ์ผ ์ฃผ์˜: ์†Œ์Šค ํŒŒ์ผ๋ช…์€ "The Shellcoder's Handbook (Chris Anley)"์œผ๋กœ ๋˜์–ด ์žˆ์œผ๋‚˜, ์‹ค์ œ ๋‚ด์šฉ์€ ์ด ์ฑ…์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์‚ฌ์‹ค

  • ์ €์ž: Greg Hoglund (HBGary CEO, rootkit.com ์ฐฝ๋ฆฝ์ž) + James Butler (VICE ํƒ์ง€๋„๊ตฌ ๊ฐœ๋ฐœ์ž)
  • ์ถœํŒ: Addison-Wesley Professional, 2005 / ISBN: 0-321-29431-9 / 352ํŽ˜์ด์ง€
  • ํ•ต์‹ฌ ๋ช…์ œ: ๋ฃจํŠธํ‚ท์€ "์˜์†์ ยทํƒ์ง€๋ถˆ๊ฐ€ ์ ‘๊ทผ"์„ ์ œ๊ณตํ•˜๋Š” ์ฝ”๋“œ ์ง‘ํ•ฉ์ด๋ฉฐ, ์ปค๋„์„ ์กฐ์ž‘ํ•˜๋Š” ์ˆœ๊ฐ„ OS๊ฐ€ ๋ณด๊ณ ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฑฐ์ง“์ด ๋œ๋‹ค
  • ๊ด€์ : ๊ณต๊ฒฉ์ž ์‹œ์ ์œผ๋กœ ๊ธฐ๋ฒ•์„ ์„ค๋ช…ํ•œ ๋’ค, ๋งˆ์ง€๋ง‰ ์ฑ•ํ„ฐ์—์„œ ๋ฐฉ์–ด๋กœ ์ „ํ™˜

๋ฃจํŠธํ‚ท์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€

์ •์˜

๋ฃจํŠธํ‚ท = "root(์ตœ๊ณ  ๊ถŒํ•œ)" + "kit(๋„๊ตฌ ๋ชจ์Œ". ์‹œ์Šคํ…œ์— ์˜์†์ ์ด๊ณ  ํƒ์ง€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์กด์žฌ๊ฐ์„ ์œ ์ง€ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ง‘ํ•ฉ.

ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋Š” "ํƒ์ง€ ๋ถˆ๊ฐ€๋Šฅ(undetectable)" โ€” ๋ชจ๋“  ๊ธฐ์ˆ ๊ณผ ํŠธ๋ฆญ์ด ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ฒƒ.

๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  1. ์›๊ฒฉ ๋ช…๋ นยท์ œ์–ด(Remote C&C): ํŒŒ์ผ ์ ‘๊ทผ, ๊ฐ•์ œ ์žฌ์‹œ์ž‘, ์ปค๋งจ๋“œ ์…ธ(/bin/sh, cmd.exe) ํš๋“
  2. ์†Œํ”„ํŠธ์›จ์–ด ๋„์ฒญ(Software Eavesdropping): ํ‚ค์ŠคํŠธ๋กœํฌ ๊ฐ€๋กœ์ฑ„๊ธฐ, ํŒจํ‚ท ์Šค๋‹ˆํ•‘, ์ด๋ฉ”์ผ ์—ด๋žŒ, ์•”ํ˜ธํ™” ํ‚ค ํƒˆ์ทจ

๊ณต๊ฒฉ์ž ๋™๊ธฐ

  • ์ดˆ๊ธฐ ์นจํˆฌ ๋น„์šฉ์ด ํฌ๋ฏ€๋กœ ํš๋“ํ•œ ๊ฑฐ์ ์„ ์œ ์ง€ํ•˜๋ ค ํ•จ
  • ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ๊นŠ์ˆ™์ด ์ถ”๊ฐ€ ๊ณต๊ฒฉ ๊ฑฐ์  ํ™•๋ณด
  • ์ •๋ณด ์ˆ˜์ง‘(์ธํ…”๋ฆฌ์ „์Šค) โ€” ์žฅ๊ธฐ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ๋…ผ๋ฆฌ ํญํƒ„(Logic Bomb) ์‹ฌ๊ธฐ โ€” ํŠน์ • ์‹œ๊ฐ์— ์‹œ์Šคํ…œ ํŒŒ๊ดด

๊ธฐ์ˆ  ๊ตฌ์กฐ โ€” 10๊ฐœ ์ฑ•ํ„ฐ ํ•ต์‹ฌ

1์žฅ. ํ”์  ๋‚จ๊ธฐ์ง€ ์•Š๊ธฐ (Leave No Trace)

  • ๋ฐฉ์–ด์ž๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ๋ง‰์•„์•ผ ํ•˜๋‚˜, ๊ณต๊ฒฉ์ž๋Š” ํ•˜๋‚˜๋งŒ ์ฐพ์œผ๋ฉด ๋œ๋‹ค โ€” ์ˆซ์ž๋Š” ๊ณต๊ฒฉ์ž ํŽธ
  • ๋ฃจํŠธํ‚ท ์ข…๋ฅ˜: 1์„ธ๋Œ€(์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ) โ†’ ํ˜„์žฌ(๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„) โ†’ ๋ฏธ๋ž˜(๋งˆ์ดํฌ๋กœ์ฝ”๋“œ/FPGA ํŽŒ์›จ์–ด)
  • ํƒ์ง€ ๋Œ€์‘: HIPS(Host Intrusion Prevention System) vs NIDS(Network IDS) ์šฐํšŒ ์ „๋žต

2์žฅ. ์ปค๋„ ์ „๋ณต (Subverting the Kernel)

  • OS๋ฅผ ๋ณ€์กฐํ•˜๋ฉด OS๊ฐ€ ๋ณด๊ณ ํ•˜๋Š” ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๊ฑฐ์ง“์ด ๋œ๋‹ค โ€” ์ด๊ฒƒ์ด ์ปค๋„ ๋ฃจํŠธํ‚ท์˜ ํ•ต์‹ฌ ๋ ˆ๋ฒ„๋ฆฌ์ง€
  • ์ปค๋„ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ณต๊ฒฉ ํฌ์ธํŠธ:
์ปค๋„ ๊ธฐ๋Šฅ๊ณต๊ฒฉ ์‹œ ํšจ๊ณผ
ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์กฐ์ž‘ โ†’ ํ”„๋กœ์„ธ์Šค ์€๋‹‰
ํŒŒ์ผ ์ ‘๊ทผ์ฝ”๋“œ ์กฐ์ž‘ โ†’ ํŒŒ์ผยท๋””๋ ‰ํ† ๋ฆฌ ์€๋‹‰
๋ณด์•ˆ ์‹œ์Šคํ…œ๊ถŒํ•œ ์ œํ•œ ์™„์ „ ๋ฌด๋ ฅํ™”
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€์ƒ-๋ฌผ๋ฆฌ ๋งคํ•‘ ์•…์šฉ โ†’ ๋””๋ฒ„๊ฑฐยทํฌ๋ Œ์‹ ํšŒํ”ผ
  • ๋ฃจํŠธํ‚ท ๋ถ€ํŒ… ์‹œ ์ƒ์กด ๋ฐฉ๋ฒ• (์žฌ๋ถ€ํŒ… ํ›„์—๋„ ์œ ์ง€):
  • Run ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ‚ค (๊ณ ์œ„ํ—˜, ๋ชจ๋“  ๋ฐ”์ด๋Ÿฌ์Šค ์Šค์บ๋„ˆ ์ฒดํฌ)
  • ๊ธฐ์กด .sys/.exe ํŒŒ์ผ Trojanํ™” โ€” ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ์—ผ์ด ์—ญ์„ค์ ์œผ๋กœ ๊ฐ€์žฅ ํšจ๊ณผ์ 
  • ๋“œ๋ผ์ด๋ฒ„๋กœ ๋“ฑ๋ก
  • on-disk ์ปค๋„ ์ง์ ‘ ์ˆ˜์ •
  • ๋ถ€ํŠธ๋กœ๋” ์ˆ˜์ •

3์žฅ. ํ•˜๋“œ์›จ์–ด ์—ฐ๊ฒฐ โ€” Ring 0์˜ ์„ธ๊ณ„

  • Ring 0 (์ปค๋„ ๋ชจ๋“œ): CPU ์ตœ๊ณ  ํŠน๊ถŒ ์ˆ˜์ค€ โ€” ํ•˜๋“œ์›จ์–ด ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • Ring 3 (์‚ฌ์šฉ์ž ๋ชจ๋“œ): ์ผ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์ค€, ์ปค๋„ ์„œ๋น„์Šค ๊ฒฝ์œ  ๊ฐ•์ œ
  • ํ•ต์‹ฌ ํ…Œ์ด๋ธ”:
  • SSDT (System Service Descriptor Table): ์‚ฌ์šฉ์ž ๋ชจ๋“œ API ํ˜ธ์ถœ์„ ์ปค๋„ ํ•จ์ˆ˜๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋””์ŠคํŒจ์น˜ ํ…Œ์ด๋ธ” โ€” ํ›„ํ‚น์˜ ํ•ต์‹ฌ ํ‘œ์ 
  • IDT (Interrupt Descriptor Table): ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ํ…Œ์ด๋ธ”
  • MDT (Memory Descriptor Tables): ๊ฐ€์ƒ-๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘
  • CR0 ๋ ˆ์ง€์ŠคํŠธ: ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ๋น„ํŠธ ํฌํ•จ โ€” ๋ฃจํŠธํ‚ท์ด ์ด๋ฅผ ๋„๋ฉด ์ฝ๊ธฐ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ์—๋„ ์“ฐ๊ธฐ ๊ฐ€๋Šฅ

4์žฅ. ํ›„ํ‚น ๊ธฐ๋ฒ• (Hooking)

๊ฐ€์žฅ ๊ณ ์ „์ ์ด๊ณ  ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์“ฐ์ด๋Š” ๋ฃจํŠธํ‚ท ๊ธฐ๋ฒ•.

์œ ์ €๋žœ๋“œ ํ›„ํ‚น:

  • DLL ์ธ์ ์…˜: ๋Œ€์ƒ ํ”„๋กœ์„ธ์Šค์— ์ž์‹ ์˜ DLL ์ฃผ์ž… โ†’ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ ๊ต์ฒด
  • CreateRemoteThread() ํ™œ์šฉ

์ปค๋„ ํ›„ํ‚น:

  • SSDT ํ›„ํ‚น: NtQuerySystemInformation ๊ฐ™์€ syscall ๊ต์ฒด โ†’ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์—์„œ ์‚ญ์ œ
  • netstat.exe๋กœ ํฌํŠธ๊ฐ€ ๋ณด์ด๋ฉด ์ˆจ๊ฒจ์ง„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋…ธ์ถœ๋˜๋Š” ์•ฝ์  ์กด์žฌ

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ ‘๊ทผ: ํƒ์ง€ ์šฐํšŒ๋ฅผ ์œ„ํ•ด ์œ ์ €๋žœ๋“œ + ์ปค๋„ ํ˜ผํ•ฉ

5์žฅ. ๋Ÿฐํƒ€์ž„ ํŒจ์นญ (Runtime Patching)

  • Detour Patching: ํ•จ์ˆ˜ ํ”„๋ฆฌ์•ฐ๋ธ”์— 5๋ฐ”์ดํŠธ ๋ฌด์กฐ๊ฑด ์ ํ”„(JMP) ์‚ฝ์ž… โ†’ ์ž์‹ ์˜ ํ•จ์ˆ˜๋กœ ์‹คํ–‰ ํ๋ฆ„ ์ „ํ™˜
  • Jump Templates: ์—ฌ๋Ÿฌ ํŒจ์นญ ๋ณ€ํ˜•์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๊ด€๋ฆฌ
  • Cavern Infection: ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ํ•˜๋‹จ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ณต๊ฐ„์— ์ฝ”๋“œ ์‚ฝ์ž…
  • ํƒ์ง€๊ฐ€ ๋น„๊ต์  ์–ด๋ ต๊ณ  ๊ฐ•๋ ฅ โ€” "๊ฐ€์žฅ ๊ฐ•ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋กœ์ง ๋ณ€์กฐ ๋ฐฉ๋ฒ•"

6์žฅ. ๋ ˆ์ด์–ด๋“œ ๋“œ๋ผ์ด๋ฒ„ (Layered Drivers)

  • Windows ๋“œ๋ผ์ด๋ฒ„ ์ฒด์ธ: ํ•˜๋“œ์›จ์–ด ๋“œ๋ผ์ด๋ฒ„ ์œ„์— ๋ ˆ์ด์–ด ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฝ์ž…ํ•ด ๋ฐ์ดํ„ฐ ๊ฐ€๋กœ์ฑ„๊ธฐ
  • KLOG ๋ฃจํŠธํ‚ท: ํ‚ค๋ณด๋“œ ๋“œ๋ผ์ด๋ฒ„ ์œ„์— ๋ ˆ์ด์–ด ์‚ฝ์ž… โ†’ ๋ชจ๋“  ํ‚ค์ŠคํŠธ๋กœํฌ ๋กœ๊น…
  • ํŒŒ์ผ ํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„: ์ €์žฅ/์ฝ๊ธฐ ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ยท์€๋‹‰ ๊ฐ€๋Šฅ

7์žฅ. DKOM โ€” ์ง์ ‘ ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ ์กฐ์ž‘ (Direct Kernel Object Manipulation)

ํ›„ํ‚น ์—†์ด ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ž์ฒด๋ฅผ ์ง์ ‘ ๋ณ€์กฐํ•˜๋Š” ๋ฐฉ์‹. ํƒ์ง€ ์šฐํšŒ์— ๋” ํšจ๊ณผ์ .

ํ”„๋กœ์„ธ์Šค ์€๋‹‰ ๋ฉ”์ปค๋‹ˆ์ฆ˜:

KPRCB โ†’ fs:0x124 โ†’ ETHREAD โ†’ KTHREAD โ†’ EPROCESS
                                        โ†“
EPROCESS โ†” EPROCESS โ†” EPROCESS  (์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ)
               โ†‘
      ์ด ๋…ธ๋“œ์˜ FLINK/BLINK๋ฅผ ์กฐ์ž‘ํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ชฉ๋ก์—์„œ ์‚ฌ๋ผ์ง
  • PsGetCurrentProcess() โ†’ EPROCESS ๊ตฌ์กฐ์ฒด ํƒ์ƒ‰ โ†’ LIST_ENTRY ์กฐ์ž‘
  • OS ๋ฒ„์ „๋ณ„ ์˜คํ”„์…‹์ด ๋‹ค๋ฆ„ (NT:0x108 / 2000:0x12c / XP:0xc8)

ํ† ํฐ ๊ถŒํ•œ ์ƒ์Šน:

  • EPROCESS ๋‚ด ํ† ํฐ ์˜คํ”„์…‹์— ์ง์ ‘ ์ ‘๊ทผ โ†’ ๊ถŒํ•œ ๊ทธ๋ฃน/SID ์ˆ˜์ •
  • Win32 API ์—†์ด ์ปค๋„์—์„œ ์ง์ ‘ ์ฒ˜๋ฆฌ โ†’ ํŠน๊ถŒ ๊ฒ€์‚ฌ ์šฐํšŒ

8์žฅ. ํ•˜๋“œ์›จ์–ด ์กฐ์ž‘

  • ์žฅ์ : ์†Œํ”„ํŠธ์›จ์–ด ๊ณ„์ธต ์•„๋ž˜์— ์œ„์น˜ โ†’ ์ตœ์ƒ์˜ ์Šคํ…”์Šค
  • ๋‹จ์ : ํ”Œ๋žซํผ ํŠน์ด์  โ€” ๋ฒ”์šฉ ๋ฃจํŠธํ‚ท ๋ถˆ๊ฐ€๋Šฅ
  • ํŽŒ์›จ์–ด ์ˆ˜์ •: BIOS๋ฅผ IDA-Pro๋กœ ์—ญ๊ณตํ•™ โ†’ ์‹คํ–‰ ๊ฒฝ๋กœ ํŒจ์นญ
  • ์†Œํ”„ํŠธ์›จ์–ด ๋กœ๋”๋กœ ํŽŒ์›จ์–ด ๋ฉ”๋ชจ๋ฆฌ ์นฉ์— ์“ฐ๊ธฐ (๋ฌผ๋ฆฌ ์ ‘๊ทผ ๋ถˆํ•„์š”)
  • ๋ผ์šฐํ„ฐยท์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ํŽŒ์›จ์–ด ์—…๊ทธ๋ ˆ์ด๋“œ ๊ธฐ๋Šฅ ์•…์šฉ
  • x86 ํฌํŠธ ์ ‘๊ทผ: in/out ๋ช…๋ น์œผ๋กœ ํ•˜๋“œ์›จ์–ด ์ปจํŠธ๋กค๋Ÿฌ ์ง์ ‘ ์ œ์–ด

9์žฅ. ์ปค๋ฒ„ํŠธ ์ฑ„๋„ (Covert Channels)

ํƒ์ง€ ์—†์ด ์™ธ๋ถ€์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•.

ํ•ต์‹ฌ ์›์น™: "์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ ์†์— ์ˆจ์–ด๋ผ"

ํ”„๋กœํ† ์ฝœ ์œ„์žฅ:

  • DNS ํฌํŠธ 53 (UDP/TCP): ๋ฐฉํ™”๋ฒฝ๋„ ํ—ˆ์šฉ, ํŒจํ‚ท์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
  • HTTP ํฌํŠธ 80 / HTTPS ํฌํŠธ 443 (์•”ํ˜ธํ™”): IDS ๋ถ„์„ ํšŒํ”ผ
  • ์ฃผ์˜: ์•”ํ˜ธํ™”๋œ ๊ณ ์—”ํŠธ๋กœํ”ผ ๋ฐ์ดํ„ฐ๋Š” ์˜คํžˆ๋ ค ๋ˆˆ์— ๋Œ ์ˆ˜ ์žˆ์Œ

ํŠธ๋ž˜ํ”ฝ ํŒจํ„ด:

  • ์ƒˆ๋ฒฝ 3์‹œ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์ŠคํŒŒ์ดํฌ = ์ฆ‰๊ฐ ์˜์‹ฌ
  • ๋ณด์ˆ˜์  ํŠธ๋ž˜ํ”ฝ ์œ ์ง€ + ํŽ˜์ด๋กœ๋“œ ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ/์•”ํ˜ธํ™”

์ปค๋„ ๋ชจ๋“œ ๋„คํŠธ์›Œํ‚น:

  • TDI (Transport Data Interface): ๊ธฐ์กด TCP/IP ์Šคํƒ ํ™œ์šฉ โ€” ์‰ฝ์ง€๋งŒ ๋ฐ์Šคํฌํƒ‘ ๋ฐฉํ™”๋ฒฝ์— ํƒ์ง€ ๊ฐ€๋Šฅ
  • NDIS: raw ํŒจํ‚ท ์ง์ ‘ ์ฝ๊ธฐยท์“ฐ๊ธฐ โ€” ๋ฐฉํ™”๋ฒฝ ์šฐํšŒ ๊ฐ€๋Šฅํ•˜๋‚˜ ์ž์ฒด TCP/IP ์Šคํƒ ๊ตฌํ˜„ ํ•„์š”
  • Raw ํŒจํ‚ท ์กฐ์ž‘: MAC ์ฃผ์†Œยท์†Œ์Šค IPยท์†Œ์Šค ํฌํŠธ ์™„์ „ ์ œ์–ด ๊ฐ€๋Šฅ

10์žฅ. ๋ฃจํŠธํ‚ท ํƒ์ง€

ํƒ์ง€๋Š” OS์—๊ฒŒ "๊ฑฐ์ง“๋ง"์„ ์žก์•„๋‚ด๋Š” ๊ฒƒ โ€” ์ง„์‹ค์„ API ์—†์ด ์ง์ ‘ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

์กด์žฌ ํƒ์ง€ (Presence Detection):

  • SSDT ๋ณ€์กฐ ์—ฌ๋ถ€ ํ™•์ธ (์ฒดํฌ์„ฌ, ํฌ์ธํ„ฐ ๋น„๊ต)
  • ๋“œ๋ผ์ด๋ฒ„ ๋ชฉ๋ก๊ณผ ์‹ค์ œ ๋กœ๋“œ๋œ ๋ชจ๋“ˆ ๋น„๊ต
  • ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ API vs. ํŒŒ์ผ ์ง์ ‘ ํŒŒ์‹ฑ ๋น„๊ต (RootkitRevealer ๋ฐฉ์‹)

ํ–‰๋™ ํƒ์ง€ (Behavior Detection):

  • RootkitRevealer (Mark Russinovich & Bryce Cogswell, Sysinternals): ๋ ˆ์ง€์ŠคํŠธ๋ฆฌยทํŒŒ์ผ์‹œ์Šคํ…œ์„ API ์—†์ด ์ง์ ‘ ํŒŒ์‹ฑ โ†’ API ๊ฒฐ๊ณผ์™€ ๋น„๊ตํ•ด ๋ถˆ์ผ์น˜ ํƒ์ง€
  • SwapContext ํ›„ํ‚น: ์ปค๋„ ์Šค์ผ€์ค„๋Ÿฌ ์ปจํ…์ŠคํŠธ ์Šค์™‘ ์‹œ EPROCESS ๋ฆฌ์ŠคํŠธ ์—ฐ๊ฒฐ ์—ฌ๋ถ€ ๊ฒ€์ฆ โ†’ DKOM์œผ๋กœ ์ˆจ๊ฒจ์ง„ ํ”„๋กœ์„ธ์Šค๋„ ํƒ์ง€ ๊ฐ€๋Šฅ
  • "์Šค์ผ€์ค„๋Ÿฌ๋Š” ์ˆจ๊ฒจ์ง„ ์Šค๋ ˆ๋“œ๋„ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค" โ€” ์ด๊ฒƒ์ด DKOM ์šฐํšŒ์˜ ์•ฝ์ 

๊ฒ€์ถœ์˜ ํ•œ๊ณ„:

  • ํƒ์ง€ ์ฝ”๋“œ๊ฐ€ ๊ณต๊ฐœ๋˜๋Š” ์ˆœ๊ฐ„ ๊ณต๊ฒฉ์ž๊ฐ€ ์šฐํšŒ๋ฒ•์„ ๊ฐœ๋ฐœ โ€” ๋์—†๋Š” ๊ตฐ๋น„ ๊ฒฝ์Ÿ
  • ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ ๋ฃจํŠธํ‚ท vs. ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ ํƒ์ง€ ๋„๊ตฌ(Copilot, University of Maryland) โ€” ์ตœ์ „์„ 

์‹ค์ „ ์ธ์‚ฌ์ดํŠธ

๋ฐฉ์–ด์ž์—๊ฒŒ ๋ถˆ๋ฆฌํ•œ ์ˆ˜ํ•™์  ๊ตฌ์กฐ

"๊ณต๊ฒฉ์ž๋Š” ๋ฐฉ์–ด์ž๊ฐ€ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•œ ํ•œ ๊ฐ€์ง€๋งŒ ์ฐพ์œผ๋ฉด ๋œ๋‹ค. ๋ฐฉ์–ด์ž๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค."

๋ฃจํŠธํ‚ท ์„ค๊ณ„ ์›์น™ (๊ณต๊ฒฉ์ž ์‹œ์ )

  1. ์ตœ์†Œ ๋ฐœ์ž๊ตญ: ํŒŒ์ผ์‹œ์Šคํ…œ ๋ฏธ์‚ฌ์šฉ โ†’ ํƒ์ง€ ์ตœ์†Œํ™”
  2. ๊ณ ์œ  ๊ตฌ์กฐ: ์•Œ๋ ค์ง„ ํŒจํ„ด ํšŒํ”ผ โ€” ๋ฐ”์ด๋Ÿฌ์Šค ์Šค์บ๋„ˆ๋Š” ์•Œ๋ ค์ง„ ๊ฒƒ๋งŒ ์ฐพ๋Š”๋‹ค
  3. ์Šคํ…”์Šค ์šฐ์„ : ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋Šฅ ์ œ๊ฑฐ (Back Orifice์ฒ˜๋Ÿผ CD ํŠธ๋ ˆ์ด ์—ฌ๋Š” ๊ธฐ๋Šฅ์€ ์œ„ํ—˜)
  4. ๋ถ€ํŒ… ์ƒ์กด: ์žฌ๋ถ€ํŒ… ํ›„์—๋„ ์ง€์† โ€” ๊ฐ€์žฅ ๊นŒ๋‹ค๋กœ์šด ์š”๊ตฌ์‚ฌํ•ญ

๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์˜ ๋ฏธ๋ž˜

์ €์ž ์˜ˆ์ธก (2005๋…„ ๊ธฐ์ค€): "ํ–ฅํ›„ ์ˆ˜์‹ญ ๋…„ ์•ˆ์— ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋Š” ์‚ฌ๋งํ•  ๊ฒƒ โ€” ํƒ€์ž… ์•ˆ์ „ ์–ธ์–ดยท์ปดํŒŒ์ผ๋ŸฌยทVM ๊ธฐ์ˆ ์ด ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ. ๊ทธ๋Ÿฌ๋‚˜ ๋ฃจํŠธํ‚ท์€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ํ•ญ์ƒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์„ ๊ฐ์‹œํ•˜๊ณ  ์‹ถ์–ดํ•œ๋‹ค."



์ €์ž

  • Greg Hoglund: Windows NT ๋ฃจํŠธํ‚ท ์ตœ์ดˆ ๋ฌธ์„œํ™”, rootkit.com ์ฐฝ๋ฆฝ, Black Hat ์—ฐ์‚ฌ, HBGary CEO
  • James Butler: VICE (๋ฃจํŠธํ‚ท ํƒ์ง€ยทํฌ๋ Œ์‹ ์‹œ์Šคํ…œ) ๊ฐœ๋ฐœ์ž, ์ „ NSA ์ปดํ“จํ„ฐ ๊ณผํ•™์ž, ๅ‰ Enterasys ๋ณด์•ˆ ์ˆ˜์„ ์—”์ง€๋‹ˆ์–ด