μλ νμΈμ ꡬλ μλ, μ΅μ DevOps μμμ μ 리ν΄μ 곡μ ν΄λ리λ DevOps μ¬νμ μν μμμ§μ λλ€.
κ°λ° μ 무λ νλ‘μ νΈλ₯Ό μ§ννλ€λ³΄λ©΄ 컨ν μ΄λ μ΄λ―Έμ§λ₯Ό μ¬μ©ν΄μ μ ν리μΌμ΄μ μ΄ λμν μ μλ νκ²½μ λ§λ€κ³ μ€μ λ°°ν¬λ₯Ό νλ κ²½μ°κ° μΌλ°μ μΈλ°μ. κ·Έλ¬λ€λ³΄λ μ¬μ©νλ 컨ν μ΄λ μ΄λ―Έμ§μ 보μ μ·¨μ½μ μ΄λ μ΄μκ° μλ€λ©΄ μ¬κ°ν 보μ μ¬κ³ λ‘λ μ΄μ΄μ§ μ μμ΅λλ€.
μ΄λ΄ λ μ°λ¦¬μκ² νμν κ²μ΄ λ°λ‘, μ΄λ² μμμ§μμ μκ°ν΄λ릴 컨ν μ΄λ 보μ μ€μΊλ(Container Security Scanning)μ λλ€.
π보μ μ·¨μ½μ μ κ²μ¬νλ 컨ν μ΄λ 보μ μ€μΊλ
컨ν μ΄λ 보μ μ€μΊλμ 컨ν μ΄λ μ΄λ―Έμ§μ μ‘΄μ¬ν μ μλ 보μ μ·¨μ½μ μ΄λ μ΄μλ₯Ό μ€μΊλ ν΄λ‘ κ²μ¬νκ³ λΆμνλ νμλ₯Ό λ§ν©λλ€.
μμμ§ μλμμλ λ§μλλ Έλ κ²μ²λΌ, μ΄λ―Έ μλ§μ μλΉμ€κ° 컨ν μ΄λ μ΄λ―Έμ§ κΈ°λ°μΌλ‘ λμνκ³ μκΈ° λλ¬Έμ 컨ν μ΄λ μ΄λ―Έμ§μ 보μ μ·¨μ½μ μ΄λ μ΄μκ° μλ€λ©΄ μ¬κ°ν 보μ νΌν΄λ‘ μ΄μ΄μ§ μ μμ΅λλ€.
λ§μ½ 컨ν μ΄λ 보μ μ€μΊλμ μννλ€λ©΄, κ°λ°μκ° ν΄λΉ 컨ν μ΄λμ μ΄λ€ μ·¨μ½μ μ΄ μ‘΄μ¬νλμ§ μΈμ§ν μ μκΈ° λλ¬Έμ μ¬μ μ μ μ ν μ‘°μΉλ₯Ό μ·¨ν μ μκ² λλ€λ μ₯μ μ΄ μμ΅λλ€.
λν μ€μ μλΉμ€μ λν΄μ μ£ΌκΈ°μ μΌλ‘ 컨ν μ΄λ 보μ μ€μΊλμ μννλ€λ©΄, μ΅μ’ μ¬μ©μμκ² ν΄λΉ μλΉμ€κ° κ³μ λͺ¨λν°λ§λμ΄ μμ νλ€λ μ λ’°κ°λ μ€ μ μλ΅λλ€.
κ·Έλ λ€λ©΄ 컨ν μ΄λ 보μ μ€μΊλμ μ΄λ»κ² μνλ κΉμ?
νμ¬ Trivyλ Clair λ± λ€μν 컨ν μ΄λ 보μ μ€μΊλ ν΄μ΄ μ€νμμ€λ‘ κ°λ°λκ³ μμ΅λλ€. μ΄λ° 컨ν μ΄λ 보μ μ€μΊλ ν΄λ€μ λͺ¨λ μ격 λ μ§μ€νΈλ¦¬λ λ‘컬μ μ μ₯λ 컨ν μ΄λ μ΄λ―Έμ§λ₯Ό μ€μΊνκ³ λ³΄μ μ·¨μ½μ μ΄λ μ΄μκ° μ‘΄μ¬νλμ§ λΆμν΄μ£Όλλ°μ.
μ΄λ μ€μΊλ ν΄μ μ€μΊ λ°©μμ ν¬κ² 2κ°μ§λ‘ λλ©λλ€.
- μ§μ κΈ°λ°(Signature-Based) μ€μΊ: κΈ°μ‘΄μ μλ €μ§ μ·¨μ½μ (CVE λ±)λ₯Ό κΈ°λ°μΌλ‘ μ€μΊ
- νλ κΈ°λ°(Behavioral-Based) μ€μΊ: 컨ν μ΄λλ₯Ό μ€ν ν λΉμ μμ μΈ νλ‘μΈμ€λ λ€νΈμν¬ νΈλν½ κ°μ νμκ° μλμ§ μ€μΊ
컨ν μ΄λ μ€μΊλ ν΄μ λμ λ°©μμ λν΄μλ μμμλ μ κΉ μΈκΈνλ Clairλ₯Ό μλ‘ λ€μ΄μ μ’ λ μμλ³΄κ² μ΅λλ€.
π보μ μ·¨μ½μ λΆμκ³Ό μλ¦Ό κΈ°λ₯κΉμ§ μ§μνλ Clair
Clairλ 컨ν μ΄λ μ΄λ―Έμ§μ ꡬμ±μμλ₯Ό λΆμνμ¬ μ·¨μ½μ μ λ³΄κ³ ν΄μ£Όλ μ ν리μΌμ΄μ μ λλ€. Indexer, Matcher, NotifierλΌλ μ΄λ¦μ μ»΄ν¬λνΈλ‘ ꡬμ±λλ©°, Clairμ μμ μ ν¬κ² Indexing, Matching, NotificationμΌλ‘ λλ©λλ€. κ° νλ‘μΈμ€μ μ»΄ν¬λνΈμ λν μ€λͺ μ μλμ κ°μ΅λλ€.
- Indexing
- Clairμ Indexerλ μ€μΊ λμ μ΄λ―Έμ§λ₯Ό λΆμνκ³ ν΄λΉ μ΄λ―Έμ§μ κ΅¬μ± μμμ λν μ 보λ₯Ό μ»μ΄λ λλ€.
- μ΄λ κ² μ»μ΄λΈ μ 보λ Manifestλ μ΄λ¦μΌλ‘ DBμ μ μ₯λλ©°, μ΄ Indexingμ λν μ 보λ IndexReportλΌλ λ°μ΄ν° κ΅¬μ‘°λ‘ DBμ μ μ₯λ©λλ€.
- Matching
- Clairμ Matcherλ Indexerκ° DBμ μ μ₯ν IndexReportλ₯Ό κ°μ Έμ μ·¨μ½μ λΆμμ μ§νν©λλ€.
- μ΄λ¬ν μ·¨μ½μ λΆμμ DBμ 미리 μ μ₯λμ΄μλ μ΅μ μ·¨μ½μ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μνλ©λλ€.
- μ·¨μ½μ λΆμμ΄ μλ£λλ©΄ μ·¨μ½μ λ³΄κ³ μκ° μμ±λ©λλ€.
- Matcherλ μ£ΌκΈ°μ μΌλ‘ DBμ μ΅μ μ·¨μ½μ λ°μ΄ν°λ₯Ό μ λ°μ΄νΈνλ μν λ μνν©λλ€.
- Notification
- Clairμ Notifierλ μ·¨μ½μ λΆμμ λν μλ¦Ό κΈ°λ₯μ μνν©λλ€.
- Matcherκ° μ£ΌκΈ°μ μΌλ‘ μ λ°μ΄νΈνλ μ΅μ μ·¨μ½μ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘, μ΄λ―Έ μ·¨μ½μ λΆμμ μλ£ν 컨ν μ΄λ μ΄λ―Έμ§ μ€ μλ‘ μν₯μ λ°λ μ΄λ―Έμ§κ° μμ κ²½μ° WebhookμΌλ‘ μλ¦Όμ 보λ λλ€.
πλ§μΉλ©°...
μ΄λ² μμμ§μμ 컨ν μ΄λ 보μ μ€μΊλκ³Ό Clairμ λν΄ μμλ΄€μ΅λλ€.
νΉμ μ΄λ² λ΄μ© κ΄λ ¨ν΄μ λ κΆκΈν μ μ΄ μμΌμλ€λ©΄ μλ λ©μΌλ¦¬ λκΈ λ¨κ²¨μ£ΌμΈμ.π
κ·ΈλΌ, λ€μ μμμ§μμ λ³΄λ€ μμ°¨κ³ ν₯λ―Έλ‘μ΄ λ΄μ©μΌλ‘ μ°Ύμλ΅κ² μ΅λλ€.
κ°μ¬ν©λλ€. πΊ
πReferences
https://www.wiz.io/academy/container-security-scanning
https://snyk.io/learn/container-security/container-scanning
https://aquasecurity.github.io/trivy/v0.49/
μ견μ λ¨κ²¨μ£ΌμΈμ