- web js 埋点采集浏览器特征,包括IP,UA,输入框焦点获取,cookie enable,java enable,鼠标位置,屏幕大小,时间,reffer等
- 依赖于微步的IP信誉库,黑IP标记为1,白IP标记为0
- 选取UA,登录页打开方式,输入框焦点获取,cookie enable,java enable,鼠标位置,屏幕大小
- UA:使用2-gram,生成特征向量。
- 其他作为离散值,处理为0,1,2等
- 样本数量总数:65000
- 黑IP样本:49493
- 白IP样本:15507
- 验证方式:10折交叉验证
- 样本分成10份,每次9个子样本用来训练,1个子样本用来验证,重复10次。
- 缺乏前期对数据的统计分析
- 没有对数据进行清洗,比如去重,去除异常值
- 训练模型没有保存
- 特征处理的方式有待改进
- 对各个字段的值进行统计,发现一些字段在正负样本中取值无差别,其他一些字段不同取值的比例在 正负样本中基本相同
- 根据一些字段进行去重
- 数据统计过程中发现一个全0的异常值
- UA:使用n-gram,包括.和/符号
- 离散特征改为one-hot编码
- 连续值进行标准化
- 改变验证方法:验证方法:样本60%为训练样本,40%为测试样本,计算 Recall rate召回率:TP/(TP+FN) Precision rate准确率:TP/(TP+FP) Accuracy rate:整体准确率(TP+TN)/ALL Confusion matrix混淆矩阵 F1-score 准确率和召回率的调和值 AUC :ROC曲线面积,值越大模型性能越好
-
根据AUC值排序 RandomForest > GradientBoosting > KNN > LogisticRegression > DecisionTree > SVM > NaiveBayes
-
根据f1_score排序 GradientBoosting > SVM > LogisticRegression > KNN > RandomForest > DecisionTree > NaiveBayes
- 数据打标完全依赖与微步IP信誉库,打标结果有问题
- 特征选择方式有问题,并且没有对特征进行降维
- 对于识别撞库来看,采集的数据不是很好
- 检测撞库
一、从单个账户维度,基于用户行为进行异常判断。
- 常用浏览页面/路径 VS 撞库后的浏览行为
- 常用登录地点 VS 撞库后的登录地点
- 常用登录设备类型、设备指纹 VS 撞库后的登录设备
- 常用登录时间段 VS 撞库后的登录时间
- 登录之前的访问路径
二、从全局维度,基于速度特征和一些请求特征进行异常判断。 - 单个IP的登录请求次数。
- 单个IP的登录失败次数/失败率。
- 是否有cookie/session
- 单个IP的登录请求中cookie/session是否重复
- 整体登录失败率均值/标准差,