νλ‘ νΈμλ 보μμ μν Snyk ꡬν μ’ ν© κ°μ΄λ. μ·¨μ½μ μ€μΊλ, μμ‘΄μ± κ΄λ¦¬, ν΅ν© λ° μμ ν μΉ μ ν리μΌμ΄μ ꡬμΆμ μν λͺ¨λ² μ¬λ‘λ₯Ό λ€λ£Ήλλ€.
νλ‘ νΈμλ Snyk: μ΅μ μΉ μ ν리μΌμ΄μ μ μν μ μ μ μ·¨μ½μ μ€μΊλ
λΉ λ₯΄κ² μ§ννλ μ€λλ μ λμ§νΈ νκ²½μμ μΉ μ ν리μΌμ΄μ μ μ μ λ κ΄λ²μν 보μ μνμ λ ΈμΆλκ³ μμ΅λλ€. μ ν리μΌμ΄μ μ μ¬μ©μ λλ©΄ λΆλΆμΈ νλ‘ νΈμλλ 곡격μλ€μ μ£Όμ νμ μ΄ λ©λλ€. λ°λΌμ κ°λ° μλͺ μ£ΌκΈ° μ λ°μ κ±Έμ³ κ°λ ₯ν 보μ μ‘°μΉλ₯Ό ꡬννλ κ²μ΄ λ§€μ° μ€μν©λλ€. λ°λ‘ μ΄ μ§μ μμ κ°λ ₯ν κ°λ°μ 보μ νλ«νΌμΈ Snykκ° νλ‘ νΈμλ κ°λ°μ νΉνλ ν¬κ΄μ μΈ μ·¨μ½μ μ€μΊλ λ° μμ‘΄μ± κ΄λ¦¬ κΈ°λ₯μ μ 곡νλ©° κ·Έ μν μ ν©λλ€.
νλ‘ νΈμλ 보μμ΄ μ€μν μ΄μ
νλ‘ νΈμλλ λ μ΄μ λ¨μν λ―Έμ μΈ λΆλΆμλ§ κ΅νλμ§ μμ΅λλ€. λ―Όκ°ν μ¬μ©μ λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ , λ°±μλ μμ€ν κ³Ό μνΈμμ©νλ©°, μ’ μ’ ν΅μ¬ λΉμ¦λμ€ λ‘μ§μ ꡬνν©λλ€. νλ‘ νΈμλ 보μμ μνν νλ©΄ λ€μκ³Ό κ°μ μ¬κ°ν κ²°κ³Όλ₯Ό μ΄λν μ μμ΅λλ€:
- κ΅μ°¨ μ¬μ΄νΈ μ€ν¬λ¦½ν (XSS): 곡격μλ μΉμ¬μ΄νΈμ μ μ± μ€ν¬λ¦½νΈλ₯Ό μ£Όμ νμ¬ μ¬μ©μ μ격 μ¦λͺ μ νμΉκ±°λ, μ¬μ©μλ₯Ό νΌμ± μ¬μ΄νΈλ‘ 리λλ μ νκ±°λ, μΉμ¬μ΄νΈλ₯Ό νΌμν μ μμ΅λλ€.
- κ΅μ°¨ μ¬μ΄νΈ μμ² μμ‘° (CSRF): 곡격μλ μ¬μ©μλ₯Ό μμ¬ λΉλ°λ²νΈ λ³κ²½μ΄λ λ¬΄λ¨ κ΅¬λ§€μ κ°μ΄ μλνμ§ μμ μμ μ μΉμ¬μ΄νΈμμ μννλλ‘ ν μ μμ΅λλ€.
- μμ‘΄μ± μ·¨μ½μ : μ΅μ νλ‘ νΈμλ μ ν리μΌμ΄μ μ μλνν° λΌμ΄λΈλ¬λ¦¬μ νλ μμν¬μ ν¬κ² μμ‘΄ν©λλ€. μ΄λ¬ν μμ‘΄μ±μλ 곡격μκ° μ μ©ν μ μλ μλ €μ§ μ·¨μ½μ μ΄ ν¬ν¨λ μ μμ΅λλ€.
- λ°μ΄ν° μ μΆ: νλ‘ νΈμλ μ½λμ μ·¨μ½μ μ λ―Όκ°ν μ¬μ©μ λ°μ΄ν°λ₯Ό λ¬΄λ¨ μ κ·Όμ λ ΈμΆμμΌ λ°μ΄ν° μ μΆ λ° νν μμμ μ΄λν μ μμ΅λλ€.
- 곡κΈλ§ 곡격: μμλ μμ‘΄μ±μ μ ν리μΌμ΄μ μ μ μ± μ½λλ₯Ό μ£Όμ νμ¬ μ μ¬μ μΌλ‘ μλ°±λ§ λͺ μ μ¬μ©μμκ² μν₯μ λ―ΈμΉ μ μμ΅λλ€. μλ₯Ό λ€μ΄, 2018λ Event-Stream npm ν¨ν€μ§ ν΄νΉ μ¬κ±΄μ ν΄λΉ ν¨ν€μ§λ₯Ό μ¬μ©νλ μ ν리μΌμ΄μ μ μ μ¬μ μΈ λΉνΈμ½μΈ λλμ λ ΈμΆμμΌ°μ΅λλ€.
νλ‘ νΈμλ 보μμ 무μνλ κ²μ κΈμ μ μμ€κ³Ό νν μμ λͺ¨λμμ ν° λκ°λ₯Ό μΉλ₯Ό μ μμ΅λλ€. μ΄λ¬ν μνμ μννκΈ° μν΄μλ μ μ μ μΈ μ·¨μ½μ μ€μΊλκ³Ό μμ‘΄μ± κ΄λ¦¬κ° νμμ μ λλ€.
νλ‘ νΈμλ 보μμ μν Snyk μκ°
Snykλ μ½λ, μμ‘΄μ±, 컨ν μ΄λ λ° μ½λν μΈνλΌ(IaC)μ μ·¨μ½μ μ μ°Ύκ³ , μμ νκ³ , μλ°©νλ λ° λμμ μ£Όλ κ°λ°μ 보μ νλ«νΌμ λλ€. κ°λ° μν¬νλ‘μ°μ μννκ² ν΅ν©λμ΄ μ€μκ° νΌλλ°±κ³Ό μ€ν κ°λ₯ν ν΅μ°°λ ₯μ μ 곡νμ¬ μ²μλΆν° μμ ν μ ν리μΌμ΄μ μ ꡬμΆν μ μλλ‘ μ§μν©λλ€.
Snykλ νλ‘ νΈμλ 보μμ μν΄ νΉλ³ν μ€κ³λ λ€μν κΈ°λ₯μ μ 곡ν©λλ€:
- μμ‘΄μ± μ€μΊλ: Snykλ νλ‘μ νΈμ μμ‘΄μ±(μ: npm ν¨ν€μ§, yarn ν¨ν€μ§)μμ μλ €μ§ μ·¨μ½μ μ μ€μΊν©λλ€. μ·¨μ½ν ν¨ν€μ§λ₯Ό μλ³νκ³ ν¨μΉλ λ²μ μΌλ‘ μ κ·Έλ μ΄λνκ±°λ ν΄κ²° λ°©λ²μ μ μ©νλ λ± μμ λ°©λ²μ λν μ§μΉ¨μ μ 곡ν©λλ€.
- μ€ν μμ€ λΌμ΄μ μ€ μ€μ: Snykλ νλ‘μ νΈ μμ‘΄μ±μ λΌμ΄μ μ€λ₯Ό μλ³νκ³ ν΄λΉ λΌμ΄μ μ€ μ‘°κ±΄μ μ€μνκ³ μλμ§ νμΈνλ λ° λμμ μ€λλ€. μ΄λ νΈνλμ§ μλ λΌμ΄μ μ€λ₯Ό μ¬μ©νλ©΄ λ²μ λ¬Έμ λ‘ μ΄μ΄μ§ μ μλ μμ© νλ‘μ νΈμ νΉν μ€μν©λλ€.
- μ½λ λΆμ: Snykλ νλ‘ νΈμλ μ½λμμ XSS λ° CSRFμ κ°μ μ μ¬μ μ·¨μ½μ μ λΆμν©λλ€. μ·¨μ½μ μ λν μμΈν μ€λͺ κ³Ό μμ λ°©λ²μ λν κΆμ₯ μ¬νμ μ 곡ν©λλ€.
- CI/CD νμ΄νλΌμΈκ³Όμ ν΅ν©: Snykλ Jenkins, GitLab CI, GitHub Actionsμ κ°μ μΈκΈ° μλ CI/CD νμ΄νλΌμΈκ³Ό μννκ² ν΅ν©λ©λλ€. μ΄λ₯Ό ν΅ν΄ λΉλ κ³Όμ μμ μ½λμ μμ‘΄μ±μ μ·¨μ½μ μ μλμΌλ‘ μ€μΊνμ¬ μμ ν μ½λλ§ νλ‘λμ μ λ°°ν¬λλλ‘ λ³΄μ₯ν μ μμ΅λλ€.
- IDE ν΅ν©: Snykλ VS Code, IntelliJ IDEA λ± μΈκΈ° μλ IDEμ ν΅ν©λμ΄ μ½λ© μ€μ μ€μκ°μΌλ‘ μ·¨μ½μ νΌλλ°±μ μ 곡ν©λλ€.
- λ³΄κ³ λ° λͺ¨λν°λ§: Snykλ ν¬κ΄μ μΈ λ³΄κ³ λ° λͺ¨λν°λ§ κΈ°λ₯μ μ 곡νμ¬ μκ° κ²½κ³Όμ λ°λ₯Έ νλ‘ νΈμλ μ ν리μΌμ΄μ μ 보μ μνλ₯Ό μΆμ ν μ μμ΅λλ€. λν μλ‘μ΄ μ·¨μ½μ μ΄ λ°κ²¬λλ©΄ κ²½κ³ λ₯Ό μ 곡νμ¬ μλ‘μ΄ μνμ μ μνκ² λμν μ μλλ‘ ν©λλ€.
νλ‘ νΈμλ 보μμ μν Snyk ꡬν: λ¨κ³λ³ κ°μ΄λ
λ€μμ νλ‘ νΈμλ 보μμ μν΄ Snykλ₯Ό ꡬννλ λ¨κ³λ³ κ°μ΄λμ λλ€:
1. Snyk κ³μ κ°μ
첫 λ²μ§Έ λ¨κ³λ Snyk κ³μ μ κ°μ νλ κ²μ λλ€. νμμ λ°λΌ λ¬΄λ£ νλ λλ μ λ£ νλ μ€μμ μ νν μ μμ΅λλ€. λ¬΄λ£ νλμ μ νλ κΈ°λ₯μ μ 곡νλ©°, μ λ£ νλμ 무μ ν μ€μΊ λ° ν΅ν©κ³Ό κ°μ λ κ³ κΈ κΈ°λ₯μ μ 곡ν©λλ€.
Snyk μΉμ¬μ΄νΈ(snyk.io)λ₯Ό λ°©λ¬Ένμ¬ κ³μ μ μμ±νμμμ€.
2. Snyk CLI μ€μΉ
Snyk CLI(Command Line Interface)λ ν°λ―Έλμμ Snyk νλ«νΌκ³Ό μνΈ μμ©ν μ μκ² ν΄μ£Όλ 컀맨λ λΌμΈ λꡬμ λλ€. Snyk CLIλ₯Ό μ¬μ©νμ¬ μ½λμ μμ‘΄μ±μ μ·¨μ½μ μ μ€μΊνκ³ , μ ν리μΌμ΄μ μ λͺ¨λν°λ§νκ³ , Snyk κ³μ μ κ΄λ¦¬ν μ μμ΅λλ€.
Snyk CLIλ₯Ό μ€μΉνλ €λ©΄ μμ€ν μ Node.jsμ npm(Node Package Manager)μ΄ μ€μΉλμ΄ μμ΄μΌ ν©λλ€. Node.jsμ npmμ΄ μ€μΉλλ©΄ λ€μ λͺ λ Ήμ μ€ννμ¬ Snyk CLIλ₯Ό μ€μΉν μ μμ΅λλ€:
npm install -g snyk
3. Snyk CLI μΈμ¦
Snyk CLIλ₯Ό μ€μΉν ν Snyk κ³μ μΌλ‘ μΈμ¦ν΄μΌ ν©λλ€. μ΄λ₯Ό μν΄ λ€μ λͺ λ Ήμ μ€ννμμμ€:
snyk auth
μ΄ λͺ λ Ήμ λΈλΌμ°μ μ°½μ μ΄κ³ Snyk κ³μ μ λ‘κ·ΈμΈνλΌλ λ©μμ§λ₯Ό νμν©λλ€. λ‘κ·ΈμΈνλ©΄ Snykκ° API ν ν°μ μμ±νμ¬ μμ€ν μ κ΅¬μ± νμΌμ μ μ₯ν©λλ€. μ΄ ν ν°μ Snyk κ³μ μ λν μ κ·Ό κΆνμ λΆμ¬νλ―λ‘ μμ νκ² λ³΄κ΄ν΄μΌ ν©λλ€.
4. νλ‘μ νΈ μ·¨μ½μ μ€μΊ
μ΄μ Snyk CLIλ₯Ό μ€μΉνκ³ μΈμ¦νμΌλ―λ‘ νλ‘μ νΈμ μ·¨μ½μ μ€μΊμ μμν μ μμ΅λλ€. ν°λ―Έλμμ νλ‘μ νΈμ λ£¨νΈ λλ ν λ¦¬λ‘ μ΄λνμ¬ λ€μ λͺ λ Ήμ μ€ννμμμ€:
snyk test
Snykλ νλ‘μ νΈμ μμ‘΄μ±κ³Ό μ½λμμ μλ €μ§ μ·¨μ½μ μ μ€μΊν©λλ€. κ·Έλ° λ€μ λ°κ²¬λ λͺ¨λ μ·¨μ½μ κ³Ό μμ λ°©λ²μ λν κΆμ₯ μ¬νμ λμ΄νλ λ³΄κ³ μλ₯Ό νμν©λλ€.
νΉμ μμ‘΄μ± μ νμ μ΄μ μ λ§μΆ λ³΄λ€ λμνλ μ€μΊμ μν΄ λ€μμ μ¬μ©ν μ μμ΅λλ€:
snyk test --npm
snyk test --yarn
5. μ·¨μ½μ μμ
νλ‘μ νΈμμ μ·¨μ½μ μ μλ³ν νμλ μ΄λ₯Ό μμ ν΄μΌ ν©λλ€. Snykλ μ·¨μ½ν μμ‘΄μ±μ ν¨μΉλ λ²μ μΌλ‘ μ κ·Έλ μ΄λνκ±°λ ν΄κ²° λ°©λ²μ μ μ©νλ λ± κ° μ·¨μ½μ μ μμ νλ λ°©λ²μ λν μμΈν μ§μΉ¨μ μ 곡ν©λλ€.
λ§μ κ²½μ°, Snykλ νμν λ³κ²½ μ¬νμ΄ ν¬ν¨λ ν 리νμ€νΈ(pull request)λ₯Ό μμ±νμ¬ μλμΌλ‘ μ·¨μ½μ μ μμ ν μ μμ΅λλ€. μ€μΊ ν "Snyk fix" μ΅μ μ μ°Ύμ보μμμ€.
6. μλ‘μ΄ μ·¨μ½μ μ λν νλ‘μ νΈ λͺ¨λν°λ§
νλ‘μ νΈμ λͺ¨λ μλ €μ§ μ·¨μ½μ μ μμ ν νμλ μλ‘μ΄ μ·¨μ½μ μ λν΄ νλ‘μ νΈλ₯Ό κ³μ λͺ¨λν°λ§νλ κ²μ΄ μ€μν©λλ€. μλ‘μ΄ μ·¨μ½μ μ νμ λ°κ²¬λλ―λ‘ κ²½κ³λ₯Ό λ¦μΆμ§ μκ³ λ°μνλ μλ‘μ΄ μνμ μ μ μ μΌλ‘ λμ²νλ κ²μ΄ μ€μν©λλ€.
Snykλ μ§μμ μΈ λͺ¨λν°λ§ κΈ°λ₯μ μ 곡νμ¬ μκ° κ²½κ³Όμ λ°λ₯Έ νλ‘ νΈμλ μ ν리μΌμ΄μ μ 보μ μνλ₯Ό μΆμ ν μ μμ΅λλ€. λν μλ‘μ΄ μ·¨μ½μ μ΄ λ°κ²¬λλ©΄ κ²½κ³ λ₯Ό μ 곡νμ¬ μλ‘μ΄ μνμ μ μνκ² λμν μ μμ΅λλ€. λͺ¨λν°λ§μ νμ±ννλ €λ©΄ λ€μμ μ€ννμμμ€:
snyk monitor
μ΄ λͺ λ Ήμ νλ‘μ νΈμ μμ‘΄μ± λ§€λνμ€νΈλ₯Ό Snykμ μ λ‘λνλ©°, Snykλ μ΄λ₯Ό μλ‘μ΄ μ·¨μ½μ μ λν΄ λͺ¨λν°λ§νκ³ λ°κ²¬ μ κ²½κ³ λ₯Ό 보λ λλ€.
κ°λ° μν¬νλ‘μ°μ Snyk ν΅ν©νκΈ°
Snykμ μ΄μ μ κ·Ήλννλ €λ©΄ κ°λ° μν¬νλ‘μ°μ ν΅ν©νλ κ²μ΄ μ€μν©λλ€. λ€μμ Snykλ₯Ό μν¬νλ‘μ°μ ν΅ν©νλ λͺ κ°μ§ λ°©λ²μ λλ€:
1. CI/CD νμ΄νλΌμΈκ³Ό ν΅ν©
Snykλ₯Ό CI/CD νμ΄νλΌμΈκ³Ό ν΅ν©νλ©΄ λΉλ κ³Όμ μμ μ½λμ μμ‘΄μ±μ μ·¨μ½μ μ μλμΌλ‘ μ€μΊν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μμ ν μ½λλ§ νλ‘λμ μ λ°°ν¬λλλ‘ λ³΄μ₯ν©λλ€.
Snykλ Jenkins, GitLab CI, GitHub Actionsμ κ°μ μΈκΈ° μλ CI/CD νμ΄νλΌμΈκ³Όμ ν΅ν©μ μ 곡ν©λλ€. νΉμ ν΅ν© λ¨κ³λ CI/CD νλ«νΌμ λ°λΌ λ€λ₯΄μ§λ§, μΌλ°μ μΌλ‘ λΉλ νλ‘μΈμ€μ Snyk μ€μΊ λ¨κ³λ₯Ό μΆκ°νλ κ²μ ν¬ν¨ν©λλ€.
GitHub Actions μ¬μ© μμ:
name: Snyk Security Scan
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
snyk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/snyk@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
args: --severity-threshold=high
μ΄ μμμμ GitHub Actionμ `main` λΈλμΉμ λν λͺ¨λ νΈμμ λͺ¨λ ν 리νμ€νΈμμ Snykλ₯Ό μ€νν©λλ€. `SNYK_TOKEN` νκ²½ λ³μλ Snyk API ν ν°μΌλ‘ μ€μ ν΄μΌ νλ©°, μ΄λ GitHub 리ν¬μ§ν 리μ μν¬λ¦ΏμΌλ‘ μ μ₯λμ΄μΌ ν©λλ€. `--severity-threshold=high` μΈμλ Snykμκ² μ¬κ°λκ° λμ(high) λλ μΉλͺ μ (critical)μΈ μ·¨μ½μ λ§ λ³΄κ³ νλλ‘ μ§μν©λλ€.
2. IDEμ ν΅ν©
Snykλ₯Ό IDEμ ν΅ν©νλ©΄ μ½λ© μ€μ μ€μκ°μΌλ‘ μ·¨μ½μ νΌλλ°±μ λ°μ μ μμ΅λλ€. μ΄λ κ°λ° κ³Όμ μ΄κΈ°μ μ·¨μ½μ μ μλ³νκ³ μμ νμ¬ νλ‘λμ μ λλ¬νκΈ° μ μ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° λμμ΄ λ μ μμ΅λλ€.
Snykλ Visual Studio Code, IntelliJ IDEA, Eclipseμ κ°μ μΈκΈ° μλ IDEμμ ν΅ν©μ μ 곡ν©λλ€. μ΄λ¬ν ν΅ν©μ μΌλ°μ μΌλ‘ μΈλΌμΈ μ·¨μ½μ κ°μ‘° νμ, μ½λ μμ± μ μ λ° μλ μμ κ³Ό κ°μ κΈ°λ₯μ μ 곡ν©λλ€.
3. Snykμ μΉν μ¬μ©
Snykμ μΉν μ μ¬μ©νλ©΄ μλ‘μ΄ μ·¨μ½μ μ΄λ κΈ°ν 보μ μ΄λ²€νΈμ λν μλ¦Όμ λ°μ μ μμ΅λλ€. μΉν μ μ¬μ©νμ¬ Snykλ₯Ό ν°μΌν μμ€ν μ΄λ 보μ μ 보 λ° μ΄λ²€νΈ κ΄λ¦¬(SIEM) μμ€ν κ³Ό κ°μ λ€λ₯Έ λꡬ λ° μμ€ν κ³Ό ν΅ν©ν μ μμ΅λλ€.
Snykλ₯Ό νμ©ν νλ‘ νΈμλ 보μ λͺ¨λ² μ¬λ‘
λ€μμ Snykλ₯Ό μ¬μ©νμ¬ νλ‘ νΈμλ μ ν리μΌμ΄μ μ 보νΈνκΈ° μν λͺ κ°μ§ λͺ¨λ² μ¬λ‘μ λλ€:
- μ½λμ μμ‘΄μ±μ μ κΈ°μ μΌλ‘ μ€μΊνμμμ€: λ§€μΌ λλ λ§€μ£Όμ κ°μ΄ μ κΈ°μ μΌλ‘ μ½λμ μμ‘΄μ±μ μ·¨μ½μ μ μ€μΊν΄μΌ ν©λλ€.
- μ·¨μ½μ μ μ μνκ² μμ νμμμ€: μ·¨μ½μ μ λ°κ²¬νλ©΄ κ°λ₯ν ν 빨리 μμ νμμμ€. μ·¨μ½μ μ΄ μμ λμ§ μμ μ±λ‘ μ€λ λ°©μΉλ μλ‘ μ μ©λ μνμ΄ μ»€μ§λλ€.
- μμ ν μ½λ© κ΄νμ μ¬μ©νμμμ€: μ μ΄μ μ·¨μ½μ μ΄ λ°μνμ§ μλλ‘ μμ ν μ½λ© κ΄νμ λ°λ₯΄μμμ€. μ¬κΈ°μλ μ λ ₯ μ ν¨μ± κ²μ¬, μΆλ ₯ μΈμ½λ©, μ μ ν μΈμ¦ λ° κΆν λΆμ¬ λ±μ΄ ν¬ν¨λ©λλ€.
- μμ‘΄μ±μ μ΅μ μνλ‘ μ μ§νμμμ€: μμ‘΄μ±μ μ΅μ 보μ ν¨μΉλ‘ μ λ°μ΄νΈν΄μΌ ν©λλ€. μ·¨μ½ν μμ‘΄μ±μ νλ‘ νΈμλ μ ν리μΌμ΄μ μ μ£Όμ 보μ μ·¨μ½μ μμΈμ λλ€.
- μλ‘μ΄ μ·¨μ½μ μ λν΄ μ ν리μΌμ΄μ μ λͺ¨λν°λ§νμμμ€: μλ‘μ΄ μ·¨μ½μ μ λν΄ μ ν리μΌμ΄μ μ μ§μμ μΌλ‘ λͺ¨λν°λ§νκ³ λ°μνλ λͺ¨λ μλ‘μ΄ μνμ μ μνκ² λμνμμμ€.
- νμκ² νλ‘ νΈμλ 보μμ λν΄ κ΅μ‘νμμμ€: νμ΄ νλ‘ νΈμλ 보μμ μ€μμ±μ μΈμνκ³ μμ ν μ½λ© κ΄νκ³Ό Snyk μ¬μ© λ°©λ²μ λν΄ κ΅μ‘λ°λλ‘ νμμμ€.
νλ‘ νΈμλ 보μμ μν Snyk κ³ κΈ κΈ°λ₯
κΈ°λ³Έμ μΈ μ·¨μ½μ μ€μΊλ μΈμλ Snykλ νλ‘ νΈμλ 보μ μνλ₯Ό λμ± κ°νν μ μλ μ¬λ¬ κ³ κΈ κΈ°λ₯μ μ 곡ν©λλ€:
- Snyk Code: μ΄ κΈ°λ₯μ μ μ μ½λ λΆμμ μννμ¬ μμ€ μ½λμμ XSS, SQL μΈμ μ , μμ νμ§ μμ μμ§λ ¬νμ κ°μ μ μ¬μ μΈ λ³΄μ μ·¨μ½μ μ μλ³ν©λλ€.
- Snyk Container: 컨ν μ΄λλ₯Ό μ¬μ©νμ¬ νλ‘ νΈμλ μ ν리μΌμ΄μ μ λ°°ν¬νλ κ²½μ°, Snyk Containerκ° μ»¨ν μ΄λ μ΄λ―Έμ§μ μ·¨μ½μ μ μ€μΊν μ μμ΅λλ€.
- Snyk Infrastructure as Code: μ½λν μΈνλΌ(IaC)λ₯Ό μ¬μ©νμ¬ μΈνλΌλ₯Ό νλ‘λΉμ λνλ κ²½μ°, Snyk IaCκ° IaC ꡬμ±μ 보μ μ€μ μ€λ₯λ₯Ό μ€μΊν μ μμ΅λλ€.
- μ¬μ©μ μ μ κ·μΉ: Snykλ₯Ό μ¬μ©νλ©΄ μ ν리μΌμ΄μ λλ μ‘°μ§μ νΉμ ν μ·¨μ½μ μ νμ§νκΈ° μν μ¬μ©μ μ μ κ·μΉμ μ μν μ μμ΅λλ€.
- μ°μ μμ μ§μ : Snykλ μ¬κ°λμ μν₯μ λ°λΌ μ·¨μ½μ μ μ°μ μμλ₯Ό μ νλ λ° λμμ μ£Όμ΄ κ°μ₯ μ€μν λ¬Έμ μ λ¨Όμ μ§μ€ν μ μλλ‘ ν©λλ€.
μ€μ μ¬μ© μ¬λ‘
λ€μμ Snykκ° μ‘°μ§μ νλ‘ νΈμλ 보μμ κ°μ νλ λ° λμμ΄ λ μ€μ μ¬λ‘μ λλ€:
- ν λν μ μμκ±°λ νμ¬λ Snykλ₯Ό μ¬μ©νμ¬ νλ‘ νΈμλ μ½λμ μμ‘΄μ±μ μ€μΊνμ¬ κ³΅κ²©μκ° μ¬μ©μ μ격 μ¦λͺ μ νμΉ μ μλ μΉλͺ μ μΈ XSS μ·¨μ½μ μ λ°κ²¬νμ΅λλ€. μ΄ νμ¬λ μ μνκ² μ·¨μ½μ μ μμ νκ³ μ μ¬μ μΈ λ°μ΄ν° μ μΆμ λ§μ μ μμμ΅λλ€.
- ν κΈμ΅ μλΉμ€ νμ¬λ Snykλ₯Ό μ¬μ©νμ¬ νλ‘ νΈμλ μ ν리μΌμ΄μ μ μλ‘μ΄ μ·¨μ½μ μ λͺ¨λν°λ§νκ³ μ΅κ·Ό νλ‘μ νΈμ μΆκ°λ μ·¨μ½ν μμ‘΄μ±μ λ°κ²¬νμ΅λλ€. μ΄ νμ¬λ μ μνκ² μμ‘΄μ±μ μ λ°μ΄νΈνκ³ μ μ¬μ μΈ κ³΅κΈλ§ 곡격μ λ§μ μ μμμ΅λλ€.
- ν μ λΆ κΈ°κ΄μ Snykλ₯Ό μ¬μ©νμ¬ νλ‘ νΈμλ μ½λμ μμ‘΄μ±μ μ€μΊνκ³ λ΄λΆ μ μ± κ³Ό νΈνλμ§ μλ μ¬λ¬ μ€ν μμ€ λΌμ΄μ μ€λ₯Ό λ°κ²¬νμ΅λλ€. μ΄ κΈ°κ΄μ νΈνλμ§ μλ μμ‘΄μ±μ λ체 λΌμ΄λΈλ¬λ¦¬λ‘ κ΅μ²΄νκ³ λΌμ΄μ μ€ μꡬ μ¬νμ μ€μν μ μμμ΅λλ€.
μ¬λ‘ μ°κ΅¬ μμ: κΈμ΅ κΈ°κ΄
ν λ€κ΅μ κΈμ΅ κΈ°κ΄μ μ 체 νλ‘ νΈμλ κ°λ° νμ΄νλΌμΈμ Snykλ₯Ό λμ νμ΅λλ€. Snyk μ΄μ μλ μ£Όλ‘ μλ μ½λ κ²ν μ μΉ¨ν¬ ν μ€νΈμ μμ‘΄νλλ°, μ΄λ μκ°μ΄ λ§μ΄ κ±Έλ¦¬κ³ μ’ μ’ μ€μν μ·¨μ½μ μ λμ³€μ΅λλ€. Snykλ₯Ό λμ ν ν μ΄ κΈ°κ΄μ λ€μκ³Ό κ°μ μ΄μ μ κ²½ννμ΅λλ€:
- μ·¨μ½μ ν΄κ²° μκ° λ¨μΆ: Snykμ μλ μ€μΊκ³Ό μ€μκ° νΌλλ°± λλΆμ κ°λ°μλ€μ κ°λ° κ³Όμ μ΄κΈ°μ μ·¨μ½μ μ μλ³νκ³ μμ ν μ μμμΌλ©°, μ΄λ‘ μΈν΄ ν΄κ²°μ νμν μκ°κ³Ό λΉμ©μ΄ μ€μμ΅λλ€.
- 보μ μν κ°μ : Snykλ μ΄μ μ λ°κ²¬λμ§ μμλ μλΉμμ μ·¨μ½μ μ μλ³νκ³ ν΄κ²°νλ λ° λμμ μ£Όμ΄ μ λ°μ μΈ λ³΄μ μνλ₯Ό κ°μ νμ΅λλ€.
- κ°λ°μ μμ°μ± ν₯μ: Snykκ° κΈ°κ΄μ IDE λ° CI/CD νμ΄νλΌμΈκ³Ό ν΅ν©λλ©΄μ κ°λ°μλ€μ μλμΌλ‘ μ·¨μ½μ μ μ°Ύλ λ° μκ°μ λλΉνλ λμ μ½λ μμ±μ μ§μ€ν μ μμμ΅λλ€.
- κ·μ μ€μ κ°ν: Snykλ ν¬κ΄μ μΈ λ³΄κ³ λ° λͺ¨λν°λ§ κΈ°λ₯μ μ 곡νμ¬ κΈ°κ΄μ΄ μ°μ κ·μ λ° λ΄λΆ 보μ μ μ± μ μ€μνλ λ° λμμ μ£Όμμ΅λλ€.
νλ‘ νΈμλ 보μμ λ―Έλ
μΉ μ ν리μΌμ΄μ μ΄ μ μ λ 볡μ‘νκ³ μ κ΅ν΄μ§μ λ°λΌ νλ‘ νΈμλ 보μμ κ³μν΄μ μ€μν κ΄μ¬μ¬κ° λ κ²μ λλ€. νλ‘ νΈμλμμ WebAssemblyλ μλ²λ¦¬μ€ ν¨μμ κ°μ κΈ°μ μ λ±μ₯μ 곡격 νλ©΄μ λμ± νμ₯μν΅λλ€. μ‘°μ§μ Snykμ κ°μ λꡬλ₯Ό μ¬μ©νμ¬ μ·¨μ½μ μ΄ μ μ©λκΈ° μ μ μ΄λ₯Ό μλ³νκ³ μννλ μ μ μ μΈ μ κ·Ό λ°©μμ μ±νν΄μΌ ν©λλ€.
νλ‘ νΈμλ 보μμ λ―Έλλ λ λ§μ μλν, λ μ κ΅ν μν νμ§ κΈ°μ , κ·Έλ¦¬κ³ κ°λ°μ κ΅μ‘μ λν λ ν° κ°μ‘°λ₯Ό ν¬ν¨ν κ²μ λλ€. κ°λ°μλ€μ μ²μλΆν° μμ ν μ ν리μΌμ΄μ μ ꡬμΆνλ λ° νμν μ§μκ³Ό λꡬλ₯Ό κ°μΆμ΄μΌ ν©λλ€.
κ²°λ‘
νλ‘ νΈμλ 보μμ μ΅μ μΉ μ ν리μΌμ΄μ κ°λ°μ μ€μν μΈ‘λ©΄μ λλ€. Snykλ₯Ό ꡬνν¨μΌλ‘μ¨ μ½λμ μμ‘΄μ±μ μ·¨μ½μ μ μ μ μ μΌλ‘ μ€μΊνκ³ , μμ‘΄μ±μ ν¨κ³Όμ μΌλ‘ κ΄λ¦¬νλ©°, 보μμ κ°λ° μν¬νλ‘μ°μ ν΅ν©ν μ μμ΅λλ€. μ΄λ 곡격μ λν 볡μλ ₯μ΄ μκ³ μ¬μ©μμ λ°μ΄ν°λ₯Ό 보νΈνλ μμ ν νλ‘ νΈμλ μ ν리μΌμ΄μ μ ꡬμΆνλ λ° λμμ΄ λ κ²μ λλ€.
보μ μΉ¨ν΄κ° λ°μν λκΉμ§ κΈ°λ€λ¦¬μ§ λ§κ³ νλ‘ νΈμλ 보μμ λν΄ μκ°νκΈ° μμνμμμ€. μ§κΈ λ°λ‘ Snykλ₯Ό ꡬννκ³ μΉ μ ν리μΌμ΄μ 보νΈμ λν μ μ μ μΈ μ κ·Ό λ°©μμ μ·¨νμμμ€.
μ€ν κ°λ₯ν μ‘°μΈ:
- λ¬΄λ£ Snyk κ³μ μΌλ‘ μμνμ¬ κ·Έ κΈ°λ₯μ νκ°ν΄ 보μμμ€.
- μλ μ€μΊμ μν΄ CI/CD νμ΄νλΌμΈμ Snykλ₯Ό ν΅ν©νμμμ€.
- κ°λ°νμκ² μμ ν μ½λ© κ΄νκ³Ό Snyk μ¬μ©λ²μ λν΄ κ΅μ‘νμμμ€.
- Snykμ λ³΄κ³ μλ₯Ό μ κΈ°μ μΌλ‘ κ²ν νκ³ μλ³λ μ·¨μ½μ μ ν΄κ²°νμμμ€.