취약점 API
-
last_edited_at
deprecated in GitLab 16.7. -
start_date
deprecated in GitLab 16.7. -
updated_by_id
deprecated in GitLab 16.7. -
last_edited_by_id
deprecated in GitLab 16.7. -
due_date
deprecated in GitLab 16.7.
모든 취약점에 대한 API 호출은 인증되어야 합니다.
인증된 사용자에게 취약점을 보기 위한 권한이 없는 경우 이 요청은 403 Forbidden
상태 코드를 반환합니다.
단일 취약점
단일 취약점을 가져옵니다.
GET /vulnerabilities/:id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 가져올 취약점의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/vulnerabilities/1"
예시 응답:
{
"id": 1,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "opened",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
취약점 확인
지정된 취약점을 확인합니다. 취약점이 이미 확인된 경우 상태 코드 304
를 반환합니다.
인증된 사용자에게 취약점을 확인하기 위한 권한이 없는 경우 이 요청은 403
상태 코드를 반환합니다.
POST /vulnerabilities/:id/confirm
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 확인할 취약점의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/vulnerabilities/5/confirm"
예시 응답:
{
"id": 2,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "confirmed",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
취약점 해결
지정된 취약점을 해결합니다. 취약점이 이미 해결된 경우 상태 코드 304
를 반환합니다.
인증된 사용자에게 취약점을 해결하기 위한 권한이 없는 경우 이 요청은 403
상태 코드를 반환합니다.
POST /vulnerabilities/:id/resolve
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 해결할 취약점의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/vulnerabilities/5/resolve"
예시 응답:
{
"id": 2,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "resolved",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
취약점 해제
지정된 취약점을 해제합니다. 취약점이 이미 해제된 경우 상태 코드 304
를 반환합니다.
인증된 사용자에게 취약점을 해제하기 위한 권한이 없는 경우 이 요청은 403
상태 코드를 반환합니다.
POST /vulnerabilities/:id/dismiss
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 해제할 취약점의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/vulnerabilities/5/dismiss"
예시 응답:
{
"id": 2,
"title": "Predictable pseudorandom number generator",
"description": null,
"state": "closed",
"severity": "medium",
"confidence": "medium",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
검출된 상태로 취약점 회귀
주어진 취약점을 검출된 상태로 회귀합니다. 취약점이 이미 검출된 상태인 경우 상태 코드 304
를 반환합니다.
인증된 사용자가 검출된 상태로 취약점을 회귀할 수 있는 권한이 없는 경우, 이 요청은 상태 코드 403
으로 결과가 래핑됩니다.
POST /vulnerabilities/:id/revert
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 검출된 상태로 회귀시킬 취약점의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/vulnerabilities/5/revert"
예시 응답:
{
"id": 2,
"title": "예측 가능한 의사 난수 생성기",
"description": null,
"state": "검출됨",
"severity": "중간",
"confidence": "중간",
"report_type": "sast",
"project": {
"id": 32,
"name": "security-reports",
"full_path": "/gitlab-examples/security/security-reports",
"full_name": "gitlab-examples / security / security-reports"
},
"author_id": 1,
"closed_by_id": null,
"created_at": "2019-10-13T15:08:40.219Z",
"updated_at": "2019-10-13T15:09:40.382Z",
"closed_at": null
}
GraphQL을 사용한 취약점 REST API 대체
다가오는 폐기 예정에 대비하여 취약점 REST API 엔드포인트를 GraphQL API를 사용하여 동등한 작업을 수행하기 위해 아래 예시를 참조하세요.
GraphQL - 단일 취약점
Query.vulnerability
를 사용하세요.
{
vulnerability(id: "gid://gitlab/Vulnerability/20345379") {
title
description
state
severity
reportType
project {
id
name
fullPath
}
detectedAt
confirmedAt
resolvedAt
resolvedBy {
id
username
}
}
}
예시 응답:
{
"data": {
"vulnerability": {
"title": "railties의 부적절한 입력 유효성 검사",
"description": "개발 모드 Rails beta3의 원격 코드 실행 취약점은 공격자가 자동으로 생성된 개발 모드 비밀 토큰을 추측할 수 있게 합니다. 이 비밀 토큰은 기타 Rails 내부 기능과 조합하여 원격 코드 실행 취약점으로 승격될 수 있습니다.",
"state": "해결됨",
"severity": "심각",
"reportType": "의존성 스캐닝",
"project": {
"id": "gid://gitlab/Project/6102100",
"name": "security-reports",
"fullPath": "gitlab-examples/security/security-reports"
},
"detectedAt": "2021-10-14T03:13:41Z",
"confirmedAt": "2021-12-14T01:45:56Z",
"resolvedAt": "2021-12-14T01:45:59Z",
"resolvedBy": {
"id": "gid://gitlab/User/480804",
"username": "thiagocsf"
}
}
}
}
GraphQL - 취약점 확인
Mutation.vulnerabilityConfirm
을 사용하세요.
mutation {
vulnerabilityConfirm(input: { id: "gid://gitlab/Vulnerability/23577695"}) {
vulnerability {
state
}
errors
}
}
예시 응답:
{
"data": {
"vulnerabilityConfirm": {
"vulnerability": {
"state": "확인됨"
},
"errors": []
}
}
}
GraphQL - 취약점 해결
Mutation.vulnerabilityResolve
을 사용하세요.
mutation {
vulnerabilityResolve(input: { id: "gid://gitlab/Vulnerability/23577695"}) {
vulnerability {
state
}
errors
}
}
예시 응답:
{
"data": {
"vulnerabilityConfirm": {
"vulnerability": {
"state": "해결됨"
},
"errors": []
}
}
}
GraphQL - 취약점 해제
Mutation.vulnerabilityDismiss
을 사용하세요.
mutation {
vulnerabilityDismiss(input: { id: "gid://gitlab/Vulnerability/23577695"}) {
vulnerability {
state
}
errors
}
}
예시 응답:
{
"data": {
"vulnerabilityConfirm": {
"vulnerability": {
"state": "해제됨"
},
"errors": []
}
}
}
GraphQL - 검출된 상태로 취약점 회귀
Mutation.vulnerabilityRevertToDetected
을 사용하세요.
mutation {
vulnerabilityRevertToDetected(input: { id: "gid://gitlab/Vulnerability/20345379"}) {
vulnerability {
state
}
errors
}
}
예시 응답:
{
"data": {
"vulnerabilityConfirm": {
"vulnerability": {
"state": "검출됨"
},
"errors": []
}
}
}