Files
2nd/10_Wiki/Topics/코드_속성_그래프_CPG.md
T
2026-05-02 23:55:09 +09:00

62 lines
6.2 KiB
Markdown

---
category: Unified
tags: [auto-wikified, technical-documentation]
title: 코드 속성 그래프 (CPG)
description: "코드 속성 그래프(Code Property Graph, CPG)는 소프트웨어 코드베이스의 취약점을 분석하고 악용 가능성(exploitability)을 파악하는 데 사용되는 분석 모델입니다 [1]."
last_updated: 2026-05-02
---
# 코드 속성 그래프 (CPG)
## 📌 Brief Summary
코드 속성 그래프(Code Property Graph, CPG)는 소프트웨어 코드베이스의 취약점을 분석하고 악용 가능성(exploitability)을 파악하는 데 사용되는 분석 모델입니다 [1]. 정적 보안 스캔 시 발생하는 오탐(false positives)을 줄이고 실제로 악용될 가능성이 가장 높은 위험을 강조하는 데 중점을 둡니다 [1]. 다만 제공된 소스에는 CPG의 구체적인 수학적/구조적 원리에 대한 정보가 부족하여 상세한 기술적 정의를 제공하기는 어렵습니다.
## 📖 Core Content
소스에 관련 정보가 부족합니다. 제공된 소스에서는 Qwiet AI(구 ShiftLeft)라는 도구가 이 특허받은 코드 속성 그래프(CPG)를 적용하여 코드베이스를 분석한다는 제한적인 내용만 확인됩니다 [1].
* **악용 가능성 중심의 분석 (Focus on Exploitability):** CPG는 단순히 코드의 문법적 오류를 찾는 것을 넘어, 해당 코드가 실제 환경에서 어떻게 남용되거나 공격받을 수 있는지에 대한 맥락(exploitability context)을 파악하는 분석 기법으로 사용됩니다 [1, 2].
* **오탐 감소 및 핵심 위험 강조:** 이 모델을 적용하면 보안 스캔 결과에서 거짓 양성(false positives)의 비율을 줄일 수 있으며, 코드 내에서 가장 위협이 되는 위험 요소들을 선별하여 강조할 수 있습니다 [1].
## ⚖️ Trade-offs & Caveats
* **가파른 학습 곡선 (Steeper learning curve):** 팀의 특성이나 특정 요구사항에 맞춰 CPG 모델을 커스터마이징(Customization)하여 활용하고자 할 때, 기술적 난이도로 인해 학습 곡선이 높다는 제약이 있습니다 [1, 2].
* 소스에 관련 정보가 부족하여, 시스템 성능 저하나 구체적 구현 한계 등 추가적인 반대 급부는 확인할 수 없습니다.
## 🔗 Knowledge Connections
### Related Concepts
(소스에 CPG와 관련된 정보가 제한적이나, 주어진 문맥을 바탕으로 코드베이스 이해와 연관된 핵심 개념을 연결합니다.)
#### [구현/활용 도구]
- [[Qwiet AI]]
- 연결 이유: CPG 기술을 특허받아 코드 분석 시스템에 직접 적용하고 있는 AI 기반 보안 스캐닝 플랫폼입니다 [1, 2].
- 이 개념을 통해 더 깊게 이해할 수 있는 부분: 코드베이스를 읽고 파악할 때, CPG를 통해 어떻게 악용 가능한 취약점을 찾아내고 자동 수정(AutoFix)으로 연결하는지 파악할 수 있습니다 [1, 2].
#### [아키텍처/기반 기술]
- [[악용 가능성 (Exploitability)]]
- 연결 이유: CPG 모델이 지향하는 가장 핵심적인 분석 목표입니다 [1, 2].
- 이 개념을 통해 더 깊게 이해할 수 있는 부분: 방대한 코드베이스 내에서 모든 결함을 수정하는 대신, 실질적으로 공격에 노출될 수 있는 코드의 우선순위를 정하는 방법을 이해할 수 있습니다 [1].
### Deeper Research Questions
(소스에 관련 정보가 부족하므로, 외부 지식 탐색을 위해 다음과 같은 심층 질문을 제기할 수 있습니다.)
- CPG는 추상 구문 트리(AST), 제어 흐름 그래프(CFG), 데이터 종속성 그래프 등 기존의 코드 구조 모델들을 어떻게 단일 구조로 융합하고 있는가?
- 팀이 CPG 모델을 커스터마이징할 때 겪게 되는 구체적인 기술적 장벽(가파른 학습 곡선의 원인)은 무엇이며 이를 완화할 방법은 무엇인가? [1]
- 기존의 전통적인 정적 애플리케이션 보안 테스트(SAST) 방식과 비교했을 때, CPG 기반 분석이 오탐율을 획기적으로 낮출 수 있는 논리적 메커니즘은 무엇인가? [1]
- 수백만 줄에 달하는 대규모 모노레포 환경에서 CPG를 구성하고 실시간으로 스캔할 때 발생하는 리소스 병목과 최적화 방안은 무엇인가?
- Qwiet AI 외에 CPG 기술을 오픈소스로 구현하거나 학술적으로 활용한 다른 코드베이스 분석 사례는 무엇이 있는가?
### Practical Application Contexts
- **Implementation:** 소스에 관련 정보가 부족합니다. (단, Qwiet AI와 같은 솔루션 내에서 분석 및 익스플로잇 가능성 컨텍스트 엔진으로 구현됨을 알 수 있습니다 [1, 2].)
- **System Design:** 소스에 관련 정보가 부족합니다.
- **Operation / Maintenance:** 코드베이스를 지속적으로 점검해야 하는 데브옵스 및 유지보수 환경에서 오탐을 줄이고, 공격자가 실제로 남용할 수 있는 위험만 걸러내어 보안 패치 업무의 효율성을 높일 수 있습니다 [1].
- **Learning Path:** 개발 및 보안 팀이 CPG의 장점을 100% 활용해 자체 보안 정책을 적용(커스터마이징)하려면, 초기 학습 비용을 감수하고 이를 숙달하기 위한 교육 시간이 배정되어야 합니다 [1, 2].
- **My Project Relevance:** 프로젝트의 코드베이스에서 보안 취약점을 리뷰하거나 자동화 도구를 도입할 때, 단순 문자열 및 구문 분석을 넘어 '악용 가능성'을 그래프로 분석해 내는 CPG 기반 솔루션의 도입 가치를 평가 기준으로 삼을 수 있습니다 [1].
### Adjacent Topics
- [[정적 애플리케이션 보안 테스트 (SAST)]]
- 확장 방향: 소스 코드를 실행하지 않고 내부 취약점을 읽어내는 기술의 포괄적 개념으로, CPG 분석이 SAST의 한계를 어떻게 극복하고 진화했는지 이해의 폭을 넓힐 수 있습니다 [3-5].
- [[코드 베이스 시각화 및 구조 분석 (Codebase Visualization)]]
- 확장 방향: Greptile 등의 도구가 함수와 파일 간의 관계 그래프(Relationship graphs)를 그려 코드베이스의 전반적 버그를 파악하는 기법과 CPG를 비교해 볼 수 있습니다 [6].
---
*Last updated: 2026-05-02*