Go to file
2024-05-10 00:07:59 +02:00
analysis fixes missing commas in de.json - analysis was broken in de by that 2024-03-08 14:07:03 +01:00
app add new dist for pl locales 2024-01-23 20:24:38 +01:00
assets Update iocs.json 2024-03-09 20:14:51 +01:00
server Update definitions.py 2023-09-05 21:44:37 +02:00
.gitignore First commit! 2022-11-06 15:51:33 +01:00
config.yaml Changing tags URL 2022-11-06 17:00:07 +01:00
install.sh adding libpangos 2024-05-10 00:07:59 +02:00
LICENSE.txt First commit! 2022-11-06 15:51:33 +01:00
NOTICE.txt First commit! 2022-11-06 15:51:33 +01:00
README.md Update README.md 2024-03-16 18:36:11 +01:00
uninstall.sh remove suricata log files @uninstall 2024-01-17 12:33:59 +01:00
update.sh fix autoremove for uninstall.sh 2024-01-15 23:25:04 +01:00
watchers.yaml Update watchers.yaml 2022-11-06 16:54:17 +01:00

title

Description

SpyGuard is a forked and enhanced version of TinyCheck, developed by the same author when he was working at Kaspersky. SpyGuard's main objective is to detect signs of compromise by monitoring network flows transmitted by a device.

As it uses WiFi, SpyGuard can be used against a wide range of devices, such as smartphones, laptops, IOTs or workstations. To do its job, the analysis engine of SpyGuard is using Indicators of Compromise (IOCs), anomaly detection and is supported by Suricata.

Examples of use cases

📰 Journalists 🏦 IT Services 🌏 NGOs 👩 Women's Shelter 👮‍♂️ LEA
As a journalist, I need to test my smartphone's against spyware before or during engagements with confidential informants. Working for a public institution, I aim to set up a self-service station where individuals can check their smartphones for spyware. After traveling overseas, I'm looking to check my phone and laptop quickly. I seek to examine the smartphones of women upon their arrival for any stalkerware. I aim to check the communications of a smartphone in response to a complaint, as a preliminary step before proceeding with a full forensic analysis.

Note: SpyGuard is not a forensic tool. Therefore, it might miss malware that does not communicate during the analysis. Please refer to the FAQ for more information.

Installation

You need a debian-like operating system to install it easly by using the provided bash script. Once you've cloned the repository, just launch install.sh as root. Here are the command lines to do that:

cd /tmp/ && git clone https://github.com/SpyGuard/spyguard
cd spyguard && sudo bash install.sh

Once installed, you can go to the backend interface located at https://localhost:8443 to manage the device and setup the right network interfaces to get it working. Please look at the dedicated wiki page to get some tips regarding it.

Warning

Please check prior the installation that your Linux distribution is using nmcli to manage networks. If you want to install it on a Raspberry Pi you need to activate it via the raspi-config interface prior Spyguard installation (See here).

The frontend is available at the URL https://localhost:8000.

Smartphone analysis best practices

  • Do the interception in a public place (library, restaurant, train station...) or common place (office, home...);
  • Intercept the network communications of the device for at least 15 minutes;
  • Interact with the analysed device during the interception (reboot it, take a photo, send an SMS...);

SpyGuard and Stalkerware threat

The indicators of compromise (IOCs) linked to stalkerware are now fully managed by ECHAP, a French association working against cyberviolence. Even though stalkerware still remains a threat, remember that most of digital violence and surveillance is done by using simple means, such as hacking cloud & mail accounts. Therefore, we encourage you to consult the ECHAP guides and apply their advice to your digital life alongside of device checks.

Important

It is worth mentioning that the IOCs are distributed under the Creative Common BY-NC-SA licence. This imply a non commercial use of them. Please respect this licence and ask ECHAP for any question related to that.

Commercial use

You can use SpyGuard in a commercial product. However, you can't use SpyGuard as the name of your product and youre still required to follow the terms and conditions that the Apache License imposes, like refering to the SpyGuard project in customer documentation. Moreover, a sweet note to explain your use to the author is always appreciated, please see the contact below. You liked SpyGuard? Do not hesistate to make a donation!

Contact

If you need an express help to understand the results of the analysis or have a specific demand/question, do not hesitate to contact the author via Twitter or by sending an email at spyguard@protonmail.com. A bug? Do not hesitate to open a new issue.

They have contributed to or helped this project

  

To work, Spyguard is using a lot of awesome opensource projects, libraries, and fonts, kudos to them:

Dumpcap, Dig, Suricata, NetworkManager, Python, VueJS, Pip, pydig, pymisp, netaddr, pyyaml, flask, flask_httpauth, pyjwt, sqlalchemy, psutil, pyudev, qrcode, netifaces, weasyprint, python-whois, publicsuffix2, six, Exo2 font, Virtual Keyboard, OpenSSL, Spectre CSS.

Icons and design created via Figma, list of active TOR nodes taken from Dan.me.uk