14
1/2/17 1 Digitalna forenzika Andrej Brodnik Operacijski sistem Unix poglavje 18 razvoj skozi zgodovino: System V, HP-UX, BSD, ... kasneje so se pojavili odprtokodne inačice: Linux: RedHat, SUSE, Ubuntu, ... BSD: FreeBSD, OpenBSD, NetBSD Andrej Brodnik: Digitalna forenzika 2 Standardna datotečna hierarhija Filesystem Hierarchy Standard – FHS (http://www.pathname.com/fhs/pub/fhs-2.3.html) delo prevzela Linux Foundation (http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs) večinoma formalizacija BSD datotečnega sistema Andrej Brodnik: Digitalna forenzika 3

Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

1

DigitalnaforenzikaAndrejBrodnik

OperacijskisistemUnix

poglavje18• razvojskozizgodovino:SystemV,HP-UX,BSD,...• kasnejesosepojaviliodprtokodneinačice:• Linux:RedHat,SUSE,Ubuntu,...• BSD:FreeBSD,OpenBSD,NetBSD

AndrejBrodnik:Digitalnaforenzika 2

Standardnadatotečnahierarhija

• Filesystem HierarchyStandard – FHS(http://www.pathname.com/fhs/pub/fhs-2.3.html)• deloprevzelaLinuxFoundation(http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs)• večinomaformalizacijaBSDdatotečnegasistema

AndrejBrodnik:Digitalnaforenzika 3

Page 2: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

2

Korenskiimenik

• /boot:Staticfilesofthebootloader• /dev:Devicefiles• /etc:Host-specificsystemconfiguration• /etc/opt:Configurationfilesfor/opt• /etc/X11:ConfigurationfortheXWindowSystem(optional)• /etc/sgml :ConfigurationfilesforSGML(optional)• /etc/xml:ConfigurationfilesforXML(optional)

AndrejBrodnik:Digitalnaforenzika 4

� /bin:Essentialusercommandbinaries(forusebyallusers)

� /sbin :Systembinaries

� /lib:Essentialsharedlibrariesandkernelmodules

� /lib<qual>:Alternateformatessentialsharedlibraries(optional)

Korenskiimenik

AndrejBrodnik:Digitalnaforenzika 5

� /home:Userhomedirectories(optional)

� /root:Homedirectoryfortherootuser(optional)

� /media:Mountpointforremoveable media

� /mnt :Mountpointforatemporarilymountedfilesystem

� /opt:Add-onapplicationsoftwarepackages

� /srv :Dataforservicesprovidedbythissystem

� /tmp :Temporaryfiles

� /usr,/var :Separatehierachies

/usrimenik

• vsebujedatoteke,kisonamenjenesamobranju• jihuporabljajohkratirazličnisistemi• vnjemnajbinebilodatotek,kisospecifičnezadoločensistem• izjema:/usr/local,kijelokalniimenikdoločenegasistema

AndrejBrodnik:Digitalnaforenzika 6

Page 3: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

3

/varimenik

• vsebujedatoteke,kisespreminjajoskozičas• poštneintiskalniškevrste• beležke(logging)• podatkovja(podatkovnebazeipd.)• začasnedatoteke

AndrejBrodnik:Digitalnaforenzika 7

Sistemskedatoteke

• operacijskisistemjezasnovantako,dasosistemskedatotekečlovekuprijazneè navadnebesedilnedatoteke• konfiguracijskedatoteke:hosts,syslog.conf,...

• običajnovimenikuetc(/etc,/usr/local/etc,/opt/etc,...)• beležke:mail,cups,...

• običajnovimenikulog(/var/log,/usr/local/var/log,/opt/var/log)

AndrejBrodnik:Digitalnaforenzika 8

Konfiguracijskedatoteke

#$FreeBSD:release/9.0.0/etc/snmpd.config2165952010-12-2017:28:15Zsyrinx $##Exampleconfigurationfileforbsnmpd(1).#

##Setsomecommonvariables#location:="Room200"contact:="[email protected]"system:=1#FreeBSDtraphost :=localhosttrapport :=162

##SettheSNMPengineID.##ThesnmpEngineID objectrequiredfromtheSNMPv3Framework.Ifnotexplicitlysetvia#thisconfigurationfile,anIDisassignedbasedonthevalueofthe#kern.hostid variable#engine:=0x80:0x10:0x08:0x10:0x80:0x25#snmpEngineID =$(engine)

AndrejBrodnik:Digitalnaforenzika 9

Page 4: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

4

Beležke

Mar800:00:00svarun newsyslog[85254]:logfile turnedoverMar800:00:12svarun postfix/smtpd[85247]:connectfromS0106c0c1c0ddffcf.vf.shawcable.net[70.69.32.154]

Mar800:00:12svarun postfix/smtpd[85247]:NOQUEUE:reject:RCPTfromS0106c0c1c0ddffcf.vf.shawcable.net[70.69.32.154]:5545.7.1Serviceunavailable;Clienthost[70.69.32.154]blockedusingbl.spamcop.net;Blocked- seehttp://www.spamcop.net/bl.shtml?70.69.32.154;from=<[email protected]>to=<[email protected]>proto=ESMTPhelo=<deltamar.net>

Mar800:00:12svarun postfix/smtpd[85247]:lostconnectionafterDATAfromS0106c0c1c0ddffcf.vf.shawcable.net[70.69.32.154]

AndrejBrodnik:Digitalnaforenzika 10

Shrambapodatkovinskrivanje

• poenostavljenaorganiziranostdiskazdatotečnimsistemomFAT

AndrejBrodnik:Digitalnaforenzika 11

Datotečnisistemi

• imamoimenikeinindeksnavozlišča(inode)• inodeimapodobnofunkcijokotFATinMFThkrati• imenikjesamoposebnaoblikadatoteke• imamošeposebnedatoteke:povezave(links),cevovode(pipe),vtič(socket),...

AndrejBrodnik:Digitalnaforenzika 12

Page 5: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

5

Datotečnisistemi

• najstarejši:UnixFileSystem– UFS• mlajšainuporabljenavsistemihLinux:ext2inext3• obstajatatudiextinext4

• obstajaševrstadrugihdatotečnihsistemov

AndrejBrodnik:Digitalnaforenzika 13

ČasvoperacijskemsistemuUnix

• čassemerivsekundah• hranisekotštevilo,kiimazačetek1.prosinca1970– epoch• čeječasshranjenkot32-bitnoštevilo,boprišlodoprelivavtorek,19.prosinca2038ob03:14:07UTC– Y2K38problem

• UTC– CoordinateUniversalTime:usklajenadefinicijačasa,kiupoštevaprestopnaleta,prestopnesekunde,...• 35.prestopnasekundasejezgodila30.rožnika2012• usklajenčasmedvečimiatomskimiurami• edenodnaslednikovGMT

AndrejBrodnik:Digitalnaforenzika 14

DatotečnisistemiUFS

• definiran,kojebiluvedenVFSvBSD4.2• uporabljenv*BSDsistemih• kasnejeuporabljenvSolarisOS

vir:SolarisInternals,TheUFSFileSystem,UpdatedbyFrankBatschulat,ShawnDebnath,SarahJelinek,Dworkin Muller,andKarenRochford

AndrejBrodnik:Digitalnaforenzika 15

Page 6: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

6

UFS– indeksnovozlišče

struct dinode {u_int16_t di_mode; /* 0: IFMT, permissions; see below. */int16_t di_nlink; /* 2: File link count. */union {

u_int16_t oldids[2]; /* 4: Ffs: old user and group ids. */int32_t inumber; /* 4: Lfs: inode number. */

} di_u;u_int64_t di_size; /* 8: File byte count. */int32_t di_atime; /* 16: Last access time. */int32_t di_atimensec; /* 20: Last access time. */int32_t di_mtime; /* 24: Last modified time. */int32_t di_mtimensec; /* 28: Last modified time. */int32_t di_ctime; /* 32: Last inode change time. */int32_t di_ctimensec; /* 36: Last inode change time. */ufs_daddr_t di_db[NDADDR]; /* 40: Direct disk blocks. */ufs_daddr_t di_ib[NIADDR]; /* 88: Indirect disk blocks. */u_int32_t di_flags; /* 100: Status flags (chflags). */int32_t di_blocks; /* 104: Blocks actually held. */int32_t di_gen; /* 108: Generation number. */u_int32_t di_uid; /* 112: File owner. */u_int32_t di_gid; /* 116: File group. */int32_t di_spare[2]; /* 120: Reserved; currently unused */

}

ufs/dinode.h

AndrejBrodnik:Digitalnaforenzika 16

UFS– datotečnisistemi

AndrejBrodnik:Digitalnaforenzika 17

UFS– imeniškadatoteka

• posebnadatoteka,kisestojiizdelovimenika• SystemVjeimelpredoločenovelikostimenika• korenskiimenikjeopisanvinode2• vsakimenikimaposebenvnos..,kipove,kjejestarš

AndrejBrodnik:Digitalnaforenzika 18

Page 7: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

7

UFS– imeniškivnos

#define MAXNAMLEN 255struct direct {u_int32_t d_ino; /* inode number of entry */u_int16_t d_reclen; /* length of this record */u_int8_t d_type; /* file type, see below */u_int8_t d_namlen; /* length of string in d_name */char d_name[MAXNAMLEN + 1];

/* name with length <= MAXNAMLEN */};

ufs/dir.h

AndrejBrodnik:Digitalnaforenzika 19

• Izziv: čemu jenamenjen zapis reclen?Setoda izkoristiti zaskrivanje podatkov?

• Izziv: kaj jetoACL?Kako je implementiran pri ufs?

UFS– nadblok

• nadblok(superblock)hraniopiskonfiguracijeskupinecilindrov• raztresenopodisku– nazačetkuvsakeskupinecilindrov• daseohraniknfiguracija,česeenzapisizgubi

• orodjedumpfs

• Izziv: poiščitestrukturonadbloka.Kakovemo,daimamoopravkazUFSdatotečnimsistemom?Kjetopiše?Preberitesuperblockzvašegaunixdatotečnegasistemainvnjemugotovite,zakateridatotečnisistemgre.

AndrejBrodnik:Digitalnaforenzika 20

Datotečnisistemext2

• osnovnastrukturapodobnakotpriufs• namestoskupincilindrov,govorimooskupinahblokov• imenikiinindeksnavozlišča– kotpriUFS

AndrejBrodnik:Digitalnaforenzika 21

Page 8: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

8

Datotečnisistemext2

• orodjezapregledovanjediska:LinuxDiskEditor(LDE)(http://lde.sourceforge.net/)

AndrejBrodnik:Digitalnaforenzika 22

Datotečnisistemext2

AndrejBrodnik:Digitalnaforenzika 23

ext2– indeksnovozlišče

struct ext2_inode {__u16 i_mode; /* 0: File mode */__u16 i_uid; /* 2: Owner Uid */__u32 i_size; /* 4: Size in bytes */__u32 i_atime; /* 8: Access time */__u32 i_ctime; /* 12: Creation time */__u32 i_mtime; /* 16: Modification time */__u32 i_dtime; /* 20: Deletion Time */__u16 i_gid; /* 24: Group Id */__u16 i_links_count; /* 26: Links count */__u32 i_blocks; /* 28: Blocks count */__u32 i_flags; /* 32: File flags */__u32 l_i_reserved1; /* 36: OS dependent 1 */__u32 i_block[EXT2_N_BLOCKS];/* 40: Pointers to blocks */__u32 i_generation; /* 100: File version (for NFS) */__u32 i_file_acl; /* 104: File ACL */__u32 i_dir_acl; /* 108: Directory ACL */__u32 i_faddr; /* 112: Fragment address */__u8 l_i_frag; /* 116: Fragment number */__u8 l_i_fsize; /* 117: Fragment size */__u16 i_pad1; /* 118: */__u32 l_i_reserved2[2]; /* 120: OS dependent 2 */

};ext2fs/ext2_fs.h

AndrejBrodnik:Digitalnaforenzika 24

Page 9: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

9

ext2– indeksnovozlišče

AndrejBrodnik:Digitalnaforenzika 25

Imeniškadatoteka

• posebnadatoteka,kisestojiizdelovimenika• SystemVjeimelpredoločenovelikostimenika• korenskiimenikjeopisanvinode2• vsakimenikimaposebenvnos..,kipove,kjejestarš

AndrejBrodnik:Digitalnaforenzika 26

ext2– imeniškivnos

#define EXT2FS_MAXNAMLEN 255struct ext2fs_direct {u_int32_t e2d_ino; /* inode number of entry */u_int16_t e2d_reclen; /* length of this record */u_int8_t e2d_namlen; /* length of string in d_name */u_int8_t e2d_type; /* file type */char e2d_name[EXT2FS_MAXNAMLEN];

/* name with length <= EXT2FS_MAXNAMLEN */

};ext2fs/ext2fs_dir.h

AndrejBrodnik:Digitalnaforenzika 27

Page 10: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

10

ext2– nadblok

• nadblok(superblock)hraniopiskonfiguracijeskupineblokov• raztresenopodisku– nazačetkuvsakeskupineblokov• daseohraniknfiguracija,česeenzapisizgubi

• orodjedumpfs

• Izziv: poiščitestrukturonadblokaext2.PrimerjajtejosstrukturoUFSsuperbloka.

AndrejBrodnik:Digitalnaforenzika 28

Datotečnisistemext3

• avtorStephenTweedie 1999/2000/2001• osnovnastrukturaenakakotpridatotečnemsistemuext2• razdelitevnaskupineblokovvključnoznadblokom(superblock)• imenikiinindeksnavozlišča• vodenjeevidenceodisku

• dodanajemožnosthranjenjadnevniškestrukture• osnovnidatotečnisistemOSLinux

AndrejBrodnik:Digitalnaforenzika 29

Dnevnikiext3

• vdnevnikihsehranijozapisiovsehspremembahvdatotečnemsistemu• dnevniškastrukturaomogočatrivrstevodenjadnevnika:• celovitdnevnik(journal):hranisevse;takometapodatkekotvsebino–najboljvarno• zaporedno(ordered):hranijosesamometapodatkivendarseshranijopouspešnoopravljenioperaciji– srednjevarno• zapiši(writeback):podobnokotzaporedni,ledaseshranjujejodnevniškizapisihkratizdejanskimizapisi– najmanjvarno

AndrejBrodnik:Digitalnaforenzika 30

Page 11: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

11

Dnevnikiext3

• dnevnikjezaporednadatoteka• zapisisoshranjenipredprvoskupinoblokov• dnevniškaskupinajesestavljenapodobnokotbločnaskupina:• dnevniškinadblok• opisitransakcij

AndrejBrodnik:Digitalnaforenzika 31

Dnevnikiext3

• opistransakcijvsebujetrivrsteblokov:• opisniblok(descriptorblock):začetektransakcije• metadatabloki:opisitransakcije• zaključniblok(commitblock):zaključektransakcije• preklicniblok(revokeblock):čepridedonapakeinvsebujeseznamblokovvdatotečnemsistemu,kijihjepotrebnoponovnonamestiti(restavrirati)

• vsi(tudinadblok)sepričnozmagičnoštevilko:JFS_DESCRIPTOR_BLOCK1JFS_COMMIT_BLOCK2JFS_SUPERBLOCK_V13JFS_SUPERBLOCK_V24JFS_REVOKE_BLOCK5

AndrejBrodnik:Digitalnaforenzika 32

Dnevnikiext3

• Izziv: preučitestrukturonadbloka(npr.http://linuxsoftware.co.nz/wiki/ext3).Pridobiteblokizsvojegadatotečnegasistemainkomentirajtenjegovovsebino.• Izziv: Kakodobitinazajizbrisanodatotekovsistemuext2inkakovext3?Kajpavufs?

AndrejBrodnik:Digitalnaforenzika 33

Page 12: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

12

Datotečnisistemi

• obstajajošedrugidatotečnisistemi• reiserFS,XFS,gfs,afs,ext4,HSM,...

• Izziv: nareditepodobnoanalizozaomenjenesistemekotsmojonaredilizaufsinext.• Izziv: Primerjajteopisanedatotečnesistememedseboj– vkateremlahkokjeskrijemokakšnepodatke?• Izziv: pripravitekolegupoljubendatotečnisisteminnajkolegaugotovi,zakaterisistemgre.

AndrejBrodnik:Digitalnaforenzika 34

Forenzičniviri

• zaanalizoslikediskauporabljamosamostoječeoperacijskesisteme• primer:Helix(Ubuntu)

• Izziv: pripravitesiHelixCDinpreverite,kakšnaorodjasoženanjem.• Izziv: poiščitešekakšnedrugepodobnesisteme.

AndrejBrodnik:Digitalnaforenzika 35

Forenzičniviri

• orodjeSleuthKitzAutopsyForensicBrowser

AndrejBrodnik:Digitalnaforenzika 36

Page 13: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

13

Forenzičniviri– raziskavazSleuthKit

AndrejBrodnik:Digitalnaforenzika 37

Forenzičniviri– raziskavazSleuthKit

AndrejBrodnik:Digitalnaforenzika 38

Forenzičniviri

• videoFileSystemForensicAnalysis(www.youtube.com/watch?v=rmG8yt1WpuA)• različneorganizacije• SANSInstitute(Sysadmin,Audit,Networking,andSecurity):tečaji,literatura,…• TheHoneynetProject(http://www.honeynet.org/)

• Izziv: poglejtesiizzivenahttp://www.honeynet.org/challenges inselotitekateregaodnjih.

AndrejBrodnik:Digitalnaforenzika 39

Page 14: Digitalna forenzika - LUSY · 2018-04-16 · 1/2/17 3 /var imenik •vsebuje datoteke, ki se spreminjajo skozi čas •poštne in tiskalniške vrste •beležke (logging)•podatkovja

1/2/17

14

Forenzičniviri

• nekajzanimivihinbogatihreferenc:• B.Carter,Filesystemforensicanalysis.Addison-Wesley,2005.• GregorioNarváez,TakingadvantageofExt3journalingfilesysteminaforensicinvestigation.SANSInstitute,2007.

AndrejBrodnik:Digitalnaforenzika 40