查询linux漏洞基本信息 - ShowLinuxVulDetail
功能介绍
查询linux漏洞基本信息。
调用方法
请参见如何调用API。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,当前API调用无需身份策略权限。
URI
GET /v5/{project_id}/vulnerability/linux-detail
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
参数解释: 项目ID,用于明确项目归属,配置后可通过该ID查询项目下资产。获取方式请参见获取项目ID。 约束限制: 不涉及 取值范围: 字符长度1-256位 默认取值: 不涉及 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
enterprise_project_id |
否 |
String |
参数解释: 企业项目ID,用于过滤不同企业项目下的资产。获取方式请参见获取企业项目ID。 如需查询所有企业项目下的资产请传参“all_granted_eps”。 约束限制: 开通企业项目功能后才需要配置企业项目ID参数。 取值范围: 字符长度1-256位 默认取值: 0,表示默认企业项目(default)。 |
|
limit |
是 |
Integer |
参数解释: 每页显示个数 约束限制: 不涉及 取值范围: 取值10-200 默认取值: 10 |
|
offset |
是 |
Integer |
参数解释: 偏移量:指定返回记录的开始位置 约束限制: 不涉及 取值范围: 最小值0,最大值2000000 默认取值: 不涉及 |
|
vul_id |
是 |
String |
参数解释: 漏洞补丁编号 约束限制: 不涉及 取值范围: 字符长度1-256 默认取值: 不涉及 |
|
cve_id |
否 |
String |
参数解释: 漏洞编号 约束限制: 不涉及 取值范围: 字符长度1-32 默认取值: 不涉及 |
|
handle_status |
否 |
String |
参数解释: 漏洞处置状态 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
X-Auth-Token |
是 |
String |
参数解释: 用户Token,包含了用户的身份、权限等信息,在调用API接口时,可通过Token进行身份认证。获取方式请参见获取用户Token。 约束限制: 不涉及 取值范围: 字符长度1-32768位 默认取值: 不涉及 |
响应参数
状态码:200
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
total_num |
Integer |
参数解释: 记录总数 取值范围: 最小值0,最大值2147483647 |
|
data_list |
Array of LinuxVulDetailInfo objects |
参数解释: linux漏洞cve列表 取值范围: 最小值0,最大值10000 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
cve_id |
String |
参数解释: 漏洞编号 取值范围: 字符长度0-255 |
|
cve_name |
String |
参数解释: cve漏洞名称 取值范围: 字符长度0-512 |
|
cvss_vector |
String |
参数解释: 攻击矢量 取值范围: 字符长度0-255 |
|
cve_solution |
String |
参数解释: cve修复建议 取值范围: 字符长度0-4096 |
|
cve_affect |
String |
参数解释: cve漏洞危害 取值范围: 字符长度0-128 |
|
cve_affect_description |
String |
参数解释: cve漏洞危害的描述信息 取值范围: 字符长度0-4096 |
|
cve_type |
String |
参数解释: cve漏洞类型 取值范围: 字符长度0-128 |
|
cve_type_description |
String |
参数解释: cve漏洞类型的描述信息 取值范围: 字符长度0-4096 |
|
cve_level |
String |
参数解释: cve危险程度 取值范围:
|
|
cvss |
Float |
参数解释: 漏洞分值 取值范围: 最小值0,最大值10 |
|
cvss_version |
String |
参数解释: cvss评分版本 取值范围: 字符长度0-32 |
|
description |
String |
参数解释: 漏洞描述 取值范围: 字符长度0-1024 |
|
public_time |
Long |
参数解释: 披露时间 取值范围: 最小值0,最大值2^63-1 |
|
cnvd_id |
String |
参数解释: cnvd编号 取值范围: 字符长度0-32 |
|
cnnvd_id |
String |
参数解释: cnnvd编号 取值范围: 字符长度0-32 |
|
hosts_num |
VulnerabilityHostNumberInfo object |
影响主机 |
请求示例
查询project_id为2b31ed520xxxxxxebedb6e57xxxxxxxx的linux漏洞为UTSA-2023-001306的详细信息。
GET https://{endpoint}/v5/2b31ed520xxxxxxebedb6e57xxxxxxxx/vulnerability/linux-detail?offset=0&limit=10&vul_id=UTSA-2023-001306&handle_status=unhandled&enterprise_project_id=all_granted_eps
响应示例
状态码:200
请求已成功
{
"total_num" : 1,
"data_list" : [ {
"cvss" : 4.4,
"description" : "FreeType是一款使用C语言编写的开源字体渲染库。\r\n该CVE编号已撤回。",
"cve_id" : "CVE-2023-2004",
"cve_name" : "FreeType 安全缺陷漏洞",
"cvss_vector" : "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L",
"cve_solution" : "正式修复方案:\n1. 修复步骤:\n 由于该CVE编号已撤回,具体漏洞细节和修复方案可能不可用。建议定期检查FreeType官方网站和相关安全公告,以获取最新的安全更新和补丁信息。如果FreeType发布了针对该漏洞的补丁,请按照以下步骤进行修复:\n\n a. 访问FreeType官方网站或安全公告页面,下载最新的补丁或更新。\n b. 按照官方提供的安装说明,应用补丁或更新到您的FreeType库。\n c. 重新编译和部署相关应用程序,确保使用了修补后的FreeType库。\n\n2. 预防措施:\n 为了防止类似漏洞在未来发生,建议采取以下最佳实践:\n\n a. 定期监控FreeType和其他依赖库的安全公告,及时应用安全补丁。\n b. 使用自动化工具定期扫描项目依赖库中的已知漏洞。\n c. 在开发过程中严格遵循安全编码规范,避免引入常见的安全漏洞。\n d. 对于关键系统,考虑使用多层防御策略,如入侵检测系统和应用防火墙,以增加额外的安全层。\n\n重启服务,重启系统,无需重启\n\n",
"cve_type" : "安全缺陷",
"cve_type_description" : "安全缺陷即因编码缺陷或者配置问题导致引发软件程序或者硬件设备出现安全风险问题。安全缺陷是所有漏洞类型的统称,即所有的漏洞类型都可以叫安全缺陷。",
"cve_level" : "Medium",
"cvss_version" : "3.0",
"public_time" : 1681476566000,
"cnnvd_id" : "CNNVD-202304-1201",
"hosts_num" : {
"important" : 0,
"common" : 1,
"test" : 0
}
} ]
}
SDK代码示例
SDK代码示例如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.hss.v5.region.HssRegion; import com.huaweicloud.sdk.hss.v5.*; import com.huaweicloud.sdk.hss.v5.model.*; public class ShowLinuxVulDetailSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); HssClient client = HssClient.newBuilder() .withCredential(auth) .withRegion(HssRegion.valueOf("<YOUR REGION>")) .build(); ShowLinuxVulDetailRequest request = new ShowLinuxVulDetailRequest(); try { ShowLinuxVulDetailResponse response = client.showLinuxVulDetail(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkhss.v5.region.hss_region import HssRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkhss.v5 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = HssClient.new_builder() \ .with_credentials(credentials) \ .with_region(HssRegion.value_of("<YOUR REGION>")) \ .build() try: request = ShowLinuxVulDetailRequest() response = client.show_linux_vul_detail(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" hss "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := hss.NewHssClient( hss.HssClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ShowLinuxVulDetailRequest{} response, err := client.ShowLinuxVulDetail(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
|
状态码 |
描述 |
|---|---|
|
200 |
请求已成功 |
错误码
请参见错误码。