QueryPie Community Edition is live ๐ŸŽ‰ Get it now for free Download today!

๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ
๋ฐฑ์„œ

์ฝ”๋“œ๋Š” ๋ฉˆ์ท„๊ณ , ์—์ด์ „ํŠธ๊ฐ€ ์›€์ง์ธ๋‹ค โ€“ AgentSecOps์˜ ์‹œ๋Œ€๋กœ

AI ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜์˜ ์ž๋™ํ™” ์‹œ์Šคํ…œ์ด ํ™•์‚ฐ๋˜๋ฉด์„œ, ๋‹จ์ˆœํ•œ ์ž๋™ํ™” ์ˆ˜์ค€์„ ๋„˜์–ด, ์‹คํ–‰ ์ฃผ์ฒด(agent)๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์˜์‚ฌ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ณ  ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ํ˜ธ์ถœํ•˜๋Š” AgentOps๊ฐ€ ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” AgentOps์™€ ํ•จ๊ป˜ ๋“ฑ์žฅํ•˜๊ฒŒ ๋œ AgentSecOps์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ณ , ๊ธฐ์กด DevSecOps ์ฒด๊ณ„ ๋Œ€๋น„ ์–ด๋–ค ๊ตฌ์กฐ์™€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ ์ง€ ์‹ฌ์ธต ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

Kenny Park

Kenny Park

CISO

์ผ€๋‹ˆ๋Š” QueryPie์˜ CISO์ด์ž ๊ธ€๋กœ๋ฒŒ ๋””๋ ‰ํ„ฐ๋กœ ์ •๋ณด ๋ณด์•ˆ, ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๋ฐ ๊ธ€๋กœ๋ฒŒ ์šด์˜์— ๋Œ€ํ•œ 20๋…„ ์ด์ƒ์˜ ๊ฒฝํ—˜์„ ๋ณด์œ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” QueryPie์˜ ๊ธ€๋กœ๋ฒŒ ์ „๋žต์„ ์ด๋„๋Š” ๋™์‹œ์— ์ œํ’ˆ์— ์ตœ์ƒ์˜ ๋ณด์•ˆ๊ณผ ์ปดํ”Œ๋ผ์ด์–ธ์Šค๋ฅผ ๋ณด์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ผ€๋‹ˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์ถ•, ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๊ด€๋ฆฌ, ํ˜์‹  ์ด‰์ง„ ๋“ฑ์—์„œ ์ค‘์š”ํ•œ ์„ฑ๊ณผ๋ฅผ ๊ฑฐ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

2025๋…„ 5์›” 13์ผ

์ฝ”๋“œ๋Š” ๋ฉˆ์ท„๊ณ , ์—์ด์ „ํŠธ๊ฐ€ ์›€์ง์ธ๋‹ค โ€“ AgentSecOps์˜ ์‹œ๋Œ€๋กœ

1. ์„œ๋ก : DevSecOps๋ฅผ ๋„˜์–ด์„œ๋Š” AgentSecOps์˜ ํ•„์š”์„ฑ

AI ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜์˜ ์ž๋™ํ™” ์‹œ์Šคํ…œ์ด ํ™•์‚ฐ๋˜๋ฉด์„œ, ์กฐ์ง ๋‚ด ์ž์‚ฐ๊ณผ API์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๊ทผ๋ณธ์ ์œผ๋กœ ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. LangChain, CrewAI, AutoGPT์™€ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹จ์ˆœํ•œ ์ž๋™ํ™” ์ˆ˜์ค€์„ ๋„˜์–ด, ์‹คํ–‰ ์ฃผ์ฒด(agent)๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์˜์‚ฌ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ณ  ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ํ˜„์‹คํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์„ ํฌ๊ด„์ ์œผ๋กœ ์šด์˜ํ•˜๋Š” ๊ฐœ๋…์ด AgentOps์ž…๋‹ˆ๋‹ค. AgentOps๋Š” LLM ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ ์ตœ์ ํ™”, ๋„๊ตฌ ํ˜ธ์ถœ ์Šค์ผ€์ค„๋ง, ๊ฒฐ๊ณผ ํ•ด์„ ๋ฐ ๋ฆฌํฌํŒ… ์ž๋™ํ™” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค[1].

AgentOps๋Š” ๋‹จ์ผ ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ, ์—์ด์ „ํŠธ ์‹คํ–‰ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„๋˜๋Š” ์‹คํ–‰ ์œ ํ˜•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์กฐ์ง ํ™˜๊ฒฝ์—์„œ AI ์—์ด์ „ํŠธ๊ฐ€ ์—…๋ฌด๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐฉ์‹์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰˜๋ฉฐ, ์ด ์‹คํ–‰ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ๋ณด์•ˆ ๊ฐœ์ž… ์ง€์ , ๊ฐ์‚ฌ ํ๋ฆ„, ์ •์ฑ… ํ‰๊ฐ€ ๋ฐฉ์‹๋„ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์ฒซ์งธ๋Š” ์ˆœ์ฐจ ์‹คํ–‰ํ˜• AgentOps์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ•˜๋‚˜์˜ ์—์ด์ „ํŠธ๊ฐ€ ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ๋ฐ›์•„ ์—ฌ๋Ÿฌ ๋„๊ตฌ๋‚˜ API๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์ง๋ ฌ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ โ€œ๋‹ค์Œ ์ฃผ ๋„์ฟ„ ์ถœ์žฅ ์ค€๋น„ํ•ด์ค˜โ€๋ผ๊ณ  ์ง€์‹œํ•˜๋ฉด, ์—์ด์ „ํŠธ๋Š” ๋‹ค์Œ ์ˆœ์„œ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:



์ด ํ๋ฆ„์€ ํ•˜๋‚˜์˜ ์ปจํ…์ŠคํŠธ ์•ˆ์—์„œ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ๋‹จ์ผ ์‹คํ–‰ ํ๋ฆ„์— ๋Œ€ํ•ด ์žฌ์‹œ๋„, ์ •์ฑ… ๊ฒ€ํ† , ๋กœ๊น…, ์Šน์ธ ์‚ฝ์ž… ๋“ฑ์˜ ํ†ต์ œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค[1].

๋‘˜์งธ๋Š” ์—์ด์ „ํŠธ ๊ฐ„ ํ˜ธ์ถœํ˜• AgentOps, ์ฆ‰ Agent-to-Agent ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ํ•˜๋‚˜์˜ ์—์ด์ „ํŠธ๊ฐ€ ์ง์ ‘ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ , ์—ญํ• ์„ ๋ถ„์‚ฐํ•˜์—ฌ ๋‹ค๋ฅธ ์—์ด์ „ํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋‹ค๋‹จ๊ณ„ ์‹คํ–‰ ํ๋ฆ„์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, โ€œ๋งˆ์ผ€ํŒ… ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•ด์ค˜โ€๋ผ๋Š” ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด:



๊ฐ ํ˜ธ์ถœ ๊ฐ„์—๋Š” ์ปจํ…์ŠคํŠธ ์ „๋‹ฌ, ์—ญํ•  ์œ„์ž„ ๊ฒ€์ฆ, ์ •์ฑ… ์ถฉ๋Œ ํƒ์ง€, ์‹คํ–‰ ๊ถŒํ•œ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ๊ฐ ์—์ด์ „ํŠธ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์ •์ฑ… ํ‰๊ฐ€(PDP), ์‹คํ–‰ ํ†ต์ œ(PEP), ๊ฐ์‚ฌ ๋กœ๊น…์ด ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค[3].

์ด ๋‘ ๊ฐ€์ง€ ๊ตฌ์กฐ๋Š” AgentOps๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋ณด์•ˆ ํ†ต์ œ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ธฐ์ค€์ด ๋ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ์ •์ฑ… ์‚ฝ์ž… ์œ„์น˜, ํ†ต์ œ ์ฃผ์ฒด, ์‹คํ–‰ ํ๋ฆ„์˜ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์ด ๊ตฌ์กฐ๋งˆ๋‹ค ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด ์ •์ฑ…์ด ๋ฌด๋ ฅํ™”๋˜๊ฑฐ๋‚˜ ๋กœ๊น…์ด ๋ˆ„๋ฝ๋˜๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค[4][5].


[๊ทธ๋ฆผ 1] AgentOps ์‹คํ–‰ ๊ตฌ์กฐ ์œ ํ˜• ๋น„๊ต
[๊ทธ๋ฆผ 1] AgentOps ์‹คํ–‰ ๊ตฌ์กฐ ์œ ํ˜• ๋น„๊ต
๊ตฌ๋ถ„ ํ•ญ๋ชฉ ์ˆœ์ฐจ ์‹คํ–‰ํ˜• AgentOps Agent-to-Agent ๊ตฌ์กฐ (A2A)
์‹คํ–‰ ๋ฐฉ์‹ ๋‹จ์ผ ์—์ด์ „ํŠธ๊ฐ€ ์ง๋ ฌ API ํ˜ธ์ถœ๋‹ค์ˆ˜์˜ ์—์ด์ „ํŠธ๊ฐ€ ์—ญํ•  ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„์‚ฐ ์‹คํ–‰
์‹คํ–‰ ํ๋ฆ„ ๊ณ ์ •๋œ ์ˆœ์„œ, ์˜ˆ์ธก ๊ฐ€๋Šฅ๋™์  ํ˜ธ์ถœ ๊ฒฝ๋กœ, ํ๋ฆ„ ๋ถ„๊ธฐ ๊ฐ€๋Šฅ
์ •์ฑ… ์‚ฝ์ž… ์œ„์น˜ ๋‹จ์ผ ํ๋ฆ„ ๋‚ด๋ถ€์— ์ˆœ์ฐจ ์‚ฝ์ž…๊ฐ ํ˜ธ์ถœ ๊ฐ„ ์ธํ„ฐํŽ˜์ด์Šค๋งˆ๋‹ค ๊ฐœ๋ณ„ ์‚ฝ์ž… ํ•„์š”
PDF ํ‰๊ฐ€ ๋ฒ”์œ„ ์ „์ฒด ํ๋ฆ„์— ๋Œ€ํ•ด 1ํšŒ ์ •์ฑ… ํ‰๊ฐ€ํ˜ธ์ถœ๋งˆ๋‹ค ๋ณ„๋„ PDP ํ‰๊ฐ€ ํ•„์š”
์œ„์ž„ ๊ฒ€์ฆ ํ•„์š” ์—ฌ๋ถ€ ๋ถˆํ•„์š” (๋‹จ์ผ ์ฃผ์ฒด)ํ•„์ˆ˜ (์ฃผ์ฒด ๊ฐ„ ์œ„์ž„ ๊ด€๊ณ„ ๊ฒ€์ฆ ํ•„์š”)
์‹คํŒจ ๋ณต๊ตฌ ์ „๋žต ์‹คํŒจ โ†’ ์žฌ์‹œ๋„ ๋˜๋Š” ์ค‘๋‹จ์‹คํŒจ ์‹œ ๊ฐœ๋ณ„ ์—์ด์ „ํŠธ์—์„œ ๊ฐ์ง€ ๋ฐ ๋…๋ฆฝ ๋ณต๊ตฌ ํ•„์š”
๊ฐ์‚ฌ ๋กœ๊น… ๊ตฌ์กฐ ๋‹จ์ผ ์„ธ์…˜ ๊ธฐ๋ฐ˜ ๋กœ๊ทธ๋‹ค๋‹จ๊ณ„ ์„ธ์…˜ ๋ฐ ํ˜ธ์ถœ ์—ฐ๊ณ„ ๋กœ๊น… ํ•„์š”
์˜ˆ์‹œ ์ถœ์žฅ ์˜ˆ์•ฝ, ๋ฉ”์ผ ๋ฐœ์†ก, ํšŒ์˜ ์ƒ์„ฑ ๋“ฑ๋ณด๊ณ ์„œ ์ž‘์„ฑ, ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™”, ๋ฉ€ํ‹ฐ SaaS ํ†ตํ•ฉ

์ด๋Ÿฌํ•œ AgentOps ์‹คํ–‰ ๊ตฌ์กฐ๋Š” ๊ธฐ์กด DevSecOps ์ฒด๊ณ„์—์„œ ์ •์˜๋œ ๋ฆด๋ฆฌ์ฆˆ ์ค‘์‹ฌ ๋ณด์•ˆ ๋ชจ๋ธ๋กœ๋Š” ํ†ต์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ์ปค๋ฐ‹์ด๋‚˜ ๋ฐฐํฌ ์—†์ด ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์‹คํ–‰ ์ฃผ์ฒด๊ฐ€ ์‚ฌ๋žŒ์ธ์ง€ ์—์ด์ „ํŠธ์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์‹คํ–‰ ๋ชฉ์ ์กฐ์ฐจ ๋ช…์‹œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. AgentSecOps๋Š” ์ด๋Ÿฌํ•œ ์‹คํ–‰ ํ๋ฆ„์— ์ •์ฑ… ๊ธฐ๋ฐ˜ ์ œ์–ด๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ , ๊ฐ ์‹คํ–‰ ๋‹จ์œ„์— ๋Œ€ํ•ด ์Šน์ธ, ๊ถŒํ•œ ํ‰๊ฐ€, ๋กœ๊ทธ ๊ธฐ๋ก์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด ์—ญํ• ์€ AgentOps ์•„ํ‚คํ…์ฒ˜ ์œ„์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค[16][17].

๊ธฐ์กด DevSecOps๋Š” ์ •์  ๋ถ„์„(SAST), ๋™์  ๋ถ„์„(DAST), IaC ๋ณด์•ˆ ๊ฒ€์‚ฌ, ์ด๋ฏธ์ง€ ์Šค์บ๋‹, SCA(Software Composition Analysis), ๋น„๋ฐ€ํ‚ค ๋…ธ์ถœ ํƒ์ง€ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ๋ชจ๋“ˆ์„ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•จ์œผ๋กœ์จ, ์ฝ”๋“œ ์ˆ˜์ค€์˜ ์œ„ํ—˜์„ ์‚ฌ์ „์— ์‹๋ณ„ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ์ฒด๊ณ„๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. SCA๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์ข…์†์„ฑ ๋‚ด ํฌํ•จ๋œ ๋ณด์•ˆ ์ทจ์•ฝ์ , ๋ผ์ด์„ ์Šค ์œ„๋ฐ˜, ์œ ์ง€๊ด€๋ฆฌ ์ƒํƒœ ๋“ฑ์„ ๋ถ„์„ํ•˜๋ฉฐ, ์ตœ๊ทผ์˜ GitHub Advanced Security, Snyk, WhiteSource์™€ ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ์ด๋ฅผ ์ž๋™ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค[2].

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ GitHub ์ค‘์‹ฌ์˜ ์ฝ”๋“œ ์ž‘์„ฑ ์ดํ›„, Jenkins๋‚˜ GitHub Actions์—์„œ ์ด๋ฏธ์ง€ ๋นŒ๋“œ๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ , Harbor์—์„œ ์ด๋ฏธ์ง€ ์ทจ์•ฝ์ ์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ, ๋ฌธ์ œ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ AWS ECR์— ๋ฐฐํฌ๋˜๋Š” ํ๋ฆ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ดํ›„ ArgoCD๋ฅผ ํ†ตํ•ด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌ๋˜๊ณ , ์ด ๊ณผ์ •์—์„œ Vault๋ฅผ ํ†ตํ•œ ์‹œํฌ๋ฆฟ ๊ด€๋ฆฌ, ZAP์„ ํ†ตํ•œ DAST ๋ณด์•ˆ ํ…Œ์ŠคํŠธ, Helm๊ณผ Terraform์„ ํ†ตํ•œ ์ธํ”„๋ผ ๊ตฌ์„ฑ ๊ฒ€์ฆ๊นŒ์ง€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.


[๊ทธ๋ฆผ 2] DevSecOps Pipeline
[๊ทธ๋ฆผ 2] DevSecOps Pipeline

์ด์™€ ๊ฐ™์€ ํ˜„๋Œ€์ ์ธ DevSecOps ํŒŒ์ดํ”„๋ผ์ธ์€ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•˜์—ฌ, ๋ฐฐํฌ ์ „๊ณผ ๋ฐฐํฌ ํ›„์˜ ์ •์  ๋ฐ ๋™์  ์œ„ํ—˜์„ ํฌ๊ด„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ถ„์„, ์ด๋ฏธ์ง€ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ, ์˜คํ”ˆ์†Œ์Šค ์ข…์†์„ฑ ์ทจ์•ฝ์  ํƒ์ง€(SCA), IaC ์ •์ฑ… ์œ„๋ฐ˜ ํƒ์ง€, ๋Ÿฐํƒ€์ž„ ์›Œํฌ๋กœ๋“œ ๋ณดํ˜ธ, ํด๋ผ์šฐ๋“œ ๊ตฌ์„ฑ ๋ถ„์„(CSPM), ๊ถŒํ•œ ๋ถ„์„(CIEM), ํ†ตํ•ฉ CNAPP ๊ธฐ๋ฐ˜ ํ†ต์ œ๊นŒ์ง€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ „์ฒด ๊ตฌ์กฐ๋Š” ์ธ๊ฐ„ ์ฃผ์ฒด๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ๋ช…์‹œ์ ์ธ ๋ฆด๋ฆฌ์ฆˆ ํ๋ฆ„์„ ๋”ฐ๋ผ์•ผ๋งŒ ํ†ต์ œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

AI ๊ธฐ๋ฐ˜ AgentOps๋Š” ์ด์™€๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” GitHub ์ €์žฅ์†Œ์— ์ง์ ‘ API๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜, Slack์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , AWS Lambda๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋“ฑ ์‚ฌ์ „์— ์ •์˜๋˜์ง€ ์•Š์€ ์‹คํ–‰ ํ๋ฆ„์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹คํ–‰ ํ๋ฆ„์€ CI/CD์— ํ†ตํ•ฉ๋˜์ง€ ์•Š์œผ๋ฉฐ, Git ์ปค๋ฐ‹์ด๋‚˜ Jenkins ๋กœ๊ทธ ์—†์ด๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ๊ธฐ์กด์˜ DevSecOps ์ฒด๊ณ„์—์„œ ์ •์˜๋œ ๋ณด์•ˆ ํ†ต์ œ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ์‹คํ–‰์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค[3].

์ด๋Ÿฐ ์‹คํ–‰ ํ๋ฆ„์— ๋Œ€ํ•ด์„œ๋Š” DevSecOps์˜ ๋ชจ๋“  ๋ณด์•ˆ ์ œ์–ด๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๊ฑฐ๋‚˜, ์•„์˜ˆ ํ›„์† ๋Œ€์‘ ์ž์ฒด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•ด๋‹น ์‹คํ–‰์€ ์ด๋ฏธ์ง€ ์Šค์บ๋‹์ด๋‚˜ IaC ๊ฒ€ํ† , ๋ฐฐํฌ ์Šน์ธ ๊ฐ™์€ ์‚ฌ์ „ ๋ณด์•ˆ ๊ฒ€์‚ฌ๋ฅผ ์šฐํšŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ์  ๊ณต๋ฐฑ์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด AgentSecOps์ž…๋‹ˆ๋‹ค.

AgentSecOps๋Š” AI ์—์ด์ „ํŠธ์˜ ์‹คํ–‰ ์š”์ฒญ์„ ์ˆ˜์ง‘ํ•˜๊ณ , ์ •์ฑ… ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด๋‹น ์š”์ฒญ์„ ํ‰๊ฐ€ํ•˜๋ฉฐ, ์Šน์ธ ์—ฌ๋ถ€๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒ๋‹จํ•˜๋Š” ๋ณด์•ˆ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” DevSecOps์™€ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์‹คํ–‰ ์‹œ์ ์—์„œ ๊ฐœ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ ์ •์ฑ… ํ†ต์ œ ์˜์—ญ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

2. DevSecOps์™€ AgentSecOps์˜ ๊ตฌ์กฐ ๋น„๊ต

DevSecOps๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋ณด์•ˆ์„ ์ž๋™ํ™”ํ•˜๋Š” ์ฒด๊ณ„๋กœ, ์ฝ”๋“œ ์ž‘์„ฑ ๋‹จ๊ณ„๋ถ€ํ„ฐ ์šด์˜ ํ™˜๊ฒฝ๊นŒ์ง€ ์—ฐ์†์ ์œผ๋กœ ๋ณด์•ˆ ํ™œ๋™์„ ๋‹จ๊ณ„๋ณ„๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์ดˆ๊ธฐ์—๋Š” ์ •์  ๋ถ„์„(SAST)๊ณผ ์ทจ์•ฝ์  ์Šค์บ๋‹ ์ •๋„์— ๋จธ๋ฌผ๋ €์ง€๋งŒ, ์ตœ๊ทผ์—๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ตฌ์„ฑ ๋ฐ ์ทจ์•ฝ์  ํ‰๊ฐ€(SCA), ์ธํ”„๋ผ ๊ตฌ์„ฑ ์ฝ”๋“œ(IaC)์˜ ์ •์ฑ… ์œ„๋ฐ˜ ํƒ์ง€, ์ด๋ฏธ์ง€ ์ทจ์•ฝ์  ๊ฒ€์‚ฌ, ์‹œํฌ๋ฆฟ ๋…ธ์ถœ ๋ฐฉ์ง€ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


[๊ทธ๋ฆผ 3] ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ DevSecOps Pipeline ์ทจ์•ฝ์  ๊ด€๋ฆฌ
[๊ทธ๋ฆผ 3] ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ DevSecOps Pipeline ์ทจ์•ฝ์  ๊ด€๋ฆฌ

ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” CSPM(Cloud Security Posture Management), CIEM(Cloud Infrastructure Entitlement Management), CWPP(Cloud Workload Protection Platform) ๋“ฑ๊ณผ ๊ฐ™์€ ํ”Œ๋žซํผ๋„ ํฌํ•จ๋˜์–ด DevSecOps๋Š” ํ•˜๋‚˜์˜ ๋ณด์•ˆ ์ƒํƒœ๊ณ„๋กœ ์ง„ํ™”ํ•˜์˜€์Šต๋‹ˆ๋‹ค[4].


[๊ทธ๋ฆผ 4] ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์— ๋งž๋Š” ์ทจ์•ฝ์  ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•
[๊ทธ๋ฆผ 4] ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์— ๋งž๋Š” ์ทจ์•ฝ์  ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

DevSecOps๋Š” ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •์˜๋œ ์ž์‚ฐ์„ ๊ธฐ์ค€์œผ๋กœ ๋ณด์•ˆ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. GitHub, GitLab๊ณผ ๊ฐ™์€ ์†Œ์Šค ์ €์žฅ์†Œ์—์„œ ์ฝ”๋“œ๊ฐ€ ์ปค๋ฐ‹๋˜๋ฉด, CI/CD ๋„๊ตฌ(Jenkins, GitHub Actions ๋“ฑ)๊ฐ€ ์ด๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ SCA ๋„๊ตฌ๋Š” ์˜คํ”ˆ์†Œ์Šค ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•˜๊ณ , ์ด๋ฏธ์ง€ ๋ถ„์„ ๋„๊ตฌ๋Š” ์ปจํ…Œ์ด๋„ˆ ๋ณด์•ˆ ์œ„ํ˜‘์„ ํ‰๊ฐ€ํ•˜๋ฉฐ, IaC ํ…œํ”Œ๋ฆฟ์€ ๊ทœ์ • ์ค€์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ ๋‹จ๊ณ„์—์„œ๋Š” CSPM์ด๋‚˜ CWPP๊ฐ€ ๊ตฌ์„ฑ ์˜ค๋ฅ˜์™€ ๋Ÿฐํƒ€์ž„ ํ–‰์œ„๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค[5].

ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ „์ฒด ๊ตฌ์กฐ๋Š” ์ฝ”๋“œ๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์กด์žฌํ•˜๊ณ , ์‚ฌ๋žŒ์ด ์ •์˜ํ•œ ํŒŒ์ดํ”„๋ผ์ธ ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. LLM ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ์Šคํฌ๋ฆฝํŠธ ์—†์ด API ํ˜ธ์ถœ์„ ํ•˜๊ฑฐ๋‚˜, ๋‚ด๋ถ€ ์‹œ์Šคํ…œ์— ์ง์ ‘ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. Git ์ปค๋ฐ‹ ์—†์ด๋„ Slack์— ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ณ , Jenkins ๋กœ๊ทธ ์—†์ด๋„ AWS Lambda๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋ฉฐ, ์‚ฌ์ „์— ์ •์˜๋˜์ง€ ์•Š์€ ๋ชฉ์ ์— ๋”ฐ๋ผ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ์‹คํ–‰์€ DevSecOps์—์„œ ์ •์˜ํ•œ ๋ณด์•ˆ ์ œ์–ด ์ง€์ ์„ ์šฐํšŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค[6].

AgentSecOps๋Š” ์ด๋Ÿฌํ•œ ๋™์  ์‹คํ–‰ ์š”์ฒญ์— ๊ฐœ์ž…ํ•˜๋Š” ๊ตฌ์กฐ๋กœ, ์‹คํ–‰ ์‹œ์ ์—์„œ ์ •์ฑ…(PDP: Policy Decision Point)์„ ํ‰๊ฐ€ํ•˜๊ณ , ์‹คํ–‰ ๋ชฉ์ (PBAC: Purpose-Based Access Control)์„ ๊ธฐ์ค€์œผ๋กœ ๊ถŒํ•œ์„ ๊ฒ€์ฆํ•˜๋ฉฐ, ์Šน์ธ ํ๋ฆ„๊ณผ ๊ฐ์‚ฌ ๋กœ๊น…์„ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ๋‹จ์ผ ์‹คํ–‰ ๋‹จ์œ„์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํ†ต์ œ๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋ฉฐ, DevSecOps์˜ ์ •์  ๋ถ„์„์ด๋‚˜ ์‚ฌ์ „ ๋ฐฉ์–ด ๋ชจ๋ธ๊ณผ๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ํ†ต์ œ ์œ„์น˜๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์‹œ๊ฐ„ ํ๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ DevSecOps์™€ AgentSecOps์˜ ๊ฐœ์ž… ์ง€์ ์„ ๋น„๊ตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


[๊ทธ๋ฆผ 5] DevSecOps vs AgentSecOps Control Flow
[๊ทธ๋ฆผ 5] DevSecOps vs AgentSecOps Control Flow

DevSecOps๋Š” ์‹คํ–‰ ์ „ ์ฝ”๋“œ์™€ ์ž์‚ฐ ์ƒํƒœ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ , AgentSecOps๋Š” ์‹คํ–‰ ์‹œ์ ์˜ ํ–‰์œ„์™€ ์ •์ฑ… ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. AgentSecOps๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค.

  • ์‹คํ–‰ ์š”์ฒญ์˜ ์ฃผ์ฒด ์‹๋ณ„
  • ์‹คํ–‰ ๋ชฉ์ ๊ณผ ๋ฆฌ์†Œ์Šค ๊ฐ„ ์ •์ฑ… ์ถฉ๋Œ ์—ฌ๋ถ€ ํ™•์ธ
  • ์Šน์ธ ์š”์ฒญ ํ๋ฆ„ ๊ธฐ๋ฐ˜์˜ ์‚ฌ์ „ ์ œ์–ด ์‚ฝ์ž…
  • ์‹คํ–‰ ๋กœ๊ทธ ๋ฐ ๊ฐ์‚ฌ ๊ธฐ๋ก์˜ ์„ธ์…˜ ๋‹จ์œ„ ์ถ”์ 

AgentSecOps๋Š” ๋‹จ์ˆœํžˆ DevSecOps๋ฅผ ๋ณด์™„ํ•˜๋Š” ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ, ์‹คํ–‰ ํ๋ฆ„์˜ ์‹ค์‹œ๊ฐ„ ํ†ต์ œ๋ผ๋Š” ๋…๋ฆฝ๋œ ๋ณด์•ˆ ๊ณ„์ธต์œผ๋กœ ์ดํ•ด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ AI ์—์ด์ „ํŠธ๊ฐ€ ์˜์‚ฌ๊ฒฐ์ •๊ณผ ์‹คํ–‰์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š”, ์ •์ฑ… ๊ธฐ๋ฐ˜์˜ ๋™์  ์Šน์ธ ์ฒด๊ณ„ ์—†์ด๋Š” ๋ณด์•ˆ ์ฑ…์ž„ ์ถ”์ ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[7].

3. ๊ตฌ์กฐ ๋ถ„์„: AgentSecOps๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์‹คํ–‰ ํ†ต์ œ ์•„ํ‚คํ…์ฒ˜

AgentSecOps๋Š” ๋‹จ์ˆœํ•œ ์‹คํ–‰ ๋ชจ๋‹ˆํ„ฐ๋ง ์ฒด๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ, ์‹คํ–‰ ์š”์ฒญ์„ ์ค‘์‹ฌ์œผ๋กœ ๋ณด์•ˆ ์ •์ฑ…์„ ์ ์šฉํ•˜๊ณ , ๊ทธ ํ๋ฆ„์„ ๋™์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ํ†ต์ œ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. DevSecOps๊ฐ€ ์ฝ”๋“œ, ์ด๋ฏธ์ง€, ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์ •์  ๋˜๋Š” ์‚ฌ์ „ ์ •์˜๋œ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ, AgentSecOps๋Š” ์‹คํ–‰ ์ฃผ์ฒด์™€ ์‹คํ–‰ ๋งฅ๋ฝ์„ ์ค‘์‹ฌ์œผ๋กœ ์ •์ฑ…์„ ๋™์ ์œผ๋กœ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค[8].

์ด ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

3.1 ์ •์ฑ… ๊ฒฐ์ • ์ง€์ (PDP: Policy Decision Point)

PDP๋Š” ์‹คํ–‰ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•œ ํ›„, ํ•ด๋‹น ์š”์ฒญ์ด ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ค‘์•™ ์ •์ฑ… ์—”์ง„์ž…๋‹ˆ๋‹ค. ์ด ์—”์ง„์€ YAML ๋˜๋Š” Rego(Cedar ๋“ฑ) ํ˜•์‹์˜ ์ •์ฑ… ์ •์˜ ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰ ์ฃผ์ฒด, ๋ฆฌ์†Œ์Šค, ๋ชฉ์ , ์‹œ์  ๋“ฑ์˜ ์กฐ๊ฑด์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •์ฑ…์ด ์ ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



์ •์ฑ…์€ ๋ณดํ†ต Open Policy Agent(OPA), Cedar, Kyverno ๋“ฑ์˜ ๋„๊ตฌ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค[9].

3.2 ๋ชฉ์  ๊ธฐ๋ฐ˜ ๊ถŒํ•œ ๊ฒ€์ฆ (PBAC: Purpose-Based Access Control)

PBAC(Purpose-Based Access Control)๋Š” ์‹คํ–‰์˜ โ€˜๋ชฉ์ โ€™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ ‘๊ทผ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ถŒํ•œ ์ œ์–ด ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. RBAC(์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด)๋Š” ์‚ฌ์šฉ์ž๋‚˜ ์—์ด์ „ํŠธ์˜ ์—ญํ• (role)์„, ABAC(์†์„ฑ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด)๋Š” ์‚ฌ์šฉ์ž์™€ ๋ฆฌ์†Œ์Šค์˜ ์†์„ฑ(attribute)์„ ๊ธฐ์ค€์œผ๋กœ ์ •์ฑ…์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด PBAC๋Š” ์‹คํ–‰ ์š”์ฒญ ์‹œ ํ•จ๊ป˜ ๋ช…์‹œ๋˜๋Š” ์˜๋„(purpose)๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ •์ฑ… ํŒ๋‹จ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ ‘๊ทผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹คํ–‰ ์‹œ์  ๋ณด์•ˆ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ํŠนํžˆ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค:



์˜ˆ์‹œ: Google Drive ํŒŒ์ผ ๊ณต์œ 

AI ์—์ด์ „ํŠธ๊ฐ€ ํšŒ์‚ฌ ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ Google Drive์—์„œ ๊ณต์œ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ชฉ์ ์ด โ€œ๋‚ด๋ถ€ ํŒ€ ๊ฐ„ ํ˜‘์—…โ€์ผ ๊ฒฝ์šฐ์—๋Š” Slack, Notion ๋“ฑ ์กฐ์ง ๋‚ด ๊ณต์œ  ํ”Œ๋žซํผ์„ ํ†ตํ•ด ํ—ˆ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, ๋ชฉ์ ์ด โ€œ์™ธ๋ถ€ ํŒŒํŠธ๋„ˆ ๊ฒ€ํ† ์šฉโ€์ธ ๊ฒฝ์šฐ์—๋Š” ๋ณด์•ˆ ์ •์ฑ…์ƒ ์ถ”๊ฐ€ ๊ฒ€ํ† ๋‚˜ ์Šน์ธ ์ ˆ์ฐจ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. PBAC๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋™์ผํ•œ ๊ณต์œ  API ์š”์ฒญ์— ๋Œ€ํ•ด์„œ๋„ ์‹คํ–‰ ๋ชฉ์ ์— ๋”ฐ๋ผ ์ •์ฑ… ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์ •์ฑ…

allow {
    input.purpose == "internal_collab"
    input.user.role == "ai_assistant"
    input.resource.type == "gdrive.document"
    input.resource.sharing == "organization"
}

์ด ์ •์ฑ…์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๊ฒฝ์šฐ ๋ฌธ์„œ ๊ณต์œ ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • ์‹คํ–‰ ๋ชฉ์ ์ด "internal_collab" (๋‚ด๋ถ€ ํ˜‘์—…์šฉ ๊ณต์œ )
  • ์š”์ฒญ ์ฃผ์ฒด์˜ ์—ญํ• ์ด "ai_assistant"
  • ๋ฆฌ์†Œ์Šค๊ฐ€ Google Drive ๋ฌธ์„œ์ด๋ฉฐ, ๊ณต์œ  ๋ฒ”์œ„๊ฐ€ ์กฐ์ง ๋‚ด๋ถ€(organization)๋กœ ์ œํ•œ๋จ

๊ฐ™์€ API ํ˜ธ์ถœ์ด๋”๋ผ๋„, ๋ชฉ์ ์ด "external_partner_review" ๋ผ๋ฉด input.context.approval == true ์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์กฐ๊ฑด์ด ์—†์„ ๊ฒฝ์šฐ ๊ณต์œ ๊ฐ€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

ํ™œ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค ๋น„๊ต

์‹คํ–‰ ๋ชฉ์  ํ—ˆ์šฉ ์—ฌ๋ถ€ ํ•„์š” ์ •์ฑ… ์กฐ๊ฑด
internal_collab (๋‚ด๋ถ€ ํ˜‘์—…) ํ—ˆ์šฉ์กฐ์ง ๋‚ด๋ถ€ ๊ณต์œ , ์—์ด์ „ํŠธ ์—ญํ•  ํ™•์ธ
external_partner_review (์™ธ๋ถ€ ๊ณต์œ ) ์กฐ๊ฑด๋ถ€ ํ—ˆ์šฉNDA ํ™•์ธ, ์Šน์ธ ํ”Œ๋ž˜๊ทธ ์กด์žฌ (approval == true)
public_share (๊ณต๊ฐœ ๋งํฌ ๊ณต์œ ) ์ฐจ๋‹จํšŒ์‚ฌ ์ •์ฑ…์ƒ ์ „์ฒด ๊ณต๊ฐœ๋Š” ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ

PBAC vs RBAC vs ABAC ๋น„๊ต ํ…Œ์ด๋ธ”

ํ•ญ๋ชฉ RBAC ABAC PBAC (Purpose-Based)
๊ธฐ์ค€ ์š”์†Œ ์—ญํ• (Role)์†์„ฑ(Attribute)๋ชฉ์ (Purpose)
์‹คํ–‰ ์˜๋„ ๋ฐ˜์˜ ๋ถˆ๊ฐ€๋Šฅ์ œํ•œ์  (์†์„ฑ์œผ๋กœ ์šฐํšŒ ๊ฐ€๋Šฅ)๊ฐ€๋Šฅ (๋ช…์‹œ์  ๋ชฉ์  ๊ธฐ๋ฐ˜ ํŒ๋‹จ)
๋ณตํ•ฉ ์กฐ๊ฑด ํ‘œํ˜„๋ ฅ ๋‚ฎ์Œ๋†’์Œ์ค‘๊ฐ„ (์†์„ฑ๊ณผ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅ)
์ •์ฑ… ์„ค๊ณ„ ๋‚œ์ด๋„ ๋‚ฎ์Œ๋†’์Œ์ค‘๊ฐ„
์ฃผ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค ๋‚ด๋ถ€ ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๊ตฌ๋ถ„์ •๋ฐ€ ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ ์ œ์–ดAI, RPA, ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ์ž๋™ํ™”
์˜ˆ์‹œ "admin๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ""๋ถ€์„œ=์žฌ๋ฌด AND ๋“ฑ๊ธ‰=5 ์ด์ƒ""๋ชฉ์ =์•Œ๋ฆผ ์ „ํŒŒ์ธ ๊ฒฝ์šฐ๋งŒ ํ—ˆ์šฉ"
์‹คํ–‰ ์‹œ์  ์ œ์–ด ์ ํ•ฉ์„ฑ ๋‚ฎ์Œ์กฐ๊ฑด๋ถ€ ๊ฐ€๋Šฅ๋†’์Œ (์‹คํ–‰ ์ง์ „ ๋ชฉ์  ํ‰๊ฐ€ ๊ฐ€๋Šฅ)

PBAC๋Š” ์‹คํ–‰ ํ๋ฆ„์˜ ์ •๋‹น์„ฑ๊ณผ ๋งฅ๋ฝ์  ํ•ฉ๋ฆฌ์„ฑ์„ ๋ชฉ์  ๋‹จ์œ„๋กœ ๋ถ„๊ธฐ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, AgentSecOps ๊ตฌ์กฐ ๋‚ด์—์„œ ์‹คํ–‰ ์‹œ์  ์ •์ฑ…์˜ ํ•ต์‹ฌ ํ‰๊ฐ€ ๊ธฐ์ค€์œผ๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ์—์ด์ „ํŠธ๊ฐ€ ์ž์œจ์ ์œผ๋กœ SaaS API๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๋‚ด๋ถ€/์™ธ๋ถ€ ๊ฒฝ๊ณ„๋ฅผ ๋„˜๋‚˜๋“œ๋Š” ์ž๋™ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ, ๊ธฐ์กด ๊ถŒํ•œ ๋ชจ๋ธ๋งŒ์œผ๋กœ๋Š” ํ†ต์ œ ๋ถˆ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ์˜๋„ ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ํŒ๋‹จ์˜ ํ•ด๋ฒ•์ด ๋ฉ๋‹ˆ๋‹ค[10].

3.3 ์ •์ฑ… ์ง‘ํ–‰ ์ง€์ (PEP: Policy Enforcement Point)

PEP๋Š” PDP์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„ ์‹ค์ œ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ฐจ๋‹จํ•˜๋Š” ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ์™ธ๋ถ€ API ํ˜ธ์ถœ์„ ์‹œ๋„ํ•  ๋•Œ, ํ•ด๋‹น ์š”์ฒญ์€ ๋จผ์ € PEP๋ฅผ ๊ฑฐ์น˜๋ฉฐ, ํ—ˆ๊ฐ€๋˜์ง€ ์•Š์€ ์š”์ฒญ์€ ์ฆ‰์‹œ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. PEP๋Š” ๋‚ด๋ถ€ ํ”„๋ก์‹œ, ๋ฏธ๋“ค์›จ์–ด API, ์—์ด์ „ํŠธ ๋Ÿฐํƒ€์ž„ ์Šคํฌ๋ฆฝํŠธ ๋“ฑ ๋‹ค์–‘ํ•œ ์œ„์น˜์— ์‚ฝ์ž…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, Slack API ํ˜ธ์ถœ ๋ฏธ๋“ค์›จ์–ด์— ์‚ฝ์ž…๋œ PEP๋Š” ๋ฉ”์‹œ์ง€ ๋ฐœ์‹  ์ „ PDP์— ์ •์ฑ… ํ‰๊ฐ€ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๊ณ , ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ์˜ ๋ฌด๋‹จ ์‹คํ–‰์„ ์‚ฌ์ „์— ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.4 ์ •์ฑ… ์ •๋ณด ์ œ๊ณต์ž(PIP: Policy Information Point)

PIP๋Š” PDP๊ฐ€ ์ •์ฑ… ํ‰๊ฐ€ ์‹œ ์ฐธ์กฐํ•˜๋Š” ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์—ญํ• , ์ธ์ฆ ์ƒํƒœ, ํ˜„์žฌ ์‹œ๊ฐ„, ์—์ด์ „ํŠธ ์ปจํ…์ŠคํŠธ, ์ž‘์—… ๊ฒฝ๋กœ, ์ตœ๊ทผ ์‹คํ–‰ ๋‚ด์—ญ ๋“ฑ์€ PIP๋กœ๋ถ€ํ„ฐ ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋Š” ์‹คํ–‰ ์š”์ฒญ์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ, ์ •์ฑ… ํŒ๋‹จ์˜ ์ •๋ฐ€๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

3.5 ๊ฐ์‚ฌ ๊ธฐ๋ก ๋ฐ ์„ธ์…˜ ๊ธฐ๋ฐ˜ ๋กœ๊น…

์‹คํ–‰ ์š”์ฒญ์ด ํ—ˆ์šฉ๋˜๋“  ๊ฑฐ๋ถ€๋˜๋“ , ๋ชจ๋“  ์ •์ฑ… ํ‰๊ฐ€ ๋ฐ ์‹คํ–‰ ๋‚ด์—ญ์€ ์„ธ์…˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ์ž๋Š” ๊ฐœ๋ณ„ ์‹คํ–‰ ํ๋ฆ„์„ ๋ณต์›ํ•˜๊ณ , ํŠน์ • AI ์—์ด์ „ํŠธ๊ฐ€ ์–ด๋–ค ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ–ˆ๋Š”์ง€ ์‹œ๊ฐ์ ์œผ๋กœ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ์ถ”ํ›„ ํฌ๋ Œ์‹, ๋ณด์•ˆ ๊ฐ์‚ฌ, ๊ทœ์ œ ๋Œ€์‘์— ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ AgentSecOps ๊ตฌ์กฐ์˜ ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.


[๊ทธ๋ฆผ 6] AgentSecOps Component Architecture
[๊ทธ๋ฆผ 6] AgentSecOps Component Architecture

์ด ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด AgentSecOps๋Š” ์‹คํ–‰ ์ฃผ์ฒด์˜ ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๊ณ , ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ •์ฑ…์„ ์ ์šฉํ•˜๋ฉฐ, ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์ถ”์  ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ˆœ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์•„๋‹ˆ๋ผ ์‹คํ–‰ ์ œ์–ด๋ฅผ ํ•˜๋Š” ํ†ตํ•ฉ ๋ณด์•ˆ ์•„ํ‚คํ…์ฒ˜๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[11].

4. ์œ„ํ˜‘ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ถ„์„: AgentSecOps๋กœ ๋Œ€์‘ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ์œ„ํ˜‘ ์œ ํ˜•

AI ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ๋Š” ์‚ฌ๋žŒ์˜ ๊ฐœ์ž… ์—†์ด API ํ˜ธ์ถœ, ๋ฌธ์„œ ์ž‘์„ฑ, ๋ฉ”์‹œ์ง€ ๋ฐœ์†ก, ํด๋ผ์šฐ๋“œ ์ž์‚ฐ ๋ณ€๊ฒฝ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž์œจ ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ๋Š” ์ธ์ฆ, ์Šน์ธ, ๊ธฐ๋ก, ์ฑ…์ž„ ์ถ”์ ์ด ๋ถˆ๋ช…ํ™•ํ•œ ์‹คํ–‰์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋ฉฐ, ์ด๋กœ ์ธํ•ด ์ „ํ†ต์ ์ธ ๋ณด์•ˆ ๋ชจ๋ธ์ด ํ†ต์ œํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒˆ๋กœ์šด ์œ„ํ˜‘ ์œ ํ˜•์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. AgentSecOps๋Š” ์ด๋Ÿฌํ•œ ์‹คํ–‰ ์‹œ์  ์œ„ํ˜‘์„ ์‚ฌ์ „์— ํƒ์ง€ํ•˜๊ณ  ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค[12].

๋‹ค์Œ์€ AI ์—์ด์ „ํŠธ ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์ฃผ์š” ์œ„ํ˜‘ ์‹œ๋‚˜๋ฆฌ์˜ค ๋‹ค์„ฏ ๊ฐ€์ง€์™€, ์ด์— ๋Œ€ํ•œ AgentSecOps ์•„ํ‚คํ…์ฒ˜์˜ ๋Œ€์‘ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

4.1 ์—ญํ•  ์™ธ ์‹คํ–‰ ๋ฐœ์ƒ (Privilege Escalation via Agent Context)

AI ์—์ด์ „ํŠธ๊ฐ€ ํŠน์ • ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ํ—ˆ์šฉ๋ฐ›์ง€ ์•Š์€ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์กฐ์ง ๋‚ด โ€˜์ผ๋ฐ˜ ์ง์›โ€™์ธ ์‚ฌ์šฉ์ž A๊ฐ€ ํŠน์ • Google Drive ๋ฌธ์„œ์— ๋Œ€ํ•œ ์š”์•ฝ์„ ์š”์ฒญํ•˜์˜€๊ณ , ์ด์— ๋”ฐ๋ผ ์—์ด์ „ํŠธ๊ฐ€ API๋ฅผ ํ†ตํ•ด ๋ฌธ์„œ์— ์ ‘๊ทผํ•˜๋Š” ๊ณผ์ •์—์„œ, ๋‚ด๋ถ€ ์ธ์‚ฌ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๊ธฐ๋ฐ€ ๋ฌธ์„œ(tag: confidential)์—๊นŒ์ง€ ์ ‘๊ทผํ•œ ํ›„ ์ด๋ฅผ ์™ธ๋ถ€ ์ฑ„๋„์ด๋‚˜ ํƒ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž A์˜ ์—ญํ• ๋กœ๋Š” ๋ช…๋ฐฑํžˆ ์ ‘๊ทผ์ด ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด, ์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰ ๋ชฉ์ ์„ ์˜ค์šฉํ•˜๊ฑฐ๋‚˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์šฐํšŒํ•˜์—ฌ ๊ถŒํ•œ ์ƒ์Šน(Privilege Escalation)์„ ์ผ์œผํ‚จ ์‹œ๋‚˜๋ฆฌ์˜ค์ž…๋‹ˆ๋‹ค.

AgentSecOps๋Š” ์ด๋Ÿฌํ•œ ์‹คํ–‰ ์š”์ฒญ์— ๋Œ€ํ•ด ์‹คํ–‰ ์ฃผ์ฒด(user.role), ์‹คํ–‰ ๋ชฉ์ (purpose), ์ž์› ์†์„ฑ(resource.tag)์„ ํ†ตํ•ฉ์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๋ฉฐ, ์‹คํ–‰ ์‹œ์ ์—์„œ ๋™์ ์œผ๋กœ ์ ‘๊ทผ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด(RBAC)๋งŒ์œผ๋กœ๋Š” ์‹คํ–‰ ์˜๋„์˜ ๋ถ„๋ฆฌ๊ฐ€ ์–ด๋ ค์šด ํ™˜๊ฒฝ์—์„œ๋Š”, ๋ชฉ์  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด(PBAC)๋ฅผ ํ†ตํ•ด ์ •๋ฐ€ํ•œ ํ†ต์ œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ํ•ด๋‹น ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€์‘ํ•˜๋Š” ์ •์ฑ… ์ •์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

default allow = false

allow {
    input.user.role == "employee"
    input.resource.type == "gdrive.document"
    input.resource.tag != "confidential"
    input.purpose == "summary"
}

์ด ์ •์ฑ…์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์š”์ฒญ ์ฃผ์ฒด์˜ ์—ญํ• ์ด employee์ž…๋‹ˆ๋‹ค.
  • ์š”์ฒญ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค๋Š” Google Drive ๋ฌธ์„œ(gdrive.document)์ž…๋‹ˆ๋‹ค.
  • ๋ฌธ์„œ์˜ ๋ณด์•ˆ ํƒœ๊ทธ๊ฐ€ confidential์ด ์•„๋‹™๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ๋ชฉ์ ์ด "summary"๋กœ ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์ฑ… ํ‰๊ฐ€์— ๋”ฐ๋ฅธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„๊ธฐ๋ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ์กฐ๊ฑด ์‹คํ–‰ ์—ฌ๋ถ€ ํŒ๋‹จ ๊ทผ๊ฑฐ
์ผ๋ฐ˜ ์ง์›์ด ์ผ๋ฐ˜ ๋ฌธ์„œ๋ฅผ ์š”์•ฝ ๋ชฉ์ ์œผ๋กœ ์š”์ฒญํ—ˆ์šฉ๋ชจ๋“  ์กฐ๊ฑด์„ ์ถฉ์กฑํ•จ
์ผ๋ฐ˜ ์ง์›์ด confidential ๋ฌธ์„œ๋ฅผ ์š”์•ฝ ์š”์ฒญ์ฐจ๋‹จ๋ฌธ์„œ์˜ ๋ณด์•ˆ ํƒœ๊ทธ ์กฐ๊ฑด ๋ถˆ์ถฉ์กฑ
์ผ๋ฐ˜ ์ง์›์ด ์š”์•ฝ ์™ธ ๋ชฉ์ (์˜ˆ: translate) ์š”์ฒญ์ฐจ๋‹จ์‹คํ–‰ ๋ชฉ์ ์ด ๋ถˆ์ผ์น˜ํ•จ
๊ด€๋ฆฌ์ž๊ฐ€ confidential ๋ฌธ์„œ์— ์ ‘๊ทผ ์š”์ฒญ์ •์ฑ… ์™ธ๋ถ€๋ณ„๋„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์ •์ฑ… ์ •์˜ ํ•„์š”

PBAC๋Š” ์‹คํ–‰ ๋ชฉ์ ์„ ์ •์ฑ… ํ‰๊ฐ€ ๊ธฐ์ค€์— ๋ช…์‹œํ•จ์œผ๋กœ์จ, ์‹คํ–‰ ์‹œ์ ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์ปจํ…์ŠคํŠธ ๋ถ„๊ธฐ๋ฅผ ํ†ต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ AI ๊ธฐ๋ฐ˜ ์ž๋™ํ™” ๊ตฌ์กฐ์—์„œ๋Š” ์‚ฌ์šฉ์ž์™€ ์‹คํ–‰ ์ฃผ์ฒด๊ฐ€ ๋ถ„๋ฆฌ๋˜๋ฏ€๋กœ, ์‹คํ–‰ ๋ชฉ์ ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์ •์ฑ… ๋ชจ๋ธ์ด AgentSecOps ๋‚ด์—์„œ ํ•ต์‹ฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

4.2 ์œ„์ž„ ๋ฒ”์œ„ ์˜ค๋‚จ์šฉ (Delegation Misuse and Overscope Execution)

AI ์—์ด์ „ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๊ถŒํ•œ์„ ์œ„์ž„๋ฐ›์•„ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ๋Š”, ์กฐ์ง ๋‚ด ์ž๋™ํ™” ์‹œ์Šคํ…œ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ฒฝ์šฐ, ์—์ด์ „ํŠธ๊ฐ€ ์œ„์ž„๋œ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ์˜๋„ํ•˜์ง€ ์•Š์€ API ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด, ์‹คํ–‰ ์ฃผ์ฒด์™€ ๊ถŒํ•œ ์ฑ…์ž„ ๊ฐ„์˜ ๋ถˆ์ผ์น˜๋กœ ์ธํ•ด ๋ณด์•ˆ ์‚ฌ๊ณ ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž๊ฐ€ Jira ํ”„๋กœ์ ํŠธ์˜ ํŠน์ • ์ด์Šˆ ๋“ฑ๋ก ๊ถŒํ•œ์„ ์—์ด์ „ํŠธ์—๊ฒŒ ์œ„์ž„ํ•˜์˜€์œผ๋‚˜, ํ•ด๋‹น ์—์ด์ „ํŠธ๊ฐ€ ์Šน์ธ๋ฐ›์ง€ ์•Š์€ ์™ธ๋ถ€ ํ”„๋กœ์ ํŠธ ๋ณด๋“œ์—๊นŒ์ง€ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, Epic ๋‹จ์œ„์˜ ๊ณ ์œ„ํ—˜ ํ•ญ๋ชฉ๊นŒ์ง€ ์ž๋™์œผ๋กœ ๋“ฑ๋กํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์Šน์ธํ•œ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„  ์‹คํ–‰์ด๋ฏ€๋กœ, ์œ„์ž„ ๋ฒ”์œ„ ์˜ค๋‚จ์šฉ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

AgentSecOps๋Š” ์œ„์ž„ ์‹คํ–‰ ๊ตฌ์กฐ์— ๋Œ€ํ•ด delegated_by, resource.id, purpose์™€ ๊ฐ™์€ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ํ‰๊ฐ€ํ•˜๋ฉฐ, ์œ„์ž„ ๋ฒ”์œ„์˜ ์ ์ •์„ฑ ์—ฌ๋ถ€๋ฅผ ๋™์ ์œผ๋กœ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ•ด๋‹น ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€์‘ํ•˜๋Š” ์ •์ฑ… ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

default allow = false

allow {
    input.delegated_by == "user_123"
    input.user.role == "ai_issue_creator"
    input.resource.id == "jira-project-X"
    input.purpose == "task_registration"
}

์ด ์ •์ฑ…์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ ์‹คํ–‰์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์‹คํ–‰์ด ์‚ฌ์šฉ์ž ID "user_123"๋กœ๋ถ€ํ„ฐ ์œ„์ž„๋˜์—ˆ์Œ์„ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์ฃผ์ฒด์˜ ์—ญํ• ์ด ai_issue_creator์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Jira ํ”„๋กœ์ ํŠธ ๋ณด๋“œ๋Š” "jira-project-X"๋กœ ์ œํ•œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ๋ชฉ์ ์ด "task_registration"์œผ๋กœ ์ •์˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ •์ฑ…์— ๋”ฐ๋ฅธ ์‹คํ–‰ ๋ถ„๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ์กฐ๊ฑด ์‹คํ–‰ ์—ฌ๋ถ€ ํŒ๋‹จ ๊ทผ๊ฑฐ
์œ„์ž„์ž๊ฐ€ user_123์ด๊ณ , jira-project-X์— ์ด์Šˆ ๋“ฑ๋กํ—ˆ์šฉ์œ„์ž„ ์กฐ๊ฑด๊ณผ ์ž์› ๋ฒ”์œ„ ๋ชจ๋‘ ์ถฉ์กฑ
์œ„์ž„์ž๋Š” ๋™์ผํ•˜๋‚˜, ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ(jira-project-Y)์— ๋“ฑ๋ก์ฐจ๋‹จ์ž์› ๋ฒ”์œ„ ์ดˆ๊ณผ
์‹คํ–‰ ์ฃผ์ฒด ์—ญํ• ์ด ai_issue_creator๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์ฐจ๋‹จ์œ„์ž„ ์‹คํ–‰ ์ฃผ์ฒด ์กฐ๊ฑด ๋ถˆ์ถฉ์กฑ
์‹คํ–‰ ๋ชฉ์ ์ด "task_registration"์ด ์•„๋‹Œ ๊ฒฝ์šฐ์ฐจ๋‹จํ—ˆ์šฉ๋œ ์‹คํ–‰ ๋ชฉ์  ์กฐ๊ฑด ๋ถˆ์ถฉ์กฑ

์œ„์ž„ ๊ธฐ๋ฐ˜ ์ž๋™ํ™” ํ™˜๊ฒฝ์—์„œ๋Š” ์œ„์ž„์ž์˜ ์Šน์ธ๊ณผ ์‹คํ–‰ ์ฃผ์ฒด์˜ ๊ถŒํ•œ์ด ๋ถ„๋ฆฌ๋˜์–ด ๋ฐœ์ƒํ•˜๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. AgentSecOps๋Š” ์‹คํ–‰ ์‹œ์ ์—์„œ ์ด์™€ ๊ฐ™์€ ์œ„์ž„ ๊ด€๊ณ„๋ฅผ ์ปจํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ •์ฑ…์œผ๋กœ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ„์ž„ ๋ฒ”์œ„์— ๋Œ€ํ•œ ์ •์ฑ… ๋ช…์„ธ๋ฅผ ํ†ตํ•ด ์‹คํ–‰ ํ๋ฆ„์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.3 ํŠธ๋ฆฌ๊ฑฐ ์˜ค์šฉ์„ ํ†ตํ•œ ์™ธ๋ถ€ API ํ™•์žฅ (Trigger Abuse and External API Expansion)

AI ์—์ด์ „ํŠธ๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ GitHub์˜ webhook ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ฒ˜๋Ÿผ ์™ธ๋ถ€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์—์ด์ „ํŠธ๋Š”, ์‚ฌ์ „์— ์ •์˜๋˜์ง€ ์•Š์€ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์ด๋‚˜ ๋‚ด๋ถ€ ๊ณ ์œ„ํ—˜ ๋ฆฌ์†Œ์Šค๊นŒ์ง€ ํ™•์žฅ ์‹คํ–‰์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์‹คํ–‰์˜ ์ถœ์ฒ˜์™€ ๋ชฉ์ ์ด ๋ถˆ์ผ์น˜ํ•˜๊ฒŒ ๋˜๋ฉฐ, ํŠธ๋ฆฌ๊ฑฐ ์˜ค์šฉ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, GitHub ์ €์žฅ์†Œ์— ์ฝ”๋“œ๊ฐ€ ํ‘ธ์‹œ๋˜์—ˆ์„ ๋•Œ ์—์ด์ „ํŠธ๊ฐ€ ๋นŒ๋“œ ์ž๋™ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ๋œ ๋ชฉ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์ด์šฉํ•ด AWS ํ™˜๊ฒฝ์— ์ƒˆ๋กœ์šด EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, GitLab์— ๋ณ‘๋ ฌ ์ž‘์—…์„ ์ƒ์„ฑํ•˜๋Š” ๋“ฑ, ์‚ฌ์ „์— ๋ช…์‹œ๋˜์ง€ ์•Š์€ ์‹คํ–‰ ํ™•์žฅ๊นŒ์ง€ ์ง„ํ–‰๋  ๊ฒฝ์šฐ ์ด๋Š” ๋ณด์•ˆ ์œ„๋ฐ˜์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

AgentSecOps๋Š” ํŠธ๋ฆฌ๊ฑฐ์˜ ์ถœ์ฒ˜(trigger.source)์™€ ํ˜ธ์ถœ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค(resource.domain)๊ฐ€ ์‚ฌ์ „์— ์ •์˜๋œ ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์‹คํ–‰ ๋ชฉ์ (purpose)๊ณผ๋„ ๋น„๊ตํ•˜์—ฌ ๋™์ž‘์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ์ •์ฑ… ์ •์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

default allow = false

allow {
    input.trigger.source == "github"
    input.resource.domain == "github.com"
    input.purpose == "ci_pipeline"
}

ํ•ด๋‹น ์ •์ฑ…์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ํŠธ๋ฆฌ๊ฑฐ๋Š” GitHub webhook์—์„œ ๋ฐœ์ƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฆฌ์†Œ์Šค์˜ ๋„๋ฉ”์ธ์€ github.com์— ์†ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ๋ชฉ์ ์€ "ci_pipeline"์œผ๋กœ ๋ช…์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ •์ฑ… ํ‰๊ฐ€์— ๋”ฐ๋ฅธ ์‹คํ–‰ ๋ถ„๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ์กฐ๊ฑด ์‹คํ–‰ ์—ฌ๋ถ€ ํŒ๋‹จ ๊ทผ๊ฑฐ
GitHub ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜, GitHub ๋‚ด ๋นŒ๋“œ ์ž๋™ํ™” ์‹คํ–‰ ์š”์ฒญํ—ˆ์šฉ์ถœ์ฒ˜์™€ ๋ฆฌ์†Œ์Šค ๋„๋ฉ”์ธ์ด ์ผ์น˜ํ•จ
GitHub ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜, AWS EC2 ์‹คํ–‰ ์š”์ฒญ์ฐจ๋‹จํŠธ๋ฆฌ๊ฑฐ ์ถœ์ฒ˜์™€ ๋ฆฌ์†Œ์Šค ๋„๋ฉ”์ธ์ด ๋ถˆ์ผ์น˜
GitLab ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜, GitHub ์ž‘์—… ์š”์ฒญ์ฐจ๋‹จํŠธ๋ฆฌ๊ฑฐ ์ถœ์ฒ˜ ๋ถˆ์ผ์น˜
GitHub ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜, ๋ชฉ์ ์ด "deployment"๋กœ ๋ช…์‹œ๋œ ์‹คํ–‰ ์š”์ฒญ์ฐจ๋‹จํ—ˆ์šฉ๋œ ์‹คํ–‰ ๋ชฉ์  ์กฐ๊ฑด ๋ถˆ์ผ์น˜

AgentSecOps๋Š” ์™ธ๋ถ€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํŠธ๋ฆฌ๊ฑฐ์˜ ์ถœ์ฒ˜์™€ ์‹คํ–‰ ๋ชฉ์  ๊ฐ„์˜ ์ •์ฑ…์  ์ผ๊ด€์„ฑ์„ ํ‰๊ฐ€ํ•จ์œผ๋กœ์จ, ์‚ฌ์ „์— ์ •์˜๋˜์ง€ ์•Š์€ ์‹คํ–‰ ํ™•์žฅ์„ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ํŠนํžˆ ๋‹ค์ค‘ SaaS ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌด๋ถ„๋ณ„ํ•œ API ์—ฐ๊ฒฐ ์‹œ๋„๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

4.4 ์‹คํ–‰ ๊ฒฝ๋กœ ๋ถˆํˆฌ๋ช…์„ฑ (Execution Path Obfuscation)

AI ์—์ด์ „ํŠธ๊ฐ€ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™๋˜์–ด ์ž์œจ์ ์œผ๋กœ ์‹คํ–‰ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š”, ์‹คํ–‰ ๊ฒฐ๊ณผ๋งŒ ๊ธฐ๋ก๋˜๊ณ  ๊ทธ ์š”์ฒญ์ด ๋ˆ„๊ฐ€, ์–ธ์ œ, ์–ด๋–ค ์กฐ๊ฑด์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ๋Š”์ง€ ์ถ”์ ์ด ์–ด๋ ค์šด ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณด์•ˆ ์‚ฌ๊ณ  ๋ฐœ์ƒ ์‹œ ํ–‰์œ„ ์ฃผ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค๋ฉฐ, ํฌ๋ Œ์‹๊ณผ ์ปดํ”Œ๋ผ์ด์–ธ์Šค ๋Œ€์‘์— ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—์ด์ „ํŠธ๊ฐ€ Google Calendar API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์กฐ์ง ์ „์ฒด ํšŒ์˜๋ฅผ ์ž๋™ ์ƒ์„ฑํ–ˆ์œผ๋‚˜, ํ•ด๋‹น ์š”์ฒญ์ด ์–ด๋–ค ์‚ฌ์šฉ์ž ๋˜๋Š” ์—์ด์ „ํŠธ ID๋กœ ์ˆ˜ํ–‰๋˜์—ˆ๋Š”์ง€, ์‹คํ–‰ ๋ชฉ์ ์ด ๋ฌด์—‡์ด์—ˆ๋Š”์ง€, ์–ด๋–ค ์กฐ๊ฑด ํ•˜์—์„œ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€๊ฐ€ ์‹คํ–‰ ๋กœ๊ทธ์— ๋‚จ์•„ ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์€ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ์กด์žฌํ•˜์ง€๋งŒ ๊ฒฝ๋กœ๊ฐ€ ์‹๋ณ„๋˜์ง€ ์•Š๋Š” ๊ฐ€์‹œ์„ฑ ์‹๋ณ„์ด ์–ด๋ ค์šด ์‹คํ–‰ ํ๋ฆ„์ด๋ฉฐ, ๊ณต๊ฒฉ์ž๊ฐ€ ๋กœ๊ทธ ์กฐ์ž‘์ด๋‚˜ ์˜๋„์  ์šฐํšŒ๋ฅผ ์‹œ๋„ํ•  ๊ฒฝ์šฐ ๋ณด์•ˆ์˜ ์‚ฌ๊ฐ์ง€๋Œ€๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AgentSecOps๋Š” ๋ชจ๋“  ์‹คํ–‰ ์š”์ฒญ์— ๋Œ€ํ•ด ์‚ฌ์ „์— ์ •์˜๋œ ์ปจํ…์ŠคํŠธ ํ•„์ˆ˜ ํ•ญ๋ชฉ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. PDP๋Š” ์ •์ฑ… ํ‰๊ฐ€ ์‹œ ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋  ๊ฒฝ์šฐ ํ•ด๋‹น ์š”์ฒญ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ์‹คํ–‰ ํ๋ฆ„์€ ์„ธ์…˜ ๋‹จ์œ„๋กœ ๊ฐ์‚ฌ ๋กœ๊ทธ์— ์ €์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ํ•ด๋‹น ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ์ •์ฑ… ์ •์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

default allow = false

allow {
    input.user.id
    input.session.id
    input.resource.id
    input.purpose
}

์ด ์ •์ฑ…์€ ๋‹ค์Œ ํ•„์ˆ˜ ํ•ญ๋ชฉ์ด ๋ชจ๋‘ ์กด์žฌํ•  ๋•Œ๋งŒ ์‹คํ–‰์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž ์‹๋ณ„์ž(user.id)
  • ์„ธ์…˜ ID(session.id)
  • ์ž์› ์‹๋ณ„์ž(resource.id)
  • ์‹คํ–‰ ๋ชฉ์ (purpose)

์ด๋Ÿฌํ•œ ์ •์ฑ…์€ ์‹ค์ œ ํ‰๊ฐ€ ๋กœ์ง์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š”, ์‹คํ–‰ ์š”์ฒญ ํฌ๋งท์˜ ์ •ํ•ฉ์„ฑ์„ ๊ฒ€์ฆํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•ญ๋ชฉ์ด ๋ˆ„๋ฝ๋œ ์š”์ฒญ์€ ์‹คํ–‰ ์ „ ๋‹จ๊ณ„์—์„œ ์ฐจ๋‹จ๋˜๋ฉฐ, ์ •์ƒ ์‹คํ–‰์˜ ๊ฒฝ์šฐ์—๋„ ๋ชจ๋“  ์ปจํ…์ŠคํŠธ๋Š” ์„ธ์…˜ ๋กœ๊ทธ์— ํ•จ๊ป˜ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.


์ •์ฑ…์— ๋”ฐ๋ฅธ ์‹คํ–‰ ๋ถ„๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ์กฐ๊ฑด ์‹คํ–‰ ์—ฌ๋ถ€ ํŒ๋‹จ ๊ทผ๊ฑฐ
๋ชจ๋“  ํ•„์ˆ˜ ํ•ญ๋ชฉ(user, session, resource, purpose)์ด ํฌํ•จ๋œ ์š”์ฒญํ—ˆ์šฉ์š”์ฒญ ๊ตฌ์กฐ ์™„์ „ํ•จ
session.id๊ฐ€ ๋ˆ„๋ฝ๋œ ์š”์ฒญ์ฐจ๋‹จ์‹คํ–‰ ๊ฒฝ๋กœ ์ถ”์  ๋ถˆ๊ฐ€
purpose ํ•„๋“œ๊ฐ€ ์—†๋Š” ์ž๋™ํ™” ์š”์ฒญ์ฐจ๋‹จ์‹คํ–‰ ๋ชฉ์  ๋ถˆ๋ช…ํ™•, ์ •์ฑ… ํ‰๊ฐ€ ๋ถˆ๊ฐ€๋Šฅ
์—์ด์ „ํŠธ๊ฐ€ ๋น„์‹๋ณ„ ์ƒํƒœ๋กœ ์š”์ฒญํ•œ ๊ฒฝ์šฐ์ฐจ๋‹จuser.id ๋ฏธํ™•์ •, ์‹คํ–‰ ์ฑ…์ž„ ์ถ”์  ๋ถˆ๊ฐ€

AgentSecOps๋Š” ์‹คํ–‰ ์š”์ฒญ์ด ๋‹จ์ˆœํžˆ ์„ฑ๊ณตํ–ˆ๋Š”์ง€๋ฅผ ๋„˜์–ด์„œ, ๊ทธ ์š”์ฒญ์ด ์–ด๋–ค ๋งฅ๋ฝ๊ณผ ์กฐ๊ฑด์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ๋Š”์ง€๋ฅผ ํฌํ•จํ•˜์—ฌ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹คํ–‰ ๋งฅ๋ฝ์˜ ์ •ํ•ฉ์„ฑ์€ ๋‹จ์ˆœํ•œ ๋ณด์•ˆ ํ‰๊ฐ€๋ฟ ์•„๋‹ˆ๋ผ, ์‚ฌ๊ณ  ๋Œ€์‘, ํ–‰์œ„ ๊ฐ์‚ฌ, ์ •์ฑ… ๊ฐœ์„ ์„ ์œ„ํ•œ ํ•ต์‹ฌ ๊ธฐ๋ฐ˜ ์ •๋ณด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

4.5 AI ์ถœ๋ ฅ ๊ธฐ๋ฐ˜ ์ž๋™ ์‹คํ–‰ ์œ ๋„ (Prompt-to-Execution Abuse via LLM Output)

AI ์—์ด์ „ํŠธ๊ฐ€ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ(LLM)์˜ ์‘๋‹ต์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ์กฐ์—์„œ๋Š”, ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ ๊ฒฐ๊ณผ๋กœ ์ƒ์„ฑ๋œ ์‘๋‹ต์ด ์˜๋„ํ•˜์ง€ ์•Š์€ ์‹คํ–‰์„ ์œ ๋ฐœํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ LLM์˜ ์‘๋‹ต์ด API ํ˜ธ์ถœ๊ณผ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜๋Š” ๊ตฌ์กฐ์ผ ๊ฒฝ์šฐ, ์•…์˜์  ๋˜๋Š” ๋ถˆ๋ช…ํ™•ํ•œ ์ž…๋ ฅ์œผ๋กœ ์ธํ•ด ๊ณ ์œ„ํ—˜ ๋ช…๋ น์ด ์ž๋™ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ โ€œํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ์ •๋ฆฌํ•ด์ค˜โ€๋ผ๊ณ  ์ž์—ฐ์–ด๋กœ ์š”์ฒญํ•œ ๊ฒฝ์šฐ, LLM์ด ์ด๋ฅผ aws ec2 terminate-instances --all๊ณผ ๊ฐ™์ด ํ•ด์„ํ•˜๊ณ , ์—์ด์ „ํŠธ๊ฐ€ ์ด๋ฅผ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•œ๋‹ค๋ฉด ์ด๋Š” ๋ช…๋ฐฑํ•œ Prompt Injection ๊ธฐ๋ฐ˜ ์‹คํ–‰ ์‚ฌ๊ณ ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ๋Š” ์‹คํ–‰ ์š”์ฒญ์ด ์˜๋„๋œ ๋ชฉ์ ๊ณผ ์ •์ฑ… ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€๋ฅผ ๋ช…ํ™•ํžˆ ํŒ๋‹จํ•ด์•ผ ํ•˜๋ฉฐ, ํŠน์ • ๊ณ ์œ„ํ—˜ ํ‚ค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋œ ์‘๋‹ต์— ๋Œ€ํ•ด์„œ๋Š” ์ถ”๊ฐ€ ์Šน์ธ์„ ์š”๊ตฌํ•˜๊ฑฐ๋‚˜ ์ž๋™ ์‹คํ–‰์„ ์ฐจ๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ํ•ด๋‹น ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€์‘ํ•˜๋Š” ์ •์ฑ… ์ •์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

default allow = false

allow {
    not contains(input.llm_response, "terminate")
    not contains(input.llm_response, "delete")
    not contains(input.llm_response, "format")
    input.purpose == "maintenance"
    input.context.approved == true
}

์ด ์ •์ฑ…์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • LLM ์‘๋‹ต ๋‚ด์— terminate, delete, format ๋“ฑ์˜ ๊ณ ์œ„ํ—˜ ํ‚ค์›Œ๋“œ๊ฐ€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ๋ชฉ์ ์€ "maintenance"๋กœ ๋ช…์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์š”์ฒญ์€ ์‚ฌ์ „์— ๊ด€๋ฆฌ์ž ๋˜๋Š” ์ •์ฑ… ์‹œ์Šคํ…œ์— ์˜ํ•ด approved == true๋กœ ์Šน์ธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ •์ฑ… ํ‰๊ฐ€์— ๋”ฐ๋ฅธ ์‹คํ–‰ ๋ถ„๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ์กฐ๊ฑด ์‹คํ–‰ ์—ฌ๋ถ€ ํŒ๋‹จ ๊ทผ๊ฑฐ
LLM ์‘๋‹ต์— ์œ„ํ—˜ ๋ช…๋ น ์—†๊ณ , ์Šน์ธ๋œ ์œ ์ง€๋ณด์ˆ˜ ์š”์ฒญํ—ˆ์šฉ๋ชฉ์  ๋ฐ ์Šน์ธ์ด ๋ชจ๋‘ ๋งŒ์กฑ๋จ
์‘๋‹ต์— "terminate" ํฌํ•จ๋จ์ฐจ๋‹จ๊ณ ์œ„ํ—˜ ํ‚ค์›Œ๋“œ ํฌํ•จ
์Šน์ธ๋˜์ง€ ์•Š์€ ์š”์ฒญ(approved == false)์ฐจ๋‹จ์ด์ค‘ ์Šน์ธ ์กฐ๊ฑด ๋ถˆ์ถฉ์กฑ
์‹คํ–‰ ๋ชฉ์ ์ด "cleanup" ๋“ฑ ๋ถˆ๋ช…ํ™•ํ•œ ํ…์ŠคํŠธ๋กœ ์ „๋‹ฌ๋จ์ฐจ๋‹จ์ •์ฑ… ๋‚ด ๋ช…์‹œ๋œ ๋ชฉ์ ๊ณผ ๋ถˆ์ผ์น˜

AgentSecOps๋Š” ์‹คํ–‰ ์š”์ฒญ์˜ ๋ฌธ๋งฅ๋ฟ ์•„๋‹ˆ๋ผ, ์‹ค์ œ ์‹คํ–‰ ๋ฌธ์žฅ์˜ ๋‚ด๋ถ€ ๋‚ด์šฉ๊นŒ์ง€๋„ ํ‰๊ฐ€ ์กฐ๊ฑด์— ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” LLM๊ณผ ์ž๋™ํ™”๋œ ์‹คํ–‰ ๊ณ„์ธต์ด ์—ฐ๊ฒฐ๋  ๋•Œ ํ•„์—ฐ์ ์œผ๋กœ ์š”๊ตฌ๋˜๋Š” ๋ณด์•ˆ ๊ตฌ์กฐ์ด๋ฉฐ, Prompt-to-Execution ๊ฒฝ๋กœ์˜ ์•ˆ์ „์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์ด์ค‘ ์Šน์ธ ํ๋ฆ„๊ณผ ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜ ํ•„ํ„ฐ๋ง์„ ๋ณ‘ํ–‰ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์œ„ํ˜‘ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ AgentSecOps์˜ ๋Œ€์‘ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์ •๋ฆฌํ•œ ๋งคํ•‘ ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.


์œ„ํ˜‘ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ AgentSecOps ๋Œ€์‘ ์ปดํฌ๋„ŒํŠธ ๋งคํ•‘ ํ‘œ

์œ„ํ˜‘ ์‹œ๋‚˜๋ฆฌ์˜ค ๋Œ€์‘ ์ปดํฌ๋„ŒํŠธ ๋ฐ ๋งค์ปค๋‹ˆ์ฆ˜
Privilege Escalation via Agent ContextPDP + PBAC ๋ชฉ์  ๊ธฐ๋ฐ˜ ์ •์ฑ… ํ‰๊ฐ€
Delegation Misuse and Overscope Execution์œ„์ž„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ™•์ธ(PIP) + ์ •์ฑ… ๋‚ด ์œ„์ž„ ๋ฒ”์œ„ ์ œํ•œ(PDP)
Trigger Abuse and External API ExpansionํŠธ๋ฆฌ๊ฑฐ ์ถœ์ฒ˜ ๊ฒ€์ฆ(PDP) + ๋ฆฌ์†Œ์Šค ๋„๋ฉ”์ธ ๋ถˆ์ผ์น˜ ์‹œ ์‹คํ–‰ ์ฐจ๋‹จ(PEP)
Execution Path Obfuscation์‚ฌ์šฉ์ž ID, ์„ธ์…˜ ID, ์‹คํ–‰ ๋ชฉ์  ํ•„๋“œ ์กด์žฌ ์—ฌ๋ถ€ ๊ฒ€์ฆ(PDP) + ๊ฐ์‚ฌ ๋กœ๊ทธ ๊ธฐ๋ก
Prompt-to-Execution Abuse via LLM OutputLLM ์‘๋‹ต ํ‚ค์›Œ๋“œ ํ•„ํ„ฐ๋ง(PDP) + ์Šน์ธ ํ”Œ๋ž˜๊ทธ ์กด์žฌ ํ™•์ธ + ๋ชฉ์  ๊ฒ€์ฆ(PDP)

AgentSecOps๋Š” DevSecOps์™€ ๋ณด์™„ ๊ด€๊ณ„์— ์žˆ์œผ๋ฉฐ, DevSecOps๊ฐ€ ์‹คํ–‰ ์ „ยท์ค‘ยทํ›„์— ๊ฑธ์ณ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ์ž๋™ํ™”๋ฅผ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ๋กœ ํ™•์žฅ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์‹คํ–‰ ์š”์ฒญ ๋‹จ์œ„์˜ ์ •์ฑ… ํŒ๋‹จ๊ณผ ๋ชฉ์  ๊ธฐ๋ฐ˜ ํ†ต์ œ๋ผ๋Š” ์ธก๋ฉด์—์„œ๋Š” ์—ฌ์ „ํžˆ ๋ณด์™„์ด ํ•„์š”ํ•œ ์ง€์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜์˜ ์ž์œจ ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ๋Š” DevSecOps๊ฐ€ ํฌ์ฐฉํ•˜์ง€ ๋ชปํ•˜๋Š” ์‹คํ–‰ ๋ชฉ์ , ์œ„์ž„ ๋ฒ”์œ„, ํŠธ๋ฆฌ๊ฑฐ ์ถœ์ฒ˜ ๋“ฑ์˜ ๋งฅ๋ฝ์„ AgentSecOps๊ฐ€ ์ •์ฑ…์ ์œผ๋กœ ํ†ต์ œํ•จ์œผ๋กœ์จ, ์‹คํ–‰ ์‹œ์  ๋ณด์•ˆ์˜ ๊ณต๋ฐฑ์„ ๋ฉ”์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[13].

5. ์ „๋žต ์ œ์–ธ: AgentSecOps ์„ค๊ณ„ ๋ฐ ๋„์ž…์„ ์œ„ํ•œ ๊ธฐ์ˆ  ์ „๋žต

AgentSecOps๋Š” ๊ธฐ์กด ๋ณด์•ˆ ์ฒด๊ณ„์™€๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ๊ฐœ์ž… ์ง€์ ๊ณผ ์ •์ฑ… ํ‰๊ฐ€ ๊ธฐ์ค€์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์กฐ์ง์— ์‹ค์งˆ์ ์œผ๋กœ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„ค๊ณ„ ๋ฐฉ์‹๋ฟ ์•„๋‹ˆ๋ผ ์ •์ฑ… ๊ตฌ์„ฑ, ์‹คํ–‰ ํ๋ฆ„ ํ†ตํ•ฉ, ๊ฐ์‚ฌ ์ฒด๊ณ„ ์„ค๊ณ„๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ์  ์ „๋žต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค[14].

5.1 ์‹คํ–‰ ํ๋ฆ„ ํ†ตํ•ฉ์„ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์ „๋žต

AgentSecOps๋Š” ์—์ด์ „ํŠธ ์‹คํ–‰ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋Š” ์‹œ์ ์— ๊ฐœ์ž…ํ•˜์—ฌ, ํ•ด๋‹น ์š”์ฒญ์˜ ์‹คํ–‰์„ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—์ด์ „ํŠธ๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ(API, SaaS ๋“ฑ) ๋˜๋Š” ๋‚ด๋ถ€ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์ค‘๊ฐ„์—์„œ ์ •์ฑ… ํ‰๊ฐ€ ์š”์ฒญ์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฏธ๋“ค์›จ์–ด ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ: API ํ˜ธ์ถœ ์ „์— ์ •์ฑ… ๊ฒ€์ฆ ๋ ˆ์ด์–ด๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์š”์ฒญ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋ก์‹œ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ: ๋ชจ๋“  ์—์ด์ „ํŠธ ํ˜ธ์ถœ์„ MCP(Model Context Protocol) Proxy ๋˜๋Š” API Gateway๋ฅผ ํ†ตํ•ด ์ค‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค.
  • Webhook Wrapper ๊ตฌ์กฐ: GitHub, Slack, Jira์™€ ๊ฐ™์€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ˜ธ์ถœ ์ „ํ›„์— ์ •์ฑ… ํ™•์ธ ๋‹จ๊ณ„๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

[๊ทธ๋ฆผ 7] Architecture with MCP PAM
[๊ทธ๋ฆผ 6] Architecture with MCP PAM

์ด๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ๊ธฐ์กด ์‹œ์Šคํ…œ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ์‚ฝ์ž… ๊ฐ€๋Šฅํ•˜๋ฉฐ, API ํ”„๋ก์‹œ ๊ธฐ๋ฐ˜ ์ •์ฑ… ์‚ฝ์ž… ๋ฐฉ์‹์€ ํŠนํžˆ SaaS ๊ธฐ๋ฐ˜ ํ˜ธ์ถœ์— ์œ ์šฉํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ ์กฐ์ง์€ Terraform, CloudFormation, Pulumi์™€ ๊ฐ™์€ IaC ๋„๊ตฌ๋ฅผ ํ†ตํ•ด AWS ๊ธฐ๋ฐ˜์˜ ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งค์šฐ ์ •๊ตํ•˜๊ฒŒ ์„ ์–ธ์ ์œผ๋กœ ์ œ์–ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ์‹คํ–‰ ์ฃผ์ฒด๊ฐ€ ์‚ฌ๋žŒ์ผ ๋•Œ์—๋„ ์Šน์ธ์„ ๋™๋ฐ˜ํ•œ ๋ฆด๋ฆฌ์ฆˆ ์ ˆ์ฐจ๋ฅผ ์š”๊ตฌํ•˜๋ฉฐ, ์ž๋™ํ™” ๋˜ํ•œ ํ†ต์ œ๋œ ํ˜•ํƒœ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ AI Agent๊ฐ€ ์ง์ ‘์ ์œผ๋กœ AWS ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ์‹์€ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


[๊ทธ๋ฆผ 8] IaC Security Flow
[๊ทธ๋ฆผ 8] IaC Security Flow

๊ทธ๋Ÿฌ๋‚˜ ์ตœ๊ทผ LLM ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ๊ฐ€ IaC ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ GitOps ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ž๋™ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ IaC ์•ž๋‹จ์˜ ์„ค๊ณ„ ํ๋ฆ„์— ๊ฐœ์ž…ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์‹ค์ œ๋กœ ์ผ๋ถ€ ๊ฐœ๋ฐœํ˜• ์—์ด์ „ํŠธ๋Š” ์ด๋Ÿฌํ•œ ํ๋ฆ„์„ ์‹คํ—˜์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ „ํ™˜์ด ๊ฐ€์‹œํ™”๋˜๋Š” ์ƒํ™ฉ์—์„œ, ๋ณด์•ˆ ์ •์ฑ…์ด ์—†๋Š” ์ƒํƒœ๋กœ ์—์ด์ „ํŠธ๊ฐ€ IaC์™€ ์—ฐ๊ฒฐ๋œ๋‹ค๋ฉด, ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ๊ณผ ๊ถŒํ•œ ๋ถ„๋ฐฐ์˜ ์ฑ…์ž„ ์ถ”์ ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ํ๋ฆ„ ๋‚ด ํ†ต์ œ ๊ณ„์ธต์ด ๋ฐ˜๋“œ์‹œ ์„ ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

5.2 ์ •์ฑ… ๊ตฌ์„ฑ ๋ฐ ๊ฐ์‚ฌ ์ „๋žต

์‹คํ–‰ ์š”์ฒญ์€ ๋‹จ์ˆœํ•œ ํ˜ธ์ถœ์ด ์•„๋‹ˆ๋ผ, ์ฃผ์ฒด, ๋ชฉ์ , ์‹œ์ , ์ปจํ…์ŠคํŠธ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•œ ๋ณตํ•ฉ ์กฐ๊ฑด์œผ๋กœ ํŒ๋‹จ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด์— ๋”ฐ๋ผ ์ •์ฑ… ๊ตฌ์„ฑ๋„ 3๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฃผ์ฒด ์‹๋ณ„ (Who): ์‹คํ–‰ ์š”์ฒญ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ๊ฐ€ (user_id, agent_id, group ๋“ฑ)
  • ๋ชฉ์  ๋ช…์‹œ (Why): ํ•ด๋‹น ์š”์ฒญ์˜ ๋ช…์‹œ์  ๋ชฉ์ ์€ ๋ฌด์—‡์ธ๊ฐ€ (์˜ˆ: aws.ec2.start)
  • ๋งฅ๋ฝ ํŒ๋‹จ (When/Where): ์š”์ฒญ ์‹œ๊ฐ, ์œ„์น˜, ์Šน์ธ ์ด๋ ฅ, ์„ธ์…˜ ์—ฐ๊ฒฐ ๋“ฑ

๋‹ค์Œ์€ AWS EC2 ์ธ์Šคํ„ด์Šค ์‹œ์ž‘ ์š”์ฒญ์— ๋Œ€ํ•ด ์ •์ฑ…์„ ์ ์šฉํ•œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

# ์‹คํ–‰ ์š”์ฒญ์„ ํ—ˆ์šฉํ•  ๊ธฐ๋ณธ ์กฐ๊ฑด์€ false๋กœ ์„ค์ •
default allow = false

# ์ •์ฑ… ํ—ˆ์šฉ ์กฐ๊ฑด ์ •์˜
allow {
    
    # ์‹คํ–‰ ๋ชฉ์ ์ด EC2 ์ธ์Šคํ„ด์Šค ์‹œ์ž‘์ผ ๊ฒฝ์šฐ
    input.purpose == "aws.ec2.start"
    
    # ์š”์ฒญ์ž์˜ ์—ญํ• ์ด 'ai_provisioner'์ผ ๊ฒฝ์šฐ (AI ๊ธฐ๋ฐ˜ ์ž์› ํ• ๋‹น ์ „์šฉ ์—ญํ• )
    input.user.role == "ai_provisioner"
    
    # ๋ฆฌ์†Œ์Šค ํƒ€์ž…์ด EC2 ์ธ์Šคํ„ด์Šค์ผ ๊ฒฝ์šฐ
    input.resource.type == "aws.ec2.instance"
    
    # ์‹คํ–‰ ์š”์ฒญ์ด ์˜ค์ „ 9์‹œ๋ถ€ํ„ฐ ์˜คํ›„ 6์‹œ ์‚ฌ์ด์ผ ๊ฒฝ์šฐ์—๋งŒ ํ—ˆ์šฉ
    input.context.time_hour >= 9
    input.context.time_hour < 18
}

์ด ์ •์ฑ…์€ ์‹คํ–‰ ๋ชฉ์ , ์‚ฌ์šฉ์ž ์—ญํ• , ์ž์› ์œ ํ˜•, ์‹คํ–‰ ์‹œ์ ์„ ํ•จ๊ป˜ ๊ณ ๋ คํ•˜์—ฌ, ๋ณด์•ˆ ์ •์ฑ…์˜ ์ •๋ฐ€์„ฑ๊ณผ ์‹คํ–‰ ํ†ต์ œ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค[15].

5.3 ์‹คํ–‰ ๊ธฐ๋ก ๋ฐ ๊ฐ์‚ฌ ์ฒด๊ณ„ ์„ค๊ณ„

AgentSecOps๋Š” ์ •์ฑ… ํŒ๋‹จ์„ ํ†ตํ•ด ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ฐจ๋‹จํ•  ๋ฟ ์•„๋‹ˆ๋ผ, ๊ทธ ์‹คํ–‰์ด ์–ด๋–ค ๋งฅ๋ฝ์—์„œ ๋ฐœ์ƒํ–ˆ๋Š”์ง€๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๊ธฐ๋กํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ AI ์—์ด์ „ํŠธ๊ฐ€ ๋‹ค์–‘ํ•œ ๊ถŒํ•œ์„ ์œ„์ž„๋ฐ›์•„ ์ž์œจ์ ์œผ๋กœ ํ–‰๋™ํ•˜๋Š” ๊ตฌ์กฐ์—์„œ๋Š”, ๋‹จ์ˆœ ํ—ˆ์šฉ/๊ฑฐ๋ถ€ ๊ฒฐ๊ณผ๋งŒ์œผ๋กœ๋Š” ์ฑ…์ž„ ์ถ”์ ์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹คํ–‰์— ์‚ฌ์šฉ๋œ ๋ชจ๋“  ๋งฅ๋ฝ ์ •๋ณด์™€ ์ •์ฑ… ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ์„ธ์…˜ ๋‹จ์œ„๋กœ ๊ฐ์‚ฌ ๋กœ๊ทธ์— ๊ธฐ๋กํ•˜๋Š” ์ฒด๊ณ„๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋ก์˜ ํ•ต์‹ฌ์€ ์ •์ฑ… ํ‰๊ฐ€ ์ง€์ (PDP)์ด ์•„๋‹ˆ๋ผ, ์ •์ฑ… ํ‰๊ฐ€ ์‹œ ์ฐธ์กฐ๋˜๋Š” ์ปจํ…์ŠคํŠธ ์ •๋ณด(PIP)์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. PIP๋Š” ์‹คํ–‰ ์š”์ฒญ์— ํฌํ•จ๋˜๊ฑฐ๋‚˜ ์™ธ๋ถ€์—์„œ ์ˆ˜์ง‘๋œ ์‚ฌ์šฉ์ž ์ •๋ณด, ์„ธ์…˜ ์ •๋ณด, ๋ฆฌ์†Œ์Šค ํŠน์„ฑ, ์‹คํ–‰ ๋ชฉ์ , ํŠธ๋ฆฌ๊ฑฐ ์ •๋ณด, ์‹œ๊ฐ„ยท์œ„์น˜ ๋“ฑ์˜ ๋งฅ๋ฝ ๋ฐ์ดํ„ฐ๋ฅผ PDP์— ์ œ๊ณตํ•˜๋ฉฐ, ์ด ๋ฐ์ดํ„ฐ๋Š” ์ •์ฑ… ํ‰๊ฐ€์™€ ํ•จ๊ป˜ ์ตœ์ข…์ ์œผ๋กœ ๊ฐ์‚ฌ ๋กœ๊ทธ์— ํ•จ๊ป˜ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

PIP๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์˜ˆ์‹œ (JSON ํ˜•์‹)

{
    "user": {
        "id": "user_1024",               // ์‹คํ–‰ ์š”์ฒญ์ž ๊ณ ์œ  ์‹๋ณ„์ž
        "role": "ai_assistant"           // ์—ญํ•  ์ •๋ณด: AI ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ
    },
    "session": {
        "id": "sess-abc-789",            // ์„ธ์…˜ ID (์‹คํ–‰ ๋‹จ์œ„ ์‹๋ณ„)
        "start_time": "2024-06-01T14:12:30Z", // ์„ธ์…˜ ์‹œ์ž‘ ์‹œ๊ฐ
        "ip": "192.168.10.14"            // ํ˜ธ์ถœ ๋ฐœ์ƒ IP ์ฃผ์†Œ
    },
    "resource": {
        "id": "doc-456",                 // ์ ‘๊ทผ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ž
        "type": "gdrive.document",       // ๋ฆฌ์†Œ์Šค ์œ ํ˜• (Google Drive ๋ฌธ์„œ)
        "tag": "confidential"            // ๋ฏผ๊ฐ๋„ ํƒœ๊ทธ
    },
    "purpose": "summary",              // ์‹คํ–‰ ๋ชฉ์  (์š”์•ฝ ์š”์ฒญ)
    "trigger": {
        "source": "google_workspace",    // ์‹คํ–‰ ํŠธ๋ฆฌ๊ฑฐ์˜ ์ถœ์ฒ˜
        "method": "voice_command"        // ์‹คํ–‰ ๋ฐฉ์‹ (์˜ˆ: ์Œ์„ฑ ํ˜ธ์ถœ)
    },
    "context": {
        "location": "KR",                // ์‹คํ–‰ ์œ„์น˜
        "weekday": "Monday",             // ์‹คํ–‰ ์š”์ผ
        "time_hour": 14                  // ์‹คํ–‰ ์‹œ๊ฐ„๋Œ€ (24์‹œ๊ฐ„ ๊ธฐ์ค€)
    }
}

์ด ์ •๋ณด๋Š” ์ •์ฑ… ํ‰๊ฐ€ ์กฐ๊ฑด์„ ๊ตฌ์„ฑํ•  ๋ฟ ์•„๋‹ˆ๋ผ, ์‹คํ–‰ ์„ธ์…˜ ๋‹จ์œ„์˜ ๊ฐ์‚ฌ ๋กœ๊ทธ์—๋„ ํ•จ๊ป˜ ์ €์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


Rego ๊ธฐ๋ฐ˜ ์ •์ฑ… ๋‚ด PIP ํ™œ์šฉ ์˜ˆ์‹œ ๋ฐ ์„ค๋ช…

default allow = false

โ†’ ๋ชจ๋“  ์š”์ฒญ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ๋ช…์‹œ๋œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

allow {
    input.user.role == "ai_assistant"
}

โ†’ ์‹คํ–‰ ์š”์ฒญ์ž์˜ ์—ญํ• ์ด ai_assistant์ผ ๊ฒฝ์šฐ์—๋งŒ ๊ฒ€ํ† ๋ฅผ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.

allow {
    input.resource.type == "gdrive.document"
}

โ†’ ์š”์ฒญ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค๋Š” Google Drive ๋ฌธ์„œ ์œ ํ˜•์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

allow {
    input.resource.tag != "confidential"
}

โ†’ ๋ฏผ๊ฐ ํƒœ๊ทธ(confidential)๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” ๋ฌธ์„œ๋Š” ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

allow {
    input.purpose == "summary"
}

โ†’ ์‹คํ–‰ ๋ชฉ์ ์ด ๋ฌธ์„œ ์š”์•ฝ(summary)์ธ ๊ฒฝ์šฐ์—๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

allow {
    input.session.id
    input.trigger.source == "google_workspace"
}

โ†’ ์„ธ์…˜ ID๊ฐ€ ์กด์žฌํ•˜๊ณ , ์‹คํ–‰ ํŠธ๋ฆฌ๊ฑฐ ์ถœ์ฒ˜๊ฐ€ Google Workspace์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

allow {
    input.context.time_hour >= 9
    input.context.time_hour < 18
}

โ†’ ์‹คํ–‰ ์‹œ๊ฐ„์€ ์˜ค์ „ 9์‹œ๋ถ€ํ„ฐ ์˜คํ›„ 6์‹œ ์‚ฌ์ด(์—…๋ฌด ์‹œ๊ฐ„๋Œ€)์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์„ธ์…˜ ๊ธฐ๋ฐ˜ ๊ฐ์‚ฌ ๋กœ๊ทธ ์Šคํ‚ค๋งˆ ์˜ˆ์‹œ (JSON ํ…œํ”Œ๋ฆฟ + ์„ค๋ช…)

{
    "session_id": "sess-abc-789",           // ์‹คํ–‰ ๋‹จ์œ„ ์„ธ์…˜ ID
    "timestamp": "2024-06-01T14:12:32Z",    // ์‹คํ–‰์ด ์ด๋ฃจ์–ด์ง„ ์ •ํ™•ํ•œ ์‹œ์ 
    "user": {
        "id": "user_1024",                    // ์š”์ฒญ์ž ID
        "role": "ai_assistant"               // ์—ญํ•  ์ •๋ณด
    },
    "resource": {
        "id": "doc-456",                      // ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค ID
        "type": "gdrive.document"             // ๋ฆฌ์†Œ์Šค ์œ ํ˜•
    },
    "purpose": "summary",                   // ์‹คํ–‰ ๋ชฉ์ 
    "trigger": {
        "source": "google_workspace",         // ํŠธ๋ฆฌ๊ฑฐ๋œ ์‹œ์Šคํ…œ ์ถœ์ฒ˜
        "method": "voice_command"             // ์‹คํ–‰ ๋ฐฉ์‹
    },
    "policy_evaluation": {
        "policy_id": "gdrive-doc-summary-policy-v2", // ์ •์ฑ… ์‹๋ณ„์ž
        "result": "deny",                    // ํ‰๊ฐ€ ๊ฒฐ๊ณผ (ํ—ˆ์šฉ/๊ฑฐ๋ถ€)
        "reason": "resource.tag == confidential" // ๊ฑฐ๋ถ€ ์‚ฌ์œ 
    },
    "execution": {
        "status": "blocked",                 // ์‹คํ–‰ ๊ฒฐ๊ณผ
        "executor": "MCP(Model Context Protocol)-agent-pam-01"       // ์‹คํ–‰์„ ํ†ต์ œํ•œ MCP(Model Context Protocol) PAM ์ธ์Šคํ„ด์Šค
    }
}

์ด์™€ ๊ฐ™์€ ๋กœ๊ทธ ๊ตฌ์„ฑ์€ ์ •์ฑ… ํ‰๊ฐ€ ์กฐ๊ฑด๊ณผ ์‹คํ–‰ ๊ฒฐ๊ณผ์˜ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉฐ, ์ •์ฑ… ์šฐํšŒ ์‹œ๋„, ์Šน์ธ ํ๋ฆ„ ๋ˆ„๋ฝ, ์‹คํ–‰ ๊ณผ์ž‰ ์š”์ฒญ์— ๋Œ€ํ•œ ์‚ฌํ›„ ๋ถ„์„์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. AgentSecOps๋Š” ์‹คํ–‰ ํ๋ฆ„์˜ ๋ณด์•ˆ์„ฑ๊ณผ ๊ฐ์‚ฌ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ •์ฑ… ํ‰๊ฐ€ ๋‹จ๊ณ„์™€ ์‹คํ–‰ ๋กœ๊น… ๋‹จ๊ณ„๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋ฉฐ, PIP๋Š” ๊ทธ ์—ฐ๊ฒฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ •๋ณด ์ œ๊ณต ๊ด€๋ฌธ(Policy Context Broker)์œผ๋กœ ๊ธฐ๋Šฅํ•ฉ๋‹ˆ๋‹ค.

5.4 ํ˜„์‹ค์  ์šด์˜ ํ•œ๊ณ„์™€ ์ƒ์šฉํ™” ์ „๋žต

AgentSecOps ์•„ํ‚คํ…์ฒ˜๋Š” ๊ธฐ์ˆ ์ ์œผ๋กœ ์™„์„ฑ๋„ ๋†’์€ ์‹คํ–‰ ํ†ต์ œ ๋ชจ๋ธ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ์กฐ์ง์€ ์ด ๊ตฌ์กฐ๋ฅผ ์ž์ฒด์ ์œผ๋กœ ์„ค๊ณ„ํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ๋ฐ ํ˜„์‹ค์ ์ธ ์ œ์•ฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด AgentSecOps๋Š” ์„ค๊ณ„ ์›์น™๋งŒ์œผ๋กœ๋Š” ์‹คํšจ์ ์ธ ํ†ต์ œ ์ฒด๊ณ„๊ฐ€ ๋˜๊ธฐ ์–ด๋ ต๊ณ , ์ •์ฑ… ์‹คํ–‰ ๊ณ„์ธต์„ ์ƒ์šฉํ™”ํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

๋จผ์ €, ์ •์ฑ… ๊ฒฐ์ • ์ง€์ (PDP)์€ ์‹คํ–‰ ์ฃผ์ฒด์™€ ๋ฆฌ์†Œ์Šค, ๋ชฉ์ , ์‹œ์ , ์Šน์ธ ์—ฌ๋ถ€ ๋“ฑ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ‰๊ฐ€ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ๋ณต์žกํ•œ ์ •์ฑ… ํ…œํ”Œ๋ฆฟ ์„ค๊ณ„, ๋ฒ„์ „ ๊ด€๋ฆฌ, ์ •์ฑ… ์ถฉ๋Œ ๊ฒ€์ฆ, ๊ณ ๊ฐ€์šฉ์„ฑ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.

์ •์ฑ… ์ง‘ํ–‰ ์ง€์ (PEP)์€ API ํ˜ธ์ถœ ํ๋ฆ„์˜ ์•ž๋‹จ ๋˜๋Š” ์ค‘๊ฐ„์—์„œ ๋™์ž‘ํ•ด์•ผ ํ•˜๋ฉฐ, ์ˆ˜์‹ญ ๊ฐœ์˜ SaaS ํˆด ๋˜๋Š” ํด๋ผ์šฐ๋“œ API์™€์˜ ํ†ตํ•ฉ์ด ์ „์ œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐ ์‹œ์Šคํ…œ๋ณ„๋กœ ์ง์ ‘ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์€ ์ธ์ฆ ์ฒ˜๋ฆฌ, ์ธํ„ฐํŽ˜์ด์Šค ์ถฉ๋Œ, ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ๋“ฑ์˜ ๋ฌธ์ œ๋ฅผ ์ˆ˜๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค.

์ •์ฑ… ์ •๋ณด ์ œ๊ณต ์ง€์ (PIP)์€ ์‚ฌ์šฉ์ž ์—ญํ• , ์ธ์ฆ ์ƒํƒœ, ์„ธ์…˜ ์ •๋ณด, ์š”์ฒญ ํŠธ๋ฆฌ๊ฑฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๋น„์ •ํ˜• ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ยท์ •๊ทœํ™”ํ•˜์—ฌ ์ •์ฑ… ํ‰๊ฐ€์— ์ œ๊ณตํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ๋กœ๊ทธ ํ†ตํ•ฉ ์‹œ์Šคํ…œ ๋˜๋Š” ์ „์šฉ ๋ธŒ๋กœ์ปค ์—†์ด๋Š” ๊ตฌํ˜„์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ œ์•ฝ ์†์—์„œ AgentSecOps๋Š” ์˜คํžˆ๋ ค ์ „์šฉ ํ†ต์ œ ํ”Œ๋žซํผ์„ ํ†ตํ•œ ์ƒ์šฉํ™” ๊ตฌ์กฐ๋กœ ์‹คํ˜„ ๊ฐ€๋Šฅ์„ฑ์ด ๋”์šฑ ๋†’์•„์ง‘๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ QueryPie MCP(Model Context Protocol) Agent PAM์€ ์‹คํ–‰ ์‹œ์  ์ •์ฑ… ํ‰๊ฐ€(PDP), API ํ”„๋ก์‹œ ์ง‘ํ–‰(PEP), ์ปจํ…์ŠคํŠธ ์ˆ˜์ง‘(PIP) ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•œ ๊ตฌ์กฐ๋กœ, ํด๋ผ์šฐ๋“œ ๋ฐ SaaS ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ ํ˜ธ์ถœ ํ๋ฆ„์— ๋Œ€์‘ ๊ฐ€๋Šฅํ•œ ํ†ต์ œ ๊ณ„์ธต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [16].

MCP(Model Context Protocol) ๊ธฐ๋ฐ˜ PAM ๊ตฌ์กฐ๋Š” ๊ธฐ์กด IAM์ด๋‚˜ DevSecOps์˜ ์ธ์ฆ ๊ธฐ๋ฐ˜ ํ†ต์ œ๋ฅผ ๋ณด์™„ํ•˜๋ฉฐ, ์‹คํ–‰ ํ–‰์œ„ ์ž์ฒด์— ๋Œ€ํ•œ ์ •์ฑ… ์‚ฝ์ž…์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹คํ–‰ ๋ชฉ์  ํƒœ๊น…, ๊ด€๋ฆฌ์ž ์Šน์ธ ํ๋ฆ„ ์‚ฝ์ž…, ์ •์ฑ… ์ถฉ๋Œ ํƒ์ง€, ๊ฐ์‚ฌ ๋กœ๊ทธ ๋‚ด๋ณด๋‚ด๊ธฐ ๋“ฑ ์‹ค๋ฌด ์ ์šฉ์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋‹จ์ผ ํ”Œ๋žซํผ์—์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ AgentSecOps๋Š” ์ด๋ก ์  ๋ชจ๋ธ๋กœ์„œ์˜ ์™„์„ฑ๋„๋ฟ ์•„๋‹ˆ๋ผ, MCP(Model Context Protocol) PAM๊ณผ ๊ฐ™์€ ์ƒ์šฉ ํ”Œ๋žซํผ์˜ ์ง€์› ์—†์ด๋Š” ๊ธฐ์—… ๋‚ด ์‹ค์ œ ๋„์ž…๊ณผ ์šด์˜์ด ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊นŒ์šด ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณด์•ˆ ์„ค๊ณ„์ž๋Š” ๊ธฐ์ˆ  ์›์น™๊ณผ ํ•จ๊ป˜ ์ƒ์šฉ ์‹คํ–‰ ํ†ต์ œ ๊ตฌ์กฐ์™€์˜ ํ†ตํ•ฉ ์ „๋žต์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค [17].

6. ๊ฒฐ๋ก  ๋ฐ ๊ถŒ๊ณ ์•ˆ

๋ณธ ๋ฐฑ์„œ๋Š” AI ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ ์‹คํ–‰ ํ๋ฆ„์ด ๊ธฐ์กด ๋ณด์•ˆ ์ฒด๊ณ„์— ๋ฏธ์น˜๋Š” ๊ตฌ์กฐ์  ์ถฉ๊ฒฉ์„ ๋ถ„์„ํ•˜๊ณ , ์ด๋ฅผ ํ†ต์ œํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ–‰ ์ค‘์‹ฌ ๋ณด์•ˆ ๋ชจ๋ธ๋กœ์„œ AgentSecOps ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ œ์•ˆํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํŠนํžˆ AgentOps์™€ DevSecOps์˜ ํ•œ๊ณ„, ์‹คํ–‰ ์ฃผ์ฒด์˜ ๋น„์ธ๊ฐ„ํ™”, ์—์ด์ „ํŠธ ์ค‘์‹ฌ ํ๋ฆ„์—์„œ์˜ ์ •์ฑ… ํ‰๊ฐ€ ํ•„์š”์„ฑ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์กฐ๋ช…ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

AgentSecOps๋Š” ๋‹จ์ˆœํ•œ ์ž๋™ํ™” ๋ณดํ˜ธ ์žฅ์น˜๊ฐ€ ์•„๋‹ˆ๋ผ, ์‹คํ–‰ ํ๋ฆ„์˜ ๋ชฉ์ , ์‹œ์ , ์ž์›, ๊ถŒํ•œ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ‰๊ฐ€ํ•˜๊ณ  ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ–‰ ์ค‘์‹ฌ ๋ณด์•ˆ ํ†ต์ œ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ์กด์˜ ์ฝ”๋“œ ์ค‘์‹ฌ, ๋ฆด๋ฆฌ์ฆˆ ์ „ ์ค‘์‹ฌ์˜ DevSecOps ํ”„๋ ˆ์ž„์›Œํฌ๋กœ๋Š” ๋Œ€์‘ํ•  ์ˆ˜ ์—†๋Š” ์˜์—ญ์ด๋ฉฐ, ์ •์ฑ… ๊ธฐ๋ฐ˜ ์‹คํ–‰ ์ฐจ๋‹จ, ์Šน์ธ ํ๋ฆ„ ์‚ฝ์ž…, ๊ฐ์‚ฌ ์ถ”์ ์ด๋ผ๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ํ†ต์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค [18].

ํŠนํžˆ AI ์—์ด์ „ํŠธ๊ฐ€ ๋‹จ๋… ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ™˜๊ฒฝ์ด ์•„๋‹ˆ๋ผ, Agent-to-Agent ์‹คํ–‰ ํ๋ฆ„์ด ์—ฐ์†์ ์œผ๋กœ ์ด์–ด์ง€๋Š” ๊ตฌ์กฐ์—์„œ๋Š” ์ƒํ™ฉ์€ ๋”์šฑ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ๊ฐ„ ํ˜ธ์ถœ๋งˆ๋‹ค ๋ณ„๋„์˜ ์ •์ฑ… ํ‰๊ฐ€(PDP), ์‹คํ–‰ ํ†ต์ œ(PEP), ์ •๋ณด ์ฐธ์กฐ(PIP)๊ฐ€ ๊ฐœ์ž…๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์‹คํ–‰ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋Š” ์ค‘์•™ ์‹คํ–‰ ๋ถ„์„ ์‹œ์Šคํ…œ์—์„œ ํ†ตํ•ฉ์ ์œผ๋กœ ์ง‘๊ณ„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ด ๊ตฌ์กฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.


[๊ทธ๋ฆผ 9] Distributed Agent Execution and Centralized Policy Analysis
[๊ทธ๋ฆผ 9] Distributed Agent Execution and Centralized Policy Analysis

์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ๊ฐ AgentOps ๋งˆ๋‹ค ๊ฐœ๋ณ„ ์ ์šฉํ•˜๋Š” ๊ฑด ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์šด์˜์ ์œผ๋กœ๋Š” ๋งค์šฐ ๋ณต์žกํ•˜๋ฉฐ ๊ตฌ์ถ• ๋ฐ ์œ ์ง€ ๋น„์šฉ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์—… ๋‚ด๋ถ€์—์„œ ์ˆ˜์‹ญ ๊ฐœ์˜ ์—์ด์ „ํŠธ ํ๋ฆ„์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ๊ฐ ํ๋ฆ„์— ๋Œ€ํ•ด PDP ์ •์ฑ…์„ ์„ค๊ณ„ํ•˜๊ณ , ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ฉ ๋ถ„์„ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ์šด์˜ํ•˜๊ธฐ๋ž€ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ AgentSecOps๋Š” ์‹ค๋ฌด์ ์œผ๋กœ๋Š” MCP(Model Context Protocol) ๊ธฐ๋ฐ˜ ์‹คํ–‰ ๋ณด์•ˆ ์†”๋ฃจ์…˜(MCP(Model Context Protocol) Agent PAM)์˜ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ๋‹จ์ˆœ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ์šด์˜ ์ „๋žต์  ํ•„์ˆ˜ ์ธํ”„๋ผ์ž…๋‹ˆ๋‹ค. QueryPie MCP(Model Context Protocol) PAM์€ ์‹คํ–‰ ํ๋ฆ„์— ์ •์ฑ… ํ‰๊ฐ€๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ , ๊ฐœ๋ณ„ ์‹คํ–‰์„ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ์Šน์ธ ํ๋ฆ„์— ์—ฐ๋™์‹œํ‚ค๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ฉ์ ์œผ๋กœ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค[19].

๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ๋Š” MCP(Model Context Protocol) PAM ๊ธฐ๋ฐ˜์˜ AgentSecOps ๋„์ž…์ด ํŠนํžˆ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค:



AgentSecOps๋Š” ์‹คํ–‰ ํ๋ฆ„ ๊ทธ ์ž์ฒด์— ๋Œ€ํ•œ ์ •์ฑ… ํ†ต์ œ ๊ตฌ์กฐ๋ฅผ ์ œ์‹œํ•˜๋ฉฐ, ์ด๋Š” ํ–ฅํ›„ AI ๊ธฐ๋ฐ˜ ์šด์˜ ์ฒด๊ณ„์—์„œ์˜ ๋ณด์•ˆ ํ†ต์ œ ์ „ํ™˜์ ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์กฐ์ง์€ ์ด ๋ชจ๋ธ์„ ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ  ์ถ”์„ธ๋กœ ๋ฐ›์•„๋“ค์ผ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ณด์•ˆ ์šด์˜ ๋ชจ๋ธ์˜ ๊ตฌ์กฐ์  ํ˜์‹ ์œผ๋กœ ์ธ์‹ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•œ ์‹คํ–‰ ์ •์ฑ… ์„ค๊ณ„ ๋ฌธํ™”์™€ ํ†ตํ•ฉ ํ”Œ๋žซํผ ๋„์ž… ์ „๋žต์„ ๋™์‹œ์— ์ˆ˜๋ฆฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.



๐Ÿš€ AI Hub๋กœ ์•ˆ์ „ํ•œ MCP์™€ AI Agent ์šด์˜, ์ง€๊ธˆ ์ง์ ‘ ์ฒดํ—˜ํ•ด๋ณด์„ธ์š”.

References

[1] I. Belcic, โ€œWhat is AutoGPT?,โ€ IBM, 2023.

[2] GitHub Docs, โ€œWebhooks,โ€ GitHub Developer Guide, 2023.

[3] I. Belcic, โ€œWhat is AutoGPT?,โ€ IBM, 2023.

[4] GitHub Docs, โ€œWebhooks,โ€ GitHub Developer Guide, 2023.

[5] Anthropic, โ€œResponsible AI Agents and Oversight,โ€ Anthropic Research, 2024.

[6] Google Cloud, โ€œIntroducing the DevSecOps Toolkit,โ€ Google Cloud Blog, 2023.

[7] HashiCorp Docs, โ€œGovern: Enforce policy controls before provisioning,โ€ Terraform by HashiCorp, 2024.

[8] Amazon Web Services, โ€œCedar โ€“ An Open Source Language for Access Control,โ€ AWS News Blog, May 2023.

[9] T. Priebe et al., โ€œSupporting Attribute-based Access Control in Authorization and Authentication Infrastructures with SAML,โ€ in Proc. IFIP TC11 WG11.5, 2004.

[10] T. Moses, โ€œXACML 3.0 Core Specification,โ€ OASIS Standard, 2017.

[11] Open Policy Agent, โ€œRego Language Guide,โ€ OPA Official Documentation, 2023.

[12] S. Rizvi and A. Ghafoor, โ€œA Purpose-Based Access Control Model for Privacy Protection,โ€ Computer Networks, vol. 43, no. 1, pp. 593โ€“611, 2005.

[13] Kyverno Project, โ€œPolicy Engine for Kubernetes,โ€ Kyverno Documentation, 2023.

[14] OWASP, โ€œTop 10 for LLM Applications,โ€ OWASP Foundation, 2023.

[15] GitLab Docs, โ€œCI/CD Security Patterns,โ€ GitLab Documentation, 2023.

[16] Microsoft, โ€œAI Trust and Risk Framework,โ€ Microsoft Responsible AI Practices, 2024.

[17] AWS, โ€œUsing IAM Policies to Control Access,โ€ AWS Identity and Access Management User Guide, 2023.

[18] QueryPie, โ€œUncovering MCP Security,โ€ QueryPie White Paper, 2025.

[19] QueryPie, โ€œRedefining PAM for the MCP Era,โ€ QueryPie White Paper, 2025.

[20] D. Kozen and J. Millen, โ€œPolicy Composition in Access Control,โ€ IEEE Security & Privacy, vol. 14, no. 3, pp. 36โ€“43, 2016.

[21] QueryPie, โ€œNext-Step MCP PAM Architecture,โ€ QueryPie Resource Center, 2025.

์ฝ”๋“œ๋Š” ๋ฉˆ์ท„๊ณ , ์—์ด์ „ํŠธ๊ฐ€ ์›€์ง์ธ๋‹ค โ€“ AgentSecOps์˜ ์‹œ๋Œ€๋กœ | QueryPie