大家好,今天我研究了大师兄做的库,名字叫做SDlib,是专门针对托攻击检测的,使用的语言是python,有兴趣的同学可以参考。大师兄的库是放在github上的,大家可以多多star送给我敬佩的大师兄。链接如下:

https://github.com/Coder-Yu

下面讲一讲,SDlib中如何注入虚假信息的。

第一步,下载好SDlib的压缩包,解压出来。这一步不浪费时间解释了,百度一下就会。

图一

第二步,仔细阅读了SDlib中的Readme,里面对于这个库有着比较详细的解释,这里呢,如果只是想看如何注入虚假用户的,可以直接跳到如图所示的地方。

图二

从中可知,如果不想了解原理,只需要改变conf文件中的变量就行,这里呢,我肯定是要讲讲更细节的东西,如果只想注入虚假用户的话,那就直接运行generateData.py就行了。

好,接下来,进入正题。了解代码含义。

首先,运行generateData.py观察运行结果。

部分截图为:

图三

我们会发现,系统正常运行了。并且出现了多次注入,即出现了多次loadingtraining data。现在寻找原因。

来到generateData.py,观察到generateData.py中的代码很少

图四

发现调用了HybridAttack,打开HybridAttack.py,发现HybridAttack的基类为Attack。所以转到attack.py文件,哇,很多代码,理解一下:

Init():是为了初始化各个变量的值。

图五

getAverageRating():获取平均评分,即现在真实用户对于该商品的评分的总值除以真实用户的评分数量。

selectTarget():顾名思义就是选择目标用户,怎么选的,看看代码

首先给item的键排个序,然后进入循环,循环的第一步是随机取一个数赋给target变量,如果这个target满足一下四个条件:选到的target对应的itemprofile小于maxcount,大于mincount,循环中之前并没有选到这个target,平均值小于threshold。

(为什么需要满足这四个条件,其实我也不清楚,再想想)

最后打印出来选择出的目标用户。

getFillerItems():获取装填项目

图六

这里也看了我一段时间,解释一下,首先获得装填项目的大小赋给mu,sigma不多说了,

然后利用获取符合正太分布的随机数的方法获取装填项目的数量,然后随机获取装填项目转为list形式。

(这里最难理解的是,为什么要有取正太分布这样的动作,难以理解。)

InsertSpam():    这个就是看我们选择的是什么攻击了,我们拿平均攻击来举例,攻击的其他方式可以看我的托攻击检测学习日记(一),从学习日记(一)我们可以知道平均攻击其实就是往装填项目里面添加平均评分。(这里是看的评分攻击,明天再看关系攻击了。)

图七

(马上产生了一个疑问,startid这个变量有什么用?)

这里可以看出,startUserID就是代表着user评分的数量,然后进入for循环,循环次数为评分数量*攻击范围的大小。

然后就是对装填项目注入平均评分

还有就是对目标用户注入我们想要给的评分

loadTarget():获取数据集

generateLabels():给虚假用户和真实用户打上标记,真实为0,虚假为1

generateProfiles():将虚假的和真实的都写入profiles

图八

看到这里,其实我们还是没有解决一个问题,那就是为什么会出现这么多次选择目标用户?再探究一波?

啊,其实这个时候是我笨了,发现调用的是

于是打开HybridAttack.py

图九

发现他调用了三个攻击。为了检验一下,将HybridAttack改为AverageAttack。运行一下,果然,最后的结果只出现了一次。

图十

总结下来,今天遇到的问题还有三个没解决,一旦解决,我会在评论里面回复。

1.    为什么需要满足这四个条件?(selecttarget)

2.    为什么要使用正态分布取随机数?(getFillerItems)

3.    StartID有什么意义呢?(insertSpam)

除了这三个问题,我们其实还没有去看关于关系注入的攻击和混合注入的攻击,没关系,饭一口一口吃,代码一行一行看,我们之后再看!

托攻击检测SDlib库的学习-----WZW托攻击学习日记(二)相关推荐

  1. 托攻击检测基础知识-----WZW托攻击学习日记(一)

    ( 注:开始写这个学习日记的目的,有三个:一,检测自己学习的质量:二,与人交流,如果学习中出现什么错误欢迎指正:三,提供即将或以后想要学习相关知识的同志一丢丢帮助,也给自己的复习提供资料. 再注:本人 ...

  2. 第四章(1.2)机器学习——在web攻击检测中的应用实践

    一.背景 通俗地讲,任何一个的机器学习问题都可以等价于一个寻找合适变换函数的问题.例如语音识别,就是在求取合适的变换函数,将输入的一维时序语音信号变换到语义空间:而近来引发全民关注的围棋人工智能Alp ...

  3. DDOS攻击检测和防护

    一. 当前DDOS的主要特点 DDOS攻击作为常见的高危害性安全威胁,一直是CIO们的心头大患.和一般的安全风险不同,现阶段的DDOS攻击呈现出了下面3个特点: 攻击门槛低.简单易操作导致攻击很活跃. ...

  4. 基于知识图谱的DNS Query Flood攻击检测研究

    摘要: 摘要: 针对具有成本低廉.破坏性大.防御困难特性的DNS Query Flood攻击,本文构建UDP请求的知识图谱.基于攻击者通过发送大量伪造源IP地址的小UDP包冲击DNS服务器实施攻击的原 ...

  5. 托攻击的多种攻击方式-----WZW托攻击学习日记(五)

    这一次,介绍几种托攻击模型.托攻击是什么? 托攻击就是恶意用户或竞争对手公司可能试图在用户-项目矩阵中插入假的个人资料,以影响预测的评级或降低系统的性能. 接博客<托攻击检测基础知识-----W ...

  6. 2020-用多通道卷积神经网络学习单类特征用于人脸表现攻击检测

    2020年,Anjith George等人,期刊:TIFS,CCFA刊,Learning One Class Representations for Face Presentation Attack ...

  7. [论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  8. 工业物联网中的操作技术攻击检测系统

    工业物联网中的操作技术攻击检测系统 原文 System for Operational Technology Attack Det 申明 版权归原文作者及出版单位所有,如有侵权请联系删除. 摘要 ​ ...

  9. Web攻击检测机器学习深度实践

    一.概述 1.1 传统WAF的痛点 传统的WAF,依赖规则和黑白名单的方式来进行Web攻击检测.该方式过分依赖安全人员的知识广度,针对未知攻击类型无可奈何:另一方面即使是已知的攻击类型,由于正则表达式 ...

最新文章

  1. 【176天】黑马程序员27天视频学习笔记【Day11-上】
  2. 月工资扣除五险一金到手3000左右
  3. 美国服务器远程卡,RAKsmart Windows美国服务器远程连接VNC方法
  4. ascii码为0的字符_2.4 序列之字符串
  5. 深度强化学习之演员—评论家(Actor—Critic)
  6. element手机验证格式_vue+element表单验证(身份证(校验),手机号码,导游证号码)...
  7. STM32 下载调试口(JTAG+SWD)禁用及作为普通IO口
  8. cpe动态ip,做端口映射方案
  9. github 迁移google code 项目
  10. 甘肃省庆阳市谷歌卫星地图下载
  11. 计算机c盘用户里的APPDATA,Windows7系统C盘中的appdata文件夹是否可以删除
  12. 发表SCI或EI类英文文章的投稿经验
  13. Vue后台--Ele组件表格根据数字展示数值
  14. php smtp发送邮件
  15. 创造与魔法最新服务器怎么进,创造与魔法9月26日迎来新版本 个人服务器开放...
  16. 关于国信证券的丑恶现象
  17. 干掉Facebook,干掉扎克伯格!
  18. 定时闹钟功能(带铃声 可延时)
  19. VC++ CStdioFile文本文件读写
  20. Unity接入海康网络摄像头SDK

热门文章

  1. 虚拟机MAC地址的分配与修改
  2. 极客漫画-linux合集(一)
  3. 有关属性离散化算法CACC的补充说明
  4. [收藏]个人助理-公元农历
  5. 访Active Power:模块化数据中心是必然
  6. Linux(中科方德服务器版4.0)安装达梦数据库V8
  7. 免费、高质量样机素材网,我就推荐这6个
  8. 集思广益,求工作室名称
  9. 360和百度网盘互掐的思考
  10. 爬虫 - QS世界大学排名数据