--- id: wiki-2026-0508-reachability-analysis title: Reachability Analysis category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [] duplicate_of: none source_trust_level: A confidence_score: 0.92 tags: [auto-consolidated, technical-documentation] raw_sources: [] last_reinforced: 2026-05-08 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Reachability Analysis|Reachability Analysis]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 도달 κ°€λŠ₯μ„± 뢄석(Reachability Analysis)은 μ†ŒμŠ€ μ½”λ“œ 및 μ˜€ν”ˆ μ†ŒμŠ€ 쒅속성 뢄석에 μ‚¬μš©λ˜λŠ” λ³΄μ•ˆ ν…ŒμŠ€νŠΈ κΈ°λ²•μœΌλ‘œ, μ˜€μ—Όλœ 데이터가 λ―Όκ°ν•œ 싱크(sink)에 도달할 수 μžˆλŠ”μ§€ λ˜λŠ” νŠΉμ • 취약점이 μ‹€μ œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ΄λ‚˜ μ‹€ν–‰ κ²½λ‘œμ—μ„œ 호좜 κ°€λŠ₯ν•œμ§€λ₯Ό μΆ”μ ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€ [1, 2]. 콜 κ·Έλž˜ν”„(call graph)와 데이터 흐름 뢄석을 톡해 μ·¨μ•½ν•œ ν•¨μˆ˜λ‘œμ˜ μ—°κ²° 고리λ₯Ό μ‹λ³„ν•˜λ©°, 도달할 수 μ—†λŠ” λ°λ“œ μ½”λ“œ(dead code)λ₯Ό ν•„ν„°λ§ν•©λ‹ˆλ‹€ [3, 4]. 결과적으둜 λ…Έμ΄μ¦ˆμ™€ μ˜€νƒ(false positives)을 쀄여 개발자 및 λ³΄μ•ˆνŒ€μ΄ μ‹€μ œ μœ„ν˜‘μ— 집쀑할 수 μžˆλ„λ‘ λ•λŠ” 핡심 κΈ°μˆ μž…λ‹ˆλ‹€ [4, 5]. --- > 도달 κ°€λŠ₯μ„± 뢄석(Reachability Analysis)은 μ†ŒμŠ€ μ½”λ“œ λ‚΄μ˜ 데이터 νλ¦„μ΄λ‚˜ 호좜 κ·Έλž˜ν”„(Call Graph)λ₯Ό μΆ”μ ν•˜μ—¬ νŠΉμ • 취약점이 μ‹€μ œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ΄λ‚˜ μ‹€ν–‰ κ²½λ‘œμ—μ„œ 도달 κ°€λŠ₯ν•œμ§€λ₯Ό νŒλ³„ν•˜λŠ” λ³΄μ•ˆ 뢄석 κΈ°λ²•μž…λ‹ˆλ‹€ [1, 2]. 이λ₯Ό 톡해 μ‹ λ’°ν•  수 μ—†λŠ” μ˜€μ—Όλœ 데이터가 λ―Όκ°ν•œ 싱크(sink)λ‚˜ μ·¨μ•½ν•œ ν•¨μˆ˜μ— 도달할 수 μžˆλŠ”μ§€ κ²€μ¦ν•©λ‹ˆλ‹€ [3]. 결과적으둜 μ‹€μ œ μ‹€ν–‰λ˜μ§€ μ•ŠλŠ” 경둜의 취약점을 ν•„ν„°λ§ν•˜μ—¬ κ²½κ³  ν”Όλ‘œ(alert fatigue)λ₯Ό 쀄이고 λ³΄μ•ˆ 취약점 ν•΄κ²°μ˜ μš°μ„ μˆœμœ„λ₯Ό λͺ…ν™•νžˆ μ§€μ •ν•˜λŠ” 데 핡심적인 역할을 ν•©λ‹ˆλ‹€ [2, 4]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **μž‘λ™ 원리:** 도달 κ°€λŠ₯μ„± 뢄석은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ—”λ“œν¬μΈνŠΈλ₯Ό λ¦¬μ‘ΈλΈŒν•˜κ³  μ·¨μ•½ν•œ ν•¨μˆ˜λ‘œ μ΄μ–΄μ§€λŠ” 콜 κ·Έλž˜ν”„λ₯Ό μƒμ„±ν•˜μ—¬, ν•΄λ‹Ή μ½”λ“œ μ˜μ—­μ΄ μ‹€μ œλ‘œ μ‹€ν–‰ κ°€λŠ₯ν•œμ§€λ₯Ό νŒλ³„ν•©λ‹ˆλ‹€ [3]. 이λ₯Ό 톡해 퍼슀트 νŒŒν‹°(first-party) μ½”λ“œλΏλ§Œ μ•„λ‹ˆλΌ μ„œλ“œ νŒŒν‹°(third-party) μ½”λ“œμ— μ‘΄μž¬ν•˜λŠ” 취약점이 μ‹€μ œ μ‹€ν–‰ 경둜(execution paths)와 μ—°κ²°λ˜μ–΄ μžˆλŠ”μ§€λ₯Ό ν•¨μˆ˜ μˆ˜μ€€(function-level)의 μ„ΈλΆ„ν™”λœ λ‹¨μœ„λ‘œ 좔적할 수 μžˆμŠ΅λ‹ˆλ‹€ [2, 5]. * **λ³΄μ•ˆ 점검 및 문제 ν•΄κ²°μ˜ μš°μ„ μˆœμœ„ μ§€μ •:** 이 κΈ°λ²•μ˜ κ°€μž₯ 큰 이점은 개발자의 μ•Œλ¦Ό ν”Όλ‘œλ„(alert fatigue)λ₯Ό μ€„μ΄λŠ” 데 μžˆμŠ΅λ‹ˆλ‹€ [5]. μ‹€μ œ λŸ°νƒ€μž„ μ‘°κ±΄μ—μ„œ 도달할 수 μ—†λŠ” λ°λ“œ κ²½λ‘œλ‚˜ μ‹€ν–‰λ˜μ§€ μ•ŠλŠ” λͺ¨λ“ˆμ— μœ„μΉ˜ν•œ 취약점을 μ œμ™Έ(필터링)μ‹œν‚΄μœΌλ‘œμ¨, 심각성, μ΅μŠ€ν”Œλ‘œμž‡ κ°€λŠ₯μ„±(exploitability), λΉ„μ¦ˆλ‹ˆμŠ€ 영ν–₯도 등을 κ³ λ €ν•œ λ§₯락 인식 기반의 μš°μ„ μˆœμœ„ λΆ„λ₯˜κ°€ κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€ [4, 6]. * **μ£Όμš” λ³΄μ•ˆ 뢄석 λ„κ΅¬μ—μ„œμ˜ ν™œμš© 사둀:** * **Endor Labs:** 퍼슀트 νŒŒν‹° 및 μ„œλ“œ νŒŒν‹° μ½”λ“œ μ „λ°˜μ— 걸친 ν•¨μˆ˜ μˆ˜μ€€μ˜ 도달 κ°€λŠ₯μ„± 뢄석을 μ μš©ν•˜μ—¬, 취약점이 μ™ΈλΆ€μ˜ μ‹ λ’°ν•  수 μ—†λŠ” μž…λ ₯에 λ…ΈμΆœλ˜λŠ”μ§€ νŒλ‹¨ν•˜κ³  SCA(Software Composition Analysis)와 [[SAST|SAST]](Static Application Security [[Testing|Testing]]) κ²°κ³Όλ₯Ό ν†΅ν•©ν•©λ‹ˆλ‹€ [2, 5]. * **Veracode:** 데이터 흐름을 μΆ”μ ν•˜μ—¬ μ˜€μ—Όλœ(tainted) 데이터가 λ―Όκ°ν•œ 싱크(sink)에 도달할 수 μžˆλŠ”μ§€λ₯Ό 도달 κ°€λŠ₯μ„± 뢄석을 톡해 ν™•μΈν•©λ‹ˆλ‹€ [1]. * **[[Corgea|Corgea]]:** SAST μŠ€μΊ” κ³Όμ •μ—μ„œ μ—”λ“œν¬μΈνŠΈλ₯Ό μ‹λ³„ν•˜κ³  μ·¨μ•½ν•œ ν•¨μˆ˜μ— λŒ€ν•œ 콜 κ·Έλž˜ν”„λ₯Ό μƒμ„±ν•˜μ—¬ 도달 μ—¬λΆ€λ₯Ό μ‹œκ°ν™”ν•©λ‹ˆλ‹€ [3]. * **Qwiet AI:** CPG(Code Property Graph) 뢄석과 ν•¨κ»˜ 도달 κ°€λŠ₯μ„± 기반의 필터링을 μ‚¬μš©ν•˜μ—¬, μŠ€μΊ” 속도λ₯Ό μ΅œμ ν™”ν•˜κ³  λΆ„λ₯˜ν•΄μ•Ό ν•  λ³΄μ•ˆ κ²½κ³  수λ₯Ό 효과적으둜 μ€„μž…λ‹ˆλ‹€ [7, 8]. --- - **μž‘λ™ 원리**: 도달 κ°€λŠ₯μ„± 뢄석은 μ†ŒμŠ€ μ½”λ“œμ˜ μ—”λ“œν¬μΈνŠΈλ₯Ό λΆ„μ„ν•˜κ³  μ·¨μ•½ν•œ ν•¨μˆ˜λ‘œ ν–₯ν•˜λŠ” 호좜 κ·Έλž˜ν”„λ₯Ό μƒμ„±ν•˜μ—¬ μ·¨μ•½μ μ˜ μ‹€μ œ 도달 μ—¬λΆ€λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€ [1]. 특히 데이터 흐름을 μΆ”μ ν•˜μ—¬ μ˜€μ—Όλœ 데이터(tainted data)κ°€ λ―Όκ°ν•œ μ˜μ—­(sensitive sinks)으둜 흘러 λ“€μ–΄κ°ˆ 수 μžˆλŠ”μ§€ νŒŒμ•…ν•˜λŠ” 데 쀑점을 λ‘‘λ‹ˆλ‹€ [3]. - **μ˜€νƒ 및 μ•Œλ¦Ό ν”Όλ‘œ κ°μ†Œ**: ν•΄λ‹Ή 뢄석 기법은 μ·¨μ•½ν•œ ν•¨μˆ˜κ°€ μ‹€μ œλ‘œ ν˜ΈμΆœλ˜λŠ”μ§€, λ˜λŠ” μ‹ λ’°ν•  수 μ—†λŠ” μ‚¬μš©μž μž…λ ₯에 λ…ΈμΆœλ˜λŠ”μ§€μ™€ 같은 λ¬Έλ§₯(context)을 기반으둜 μŠ€μΊ” κ²°κ³Όλ₯Ό ν•„ν„°λ§ν•©λ‹ˆλ‹€ [2]. 이λ₯Ό 톡해 λ¬΄μ˜λ―Έν•œ μ˜€νƒ(False Positive)으둜 μΈν•œ μ•Œλ¦Ό ν”Όλ‘œλ„λ₯Ό 쀄이고, κ°œλ°œμžκ°€ μ‹€μ œ μœ„ν—˜μ΄ μ‘΄μž¬ν•˜λŠ” 취약점을 기반으둜 리슀크 μš°μ„ μˆœμœ„λ₯Ό μ§€μ •ν•  수 μžˆλ„λ‘ λ•μŠ΅λ‹ˆλ‹€ [4]. - **μ£Όμš” λ³΄μ•ˆ 도ꡬ([[SAST|SAST]]/SCA)μ—μ„œμ˜ ν™œμš©**: - **Endor Labs**: μ„œλ“œνŒŒν‹°(third-party)와 νΌμŠ€νŠΈνŒŒν‹°(first-party) μ½”λ“œ μ „λ°˜μ— 걸쳐 맀우 μ„Έλ°€ν•œ ν•¨μˆ˜ μˆ˜μ€€(function-level)의 도달 κ°€λŠ₯성을 λΆ„μ„ν•˜μ—¬, μ½”λ“œμ˜ 취약점이 μ‹€μ œ μ‹€ν–‰ κ²½λ‘œμ™€ μ–΄λ–»κ²Œ μ—°κ²°λ˜λŠ”μ§€ νŒŒμ•…ν•©λ‹ˆλ‹€ [2, 4]. - **Veracode**: μ˜€μ—Όλœ 데이터가 λ―Όκ°ν•œ μ˜μ—­μ— μ ‘κ·Όν•˜λŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ 데이터 흐름 좔적 및 도달 κ°€λŠ₯μ„± 뢄석을 μˆ˜ν–‰ν•©λ‹ˆλ‹€ [3]. - **[[Corgea|Corgea]]**: μ—”λ“œν¬μΈνŠΈλ₯Ό ν•΄μ„ν•˜κ³  호좜 κ·Έλž˜ν”„λ₯Ό κ΅¬μΆ•ν•˜μ—¬ μ‹€μ§ˆμ μΈ 도달 κ°€λŠ₯성을 증λͺ…ν•©λ‹ˆλ‹€ [1]. - **Qwiet AI (Harness)**: μŠ€μΊ” 속도 ν–₯상 및 도달 κ°€λŠ₯성을 기반으둜 ν•œ 취약점 필터링에 쀑점을 두어 κ²°κ³Όλ₯Ό λ„μΆœν•©λ‹ˆλ‹€ [5, 6]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. --- - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[SAST (Static Application Security Testing)|SAST (Static Application Security Testing]], SCA (Software Composition Analysis), Call Graph, Data Flow Analysis, False Positives, Vulnerability Prioritization - **Projects/Contexts:** Endor Labs, Veracode, [[Corgea|Corgea]], Qwiet AI - **Contradictions/Notes:** 제곡된 μ†ŒμŠ€ λ‚΄μ—μ„œ 도달 κ°€λŠ₯μ„± λΆ„μ„μ˜ νš¨μš©μ„±μ— λŒ€ν•œ λͺ¨μˆœμ μ€ μ—†μœΌλ©°, λͺ¨λ“  μžλ£Œκ°€ κ³΅ν†΅μ μœΌλ‘œ SAST 및 SCA λ„κ΅¬μ—μ„œ μ˜€νƒμ„ 쀄이고 μ‹€μ œ μœ„ν—˜μ„ μ‹λ³„ν•˜λŠ” 데 맀우 효과적이고 ν•„μˆ˜μ μΈ 접근법이라고 λ™μ˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ [2, 4]. --- *Last updated: 2026-04-19* --- --- - **Related Topics:** [[α„Œα…₯α†Όα„Œα…₯ᆨ ᄋᅒ플라케아션 보ᄋᅑᆫ 테스트 (SAST)|정적 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ³΄μ•ˆ ν…ŒμŠ€νŠΈ (SAST]], μ†Œν”„νŠΈμ›¨μ–΄ ꡬ성 뢄석 (SCA), 데이터 흐름 뢄석 (Data Flow Analysis), 호좜 κ·Έλž˜ν”„ (Call Graph) - **Projects/Contexts:** Endor Labs, Veracode, [[Corgea|Corgea]], Qwiet AI - **Contradictions/Notes:** λ‹¨μˆœ κ·œμΉ™μ΄λ‚˜ νŒ¨ν„΄ 기반의 전톡적인 정적 뢄석 λ„κ΅¬λŠ” λ¬Έλ§₯ νŒŒμ•…μ˜ ν•œκ³„λ‘œ 인해 μ˜€νƒμ„ λ‹€μˆ˜ λ°œμƒμ‹œν‚¬ 수 μžˆμœΌλ‚˜, 도달 κ°€λŠ₯μ„± 뢄석이 κ²°ν•©λœ μ΅œμ‹  뢄석 도ꡬ듀은 도달 λΆˆκ°€λŠ₯ν•œ 경둜의 λ…Έμ΄μ¦ˆλ₯Ό ν•„ν„°λ§ν•˜μ—¬ μ‹€μ œ 문제 ν•΄κ²° νš¨μœ¨μ„ 크게 λ†’μ—¬μ€λ‹ˆλ‹€ [4, 7]. --- *Last updated: 2026-04-18* --- ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*