OSSIM项目研究记录(二)

本文详细分析了os-sim/mysql中db模块的结构和功能,主要包括创建数据库表的sql文件和数据仓库的构建。关键表如`current_status`、`logged_actions`和`monitor_data`被详细阐述,涉及组件状态、用户操作记录和监控数据的存储。大部分文件关注于表的创建和数据插入,揭示了系统数据组织和管理的复杂性。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

一、模块简述:

由db和debian两个文件夹构成,其中db是存放了若干sql文件,即创建数据库的代码。
而debian存储的是服务器的指令文件。
下面贴出ossim-mysql/db文件夹的结构
提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)


二、代码分析:

2.1、结构性功能分析

文件名主要功能
00-create_alienvault_api_tbls_mysql.sql程序接口
00-create_alienvault_asec_tbls_mysql.sql创建处理事件的相关表
00-create_alienvault_siem_tbls_mysql.sql安全信息和事件管理表
00-create_alienvault_tbls_mysql.sqlacl相关(猜测)
00-create_datawarehouse_tbls_mysql.sql数据仓库
00-create_ossim_acl_tbls_mysql.sql又一个数据仓库
01-create_alienvault_api_data.sql
01-create_alienvault_asec_data.sqlasec的数据仓库
01-create_alienvault_data_config.sql配置信息和数据仓库
01-create_alienvault_data_data.sql同数据仓库
01-create_alienvault_siem_data.sql数据仓库
02-create_alienvault_data_data.sql数据仓库
03-create_alienvault_data_croscor_snort_nessus.sql数据仓库
05-create_post_correlation.sql创建和删除一些过程
06-create_alienvault_data_kb_taxonomy.sql数据仓库

其中前几个是对一些表的创建和约束,后面大部分是一些replace和Insert语句,存储了大量的数据,可以称之为“数据仓库”,其中05有一些过程和事件的调用,这里的内容看不太懂。

2.2 、源码解析

1.表“现状”;
属性有:id,消息id,组件id,组件类型,创建时间,终止时间等。
主键是id用于标志现状,同时创建了多个索引目录。

-- -----------------------------------------------------
-- Table `current_status`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `current_status` (
  `id` BINARY(16) NOT NULL,
  `message_id` BINARY(16) NOT NULL,
  `component_id` BINARY(16) NULL,
  `component_type` ENUM('net', 'host', 'user', 'sensor', 'server','system','external') NOT NULL,
  `creation_time` TIMESTAMP NOT NULL COMMENT '(CURRENT_TIMESTAMP | on create CURRENT_TIMESTAMP )\n',
  `viewed` TINYINT(1) NULL DEFAULT 0,
  `suppressed` TINYINT(1) NULL DEFAULT 0 COMMENT 'True or False. Indicates that this kind of message over this component id is disabled.',
  `suppressed_time` TIMESTAMP NULL,
  `additional_info` TEXT NULL,
  PRIMARY KEY (`id`),
  INDEX `message` (`message_id` ASC),
  INDEX `component` (`component_id` ASC),
  INDEX `viewed` (`viewed` ASC))
ENGINE = InnoDB;

2.表“记录的行动”
属性有:id(主键),登陆用户,日期,行动描述

-- -----------------------------------------------------
-- Table `logged_actions`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logged_actions` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `logged_user` VARCHAR(45) NULL,
  `datetime` TIMESTAMP NULL,
  `action_description` VARCHAR(255) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

3.表“监测数据”
属性有:组件id,时间戳,监视器id,数据,组件类型

-- -----------------------------------------------------
-- Table `monitor_data`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `monitor_data` (
  `component_id` BINARY(16) NOT NULL,
  `timestamp` TIMESTAMP NOT NULL,
  `monitor_id` INT NOT NULL,
  `data` TEXT NULL,
  `component_type` VARCHAR(55) NULL COMMENT 'Component type. (net, host, …)',
  PRIMARY KEY (`component_id`, `timestamp`, `monitor_id`))
ENGINE = InnoDB;

总结:

大部分sql文件都是以创建表为主,有部分sql文件是对表的数据进行插入和约束。内容复杂繁多,需要以一种统筹观点去看待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值