Caine – Computer Aided INvestigative Environment
In deze post wil ik het hebben over Caine, ofwel Computer Aided INvestigative Environment. Caine is een GNU/Linux live distribution omgeving voor digitaal forensisch onderzoek. Caine wordt doorgaans geïnstalleerd op een portable device zoals een USB stick om vervolgens vanaf te booten waarna forensische taken op het primaire OS van de doelcomputer kunnen worden uitgevoegd.
In deze post gaan we in vogelvlucht Caine bekijken en bespreken. We gaan dus niet in-dept spelen met de verschillende Caine tools. Deze post is om een idee te geven van Caine als project en zijn mogelijkheden.
Caine is van Italiaanse makelij en is volledig open-source. De website van het Caine project is: http://www.caine-live.net/. Als we rondkijken op de website dan zien we dat de huidige projectmanager “Nanni Bassetti” (http://nannibassetti.com/) is. Caine is op de website beschikbaar als ISO welke in combinatie met USB tools als Rufus gemakkelijk te installeren is als een bootable USB disk.
De huidige versie van Caine (op het moment van schrijven) is 8.0. Een belangrijke verbetering in deze versie is dat Caine alle op de computer aangesloten “block” devices blokkeert. Een “block device” is een Linux term en refereert naar een bestand dat betrekking heeft op een apparaat. Blokapparaten vertegenwoordigen vaak hardware zoals schijfeenheden, maar dat is platformafhankelijk. Zo heeft bijvoorbeeld FreeBSD geen blokkeerapparatuur. Normaliter leest en schrijft een “block device” in “datablokken” naar een apparaat. Deze “datablokken” variëren in grootte. In tegenstelling tot een “input device” welke direct (bit-voor-bit) met een apparaat communiceert. Block devices zijn dus vaak schijven zoals /dev/sda of /dev/hda. Deze nieuwe feature voorkomt dat er “per ongeluk” schrijfacties op de schijven plaatsvinden welke het forensisch onderzoek kunnen bevuilen of helemaal teniet kunnen doen.
De “BlockOn/Off” tool zorgt ervoor dat apparaten in blocked of writeable modus geplaatst kunnen worden als dit gewenst is.
Caine is gebaseerd op Ubuntu Linux en kent ook de mogelijkheid om na het starten te verbinden over VNC zodat de het forensisch onderzoek ook remote uitgevoerd kan worden.
Booten en installeren van Caine
Als we Caine booten zien we het volgende scherm:
Onder normale omstandigheden kiezen we hier uiteraard voor de bovenste optie. Er kan echter ook gekozen worden om Caine in het RAM van de computer te laden of om debug mode te starten. Nadat Caine gestart is (wat gemiddeld zo’n 20 seconde duurt) komen we op de Caine destop.
Op de desktop vinden we diverse “Caine” applicaties waaronder de Systemback applicatie om Caine te installeren op een harddrive (indien dit gewenst is, meestal zal de live-boot omgeving gebruikt worden). De installatie van Caine op een harddrive is vooral aan te bevelen op een virtuele machine.
Installatie van Caine gaat als volgt:
- Start de Systemback installer
- Kies voor “System install”
- Vul de juiste gegevens in voor een nieuw user account en een wachtwoord voor het root account
- Maak een nieuwe partitie aan. Als het een VM betreft selecteer je eerst de hele partitie en deze verwijder je (Delete). Vervolgens selecteer je de lege ruimte en maak je een nieuwe partitie aan. Kies hier de juiste grootte en klik op het pijltje dat naar links wijst om de instellingen te configureren. Nu kies je aan de rechterkant je mount point (/) en het bestandssysteem (default is ext4). Installeer de GRUB Bootloader automatisch (Auto) en laat de overige instellingen ook default. Dan klik je op je pijltje dat naar links wijst om de partitie te maken. Vervolgens klik je op de “Next” knop om het installatieproces te starten.
- Als er een popup komt met “Install the system, using the following restore point: Live image” kies je voor “Start”.
- Als de installatie voltooid is (tussen de 5 en 15 minuten) dan kan Caine gewoon geboot worden vanaf de HD.
Caine applicaties
Nu we Caine hebben gestart, bekeken en misschien al wel hebben geïnstalleerd is het zaak om “the good stuff” te bekijken. Want de echte kracht van Caine zit hem natuurlijk in de aanwezige applicaties.
Als we kijken in het startmenu hebben we al een goede indruk van de aanwezige tools. Allereerst hebben we natuurlijk de Forensische tools welke we zo nader toelichten. Onder de “Accessoires” vinden we allerhande systeemtools terug zoals een Keyring, Terminal, Archiver, Python shell, SQL DB Browser, Tekst Editor etc. Kortom, the obvious stuff.
Dan onder de “Graphics” staan tools als Gimp, Shotwell (foto archiver) en Simple Scan (scanner applicatie).
“Internet” huisvest een aantal basic tools zoals de Firefox webbrowser en de FileZilla FTP cliënt. Maar ook handige tools als Gigolo (verbindt met remote computers), Putty, Remmina (RDP client), Screw Soft VPN en Zenmap (Nmap GUI). Maar ook diverse messengers en een e-mail applicatie.
De “Office” folder huisvest de gebruikelijke office tools zoals een PDF viewer en de LibreOffice suite (document & spreadsheet tools).
In de “Other” folder vinden we ook wat tools terug die ook onder “Accessoires” geschaard hadden kunnen worden zoals netwerk setting, software tooling en nogmaals de DB browser voor SQLite.
Interessante tools vinden we terug in de “Programming” folder. Hier vinden we o.a. Geany (code editor), GHex (inspecteer binary bestanden), ipython, Sqliteman (beheer SQLite3 databases), tkcsv (CSV Editor), Jeex en wxHexEditor (HEX editors).
Mediaplayers, screenshot en desktop recording tools vinden we terug in de categorie “Sound & Video”.
System Tools is eveneens een interessante categorie met de systemback installer, de BlockON/OFF tool maar ook met filemanagers, terminals, resource monitors. Aanwezig is ook de MATE Disk Usage Analyzer (folder size & disk space tool) en Tilda (pop-up terminal).
“Universal Access” biedt een aantal tools voor betere toegankelijkheid zoals een vergrootglas en een on-screen keyboard.
Tenslotte heeft de “System” folder een aantal basis tools voor system-based werkzaamheden. Denk hierbij aan bijvoorbeeld het Debian Control Centre, Preferences, Bleachbit (diskspace opruimen), Boot Repair en GParted (partitie tool).
Caine Forensics Tools
De echte “goodies” bevinden zich uiteraard in de “Forensics Tools” folder. Deze folder is weer onderverdeeld in diverse categorieën. Diverse tools uit onderstaande categorieën vinden we ook terug ongesorteerd in de root van de “Forensics Tools” folder.
1. Analysis
Diverse analyse tools voor het controleren en herstellen van diverse disks en data. Tools zijn o.a.
- Fred – MS Registry Editor
- Mixed Script – Library van Perl, Python en SH scripts voor diverse toepassingen. Een aantal scripts zijn BTCscan.py voor het zoeken naar BitCoin Base58Check encoded strings in folders. Byte Investigator voor het copieren en vastlegen van diverse Windows bestanden en systeemstructuren. find_times.py zoekt naar hard-coded (embedded) time-stamps in Windows register bestanden. Raw2FS Voor het herstellen van bestandsnamen die gegenereerd worden door de Foremost tool. En SFDumper voor het selectief dumpen en herstellen van bestanden (ook indien deze niet toegewezen of verwijderd zijn).
- Mobius – Case manager
- Photorec + Gui – Foto’s en bestanden herstellen
- RecuperaBit – NTFS data en partities herstellen
- Testdisk – Parties en bestanden herstellen
- TkDiff – GUI voor de “diff” applicatie welke het mogelijk maakt om 2 bestanden naast elkaar te bekijken en vergelijken.
- XAll – Extract alle bestanden vanuit een HD of een image.
- XDeview – Binary bestandsdecoder voor de uuencoding, xxencoding, Base64 en BinHex versleutel technieken.
2. Disks
Onder disks vinden we een breeds scale aan data-recovery tools en tools om deze data weer te bekijken. Data backup, safeguard en inzage tools zijn goed vertegenwoordigd binnen het Caine OS.
- DDRescue-Gui – Data recovery. DDRescue kopieerd gegevens van een bestand of blockdevice naar een nieuw bestand en red hierbij eerst alle goede data en negeert de leesfouten.
- XHFS – Grafische interface om bestanden te bekijken en kopiëren vanuit HFS geformatteerde apparaten. HFS staat voor “Hierarchical File System” en wordt gebruikt op oudere Apple apparaten.
- XMount-Gui – Met deze applicatie kun on-the-fly data converteren tussen verschillende harddrives. XMount doet dit door de data te laden in een virtueel bestandssysteem (met behulp van FUSE). Dit virtuele bestandssysteem ondersteund flat (dd) output maar ook VirtualBox en VmWare output zodat de data direct ingeladen kan worden met behulp van deze hypervisors.
- dd Utility – Deze applicatie is een GUI om het Linux dd commando heen. dd Utility kan niets meer maar maakt het wel makkelijker voor de gebruiker. Met de dd Utility kan de gebruiker backups van een disk of memory kaart maken in een IMG of ISO bestand. Deze bestanden kunnen vervolgens weer naar een memory kaart of disk geschreven worden zonder deze eerst te decomprimeren.
- DDrescueView – Middels DDrescueView kunnen DDRescue mapfiles bekeken, onderzocht en bewerkt worden in een handig GUI. Het uiterlijk doet denken aan die van defragmentatie applicaties en laat in 1 oogopslag alle blocksoorten zien. De DDRescue mapfiles bevatten informatie over de status van het dataherstel en zijn essentieel om dataherstel te hervatten. Deze mapfiles kunnen bewerkt worden zodat je invloed kunt uitoefenen op het herstelproces.
- IMG_MAP – Kan dd en EWF bestanden mounten.
- iMount – Kan dd, EWF en AFF bestanden mounten
- VHDIinfo – Laat handige informatie zien over VHD bestanden
- VHDIMount – Deze applicatie maakt het mogelijk om VHD machines te mounten in Ubuntu.
3. Database
De database sectie bevat slechts 3 tools en voelt wat mager aan. Mede ook omdat alle 3 de tools toegepast worden op SQL(ite). Ik mis hier dus forensische tools voor andere database indelingen. 2 tools zijn al beschreven. Dit zijn Sqlliteman en SQLLite database browser. Dan blijft er nog 1 tool over, namelijk:
- sqlparse – Herstelt verloren SQLite records in een TSV of tekstbestand.
4. Hash
De Caine OS Hash folder bevat slechts 2 tools welke beide gebruikt worden om hashes te bereken. In totaal worden 9 verschillende hash algoritmes ondersteund.
- GtkHash – GtkHash is een tool voor het berekenen van diverse hashes. Ondersteunende hash algoritmes zijn MD5, MD6, SHA1, SHA256, SHA512, RIPEMD, TIGER en WHIRLPOOL.
- QuickHash – Ook QuickHash is een tool voor het berekenen van diverse hashes. Ondersteunende hash algoritmes zijn: MD5, SHA1, SHA256, SHA512 en xxHash.
5. Malware
De malware familie in het Caine OS bestaat uit een 3-tal krachtige tools waarvan er hieronder 2 beschreven zijn en 1 omschreven is onder mijn 5 favoriete Caine tools. Malware ontdekken en analyseren is het doel van onderstaande applicaties.
- PDF Analysis – Deze tool bevat diverse scripts voor het analyseren van malafide PDF bestanden.
- Yara – Yara wordt ook wel omschreven als “het Zwitsers zakmes” voor malware onderzoekers. Yara kan gebruikt worden om malware te identificeren en te classificeren. Yara kan uitgebreid worden met diverse plugins maar wordt in de basis gebruikt voor het maken van beschrijvingen van malware families op basis van tekst of binaire patronen. Ook ben je als malware analist zelf in de gelegenheid om regels en patronen toe te passen binnen het pakket om taken verder te automatiseren.
6. Memory Forensics
De naam laat weinig te gissen over uiteraard. Alle tools in deze sectie worden gebruikt om computergeheugen (run states) te analyseren en Caine heeft hier een mooie collectie van tools voor. Zoals:
- Inception – Deze tool is gemaakt om het geheugen fysiek te manipuleren. Inception maakt hiervoor gebruik van Direct Memory Access (DMA). Inception gebruikt “aanvallen” over FireWire, Thunderbolt, ExpressCard en andere PCI / PCIe interfaces.
- VShot – Command-line based memory analizer.
- MemDump – Linux Memory Dump tool.
7. Mobile Forensics
Werk je met mobiele devices zoals telefoons of tablets? Caine heeft hier ook diverse tools voor beschikbaar:
- ADB – ADB staat voor Android Debug Bridge wordt gebruikt om te communiceren met een verbonden Android toestel. ADB is een command-line tool welke bestaat uit een cliënt, een deamon en een server. ADB maakt het mogelijk om Android toestellen via een Unix Shell te besturen en om (debug) apps te draaien.
- Blackberry and IDevice scripts – Deze koppeling verwijst naar een verzameling van command-line scripts welke gebruikt worden om Blackberry en iPhone telefoons te onderzoeken.
- ILoot – Iloot wordt gebruikt om backups van apparaten te downloaden welke gekoppeld zijn met het ingevoegde AppleID.
- Iphone Backup Analyzer – Deze tool maakt het mogelijk om door de backup folder van een IOS device te bladeren waarbij configuratiebestanden gelezen kunnen worden, door archieven kan worden gebladerd, databases benaderd kunnen worden. Etc.
- LibMobileDevice – Deze suite wordt eveneens gebruikt om iPhones en andere IOS devices te analyseren. LibMobileDevice is niet afhankelijk van andere libraries. Met LibmobileDevice is het mogelijk om IOS devices te openen waarna het bestandssysteem bekeken en gemodificeerd kan worden. Denk hierbij aan bestanden, het adresboek, IOS backups, applications etc.
8. Network Forensics
De tools in deze sectie worden voornamelijk gebruik om netwerkactiviteit te monitoren en analyseren. Hoort Wireshark hier dan niet tussen? Natuurlijk! Wireshark behoord ook tot de Caine Tool Suite en staat in de lijst van mijn 5 favoriete Caine tools.
- Netdiscover – Deze applicatie wordt gebruikt om het network te onderzoeken. Met netdiscover kun je snel kijken welke IP adressen zich in je netwerk bevinden. Netdiscover is vooral gemaakt voor draadloze netwerken zonder DHCP server en deze tool is ook aanwezig in Linux Kali waarbij zijn aanwezigheid vooral gebruikt wordt tijdens “wardriving” activiteiten.
- Zenmap –De officiële GUI voor NMap. NMap is een van de bekendere network security scanners en Zenmap maakt werken met NMap een stuk makkelijker door zijn duidelijke GUI.
9. Timeline
Timeline tools zijn belangrijk. Een forensisch onderzoeker wilt altijd een duidelijk beeld creëren van gebeurtenissen op een bepaald apparaat. Timestamps zijn daar een essentieel voor en de tools in deze categorie kunnen hier prima mee omgaan.
- NBTempo – Deze tool functioneert samen met TSK (The SleuthKit) en YAD (Yet Another Dialog) en wordt gebruikt voor het maken van bestands tijdlijnen.
- Log2Timeline – Deze tool haalt timestamps op van bestanden op een gekoppeld volume en maakt een compleet en duidelijke overzicht van timestamps. De gemaakte timeline is zeer handig voor forensisch onderzoekers omdat deze meteen een overzicht hebben van alle gebeurtenissen op chronologische volgorde binnen een systeem.
Top 5 Caine Tools
Een paar tools vanuit bovenstaande folders heb ik nog niet omschreven. Dit zijn mijn top 5 Caine Tools. Deze tools belichamen wat mij betreft de echte kracht van het Caine OS en zijn al meerdere malen een grote hulp voor me geweest.
5. Autopsy
Autopsy is een GUI voor forensische tools als o.a. “the Sleuth Kit” en wordt gebruikt om te achterhalen wat er op een computer gebeurt is. Autopsy is een tool die gebruikt wordt door justitie, het leger en andere overheidsinstanties om projecten vorm te geven. Zo kan Autopsy gebruikt worden voor het opzetten van een case waar met meerdere gebruikers aan gewerkt kan worden. Autopsy wordt gebruikt om grafisch een timeline te schetsen waarin gebeurtenissen hebben plaatsgevonden. Ook kan web activiteit achterhaald worden, register analyses worden uitgevoerd, analyse op e-mail worden toegepast. Maar ook disk analyses zijn mogelijk alsook het filteren van verschillende hash-sets. Autopsy is een fantastische tool voor iedere digitaal forensisch onderzoeker en dus aanwezig in het Caine OS.
4. PEFrame
PEFrame is een tool om statische analyse toe te passen op “portalble executable” (PE) bestanden zoals gebruikt worden binnen 32-bit en 64-bit Windows OS systemen. Denk hierbij aan .exe, .dll en .fon bestanden. PEFrame is een prachtige tool die kan helpen om bepaalde informatie van een malware bestand te achterhalen zoals bijvoorbeeld de software packer, xor, digitale handtekening, mutex, anti debug, verdachte secties en functies.
3. Volatility
Volatility is een compleet framework welke gebouwd is om forensische taken uit te voeren om systeemgeheugen zodat forensische onderzoekers de “runtime state” van een machine kunnen onderzoeken. Volatility ondersteunde een groot scala van besturingssystemen waaronder vele Windows en Linux Systemen. Daarnaast worden vele soorten geheugenformaten ondersteund. Volatility is een van de bekendere forensic memory frameworks en wordt over de gehele wereld gebruikt.
2. Wireshark
Wireshark is ongetwijfeld de allerbekendste netwerk monitor en laat de gebruiker op microniveau zien wat er gebeurt in het netwerk. Welke pakketten worden er getransporteerd, welke data zit er in de pakketten, wat zijn het voor pakketten en welke protocollen worden gebruikt etc. Wireshark is mijn absolute nummer 1 tool als het aankomt op “network forensics” en staat dus ook lekker hoog in mijn 5 favoriete Caine tools.
1. Guymanager
Guymanager is een Linux tool voor het maken van digitale kopieën. Guymanager is een snelle tool welke multithreaded werkt en diverse kopieën kan maken zoals dd (flat) ofwel platte kopie waarbij bit voor bit de kopie gemaakt wordt. Maar ook het maken van een E01 ofwel EWF image behoord tot de mogelijkheden. E01 is een veiliger formaat welke ook gegenereerd wordt door de EnCase applicatie en bevat additionele data zoals “Case Informatie” zoals een timestamp, OS, drive serial nummer en custom user input. Elke 32 kB (64 sectoren) zijn voorzien van een CRC checksum. Tenslotte kan Guymanager ook images maken met de AFF (Advanced Forensics Format) indeling. Deze images lijken qua features op het E01 bestandsformaat, dus een exacte kopie incl. metadata. AFF gaat echter beter om met compressie wat resulteert in een kleinere image.
Conclusie
Ik hoop dat ik jullie met deze post een goede overview heb kunnen geven van het Caine OS. Specifieke tools zal ik meer in detail toelichten in latere posts. Caine is een prachtig OS voor digitaal forensisch onderzoekers met een groot scala aan tools en mogelijkheden om een OS of Device te analyseren en onderzoeken. Een nadeel aan Caine is dat documentatie nogal schaars is en sommige documentatie die wel voorhanden is niet in het Engels geschreven is. Je moet met Caine dus wel weten wat je doet.
Wat zijn jou favoriete Caine tools en waarom? Ik ben heel benieuwd wat jij ontdekt hebt door het gebruik van Caine. Of gebruik je liever een andere suite? Plaats een reactie en laat het me weten!