TinyCheck卡巴斯基实验室恶意通信检测工具

TinyCheck卡巴斯基实验室恶意通信检测工具

TinyCheck描述

TinyCheck使您可以轻松地捕获来自智能手机或可与Wi-Fi接入点关联的任何设备的网络通信,以便快速分析它们。通过使用启发式方法或特定的危害指标(IoC),可用于检查是否有任何可疑或恶意通信从智能手机传出。

TinyCheck卡巴斯基实验室恶意通信检测工具

准备工作(必备工具环境)

为了使TinyCheck正常运行,您需要①一台具有Debian操作系统②两个Wi-Fi接口的计算机。最好的选择是使用带有Wi-Fi加密狗和小触摸屏的Raspberry Pi(3+)。这种微小的配置(不到50美元)使您可以在任何地方点击任何Wi-Fi设备。

TinyCheck历史背景

TinyCheck的想法是在一次与法国妇女庇护所的缠扰器会议上出现的。在这次会议上,我们讨论了如何在不安装特殊技术性的应用程序或对其进行取证分析的情况下轻松检测跟踪器软件。最初的概念是开发一种基于Raspberry Pi的微型信息亭设备,非技术人员可以使用该设备来测试其智能手机是否受到跟踪软件或任何间谍软件发出的恶意通信的攻击。

当然,TinyCheck也可以用于发现来自网络犯罪或国家资助的植入程序的任何恶意通信。它允许最终用户通过后端推送自己的扩展的危害指示器,以检测线路上的一些虚影。

用例

个人和企业可以通过多种方式使用TinyCheck:

  • 通过网络-TinyCheck安装在网络上,可以通过浏览器从工作站进行访问。
  • 在信息亭模式下-TinyCheck可用作信息亭,以允许访问者测试自己的设备。
  • 完全独立-通过移动电源,您可以在任何地方检测任何设备。

分析智能手机的步骤

  1. 停用移动设备aka。蜂窝数据
    禁用智能手机配置中的3G/4G数据链接。
  2. 关闭所有打开的应用程序,
    以防止出现某些FP。也可以禁用消息传递/约会/视频/音乐应用程序的后台刷新。
  3. 将您的智能手机连接到TinyCheck生成的WiFi网络。
    一旦连接到Wi-Fi网络,建议等待10至20分钟
  4. 与智能手机进行交互
    发送短信,打电话,拍照,重新启动手机-某些植入物(后门)可能会对此类事件做出反应。
  5. 停止捕获
    单击按钮停止捕获。
  6. 分析捕获的内容
    分析捕获的通讯,享受(或不享受)。
  7. 保存捕捉
    捕捉保存到USB闪存盘上或直接下载。

TinyCheck结构

TinyCheck分为三个独立的部分:

  • 后端:用户可以在其中添加自己的扩展IOC,白名单元素,编辑配置等。
  • 前端:用户可以通过创建临时WiFi AP来分析其设备的通信。
  • 分析引擎:用于通过使用Zeek,Suricata,扩展的IOC和启发式方法分析pcap

后端和前端非常相似。两者均由VueJS应用程序(源存储在/app/)和在Flask中开发的API端点(存储在/server/)组成。后端和前端之间共享的数据存储在config.yaml文件下,tinycheck.sqlite3用于白名单/IOC的配置和数据库。

值得注意的是,并非所有配置选项都可以从后端进行编辑(例如默认端口,免费证书颁发者等)。不要犹豫,看config.yaml文件来调整一些配置选项

TinyCheck安装方法

在安装TinyCheck之前,您需要具备以下条件:

  • 具有Raspberry Pi OS的Raspberry Pi(或任何具有Debian式系统的计算机)
  • 两个有效的Wi-Fi接口(使用确认其编号 ifconfig | grep wlan | wc -l)。
  • 正常的互联网连接
  • (建议)以前为TinyCheck的信息亭模式安装的小型触摸屏。
cd / tmp / 
git clone https://github.com/KasperskyLab/TinyCheck 
cd TinyCheck 
sudo bash install.sh

通过执行install.sh,将安装与项目关联的所有依赖关系,这可能需要几分钟的时间,具体取决于您的Internet速度。将创建四个服务:

  • tinycheck-backend 执行后端服务器和接口;
  • tinycheck-frontend 执行前端服务器和接口;
  • tinycheck-kiosk 处理TinyCheck的信息亭版本;
  • tinycheck-watchers 处理从外部URL自动更新IOC /白名单的观察者;

安装完成后,操作系统将重新启动。

前端知识

可以从中访问的前端http://tinycheck.local是一种隧道,可以在整个网络捕获和报告过程中帮助用户。它允许用户建立与现有Wi-Fi网络的Wi-Fi连接,创建临时的Wi-Fi网络,捕获通信并向用户显示报告…不到一分钟,五次单击而无需任何技术知识。

TinyCheck卡巴斯基实验室恶意通信检测工具

后端知识

安装后,您可以通过浏览URL https://tinycheck.local 并接受SSL自签名证书将自己连接到TinyCheck后端。默认登陆账号密码为tinycheck / tinycheck

TinyCheck卡巴斯基实验室恶意通信检测工具

后端允许您编辑TinyCheck的配置,添加扩展的IOC和列入白名单的元素,以防止误报。已经提供了多个IOC,例如很少的suricata规则,FreeDNS,名称服务器,已知托管恶意服务器的CIDR等。就扩展的IOC而言,TinyCheck的第一个版本包括:

  • Suricata rules
  • CIDRs
  • Domains & FQDNs (一般命名为“域”)
  • IPv4 / IPv6 Addresses
  • Certificates sha1
  • Nameservers
  • FreeDNS
  • Fancy TLDs

分析引擎介绍

分析引擎非常简单。对于此第一个版本,在捕获过程中不会实时分析网络通信。引擎针对先前保存的网络捕获执行Zeek和Suricata。Zeek是一个著名的网络解剖器,它在多个日志中存储捕获的会话。

保存后,将对这些日志进行分析,以查找扩展的IOC(在上面列出)或匹配启发式规则(可通过后端停用)。启发式规则在中硬编码zeekengine.py,并在下面列出。由于一次只分析一个设备,因此利用启发式警报的可能性很小。

  • UDP / ICMP不在本地网络中
  • 目标端口> 1024的UDP / TCP连接
  • 会话期间DNS无法解析远程主机
  • 远程主机使用自签名证书
  • 在非标准端口上完成SSL连接
  • 远程主机使用特定的SSL证书颁发者(例如,让我们加密)
  • 会话期间完成的HTTP请求
  • 在非标准端口上完成的HTTP请求

Suricata部分,将根据保存为IOC的suricata规则分析网络捕获。很少有规则是动态的,例如:

  • 设备名称以明文形式显示;
  • 接入点SSID以明文形式显示;

观察者介绍(Watchers)

为了使IOC和白名单不断更新,TinyCheck集成了称为“观察者”的东西。这是一项非常简单的服务,只有几行Python,可以从公共URL中获取新格式的IOC或白名单元素。到目前为止,TinyCheck集成了两个URL,一个用于白名单,一个用于IOC(格式化的文件位于Assets文件夹中)。

如果您发现了非常可疑的内容/需要调查/将其整合到这两个列表之一中,请随时联系我们。您也可以拥有自己的观察者。记住,共享是关怀。

问与答

您的项目看起来很酷,它是否将数据发送到卡巴斯基或任何遥测服务器?

一点也不。您可以查看源,TinyCheck发送的唯一数据是到您可以在配置中指定的网站的HTTP GET请求以及观察者URL。卡巴斯基不会(从不)从您的TinyCheck设备接收任何遥测信息。

您能否列出一些可与此项目一起使用的硬件(触摸屏,wifi加密狗等)?

不幸的是,我们不希望在此页面上推广任何硬件/constructor/网站。如果您需要特定的参考,请随时与我们联系。

我对“观察者”的概念不太满意,因为下载的IOC是公开的。您是否打算开发一个服务器来集中AMBER / RED IOC?

是的,如果非政府组织有需求(请与我们联系!)。是否有可能开发这种东西,从而使您可以集中化IOC并在托管服务器上管理TinyCheck实例队列。由于从设备接收的遥测,服务器还可以嵌入更好的检测规则

下一版本的可能更新

  • 用于IOC /白名单管理(也称为远程分析)的集中式服务器。
  • 实现以太网的使用。
  • 可以从后端界面添加观察者。
  • ZIP报告的加密。
  • 更好的前端GUI / JS(使用websockets /更好的动画)。
  • 更多OpSec(TOR集成,本地IP随机化等)
  • 信息亭的3d模板

项目地址

GitHub: github.com/KasperskyLab/TinyCheck

下载地址

①GitHub: github.com/KasperskyLab/TinyCheck.zip
②雨苁网盘: w.ddosi.workers.dev/TinyCheck-main.zip
③迅雷网盘: pan.xunlei.com/ 提取码 5f33
④蓝奏云: waf.lanzoui.com/i8P8rj83hwj