diff --git a/src/main/java/net/geedge/asw/module/attribute/controller/AttributeController.java b/src/main/java/net/geedge/asw/module/attribute/controller/AttributeController.java new file mode 100644 index 0000000..f2872fd --- /dev/null +++ b/src/main/java/net/geedge/asw/module/attribute/controller/AttributeController.java @@ -0,0 +1,26 @@ +package net.geedge.asw.module.attribute.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.geedge.asw.common.util.R; +import net.geedge.asw.module.attribute.service.AttributeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@RestController +@RequestMapping("/api/v1/attribute") +public class AttributeController { + + @Autowired + private AttributeService attributeService; + + @GetMapping + public R list(@RequestParam Map params) { + Page page = attributeService.queryList(params); + return R.ok(page); + } +} diff --git a/src/main/java/net/geedge/asw/module/attribute/dao/AttributeDao.java b/src/main/java/net/geedge/asw/module/attribute/dao/AttributeDao.java new file mode 100644 index 0000000..521ceed --- /dev/null +++ b/src/main/java/net/geedge/asw/module/attribute/dao/AttributeDao.java @@ -0,0 +1,15 @@ +package net.geedge.asw.module.attribute.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.geedge.asw.module.attribute.entity.AttributeEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface AttributeDao extends BaseMapper { + + List queryList(@Param("params") Map params); +} diff --git a/src/main/java/net/geedge/asw/module/attribute/entity/AttributeEntity.java b/src/main/java/net/geedge/asw/module/attribute/entity/AttributeEntity.java new file mode 100644 index 0000000..5f764ac --- /dev/null +++ b/src/main/java/net/geedge/asw/module/attribute/entity/AttributeEntity.java @@ -0,0 +1,43 @@ +package net.geedge.asw.module.attribute.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import net.geedge.asw.module.sys.entity.SysUserEntity; + +@Data +@TableName("attribute_dict") +public class AttributeEntity { + + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + private String name; + + private String type; + + private String protocol; + + private String layer; + + private String stage; + + private String objectType; + + private Long createTimestamp; + + private Long updateTimestamp; + + private String createUserId; + + private String updateUserId; + + @TableField(exist = false) + private SysUserEntity createUser; + + @TableField(exist = false) + private SysUserEntity updateUser; + +} diff --git a/src/main/java/net/geedge/asw/module/attribute/service/AttributeService.java b/src/main/java/net/geedge/asw/module/attribute/service/AttributeService.java new file mode 100644 index 0000000..31e04c7 --- /dev/null +++ b/src/main/java/net/geedge/asw/module/attribute/service/AttributeService.java @@ -0,0 +1,11 @@ +package net.geedge.asw.module.attribute.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import net.geedge.asw.module.attribute.entity.AttributeEntity; + +import java.util.Map; + +public interface AttributeService extends IService { + Page queryList(Map params); +} diff --git a/src/main/java/net/geedge/asw/module/attribute/service/impl/AttributeServiceImpl.java b/src/main/java/net/geedge/asw/module/attribute/service/impl/AttributeServiceImpl.java new file mode 100644 index 0000000..4367542 --- /dev/null +++ b/src/main/java/net/geedge/asw/module/attribute/service/impl/AttributeServiceImpl.java @@ -0,0 +1,27 @@ +package net.geedge.asw.module.attribute.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import net.geedge.asw.common.util.T; +import net.geedge.asw.module.attribute.dao.AttributeDao; +import net.geedge.asw.module.attribute.entity.AttributeEntity; +import net.geedge.asw.module.attribute.service.AttributeService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class AttributeServiceImpl extends ServiceImpl implements AttributeService { + + + @Override + public Page queryList(Map params) { + + Page page = T.PageUtil.getPage(params); + List attributeList = this.getBaseMapper().queryList(params); + page.setRecords(attributeList); + return page; + } +} diff --git a/src/main/resources/db/mapper/attribute/AttributeMapper.xml b/src/main/resources/db/mapper/attribute/AttributeMapper.xml new file mode 100644 index 0000000..060d1f3 --- /dev/null +++ b/src/main/resources/db/mapper/attribute/AttributeMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.0.02__init_attribute_dict.sql b/src/main/resources/db/migration/V1.0.02__init_attribute_dict.sql new file mode 100644 index 0000000..0bf902b --- /dev/null +++ b/src/main/resources/db/migration/V1.0.02__init_attribute_dict.sql @@ -0,0 +1,70 @@ + +/** + * 1.新增 attribute_dict 表 + * 2.内置数据 + */ +DROP TABLE IF EXISTS `attribute_dict`; +CREATE TABLE `attribute_dict` ( + `id` VARCHAR(64) NOT NULL COMMENT '主键', + `name` VARCHAR(256) NOT NULL COMMENT '名称', + `type` VARCHAR(64) NOT NULL COMMENT '类型', + `protocol` VARCHAR(64) COMMENT '协议', + `layer` VARCHAR(64) NOT NULL COMMENT '层', + `stage` VARCHAR(64) NOT NULL COMMENT '阶段', + `object_type` VARCHAR(64) NOT NULL COMMENT 'Object类型', + `create_timestamp` BIGINT(20) NOT NULL COMMENT '创建时间戳', + `update_timestamp` BIGINT(20) NOT NULL COMMENT '更新时间戳', + `create_user_id` VARCHAR(64) NOT NULL COMMENT '创建人', + `update_user_id` VARCHAR(64) NOT NULL COMMENT '更新人', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_name` (`name`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('1', 'tcp.payload.c2s_first_data', 'string', 'tcp', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('10', 'common.server_fqdn', 'string', 'common', 'session_layer', '1', 'fqdn', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('11', 'ssl.handshake.certificate.algorithm_identifier', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('12', 'ssl.handshake.certificate.serial_number', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('13', 'ssl.handshake.certificate.issuer_common_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('14', 'ssl.handshake.certificate.issuer_organization_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('15', 'ssl.handshake.certificate.issuer_country_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('16', 'ssl.handshake.certificate.subject_common_name', 'string', 'ssl', 'session_layer', '2', 'fqdn', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('17', 'ssl.handshake.certificate.subject_organization_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('18', 'ssl.handshake.certificate.subject_country_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('19', 'ssl.handshake.certificate.not_valid_before', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('2', 'tcp.payload.s2c_first_data', 'string', 'tcp', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('20', 'ssl.handshake.certificate.not_valid_after', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('21', 'ssl.handshake.certificate.algorithm_id', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('22', 'ssl.analysis.use_session_resumption', 'numeric', 'ssl', 'session_layer', '3', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('23', 'ssl.analysis.use_selfsigned_certificate', 'numeric', 'ssl', 'session_layer', '3', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('24', 'ssl.analysis.incomplete_certificate_chain', 'numeric', 'ssl', 'session_layer', '3', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('25', 'ssl.analysis.ja3', 'string', 'ssl', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('26', 'ssl.analysis.sni_absent', 'bool', 'ssl', 'session_layer', '1', 'boolean', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('28', 'http.request.full_uri', 'string', 'http', 'session_layer', '1', 'url', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('3', 'tcp.payload.c2s_first_data_len', 'numeric', 'tcp', 'session_layer', '1', 'interval', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('37', 'common.app_id', 'numeric', 'common', 'session_layer', '2', 'application', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('38', 'udp.payload.c2s_first_data', 'string', 'udp', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('39', 'udp.payload.s2c_first_data', 'string', 'udp', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('4', 'tcp.payload.s2c_first_data_len', 'numeric', 'tcp', 'session_layer', '2', 'interval', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('40', 'udp.payload.c2s_first_data_len', 'numeric', 'udp', 'session_layer', '0', 'interval', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('41', 'udp.payload.s2c_first_data_len', 'numeric', 'udp', 'session_layer', '1', 'interval', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('42', 'general.c2s_session_size', 'string', 'common', 'session_layer', '2', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('43', 'general.s2c_session_size', 'string', 'common', 'session_layer', '2', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('44', 'ip.src', 'ip', 'ip', 'packet_layer', '0', 'ip', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('45', 'ip.dst', 'ip', 'ip', 'packet_layer', '0', 'ip', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('46', 'srcport', 'numeric', 'common', 'packet_layer', '0', 'port', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('47', 'dstport', 'numeric', 'common', 'packet_layer', '0', 'port', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('5', 'tcp.analysis.create_with_syn', 'bool', 'tcp', 'session_layer', '1', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('55', 'http.request.header', 'string', 'http', 'session_layer', '1', 'http_signature', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('56', 'http.response.header', 'string', 'http', 'session_layer', '3', 'http_signature', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('57', 'udp.payload', 'string', 'udp', 'packet_layer', '0', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('6', 'ip.payload', 'string', 'ip', 'packet_layer', '0', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('62', 'dns.qry.name', 'string', 'dns', 'session_layer', '1', 'fqdn', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('63', 'ssl.analysis.ech_enabled', 'bool', 'ssl', 'session_layer', '1', 'boolean', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('64', 'ssl.analysis.esni_enabled', 'bool', 'ssl', 'session_layer', '1', 'boolean', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('66', 'ip.proto', 'numeric', 'ip', 'packet_layer', '1', 'ip_protocol', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('7', 'tcp.payload', 'string', 'tcp', 'packet_layer', '0', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('91', 'heartbeat_flag_test', 'bool', 'ip', 'packet_layer', '0', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('92', 'heartbeat_flag', 'bool', 'ip', 'packet_layer', '0', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('94', '敏感数据', 'bool', 'http', 'session_layer', '1', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('95', 'get_qq_number_by_lua', 'string', 'ip', 'packet_layer', '0', '', 1724379527000, 1724379527000, 'admin', 'admin'); +INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('96', 'ssl.analysis.ja3s', 'string', 'ssl', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');