De integratie is open source en staat op GitHub: Q-Feeds/Q-Feeds-Wazuh-Integration. Haal hem daar altijd op, dan heeft u zeker de actuele versie. U heeft root-toegang op de Wazuh-manager nodig, uitgaand HTTPS naar api.qfeeds.com of taxii.qfeeds.com en een Q-Feeds API-token of TAXII-gegevens. Zie Uw threat feeds ophalen.
Vereisten
- Wazuh-manager: 4.x of nieuwer, geïnstalleerd in
/var/ossec - Rechten: root op de manager
- Pakketten:
curl. Python komt met Wazuh mee, in/var/ossec/framework/python/bin/python3, dus dat hoeft u niet te installeren - Gegevens: een Q-Feeds API-token voor de standaardmodus, of een TAXII-gebruikersnaam en wachtwoord voor de TAXII-modus
- Netwerk: uitgaande toegang tot
api.qfeeds.comoftaxii.qfeeds.comop poort 443
De scripts ophalen
git clone https://github.com/Q-Feeds/Q-Feeds-Wazuh-Integration.git /tmp/qfeeds-wazuh
cd /tmp/qfeeds-wazuh
Geen git op de manager? Download dan het archief:
curl -sL https://github.com/Q-Feeds/Q-Feeds-Wazuh-Integration/archive/refs/heads/main.tar.gz | tar xz -C /tmp
cd /tmp/Q-Feeds-Wazuh-Integration-main
Installeren
sudo bash install.sh
De installer stelt een aantal vragen, schrijft de configuratie, installeert de updater, de decoders, de regels en een cronjob, en haalt daarna de feeds voor het eerst op. Wat hij vraagt, op volgorde:
- Integratiemodus: standaard API of TAXII 2.1.
- Gegevens: uw API-token, of uw TAXII-gebruikersnaam en wachtwoord.
- Feeds of collections: welke feeds u aanzet. In de TAXII-modus zoekt de installer de API-root op en toont hij de beschikbare collections.
- Verlopen indicatoren overslaan (alleen TAXII): indicatoren negeren waarvan de datum in
valid_untilvoorbij is. - IPv6 (standaardmodus): IPv6-adressen meenemen in de IP-feed.
- Active Response: gevonden IP-adressen blokkeren op de lokale firewall, met een timeout die u zelf kiest.
- IP-whitelist: adressen die nooit een alert mogen opleveren. Zet hier uw eigen beheeradressen neer.
- Cron-schema: elke 20 minuten in de standaardmodus, eens per dag op een willekeurig uur in de TAXII-modus. TAXII-collections kunnen groot zijn, daarom worden de dagelijkse runs over klanten gespreid.
- Eerste download (alleen TAXII): u kunt die overslaan en de eerste cron-run het werk op de achtergrond laten doen.
Wat er geïnstalleerd wordt
| Onderdeel | Locatie |
|---|---|
| Configuratie | /etc/qfeeds/qfeeds_wazuh.conf |
| Updater | /usr/local/bin/qfeeds-wazuh-updater.py |
| Decoders | /var/ossec/etc/decoders/qfeeds_decoders.xml |
| Regels | /var/ossec/etc/rules/qfeeds_rules.xml |
| CDB-lijsten | /var/ossec/etc/lists/qfeeds-* |
| Log | /var/log/qfeeds_wazuh.log |
| Planning | crontab van root |
De installer voegt ook de verwijzingen naar de CDB-lijsten toe aan /var/ossec/etc/ossec.conf, en desgewenst de Active Response-configuratie. Die blokken staan tussen markeringen, zodat de uninstaller ze netjes kan weghalen, en er blijft een back-up van het originele bestand staan.
Hoe het werkt
- Updatecyclus: de updater vraagt eerst aan de API of uw licentie nieuwe data heeft. Zo niet, dan stopt hij zonder iets te downloaden, en daarom is een schema van elke twintig minuten geen belasting.
- CDB-lijsten: indicatoren worden weggeschreven in het
key:value-formaat van Wazuh. In de standaardmodus is de waarde leeg, in de TAXII-modus staat daar de context uit de STIX-beschrijving, zoalsthreat=Trojan;category=Bot C&C. - Regels: IP-treffers geven 100200 en 100201, domeintreffers 100210 tot en met 100213, kwaadaardige URL's 100220 en hashes 100230 tot en met 100232, alle op niveau 10 in de regelgroep
qfeeds. - Decoders: het pakket voegt een Unbound-DNS-decoder toe, in zowel het RFC5424- als het RFC3164-formaat, plus Sysmon-decoders die het samengestelde veld
Hashesopsplitsen in losse MD5-, SHA-1- en SHA-256-waarden. - CIDR: Wazuh vergelijkt IP-reeksen in puntnotatie, dus alleen /8, /16, /24 en /32 worden ondersteund. Andere prefixlengtes worden overgeslagen.
- Kwaadaardige URL's: elke vermelding wordt twee keer opgeslagen, met en zonder protocol, omdat proxylogs meestal
https://meesturen en andere bronnen niet. - Herstart: de manager wordt alleen herstart als de lijsten echt zijn veranderd. Wazuh 4.x compileert de CDB-lijsten tijdens die herstart.
Controleren
sudo QFEEDS_FORCE_UPDATE=1 /var/ossec/framework/python/bin/python3 /usr/local/bin/qfeeds-wazuh-updater.py
tail -f /var/log/qfeeds_wazuh.log
wc -l /var/ossec/etc/lists/qfeeds-malware-ip
grep -i qfeeds /var/ossec/logs/ossec.log
Het eerste commando forceert een update en negeert de licentieplanning, wat de snelste manier is om de hele keten te controleren. Wilt u een regel testen, draai dan /var/ossec/bin/wazuh-logtest en plak een logregel met een adres uit de lijst.
Ga in het dashboard naar Threat Hunting en filter op rule.groups: qfeeds, of op een losse regel zoals rule.id: 100200.
Configuratie
Alle instellingen staan in /etc/qfeeds/qfeeds_wazuh.conf. Opties zoals het API-token, IPv6 en de whitelists past u daar direct aan; ze gelden vanaf de volgende run. Wilt u feeds aan- of uitzetten, of achteraf Active Response toevoegen, draai dan opnieuw de installer, want dan moeten het regelbestand en ossec.conf mee veranderen.
Domeindetectie via Unbound
Draait u OPNsense met de Wazuh-agent en wilt u ook DNS-queries laten controleren? Zet Log Queries aan onder Services, Unbound DNS, Advanced, laat de logverbosity op de standaardwaarde staan en voeg het resolver-log toe aan de agentconfiguratie in /var/ossec/etc/ossec.conf op OPNsense:
<localfile>
<log_format>syslog</log_format>
<location>/var/log/resolver/latest.log</location>
</localfile>
Herstart de agent met service wazuh-agent restart. Houd er rekening mee dat querylogging prestaties van de resolver kost, dat een plugin-update dit blok kan overschrijven, en dat domeinen die de DNSBL van OPNsense al blokkeert nooit in het resolver-log verschijnen.
Verwijderen
sudo bash uninstall.sh
Dit haalt de cronjob weg, de CDB-lijsten en hun gecompileerde bestanden, de decoders, de regels, de configuratie inclusief eventuele TAXII-gegevens, de updater en de blokken die aan ossec.conf waren toegevoegd. Back-ups van ossec.conf blijven staan. De <localfile>-vermelding voor Unbound op een OPNsense-agent blijft ongemoeid, die haalt u zelf weg als u hem niet meer nodig heeft.
Problemen oplossen
- Geen alerts: controleer met
wc -l /var/ossec/etc/lists/qfeeds-malware-ipof de lijsten gevuld zijn, metgrep qfeeds /var/ossec/etc/ossec.confof de verwijzingen erin staan, en herstart de manager. - De updater downloadt niets: lees
tail -50 /var/log/qfeeds_wazuh.logen test uw token metcurl -s "https://api.qfeeds.com/licenses?api_token=YOUR_TOKEN". - Lijsten niet gecompileerd: Wazuh 4.x doet dat bij een herstart. Op oudere versies draait u
sudo /var/ossec/bin/ossec-makelists. - Active Response blokkeert niet: controleer de configuratie met
grep -A5 "Q-FEEDS-AR" /var/ossec/etc/ossec.confen het log in/var/ossec/logs/active-responses.log. - Geen hash-alerts: hashvergelijking vraagt om de TAXII-modus plus Sysmon op uw Windows-endpoints, met hashlogging aan in de Sysmon-configuratie.
- Ondersteuning: support@qfeeds.com of de supportpagina. Bug gevonden in de scripts? Open een issue in de GitHub-repository.