Inleiding
Dit document beschrijft de basis orbitale zoekopdrachten voor dreigingsanalyse.
Voorwaarden
Vereisten
Cisco raadt u aan kennis te hebben van de interesse in het begrijpen van bedreigingen en malware en een basiskennis van Structured Query Language (SQL) -tabellen.
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- Secure Endpoint Connector versie 7.1.5 of hoger voor Windows
- Secure Endpoint Connector versie 1.16 of hoger voor Mac
- Secure Endpoint Connector versie 1.17 of hoger voor Linux
- Secure Endpoint-gebruiker moet de rol van beheerder toegewezen krijgen om Orbital te implementeren
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
De Custom Query's worden gebruikt om u te helpen snel de kracht van Orbital en osquery voor dreigingsjacht te leren.
Orbital maakt gebruik van osquerys stock tables naast Orbital-specifieke tabellen. De resultaten die via Orbital worden geretourneerd, kunnen naar andere toepassingen worden verzonden, zoals Secure Endpoint, Secure Malware Analytics en SecureX Threat Response, en kunnen worden opgeslagen in externe gegevensopslag (RDS), zoals Amazon S3, Microsoft Azure en Splunk.
Gebruik de Orbital Investigate-pagina om live, live query's op eindpunten te construeren en uit te voeren om meer informatie van hen te verzamelen. Orbital maakt gebruik van osquery, waarmee u uw apparaten kunt bevragen als een database met eenvoudige SQL-opdrachten.
Hier is een eenvoudig voorbeeld: SELECTEER kolom 1, kolom 2 UIT tabel 1, tabel 2 WAAR kolom 2='waarde'.
In dit voorbeeld zijn kolom 1 en kolom 2 de veldnamen van de tabel waaruit u gegevens wilt kiezen. Als u alle beschikbare velden in de tabel wilt kiezen, gebruikt u deze syntaxis: SELECTEREN * UIT tabel 1.
toegang
Open Orbital rechtstreeks op deze sites:
Noord-Amerika - https://orbital.amp.cisco.com
Europa - https://orbital.eu.amp.cisco.com
Azië en Stille Oceaan - https://orbital.apjc.amp.cisco.com
OF
Kies op de Secure Endpoint Console het getroffen hostsysteem en klik op Onderzoeken in Orbital.

Er zijn opties voor het gebruik van de Orbital Catalog (Klik op Bladeren) of Voer de Aangepaste query's in onder Aangepaste SQL-sectie zoals vermeld:

Aangepaste zoekopdrachten
Opmerking: het hostsysteem bevindt zich in het labnetwerk en er wordt geprobeerd het systeem/netwerk ongedeerd te houden.
1. Opstartitems
Startup items kunnen worden uitgebuit door aanvallers om de persistentie op een gecompromitteerd systeem te behouden, wat betekent dat de schadelijke software zal blijven draaien of automatisch opnieuw worden gestart bij elke systeemherstart. In het volgende voorbeeld wordt Qakbot.exe uitgevoerd in het hostsysteem.
SELECT name, path, args, source, type, status, username
FROM startup_items;

2. SHA256 Hashes van lopende processen
SHA256-hashes zijn niet inherent geassocieerd met het uitvoeren van processen in hun natuurlijke staat. Beveiligingssoftware en systeembewakingstools kunnen echter de SHA256-hash van een lopend proces van het uitvoerbare bestand berekenen om de integriteit en authenticiteit ervan te helpen verifiëren.
SELECT
p.pid, p.name, p.path, p.cmdline, p.state, h.sha256
FROM processes p
INNER JOIN hash h
ON p.path=h.path;


als de bijbehorende hash van een bestand kwaadaardig is, kunt u zich identificeren met deze zoekopdracht.
3. Proces met netwerkverbindingen
Processen met netwerkverbindingen zijn programma's of systeemdiensten die actief gebruik maken van de netwerkinterface om te communiceren met andere apparaten op een netwerk of via internet.
SELECT
DISTINCT pos.pid, p.name, p.cmdline, pos.local_address, pos.local_port, pos.remote_address, pos.remote_port
FROM processes p
JOIN process_open_sockets pos USING (pid)
WHERE
pos.remote_address NOT IN ("", "0.0.0.0", "127.0.0.1", "::", "::1", “0");

4. Bevoorrecht proces met netwerkverbinding van een niet-localhost
Een programma of service uitvoeren met verhoogde machtigingen (zoals die van een beheerder of systeemaccount) en via het netwerk communiceren met een extern apparaat of service, wat betekent dat een ander IP-adres dan 127.0.0.1 (localhost) of::1 (IPv6 localhost).
SELECT DISTINCT p.name, p.cmdline, pos.pid, pos.local_address, pos.local_port, pos.remote_address, pos.remote_port
FROM processes p JOIN process_open_sockets pos USING (pid)
WHERE pos.remote_address NOT IN ("", "0.0.0.0", "127.0.0.1", "::", "::1")

Zodra u de Packet Identifier (PID) lijst hebt, kunt u deze dienovereenkomstig toevoegen in de Aangepaste query's.
SELECT DISTINCT p.name, p.cmdline, pos.pid, pos.local_address, pos.local_port, pos.remote_address, pos.remote_port
FROM processes p JOIN process_open_sockets pos USING (pid)
WHERE pos.remote_address NOT IN ("", "0.0.0.0", "127.0.0.1", "::", "::1") and p.uid=1436
5. Controle van back-up-/herstelregister
Volgen van gebeurtenissen waarbij wijzigingen in het Windows-register worden aangebracht door middel van back-up- of terugzetbewerkingen. Het Windows-register is een hiërarchische database waarin configuratie-instellingen en opties voor Microsoft Windows-besturingssystemen worden opgeslagen.
SELECT key AS reg_key, path, name, data, DATETIME(mtime, "unixepoch") as last_modified
FROM registry
WHERE key LIKE "HKEY_LOCAL_MACHINE\system\currentcontrolset\control\backuprestore\filesnottosnapshot";
SELECT data, path FROM registry
WHERE key LIKE 'HKEY_USERS\%\Control Panel\Accessibility\StickyKeys’;

SELECT username, data, split(path, '\', 1) AS sid
FROM
(SELECT data, path FROM registry
WHERE key LIKE 'HKEY_USERS\%\Control Panel\Accessibility\StickyKeys’)
JOIN users ON users.uuid = sid;

6. Bestand zoeken
Hiermee kunnen gebruikers bestanden en mappen op hun computer vinden met behulp van verschillende criteria, zoals bestandsnaam, inhoud, eigenschappen of metagegevens.
SELECT
f.directory, f.filename, f.uid, f.gid,
f.mode, f.device, f.size,
f.atime,
f.mtime,
f.ctime,
f.btime,
f.hard_links, f.symlink, f.file_id, h.sha256
FROM file f
LEFT JOIN hash h on f.path=h.path
WHERE
f.path LIKE (SELECT v from __vars WHERE n="file_path") AND
f.path NOT LIKE (SELECT v from __vars WHERE n=“not_file_path");
Navigeer naar PARAMETERS > Bestandspad en klik op %.dll of %.exe of %.png.

7. Monitoring van de PowerShell-geschiedenis
Praktijk van het bijhouden van de opdrachten die zijn uitgevoerd in PowerShell-sessies. Het bewaken van de geschiedenis van PowerShell kan bijzonder belangrijk zijn om veiligheids- en nalevingsredenen.
SELECT time, datetime, script_block_id, script_block_count, script_text, script_name, script_path
FROM orbital_powershell_events
ORDER BY datetime DESC
LIMIT 500;

8. Prefetch-zoekopdracht
Prestatiefunctie die het laden van toepassingen versnelt. Prefetching omvat het analyseren van de manier waarop software wordt geladen en uitgevoerd op een systeem en het opslaan van informatie hierover in specifieke bestanden.
select datetime(last_run_time, "unixepoch", "UTC") as last_access_time,*
from prefetch
ORDER BY last_access_time DESC;
Prefetch is een mechanisme waarmee SQL Server veel I/O-verzoeken parallel kan starten voor een Nested Loop-join.
9. Inspectie van de cache van het Address Resolution Protocol (ARP)
Hierbij wordt de inhoud van de ARP-cache op een computer of netwerkapparaat onderzocht. De ARP-cache is een tabel waarin toewijzingen tussen IP-adressen en de bijbehorende MAC-adressen worden opgeslagen.
SELECT address, mac, count(*) as count
FROM arp_cache GROUP BY mac,address;

In het volgende voorbeeld wordt het verdachte MAC-adres en het aantal ervan berekend vanuit de ARP-cache.
SELECT address, mac, count(*) as count
FROM arp_cache GROUP BY mac,address
HAVING COUNT(mac) >= (SELECT count FROM arp_cache WHERE count>=1)
AND mac LIKE (SELECT mac FROM arp_cache WHERE mac=“52:54:00:12:35:02");
