Archeologiska redskap

Mitt exempel i slutet av förra inlägget om dataarkeologi, om hur jag återvunnit text från filer som raderats ur filsystemet med hjälp av dd, ett standardkommando i *nixsystem, visade sig inte vara helt korrekt: de aktuella filerna var inte raderade, utan flyttade till en annan katalog så jag inte hittade dem, och jag tog för givet att de var raderade (fast det hade varit ganska enkelt att konstatera att så inte var fallet), så dd-extraheringen blev mest en krånglig omväg. Den allmänna poängen att det inte räcker att radera filer ur filsystemet för att deras innehåll skall vara borta gäller dock fortfarande. Något ironiskt handlade de aktuella filerna om arkeologi med fatal utgång. De hörde till ett projekt jag höll på med i mitten av 90-talet om en påhittad virussjukdom som var ungefär som AIDS kliniskt men inte hade kopplingen till homosexuella eller narkomaner, som AIDS haft i västvärlden. I stället spreds viruset (till skillnad från HIV) via insektsvektor och smittade initialt en grupp amatörarkeologer på utflykt till Rökstenen ett par myggrika sommardagar.

I inlägget diskuterade jag BitCurator (BitCurator Team 2014), i praktiken en Linuxdistribution med en sammanställning av förinstallerade program för dataarkeologi, som nu väckt intresse hos svenska universitetsbibliotek och arkivinstitutioner. Jag anmärkte på att den var onödigt tung och klumpig. De har i stort sett adderat programmen till en standardinstallation av Ubuntu, en distribution som är gjord för att nya användare snabbt skall kunna komma igång med allmänna uppgifter. Frågan är om det är ett vettigt val när det gäller att bygga ett system skräddarsytt för att utföra en viss avgränsad uppgift så effektivt som möjligt.

Jag sökte i förråden till Arch Linux (Arch Linux Community 2014a), en distribution som tvärtom är inriktad på att vara minimalistisk i sitt grundutförande (namnet har dock inget med arkeologi att göra, vad jag förstått), och det visade sig att de flesta BitCurator-programmen (med några undantag, främst själva det specifika BitCurator-gränssnittet som automatiserar de vanligaste analysuppgifterna) fanns där, antingen i de officiella förråden eller via den s.k. Arch User Repository (AUR) – som inte innehåller färdiga paket utan beskrivningar för att kompilera paket, som kan laddas upp av vem som helst. Jag gjorde, med hjälp av skriptet Archiso (Arch Linux Community 2014b), i ordning en ISO-fil, som kan användas för att skapa en DVD eller USB-sticka för att köra eller installera systemet, med alla dessa program och Xfce som grafiskt gränssnitt.

ISO-filen jag skapade är i sin senaste version på 737 MB, att jämföra med 2,3 GB för motsvarande fil för BitCurator 0.9.12. En nyinstallation (i VirtualBox) från ISO-filen med alla programmen använde mindre än 3 GB diskutrymme och 407 MB RAM (utom buffertar/cache) omedelbart efter att systemet startats (med skrivbordsmiljön och ett terminalfönster igång); BitCurator tog upp 6,1 GB i rotsystemet och använde 814 MB RAM i en motsvarande situation. En av de mest minnesslukande processerna i båda fallen var clamd, som är en daemon för antiviruspaketet ClamAV. Det är kanske inte så vanligt med antivirusprogram under Linux, men det kan vara motiverat i ett system gjort för att avbilda och analysera främmande diskar, som ofta kan komma från Windowssystem (och sedan kanske kommer att göras åtminstone delvis tillgängliga via just sådana system).

Kurationsprogrammen i Arch verkar fungera så långt jag tittat på dem. Några exempel:

  • Guymager kan skapa diskavbildningar, antingen ”råa” avbildningar som de som skapas av dd eller i specialiserade format anpassade för bl.a. rättsliga undersökningar (Encase, AFF) med stöd för metadata, komprimering och kryptering.
  • libewf, afflib är bibliotek och verktyg för att hantera avbildningar i de senare formaten, t.ex. montera dem i filsystemet.
  • bulk_extractor kan användas för att söka igenom en avbildning (även komprimerade filer i avbildningen genomsöks) efter t.ex. telefonnummer, e-postadresser och URL:er i förening med egendefinierade listor över reguljära uttryck och generera statistik över träffar.
  • Recoll kan skapa index över alla filer i en viss sökväg för att snabbt kunna söka igenom dem efter nyckelord eller fritext. Det kan krävas tilläggsprogram för att hantera vissa filformat, t.ex. behövs antiword (som också finns i Archförråden) för Worddokument.
  • Gtkhash lägger till en flik för beräkning av kontrollsummor i egenskapsdialogrutan för filer i filhanterare som Nautilus i GNOME eller Thunar i Xfce.
  • Sleuthkit innehåller en rad olika verktyg för att undersöka avbildningar, filsystem och vanliga filer.
  • Exiftool hanterar metadata för bl.a. bildfiler.
  • dcfldd är en variant av dd med utökade funktioner som är avsedda att underlätta användning vid rättsliga utredningar, t.ex. beräkning av kontrollsummor.

Referenser

Arch Linux Community. 2014a. ”Package database”. https://www.archlinux.org/packages/.

———. 2014b. ”Archiso”. https://wiki.archlinux.org/index.php/Archiso.

BitCurator Team. 2014. ”Software”. http://wiki.bitcurator.net/index.php?title=Software.

När papperskorgen tömts

Det finns ett växande intresse för ”dataarkeologi”, som handlar om att återvinna information från föråldrade datamedia eller format. Några amerikanska utbildningsinstitutioner har sammanställt en programsvit för ändamålet baserad på fri programvara, BitCurator, och det anordnades nyligen en workshop kring denna på Kungliga biblioteket (Göteborgs universitetsbibliotek 2014). BitCurator innehåller grafiska program som kan skapa diskavbildningar i olika format (Guymager) och sedan analysera dessa och skapa olika rapporter med statistik över bl.a. olika typer av personlig information (t.ex. telefonnummer och e-postadresser) och filtyper som finns lagrade på disken. Det skall också gå att få åtkomst till och kopiera filer, inklusive borttagna filer, i diskavbildningen via det grafiska gränssnittet, något som jag dock inte fick att fungera, trots att jag kunde montera avbilderna och öppna dem i filsystemet.

Via svitens hemsida (BitCurator Team 2014) går det att ladda ned en virtuell maskin för VirtualBox eller en ISO-fil som kan användas för att skapa t.ex. en installations-dvd. Dessa nedladdningar innehåller alltså en Linuxdistribution (Ubuntu 14.04) med de BitCurator-specifika programmen förinstallerade. Många av de program som ingår i sviten finns i dagsläget inte tillgängliga i Windowsversioner (även om det i alla fall vore juridiskt möjligt för vem som helst att kompilera om dem; vilka tekniska hinder som finns vet jag inte), och genom den aktuella distributionsmetoden slipper arkiv- och biblioteksinstitutioner göra sig besväret att installera Linux från grunden på arbetsstationerna.

Jag kan dock fråga mig varför de valt att utgå från Ubuntu med det förhållandevis tunga GNOME/Unitygränssnittet för dessa program som i sig är resurskrävande (de rekommenderar att man konfigurerar den virtuella maskinen för minst två processorkärnor och 4 GB RAM) – en mer resurssnål skrivbordsmiljö (som Xfce eller LXDE, se (Wimpress 2014) för jämförelse) hade kanske varit ett bättre val. Visserligen innehåller sviten skript gjorda för filhanteraren Nautilus i GNOME, men dessa är knappast oundgängliga för svitens funktioner och Nautilus går dessutom att integrera även i andra skrivbordsmiljöer.

För den som redan har GNU/Linux installerat finns många av de funktioner BitCurator erbjuder tillgängliga via systemets kärnverktyg (och detsamma gäller sannolikt om man använder t.ex. en modern Mac med OS X, någon BSD-variant eller, åtminstone när det gäller viss funktionalitet, Cygwin under Windows), även om man då ofta får klara sig utan grafiskt gränssnitt. Kommandot dd kan användas för att skapa ”råa” diskavbildningar. Följande (# markerar att kommandot skall köras som administratör, t.ex. med sudo före) skapar en avbild av enheten /dev/sdc (SCSI- eller ATA-hårddiskar i Linuxsystem får enhetssökvägar enligt mönstret /dev/sda, /dev/sdb, …) i filen bkupimg.dd i den aktuella katalogen:

# dd if=/dev/sdc of=./bkupimg.dd

För att komma åt filer i avbilden via filsystemet går det sedan att montera den som en s.k. loop-enhet. Förbered den med losetup:

# losetup --partscan --find --show bkupimg.dd

Avbildningen kommer då att kopplas till loopenheten loop0 om denna inte är upptagen sedan tidigare. För att sedan t.ex. montera den första partitionen i avbildningen under katalogen /mnt:

# mount /dev/loop0p1 /mnt

Ge följande kommando för att avmontera partitionen och ta bort loopenheten efter avslutat arbete:

# umount /mnt
# losetup -d /dev/loop0

Om det finns borttagna filer i avbildningen kan man använda ett verktyg som Testdisk (CGSecurity 2014), som dock inte ingår i kärnprogrammen i GNU/Linux, för att försöka återställa dessa. Fungerar inte detta går det att söka igenom en rå diskavbildning manuellt efter filfragment. Om man har en stor diskavbildning kan den då göras mer lätthanterlig genom att man hackar upp den. Följande kommando delar upp filen bkupimg.dd i 800 MB stora filer som får namn enligt mönstret bkupimgsplaa, bkupimgslab, …:

split -b 800M bkupimg.dd bkupimgspl

Om man hittar filfragment i en avbildning kan man sedan också använda dd för att ”skära ut” dessa. Om du vill kopiera ett framgent på 9760 byte, som börjar 283 254 688 byte in i filen bkupimgsplad, till filen utflykt:

dd bs=1 skip=283254688 count=9760 if=bkupimgsplad of=utflykt

Med detta tillvägagångssätt kan det gå att återvinna text från filer som raderats ur filsystemet för länge sedan – jag trodde mig ha ett bra sådant exemepel med en gammal hårddisk själv; det visade sig dock att de aktuella filerna inte var raderade ur filsystemet utan flyttats till en annan katalog. Vill man verkligen göra sig av med informationen i sina filer räcker det alltså inte att radera dem på vanligt sätt (eller formatera om disken), utan man får t.ex. använda ett kommando som shred för att skriva över dem (och även här finns komplikationer med moderna s.k. journalförande filsystem (Free Software Foundation 2013)). Jag håller det för troligt att en ganska stor andel av alla datoranvändare inte känner till detta utan tror att informationen är borta när de tömt papperskorgen.

Referenser

BitCurator Team. 2014. ”Software”. http://wiki.bitcurator.net/index.php?title=Software.

CGSecurity. 2014. ”TestDisk”. http://www.cgsecurity.org/wiki/testdisk.

Free Software Foundation. 2013. ”shred invocation”. https://www.gnu.org/software/coreutils/manual/html_node/shred-invocation.html.

Göteborgs universitetsbibliotek. 2014. ”BitCurator workshop”. http://www.ub.gu.se/samlingar/digital/workshop/.

Wimpress, Martin. 2014. ”Memory consumption of Linux desktop environments”. http://flexion.org/posts/2014-03-memory-consumption-of-linux-desktop-environments.html.