OWASP ZAPμ νμ©ν νλ‘ νΈμλ 보μ ν μ€νΈ μ’ ν© κ°μ΄λ. κΈλ‘λ² κ°λ°μλ€μ΄ μΉ μ·¨μ½μ μ μλ³νκ³ μννλλ‘ λμ΅λλ€.
νλ‘ νΈμλ OWASP ZAP: μΉ μ ν리μΌμ΄μ 보μ κ°ννκΈ°
μ€λλ μνΈ μ°κ²°λ λμ§νΈ νκ²½μμ μΉ μ ν리μΌμ΄μ μ 보μμ 무μλ³΄λ€ μ€μν©λλ€. κΈ°μ λ€μ΄ μ μΈκ³λ‘ νμ₯νκ³ μ¨λΌμΈ νλ«νΌμ ν¬κ² μμ‘΄ν¨μ λ°λΌ, μ¬μ©μ λ°μ΄ν°λ₯Ό 보νΈνκ³ μ ν리μΌμ΄μ 무결μ±μ μ μ§νλ κ²μ΄ κ·Έ μ΄λ λλ³΄λ€ μ€μν΄μ‘μ΅λλ€. νΉν νλ‘ νΈμλ 보μμ μ¬μ©μκ° μνΈμμ©νλ 첫 λ²μ§Έ λ°©μ΄μ μΌλ‘μ μ€μν μν μ ν©λλ€. OWASP(Open Web Application Security Project)μ ZAP(Zed Attack Proxy)λ μΉ μ ν리μΌμ΄μ μ 보μ μ·¨μ½μ μ μ°Ύλ λ° λ리 μΈμ λ°λ κ°λ ₯νκ³ λ¬΄λ£μΈ μ€ν μμ€ λꡬμ λλ€. μ΄ μ’ ν© κ°μ΄λμμλ νλ‘ νΈμλ κ°λ°μκ° OWASP ZAPμ ν¨κ³Όμ μΌλ‘ νμ©νμ¬ μ ν리μΌμ΄μ μ 보μ νμΈλ₯Ό κ°ννλ λ°©λ²μ μμΈν μ΄ν΄λ³΄κ² μ΅λλ€.
νλ‘ νΈμλ 보μ μ·¨μ½μ μ΄ν΄νκΈ°
ZAPμ μ΄ν΄λ³΄κΈ° μ μ νλ‘ νΈμλ μΉ μ ν리μΌμ΄μ μ μννλ μΌλ°μ μΈ λ³΄μ μνμ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. μ΄λ¬ν μ·¨μ½μ μ μ μμ μΈ νμμμ μν΄ μ¬μ©μ λ°μ΄ν°λ₯Ό νμ·¨νκ±°λ, μΉμ¬μ΄νΈλ₯Ό λ³μ‘°νκ±°λ, λ¬΄λ¨ μ κ·Ό κΆνμ μ»λ λ° μ μ©λ μ μμ΅λλ€. κ°μ₯ λ리 νΌμ§ νλ‘ νΈμλ μ·¨μ½μ μ λ€μκ³Ό κ°μ΅λλ€:
ν¬λ‘μ€ μ¬μ΄νΈ μ€ν¬λ¦½ν (XSS)
XSS 곡격μ 곡격μκ° λ€λ₯Έ μ¬μ©μκ° λ³΄λ μΉ νμ΄μ§μ μ μ± μ€ν¬λ¦½νΈλ₯Ό μ£Όμ ν λ λ°μν©λλ€. μ΄λ μΈμ νμ΄μ¬νΉ, μ격 μ¦λͺ λμ©, μ¬μ§μ΄ μ¬μ©μλ₯Ό μ μ± μΉμ¬μ΄νΈλ‘ 리λλ μ νλ κ²°κ³Όλ‘ μ΄μ΄μ§ μ μμ΅λλ€. νλ‘ νΈμλ μ ν리μΌμ΄μ μ μ¬μ©μ λΈλΌμ°μ λ΄μμ μ½λλ₯Ό μ€ννκΈ° λλ¬Έμ νΉν μ·¨μ½ν©λλ€.
ν¬λ‘μ€ μ¬μ΄νΈ μμ² μμ‘° (CSRF)
CSRF 곡격μ μ¬μ©μκ° νμ¬ μΈμ¦λ μΉ μ ν리μΌμ΄μ μμ μμΉ μλ μμ μ μ€ννλλ‘ μμ΄λ κ²μ λλ€. μλ₯Ό λ€μ΄, 곡격μλ μΈμ¦λ μ¬μ©μκ° ν΄λ¦νμ λ μ¬μ©μμ λμ μμ΄ μνΈ λ³κ²½μ΄λ ꡬ맀μ κ°μ μμ μ μννλ μμ²μ λΈλΌμ°μ κ° λ³΄λ΄λλ‘ νλ λ§ν¬λ₯Ό λ§λ€ μ μμ΅λλ€.
μμ νμ§ μμ μ§μ κ°μ²΄ μ°Έμ‘° (IDOR)
IDOR μ·¨μ½μ μ μ ν리μΌμ΄μ μ΄ νμΌμ΄λ λ°μ΄ν°λ² μ΄μ€ λ μ½λμ κ°μ λ΄λΆ ꡬν κ°μ²΄μ λν μ°Έμ‘°λ₯Ό μ λ¬νμ¬ μ§μ μ μΈ μ κ·Όμ μ 곡ν λ λ°μν©λλ€. μ΄λ₯Ό ν΅ν΄ 곡격μλ κΆνμ΄ μλ λ°μ΄ν°μ μ κ·Όνκ±°λ μμ ν μ μμ΅λλ€.
λ―Όκ°ν λ°μ΄ν° λ ΈμΆ
μ΄λ μ μ©μΉ΄λ μ 보, κ°μΈ μλ³ μ 보(PII), API ν€μ κ°μ λ―Όκ°ν μ 보μ λΆμμ ν μ²λ¦¬ λλ μ μ‘μ ν¬ν¨ν©λλ€. μ΄λ μνΈνλμ§ μμ ν΅μ μ±λ(μ: HTTPS λμ HTTP μ¬μ©), μμ νμ§ μμ μ μ₯μ λλ ν΄λΌμ΄μΈνΈ μΈ‘ μ½λμμ λ―Όκ°ν λ°μ΄ν°λ₯Ό λ ΈμΆν¨μΌλ‘μ¨ λ°μν μ μμ΅λλ€.
μ·¨μ½ν μΈμ¦ λ° μΈμ κ΄λ¦¬
μ¬μ©μ μΈμ¦ λ°©μκ³Ό μΈμ κ΄λ¦¬ λ°©μμ μ½μ μ λ¬΄λ¨ μ κ·ΌμΌλ‘ μ΄μ΄μ§ μ μμ΅λλ€. μ¬κΈ°μλ μμΈ‘ κ°λ₯ν μΈμ ID, λΆμ μ ν λ‘κ·Έμμ μ²λ¦¬ λλ λΆμΆ©λΆν μ격 μ¦λͺ 보νΈκ° ν¬ν¨λ©λλ€.
νλ‘ νΈμλ 보μμ λλ°μ, OWASP ZAP μκ°
OWASP ZAPμ μ¬μ©νκΈ° μ¬μ°λ©΄μλ ν¬κ΄μ μΈ λ³΄μ μ€μΊλλ‘ μ€κ³λμμ΅λλ€. μ΄λ λΈλΌμ°μ μ μΉ μ ν리μΌμ΄μ μ¬μ΄μ νΈλν½μ κ°λ‘μ±λ "μ€κ°μ" νλ‘μ μν μ νμ¬ μμ²κ³Ό μλ΅μ κ²μ¬νκ³ μ‘°μν μ μκ² ν΄μ€λλ€. ZAPμ μλ λ° μλ 보μ ν μ€νΈ λͺ¨λμ λ§μΆ°μ§ λ€μν κΈ°λ₯μ μ 곡ν©λλ€.
OWASP ZAPμ μ£Όμ κΈ°λ₯
- μλ μ€μΊλ: ZAPμ μΉ μ ν리μΌμ΄μ μ μλμΌλ‘ ν¬λ‘€λ§νκ³ κ³΅κ²©νμ¬ μΌλ°μ μΈ μ·¨μ½μ μ μλ³ν μ μμ΅λλ€.
- νλ‘μ κΈ°λ₯: λΈλΌμ°μ μ μΉ μλ² κ°μ νλ₯΄λ λͺ¨λ νΈλν½μ κ°λ‘μ±κ³ νμνμ¬ μλ κ²μ¬λ₯Ό κ°λ₯νκ² ν©λλ€.
- νΌμ (Fuzzer): μ ν리μΌμ΄μ μ λ€μμ μμ λ μμ²μ λ³΄λ΄ μ μ¬μ μΈ μ·¨μ½μ μ μλ³ν μ μμ΅λλ€.
- μ€νμ΄λ(Spider): μΉ μ ν리μΌμ΄μ μμ μ¬μ© κ°λ₯ν 리μμ€λ₯Ό λ°κ²¬ν©λλ€.
- μ‘ν°λΈ μ€μΊλ(Active Scanner): μ‘°μλ μμ²μ λ³΄λ΄ κ΄λ²μν μ·¨μ½μ μ λν΄ μ ν리μΌμ΄μ μ νμν©λλ€.
- νμ₯μ±: ZAPμ κΈ°λ₯μ νμ₯νλ μ λμ¨μ μ§μνμ¬ λ€λ₯Έ λꡬ λ° μ¬μ©μ μ§μ μ€ν¬λ¦½νΈμμ ν΅ν©μ νμ©ν©λλ€.
- API μ§μ: νλ‘κ·Έλλ° λ°©μμ μ μ΄ λ° CI/CD νμ΄νλΌμΈμΌλ‘μ ν΅ν©μ κ°λ₯νκ² ν©λλ€.
νλ‘ νΈμλ ν μ€νΈλ₯Ό μν OWASP ZAP μμνκΈ°
νλ‘ νΈμλ 보μ ν μ€νΈμ ZAPμ μ¬μ©νλ €λ©΄ λ€μ μΌλ°μ μΈ λ¨κ³λ₯Ό λ°λ₯΄μμμ€:
1. μ€μΉ
곡μ OWASP ZAP μΉμ¬μ΄νΈμμ μ΄μ 체μ μ λ§λ μ€μΉ νλ‘κ·Έλ¨μ λ€μ΄λ‘λν©λλ€. μ€μΉ κ³Όμ μ κ°λ¨ν©λλ€.
2. λΈλΌμ°μ ꡬμ±
ZAPμ΄ λΈλΌμ°μ νΈλν½μ κ°λ‘μ±λ €λ©΄ ZAPμ νλ‘μλ‘ μ¬μ©νλλ‘ λΈλΌμ°μ λ₯Ό ꡬμ±ν΄μΌ ν©λλ€. κΈ°λ³Έμ μΌλ‘ ZAPμ localhost:8080
μμ μμ λκΈ°ν©λλ€. λΈλΌμ°μ μ λ€νΈμν¬ μ€μ μ κ·Έμ λ§κ² μ‘°μ ν΄μΌ ν©λλ€. λλΆλΆμ μ΅μ λΈλΌμ°μ μμλ μ΄ μ€μ μ λ€νΈμν¬ λλ κ³ κΈ μ€μ μμ μ°Ύμ μ μμ΅λλ€.
μ μ νλ‘μ μ€μ μμ (κ°λ ):
- νλ‘μ μ ν: HTTP
- νλ‘μ μλ²: 127.0.0.1 (λλ localhost)
- ν¬νΈ: 8080
- νλ‘μ μ¬μ© μ ν¨: localhost, 127.0.0.1 (λ³΄ν΅ μ¬μ ꡬμ±λ¨)
3. ZAPμΌλ‘ μ ν리μΌμ΄μ νμνκΈ°
λΈλΌμ°μ κ° κ΅¬μ±λλ©΄ μΉ μ ν리μΌμ΄μ μΌλ‘ μ΄λν©λλ€. ZAPμ΄ λͺ¨λ μμ²κ³Ό μλ΅μ μΊ‘μ²νκΈ° μμν©λλ€. μ΄ μμ²λ€μ "History" νμμ λ³Ό μ μμ΅λλ€.
μ΄κΈ° νμ λ¨κ³:
- μ‘ν°λΈ μ€μΊ: "Sites" νΈλ¦¬μμ μ ν리μΌμ΄μ URLμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμΌλ‘ ν΄λ¦νκ³ "Attack" > "Active Scan"μ μ νν©λλ€. κ·Έλ¬λ©΄ ZAPμ΄ μ²΄κ³μ μΌλ‘ μ ν리μΌμ΄μ μ μ·¨μ½μ μ νμν©λλ€.
- μ€νμ΄λλ§: "Spider" κΈ°λ₯μ μ¬μ©νμ¬ μ ν리μΌμ΄μ λ΄μ λͺ¨λ νμ΄μ§μ 리μμ€λ₯Ό λ°κ²¬ν©λλ€.
- μλ νμ: ZAPμ΄ μ€νλλ λμ μ ν리μΌμ΄μ μ μλμΌλ‘ λλ¬λ΄ λλ€. μ΄λ₯Ό ν΅ν΄ λ€μν κΈ°λ₯κ³Ό μνΈμμ©νκ³ μ€μκ°μΌλ‘ νΈλν½μ κ΄μ°°ν μ μμ΅λλ€.
νΉμ νλ‘ νΈμλ μ·¨μ½μ μ ZAP νμ©νκΈ°
ZAPμ κ°μ μ κ΄λ²μν μ·¨μ½μ μ νμ§νλ λ₯λ ₯μ μμ΅λλ€. μΌλ°μ μΈ νλ‘ νΈμλ λ¬Έμ λ₯Ό λͺ©νλ‘ ZAPμ μ¬μ©νλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€:
XSS μ·¨μ½μ νμ§
ZAPμ μ‘ν°λΈ μ€μΊλλ XSS κ²°ν¨μ μλ³νλ λ° λ§€μ° ν¨κ³Όμ μ λλ€. λ€μν XSS νμ΄λ‘λλ₯Ό μ λ ₯ νλ, URL λ§€κ°λ³μ λ° ν€λμ μ£Όμ νμ¬ μ ν리μΌμ΄μ μ΄ μ΄λ₯Ό μ΄κ· μ²λ¦¬νμ§ μκ³ λ°μ¬νλμ§ νμΈν©λλ€. XSSμ κ΄λ ¨λ μλ¦Όμ "Alerts" νμ μ£Όμ κΉκ² μ΄ν΄λ³΄μμμ€.
ZAPμ μ΄μ©ν XSS ν μ€νΈ ν:
- μ λ ₯ νλ: λͺ¨λ μμ, κ²μμ°½, λκΈ μΉμ λ° μ¬μ©μκ° λ°μ΄ν°λ₯Ό μ λ ₯ν μ μλ λ€λ₯Έ λͺ¨λ μμμ ν μ€νΈν΄μΌ ν©λλ€.
- URL λ§€κ°λ³μ: 보μ΄λ μ λ ₯ νλκ° μλλΌλ URL λ§€κ°λ³μμμ λ°μ¬λ μ λ ₯μ ν μ€νΈν©λλ€.
- ν€λ: ZAPμ HTTP ν€λμ μ·¨μ½μ λ ν μ€νΈν μ μμ΅λλ€.
- νΌμ : ν¬κ΄μ μΈ XSS νμ΄λ‘λ λͺ©λ‘κ³Ό ν¨κ» ZAPμ νΌμ λ₯Ό μ¬μ©νμ¬ μ λ ₯ λ§€κ°λ³μλ₯Ό 곡격μ μΌλ‘ ν μ€νΈν©λλ€.
CSRF μ·¨μ½μ μλ³
ZAPμ μλ μ€μΊλκ° λλλ‘ λλ½λ CSRF ν ν°μ μλ³ν μ μμ§λ§, μλ κ²μ¦μ΄ μ’ μ’ νμν©λλ€. μνλ₯Ό λ³κ²½νλ μμ (μ: λ°μ΄ν° μ μΆ, λ³κ²½)μ μννλ μμμ μ°Ύκ³ μν°-CSRF ν ν°μ΄ ν¬ν¨λμ΄ μλμ§ νμΈνμμμ€. ZAPμ "Request Editor"λ₯Ό μ¬μ©νμ¬ μ΄λ¬ν ν ν°μ μ κ±°νκ±°λ λ³κ²½νμ¬ μ ν리μΌμ΄μ μ 볡μλ ₯μ ν μ€νΈν μ μμ΅λλ€.
μλ CSRF ν μ€νΈ μ κ·Ό λ°©μ:
- λ―Όκ°ν μμ μ μννλ μμ²μ κ°λ‘μ±λλ€.
- μμ²μμ μν°-CSRF ν ν°(μ’ μ’ μ¨κ²¨μ§ μμ νλλ ν€λμ μμ)μ κ²μ¬ν©λλ€.
- ν ν°μ΄ μ‘΄μ¬νλ©΄ ν ν°μ μ κ±°νκ±°λ λ³κ²½ν ν μμ²μ λ€μ 보λ λλ€.
- μ ν¨ν ν ν° μμ΄λ μμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λλμ§ κ΄μ°°ν©λλ€.
λ―Όκ°ν λ°μ΄ν° λ ΈμΆ μ°ΎκΈ°
ZAPμ λ―Όκ°ν λ°μ΄ν°κ° λ ΈμΆλ μ μλ κ²½μ°λ₯Ό μλ³νλ λ° λμμ΄ λ μ μμ΅λλ€. μ¬κΈ°μλ λ―Όκ°ν μ λ³΄κ° HTTPS λμ HTTPλ₯Ό ν΅ν΄ μ μ‘λλμ§, λλ ν΄λΌμ΄μΈνΈ μΈ‘ JavaScript μ½λλ μ€λ₯ λ©μμ§μ μ‘΄μ¬νλμ§ νμΈνλ κ²μ΄ ν¬ν¨λ©λλ€.
ZAPμμ μ°ΎμμΌ ν κ²:
- HTTP νΈλν½: λͺ¨λ ν΅μ μ λͺ¨λν°λ§ν©λλ€. HTTPλ₯Ό ν΅ν λ―Όκ°ν λ°μ΄ν° μ μ‘μ μ¬κ°ν μ·¨μ½μ μ λλ€.
- JavaScript λΆμ: ZAPμ΄ JavaScript μ½λλ₯Ό μ μ μΌλ‘ λΆμνμ§λ μμ§λ§, μ ν리μΌμ΄μ μ μν΄ λ‘λλ JavaScript νμΌμ μλμΌλ‘ κ²μ¬νμ¬ νλμ½λ©λ μ격 μ¦λͺ μ΄λ λ―Όκ°ν μ 보λ₯Ό μ°Ύμ μ μμ΅λλ€.
- μλ΅ λ΄μ©: μλ΅ λ΄μ©μ κ²ν νμ¬ λΆμ£Όμνκ² μ μΆλ λ―Όκ°ν λ°μ΄ν°κ° μλμ§ νμΈν©λλ€.
μΈμ¦ λ° μΈμ κ΄λ¦¬ ν μ€νΈ
ZAPμ μΈμ¦ λ° μΈμ κ΄λ¦¬ λ©μ»€λμ¦μ κ²¬κ³ μ±μ ν μ€νΈνλ λ° μ¬μ©λ μ μμ΅λλ€. μ¬κΈ°μλ μΈμ ID μΆμΈ‘, λ‘κ·Έμμ κΈ°λ₯ ν μ€νΈ, λ‘κ·ΈμΈ μμμ λν λ¬΄μ°¨λ³ λμ 곡격 μ·¨μ½μ νμΈμ΄ ν¬ν¨λ©λλ€.
μΈμ κ΄λ¦¬ νμΈ μ¬ν:
- μΈμ λ§λ£: λ‘κ·Έμμ ν λ€λ‘ κ°κΈ° λ²νΌμ μ¬μ©νκ±°λ μ΄μ μ μ¬μ©λ μΈμ ν ν°μ λ€μ μ μΆνμ¬ μΈμ μ΄ λ¬΄ν¨νλμλμ§ νμΈν©λλ€.
- μΈμ ID μμΈ‘ κ°λ₯μ±: μλμΌλ‘ ν μ€νΈνκΈ°λ λ μ΄λ ΅μ§λ§, μΈμ IDλ₯Ό κ΄μ°°ν©λλ€. μμ°¨μ μ΄κ±°λ μμΈ‘ κ°λ₯ν΄ λ³΄μ΄λ©΄ μ½μ μ λνλ λλ€.
- λ¬΄μ°¨λ³ λμ 곡격 보νΈ: ZAPμ "Forced Browse" λλ λ¬΄μ°¨λ³ λμ κΈ°λ₯μ λ‘κ·ΈμΈ μλν¬μΈνΈμ μ¬μ©νμ¬ μλ μ νμ΄λ κ³μ μ κΈ λ©μ»€λμ¦μ΄ μλμ§ νμΈν©λλ€.
κ°λ° μν¬νλ‘μ°μ ZAP ν΅ν©νκΈ°
μ§μμ μΈ λ³΄μμ μν΄ ZAPμ κ°λ° μλͺ μ£ΌκΈ°μ ν΅ν©νλ κ²μ΄ μ€μν©λλ€. μ΄λ 보μμ΄ λμ€μ κ³ λ €λλ μ¬νμ΄ μλλΌ κ°λ° νλ‘μΈμ€μ ν΅μ¬ κ΅¬μ± μμκ° λλλ‘ λ³΄μ₯ν©λλ€.
μ§μμ ν΅ν©/μ§μμ λ°°ν¬(CI/CD) νμ΄νλΌμΈ
ZAPμ λͺ λ Ήμ€ μΈν°νμ΄μ€(CLI)μ APIλ₯Ό μ 곡νμ¬ CI/CD νμ΄νλΌμΈμ ν΅ν©ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ½λκ° μ»€λ°λκ±°λ λ°°ν¬λ λλ§λ€ μλ 보μ μ€μΊμ μ€ννμ¬ μ·¨μ½μ μ μ‘°κΈ°μ λ°κ²¬ν μ μμ΅λλ€.
CI/CD ν΅ν© λ¨κ³:
- μλ ZAP μ€μΊ: CI/CD λꡬ(μ: Jenkins, GitLab CI, GitHub Actions)λ₯Ό ꡬμ±νμ¬ ZAPμ λ°λͺ¬ λͺ¨λλ‘ μ€νν©λλ€.
- API λλ λ³΄κ³ μ μμ±: ZAPμ APIλ₯Ό μ¬μ©νμ¬ μ€μΊμ νΈλ¦¬κ±°νκ±°λ λ³΄κ³ μλ₯Ό μλμΌλ‘ μμ±ν©λλ€.
- μ€μ κ²½κ³ μ λΉλ μ€ν¨: ZAPμ΄ μ¬κ°λκ° λμ μ·¨μ½μ μ νμ§νλ©΄ νμ΄νλΌμΈμ΄ μ€ν¨νλλ‘ μ€μ ν©λλ€.
μ½λλ‘μ¨μ 보μ (Security as Code)
보μ ν μ€νΈ ꡬμ±μ μ½λμ²λΌ μ·¨κΈνμμμ€. ZAP μ€μΊ ꡬμ±, μ¬μ©μ μ§μ μ€ν¬λ¦½νΈ λ° κ·μΉμ μ ν리μΌμ΄μ μ½λμ ν¨κ» λ²μ κ΄λ¦¬ μμ€ν μ μ μ₯ν©λλ€. μ΄λ μΌκ΄μ±κ³Ό μ¬νμ±μ μ¦μ§μν΅λλ€.
κΈλ‘λ² κ°λ°μλ₯Ό μν κ³ κΈ ZAP κΈ°λ₯
ZAPμ λ μ΅μν΄μ§λ©΄, νΉν μΉ μ ν리μΌμ΄μ μ κΈλ‘λ² νΉμ±μ κ³ λ €νμ¬ ν μ€νΈ κΈ°λ₯μ ν₯μμν€κΈ° μν΄ κ³ κΈ κΈ°λ₯μ νμν΄ λ³΄μμμ€.
컨ν μ€νΈμ λ²μ
ZAPμ "컨ν μ€νΈ" κΈ°λ₯μ μ¬μ©νλ©΄ URLμ κ·Έλ£Ήννκ³ μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ λν΄ νΉμ μΈμ¦ λ©μ»€λμ¦, μΈμ μΆμ λ°©λ² λ° ν¬ν¨/μ μΈ κ·μΉμ μ μν μ μμ΅λλ€. μ΄λ λ©ν° ν λνΈ μν€ν μ²λ λ€λ₯Έ μ¬μ©μ μν μ κ°μ§ μ ν리μΌμ΄μ μ νΉν μ μ©ν©λλ€.
컨ν μ€νΈ ꡬμ±:
- μ ν리μΌμ΄μ μ λν μ 컨ν μ€νΈλ₯Ό λ§λλλ€.
- 컨ν μ€νΈμ λ²μ(ν¬ν¨ λλ μ μΈν URL)λ₯Ό μ μν©λλ€.
- μ ν리μΌμ΄μ μ κΈλ‘λ² μ κ·Ό μ§μ κ³Ό κ΄λ ¨λ μΈμ¦ λ°©λ²(μ: μμ κΈ°λ°, HTTP/NTLM, API ν€)μ ꡬμ±ν©λλ€.
- ZAPμ΄ μΈμ¦λ μΈμ μ μ¬λ°λ₯΄κ² μΆμ νλλ‘ μΈμ κ΄λ¦¬ κ·μΉμ μ€μ ν©λλ€.
μ€ν¬λ¦½ν μ§μ
ZAPμ μ¬μ©μ μ§μ κ·μΉ κ°λ°, μμ²/μλ΅ μ‘°μ λ° λ³΅μ‘ν ν μ€νΈ μλλ¦¬μ€ μλνλ₯Ό μν΄ λ€μν μΈμ΄(μ: JavaScript, Python, Ruby)μ μ€ν¬λ¦½ν μ μ§μν©λλ€. μ΄λ κ³ μ ν μ·¨μ½μ μ ν΄κ²°νκ±°λ νΉμ λΉμ¦λμ€ λ‘μ§μ ν μ€νΈνλ λ° λ§€μ° μ€μν©λλ€.
μ€ν¬λ¦½ν μ¬μ© μ¬λ‘:
- μ¬μ©μ μ§μ μΈμ¦ μ€ν¬λ¦½νΈ: κ³ μ ν λ‘κ·ΈμΈ νλ¦μ κ°μ§ μ ν리μΌμ΄μ μ©.
- μμ² μμ μ€ν¬λ¦½νΈ: λΉνμ€ λ°©μμΌλ‘ νΉμ ν€λλ₯Ό μ£Όμ νκ±°λ νμ΄λ‘λλ₯Ό μμ νκΈ° μν΄.
- μλ΅ λΆμ μ€ν¬λ¦½νΈ: 볡μ‘ν μλ΅ κ΅¬μ‘°λ₯Ό νμ±νκ±°λ μ¬μ©μ μ§μ μ€λ₯ μ½λλ₯Ό μλ³νκΈ° μν΄.
μΈμ¦ μ²λ¦¬
μΈμ¦μ΄ νμν μ ν리μΌμ΄μ μ μν΄ ZAPμ μ΄λ₯Ό μ²λ¦¬ν μ μλ κ°λ ₯ν λ©μ»€λμ¦μ μ 곡ν©λλ€. μμ κΈ°λ° μΈμ¦, ν ν° κΈ°λ° μΈμ¦, λλ λ€λ¨κ³ μΈμ¦ νλ‘μΈμ€μ΄λ , ZAPμ μ€μΊμ μννκΈ° μ μ μ¬λ°λ₯΄κ² μΈμ¦νλλ‘ κ΅¬μ±λ μ μμ΅λλ€.
ZAPμ μ£Όμ μΈμ¦ μ€μ :
- μΈμ¦ λ°©λ²: μ ν리μΌμ΄μ μ μ ν©ν λ°©λ²μ μ νν©λλ€.
- λ‘κ·ΈμΈ URL: λ‘κ·ΈμΈ μμμ΄ μ μΆλλ URLμ μ§μ ν©λλ€.
- μ¬μ©μ μ΄λ¦/μνΈ λ§€κ°λ³μ: μ¬μ©μ μ΄λ¦κ³Ό μνΈ νλμ μ΄λ¦μ μλ³ν©λλ€.
- μ±κ³΅/μ€ν¨ μ§ν: ZAPμ΄ μ±κ³΅μ μΈ λ‘κ·ΈμΈμ μλ³νλ λ°©λ²(μ: νΉμ μλ΅ λ³Έλ¬Έ λλ μΏ ν€ νμΈ)μ μ μν©λλ€.
ZAPμ μ΄μ©ν ν¨κ³Όμ μΈ νλ‘ νΈμλ 보μ ν μ€νΈλ₯Ό μν λͺ¨λ² μ¬λ‘
OWASP ZAPμ μ¬μ©ν 보μ ν μ€νΈμ ν¨κ³Όλ₯Ό κ·Ήλννλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό μ€μνμμμ€:
- μ ν리μΌμ΄μ μ΄ν΄: ν μ€νΈ μ μ μ ν리μΌμ΄μ μ μν€ν μ², κΈ°λ₯ λ° λ―Όκ°ν λ°μ΄ν° νλ¦μ λͺ ννκ² μ΄ν΄ν΄μΌ ν©λλ€.
- μ€ν μ΄μ§ νκ²½μμ ν μ€νΈ: νμ νλ‘λμ μ€μ κ³Ό λμΌνμ§λ§ μ€μ λ°μ΄ν°μ μν₯μ μ£Όμ§ μλ μ μ© μ€ν μ΄μ§ λλ ν μ€νΈ νκ²½μμ 보μ ν μ€νΈλ₯Ό μννμμμ€.
- μλ λ° μλ ν μ€νΈ κ²°ν©: ZAPμ μλ μ€μΊμ κ°λ ₯νμ§λ§, μλνλ λκ΅¬κ° λμΉ μ μλ 볡μ‘ν μ·¨μ½μ μ λ°κ²¬νκΈ° μν΄μλ μλ ν μ€νΈμ νμμ΄ νμμ μ λλ€.
- μ κΈ°μ μΌλ‘ ZAP μ λ°μ΄νΈ: μ΅μ μ·¨μ½μ μ μμ κΈ°λ₯μ νμ©νκΈ° μν΄ νμ μ΅μ λ²μ μ ZAPκ³Ό μ λμ¨μ μ¬μ©νκ³ μλμ§ νμΈνμμμ€.
- μ€ν(False Positives)μ μ§μ€: ZAPμ κ²°κ³Όλ₯Ό μ μ€νκ² κ²ν νμμμ€. μΌλΆ κ²½κ³ λ μ€νμΌ μ μμΌλ―λ‘ λΆνμν μμ λ Έλ ₯μ νΌνκΈ° μν΄ μλ κ²μ¦μ΄ νμν©λλ€.
- API 보μ: νλ‘ νΈμλκ° APIμ ν¬κ² μμ‘΄νλ κ²½μ°, ZAPμ΄λ λ€λ₯Έ API 보μ λꡬλ₯Ό μ¬μ©νμ¬ λ°±μλ APIμ 보μλ ν μ€νΈνκ³ μλμ§ νμΈνμμμ€.
- ν κ΅μ‘: μΌλ°μ μΈ μ·¨μ½μ κ³Ό μμ ν μ½λ© κ΄νμ λν κ΅μ‘μ μ 곡νμ¬ κ°λ°ν λ΄μ 보μ μμ λ¬Ένλ₯Ό μ‘°μ±νμμμ€.
- κ²°κ³Ό λ¬Έμν: λ°κ²¬λ λͺ¨λ μ·¨μ½μ , μ¬κ°λ λ° μ·¨ν΄μ§ μμ μ‘°μΉμ λν μμΈν κΈ°λ‘μ μ μ§νμμμ€.
νΌν΄μΌ ν μΌλ°μ μΈ ν¨μ
ZAPμ κ°λ ₯ν λꡬμ΄μ§λ§ μ¬μ©μλ μΌλ°μ μΈ ν¨μ μ λΉ μ§ μ μμ΅λλ€:
- μλ μ€μΊμ λν κ³Όλν μμ‘΄: μλ μ€μΊλλ λ§λ₯ ν΄κ²°μ± μ΄ μλλλ€. μλ 보μ μ λ¬Έ μ§μκ³Ό ν μ€νΈλ₯Ό λ체νλ κ²μ΄ μλλΌ λ³΄μν΄μΌ ν©λλ€.
- μΈμ¦ 무μ: μ ν리μΌμ΄μ μ μΈμ¦μ μ²λ¦¬νλλ‘ ZAPμ μ¬λ°λ₯΄κ² ꡬμ±νμ§ μμΌλ©΄ λΆμμ ν μ€μΊμ΄ λ°μν©λλ€.
- νλ‘λμ νκ²½μμ ν μ€νΈ: λΌμ΄λΈ νλ‘λμ μμ€ν μμ 곡격μ μΈ λ³΄μ μ€μΊμ μ€ννλ©΄ μλΉμ€ μ€λ¨ λ° λ°μ΄ν° μμμ μ΄λν μ μμΌλ―λ‘ μ λ μ€ννμ§ λ§μμμ€.
- ZAPμ μ λ°μ΄νΈνμ§ μμ: 보μ μνμ λΉ λ₯΄κ² μ§νν©λλ€. μ€λλ ZAP λ²μ μ μλ‘μ΄ μ·¨μ½μ μ λμΉ κ²μ λλ€.
- κ²½κ³ μ€ν΄: ZAPμ λͺ¨λ κ²½κ³ κ° μ¬κ°ν μ·¨μ½μ μ λνλ΄λ κ²μ μλλλ€. λ§₯λ½κ³Ό μ¬κ°λλ₯Ό μ΄ν΄νλ κ²μ΄ μ€μν©λλ€.
κ²°λ‘
OWASP ZAPμ μμ ν μΉ μ ν리μΌμ΄μ ꡬμΆμ μ λ νλ λͺ¨λ νλ‘ νΈμλ κ°λ°μμκ² νμμ μΈ λꡬμ λλ€. μΌλ°μ μΈ νλ‘ νΈμλ μ·¨μ½μ μ μ΄ν΄νκ³ ZAPμ κΈ°λ₯μ ν¨κ³Όμ μΌλ‘ νμ©ν¨μΌλ‘μ¨ μνμ μ¬μ μ μλ³νκ³ μννμ¬ μ¬μ©μμ μ‘°μ§μ 보νΈν μ μμ΅λλ€. ZAPμ κ°λ° μν¬νλ‘μ°μ ν΅ν©νκ³ , μ§μμ μΈ λ³΄μ κ΄νμ μμ©νλ©°, μλ‘μ΄ μνμ λν μ 보λ₯Ό κ³μ μ»λ κ²μ κΈλ‘λ² λμ§νΈ μμ₯μμ λ κ²¬κ³ νκ³ μμ ν μΉ μ ν리μΌμ΄μ μ μν κΈΈμ μ΄μ΄μ€ κ²μ λλ€. 보μμ μ§μμ μΈ μ¬μ μ΄λ©°, OWASP ZAPκ³Ό κ°μ λꡬλ κ·Έ λ Έλ ₯μμ μ λ’°ν μ μλ λλ°μλΌλ κ²μ κΈ°μ΅νμμμ€.