使用canarytokens进行入侵检测

canarytokens

基本概念

canarytokens是一种用于识别网络入侵的工具。它们是一种虚拟的“蜜罐”,可以在网络上放置,当有人尝试访问它们时,可以立即触发警报,以便及时发现潜在的安全威胁。这些token可以是各种形式,可以是一个文件、电子邮件地址、API 调用、DNS 请求、Web Bug/URL、QR 码等等,其目标是在攻击者访问或交互这些 token 时发出报警。通过监视这些canarytokens的活动,网络管理员可以更好地了解潜在的威胁,并及时采取行动。

工作原理

它们工作原理是生成一个或多个canarytokens(即“蜜标”),这些蜜标可以放置在各种位置,例如电子邮件、文档、数据库记录或者网站上。然后,当这些蜜标被访问或使用时,Canarytokens服务会向你发送警报,从而通知你可能发生的安全事件或数据泄露行为。

基本分类

Canarytokens(Canarytokens)可以生成多种形式的蜜标,例如:

  • 伪造的URL:如果有人访问这个URL,你会得到通知。
  • 伪装成文件的蜜标:比如放置在一个敏感目录中的Word文档,如果文件被打开,你会得到通知。
  • 邮件中的Web bug:如果有人打开了邮件并触发了隐藏的Web bug,你会得到通知。
  • DNS查询:如果有人尝试解析某个特定的DNS记录,你会得到通知。
  • ......

如图所示:

反正就是很强大!!种类很多,这里简单介绍一下web bug和canarytokens docx的使用和技术原理。

web bug/URL token

简单测试

首先使用web bug/URL token生成一个一个蜜饵,这里输入俺的邮箱接收告警,填写告警的描述如:测试URL token,如图所示:

点击create my Canarytokens,就可以生成一个web token啦

Canary token URL为:http://canarytokens.com/traffic/tags/terms/jxk469f48nu2lcd25vdegpojq/post.jsp,这里里面的“token”是用来识别访问者的唯一字符串“jxk469f48nu2lcd25vdegpojq”,当有人访问这个URL时,它将触发一个事件,Canary token服务将通知URL的创建者关于此次访问的详细信息。如来源的IP地址、使用的浏览器类型,UA等,这个URL结尾一个名为post.jsp的文件,文件内容如下:

从内容的开头“GIF89a”是一个GIF文件的头部标识,说明这个文件里面嵌入了一个图片。

我这里直接访问一下这个URL:http://canarytokens.com/traffic/tags/terms/jxk469f48nu2lcd25vdegpojq/post.jsp

邮箱就收到了告警,并且获取到我的出口IP和UA等信息,如图所示:

Web Bug

Web Bug也被称为网页信标(web beacons),常常用来追踪用户的网络活动,例如他们何时访问了某个网页,是否打开了某封电子邮件等。它通常是一个小的透明图像或者其他嵌入式对象,它被嵌入到网页中,但用户通常无法察觉到它的存在。当用户访问包含web beacons的网页时,web beacons会向远程服务器发送请求,从而记录用户的访问信息。

从这个链接提供的信息来看,Web Bug使用的技术原理包含以下几个关键点:

  1. 图片元素的嵌入:通常通过在网页或邮件中嵌入一个非常小的、通常是1x1像素的透明图片来实现。
  2. 链接定制:图片的源(src)是一个定制的链接(在该案例中是一个.jsp页面),并且包含了一些唯一的跟踪标签,例如terms/jxk469f48nu2lcd25vdegpojq。
  3. 服务器端数据记录:当一个用户的浏览器尝试加载这个图片时,其实就是对服务器发起了一个GET请求。Web服务器可以记录这个请求的详细信息,例如IP地址、浏览器类型、访问时间等元数据。
  4. 回应伪装:链接返回的内容是基本的GIF格式的开头——GIF89a——这表明服务器的响应被设计成伪装成一个GIF图片。尽管后续的字符是乱码,但足以让浏览器认为这是一个图片资源。

这个Web Bug可以实现无形中追踪用户的访问行为,服务器接收到请求后,即使图片看起来是空白或透明的,通过记录请求的细节数据,追踪者便能完成对用户行为的定位。

canarytokens docx

首先,进行canarytokens网站生成token页面,选择Microsoft Word Document,第二行填写接收通知邮箱,第三行填写通知时的文本内容,然后生成就可以了。

然后下载就行了

docx文件本质就是压缩文件,所以可以改后缀名为.zip后利用解压软件解压缩。这里我直接使用unzip解压缩,直接执行

unzip riu5lhrjxssj9s0fobsnr8hig.docx

通过检索,可以发现word目录下footer2.xmlfooter2.xml.rels带有canarytokens的网站链接。

grep -Ri canarytokens *

通过检索,可以发现word目录下footer2.xmlfooter2.xml.rels带有canarytokens的网站链接。footer2.xml 是文档中页脚的实际内容,而 footer2.xml.rels则定义了页脚内容中涉及的外部关系这些代码共同实现了Canarytoken 在 Word 文档(docx 格式)中的部署。

footer2.xml文件包含了 Word 文档页脚的实际内容。在这个例子中,它包含了插入图片的字段(field)。字段代码如下:

<w:fldChar w:fldCharType="begin"/>
<w:instrText xml:space="preserve"> INCLUDEPICTURE  "http://canarytokens.com/terms/stuff/tags/riu5lhrjxssj9s0fobsnr8hig/contact.php" \d  \* MERGEFORMAT </w:instrText>
<w:fldChar w:fldCharType="separate"/>
...
<w:fldChar w:fldCharType="end"/>

这段字段代码告诉 Word 在文档中插入一张图片,图片的 URL 为 http://canarytokens.com/terms/stuff/tags/riu5lhrjxssj9s0fobsnr8hig/contact.php。\d 和 \* MERGEFORMAT 是字段指令,用来控制图片的显示方式。INCLUDEPICTURE 是一个 Word 字段,用来插入外部图像。当 Word 尝试渲染这个字段时,它会向给定的 URL 发起请求以检索图片。如下所示:

INCLUDEPICTURE  "http://canarytokens.com/terms/stuff/tags/riu5lhrjxssj9s0fobsnr8hig/contact.php

footer2.xml.rels文件指明了页脚中提到的外部资源的关系定义。在此示例中,有一个关系标识符 rId1,指向一个外部的图像资源,contact.php也是一个图片,如图所示:

INCLUDEPICTURE域通常被用在 Word 文件中 (通常是 .docx 格式) 来插入一张远程图像。当文档打开,且域更新时(例如,当视图图像时),Word 会尝试从远程服务器加载图片。而riu5lhrjxssj9s0fobsnr8hig 是一个唯一的标识符(Token),它是与 Canarytoken 相关联的一个特定的字符串,这个标识符用于追踪和识别访问该 URL 的请求。在这种情况下,当 Word 文档中的图片 URL 被访问时,Canarytoken 服务记录下事件,并可通知文档的所有者。这样可以跟踪到文档是否被打开,以及什么时候被打开。

使用场景

Canarytokens 可以用于多种不同的安全监控和预警场景,其灵活性和低侵入性让其可以广泛应用在许多环境中。以下是一些常见的使用场景:

文档和数据泄露检测

  • 隐藏在敏感文档中的 tokens 被访问,这可能表明有人在未经授权的情况下查看或窃取了这些文件。
  • 在数据库的敏感字段中放置 tokens,当有SQL注入或其他未授权访问时会触发警报。

网络入侵检测

  • 在网络中设置虚假的服务或设备(如假SSH服务)并关联 with tokens,一旦有人尝试连接这些服务,就会触发警报。
  • 配置 DNS tokens,当攻击者尝试解析某些域名或子域名时,可以检测到潜在的网络扫描活动。

内部威胁监测

  • 在隐蔽的URL中嵌入 tokens。如果员工或合作伙伴访问了这些不应该公知的链接,可能意味着内部信息被泄露。
  • 在看起来像是密码、密钥或访问凭证的文件中放置 tokens,用来检测是否有人在试图获取这些信息。

云服务监控

  • 配置用于云存储桶(如AWS S3)的 tokens,任何未授权的存储桶访问都会被检测到。
  • 生成看起来像是有效API密钥的 tokens,并监控其使用情况来检测潜在的API滥用。 

研究与取证

  • 在蜜网中部署 tokens,来吸引攻击者,并监控他们的活动。
  • 将 tokens 放置在故意泄露的数据中,以调查和跟踪数据在黑市中的传播。

办公终端蜜饵和应用访问预警

  • 在配置文件、注册表项或系统文件中加入 tokens,当攻击者试图修改这些关键设置时会收到通知。
  • 在web应用的敏感部分嵌入 tokens,如管理面板或配置界面,以检测未授权的访问尝试。 

敏感行为监控

  • 在代码库或代码片段中嵌入 tokens,用于侦测源代码的未授权拷贝或访问。
  • 更多可参考官方文档:https://docs.canarytokens.org/guide/

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

 

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击) 

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/653423.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

工业触摸屏一般用哪种

工业触摸屏一般使用以下几种类型&#xff1a;1.电阻式触摸屏&#xff1a;电阻式触摸屏是最常见和常用的工业触摸屏类型之一。它由两层导电层组成&#xff0c;当屏幕上的物体接触到触摸屏时&#xff0c;两个导电层之间会发生电阻变化&#xff0c;触摸点的坐标信息可以通过测量电…

不仅能逃生,更能自动灭火!神奇的全氟己酮灭火毯的原理是什么?

很多朋友对灭火毯的印象&#xff0c;还停留在火灾发生时披覆在身上逃生时使用&#xff0c;可以隔离火源。近年来兴起的全氟己酮自动灭火毯可以说大为颠覆大家的想法&#xff0c;这是一条真的可以自动灭火的神奇灭火毯&#xff01;为什么能做到这一点&#xff1f;全氟己酮灭火毯…

黑马聚合的分类及实现

1、什么是聚合? 聚合是对文档数据的统计、分析、计算 聚合的常见种类有哪些? 桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组&#xff0c;例如一周为一组&#xff0c;或者一月为一组 度量(…

LVM与磁盘配额09

一、LVM 1、lvm概述 lvm &#xff08;logical volume manager &#xff09;&#xff1a;逻辑卷管理 linux系统下对硬盘分区的一种管理机制。 场景&#xff1a;lvm机制特别适合于管理大存储设备。 作用&#xff1a;可以动态的对硬盘进行扩容 。 逻辑上的磁盘&#xff0c;概…

IP协议说明

文章目录 前言一、IP协议的简介二、IP数据报1.IP 数据报结构2.IP 数据报的分片解析3.IP 数据报的分片重装 三、IP 数据报的输出四、IP 数据报的输入 前言 IP 指网际互连协议&#xff0c; Internet Protocol 的缩写&#xff0c;是 TCP/IP 体系中的网络层协议。设计 IP 的目的是…

QGis3.34.5工具软件保存样式,软件无反应问题

在使用QGis软件保存SLD样式的时候&#xff0c;每次保存样式&#xff0c;软件都进入无反应状态&#xff0c;导致无法生成样式文件 百度中多次查询问题点&#xff0c;终未能在在3.34.5这个版本上解决问题。 考虑到可能是软件本身问题&#xff0c;于是删除了3.34.5这个版本&#x…

Java面试八股之自旋是什么意思

Java中的自旋是什么意思 自旋是多线程编程中的一种同步机制&#xff0c;尤其在Java中与锁的实现密切相关。当一个线程尝试获取某个锁&#xff08;如内置锁或显式锁&#xff09;时&#xff0c;如果锁已被其他线程持有&#xff0c;通常的做法是将该线程置于阻塞状态&#xff0c;…

基于遗传优化的Sugeno型模糊控制器设计matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于遗传优化的Sugeno型模糊控制器设计matlab仿真,通过遗传优化算法优化模糊控制器的隶属函数参数&#xff0c;从而获得较优的控制效果。 2.系统仿真结果 3.核心程序与模型 …

Redis面试题深度解析

1、我看你做的项目中&#xff0c;都用到了redis&#xff0c;你在最近的项目中哪些场景使用了redis呢? 2、缓存穿透 布隆过滤器的误判现象 Redisson和Guava都对布隆过滤器进行了实现 3、缓存击穿 互斥锁&#xff0c;就是一个线程来修改&#xff0c;并占据了锁&#xff0c;另外其…

cgicc开发(文件上传)

//cgicc文件上传封装 void UploadSoftware() {// 初始化CGIC环境Cgicc cgi;// 获取上传的文件file_iterator fileIter cgi.getFile("button_browse"); //from表单中,输入为文件属性(typefile)的name属性值if (fileIter cgi.getFiles().end()){ #if (DEBUG true)co…

【在Postman中,如果后端返回的是String类型的数据但不是JSON格式,报错】

在Postman中&#xff0c;如果后端返回的是String类型的数据但不是JSON格式 问题描述解决办法 postman后端返回的String数据,不是json,怎么设置结果的接收&#xff1f; 问题描述 在postman中测试接口&#xff0c;报错Error&#xff1a;Abort&#xff0c;或者显示返回数据校验失…

数据真实性与经济收益的矛盾:第三方检测何去何从|中联环保圈

在当今的市场化竞争环境中&#xff0c;第三方检测公司在环保行业中处于较为底端的位置。其多数检测业务依赖于第三方技术服务单位的委托&#xff0c;然而在委托过程中&#xff0c;往往面临着报告真实性和收款的矛盾。一旦第三方检测公司负责人在数据真实性和经济收益矛盾中取舍…

基于Freertos的工训机器人

一. 工训机器人 V1 1. 实物 将自制的F4开发板放置车底板下方&#xff0c;节省上方空间&#xff0c;且能保证布线方便整齐。 2. SW仿真 使用SolidWorks进行仿真&#xff0c;且绘制3D打印件。 工训仿真 3.3D打印爪测试 机械爪测试 二. 工训机器人 V2 1. 实物 工训机器人V2不同于…

教师信息素养四个方面是什么

在这个信息爆炸的时代&#xff0c;老师们该如何提升自己的信息素养&#xff1f;信息素养&#xff0c;这个看似简单的概念&#xff0c;实际上包含着丰富的内涵和多维度的技能。它不仅仅是获取信息的能力&#xff0c;更是一种综合运用信息资源&#xff0c;解决教学和生活中问题的…

微信公众号关注页获取方式

Demo Location 查找步骤 仔细看下链接验证&#xff0c;排查有特点的参数__biz 分析如何获取__biz 查看某个文章线下零食届「拼多多」席卷&#xff0c;「赵一鸣们」如何高效拓店&#xff1f;&#xff0c;查看源代码 ,查找关键词 替换链接并执行

CSS(七)

文章目录 CSS&#xff08;七&#xff09;1. 精灵图&#xff08;重点&#xff09;1.1 为什么需要精灵图1.2 精灵图&#xff08;sprites&#xff09;的使用1.3 案例&#xff1a;拼出自己名字1.3.1 案例效果1.3.2 代码参考 2. 字体图标2.1 字体图标的产生2.2 字体图标的优点**2.3*…

软件设计师中级 重点 笔记

文章目录 下午题目网络DNS域名解析分类&#xff1a;域名协议简介网络设备 算法软件工程实体联系图&#xff08;E-R图&#xff09; 其它 下午题目 数据流图补充原则 22年下半年真题 更早-真题大全 答题技巧 网络 DNS域名解析分类&#xff1a; 递归查询的顺序&#xff1a;1.本…

美国西储大学(CRWU)轴承故障诊断——连续小波(CWT)变换

1.数据集介绍 2.代码 import random import matplotlib matplotlib.use(Agg) from scipy.io import loadmat import numpy as npdef split(DATA):step = 400;size = 1024;data = []for i in range(1, len(DATA) - size, step):data1 = DATA[i:i + size]data.append(data1)rand…

147.栈与队列:滑动窗口最大值(力扣)

代码解决 class Solution { private:class MyQueue{public:deque<int> que;// 删除队列中的元素&#xff0c;如果该元素等于队列的front// 这是为了保持队列中元素的正确性void pop(int val){if(!que.empty() && val que.front()){que.pop_front();}}// 添加元素…

Databend 开源周报第 146 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持 Expressio…