InfoGrab DocsInfoGrab Docs

Security Review Agent

요약

Security Review Agent는 머지 리퀘스트에서 비즈니스 로직 취약점을 탐지하는 AI 에이전트입니다. Security Review Agent는 GitLab Duo Agent Platform 위에 구축된 파운데이션 에이전트입니다.

Status: Beta

히스토리

Security Review Agent는 머지 리퀘스트에서 비즈니스 로직 취약점을 탐지하는 AI 에이전트입니다. 알려진 패턴을 스캔하는 정적 분석 도구와 달리, Security Review Agent는 코드의 의도를 추론합니다. 인가, 데이터 노출, 제어 흐름에 대한 잘못된 가정에서 발생하는 취약점을 식별합니다.

Security Review Agent는 GitLab Duo Agent Platform 위에 구축된 파운데이션 에이전트입니다. GitLab Duo Code Review와 함께 작동하며, CWE 분류, 심각도 등급, 설명, 그리고 가능한 경우 한 번의 동작으로 적용할 수 있는 인라인 수정 제안이 포함된 스레드 diff 댓글로 결과를 게시합니다.

다음과 같은 경우 Security Review Agent를 활용하세요:

  • 접근 제어 리뷰: 상태를 변경하는 작업에서 누락되거나 잘못 구성된 인가 확인을 식별합니다.

  • 인가 격차 탐지: 객체 수준 및 함수 수준의 인가 문제(OWASP API #1 및 #3)를 탐지합니다.

  • 비즈니스 로직 분석: 금융 또는 상태가 있는 작업에서의 경쟁 조건 등 악용될 수 있는 애플리케이션 워크플로의 결함을 탐지합니다.

  • 정보 노출: 권한이 없는 호출자에게 민감한 데이터를 유출할 수 있는 코드 경로를 식별합니다.

  • 대량 할당 위험: 의도하지 않은 필드를 사용자 입력에 노출할 수 있는 엔드포인트 또는 모델을 표시합니다.

사전 요건#

Security Review Agent를 사용하려면:

비용#

Security Review Agent는 리뷰를 수행할 때마다 GitLab Credits를 사용합니다. 크레딧 소비는 머지 리퀘스트 diff의 복잡도에 따라 달라집니다.

다음 대략적인 추정치를 통해 일반적인 크레딧 사용량을 평가할 수 있습니다:

리뷰 복잡도 대략적인 LLM 호출 횟수 예상 크레딧
기본 ~6 TBD
중간 ~16 TBD
복잡 ~30 TBD

베타 릴리스 기간 동안 리뷰는 항상 수동으로 시작됩니다. 이를 통해 더 넓은 범위에 도입하기 전에 코드베이스에서의 일반적인 크레딧 사용량을 평가할 수 있습니다.

Security Review Agent 사용#

리뷰 요청#

머지 리퀘스트가 생성된 후 언제든지 리뷰를 요청할 수 있습니다. 리뷰를 요청하면 에이전트가 머지 리퀘스트 diff와 주변 컨텍스트를 분석합니다.

리뷰를 요청하려면:

  • 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾으세요.

  • Code > Merge requests를 선택하고 머지 리퀘스트를 여세요.

  • 오른쪽 사이드바의 Reviewers 섹션에서 Edit을 선택하세요.

  • duo-security-reviewer를 검색하고 선택하세요. 이 서비스 계정은 그룹에서 Security Review 플로가 켜지면 자동으로 생성됩니다.

리뷰가 완료되면 에이전트는 발견된 내용을 요약하고 리뷰 범위에 대한 간단한 설명을 담은 내부 댓글을 게시합니다. 각 결과에 대해 에이전트는 관련 라인에 diff 스레드를 엽니다. 스레드에 답글을 달면(예: 위험을 수용하거나 평가에 동의하지 않는 경우), 에이전트가 답글을 읽고 그에 맞게 응답합니다.

공개 프로젝트에서는 결과가 내부 요약 노트에만 게시되며, 인라인 diff 댓글은 달리지 않습니다. 이는 보안 세부 정보가 공개적으로 노출되는 것을 방지합니다.

에이전트는 결과의 심각도에 따라 리뷰어 상태를 설정합니다:

심각도 리뷰어 상태
critical 또는 high 변경 요청
medium 또는 low 댓글
없음 승인

결과에 응답#

스레드에서 에이전트를 멘션하여 결과에 대한 설명을 요청하거나, 수정 방법을 논의하거나, 결과를 오탐으로 표시하세요. 에이전트는 멘션 시 전체 재리뷰를 수행하지 않습니다.

결과에 응답하려면:

  • 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾으세요.

  • Code > Merge requests를 선택하고 머지 리퀘스트를 여세요.

  • 댓글 스레드에서 @duo-security-reviewer를 입력한 후 메시지를 작성하고 제출하세요.

Security Review Agent는 스레드 컨텍스트를 읽고 직접 답변합니다.

결과 검토#

Security Review Agent는 정적 분석기에서 자주 놓치는 로직 수준의 취약점에 집중합니다. 각 결과는 변경된 코드에 대한 diff 스레드로 게시됩니다. 각 스레드에는 다음이 포함됩니다:

  • MITRE 정의 링크가 포함된 취약점 유형(CWE).

  • 심각도 등급: critical, high, medium, 또는 low.

  • 티어 분류: Tier 1(악용 가능), Tier 2(로직 결함), 또는 Tier 3(설계 문제).

  • 로직 결함에 대한 설명.

  • 가능한 경우, 수정 제안.

Note

결과는 취약점 보고서에 추적되지 않으며 머지 리퀘스트 승인 정책에도 포함되지 않습니다. 결과는 정적 분석(SAST) 결과를 보완하지만 대체하지는 않습니다.

다음 CWE 분류가 결과에 나타날 수 있습니다:

CWE 설명
CWE-639 사용자 제어 키를 통한 인가 우회 (BOLA / IDOR)
CWE-862 누락된 인가
CWE-284 부적절한 접근 제어
CWE-200 민감한 정보 노출
CWE-840 비즈니스 로직 오류
CWE-915 동적으로 결정된 객체 속성의 부적절하게 제어된 수정(대량 할당)
CWE-362 경쟁 조건 및 확인 시간/사용 시간(TOCTOU)

결과 해결#

결과를 해결하려면:

  • 수정을 적용하려면 Apply suggestion을 선택하세요. 제안을 새 브랜치에 커밋하려면 Apply suggestion 옆의 드롭다운을 선택하세요.

  • 결과를 무시하려면, 검토 후 오탐 또는 수용된 위험으로 판단한 경우 Resolve thread를 선택하세요.

  • 향후 수정을 위해 취약점을 추적하려면, 표준 GitLab 스레드 액션을 사용하여 결과에서 이슈를 생성하세요.

  • 결과의 유용성을 평가하려면 thumbs up 또는 thumbs down을 선택하세요. 이 피드백은 모델 개선에 도움이 됩니다. 피드백 이슈에서 상세 피드백을 공유할 수도 있습니다.

결과를 해결한 후 다른 리뷰를 요청하려면 에이전트를 리뷰어로 다시 지정하세요. 에이전트는 업데이트된 diff를 분석하고 결과 상태에 따라 다음 작업을 수행합니다:

  • 해결된 결과: 에이전트가 수정을 확인하고 원본 스레드를 해결합니다.

  • 잘못되거나 불완전한 수정: 에이전트가 원본 스레드에서 추가로 필요한 변경 사항을 식별합니다.

  • 해결되지 않은 결과: 원본 스레드는 추가 댓글 없이 열린 상태로 유지됩니다.

  • 새로운 결과: 에이전트가 수정으로 인해 도입된 새로운 취약점을 탐지하고 새 댓글 스레드를 생성합니다.

문제 해결#

Security Review Agent를 사용할 때 다음과 같은 문제가 발생할 수 있습니다.

에이전트를 할당할 수 없음#

duo-security-reviewer 서비스 계정은 그룹에서 플로가 켜지면 자동으로 생성됩니다. Security Review 플로의 상태를 확인하세요.

에이전트가 결과를 제공하지 않음#

모든 사전 요건을 충족하는지 확인한 후, 에이전트가 올바르게 지정되었는지 확인하세요.

  • @duo-security-reviewer를 공백이나 대문자 없이 정확하게 멘션했는지 확인하세요.

  • Allow foundational flowsCode Review 설정이 최상위 그룹에 대해 켜져 있는지 확인하세요.

  • GitLab Self-Managed의 경우, 인스턴스가 GitLab Duo에 대해 구성되어 있는지 확인하세요.

에이전트가 모든 머지 리퀘스트를 리뷰하지 않음#

코드 로직 변경이 없는 소규모 머지 리퀘스트에서는 결과가 나타나지 않을 수 있습니다. 예를 들어, 문서만 변경하는 경우에 이런 상황이 발생할 수 있습니다.

제안된 변경 사항이 깔끔하게 적용되지 않음#

제안은 리뷰 시점의 diff를 기반으로 생성됩니다. 리뷰 후 새 커밋을 푸시한 경우 라인 번호가 이동했을 수 있습니다. 현재 diff에 대한 업데이트된 제안을 받으려면 새 리뷰를 요청하세요.

GitLab Credits에 관한 오류가 발생함#

인스턴스 또는 그룹이 현재 청구 기간에 대한 GitLab Credits를 소진했을 수 있습니다. 관리자에게 추가 크레딧 구매를 요청하거나, 다음 청구 기간 시작 시 크레딧이 초기화될 때까지 기다리세요.

Security Review Agent

GitLab v19.1
Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

Security Review Agent는 머지 리퀘스트에서 비즈니스 로직 취약점을 탐지하는 AI 에이전트입니다. Security Review Agent는 GitLab Duo Agent Platform 위에 구축된 파운데이션 에이전트입니다.

Status: Beta

히스토리

Security Review Agent는 머지 리퀘스트에서 비즈니스 로직 취약점을 탐지하는 AI 에이전트입니다. 알려진 패턴을 스캔하는 정적 분석 도구와 달리, Security Review Agent는 코드의 의도를 추론합니다. 인가, 데이터 노출, 제어 흐름에 대한 잘못된 가정에서 발생하는 취약점을 식별합니다.

Security Review Agent는 GitLab Duo Agent Platform 위에 구축된 파운데이션 에이전트입니다. GitLab Duo Code Review와 함께 작동하며, CWE 분류, 심각도 등급, 설명, 그리고 가능한 경우 한 번의 동작으로 적용할 수 있는 인라인 수정 제안이 포함된 스레드 diff 댓글로 결과를 게시합니다.

다음과 같은 경우 Security Review Agent를 활용하세요:

  • 접근 제어 리뷰: 상태를 변경하는 작업에서 누락되거나 잘못 구성된 인가 확인을 식별합니다.

  • 인가 격차 탐지: 객체 수준 및 함수 수준의 인가 문제(OWASP API #1 및 #3)를 탐지합니다.

  • 비즈니스 로직 분석: 금융 또는 상태가 있는 작업에서의 경쟁 조건 등 악용될 수 있는 애플리케이션 워크플로의 결함을 탐지합니다.

  • 정보 노출: 권한이 없는 호출자에게 민감한 데이터를 유출할 수 있는 코드 경로를 식별합니다.

  • 대량 할당 위험: 의도하지 않은 필드를 사용자 입력에 노출할 수 있는 엔드포인트 또는 모델을 표시합니다.

사전 요건#

Security Review Agent를 사용하려면:

비용#

Security Review Agent는 리뷰를 수행할 때마다 GitLab Credits를 사용합니다. 크레딧 소비는 머지 리퀘스트 diff의 복잡도에 따라 달라집니다.

다음 대략적인 추정치를 통해 일반적인 크레딧 사용량을 평가할 수 있습니다:

리뷰 복잡도 대략적인 LLM 호출 횟수 예상 크레딧
기본 ~6 TBD
중간 ~16 TBD
복잡 ~30 TBD

베타 릴리스 기간 동안 리뷰는 항상 수동으로 시작됩니다. 이를 통해 더 넓은 범위에 도입하기 전에 코드베이스에서의 일반적인 크레딧 사용량을 평가할 수 있습니다.

Security Review Agent 사용#

리뷰 요청#

머지 리퀘스트가 생성된 후 언제든지 리뷰를 요청할 수 있습니다. 리뷰를 요청하면 에이전트가 머지 리퀘스트 diff와 주변 컨텍스트를 분석합니다.

리뷰를 요청하려면:

  • 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾으세요.

  • Code > Merge requests를 선택하고 머지 리퀘스트를 여세요.

  • 오른쪽 사이드바의 Reviewers 섹션에서 Edit을 선택하세요.

  • duo-security-reviewer를 검색하고 선택하세요. 이 서비스 계정은 그룹에서 Security Review 플로가 켜지면 자동으로 생성됩니다.

리뷰가 완료되면 에이전트는 발견된 내용을 요약하고 리뷰 범위에 대한 간단한 설명을 담은 내부 댓글을 게시합니다. 각 결과에 대해 에이전트는 관련 라인에 diff 스레드를 엽니다. 스레드에 답글을 달면(예: 위험을 수용하거나 평가에 동의하지 않는 경우), 에이전트가 답글을 읽고 그에 맞게 응답합니다.

공개 프로젝트에서는 결과가 내부 요약 노트에만 게시되며, 인라인 diff 댓글은 달리지 않습니다. 이는 보안 세부 정보가 공개적으로 노출되는 것을 방지합니다.

에이전트는 결과의 심각도에 따라 리뷰어 상태를 설정합니다:

심각도 리뷰어 상태
critical 또는 high 변경 요청
medium 또는 low 댓글
없음 승인

결과에 응답#

스레드에서 에이전트를 멘션하여 결과에 대한 설명을 요청하거나, 수정 방법을 논의하거나, 결과를 오탐으로 표시하세요. 에이전트는 멘션 시 전체 재리뷰를 수행하지 않습니다.

결과에 응답하려면:

  • 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾으세요.

  • Code > Merge requests를 선택하고 머지 리퀘스트를 여세요.

  • 댓글 스레드에서 @duo-security-reviewer를 입력한 후 메시지를 작성하고 제출하세요.

Security Review Agent는 스레드 컨텍스트를 읽고 직접 답변합니다.

결과 검토#

Security Review Agent는 정적 분석기에서 자주 놓치는 로직 수준의 취약점에 집중합니다. 각 결과는 변경된 코드에 대한 diff 스레드로 게시됩니다. 각 스레드에는 다음이 포함됩니다:

  • MITRE 정의 링크가 포함된 취약점 유형(CWE).

  • 심각도 등급: critical, high, medium, 또는 low.

  • 티어 분류: Tier 1(악용 가능), Tier 2(로직 결함), 또는 Tier 3(설계 문제).

  • 로직 결함에 대한 설명.

  • 가능한 경우, 수정 제안.

Note

결과는 취약점 보고서에 추적되지 않으며 머지 리퀘스트 승인 정책에도 포함되지 않습니다. 결과는 정적 분석(SAST) 결과를 보완하지만 대체하지는 않습니다.

다음 CWE 분류가 결과에 나타날 수 있습니다:

CWE 설명
CWE-639 사용자 제어 키를 통한 인가 우회 (BOLA / IDOR)
CWE-862 누락된 인가
CWE-284 부적절한 접근 제어
CWE-200 민감한 정보 노출
CWE-840 비즈니스 로직 오류
CWE-915 동적으로 결정된 객체 속성의 부적절하게 제어된 수정(대량 할당)
CWE-362 경쟁 조건 및 확인 시간/사용 시간(TOCTOU)

결과 해결#

결과를 해결하려면:

  • 수정을 적용하려면 Apply suggestion을 선택하세요. 제안을 새 브랜치에 커밋하려면 Apply suggestion 옆의 드롭다운을 선택하세요.

  • 결과를 무시하려면, 검토 후 오탐 또는 수용된 위험으로 판단한 경우 Resolve thread를 선택하세요.

  • 향후 수정을 위해 취약점을 추적하려면, 표준 GitLab 스레드 액션을 사용하여 결과에서 이슈를 생성하세요.

  • 결과의 유용성을 평가하려면 thumbs up 또는 thumbs down을 선택하세요. 이 피드백은 모델 개선에 도움이 됩니다. 피드백 이슈에서 상세 피드백을 공유할 수도 있습니다.

결과를 해결한 후 다른 리뷰를 요청하려면 에이전트를 리뷰어로 다시 지정하세요. 에이전트는 업데이트된 diff를 분석하고 결과 상태에 따라 다음 작업을 수행합니다:

  • 해결된 결과: 에이전트가 수정을 확인하고 원본 스레드를 해결합니다.

  • 잘못되거나 불완전한 수정: 에이전트가 원본 스레드에서 추가로 필요한 변경 사항을 식별합니다.

  • 해결되지 않은 결과: 원본 스레드는 추가 댓글 없이 열린 상태로 유지됩니다.

  • 새로운 결과: 에이전트가 수정으로 인해 도입된 새로운 취약점을 탐지하고 새 댓글 스레드를 생성합니다.

문제 해결#

Security Review Agent를 사용할 때 다음과 같은 문제가 발생할 수 있습니다.

에이전트를 할당할 수 없음#

duo-security-reviewer 서비스 계정은 그룹에서 플로가 켜지면 자동으로 생성됩니다. Security Review 플로의 상태를 확인하세요.

에이전트가 결과를 제공하지 않음#

모든 사전 요건을 충족하는지 확인한 후, 에이전트가 올바르게 지정되었는지 확인하세요.

  • @duo-security-reviewer를 공백이나 대문자 없이 정확하게 멘션했는지 확인하세요.

  • Allow foundational flowsCode Review 설정이 최상위 그룹에 대해 켜져 있는지 확인하세요.

  • GitLab Self-Managed의 경우, 인스턴스가 GitLab Duo에 대해 구성되어 있는지 확인하세요.

에이전트가 모든 머지 리퀘스트를 리뷰하지 않음#

코드 로직 변경이 없는 소규모 머지 리퀘스트에서는 결과가 나타나지 않을 수 있습니다. 예를 들어, 문서만 변경하는 경우에 이런 상황이 발생할 수 있습니다.

제안된 변경 사항이 깔끔하게 적용되지 않음#

제안은 리뷰 시점의 diff를 기반으로 생성됩니다. 리뷰 후 새 커밋을 푸시한 경우 라인 번호가 이동했을 수 있습니다. 현재 diff에 대한 업데이트된 제안을 받으려면 새 리뷰를 요청하세요.

GitLab Credits에 관한 오류가 발생함#

인스턴스 또는 그룹이 현재 청구 기간에 대한 GitLab Credits를 소진했을 수 있습니다. 관리자에게 추가 크레딧 구매를 요청하거나, 다음 청구 기간 시작 시 크레딧이 초기화될 때까지 기다리세요.