TinyCheck:轻松捕获来自智能手机的网络通信

2020-12-04 20:56:46

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

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

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

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

通过网络-TinyCheck安装在网络上,可以通过浏览器从工作站进行访问。

在信息亭模式下-TinyCheck可用作信息亭,以允许访问者测试自己的设备。

关闭所有打开的应用程序,以防止出现某些FP。也可以禁用消息传递/约会/视频/音乐应用程序的后台刷新。

将您的智能手机连接到TinyCheck生成的WiFi网络。一旦连接到Wi-Fi网络,建议等待10至20分钟。

与智能手机进行交互发送短信,打电话,拍照,重新启动手机-某些植入物可能会对此类事件做出反应。

后端:用户可以在其中添加自己的扩展IOC,白名单元素,编辑配置等。

前端:用户可以通过创建临时WiFi AP来分析其设备的通信。

分析引擎:用于通过使用Zeek,Suricata,扩展的IOC和启发式方法分析pcap。

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

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

两个有效的Wi-Fi接口(使用ifconfig | grep wlan | wc -l检查其编号)。

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

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

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

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

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

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

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

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

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

您的项目看起来很酷,它是否将数据发送到卡巴斯基或任何遥测服务器?一点也不。您可以查看源,TinyCheck发送的唯一数据是对您可以在配置中指定的网站的HTTP GET请求以及观察者URL。卡巴斯基不会-也不会-从您的TinyCheck设备接收任何遥测信息。您能否列出一些可用于该项目的硬件(触摸屏,wifi加密狗等)?不幸的是,我们不希望在此页面上推广任何硬件/构造函数/网站。如果您需要特定的参考,请随时与我们联系。我对“观察者”的概念不太满意。因为下载的IOC是公开的。您是否打算开发一个服务器来集中AMBER / RED IOC?是的,如果非政府组织有需求(请与我们联系!)。是否有可能开发这种东西,从而使您可以集中化IOC并在托管服务器上管理TinyCheck实例队列。由于从设备接收的遥测,服务器还可以嵌入更好的检测规则。