TCP IP Level - Leo-Mun/UROP_SDN GitHub Wiki
μ½κ² ν¨ν·μ μΆλ° IP μ£Όμλ₯Ό λ³κ²½ν μ μλ€. Cλ₯Ό μ¬μ©ν μμμ μμΌνλ‘κ·Έλλ°μ μ¬μ©νλ©΄ μ½κ² λ³κ²½ ν μ μλ€. ( ex. int fd = socket (PF_INET, SOCK_RAW, IPPROTO_TCP); λꡬλ μ½κ² ν¨ν·μ μμ€(μ‘μ μ) IPμ£Όμλ₯Ό λ³ν ν μ μλ€.
- 곡격λ²
- DoS(Denial of Service)
- SYN flooding
- DDoS(Distributed Denial of Service)
- Smurf(already covered)
- λ§μ½ νΈλν½μ΄ λ§μ μμ€ IPλ₯Ό μ°¨λ¨νλ€λ©΄, μ°λ¦° μ μ μ¬μ©μμ μ κ·Όμ λ§μμΌ νλ€.
- 곡격μ μμ
- λ§μ½ μμ€ IPμ£Όμκ° κ°μ§λΌλ©΄, μ€μ μμ€λ₯Ό μ΄λ»κ² μΆμ ν΄μΌ νλκ°?
- νΉν 곡격νκΈ° μ¬μ΄ μλΉμ€λ€
- RPC (μ격 νλ‘μμ νΈμΆ μλΉμ€)
- RμλΉμ€ λ¬Άμ(rlogin, rsh, etc)
- IPμ£Όμ μΈμ¦μ μ¬μ©νλ λͺ¨λ μλΉμ€
- DoS(Denial of Service)
- λμμ±
- μΆμ
ꡬ νν°λ§
- ν¨ν· νν°λ§μ κΈ°λ°μ λκ³ μλ€.
- μ ꡬ νν°λ§ : μμ€ μ£Όμκ° λ΄λΆ λ€νΈμν¬μΈλ° μΈλΆ λ€νΈμν¬μμ μ€λ ν¨ν·μ λ§λλ€.
- μΆκ΅¬ νν°λ§ : λ΄λΆ λ€νΈμν¬μ μ‘΄μ¬νμ§ μλ μμ€ μ£Όμλ₯Ό κ°λ λ΄λΆ λ€νΈμν¬ ν¨ν·μ λ§λλ€.
- RFC 2827
- μΆμ
ꡬ νν°λ§
μΈμ νμ΄μ¬νΉμ "μΏ ν€ νμ΄μ¬νΉ" μ΄λΌκ³ λ νλ©° μ»΄ν¨ν° μμ€ν μμ μ 보 λλ μλΉμ€μ λν λ¬΄λ¨ μ‘μΈμ€λ₯Ό μ»κΈ° μν΄ "μΈμ ν€" λΌκ³ λ νλ μ ν¨ν μ»΄ν¨ν° μΈμ μ μ μ©νλ κ²μ λλ€. νΉν μ΄κ²μ μ격 μλ²μ μ¬μ©μλ₯Ό μΈμ¦νλ λ° μ¬μ©λλ μΏ ν€μ μ λλ₯Ό λνλ΄κΈ° μν΄ μ¬μ©λ©λλ€. λ§μ μΉμ¬μ΄νΈμμ μΈμ μ μ μ§νλ λ° μ¬μ©λλ HTTP μΏ ν€ λ μ€κ° μ»΄ν¨ν°λ₯Ό μ¬μ©νλ 곡격μλ ν¬μμμ μ»΄ν¨ν°μ μ μ₯λ μΏ ν€μ λν μ‘μΈμ€λ‘ μ½κ² λλ λΉν μ μμΌλ―λ‘ μΉ κ°λ°μ μ νΉν κ΄λ ¨μ΄ μμ΅λλ€ ( HTTP μΏ ν€ λλ ).
-
Session IDλ μ΄λμ μ‘΄μ¬νλκ° ?
- Session IDλ μ°λ¦¬κ° νν λ£λ μΏ ν€(cook-ie)λΌλ κ³³μ μ μ₯λλ κ²μ΄ μΌλ°μ μ΄λ€. κ·Έλ¬λ κ°λμ μΉ λΈλΌμ°μ μ£Όμμ°½ URLμ΄λ HTML νμ΄μ§ νΌ μμ€ μμ hidden νλμ ν¬ν¨λμ΄ λλ¬λκΈ°λ νλ€.
- μΉ λΈλΌμ°μ μ£Όμμ°½μ URL
- μΉ νμ΄μ§ νΌ μμ€ μμ Hidden νλμ ν¬ν¨λμ΄ λλ¬λκΈ°λ νλ€.
-
Session ID μ μ·¨μ½μ± ?
- κ°λ ₯νμ§ λͺ»ν μκ³ λ¦¬μ¦ : Crackingμ΄λ Brute-force 곡격μ μνμ΄ μλ€.
- κΈΈμ΄κ° μ§§μ Session ID : κ°λ ₯ν μνΈ μκ³ λ¦¬μ¦μ΄λΌλ κΈΈμ΄ μ§§μΌλ©΄ 보μμ μ·¨μ½νλ€
- κ³μ μ κΈ κΈ°λ₯ λ―ΈλΉ : μ΄ κΈ°λ₯μ΄ μμμ Brute-force 곡격μ μ·¨μ½νλ€
- 무ν λ§λ£μ Session ID : μ¬μ©μμ λ‘κ·Έ μμ μ΄νμλ μλ²μΈ‘μμ ν΄λΉ Session IDκ°μ νκΈ°νμ§ μκ³ λ¬΄νμ μ ν¨ μΈμ νλ€λ©΄ Cookie Sniffingμ΄λ νλ½μ μλ²μ λ‘κ·Έ μ·¨λμ ν΅ν΄ Session ID κ³΅κ²©μ΄ κ°λ₯νλ€.
- νλ¬ΈμΌλ‘ μ λ¬λλ Session ID : μΏ κΈ° μ λ¬ λ°©μμ΄ λΉμνΈν λ°©μμΌ κ²½μ° Sniffingμ ν΅νμ¬ ν΄λΉ κ°μ΄ λ ΈμΆλμ΄ κ³΅κ²© λ°μ μ μλ€.
-
Session ID 곡격μ ν
- μ§μ μ μΈ null Sniffingμ ν΅ν Session ID λμ©
- κ°μ μ°ν 곡격μ ν΅ν Session ID λμ©
- Brute-force guessingμ ν΅ν Session ID λμ©
-
λμ λ°©μ
- Session ID μμ± λ²μκ°μ μ¬μ©μ μμ λλΉνμ¬ μΆ©λΆν ν° κ°μΌλ‘ μ€μ νλ€.
- Session Timeout κΈ°λ₯κ³Ό Session ID μ¬μμ± κΈ°λ₯μ μ¬μ©νλ€. μΌμ μκ° λμ νλμ΄ μλ μ¬μ©μλ μλ‘μ΄ Session IDλ‘ μ¬λ‘κ·ΈμΈνλλ‘ νκ³ , μ¬μ©μ λ‘κ·Έ μμ μμλ Session ID κ°μ νκΈ°νλ€.
- 무μμ μΆμΈ‘ λμ (Brute-force Guessing)μ λλΉνμ¬ μΌμ νμ μ΄μμ μΈμ¦ μ€ν¨μμλ μ¬μ©μ μ κΈ κΈ°λ₯μ ꡬννλ€.
- null λ΄μ© μμ Session IDμ κΈ°ν λ³μκ° μ체λ₯Ό μνΈννλ€.
- μΉ μλΉμ€ μ체μ μ€μμ±μ λ°λΌ nullκ° μ λ¬λλ λ°©μμ SSLλ‘ κ΅¬νν¨μΌλ‘μ¨ μ€λν 곡격μ λμν μλ μλ€.
- μΉ μλΉμ€ μμ 곡격μκ° HTML 곡격 μ½λ μ½μ μ΄ κ°λ₯ν νμ΄μ§κ° μλμ§ μ κ²νλ€. μ§μ μ μΈ κ³΅κ²© μ½λ μ½μ μ μ°¨λ¨ν μ μλλ‘ νΉμ λ¬Έμ λ° μ€ν¬λ¦½νΈ μ½λλ₯Ό νν°λ§νμ¬μΌ νλ€. (ν¬λ‘μ€-μ¬μ΄νΈ-μ€ν¬λ¦½νΈ)
μΈκΈ°μλ λ°©λ²μ μμ€ λΌμ°ν
IP ν¨ν·μ μ¬μ©νλ κ²μ
λλ€. μ΄λ κ² νλ©΄ IP ν¨ν·μ΄ Bμ μμ€ν
μ ν΅κ³Όνλλ‘ νμ¬ λ€νΈμν¬μ B μ§μ μμλ 곡격μκ° Aμ C κ°μ λνμ μ°Έμ¬ν μ μμ΅λλ€.
μμ€ λΌμ°ν
μ΄ κΊΌμ Έμλ κ²½μ° κ³΅κ²©μλ "μ¨μ (blind)"νμ΄μ¬νΉμ μ¬μ©νμ¬ λ μμ€ν
μ μλ΅μ μΆμΈ‘ν μ μμ΅λλ€. λ°λΌμ 곡격μλ λͺ
λ Ήμ λ³΄λΌ μλ μμ§λ§ μλ΅μ λ³Ό μλ μμ΅λλ€. κ·Έλ¬λ μΌλ°μ μΈ λͺ
λ Ήμ κ·Έλ¬Όμ μλ λ€λ₯Έ κ³³μμ μ‘μΈμ€ ν μμλ μνΈλ₯Ό μ€μ νλ κ²μ
λλ€.
곡격μλ μ€λν νλ‘κ·Έλ¨μ μ¬μ©νμ¬ Aμ C μ¬μ΄μ "μΈλΌμΈ"μνλ‘ λνλ₯Ό λ³Ό μλ μμ΅λλ€. μ΄κ²μ "μ€κ°μ (man-in-the-middle) 곡격"μ΄λΌκ³ ν©λλ€.
μΈμ λμ©μ μ μ§λ₯΄λ λ° μ¬μ©λλ λ€ κ°μ§ μ£Όμ λ°©λ²μ΄ μμ΅λλ€. μ΄κ²λ€μ:
- μΈμ κ³ μ : 곡격μκ° νΉμ μΈμ IDκ° ν¬ν¨λ λ§ν¬κ° ν¬ν¨ λ μ μ λ©μΌμ 보λ΄λ λ± μ¬μ©μμ μΈμ IDλ₯Ό μλ €μ§ κ²μΌλ‘ μ€μ ν©λλ€. 곡격μλ μ΄μ μ¬μ©μκ° λ‘κ·ΈμΈ ν λκΉμ§ κΈ°λ€λ €μΌν©λλ€.
- 곡격μκ° ν¨ν· μ€λνμ μ¬μ©νμ¬ μΈμ μΏ ν€λ₯Ό λμ©νκΈ° μν΄ λ λΉμ¬μ κ°μ λ€νΈμν¬ νΈλν½μ μ½λ μΈμ μΈ‘ μ°¨λ¨. λ§μ μΉ μ¬μ΄νΈλ λ‘κ·ΈμΈ νμ΄μ§μ SSL μνΈνλ₯Ό μ¬μ©νμ¬ κ³΅κ²©μκ° μνΈλ₯Ό λ³Ό μ μλλ‘ νμ§λ§ μΈμ¦μ΄ μλ£λλ©΄ λλ¨Έμ§ μ¬μ΄νΈλ μνΈνλ₯Ό μ¬μ©νμ§ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ€νΈμν¬ νΈλν½μ μ½μ μμλ 곡격μκ° μλ²μ μ μΆ λ λͺ¨λ λ°μ΄ν° λλ ν΄λΌμ΄μΈνΈκ° 보λ μΉ νμ΄μ§λ₯Ό κ°λ‘μ± μ μμ΅λλ€. μ΄ λ°μ΄ν°μλ μΈμ μΏ ν€κ° ν¬ν¨λμ΄ μκΈ° λλ¬Έμ μνΈ μμ²΄κ° μμλμ§ μμλ νΌν΄μλ₯Ό κ°μ₯ ν μ μμ΅λλ€. 보μλμ§ μμ Wi-Fi ν«μ€νμ νΉν μ·¨μ½ν©λλ€. λ€νΈμν¬λ₯Ό 곡μ νλ μ¬λμ μΌλ°μ μΌλ‘ λ€λ₯Έ λ Έλμ μ‘μΈμ€ ν¬μΈνΈ κ°μ λλΆλΆμ μΉ νΈλν½μ μ½μ μ μμ΅λλ€.
- XSS : 곡격μκ° μ¬μ©μμ μ»΄ν¨ν°λ₯Ό νΈλ¦νμ¬ μλ²μ μν κ²μ²λΌ 보μ΄κΈ° λλ¬Έμ μ λ’°ν μμλ κ²μΌλ‘ κ°μ£Όλλ μ½λλ₯Ό μ€ννμ¬ κ³΅κ²©μκ° μΏ ν€ λ³΅μ¬λ³Έμ μ»κ±°λ λ€λ₯Έ μμ μ μν ν μμκ²ν©λλ€.
- 맬μ¨μ΄ λ° μ¬μ©μ λμμμ΄ μ€μΉλ νλ‘κ·Έλ¨μ λΈλΌμ°μ νμ΄μ¬νΉμ μ¬μ©νμ¬ μ¬μ©μμ μ§μμμ΄ λΈλΌμ°μ μ μΏ ν€ νμΌμ λμ© ν λ€μ μ¬μ©μμ μ§μμμ΄ (Android μ± μ€μΉμ κ°μ) μμ μ μν ν μ μμ΅λλ€. μ€μ μ‘μΈμ€ κΆνμ΄μλ 곡격μλ μλ₯Ό λ€μ΄ μ¬μ©μ μ»΄ν¨ν° λλ μλ²μ μ μ ν λΆλΆμ μλ νμΌμ΄λ λ©λͺ¨λ¦¬ λ΄μ©μ κ°μ Έ μμ μΈμ ν€λ₯Ό νμΉλ €κ³ μλν μ μμ΅λλ€.
- λΌμ°ν μ λ€νΈμν¬λ₯Ό ν΅ν΄ νΈλν½μ μ λ¬νλλ° νμν μ 보λ₯Ό μ 곡νλ€.
- 보μ μ·¨μ½μ μ λν κ°μ κ°ν
- λΌμ°ν νλ‘ν μ½μ λν λ€μν μν
- 곡격μλ λΌμ°ν ν μ΄λΈμ λ΄μ©μ λ³κ²½νκ±°λ μμμν¬ λͺ©μ μΌλ‘ λΌμ°ν°μ μμ‘°λ νλ‘ν μ½ ν¨ν·μ λ³΄λΌ μ μλ€.
(λΌμ°ν νλ‘ν μ½μ λν΄μ in Network νμ΄μ§μ μμΈν λ€λ£¨κ² λ€.)
- ν¬νΈ μ€μΊ(port scan)μ μ΄μ μ€μΈ μλ²μμ μ΄λ € μλ TCP/UDP ν¬νΈλ₯Ό κ²μνλ κ²μ μλ―Ένλ€.
- νμ± ν¬νΈλ₯Ό μ°Ύκ³ ν΄λΉ μλΉμ€μ μλ €μ§ μ·¨μ½μ μ μ μ©νκΈ° μν΄ νΈμ€νΈμ μλ² ν¬νΈ μ£Όμ λ²μλ‘ ν΄λΌμ΄μΈνΈ μμ²μ 보λ΄λ 곡격.
- μ£Ό 곡격 μ μ€λΉ λ¨κ³.
- μ£Όλ‘ ν¬νΈμ€μΊλ λΌλ λꡬλ₯Ό μ£Όλ‘ μ¬μ©. (NMAP, HPING3 ...)
TCP μ€μΊμ TCP μ²μ μ°κ²° μ μΌμ΄λλ 3-μ¨μ΄ νΈλμμ΄νΉμ νμ§νλ κΈ°λ²μ΄λ€. λ§μ½ νΈλμμ΄νΉμ΄ μ μμ μΌλ‘ μλ£λμλ€λ©΄, ν΄λΉ TCP ν¬νΈλ μ μμ μΌλ‘ μ΄λ € μλ κ²μΌλ‘ νλ¨ν μ μλ€. μλΉμ€ κ±°λΆ κ³΅κ²©μ λ§κΈ° μν΄, ν¬νΈ μ€μΊλλ νΈλμμ΄νΉ μ§ν μ°κ²°μ μ’ λ£νλ€.
μ΄ λ°©μμ μΌλ°μ μΈ μμΌ connect()λ₯Ό μ΄μ©νκΈ° λλ¬Έμ, Nmap λ±μ νλ‘κ·Έλ¨μμλ μ΄ λ°©μμ μ°κ²° μ€μΊ(connect scan)μΌλ‘ λΆλ₯Έλ€.
SYN μ€μΊμ TCP νΈλμμ΄νΉμ μμ ν μννμ§ μκ³ , μ²μ SYN ν¨ν·λ§μ λ°μ ν κ²μ¬λ₯Ό μλ£νλ λ°©μμ΄λ€. μ΄ λ°©μμ μ€μ TCP μ°κ²°μ΄ μΌμ΄λμ§ μκΈ° λλ¬Έμ 'half-open μ€μΊ"μΌλ‘ λΆλ₯΄κΈ°λ νλ€.
μ΄ λ°©μμ μ¬μ©νκΈ° μν΄μλ TCP μ€μΊκ³Ό κ°μ΄ connect() ν¨μλ₯Ό μ΄μ©ν μ μκ³ , ν¬νΈ μ€μΊλλ μ΄ μ€μΊ μμ μ μν΄ TCP ν¨ν·μ μ§μ μμ±νλ€.
UDP νλ‘ν μ½μ TCPμ λ€λ₯΄κ² νΈλμμ΄νΉ κ³Όμ μ΄ μ‘΄μ¬νμ§ μκ³ , λ°λΌμ μΌλ°μ μΌλ‘λ ν¬νΈκ° μ΄λ € μλ€κ³ νλλΌλ μλ²μμ μλ¬΄λ° μλ΅μ νμ§ μμ μλ μλ€. νμ§λ§, λ§μ μμ€ν μμλ λ³΄λΈ ν¨ν·μ λν μλ΅μ΄ μμ λ ICMP unreachable λ©μμ§λ₯Ό 보λΈλ€. λ§μ UDP μ€μΊλλ μ΄ λ©μμ§λ₯Ό νμ§νλ λ°©ν₯μΌλ‘ λμνλ€. μ΄ λ°©μμ μλ²μμ ICMP λ©μμ§λ₯Ό 보λ΄μ§ μλ κ²½μ° λ«ν μλ ν¬νΈλ₯Ό μ΄λ € μλ€κ³ νλ¨νλ κ²½μ°κ° μ‘΄μ¬νλ€.
λ€λ₯Έ λ°©μμΌλ‘λ κ° ν¬νΈμ λ°λΌμ κ·Έμ λμνλ νλ‘ν μ½ ν¨ν·μ μ μ‘νλ λ°©μμ΄λ€. μλ₯Ό λ€μ΄, DNS μλ²λ 53λ² ν¬νΈμμ λμνλ©°, UDP μ€μΊλλ ν΄λΉ ν¬νΈμ DNS μ 보 μμ² ν¨ν·μ λ³΄λΈ ν μλ΅μ λ°λ λ°©μμ΄λ€. μ΄λ¬ν λ°©μμ μ μλ €μ§ ν¬νΈμ λμ νλ‘ν μ½μ λν΄μλ§ μ¬μ©ν μ μλ€λ νκ³κ° μμ§λ§, ICMP λ©μμ§κ° μλ κ²½μ° νμ©ν μ μλ€.
ν¬νΈ μ€μ(port sweep)μ μμ€ν μμ λμνλ νΉμ νλ‘κ·Έλ¨μ νμ§νκΈ° μν΄ ν¬νΈλ₯Ό κ²μ¬νλ κ²μ μλ―Ένλ€. ν¬νΈ μ€μμ μμ€ν μ μ·¨μ½μ μ νμ§νκΈ° μν΄ μ¬μ©νκΈ°λ νλλ°, νΉμ ν¬νΈλ₯Ό μ¬μ©νλ νλ‘κ·Έλ¨μ μ·¨μ½μ μ΄ μλ€λ©΄ κ·Έ ν¬νΈκ° μ΄λ € μλ μλ²λ₯Ό μ°Ύμ 곡격νλ©΄ λκΈ° λλ¬Έμ΄λ€. κ°λ Ή, λ§μ΄ν¬λ‘μννΈ SQL μλ²μ μ·¨μ½μ μ μ΄μ©νλ μ»΄ν¨ν° μμ TCP 1433 ν¬νΈλ₯Ό κ²μ¬νλ€.