sast

5 개의 포스트

바로 병합 가능한 AI 코드 수정으로 조치 자동화하기 (새 탭에서 열림)

GitLab 18.11은 AI 기반의 '에이전틱 SAST 취약점 해결(Agentic SAST Vulnerability Resolution)' 기능을 정식 출시하며 보안 병목 현상을 획기적으로 개선했습니다. 이 시스템은 취약점을 자동으로 분석하고 테스트를 거친 수정 코드를 제안함으로써, 개발자가 보안 이슈 해결을 위해 컨텍스트를 전환하거나 수동으로 연구하는 시간을 대폭 줄여줍니다. 결과적으로 보안 취약점이 운영 환경에 도달하기 전에 선제적으로 대응할 수 있는 자율적인 보안 파이프라인 구축이 가능해졌습니다. ### 에이전트 기반 자동 수정 및 개발 흐름 최적화 * **자율적 취약점 해결:** GitLab Duo 에이전트가 취약점의 맥락을 분석하여 근본 원인을 해결하는 코드를 자동 생성하고, 자동화된 테스트를 통해 검증까지 마친 '병합 준비 완료(ready-to-merge)' 상태의 MR을 제공합니다. * **신뢰도 점수 제공:** 개발자는 에이전트가 제안한 수정 사항과 함께 제공되는 신뢰도 점수를 확인하여 신속하고 정확한 의사결정을 내릴 수 있습니다. * **증분 스캐닝(Incremental Scanning):** 전체 스캔이 완료될 때까지 기다릴 필요 없이 변경된 코드 부분에 대한 보안 결과를 즉시 확인할 수 있어 파이프라인의 속도가 향상되었습니다. ### 비즈니스 리스크 중심의 스마트한 우선순위 지정 * **CVSS 4.0 적용:** 최신 산업 표준인 CVSS 4.0을 도입하여 실제 환경에서의 악용 가능성을 더욱 정교하게 반영한 취약점 점수를 제공합니다. * **정책 기반 심각도 재정의:** AppSec 팀은 CVE, CWE, 특정 파일 경로 등의 신호를 바탕으로 취약점 심각도 점수를 자동으로 조정하는 정책을 설정하여, 단순 스캐너 출력값이 아닌 실제 비즈니스 위험도에 따라 업무 우선순위를 정할 수 있습니다. * **실질적 위험 차단:** 알려진 악용 취약점(KEV) 상태나 악용 예측 점수 시스템(EPSS) 임계값을 기준으로 병합(Merge)을 차단하거나 경고하는 승인 정책을 구성할 수 있습니다. * **보안 대시보드 강화:** 새로운 'Top CWEs' 차트를 통해 프로젝트 전반에서 가장 빈번하게 발생하는 취약점 클래스를 파악하고 시스템적인 리스크를 관리할 수 있습니다. ### 보안 거버넌스 강화 및 운영 부담 완화 * **보안 관리자(Security Manager) 역할 도입:** 코드 수정이나 배포 권한 없이도 보안 정책을 설정하고 취약점 조치 워크플로우를 관리할 수 있는 전용 역할이 추가되어, 권한 분리 및 보안 전문성 강화가 가능해졌습니다. * **SAST 구성 프로필:** 개별 프로젝트마다 YAML 파일을 수정할 필요 없이, 단일 위치에서 그룹 내 모든 프로젝트에 일관된 보안 스캔 설정을 한 번에 적용할 수 있습니다. * **운영 효율성 제고:** 개발자에게 일일이 스캐너 설정을 요청하거나 각 프로젝트의 커버리지 격차를 수동으로 확인할 필요가 없어 보안 팀의 운영 오버헤드가 크게 줄어듭니다. --- 보안 팀이 개발 속도를 따라잡지 못해 고민이라면, GitLab 18.11의 에이전틱 보안 기능을 도입해 볼 것을 권장합니다. 특히 **GitLab Ultimate** 사용자라면 'Agentic SAST Vulnerability Resolution'을 통해 보안 부채를 자동으로 탕감하고, 개발자는 코드 작성에만 집중할 수 있는 환경을 구축할 수 있습니다.

GitLab 18.11 릴리스 노트 | GitLab 문서 (새 탭에서 열림)

GitLab 18.11 버전부터 GitLab Duo 에이전트 플랫폼을 통한 '에이전틱 SAST 취약점 해결(Agentic SAST Vulnerability Resolution)' 기능이 정식 출시되었습니다. 이 기능은 SAST 스캔 과정에서 발견된 보안 취약점을 AI 에이전트가 자율적으로 분석하고, 코드 수정안이 포함된 머지 리퀘스트(MR)를 자동으로 생성하여 개발자의 보안 조치 속도를 획기적으로 높여줍니다. 특히 치명적(Critical) 및 높음(High) 심각도의 취약점에 대해 즉각적인 해결책을 제시함으로써 보안 부채를 효율적으로 관리할 수 있게 돕습니다. ### AI 기반의 자율적 취약점 분석 및 수정 * **문맥 중심 분석:** 단순한 패턴 매칭을 넘어, AI 에이전트가 취약점 주변의 코드 문맥을 스스로 파악하고 논리적으로 추론하여 최적의 해결책을 도출합니다. * **자동 수정 제안:** 분석 결과를 바탕으로 즉시 검토 및 반영이 가능한 머지 리퀘스트(MR)를 자동으로 생성하여 개발자의 수동 작업 부담을 줄여줍니다. * **유연한 실행 시점:** 전체 SAST 스캔 프로세스의 일부로 실행되거나, 오탐지 감지 단계 이후, 또는 특정 취약점 상세 페이지에서 사용자가 수동으로 트리거하여 실행할 수 있습니다. ### 신뢰도 높은 보안 워크플로우 제공 * **품질 평가 지표:** AI가 제안한 해결 방안에 대해 품질 평가(Quality assessments) 결과를 함께 제공하여, 리뷰어가 제안된 코드의 신뢰도를 신속하게 판단할 수 있도록 지원합니다. * **직관적인 관리:** 취약점 상세 정보 페이지에서 분석 내용을 확인하고, 제시된 해결책을 즉시 적용할 수 있는 통합된 사용자 경험을 제공합니다. * **우선순위 대응:** 보안 위협이 큰 치명적(Critical) 및 높음(High) 등급의 SAST 취약점을 우선적으로 처리하는 데 특화되어 있습니다. ### 서비스 이용 환경 및 대상 * **지원 대상:** 이 기능은 GitLab Ultimate 플랜 고객에게 제공됩니다. * **배포 환경:** GitLab.com(SaaS), Self-Managed, GitLab Dedicated 환경에서 모두 사용할 수 있습니다. 대규모 코드베이스에서 보안 취약점을 일일이 분석하고 수정하는 과정은 많은 시간과 비용이 소모됩니다. 이번에 정식 출시된 에이전틱 SAST 기능을 활용하면 보안 전문가의 개입 없이도 초동 조치가 가능해지므로, 개발팀은 보안 사고 예방 속도를 높이고 보다 고도화된 비즈니스 로직 개발에 집중할 것을 추천합니다.

LLM을 이용한 서비스 취약점 분석 자동화 #2 (새 탭에서 열림)

AI 기술의 비약적인 발전으로 취약점 분석 자동화가 새로운 국면을 맞이한 가운데, 대규모 소스코드를 효율적으로 분석하기 위한 구체적인 기술적 구현 방법과 보안 관점의 변화가 필요합니다. 본 글은 MCP(Model Context Protocol)를 통한 정밀한 코드 탐색과 SAST 도구를 활용한 분석 후보군 추출을 결합하여 분석의 일관성과 정확도를 높인 사례를 제시합니다. 결과적으로 AI가 단순한 보조 도구를 넘어 복합적인 추론을 수행하는 능동적인 보안 분석 주체로 진화하고 있음을 강조합니다. **MCP를 활용한 효율적인 소스코드 탐색** * 기존의 단순 패턴 매칭 방식은 불필요한 탐색으로 토큰을 낭비하거나 정확한 정의를 찾지 못하는 한계가 있어, 이를 개선하기 위해 ctags와 tree-sitter를 결합한 MCP 서버를 구축했습니다. * AI에게 IDE의 'Go to Definition'과 유사한 능력을 부여하기 위해 `find_references`(참조 검색), `read_definition`(심볼 정의 및 함수 범위 감지), `read_source`(주변 코드 읽기), `get_project_structure`(전체 구조 파악) 등 4가지 핵심 도구를 구현했습니다. * 이 시스템은 AI가 원격 서버 환경에서도 프로젝트의 전체적인 청사진을 이해하고, 분석이 필요한 코드의 맥락을 정확하게 짚어낼 수 있도록 돕습니다. **SAST와 AI의 결합을 통한 분석 범위 확장** * 분석의 일관성을 확보하기 위해 SAST(Semgrep 등)를 취약점 탐지용이 아닌, AI가 반드시 검토해야 할 '모든 입력 경로(Taint Path)'를 추출하는 보조 도구로 활용했습니다. * Spring 프레임워크의 @RequestParam, @RequestBody 등 모든 입력 지점(Source)에서 함수 호출(Sink)까지의 도달 경로를 추출하는 규칙을 설정하여 분석 후보군을 빠짐없이 확보했습니다. * 취약점 유무를 판단하기 어려운 복잡한 비즈니스 로직이나 보안 필터링의 유효성을 AI가 직접 검토하게 함으로써, 기존 정적 분석 도구의 한계를 AI의 문맥 이해 능력으로 보완했습니다. **체계적인 추론 과정(CoT) 설계** * AI가 분석을 시작하기 전 '계획 수립 - 도구 실행 - 검증 - 결과 분석'의 단계를 거치도록 Chain of Thought(CoT) 방식을 적용하여 분석 결과의 신뢰도를 높였습니다. * 단순히 코드를 단편적으로 보는 것이 아니라, MCP 도구를 활용해 연관된 코드와 비즈니스 로직을 충분히 탐색한 후 최종 판단을 내리도록 설계하여 오탐(False Positive)을 획기적으로 줄였습니다. * 이러한 구조화된 추론 과정을 통해 AI는 10개의 취약점 중 일부만 찾는 불완전한 분석에서 벗어나, 정해진 후보군 전체를 일관성 있게 전수 조사할 수 있게 되었습니다. **보안 패러다임의 전환** 현재의 AI는 단순한 챗봇을 넘어 보안 전문가의 사고 과정을 모사하는 에이전트로 진화하고 있습니다. 보안 담당자는 이제 AI에게 효율적인 코드 탐색 도구(MCP)를 제공하고 정밀한 분석 경로(SAST 활용)를 설계해 주는 'AI 오케스트레이터'로서의 역할을 고민해야 합니다. AI가 가진 강력한 추론 능력을 신뢰하되, 이를 올바른 방향으로 이끌 수 있는 환경을 구축하는 것이 보안 자동화의 핵심입니다.

GitLab 18.10 brings AI-native triage and remediation (새 탭에서 열림)

GitLab 18.10은 AI 기반의 보안 기능을 강화하여 취약점 관리의 효율성을 획기적으로 높였습니다. GitLab Duo Agent 플랫폼을 통해 보안 탐지 결과의 노이즈를 줄이고 실제 위험에 집중하게 함으로써, 개발자가 보안 전문가가 아니더라도 신속하고 정확하게 취약점을 해결할 수 있는 환경을 제공합니다. 특히 정적 응용 프로그램 보안 테스트(SAST) 및 기밀 정보 탐지에서의 지능형 분석과 자동 수정 제안 기능이 핵심입니다. ### SAST 오탐 감지 및 분석 (정식 출시) * 기존 SAST 스캐너는 코드의 실행 맥락을 이해하지 못해 실제 위협이 아닌 코드도 경고를 띄우는 '오탐(False Positive)' 문제가 빈번했습니다. * GitLab Duo Agent는 LLM 기반의 추론을 통해 감지된 취약점이 실제 위협인지 아니면 안전한 코드인지를 분석합니다. * 취약점 리포트에 신뢰도 점수, AI가 작성한 판단 근거 설명, "오탐 가능성 높음/낮음"을 나타내는 시각적 배지를 제공하여 보안 팀이 중요한 문제에 먼저 집중할 수 있도록 돕습니다. ### 에이전트 기반 취약점 자동 수정 (베타) * 식별된 취약점을 확인하는 단계에서 더 나아가, AI가 직접 코드 수정안을 포함한 병합 요청(Merge Request)을 자동으로 생성합니다. * AI 에이전트가 코드 저장소의 주변 문맥을 읽고 고품질의 패치를 생성한 뒤, 자동화된 테스트를 통해 수정 사항이 안전한지 검증합니다. * 생성된 병합 요청에는 구체적인 코드 변경 사항과 함께 변경 이유에 대한 AI의 설명이 포함되어 개발자의 검토 및 반영 속도를 높여줍니다. ### 기밀 정보(Secret) 탐지의 정확도 향상 (베타) * 테스트용 자격 증명이나 예시 토큰과 같은 더미 데이터가 실제 보안 위협으로 분류되어 발생하는 리포트 노이즈를 제거합니다. * 기본 브랜치에서 스캔을 실행할 때 각 발견 항목을 분석하여 실제 노출된 기밀인지 아니면 테스트용 값인지를 구분하고 신뢰도 점수를 부여합니다. * 개발자는 취약점 리포트에서 수동으로 '오탐 확인'을 요청하여 보안 위험이 없는 항목을 빠르게 정리하고 실제 유출 사고에 즉각 대응할 수 있습니다. GitLab 18.10의 새로운 AI 보안 기능은 취약점의 탐지부터 해결까지의 전체 워크플로우를 자동화하여 개발 주기를 단축합니다. GitLab Ultimate 사용자는 GitLab Duo Agent 플랫폼을 통해 보안 검증 시간을 줄이고 코드의 안전성을 강화할 수 있으며, 무료 트라이얼을 통해 이러한 지능형 보안 워크플로우를 직접 경험해 보는 것을 추천합니다.

LLM을 이용한 서비스 취약점 분석 자동화 #1 (새 탭에서 열림)

토스 보안 연구팀은 구글의 'Project Naptime'에서 영감을 얻어 LLM 기반의 취약점 분석 자동화 시스템을 구축했습니다. 대용량 코드 처리, 결과의 불확실성, 운영 비용 등 실무 적용 과정에서 마주한 네 가지 핵심 기술적 난제를 단계별로 해결하며 최종적으로 95% 이상의 분석 정확도를 달성했습니다. 기술적 가능성을 넘어 실제 수백 개의 서비스에 지속적으로 적용 가능한 수준의 보안 자동화 환경을 마련했다는 점에 의의가 있습니다. **대용량 소스코드 분석을 위한 MCP 도입** * 단순히 소스코드 전체를 LLM에 입력하는 방식은 토큰 한계와 환각(Hallucination) 문제로 인해 대규모 프로젝트 분석에는 부적합했습니다. * 대안으로 RAG(검색 증강 생성)를 시도했으나 코드 간의 복잡한 연관 관계를 파악하는 데 한계가 있었습니다. * 최종적으로 MCP(Model Context Protocol)를 구축하여 LLM 에이전트가 필요할 때마다 함수 정의나 변수 사용처를 도구 호출(Tool Calling) 방식으로 자유롭게 탐색하도록 설계했습니다. **SAST 결합을 통한 분석 일관성 확보** * 동일한 코드에 대해서도 분석 결과가 매번 달라지는 LLM의 비결정성 문제를 해결하기 위해 정적 분석 도구(SAST)를 결합했습니다. * 빌드 과정이 복잡하고 무거운 CodeQL 대신, 가볍고 빠른 오픈소스 도구인 Semgrep을 활용하여 모든 입력 경로(Source)에서 위험 지점(Sink)까지의 경로를 먼저 수집했습니다. * SAST가 추출한 잠재적 취약 경로를 LLM이 집중 분석하게 함으로써 탐지 누락을 방지하고 분석의 신뢰도를 높였습니다. **멀티 에이전트 체계를 통한 비용 최적화** * 모든 코드 경로를 심층 분석할 경우 발생하는 막대한 토큰 비용을 줄이기 위해 역할을 분담한 세 가지 에이전트를 도입했습니다. * **Discovery 에이전트:** 수집된 경로 중 실제 취약점 가능성이 높은 경로를 1차로 선별하는 거름망 역할을 수행합니다. * **Analysis 에이전트:** 선별된 경로를 심층 분석하여 실제 취약 여부를 판별합니다. * **Review 에이전트:** 최종 결과를 검토하여 오탐(False Positive)을 제거함으로써 분석의 정교함을 더했습니다. **지속 가능한 운영을 위한 오픈 모델 전환** * 상용 클라우드 모델(Claude 등)의 높은 비용 문제를 해결하기 위해 직접 호스팅 가능한 오픈 모델(Open Model)로 전환했습니다. * Qwen3:30B, gpt-oss:20B, llama3.1:8B 등 다양한 모델의 ROI를 비교 분석한 결과, 취약점 분석 정확도와 도구 호출 성능이 가장 우수한 'Qwen3:30B'를 최종 선택했습니다. * 오픈 모델의 성능을 보완하기 위해 프롬프트 엔지니어링과 퓨샷 러닝(Few-shot Learning)을 적용하여 클라우드 모델 못지않은 성능을 구현했습니다. 단순히 최신 기술을 도입하는 것에 그치지 않고, 기업 환경에서 실제 운영 가능한 수준의 '비용 대비 성능'을 확보하는 것이 중요합니다. LLM 취약점 분석 시스템을 구축할 때는 모든 판단을 모델에 맡기기보다 Semgrep과 같은 전통적인 보안 도구로 분석 범위를 좁혀주고, 멀티 에이전트 구조로 단계별 필터링을 거치는 설계가 실무적으로 가장 효과적입니다.