TinyCheck可以让用户轻松地捕获来自智能手机或可与Wi-Fi接入点关联的任何设备的网络通信,以便对其进行快速分析。通过使用试探法或特定的攻击指标(IoC),可用于检查是否有任何可疑或恶意通信从智能手机传出。
为了使其正常运行,用户需要一台具有Debian操作系统和两个Wi-Fi接口的计算机。最好的选择是使用带有Wi-Fi加密狗和小触摸屏的Raspberry Pi(3+)。这个小巧的配置(不到50美元)使用户可以在任何地方点击任何Wi-Fi设备。
TinyCheck的想法是在一次与法国妇女庇护所的跟踪器会议上出现的。在这次会议上,我们讨论了如何在不安装非常技术性的应用程序或不对它们进行取证分析的情况下轻松检测跟踪器软件。最初的想法是开发一种基于Raspberry Pi的微型信息设备,这样非技术人员就可以使用该设备来测试其智能手机是否受到跟踪软件或任何间谍软件发出的恶意通信的攻击。
当然,TinyCheck也可以用于发现来自网络犯罪或国家资助的植入程序的任何恶意通信。它允许最终用户通过后端推送自己的扩展的攻击指标,以检测线路上的任何信息泄漏。
实际用法
个人和企业可以通过多种方式使用TinyCheck:
通过网络:TinyCheck安装在网络上,可以通过浏览器从工作站进行访问。
在kiosk模式下:TinyCheck可用作kiosk模式,以允许访问者测试自己的设备。Windows Kiosk模式只是Windows操作系统(OS)的一项功能,它将系统的可用性或访问权限仅限于某些应用程序。意思是,当我们在Windows上打开Kiosk模式时,它只允许一个应用程序运行。Kiosk模式的好处是,它允许企业仅在办公室,餐馆等运行特定的销售点(POS)应用程序,以阻止客户使用机器上的任何其他应用程序。
完全独立:通过使用一个移动电源,用户可以在任何地方点击任何设备。
分析智能手机的7个步骤
1.停用移动设备(蜂窝数据):在智能手机配置中禁用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文件中,用于whitelist/IOCs的tinycheck.sqlite3数据库中。
值得注意的是,并非所有配置选项都可以从后端进行编辑(例如默认端口,免费证书颁发者等)。现在,来看看config.yaml文件来调整一些配置选项。
安装过程
在安装TinyCheck之前,用户需要具备以下条件:
1.具有Raspberry Pi OS的Raspberry Pi或任何具有Debian式系统的计算机。
2.两个有效的Wi-Fi接口(使用ifconfig | grep wlan | wc -l检查其编号)。
3.正常的互联网连接。
4.以前为TinyCheck的kiosk模式安装的一个小型触摸屏。
通过执行install.sh,将安装与项目关联的所有依赖项,这可能需要几分钟的时间,具体取决于用户的Internet速度。此时,将创建四个服务:
tinycheck-backend执行后端服务器和接口;
tinycheck-frontend执行前端服务器和接口;
tinycheck-kiosk可以处理TinyCheck的 kiosk版本;
tinycheck-watchers可以处理从外部URL自动更新IOCs / whitelist的监控;
安装完成后,操作系统将重新启动。
访问前端
可以从http://tinycheck.local进行访问的前端是一种隧道,可以在整个网络捕获和报告过程中帮助用户。它允许用户建立与现有Wi-Fi网络的Wi-Fi连接,创建临时的Wi-Fi网络,捕获通信并向用户显示报告,在没有任何技术知识的情况下,点击5下。
访问后端
安装后,用户可以通过浏览URL https://tinycheck.local并接受SSL自签名证书将自己连接到TinyCheck后端,默认凭证为tinycheck / tinycheck。
后端允许用户编辑TinyCheck的配置,添加扩展的IOCs 和whitelisted 的元素,以防止误报。已经提供了多个IOC,例如很少的suricata规则,FreeDNS,名称服务器,已知托管恶意服务器的CIDR等。就扩展的IOC而言,TinyCheck的第一个版本包括:
Suricata规则;
CIDRs;
域和FQDN(通常称为“域”);
IPv4 / IPv6地址;
证书sha1;
域名服务器;
FreeDNS;
Fancy TLD,TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生Zdenek Kalal在其攻读博士学位期间提出的一种新的单目标长时间跟踪(long term tracking)算法。该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加稳定、可靠;
访问分析引擎
分析引擎非常简单,对于第一个版本,在捕获过程中不会实时分析网络通信。引擎对先前保存的网络捕获执行Zeek和Suricata,Zeek是一个著名的网络分析器,它将捕获的会话存储在几个日志中。
保存后,将对这些日志进行分析,以查找扩展的IOC(在上面列出)或与启发式规则匹配(可以通过后端停用)。启发式规则在zeekengine.py中进行了硬编码,并在下面列出。由于一次只分析一个设备,因此利用启发式警报的可能性很小。
UDP / ICMP不在本地网络中;
目标端口> 1024的UDP / TCP连接;
会话期间DNS无法解析远程主机;
远程主机使用自签名证书;
在非标准端口上完成SSL连接;
远程主机使用特定的SSL证书颁发者(例如,让我们加密);
会话期间完成的HTTP请求;
在非标准端口上完成的HTTP请求;
……
在Suricata部分,将根据保存为IOC的suricata规则分析网络捕获。例如:
设备名称以明文形式显示;
访问点SSID以明文形式显示;
监控程序
为了使IOC和白名单不断更新,TinyCheck集成了称为“监控程序”的功能。这是一项非常简单的服务,只有几行Python,可以从公共URL中获取新格式的IOC或白名单元素。到目前为止,TinyCheck集成了两个URL,一个用于白名单,一个用于IOC(格式化的文件位于Assets文件夹中)。
如果你在这两个列表中发现了非常可疑或需要调查/整合的内容,请联系开发者。
使用中注意的事项
是否可以将数据发送到卡巴斯基或任何遥测服务器?
不可以,因为用户可以查看源,TinyCheck发送的唯一数据是到用户可以在配置中指定的网站的HTTP GET请求以及监控程序URL,卡巴斯基不会从用户的TinyCheck设备接收任何遥测信息。
用户能否列出一些可与此项目一起使用的硬件(触摸屏,wifi加密狗等)?
不可以,开发者不希望在此页面上推广任何硬件/构造函数/网站。如果用户需要特定的参考,请与开发者联系。
因为下载的IOC是公开的,用户是否可以开发一个服务器来集中AMBER / RED IOC?
可以,如果非政府组织有需求,可以与开发者联系。
本文翻译自:https://github.com/KasperskyLab/TinyCheck如若转载,请注明原文地址