--- id: [[P-Reinforce]]-AUTO-E9615F category: "10_Wiki/πŸ’‘ Topics/AI" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - 정적 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ³΄μ•ˆ ν…ŒμŠ€νŠΈ([[SAST]])" --- # [[정적 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ³΄μ•ˆ ν…ŒμŠ€νŠΈ(SAST)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 정적 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ³΄μ•ˆ ν…ŒμŠ€νŠΈ(SAST)λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜μ§€ μ•Šκ³  μ†ŒμŠ€ μ½”λ“œ, λ°”μ΄νŠΈμ½”λ“œ λ“±μ˜ ꡬ쑰와 ꡬ문을 μ •μ μœΌλ‘œ λΆ„μ„ν•˜μ—¬ λ³΄μ•ˆ 취약점과 논리적 였λ₯˜λ₯Ό μ‹λ³„ν•˜λŠ” ν™”μ΄νŠΈλ°•μŠ€ ν…ŒμŠ€νŠΈ κΈ°λ²•μž…λ‹ˆλ‹€ [1, 2]. μ†Œν”„νŠΈμ›¨μ–΄ 개발 생λͺ…μ£ΌκΈ°(SDLC)의 κ°€μž₯ 초기 단계(μ½”λ“œ μž‘μ„± 및 CI/CD νŒŒμ΄ν”„λΌμΈ)에 μ μš©λ˜μ–΄ 문제λ₯Ό λ°œκ²¬ν•˜λ―€λ‘œ, μˆ˜μ •μ— λ“œλŠ” λΉ„μš©κ³Ό μ‹œκ°„μ„ 크게 μ ˆκ°ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1, 3, 4]. 졜근의 SAST 도ꡬ듀은 λ‹¨μˆœν•œ νŒ¨ν„΄ 맀칭을 λ„˜μ–΄ λ¨Έμ‹ λŸ¬λ‹ 및 λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈ(LLM)을 κ²°ν•©ν•˜μ—¬ μ½”λ“œμ˜ λ¬Έλ§₯을 μ΄ν•΄ν•˜κ³ , μžλ™μœΌλ‘œ μˆ˜μ • μ½”λ“œλ₯Ό μ œμ•ˆν•˜λŠ” AI 기반으둜 μ§„ν™”ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ [5, 6]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **μž‘λ™ 원리 및 μ£Όμš” 탐지 ν•­λͺ©:** SASTλŠ” μ†ŒμŠ€ μ½”λ“œλ₯Ό ꡬ문 λΆ„μ„ν•˜μ—¬ 좔상 ꡬ문 트리(AST)λ₯Ό κ΅¬μΆ•ν•˜κ³  μ œμ–΄ 흐름, 데이터 흐름(μ˜€μ—Ό 뢄석 λ“±) 및 의미둠적 뢄석을 μ μš©ν•˜μ—¬ 취약점을 μ°Ύμ•„λƒ…λ‹ˆλ‹€ [2, 7, 8]. 이λ₯Ό 톡해 SQL μΈμ μ…˜, 크둜슀 μ‚¬μ΄νŠΈ μŠ€ν¬λ¦½νŒ…(XSS), 경둜 탐색, ν•˜λ“œμ½”λ”©λœ λΉ„λ°€λ²ˆν˜Έ, μ•ˆμ „ν•˜μ§€ μ•Šμ€ μ•”ν˜Έν™” μ•Œκ³ λ¦¬μ¦˜ λ“± [[OWASP Top 10]]에 ν•΄λ‹Ήν•˜λŠ” μ£Όμš” λ³΄μ•ˆ μœ„ν˜‘μ„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포 전에 μ‹λ³„ν•©λ‹ˆλ‹€ [9-12]. * **SAST λ„μž…μ˜ μž₯점:** * **μ‘°κΈ° 발견 및 μˆ˜μ •(μ‹œν”„νŠΈ λ ˆν”„νŠΈ):** IDE ν”ŒλŸ¬κ·ΈμΈμ΄λ‚˜ 컀밋 이전 단계(Pre-commit hook)에 μ—°λ™λ˜μ–΄, κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” μ¦‰μ‹œ ν”Όλ“œλ°±μ„ μ œκ³΅λ°›κ³  μ‹€μ‹œκ°„μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [13-15]. * **λͺ…ν™•ν•œ κ°€μ΄λ“œ 제곡:** 취약점이 λ°œμƒν•œ μ •ν™•ν•œ μ½”λ“œ μœ„μΉ˜μ™€ 데이터 흐름을 μ‹œκ°μ μœΌλ‘œ μ œκ³΅ν•˜μ—¬ 원인 νŒŒμ•… 및 μˆ˜μ •μ΄ 맀우 μš©μ΄ν•©λ‹ˆλ‹€ [14, 16]. * **μ‹€ν–‰ ν™˜κ²½ λΆˆν•„μš”:** μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜μ§€ μ•Šκ³ λ„ 뢄석이 κ°€λŠ₯ν•΄ 동적 ν…ŒμŠ€νŠΈ(DAST)에 λΉ„ν•΄ μŠ€μΊ” 속도가 λΉ λ₯΄κ³  μžλ™ν™”κ°€ μ‰½μŠ΅λ‹ˆλ‹€ [14, 17]. * **ν•œκ³„ 및 단점:** * **μ»¨ν…μŠ€νŠΈ λΆ€μ‘± 및 μ˜€νƒ(False Positive):** λŸ°νƒ€μž„ ν™˜κ²½μ΄λ‚˜ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 μ˜λ„λ₯Ό μ™„μ „νžˆ μ΄ν•΄ν•˜μ§€ λͺ»ν•΄, μ‹€μ œλ‘œλŠ” μ•ˆμ „ν•œ μ½”λ“œμž„μ—λ„ μ·¨μ•½μ μœΌλ‘œ κ²½κ³ ν•˜λŠ” μ˜€νƒ(False Positive)κ³Ό 미탐(False Negative)이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€ [18, 19]. * **μ–Έμ–΄ 쒅속성:** 뢄석 λŒ€μƒ μ½”λ“œκ°€ μž‘μ„±λœ νŠΉμ • ν”„λ‘œκ·Έλž˜λ° 언어와 ν”„λ ˆμž„μ›Œν¬λ₯Ό ν•΄λ‹Ή 도ꡬ가 λͺ…μ‹œμ μœΌλ‘œ μ§€μ›ν•΄μ•Όλ§Œ μž‘λ™ν•©λ‹ˆλ‹€ [19]. * **AI 기반 SAST의 λ“±μž₯:** 전톡적인 SASTλŠ” μ •ν•΄μ§„ κ·œμΉ™κ³Ό νŒ¨ν„΄μ— μ˜μ‘΄ν•˜μ§€λ§Œ, ν˜„λŒ€μ˜ AI 기반 SAST(예: Snyk Code, [[Corgea]] λ“±)λŠ” 수백만 개의 μ˜€ν”ˆμ†ŒμŠ€ 컀밋 데이터λ₯Ό ν•™μŠ΅ν•œ λ¨Έμ‹ λŸ¬λ‹/LLM 엔진을 ν™œμš©ν•©λ‹ˆλ‹€ [6, 20, 21]. 이λ₯Ό 톡해 μ—¬λŸ¬ 파일과 λͺ¨λ“ˆμ— 걸친 λ³΅μž‘ν•œ 데이터 흐름(Interfile [[Analysis]])을 μΆ”μ ν•˜κ³ , λ‹¨μˆœ κ²½κ³ λ₯Ό λ„˜μ–΄ κ°œλ°œμžκ°€ 즉각 λ°˜μ˜ν•  수 μžˆλŠ” 상황에 λ§žλŠ” μžλ™ μˆ˜μ •(Auto-fix) μ½”λ“œλ₯Ό μ œμ•ˆν•©λ‹ˆλ‹€ [22-24]. * **효과적인 ν™œμš©μ„ μœ„ν•œ ν•˜μ΄λΈŒλ¦¬λ“œ μ½”λ“œ 리뷰:** μžλ™ν™”λœ SASTλŠ” μ•Œλ €μ§„ λ³΄μ•ˆ 취약점과 μŠ€νƒ€μΌ 였λ₯˜λ₯Ό 기계적인 μ†λ„λ‘œ μΌκ΄€λ˜κ²Œ μ°Ύμ•„λ‚΄λŠ” 데 νƒμ›”ν•©λ‹ˆλ‹€ [25, 26]. κ·ΈλŸ¬λ‚˜ λ„κ΅¬λŠ” μ•„ν‚€ν…μ²˜μ˜ νŠΈλ ˆμ΄λ“œμ˜€ν”„λ‚˜ 도메인 νŠΉν™” λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ 평가할 수 μ—†μŠ΅λ‹ˆλ‹€ [27, 28]. λ”°λΌμ„œ SASTλ₯Ό CI/CD νŒŒμ΄ν”„λΌμΈμ˜ 1μ°¨ ν’ˆμ§ˆ 게이트둜 μžλ™ν™”ν•˜μ—¬ 반볡적인 결함을 κ±ΈλŸ¬λ‚΄κ³ , μ•„ν‚€ν…μ²˜λ‚˜ λ―Όκ°ν•œ κΆŒν•œ 둜직 등에 λŒ€ν•΄μ„œλŠ” μ‚¬λžŒμ΄ 직접 λ¬Έλ§₯을 νŒŒμ•…ν•˜λŠ” μˆ˜λ™ μ½”λ“œ 리뷰(Manual Review)λ₯Ό κ²°ν•©ν•˜λŠ” ν•˜μ΄λΈŒλ¦¬λ“œ 접근법이 κ°€μž₯ μ΄μƒμ μž…λ‹ˆλ‹€ [29-31]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** AI λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[동적 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ³΄μ•ˆ ν…ŒμŠ€νŠΈ(DAST)]], [[μ†Œν”„νŠΈμ›¨μ–΄ ꡬ성 뢄석(SCA)]], [[μ‹œν”„νŠΈ λ ˆν”„νŠΈ([[Shift]]-Left)]], [[좔상 ꡬ문 트리(AST)]] - **Projects/Contexts:** CI/CD νŒŒμ΄ν”„λΌμΈ, [[OWASP Top 10]], [[ν•˜μ΄λΈŒλ¦¬λ“œ μ½”λ“œ 리뷰]] - **Contradictions/Notes:** * "전톡적인 κ·œμΉ™ 기반의 SAST λ„κ΅¬λŠ” 50~80%에 이λ₯΄λŠ” 높은 μ˜€νƒλ₯ (False Positive)을 보여 개발자의 ν”Όλ‘œλ„λ₯Ό 높일 수 μžˆμ§€λ§Œ, 졜근의 AI 및 기계 ν•™μŠ΅ 기반 SAST(예: Veracode, Corgea λ“±)λŠ” μ»¨ν…μŠ€νŠΈλ₯Ό μ΄ν•΄ν•¨μœΌλ‘œμ¨ μ˜€νƒλ₯ μ„ 5% μ΄ν•˜(일뢀 1.1% 미만)둜 ν˜„μ €νžˆ 쀄일 수 μžˆλ‹€κ³  λ³΄κ³ λ©λ‹ˆλ‹€." [19, 32]. * "μžλ™ν™”λœ 정적 뢄석 λ„κ΅¬λ§ŒμœΌλ‘œ λͺ¨λ“  λ³΄μ•ˆ 였λ₯˜λ₯Ό 막을 수 μžˆλ‹€κ³  κΈ°λŒ€ν•˜λŠ” 것은 μœ„ν—˜ν•©λ‹ˆλ‹€. 싀증 연ꡬ에 λ”°λ₯΄λ©΄ SAST λ„κ΅¬λŠ” μ‹€μ œ μ‘΄μž¬ν•˜λŠ” μ·¨μ•½μ μ˜ μ•½ 22%λ₯Ό μ™„μ „νžˆ 놓칠 수 있으며, λ”°λΌμ„œ μžλ™ν™” 도ꡬλ₯Ό λ§Ήμ‹ ν•˜μ§€ 말고 κ³ μœ„ν—˜ μ½”λ“œ 변경에 λŒ€ν•΄μ„œλŠ” λ°˜λ“œμ‹œ μˆ˜λ™ μ½”λ“œ 리뷰λ₯Ό 병행해야 ν•©λ‹ˆλ‹€." [18, 33-35]. --- *Last updated: 2026-04-18* ---