--- id: P-REINFORCE-AUTO-517F55 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)|์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ (SAST)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > SAST(์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์†Œ์Šค ์ฝ”๋“œ๋‚˜ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ •์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•˜๋Š” ํ™”์ดํŠธ๋ฐ•์Šค ํ…Œ์ŠคํŠธ ๊ธฐ๋ฒ•์ด๋‹ค [1]. ๊ฐœ๋ฐœ ์ˆ˜๋ช… ์ฃผ๊ธฐ(SDLC) ์ดˆ๊ธฐ์— ์ทจ์•ฝ์ ์„ ๋ฐœ๊ฒฌํ•˜์—ฌ ์ˆ˜์ • ๋น„์šฉ๊ณผ ์‹œ๊ฐ„์„ ๋Œ€ํญ ์ ˆ๊ฐํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” '์‹œํ”„ํŠธ ๋ ˆํ”„ํŠธ(Shift-Left)' ๋ณด์•ˆ ์ „๋žต์˜ ํ•ต์‹ฌ ๋„๊ตฌ์ด๋‹ค [1, 2]. ์ตœ๊ทผ์—๋Š” ๋‹จ์ˆœํ•œ ๊ทœ์น™ ๊ธฐ๋ฐ˜ ํŒจํ„ด ๋งค์นญ์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์ธ๊ณต์ง€๋Šฅ(AI)๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ํ†ตํ•ฉํ•˜์—ฌ, ์ฝ”๋“œ์˜ ๋ฌธ๋งฅ๊ณผ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ˆ˜์ •์•ˆ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์ œ์•ˆํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ™”ํ•˜๊ณ  ์žˆ๋‹ค [3, 4]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์ž‘๋™ ๋ฐฉ์‹ ๋ฐ ์ฃผ์š” ๋ถ„์„ ๊ธฐ๋ฒ•**: SAST๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜์—ฌ ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ(AST)๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์ฝ”๋“œ์˜ ๊ตฌ์กฐ, ์˜๋ฏธ๋ก ์  ํ๋ฆ„, ๋ฐ์ดํ„ฐ ํ๋ฆ„(Data Flow) ๋“ฑ์„ ์ •์ ์œผ๋กœ ๋ถ„์„ํ•œ๋‹ค [5, 6]. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ ์˜ค์—ผ ๋ถ„์„(Taint analysis)์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ™์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ ์†Œ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ž‘ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์‹ฑํฌ(Sink)๋กœ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ ์—†์ด ํ˜๋Ÿฌ๊ฐ€๋Š”์ง€๋ฅผ ์ถ”์ ํ•œ๋‹ค [7, 8]. * **ํƒ์ง€ ๊ฐ€๋Šฅํ•œ ์ฃผ์š” ์ทจ์•ฝ์ **: ์ธ์ ์…˜ ๊ณต๊ฒฉ(SQL, NoSQL, ๋ช…๋ น์–ด ๋“ฑ), ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…(XSS), ๊ฒฝ๋กœ ํƒ์ƒ‰(Path traversal), ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฐ ๋ฏผ๊ฐ ์ •๋ณด ๋…ธ์ถœ, ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์„œ๋ฒ„ ์ธก ์š”์ฒญ ์œ„์กฐ(SSRF) ๋“ฑ ์ฃผ๋กœ ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ๊ฒฐํ•จ์„ ์ฐพ์•„๋‚ธ๋‹ค [1, 9-11]. * **์ „ํ†ต์  SAST์˜ ํ•œ๊ณ„์ **: ๊ธฐ์กด์˜ SAST๋Š” ์ •ํ•ด์ง„ ๊ทœ์น™์— ์ „์ ์œผ๋กœ ์˜์กดํ•˜๋ฏ€๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์˜๋„๋‚˜ ๋Ÿฐํƒ€์ž„ ์ปจํ…์ŠคํŠธ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด ๊ฐ€์งœ ๊ฒฝ๊ณ ์ธ ์˜คํƒ(False Positive)์„ ๋‹ค์ˆ˜ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค [3, 12, 13]. ๋˜ํ•œ ๋ถ„์„ ๋Œ€์ƒ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๊ฐ•ํ•˜๊ฒŒ ์ข…์†์ ์ด๋ฉฐ, ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋กœ ๋ถ„๋ฆฌ๋œ ๊ฒฝ์šฐ ์ „์ฒด ๋งฅ๋ฝ์„ ์žƒ๋Š”๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค [13]. * **AI ๊ธฐ๋ฐ˜ SAST๋กœ์˜ ์ง„ํ™”**: ์ตœ์‹ ์˜ SAST ๋„๊ตฌ๋“ค(์˜ˆ: Snyk Code, Corgea ๋“ฑ)์€ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹์„ ๋„์ž…ํ•˜์—ฌ ์ „ํ†ต์  SAST์˜ ์˜คํƒ๋ฅ ์„ ํš๊ธฐ์ ์œผ๋กœ ๋‚ฎ์ถ”๊ณ  ์žˆ๋‹ค [14-17]. ์ด๋“ค์€ ์—ฌ๋Ÿฌ ํŒŒ์ผ์— ๊ฑธ์นœ(Interfile) ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ดํ•ดํ•˜์—ฌ ์ˆจ๊ฒจ์ง„ ๋กœ์ง ๊ฒฐํ•จ์„ ์ฐพ์•„๋‚ด๋ฉฐ, ๊ฐœ๋ฐœ์ž์˜ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE)์ด๋‚˜ Pull Request ํ™˜๊ฒฝ์—์„œ ์ ์ ˆํ•œ ์ฝ”๋“œ ์ˆ˜์ •์•ˆ(Auto-fix)์„ ์ž๋™ ์ œ์•ˆํ•˜๊ณ  ์ ์šฉ ์ „ ์ž์ฒด ๊ฒ€์ฆ๊นŒ์ง€ ๊ฑฐ์น˜๋Š” ์ˆ˜์ค€์œผ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ๋‹ค [18-21]. * **๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ(AppSec) ๋„๊ตฌ์™€์˜ ๊ด€๊ณ„**: SAST๋Š” ๊ฐœ๋ฐœ ์กฐ์ง์ด ์ง์ ‘ ์ž‘์„ฑํ•œ 1์‚ฌ(First-party) ์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค [22]. ๋ฐ˜๋ฉด, ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ธ”๋ž™๋ฐ•์Šค ํ˜•ํƒœ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์€ ๋™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ(DAST)์ด๋ฉฐ, ์„œ๋“œํŒŒํ‹ฐ ์˜คํ”ˆ์†Œ์Šค ์ข…์†์„ฑ ๋‚ด์˜ ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ (CVE)์ด๋‚˜ ๋ผ์ด์„ ์Šค ์œ„ํ—˜์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ๋ถ„์„(SCA)์ด๋‹ค [22-24]. ๊ฒฌ๊ณ ํ•œ ๋ณด์•ˆ์„ ์œ„ํ•ด์„œ๋Š” ์ด๋“ค ๋„๊ตฌ๋ฅผ ์ƒํ˜ธ ๋ณด์™„์ ์ธ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐฉ์‹์œผ๋กœ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ๊ตฌ์ถ•ํ•ด์•ผ ํ•œ๋‹ค [25-27]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** AI ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** ์ •์  ์ฝ”๋“œ ๋ถ„์„, [[แ„‰แ…ตแ„‘แ…ณแ„แ…ณ แ„…แ…ฆแ„‘แ…ณแ„แ…ณ (Shift-Left)|์‹œํ”„ํŠธ ๋ ˆํ”„ํŠธ (Shift-Left)]], ์˜ค์—ผ ๋ถ„์„ (Taint Analysis), [[แ„ƒแ…ฉแ†ผแ„Œแ…ฅแ†จ แ„‹แ…ขแ„‘แ…ณแ†ฏแ„…แ…ตแ„แ…ฆแ„‹แ…ตแ„‰แ…งแ†ซ แ„‡แ…ฉแ„‹แ…กแ†ซ แ„แ…ฆแ„‰แ…ณแ„แ…ณ(DAST)|๋™์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ (DAST)]], [[แ„‰แ…ฉแ„‘แ…ณแ„แ…ณแ„‹แ…ฐแ„‹แ…ฅ แ„€แ…ฎแ„‰แ…ฅแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ(SCA)|์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ๋ถ„์„ (SCA)]], ์ž๋™ํ™”๋œ ์ฝ”๋“œ ๊ฑฐ๋ฒ„๋„Œ์Šค - **Projects/Contexts:** Snyk Code, [[Corgea|Corgea]], GitHub Advanced Security, DevSecOps ํŒŒ์ดํ”„๋ผ์ธ - **Contradictions/Notes:** ์ž๋™ํ™”๋œ SAST ๋„๊ตฌ๋“ค์€ ์ฒ˜๋ฆฌ ์†๋„์™€ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜์ง€๋งŒ, ์ •ํ•ด์ง„ ๊ทœ์น™์— ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ฐ ์ƒˆ๋กœ์šด ์•„ํ‚คํ…์ฒ˜ ๋งฅ๋ฝ์— ๋”ฐ๋ฅธ ์ทจ์•ฝ์ ์€ ๋†“์น  ์ˆ˜ ์žˆ๋‹ค. ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด SAST ํˆด๋“ค์€ ์‹ค์ œ ์ทจ์•ฝ์ ์˜ ์•ฝ 22% ์ •๋„๋ฅผ ํƒ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ 30~60%์˜ ๋†’์€ ์˜คํƒ๋ฅ ๋กœ ๊ฒฝ๊ณ  ํ”ผ๋กœ๋„(Alert fatigue)๋ฅผ ์ผ์œผํ‚จ๋‹ค [12, 28, 29]. ๋”ฐ๋ผ์„œ AI๋กœ ๊ฐœ์„ ๋œ SAST ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ์ฐจ์ ์ธ ๊ฒ€์—ด์„ ์ˆ˜ํ–‰ํ•˜๋”๋ผ๋„, ๊ณ ์œ„ํ—˜ ์ฝ”๋“œ๋‚˜ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ ๋กœ์ง์˜ ์ตœ์ข… ๋ณด์•ˆ ๊ฒ€์ฆ์„ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์ธ๊ฐ„ ์ค‘์‹ฌ์˜ '์ˆ˜๋™ ์ฝ”๋“œ ๋ฆฌ๋ทฐ(Manual Code Review)'๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋œ๋‹ค [30-32]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ (SAST).md ---