Python-日志检测异常行为的详细技术方案
以下是根据行为日志检测异常行为的详细技术方案,涵盖数据收集、特征工程、模型选择、部署与优化的全流程:
1. 数据收集与预处理
1.1 数据来源
行为日志通常包括以下类型:
- 用户行为日志:点击、登录、交易、页面停留时间等。
- 系统日志:服务器访问、API调用、资源使用率等。
- 设备日志:地理位置、设备指纹(如IP、浏览器、操作系统)。
1.2 数据清洗
- 去除噪声:过滤无效或重复数据(如爬虫请求、测试数据)。
- 时间对齐:统一时间戳格式,确保时间序列的连续性。
- 缺失值处理:填充或删除缺失数据(如用均值填充缺失的访问频率)。
1.3 特征工程
将原始日志转换为模型可识别的特征,关键步骤如下:
特征类型 | 示例特征 | 说明 |
---|---|---|
基础特征 | 用户ID、设备ID、IP地址、操作类型(登录/支付)、时间戳、地理位置 | 标识用户和行为的基本信息 |
统计特征 | 单日登录次数、平均会话时长、请求频率、操作间隔时间 | 描述行为模式的统计指标 |
时序特征 | 滑动窗口内的操作次数(如1小时内的登录尝试)、时间序列波动性(如访问间隔标准差) | 捕捉时间依赖性异常(如高频请求) |
地理特征 | IP归属地、经纬度、IP信誉评分(是否为已知恶意IP) | 检测地理位置异常(如异地登录) |
设备特征 | 设备指纹变化频率(如更换浏览器/操作系统)、设备类型分布 | 检测设备信息冲突(如同一账号多设备登录) |
行为模式特征 | 操作序列(如“登录→查看订单→立即退款”)、操作路径异常(如非常规页面跳转) | 捕捉非正常行为流程 |
2. 异常检测技术选型
根据数据类型和场景选择合适的算法:
2.1 基于统计的方法
- 适用场景:数据分布简单(如正态分布)。
- 算法示例:
- 3σ原则:标记偏离均值3倍标准差的样本(如单日登录次数异常高)。
- 箱线图法:通过四分位距(IQR)识别离群值(如异常交易金额)。
2.2 无监督学习
- 适用场景:无标签数据,需发现未知异常模式。
- 算法示例:
- 孤立森林(Isolation Forest):通过分割数据树快速检测异常(适合高维数据)。
from sklearn.ensemble import IsolationForest
model = IsolationForest(n_estimators=100, contamination=0.01)
model.fit(features)
- 高斯混合模型(GMM):将数据拟合为多个正态分布,低概率区域为异常。
- 局部异常因子(LOF):基于密度的异常检测(适合局部异常)。
2.3 监督学习
- 适用场景:有标注的异常样本(如已知欺诈交易)。
- 算法示例:
- 随机森林/XGBoost:通过特征重要性区分正常与异常。
- 深度学习(如LSTM):处理时序数据(如用户行为序列)。
2.4 深度学习
- 适用场景:复杂模式(如欺诈交易的隐蔽行为)。
- 模型示例:
- 自动编码器(Autoencoder):通过重构误差检测异常(如交易金额异常)。
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, Dense
input_layer = Input(shape=(input_dim,))
encoded = Dense(32, activation='relu')(input_layer)
decoded = Dense(input_dim, activation='sigmoid')(encoded)
autoencoder = Model(input_layer, decoded)
autoencoder.compile(optimizer='adam', loss='mse')
- 图神经网络(GNN):分析用户与设备/IP的关联网络(如异常的社交网络行为)。
3. 实现流程示例:检测用户登录异常
3.1 场景描述
检测用户登录行为中的异常(如异地登录、高频尝试失败、非常规时间段登录)。
3.2 步骤
- 数据收集:
- 收集用户登录日志,包括时间、IP、设备指纹、是否成功、地理位置等。
- 特征提取:
- 基础特征:用户ID、IP、登录时间。
- 统计特征:过去24小时登录次数、失败率。
- 地理特征:IP归属地与用户常用地的差异。
- 模型训练:
- 使用 Isolation Forest 检测异常登录模式:
import pandas as pd
from sklearn.ensemble import IsolationForest
# 加载数据
data = pd.read_csv("login_logs.csv")
features = data[["login_count_24h", "fail_rate", "geo_distance"]]
# 训练模型
model = IsolationForest(n_estimators=100, contamination=0.01)
model.fit(features)
# 预测
data["anomaly_score"] = model.decision_function(features)
data["is_anomaly"] = model.predict(features) # -1为异常
- 阈值设定:
- 根据业务需求调整
contamination
参数(异常比例)。
- 实时检测:
- 部署模型到生产环境,对新登录请求实时打分并触发告警。
4. 部署与优化
4.1 实时检测系统架构
graph TDA[日志收集] --> B[流处理框架(Kafka/Flink)]B --> C[特征计算]C --> D[实时模型推理]D --> E[告警系统]E --> F[人工审核]
4.2 性能优化
- 数据降维:使用PCA或t-SNE降低特征维度,加速模型推理。
- 在线学习:定期用新数据更新模型(如每周重新训练)。
- 漂移检测:监控数据分布变化,触发模型重新训练(如使用
adtk
库)。
4.3 告警策略
- 分层告警:
- 高危异常:立即阻断(如IP高频失败登录)。
- 中危异常:触发二次验证(如短信/邮件确认)。
- 低危异常:记录日志供后续分析。
5. 工具与库推荐
工具/库 | 用途 |
---|---|
ELK Stack | 日志收集与可视化(Elasticsearch + Logstash + Kibana) |
Apache Kafka/Flink | 实时流处理 |
scikit-learn | 经典机器学习模型(Isolation Forest、LOF) |
TensorFlow/PyTorch | 深度学习模型开发 |
PyOD | 专门的异常检测库(集成多种算法) |
ADTK | 时序数据异常检测(时间序列分析) |
6. 注意事项
- 数据隐私:匿名化处理敏感信息(如用户ID哈希化)。
- 误报率控制:通过阈值调整和人工审核降低误报。
- 对抗样本防御:攻击者可能伪造正常行为,需结合多维度特征。
- 模型可解释性:使用SHAP或LIME解释模型决策,便于业务团队理解。
7. 示例代码:基于PyOD的快速实现
from pyod.models.iforest import IForest
from pyod.utils.data import generate_data# 生成模拟数据
X_train, y_train = generate_data(n_samples=1000, n_features=2, contamination=0.1)# 训练模型
clf = IForest(contamination=0.1)
clf.fit(X_train)# 预测
y_pred = clf.predict(X_train) # 0为正常,1为异常
scores = clf.decision_function(X_train) # 异常分数# 可视化
import matplotlib.pyplot as plt
plt.scatter(X_train[:,0], X_train[:,1], c=y_pred)
plt.title("Isolation Forest Anomaly Detection")
plt.show()
总结
通过结合统计方法、机器学习和深度学习,可有效检测行为日志中的异常。关键步骤包括:
- 特征工程:提取与异常相关的高价值特征。
- 算法选择:根据数据特性选择模型(如实时性要求选择流处理模型)。
- 持续优化:监控模型性能,应对数据漂移和攻击手段的演变。
根据具体场景调整参数和特征组合,可显著提升异常检测的准确性和实用性。
相关文章:
Python-日志检测异常行为的详细技术方案
以下是根据行为日志检测异常行为的详细技术方案,涵盖数据收集、特征工程、模型选择、部署与优化的全流程: 1. 数据收集与预处理 1.1 数据来源 行为日志通常包括以下类型: 用户行为日志:点击、登录、交易、页面停留时间等。系统…...
DeepSeek-Prover-V2-671B最新体验地址:Prover版仅适合解决专业数学证明问题
DeepSeek-Prover-V2-671B最新体验地址:Prover版仅适合解决专业数学证明问题 DeepSeek 团队于 2025 年 4 月 30 日正式在Hugging Face开源了其重量级新作 —— DeepSeek-Prover-V2-671B,这是一款专为解决数学定理证明和形式化推理任务而设计的超大规模语…...
Java写数据结构:队列
1.概念: 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列…...
LeetCode 2905 找出满足差值条件的下标II 题解
示例 nums [8, 3, 12, 5, 1, 10, 7, 13] indexDifference 3 valueDifference 6答案 [maxIdx, j] [0, 4]我的思路是直接枚举写,但这题是中等题,一定不会让你好过的,所以也是喜提了超时,先说一下我的做题思路吧。 其实很简单就…...
【思考】欧洲大停电分析
当地时间4月28日中午,西班牙和葡萄牙发生了大规模停电事故,两国多个地区的电力供应中断,波及超过5000万伊比利亚半岛民众,交通、通信、医疗等关键领域受到影响,马德里网球公开赛因停电被迫暂停,周边法国、意…...
[论文精读]Agent综述—— A survey on large language model based autonomous agents
A survey on large language model based autonomous agents ⏲️年份: 2024 👀期刊: Frontiers of Computer Science 🌱影响因子:3.4 📚数字对象唯一标识符DOl: 10.1007/s11704-024-40231-1 🤵作者: Wang Lei,Ma Chen,Feng X…...
金融风控的“天眼”:遥感技术的创新应用
在金融市场的复杂博弈中,风险管控一直是金融机构的核心竞争力。然而,传统的风控手段在应对现代金融市场的快速变化时,往往显得捉襟见肘。 如今,遥感技术的创新应用为金融风控带来了全新的视角和手段。星图云开放平台的遥感金融立体…...
SpringMVC知识点总结(速查速记)
文章目录 前言1、MVC是什么2、SpringMVC是什么3、SpringMVC请求流程 && 环境搭建3.1 SpringMVC请求流程3.2 搭建环境3.2.1开发环境3.2.2 环境配置步骤 4. url地址映射 && 参数绑定4.1 url地址映射之RequestMapping①、映射单个url②、映射多个url③、映射url到…...
配置 Odoo 的 PostgreSQL 数据库以允许远程访问的步骤
1. 修改 PostgreSQL 配置文件 a. 修改 postgresql.conf 找到 PostgreSQL 的主配置文件 postgresql.conf,通常位于 /etc/postgresql/<版本号>/main/ 目录下。修改 listen_addresses 项的值为 *,表示允许来自任何 IP 地址的连接: sudo…...
涨薪技术|0到1学会性能测试第42课-apache监控与调优
前面的推文我们学习了操作系统性能监控与调优知识,如CPU、内存、磁盘、网络监控等,今天开始分享中间件apache监控与调优知识,后续文章都会系统分享干货,带大家从0到1学会性能测试! Apache是世界上使用最多的web服务器软件一种,它可以运行在几乎所有广泛使用的计算机平台上…...
【学习笔记】Shell编程--Bash变量
变量类型说明环境变量 与Shell的执行环境相关的一些变量。如PATH,HOME等,用户可重新定义。 一、环境变量的创建:export, export ABCD2 二、环境变量的查看 使用echo命令查看单个环境变量。如: echo $PATH 使用printenv…...
SpringBoot+Redis全局唯一ID生成器
📦 优雅版 Redis ID 生成器工具类 支持: 项目启动时自动初始化起始值获取自增 ID 方法yml 配置化起始值可灵活扩展多业务线 ID 📌 application.yml 配置 id-generator:member-start-value: 1000000000📌 配置类:IdG…...
micro-app前端微服务原理解析
一、核心设计思想 基于 WebComponents 的组件化渲染 micro-app 借鉴 WebComponents 的 CustomElement 和 ShadowDom 特性,将子应用封装为类似 WebComponent 的自定义标签(如 <micro-app>)。通过 ShadowDom 的天然隔离机制,实…...
大连理工大学选修课——机器学习笔记(7):集成学习及随机森林
集成学习及随机森林 集成学习概述 泛化能力的局限 每种学习模型的能力都有其上限 限制于特定结构受限于训练样本的质量和规模 如何再提高泛化能力? 研究新结构扩大训练规模 提升模型的泛化能力 创造性思路 组合多个学习模型 集成学习 集成学习不是特定的…...
[特殊字符] Spring Cloud 微服务配置统一管理:基于 Nacos 的最佳实践详解
在微服务架构中,配置文件众多、管理复杂是常见问题。本文将手把手演示如何将配置集中托管到 Nacos,并在 Spring Cloud Alibaba 项目中实现统一配置管理 自动刷新机制。 一、为什么要使用 Nacos 统一配置? 传统方式下,每个服务都…...
【mysql】执行过程,背诵版
sql执行再mysql的执行过程 1. 建立连接 sql通过tcp/ip发送到服务器服务器检查用户名,密码,权限创建线程处理连接 如果是sql8.0之前,select会先从缓存中查找,命中则返回,由于表结构变更会导致缓存失效,已废…...
[Survey] Image Segmentation in Foundation Model Era: A Survey
BaseInfo TitleImage Segmentation in Foundation Model Era: A SurveyAdresshttps://arxiv.org/pdf/2408.12957Journal/Time-Author北理工、上交、浙大 CCAI 、瑞士苏黎世联邦理工学院、德国慕尼黑工业大学Codehttps://github.com/stanley-313/ImageSegFM-Survey 1. Introdu…...
关于杰理ac791切换版本, git clone下来仍然是最新版本问题
在git clone 之后,在本地切换分支 常规流程:git clone →git branch →git branch -a → git checkout 分支名...
生成项目.gitignore文件的多种高效方式
在使用 Git 进行版本控制时,.gitignore 文件是不可或缺的配置文件。它可以帮助我们指定哪些文件或目录不需要被 Git 跟踪,从而避免将不必要的文件(如临时文件、编译生成的文件等)提交到仓库中。这篇文章将介绍几种生成 .gitignore…...
2025年“深圳杯”数学建模挑战赛D题-法医物证多人身份鉴定问题
法医物证多人身份鉴定问题 小驴数模 犯罪现场法医物证鉴定是关系到国家安全、公共安全、人民生命财产安全和社会稳定的重大问题。目前法医物证鉴定依赖DNA分析技术不断提升。DNA检验的核心是STR(Short Tandem Repeat,短串联重复序列)分析技术…...
嵌入式开发高频面试题全解析:从基础编程到内存操作核心知识点实战
一、数组操作:3x3 数组的对角和、偶数和、奇数和 题目 求 3x3 数组的对角元素和、偶数元素和、奇数元素和。 知识点 数组遍历:通过双重循环访问数组的每个元素,外层循环控制行,内层循环控制列。对角元素判断: 主对…...
JAVA SE 反射,枚举与lambda表达式
文章目录 📕1. 反射✏️1.1 反射相关的类✏️1.2 Class类中的相关方法✏️1.3 Field类中的相关方法✏️1.4 Method类中的相关方法✏️1.5 Constructor类中的相关方法✏️1.6 获取Class对象的三种方式✏️1.7 反射的使用 📕2. 枚举2.1 枚举的定义✏️2.2 …...
每日算法-250430
每日算法 - 2025年4月30日 记录下今天解决的两道题目。 870. 优势洗牌 (Advantage Shuffle) 题目描述 解题思路与方法 核心思想:贪心策略 (田忌赛马) 这道题的目标是对于 nums1 中的每个元素,找到 nums2 中一个比它小的元素进行配对(如果…...
MacOS 安装 cocoapods
MacOS 安装 cocoapods 下面使用 HomeBrew 安装 cocoapods 一、检测 HomeBrew 是否安装 打开终端执行命令 brew -v #如果安装,输出如 Homebrew 4.5.0如果未安装 Mac HomeBrew安装 二、检测 ruby 是否安装 系统一般自带了 ruby 但是这个升级有些麻烦,我…...
MATLAB绘制饼图(二维/三维)
在数据分析与展示领域,饼图是一种直观且高效的可视化工具,能够在瞬间传递各部分与整体的比例关系。今天,我将分享一段 MATLAB 绘制二维及三维饼图的代码,助你轻松将数据以饼图形式呈现于众人眼前。 无论是二维饼图的简洁明了&…...
python将字符串转成二进制数组
python将字符串转成二进制数组 功能概述: save_binary_to_json() 函数:将字符串转换为二进制数据(字节的整数表示),并保存到JSON文件中。 load_binary_from_json() 函数:从JSON文件中读取二进制数据并还原…...
防止HTTPS页面通过<iframe>标签嵌入HTTP内容
防止HTTPS页面通过<iframe>标签嵌入HTTP内容 出于安全考虑,现代浏览器实施了严格的规则来防止HTTPS页面通过<iframe>标签嵌入HTTP内容。这种行为主要是为了防止所谓的“混合内容”问题,即在一个安全(加密)的页面中…...
windows 使用websocket++ (C++环境)
一、简介 websocket官方网址:http://websocket.org/ websocketpp官方网址:https://www.zaphoyd.com/websocketpp websocketpp使用手册:https://www.zaphoyd.com/websocketpp/manual/ websocketpp 是 C 的 WebSocket 客户端/服务器库. 它是…...
无水印短视频素材下载网站有哪些?十个高清无水印视频素材网站分享
你知道怎么下载无水印视频素材吗?今天小编就给大家推荐十个高清无水印视频素材下载的网站,如果你也是苦于下载高清无水印的短视频素材,赶紧来看看吧~ 1. 稻虎网 首推的是稻虎网。这个网站简直就是短视频创作者的宝库。无论你需要…...
【dify—5】Dify关联Ollama
目录 一、修改.env文件 二、启动dify 三、访问dify 四、设置关联 五、添加模型插件 5.1 添加模型 5.2 配置信息编辑 第一部分 安装difydocker教程:【difydocker安装教程】-CSDN博客 第二部分 dock重装教程: 【dify—2】docker重装-CSDN博客 第三…...
PostgreSQL可串行化快照隔离和冻结处理
1.可串行化快照隔离 可串行化快照隔离SSI已经嵌入到快照隔离SI中,以实现真正的可串行化隔离等级。 SSI实现基本策略 使用SIREDA锁记录事务访问的所有对象(元组,页面,关系)。 当写入任何堆元组/索引元组时ÿ…...
Java 多线程进阶:什么是线程安全?
在多线程编程中,“线程安全”是一个非常重要但又常被误解的概念。尤其对于刚接触多线程的人来说,不理解线程安全的本质,容易写出“偶尔出错”的代码——这类 bug 往往隐蔽且难以复现。 本文将用尽可能通俗的语言,从三个角度解释线…...
Java导出带图片的Excel
使用easypoi导出带图片的Excel, 引入依赖 依赖中着重要剔除可能会造成冲突的依赖,不剔除的话可能会报错 Exception in thread “main” java.lang.NoSuchFieldError: Class org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook does not …...
Keysight万用表使用指南及基于Python采集数据生成Excel文件
文章目录 说明使用的库openpyxlpyvisa 代码说明效果展示参考代码 说明 本文介绍了 Keysight 34465A 的基本使用和 SCPI 指令设置,演示了使用 Python 的 PyVISA 库控制两台 34465A 同时采集数据的完整流程,包括设置采样参数、触发测量、读取数据、使用 O…...
HarmonyOS Next-DevEco Studio(5.0.2)无网络环境配置(详细教程)
开发者如果电脑处于完全无网环境,可以参考下面文档进行相关配置 DevEco Studio(5.0.2)开发环境一览: 工具版本DevEco Studio5.0.2openHarmonySDK14ohpm5.0.11node.js18.20.1hypium1.0.21 一、下载DevEco Studio(5.0.2 Release)…...
数字中国的建设之路:超聚变以“智算数能”四大密钥,共建智能体时代
文 | 智能相对论 作者 | 陈泊丞 即便是数字中国建设这样的宏大叙事,在长期的行业实践与业务聚焦之下,未来的发展路径也将会越来越清晰。日前,第八届数字中国建设峰会在福建拉开序幕,各大论坛、企业、机构、组织等纷纷围绕数字中…...
PageOffice在线打开word文件,并实现切换文件
本示例关键代码的编写位置,请参考“PageOffice 开发者中心-快速起步–开始 - 快速上手”里您所使用的开发语言框架的最简集成代码 注意 本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径ÿ…...
Ubuntu 24.04 终端美化
参考文章:Ubuntu终端美化(tabbyoh-my-zsh)-Ubuntu系列03 有些步骤和 Ubuntu 24.04 不太适配,而且逻辑不太适合小白,故写此文。 1. 安装 Tabby 参考文章的 tabby 版本过老,如果在 Ubuntu 24.04 装会报一些依…...
python合并word中的run
在处理Word文档时,使用python-docx库可以读取文档中的段落,并将每个段落中的多个run合并为一个run。run对象用于表示段落中具有相同格式的文本部分。将多个run合并为一个run可以帮助简化文档结构,尤其是在格式一致的情况下。 以下是一个示例…...
微前端框架选型指南
微前端框架选型指南 一、写在前面 微前端架构为大型前端系统提供了分而治之的能力,不同团队可以独立开发、部署和维护各自的模块。然而,当前市面上存在多种微前端框架(如 Qiankun、Wujie、micro-app、Hel、Emp 等),选…...
Tailwind CSS实战技巧:从核心类到高效开发
使用 Kooboo平台 训练实战技巧,无需配置安装,直接引入CDN就可以在线练习了!具体操作流程:进入Kooboo后,选择创建空白站点 -> 站点开发 -> 控制面板 -> 页面 ->新建普通页面 -> 编写代码 一、核心布局类…...
C# 事件与委托
一、委托基础 1. 委托定义 委托是一种类型安全的函数指针,它允许将方法作为参数传递给其他方法。 // 声明一个委托类型 public delegate void MyDelegate(string message);// 使用委托 public class Program {public static void Main(){// 创建委托实例并指向方…...
django_rq
使用 Loguru 记录 Django-RQ 任务日志 要在 Django-RQ 处理的任务中使用 Loguru 记录日志,你需要做的就是按照标准的 Loguru 使用方法配置和使用日志记录器。下面是一个简单的示例,展示如何在 Django-RQ 的任务中集成 Loguru: 安装必要的包…...
Java List分页工具
PageUtil.java import com.google.common.collect.Lists; import com.jd.platform.hotkey.dashboard.common.domain.Page; import org.springframework.util.CollectionUtils;import java.util.ArrayList; import java.util.List;public class PageUtil {/*** 通用分页工具类*…...
【UE5】“对不起,您的客户端未能传递登录所需的参数”解决办法
想要进入Epic账户,正常登录后就会弹出这个: 官方提供了一个解决办法: 如果以上办法行不通,关闭单点登录: 成功解决...
Web开发-JavaEE应用SpringBoot栈模版注入ThymeleafFreemarkerVelocity
知识点: 1、安全开发-JavaEE-开发框架-SpringBoot&路由&传参 2、安全开发-JavaEE-模版引擎-Thymeleaf&Freemarker&Velocity 一、演示案例-WEB开发-JavaEE-开发框架-SpringBoot&路由&传参 类似于php语言中的thinkphp,不过要更加…...
出现Invalid bound statement (not found)问题的原因可能有哪些
1.全局配置文件没配好? 检查全局配置文件application.properties或application.yml是否配置扫描mapper包的文件路径 #mybatis配置mapper文件路径 #mybatis.mapper-locationsclasspath:/mapper/*.xml #mybatis-plus配置mapper文件路径 mybatis-plus.mapper-locatio…...
多类型文件集中查看系统
软件介绍 Universal Viewer 是一款具备多格式兼容能力的文件查看工具,旨在为用户提供统一化的文档处理方案。 核心功能优势 该工具采用全格式兼容架构,支持包括图片、音视频及办公文档在内的多种通用文件类型,实现单一软件完成多格式处…...
WebSocket与Socket、TCP、HTTP的关系及区别
1.什么是WebSocket及原理 WebSocket是HTML5中新协议、新API。 WebSocket从满足基于Web的日益增长的实时通信需求应运而生,解决了客户端发起多个Http请求到服务器资源浏览器必须要在经过长时间的轮询问题,实现里多路复用,是全双工、双向、单套…...
【25软考网工】第四章(4)无线局域网WLAN安全技术、无线个人网WPAN
目录 一、无线局域网安全技术 1. WLAN安全机制 编辑 1)SSID访问控制 2)物理地址过滤 3)WEP认证和加密 4)WPA(认证、加密、数据完整性) 5)WPA2 6)无线认证技术 2. WEP和W…...