更新时间:2024-10-22 GMT+08:00
分享

创建威胁情报

功能介绍

创建威胁情报

调用方法

请参见如何调用API

URI

POST /v1/{project_id}/workspaces/{workspace_id}/soc/indicators

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID

最小长度:32

最大长度:64

workspace_id

String

工作空间ID

最小长度:1

最大长度:1024

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

租户的Token

最小长度:32

最大长度:65535

content-type

String

application/json;charset=UTF-8

缺省值:application/json;charset=UTF-8

最小长度:1

最大长度:64

表3 请求Body参数

参数

是否必选

参数类型

描述

data_object

CreateIndicatorDetail object

情报详情信息

表4 CreateIndicatorDetail

参数

是否必选

参数类型

描述

data_source

data_source object

数据源信息

verdict

String

威胁度

最小长度:1

最大长度:64

confidence

Integer

置信度

最小值:0

最大值:99

status

String

状态

最小长度:1

最大长度:64

labels

String

标签

最小长度:1

最大长度:64

value

String

最小长度:1

最大长度:128

granular_marking

String

粒度(保密等级),由高到低:1(首次发现)、2(自产数据)、3(需购买)、4(外网直接查询)

最小长度:1

最大长度:64

environment

environment object

环境信息

defanged

Boolean

是否失效

缺省值:false

枚举值:

  • true
  • false

first_report_time

String

首次发生时间

最小长度:0

最大长度:64

last_report_time

String

最近发生时间

最小长度:0

最大长度:64

id

String

威胁情报ID

最小长度:32

最大长度:64

indicator_type

indicator_type object

威胁情报类型

name

String

威胁情报名称

最小长度:0

最大长度:64

dataclass_id

String

数据类ID

最小长度:32

最大长度:64

workspace_id

String

workspace id

最小长度:32

最大长度:64

project_id

String

Project id value

最小长度:32

最大长度:64

dataclass

DataClassRefPojo object

数据类对象信息

create_time

String

Create time

最小长度:0

最大长度:64

update_time

String

Update time

最小长度:0

最大长度:64

表5 data_source

参数

是否必选

参数类型

描述

source_type

Integer

current page count

最小值:0

最大值:9999

domain_id

String

Id value

最小长度:32

最大长度:64

project_id

String

Id value

最小长度:32

最大长度:64

region_id

String

Id value

最小长度:1

最大长度:64

product_name

String

Id value

最小长度:1

最大长度:64

product_feature

String

Id value

最小长度:1

最大长度:64

表6 environment

参数

是否必选

参数类型

描述

vendor_type

String

环境供应商,如:HWC/AWS等

最小长度:0

最大长度:1024

domain_id

String

租户ID

最小长度:32

最大长度:64

region_id

String

区域ID

最小长度:1

最大长度:64

project_id

String

项目ID

最小长度:32

最大长度:64

表7 indicator_type

参数

是否必选

参数类型

描述

indicator_type

String

威胁情报类型

最小长度:1

最大长度:32

id

String

情报类型ID

最小长度:1

最大长度:64

表8 DataClassRefPojo

参数

是否必选

参数类型

描述

id

String

数据类ID

最小长度:32

最大长度:64

name

String

数据类名称

最小长度:0

最大长度:64

响应参数

状态码: 200

表9 响应Header参数

参数

参数类型

描述

X-request-id

String

请求ID,格式为:request_uuid-timestamp-hostname

表10 响应Body参数

参数

参数类型

描述

code

String

错误码

最小长度:32

最大长度:64

message

String

错误信息

最小长度:1

最大长度:32

data

IndicatorDetail object

情报详情信息

表11 IndicatorDetail

参数

参数类型

描述

id

String

威胁情报ID

最小长度:32

最大长度:64

name

String

威胁情报名称

最小长度:0

最大长度:64

data_object

IndicatorDataObjectDetail object

情报详情

workspace_id

String

工作空间ID

最小长度:32

最大长度:64

project_id

String

项目ID

最小长度:32

最大长度:64

dataclass_ref

DataClassRefPojo object

数据类对象信息

create_time

String

创建时间

最小长度:0

最大长度:64

update_time

String

更新时间

最小长度:0

最大长度:64

表12 IndicatorDataObjectDetail

参数

参数类型

描述

indicator_type

indicator_type object

情报类型对象

value

String

值,如:ip url domain等

最小长度:0

最大长度:256

update_time

String

更新时间

最小长度:0

最大长度:64

create_time

String

创建时间

最小长度:0

最大长度:64

environment

environment object

环境信息

data_source

data_source object

数据源信息

first_report_time

String

首次发生时间

最小长度:0

最大长度:64

is_deleted

Boolean

是否删除

last_report_time

String

最近发生时间

最小长度:0

最大长度:64

granular_marking

Integer

粒度(保密等级),由高到低:1(首次发现)、2(自产数据)、3(需购买)、4(外网直接查询)

最小值:1

最大值:4

name

String

名称

最小长度:1

最大长度:64

id

String

威胁情报ID

最小长度:1

最大长度:64

project_id

String

项目ID

最小长度:1

最大长度:64

revoked

Boolean

是否作废

status

String

状态, Open--打开,Closed--关闭, Revoked--作废

最小长度:1

最大长度:64

verdict

String

威胁度, Black--黑,White--白,Gray--灰

最小长度:1

最大长度:64

workspace_id

String

工作空间ID

最小长度:1

最大长度:64

confidence

Integer

置信度,取值范围是80-100

最小值:80

最大值:100

表13 indicator_type

参数

参数类型

描述

indicator_type

String

情报类型

最小长度:1

最大长度:32

id

String

情报类型ID

最小长度:1

最大长度:64

表14 environment

参数

参数类型

描述

vendor_type

String

环境供应商(如HWC、AWS、Azure等)

最小长度:0

最大长度:1024

domain_id

String

租户ID

最小长度:32

最大长度:64

region_id

String

区域ID

最小长度:1

最大长度:64

project_id

String

项目ID

最小长度:32

最大长度:64

表15 data_source

参数

参数类型

描述

source_type

Integer

数据源类型,取值范围如下:

  • 1:华为云产品
  • 2:第三方产品
  • 3:租户私有产品

最小值:0

最大值:9999

domain_id

String

租户ID

最小长度:32

最大长度:64

project_id

String

项目ID

最小长度:32

最大长度:64

region_id

String

区域ID

最小长度:1

最大长度:64

表16 DataClassRefPojo

参数

参数类型

描述

id

String

数据类ID

最小长度:32

最大长度:64

name

String

数据类名称

最小长度:0

最大长度:64

状态码: 400

表17 响应Header参数

参数

参数类型

描述

X-request-id

String

请求ID,格式为:request_uuid-timestamp-hostname

表18 响应Body参数

参数

参数类型

描述

code

String

错误码

最小长度:0

最大长度:64

message

String

错误描述

最小长度:0

最大长度:1024

请求示例

创建一条威胁情报,威胁情报名称为“威胁情报名称”,威胁情报版本为1,威胁情报类型为DATA_SOURCE,触发标志为否。

{
  "data_object" : {
    "data_source" : {
      "source_type" : 3,
      "domain_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f",
      "project_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f",
      "region_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f",
      "product_name" : "test",
      "product_feature" : "test"
    },
    "verdict" : "BLACK",
    "confidence" : 4,
    "status" : "OPEN",
    "labels" : "OPEN",
    "value" : "123",
    "granular_marking" : "1",
    "environment" : {
      "vendor_type" : "MyXXX",
      "domain_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f",
      "region_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f",
      "project_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f"
    },
    "defanged" : false,
    "first_report_time" : "2021-01-30T23:00:00Z+0800",
    "last_report_time" : "2021-01-30T23:00:00Z+0800",
    "indicator_type" : {
      "id" : "909494e3-558e-xxxxxx-07a8e18ca6xxx",
      "indicator_type" : "ipv6"
    },
    "name" : "威胁情报名称",
    "dataclass_id" : "28f61af50fc9452aa0ed5ea25c3cc3d3",
    "workspace_id" : "909494e3-558e-46b6-a9eb-07a8e18ca620",
    "project_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f",
    "dataclass" : {
      "id" : "28f61af50fc9452aa0ed5ea25c3cc3d3",
      "name" : "名称"
    },
    "create_time" : "2021-01-30T23:00:00Z+0800",
    "update_time" : "2021-01-30T23:00:00Z+0800"
  }
}

响应示例

状态码: 200

请求成功响应信息

{
  "code" : 0,
  "message" : "Error message",
  "data" : {
    "id" : "28f61af50fc9452aa0ed5ea25c3cc3d3",
    "name" : "威胁情报名称",
    "data_object" : {
      "indicator_type" : {
        "indicator_type" : "ipv6",
        "id" : "ac794b2dfab9fe8c0676587301a636d3"
      },
      "value" : "ip",
      "data_source" : {
        "domain_id" : "ac7438b990ef4a37b741004eb45e8bf4",
        "project_id" : "5b8bb3c888db498f9eeaf1023f7ba597",
        "region_id" : "cn-xxx-7",
        "source_type" : 1
      },
      "workspace_id" : "909494e3-558e-46b6-a9eb-07a8e18ca620",
      "project_id" : "909494e3-558e-46b6-a9eb-07a8e18ca62f",
      "granular_marking" : 1,
      "first_report_time" : "2023-07-04T16:47:01Z+0800",
      "status" : "Open"
    },
    "dataclass_ref" : {
      "id" : "28f61af50fc9452aa0ed5ea25c3cc3d3",
      "name" : "名称"
    },
    "create_time" : "2021-01-30T23:00:00Z+0800",
    "update_time" : "2021-01-30T23:00:00Z+0800"
  }
}

SDK代码示例

SDK代码示例如下。

创建一条威胁情报,威胁情报名称为“威胁情报名称”,威胁情报版本为1,威胁情报类型为DATA_SOURCE,触发标志为否。

 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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.secmaster.v2.region.SecMasterRegion;
import com.huaweicloud.sdk.secmaster.v2.*;
import com.huaweicloud.sdk.secmaster.v2.model.*;


public class CreateIndicatorSolution {

    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");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        SecMasterClient client = SecMasterClient.newBuilder()
                .withCredential(auth)
                .withRegion(SecMasterRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateIndicatorRequest request = new CreateIndicatorRequest();
        IndicatorCreateRequest body = new IndicatorCreateRequest();
        DataClassRefPojo dataclassDataObject = new DataClassRefPojo();
        dataclassDataObject.withId("28f61af50fc9452aa0ed5ea25c3cc3d3")
            .withName("名称");
        CreateIndicatorDetailIndicatorType indicatorTypeDataObject = new CreateIndicatorDetailIndicatorType();
        indicatorTypeDataObject.withIndicatorType("ipv6")
            .withId("909494e3-558e-xxxxxx-07a8e18ca6xxx");
        CreateIndicatorDetailEnvironment environmentDataObject = new CreateIndicatorDetailEnvironment();
        environmentDataObject.withVendorType("MyXXX")
            .withDomainId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withRegionId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withProjectId("909494e3-558e-46b6-a9eb-07a8e18ca62f");
        CreateIndicatorDetailDataSource dataSourceDataObject = new CreateIndicatorDetailDataSource();
        dataSourceDataObject.withSourceType(3)
            .withDomainId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withProjectId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withRegionId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withProductName("test")
            .withProductFeature("test");
        CreateIndicatorDetail dataObjectbody = new CreateIndicatorDetail();
        dataObjectbody.withDataSource(dataSourceDataObject)
            .withVerdict("BLACK")
            .withConfidence(4)
            .withStatus("OPEN")
            .withLabels("OPEN")
            .withValue("123")
            .withGranularMarking("1")
            .withEnvironment(environmentDataObject)
            .withDefanged(false)
            .withFirstReportTime("2021-01-30T23:00:00Z+0800")
            .withLastReportTime("2021-01-30T23:00:00Z+0800")
            .withIndicatorType(indicatorTypeDataObject)
            .withName("威胁情报名称")
            .withDataclassId("28f61af50fc9452aa0ed5ea25c3cc3d3")
            .withWorkspaceId("909494e3-558e-46b6-a9eb-07a8e18ca620")
            .withProjectId("909494e3-558e-46b6-a9eb-07a8e18ca62f")
            .withDataclass(dataclassDataObject)
            .withCreateTime("2021-01-30T23:00:00Z+0800")
            .withUpdateTime("2021-01-30T23:00:00Z+0800");
        body.withDataObject(dataObjectbody);
        request.withBody(body);
        try {
            CreateIndicatorResponse response = client.createIndicator(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,威胁情报类型为DATA_SOURCE,触发标志为否。

 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdksecmaster.v2.region.secmaster_region import SecMasterRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdksecmaster.v2 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"]

    credentials = BasicCredentials(ak, sk)

    client = SecMasterClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(SecMasterRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = CreateIndicatorRequest()
        dataclassDataObject = DataClassRefPojo(
            id="28f61af50fc9452aa0ed5ea25c3cc3d3",
            name="名称"
        )
        indicatorTypeDataObject = CreateIndicatorDetailIndicatorType(
            indicator_type="ipv6",
            id="909494e3-558e-xxxxxx-07a8e18ca6xxx"
        )
        environmentDataObject = CreateIndicatorDetailEnvironment(
            vendor_type="MyXXX",
            domain_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            region_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            project_id="909494e3-558e-46b6-a9eb-07a8e18ca62f"
        )
        dataSourceDataObject = CreateIndicatorDetailDataSource(
            source_type=3,
            domain_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            project_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            region_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            product_name="test",
            product_feature="test"
        )
        dataObjectbody = CreateIndicatorDetail(
            data_source=dataSourceDataObject,
            verdict="BLACK",
            confidence=4,
            status="OPEN",
            labels="OPEN",
            value="123",
            granular_marking="1",
            environment=environmentDataObject,
            defanged=False,
            first_report_time="2021-01-30T23:00:00Z+0800",
            last_report_time="2021-01-30T23:00:00Z+0800",
            indicator_type=indicatorTypeDataObject,
            name="威胁情报名称",
            dataclass_id="28f61af50fc9452aa0ed5ea25c3cc3d3",
            workspace_id="909494e3-558e-46b6-a9eb-07a8e18ca620",
            project_id="909494e3-558e-46b6-a9eb-07a8e18ca62f",
            dataclass=dataclassDataObject,
            create_time="2021-01-30T23:00:00Z+0800",
            update_time="2021-01-30T23:00:00Z+0800"
        )
        request.body = IndicatorCreateRequest(
            data_object=dataObjectbody
        )
        response = client.create_indicator(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,威胁情报类型为DATA_SOURCE,触发标志为否。

 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    secmaster "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2/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")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := secmaster.NewSecMasterClient(
        secmaster.SecMasterClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.CreateIndicatorRequest{}
	nameDataclass:= "名称"
	dataclassDataObject := &model.DataClassRefPojo{
		Id: "28f61af50fc9452aa0ed5ea25c3cc3d3",
		Name: &nameDataclass,
	}
	indicatorTypeDataObject := &model.CreateIndicatorDetailIndicatorType{
		IndicatorType: "ipv6",
		Id: "909494e3-558e-xxxxxx-07a8e18ca6xxx",
	}
	environmentDataObject := &model.CreateIndicatorDetailEnvironment{
		VendorType: "MyXXX",
		DomainId: "909494e3-558e-46b6-a9eb-07a8e18ca62f",
		RegionId: "909494e3-558e-46b6-a9eb-07a8e18ca62f",
		ProjectId: "909494e3-558e-46b6-a9eb-07a8e18ca62f",
	}
	dataSourceDataObject := &model.CreateIndicatorDetailDataSource{
		SourceType: int32(3),
		DomainId: "909494e3-558e-46b6-a9eb-07a8e18ca62f",
		ProjectId: "909494e3-558e-46b6-a9eb-07a8e18ca62f",
		RegionId: "909494e3-558e-46b6-a9eb-07a8e18ca62f",
		ProductName: "test",
		ProductFeature: "test",
	}
	confidenceDataObject:= int32(4)
	statusDataObject:= "OPEN"
	labelsDataObject:= "OPEN"
	lastReportTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	dataclassIdDataObject:= "28f61af50fc9452aa0ed5ea25c3cc3d3"
	projectIdDataObject:= "909494e3-558e-46b6-a9eb-07a8e18ca62f"
	createTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	updateTimeDataObject:= "2021-01-30T23:00:00Z+0800"
	dataObjectbody := &model.CreateIndicatorDetail{
		DataSource: dataSourceDataObject,
		Verdict: "BLACK",
		Confidence: &confidenceDataObject,
		Status: &statusDataObject,
		Labels: &labelsDataObject,
		Value: "123",
		GranularMarking: "1",
		Environment: environmentDataObject,
		Defanged: false,
		FirstReportTime: "2021-01-30T23:00:00Z+0800",
		LastReportTime: &lastReportTimeDataObject,
		IndicatorType: indicatorTypeDataObject,
		Name: "威胁情报名称",
		DataclassId: &dataclassIdDataObject,
		WorkspaceId: "909494e3-558e-46b6-a9eb-07a8e18ca620",
		ProjectId: &projectIdDataObject,
		Dataclass: dataclassDataObject,
		CreateTime: &createTimeDataObject,
		UpdateTime: &updateTimeDataObject,
	}
	request.Body = &model.IndicatorCreateRequest{
		DataObject: dataObjectbody,
	}
	response, err := client.CreateIndicator(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

请求成功响应信息

400

请求失败响应信息

错误码

请参见错误码

相关文档