2024. 4. 29. 13:26γetc_study/λ Όλ¬Έ λΆμ
π λ Όλ¬Έμ μ μ΄μ
1. μΉ μ ν리μΌμ΄μ μ μ¬μ©λ₯ μ΄ λ§μ΄ λμμ§ μ§κΈ, μμΌλ‘λ κ΄λ ¨μ°μ μ μ μ μ»€μ§ κ²μ΄κ³ , κ·Έλ κΈ°λλ¬Έμ 보μμνμΌλ‘ μμ ν μ μλ€λ μκ°μ΄ λ€μλ€.
2. κ·Έλμ ν΄λΉ λ Όλ¬Έμ ν΅ν΄ μΉ μ ν리μΌμ΄μ κ³Ό κ΄λ ¨λ μ£Όμ μ·¨μ½μ κ³Ό κ·Έμ λν μ¬λ‘, μμ¬μ κ·Έλ¦¬κ³ λ―Έλμ μΉ μ ν리μΌμ΄μ 보μμ λν΄ μ΄λ ν μμΈλ₯Ό κ°μ ΈμΌν μ§ λ±μ λν μκ°μ ν΄λ³Ό μ μλ κΈ°νλΌκ³ μκ°ν΄μ μ μ νκ²λμλ€.
β μλ‘ λ° μ°κ΅¬ λ°°κ²½
- λ€μν λΆμΌμ μΉ μ ν리μΌμ΄μ μ¬μ©λ μ¦κ°
- μ¬μ©λ μ¦κ°μ λλΆμ΄ μΌμ΄λλ ν΄νΉμ¬κ³ , κ°μΈμ 보 μ μΆ λ° κΈ°ν 보μμν μ¦κ° λ° λ³΄μ κ°νμ λν μ€μμ± μ¦κ°
- μΉ μ ν리μΌμ΄μ λ°°ν¬ μ λ¨κ³μμ 보μ μ·¨μ½μ μλ³ λ° μν μ΅μνλ₯Ό μν μ€κ³, μνμ΄ μ½λ©μ νμμ±
- λΉλ²ν μ·¨μ½μ λΆμμ νμμ±
β μΉ μ ν리μΌμ΄μ 보μμ μ΄ν΄
μΉ μ ν리μΌμ΄μ λ° μ·¨μ½μ μ μ
β‘οΈμ μ λ° νΉμ§ μ 리
- μΉ μ ν리μΌμ΄μ μ΄λ μΈν°λ· λλ μΈνΈλΌλ·κ³Ό κ°μ λ€νΈμν¬λ₯Ό ν΅ν΄ μ‘μΈμ€λλ μμ© νλ‘κ·Έλ¨μ λ§νλ€.
- μΉ λΈλΌμ°μ λ΄ λλ μΉ λΈλΌμ°μ κ° μ μ΄ κ°λ₯ν νκ²½μμ μ€ν, μΉ λΈλΌμ°μ κ° μ€νκ°λ₯ν νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ¬μ©νμ¬ λ§ν¬μ μΈμ΄λ₯Ό κ²°ν©ν΄ λ§λ€μ΄μ§λ€.
- μΉ λΈλΌμ°μ λ₯Ό ν΅ν΄ μ κ·Ό, λ€μν νλ«νΌμμ νΈνκ°λ₯, μ¬μ©μ΄ νΈλ¦¬νκ³ μ μ§λ³΄μκ° μ©μ΄νλ€.
β‘οΈμ·¨μ½μ (μμ€ν λλ νλ‘κ·Έλ¨μ λ΄μ¬λμ΄ μλ λ²κ·Έλ₯Ό μλ―Έ, μ΄λ₯Ό μ μ©ν μμ€ν μ μΉ¨μ νμ¬ μ 보 μ μΆ, μμ€ν νκ΄΄ λ± μ λ°)
β‘οΈ μΉ μ ν리μΌμ΄μ μ μ£Όμ 보μ μν λ° μ·¨μ½μ (OWASP TOP 10)
OWASP(Open Web Application Security Project)λ μΉ μ ν리μΌμ΄μ μ 보μ ν₯μμ λͺ©νλ‘ νλ κ΅μ λΉμ리 μ‘°μ§μ΄λ€.
μΉ μ ν리μΌμ΄μ μ 보μ μ·¨μ½μ μ€μμ κ°μ₯ λΉλ²νκ² λ°μνκ³ λ³΄μμ μ€λν μν₯μ λ―ΈμΉλ 10κ°μ§λ₯Ό μ μ λ΄μ©μ μλμ κ°λ€.
π»μΉ μ ν리μΌμ΄μ OWASP TOP 10 2021
A01 : Broken Access Control (μ κ·Ό κΆν μ·¨μ½μ ) |
A02 : Cryptographic Failures (μνΈν μ€λ₯) |
A03: Injection (μΈμ μ ) |
A04: Insecure Design (μμ νμ§ μμ μ€κ³) |
A05: Security Misconfiguration (보μμ€μ μ€λ₯) |
A06: Vulnerable and Outdated Components (μ·¨μ½νκ³ μ€λλ μμ) |
A07: Identification and Authentication Failures (μλ³ λ° μΈμ¦ μ€λ₯) |
A08: Software and Data Integrity Failures(μννΈμ¨μ΄ λ° λ°μ΄ν° λ¬΄κ²°μ± μ€λ₯) |
A09: Security Logging and Monitoring Failures (보μ λ‘κΉ λ° λͺ¨λν°λ§ μ€ν¨) |
A10: Server-Side Request Forgery (μλ² μ¬μ΄λ μμ² μμ‘°) |
π» ISO/IEC 25023μ 보μμ± νμ§ μΈ‘μ νλͺ©
μΈ‘μ νλͺ© | μ€λͺ |
κΈ°λ°μ± | μ νμ΄λ μμ€ν μ΄ μ κ·Ό κΆνμ κ°μ§ μ¬λλ§μ΄ λ¬΄κ²°μ± λ°μ΄ν°μ μ κ·Όν μ μλλ‘ νλ μ λλ₯Ό νκ° |
λ¬΄κ²°μ± | μ€ν , μ ν λλ μ»΄ν¬λνΈκ° μ»΄ν¨ν° νλ‘κ·Έλ¨μ΄λ λ°μ΄ν°μ λν κΆν μλ μ κ·Ό λλ λ³κ²½μ λ°©μ§νλ μ 보λ₯Ό νκ° |
λΆμΈ λ°©μ§μ± | μ΄λ€ νμλ μ¬κ±΄μ λ°μμ λμ€μ λΆμΈν μ μλλ‘ μ΄λ₯Ό μ¦λͺ ν μ μλ μ λλ₯Ό νκ° |
μ± μμ± | μ΄λ€ κ°μ²΄μ νμκ° κ·Έ κ°μ²΄μ μν΄ μΌμ΄λ κ²μ μΆμ ν μ μλ μ λλ₯Ό νκ° |
μΈμ¦ | 주체 νΉμ μμμ μ μμ΄ μκΈ°λΌκ³ μ£Όμ₯νλ λ°κ° λ§λ€λ κ²μ μ μ¦ν μ μλ μ λλ₯Ό νκ° |
β μΉ μ ν리μΌμ΄μ 보μ μ·¨μ½μ λ°μ μ¬λ‘ λΆμ
π»μΉ μ ν리μΌμ΄μ 보μ μ·¨μ½μ λΆμ κΈ°λ²
μ μ λΆμ)
μμ€ μ½λλ₯Ό λΆμνμ¬ λ³΄μ μ·¨μ½μ μ κ²μΆνλ λ°©λ²
λμ λΆμ)
μΉ μ ν리μΌμ΄μ μ μ€μ λ‘ μ€ννκ³ μ€ν μ€μ 보μ μ·¨μ½μ μ μλ³νλ λΆμ λ°©λ²
π» 보μ μ·¨μ½μ λ°μ μ¬λ‘ λΆμ κ²°κ³Ό
β‘οΈ μΉ μ ν리μΌμ΄μ 보μ μ·¨μ½μ μ§λ¨ κ²°κ³Ό
μμ | μ£Όμ 보μ μ·¨μ½μ | OWASP TOP 10 2021 |
1 | μ€λλ λ²μ μ μ€νμμ€ μ¬μ© | A06 |
2 | μ·¨μ½ν μνΈν μκ³ λ¦¬μ¦ μ¬μ© | A02 |
3 | μνΈνλμ§ μμ μ€μ μ 보 | A02 |
4 | μ λ ₯κ° κ²μ¦ λλ½ | A01, A03 |
5 | μ€λ₯ λ©μμ§ μ 보 λ ΈμΆ | A05 |
6 | μ€μν μμμ λν μλͺ»λ κΆν μ€μ | A05 |
1) μ€λλ λ²μ μ μ€νμμ€ μ¬μ©
λλ€μμ μμ© μΉ μ ν리μΌμ΄μ μμ JQuery, Apache, Tomcat, NginX λ± λ³΄μ μ·¨μ½μ μ΄ λ΄μ¬λ μ€νμμ€λ₯Ό μ¬μ©μ€μΈ κ²μΌλ‘ λΆμλμλ€.
μ€λλ λ²μ μ μ€ν μμ€λ₯Ό μ¬μ©ν κ²½μ°, ν΄μ»€κ° ν΄λΉ μ€νμμ€μ μλ €μ§ μΉ μ·¨μ½μ μ μ΄μ©νμ¬ μΉ μ ν리μΌμ΄μ μ μΉ¨μ νκ±°λ μ€μ λ°μ΄ν°λ₯Ό νμ·¨ν μ μκ² λλ λλ€.
2) μ·¨μ½ν μνΈν μκ³ λ¦¬μ¦ μ¬μ©
μΉ μ΄ν리μΌμ΄μ μμ μ¬μ©λλ λνμ μΈ λ‘κ·ΈμΈ μλ¨μΌλ‘ μμ΄λ/λΉλ°λ²νΈ λ°©μμ μ¬μ©νλ€.
λΉλ°λ²νΈλ μ€μ μ 보μ μνκΈ° λλ¬Έμ μμ ν μνΈν μκ³ λ¦¬μ¦μΌλ‘ μνΈνν΄μΌ νμ§λ§, μΌλΆ μμ© μΉ μ ν리μΌμ΄μ μμλ μ·¨μ½ν κ²μΌλ‘ μλ €μ§ λ¨λ°©ν₯ μνΈν μκ³ λ¦¬μ¦(MD5, SHA-1)μΌλ‘ λΉλ°λ²νΈλ₯Ό μνΈννκ³ μλ κ²μ΄ νμΈλμλ€.
3) μνΈνλμ§ μμ μ€μ μ 보
μΌλΆ μμ© μΉ μ ν리μΌμ΄μ μμλ λ‘κ·ΈμΈ μ 보λ₯Ό μλ²λ‘ μ μ‘ν λ, μνΈννμ§ μκ³ HTTPλ₯Ό ν΅ν΄ μ μ‘νλ κ²μΌλ‘ νμΈλμλ€.
HTTPλ‘ λ°μ΄ν°λ₯Ό μ‘μμ ν κ²½μ° λΉλ°λ²νΈ λ±κ³Ό κ°μ μ€μ μ 보 μ μ‘ μ, λ€νΈμν¬ ν¨ν·μ΄ μνΈνλμ§ μμ ν΄μ»€κ° μμ΄μ΄μ€ν¬ μ κ°μ μ€λν λꡬλ₯Ό μ¬μ©νμ¬ μ€μ μ 보λ₯Ό νμ·¨ν μ μλ λ¬Έμ μ μ΄ μ‘΄μ¬νλ€.
4) μ λ ₯κ° κ²μ¦ λλ½
λ€μμ μΉ μ ν리μΌμ΄μ μμ URL μ£Όμ λλ HTTP μμ² ν€λμ XSS(Cross Site Script)λ₯Ό μ λ ₯νμ¬ μλ²λ‘ μ μ‘ μ ν΄λΉ μ€ν¬λ¦½νΈκ° μ€νλκ±°λ, λ‘κ·ΈμΈ μ λΉλ°λ²νΈ μ λ ₯νλμ SQLλ¬Έμ μ λ ₯νμ¬ λ‘κ·ΈμΈμ μ±κ³΅νλ λ±μ μ·¨μ½μ μ΄ λ°κ²¬λμλ€.
μ λ’°ν μ μλ μ λ ₯ λ°μ΄ν°λ₯Ό λ°κ±°λ λ°μ΄ν°λ₯Ό κ²μ¦μ νμ§ μμ κ²½μ° SQL μ½μ , ν¬λ‘μ€ μ¬μ΄νΈ μ€ν¬λ¦½ν λ± λ€μν 보μ 곡격μ λ ΈμΆλκ³ λ°μ΄ν° μμ λ±μ μ¬κ°ν 보μ μ¬κ³ λ‘ μ΄μ΄μ§ μ μλ€.
5) μ€λ₯ λ©μμ§ μ 보 λ ΈμΆ
μΉ μ ν리μΌμ΄μ μ μ¬μ©μ μ λ ₯ μ€λ₯, λ€νΈμν¬ μ€λ₯ λ±μ λ€μν μν©μμ μ€λ₯κ° λ°μν μ μλ€. μ΄ λ, μλ¬λ₯Ό μ²λ¦¬νμ§ μκ±°λ λΆμΆ©λΆνκ² μ²λ¦¬νμ¬ μλ¬ μ 보μ μμ€ν λ΄λΆ μ 보 λ±μ μ€μ μ λ³΄κ° ν¬ν¨λ κ²½μ°, ν΄μ»€μκ² μ ν리μΌμ΄μ μ λ΄λΆ μ 보λ₯Ό 곡κ°νκ³ μ΄λ μ μ©νλλ° μ¬μ©λ μ μλ€
6) μ€μν μμμ λν μλͺ»λ κΆν μ€μ
μ€μ μ 보λ₯Ό μνΈννλ λ§νΌ μ€μ μμμ λν μ μ ν κΆνμ μ€μ νλ κ²μ λ―Όκ°ν λ°μ΄ν°λ₯Ό μμ νκ² λ³΄νΈνλ ν΅μ¬ μμ μ€ νλμ΄λ€
λΉμΈκ°μμκ² μλμΉ μμ κΆνμ νκ°νκ² λ κ²½μ°, κΆνμ κ°μ§ μμ μ¬μ©μκ° ν΄λΉ μμμ μ¬μ©ν μ μμ΄ κΆν κ΄λ¦¬λ μ κ·Ό μ μ΄μ λ°μ΄ν° 보μμ νμμ μ΄λ€. νμ§λ§, μ€μ μ¬λ‘ λΆμ κ²°κ³Ό DB μ¬μ©μκ° κ΄λ¦¬μ κΆνμ 보μ νκ³ μμ΄ ν μ΄λΈ μμ±/μμ λλ λ°μ΄ν° λ°±μ /볡μ λ±μ μμ μ μ€νν μ μλ 보μ μ·¨μ½μ μ΄ λ€μ λ°κ²¬λμλ€.
β μ·¨μ½μ μ κ±°λ₯Ό μν ν΄κ²°μ±
1) νμ μ΅μ 보μ ν¨μΉκ° μ μ©λ μ€νμμ€λ₯Ό μ¬μ©ν΄μΌ νκΈ°
2) λΉλ°λ²νΈλ₯Ό 보νΈνκΈ°μν΄ λΉλ°λ²νΈλ₯Ό μμ ν ν΄μ μκ³ λ¦¬μ¦(SHA-256 μ΄μ)μ ν΅ν΄ μνΈκ°μ μ μ©ν ν λ¨λ°©ν₯ μνΈννμ¬ DBμ μμ νκ² μ μ₯νκΈ°
3) μμ ν λ°μ΄ν° μ μ‘μ μν΄ HTTPSμ κ°μ μνΈνλ μ±λμ ν΅νκ±°λ λ°μ΄ν°κ° νμ·¨λμ΄λ μ€μ μ λ³΄κ° λ ΈμΆλμ§ μλλ‘ μνΈννμ¬ μλ²μ μ μ‘νκΈ°
4) μ λ ₯ κ°μ ν΅ν 곡격(μΈμ μ )μ κ²½μ°, 곡격 λ¬Έμμ΄λ‘ νΉμλ¬Έμλ₯Ό μ¬μ©νκΈ° λλ¬Έμ μΈλΆλ‘λΆν° μ λ ₯ λ°μ κ°μ λ°λμ νΉμλ¬Έμλ₯Ό νν°λ§ ν μ¬μ©νκΈ°
5) μ€νκ³Ό κ°μ΄ μμ€ν λ΄λΆ μ 보λ ν΄μ»€κ° μΉ μ ν리μΌμ΄μ λ° μμ€ν μ ν΄νΉνκΈ° μν μ£Όμν μ λ³΄κ° λκΈ° λλ¬Έμ ν΄λΉ μ λ³΄κ° λ ΈμΆλμ§ μλλ‘ νκΈ°
6) μΉ μ ν리μΌμ΄μ μ΄ DBMSμ μ°λν λ DBA κ³μ μ μ¬μ©ν κ²½μ°, ν΄μ»€λ DBA κΆνμ μ΄μ©νμ¬ λͺ¨λ λ°μ΄ν°λ₯Ό μ‘°μ λ° νμ·¨ν μ μκΈ° λλ¬Έμ, μΉ μ ν리μΌμ΄μ μ΄ μ κ·Όν΄μΌ νλ DB ν μ΄λΈλ§ μ¬μ©ν μ μλλ‘ κ³μ κΆνμ μ΅μννμ¬ μ¬μ©νκΈ°
β κ²°λ‘
OWASP TOP 10κ³Ό λΉκ΅ν΄ 보μμ λ, μμ νλͺ©μ μλ μΉ μ·¨μ½μ λ€μ΄ λΆμ κ²°κ³Όμ λ€μ λ€λ¦μ νμΈν μ μμλ€
κ°λ° κΈ°μ λ€μ μΉ μ ν리μΌμ΄μ 보μμ± νμ§μ λν μΈμμ΄ κ°μ λμκ³ , λ€μμ μμ© μΉ μ ν리μΌμ΄μ μ΄ μ μμ λΆ νλ μμν¬, Spring νλ μμν¬, MyBatis λ± κ²μ¦λ μ€νμμ€λ₯Ό μ¬μ©ν¨μΌλ‘μ¨ μΈμ μ , μ κ·Ό κΆν μ·¨μ½μ λ±μ 보μ μ·¨μ½μ μ μλμ μΌλ‘ λ°μ λΉλκ° λμ§ μμλ€.
κ·Έλ¬λ, μμ© μΉ μ ν리μΌμ΄μ μ μ€νμμ€ μ¬μ©λ₯ μμΉμΌλ‘ μΈν΄ μΉ μ ν리μΌμ΄μ μ ꡬμ±νκ³ μλ μ€νμμ€μ μ·¨μ½μ μ ν΅ν κ³΅κ²©μ΄ ν¬κ² μ¦κ°νκ³ μμ΄, μΉ μ ν리μΌμ΄μ μμ μ¬μ©νλ μ€νμμ€μ 보μ μ·¨μ½μ κ΄λ¦¬λ νμμ μ΄λΌκ³ λ³Ό μ μλ€.
β λλμ
μΉ μ ν리μΌμ΄μ μ μ¬μ©μ¦κ°μ λλΆμ΄ λ€μν 보μμνλ€μ νμΈ ν μ μμλ€.
λλ μ¬μ©μμ μ μ₯μ΄μ, 보μλ΄λΉμμ μ μ₯μΌλ‘ μκ°νμ λ μ΄λ ν λΆλΆμ΄ μΉ μ ν리μΌμ΄μ μ μμ νκ² μ¬μ©νκΈ°μν΄ μ¬μ μ λλΉν΄μΌν μ§, μ¬νμ κ΄λ¦¬ν΄μΌν μ§ κ³ λ―Όμ ν΄λ³Ό μ μλ λ Όλ¬Έμ΄μλ€.
μ΄μ κ΄λ ¨λ μ£Όμ μ·¨μ½μ κ³Ό OWASP TOP 10κ³Ό κ°μ μλ£λ€μ μ΄ν΄λ³΄λ©΄μ μ°¨μ΄μ κ³Ό 곡ν΅μ μΈ λΆλΆμ λΉκ΅ν΄λ³Ό μ μμκ³ , κ·Έμ λν λλΉμ± μ μ΄ν΄λ³΄λ©΄μ μ·¨μ½μ κ³Ό λμνλ λλΉμ± μ΄ μ΄λ€ μμΌλ‘ ꡬμ±λλμ§λ νμ΅ν μ μλ κΈ°νκ° λμλ€.
β λΆμ λ Όλ¬Έ