基于关联分析的主机日志审计研究,基于Linux环境的主机日志自动审计技术

#当前主机日志分析现状

一般主机系统有三种日志:系统日志、安全日志和应用程序日志。系统日志记录了操作系统组件产生的事件,包括系统组件操作、应用程序崩溃及数据丢失、驱动程序等;安全日志记录了各种类型的账户登录信息、服务信息、访问信息、策略变更信息、特权使用信息及进程追踪信息等;应用程序日志则记录了与应用程序运行相关的事件。

#关联分析技术
数据挖掘能够在海量数据中发现有价值的信息,从而为分析、判断、决策提供支持。关联分析是众多数据挖掘技术的
其中一种,运用该技术能够找到一些对主机行为性质进行正确判断的规则或模型。
常 用 的 关 联 分 析 算 法 有 Apriori、FP-Tree、Eclat、灰度关联法等。

##Apriori算法详解与实现
https://blog.csdn.net/qq_44753451/article/details/117814258

代码实现
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class Apriori {
// 数据集
private static ArrayList<ArrayList> DATASET = new ArrayList<>();
// 待选集区域
private static HashMap<ArrayList, Double> PRE = new HashMap<>();
// 频繁集区域
private static HashMap<ArrayList, Double> LATER = new HashMap<>();
// 缓存项集支持度
private static HashMap<ArrayList, Double> CACHE = new HashMap<>();
// 提前算好加数单元
private static double ADD_UNIT;
// 最小支持度
private static double MIN_SUPPORT = 0.5;
// 最小置信度
private static double MIN_CONFIDENT = 0.8;

/**
 * 加载数据
 *
 * @param filePath 文件路径
 */
private static void loadData(String filePath) {
    Scanner scanner;
    try {
        scanner = new Scanner(new File(filePath));
        while (scanner.hasNext()) {
            DATASET.add(new ArrayList<>(Arrays.asList(scanner.nextLine().split(" "))));
        }
        scanner.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    // 单元加数
    ADD_UNIT = 1.0 / DATASET.size();
}

/**
 * 枝剪,过滤掉小于最小支持度的项集
 */
private static void pruning() {
    LATER.clear();
    // 先全加过来等待删除不满足最小支持度的项集
    LATER.putAll(PRE);
    // 删除少于最小支持度的元素
    ArrayList<ArrayList<String>> deletedKeys = new ArrayList<>();
    for (ArrayList<String> key : LATER.keySet()) {
        if (LATER.get(key) < MIN_SUPPORT) {
            deletedKeys.add(key);
        }
    }
    for (ArrayList<String> key : deletedKeys) {
        LATER.remove(key);
    }
}

/**
 * 加载数据并求得一项集
 */
private static void init() {
    loadData("E:\\data_mining_lab\\src\\data\\test.t
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值