sqlite Forensic1

SQLite kullanımı basit, çok yer kaplamayan ve mobil cihazlarda rahatlıkta kullanılabilen açık kaynak kodlu ve sistem bağımsız bir veritabanı kütüphanesi ve motorudur. SQLite, onlarca programlama dili ile kullanılabilir. Az yer kaplaması ve istenilen hızda veri işlemleri yapabilmesi tercih sebepleri arasındadır.

SQLite dış kaynaklara bağımlı olmayan, bütün işletim sistemlerinde çalışabilen, kendi kendini barındıran, güvenirliği yüksek depolama çözümüdür ki çok kullanılmasını buna bağlayabiliriz. Gömülü bir sistemdir yani bir sunucuya ihtiyaç duymaz veri yazma ve okuma işlemlerini direkt olarak diskteki veritabanı dosyasına yazar, SQL için düşünülen index, trigger vs. bütün özellikleri barındırmaktadır, kendisini açık kaynak bir kamu malı olarak ifade etmektedir.

Hem iOS hem de Android veri saklamak için SQLite'ı,bir depolama biçimi olarak kullanmaktadır. Çok çeşitli masaüstü ve mobil Web tarayıcıları (Chrome, Firefox vb.), Skype, WhatsApp, iMessages, anlık mesajlaşma uygulamaları SQLite'ı kullanmaktadır.

SQLite veritabanlarının adli analizinde genellikle bir veritabanı görüntüleyici kullanılır. SQLite veritabanlarını incelemek için ücretsiz ya da piyasada bulunan bir veritabanı görüntüleyicilerin bazı dezavantajları bulunmaktadır. Bunlardan son zamanlarda silinen, yeni eklenmiş (ancak henüz onaylanmamış) kayıtlara erişme ve görüntülemede yetersiz oldukları görülmektedir. SQLite veritabanlarının adli bilişim araçları kullanılarak incelenmesinde başarılı sonuçlar alınabilmektedir.

SQLite Kurtarma ve Analiz Araçları

Oxygen Forensic, Belkasoft Evidence Center, UFED, Sqlite Forensic Explorer gibi adli bilişim yazılımları ile SQLite veritabanları incelemelerinde disk veya diskin adli kopyası üzerinde güvenilir bir şekilde veri kurtarma yapılarak delil elde edilebilmektedir. Bu adli araçlar içerisindeki SQLite Viewer veya HexViewer ile ayrılmamış alanlarda depolanan veriler de tespit edilerek görüntüleyebilmektedir.

sqlite Forensic2

Bu incelemede, Belkasoft Evidence Centre mevcut, boşaltılmış, silinmiş veya bozuk SQLite veritabanlarını incelemek için oluşturulmuştur.

Güçlü veri kurtarma algoritmaları, varolan, silinen ve referans alınmayan veritabanı kayıtlarından bilinen türde verileri (tarayıcı geçmişi veya mobil uygulama verileri gibi pek çok şey arasında) tespit edebilir ve ayıklayabilmektedir.

Serbest Listeler: Silinen ve Temizlenmiş Veritabanlarına Erişim

SQLite’ın veriyi nasıl sakladığına ve yönettiğine kısaca bir göz atalım. Düzenli kayıtlar, “Database Image” adlı bir dosyada saklanır. Database Image sabit boyuttaki sayfalara bölünür. Her sayfanın boyutu dosya üstbilgisinde belirtilir. Her sayfa, SQLite tarafından atanan birçok role sahip olabilir. Bu rollerden biri gerçek verileri depolamaktır. Her sayfanın SQLite motoru tarafından atanmış bir numarası vardır. Sayfa numarası 1 ile başlar.

Bir SQLite veritabanında bir veya daha fazla kullanılmayan sayfa olabilir. Bu sayfalar performansı artırmak için oluşturulabilir ve ileride kullanılmak üzere saklanabilir; bu durumda anlamlı veriler içermez. Veritabanı dosyasındaki kullanılmayan sayfalar “boş liste” dosyaya depolanır.

Auto Vacuum" seçeneği etkin olmayan SQLite veritabanından silinen sayfalar, silinene kadar veya başka bir veriyi saklamak için veritabanı motoru tarafından talep edilen bir boş listeye yerleştirilmektedir. Sayfalar sadece boş listede bulunmakta ve düzenli araçlar vasıtasıyla veritabanı motoruyla erişilememektedir. Kullanılmayan bu sayfalar, silinmiş SMS mesajları, silinen sohbet kayıtları ve boş tarama geçmişleri gibi adli olarak önemli bilgiler içerebilir. Sonuç olarak, boş listede saklanan bilgilere erişmek adli bilişim açısından son derece önemlidir.

Standart veritabanı görüntüleyicileri ve SQLite bileşenleri, boş listede depolanan bilgilere erişim sağlayamaz. Boş listelerde saklanan silinmiş bilgileri güvenilir bir şekilde tespit etmek, ayıklamak ve erişmek için adli bilişim araçları geliştirilmiştir.

sqlite Forensic3

SQLite Database Browser, Skype geçmiş dosyasının Mesajlar tablosunda sıfır kayıtları gösterir.

Adli bilişim yazılımları ile SQLite analizinde; silinmiş SQLite sayfalarının incelenmesi, temizlenen mobil uygulama verileri, şüpheli tarafından silinen sohbetler, temizlenen Web geçmişi ve diğer veri türleri gibi konularda ayrıntılı sonuç alınabilmektedir.

sqlite Forensic4

Belkasoft Evidence Center'ı kullanarak görünüşte boş olan Skype veritabanından onlarca Skype sohbetinin geri yüklemesi yapılmıştır.

Silinmiş kayıtları temizlenmiş SQLite veritabanlarından kurtarma kabiliyeti, şüphelilerin çevrimiçi iletişim analizlerini içeren herhangi bir soruşturma için şarttır, bu nedenle, inceleme esnasında silinmiş kayıtların tespitinde desteği bulunan bir adli araç kullanılmalıdır.

Serbest çalışan, silinen SQLite sayfalarına erişim sağlarken, ön giriş günlüğü (veya "WAL"), ana veritabanına henüz taahhüt edilmemiş kayıtlara erişilebilmektedir.

Mevcut kayıt bilgileri ile geri yüklenen kayıt bilgileri ve aynı veritabanının eski tarihli sürümleri de aynı listede görünecektir. Kaydedilmemiş sayfalar ise farklı bir renkle vurgulanmaktadır.

sqlite Forensic5

SQLite Veritabanlarından Veri Kurtarma

SQLite veritabanlarını depolayan mevcut dosyaların yanısıra boşaltılmış veya fiziksel olarak disk üzerinden silinmiş veritabanlarını kurtarmak gerekebilmektedir. Veri kurtarma işleminde silinen dosyaların üzerine yeni veri yazılmış olabilmektedir. Bu şekildeki kurtarılmış verilerin incelenmesi özel teknikler kullanılması gerekmektedir. Dosya imza analizi yapılarak kurtarılan dosyanın gerçekten veritabanı olup olmadığı teyit edilir.

SQLite veritabanlarının kurtarılmasında bazı sorunlar bulunmaktadır. Bunlardan SQLite veritabanı dosyası imza aramayla algılanabilen bir başlık içermesine rağmen, başlığın kendisi bir dosyanın uzunluğu hakkında hiçbir bilgi içermemektedir. Altbilgi de yoktur. Bu nedenle bir SQLite veritabanının tam uzunluğunu belirlemek son derece zordur.

Ayrılmamış Alanlarda SQLite Veritabanlarının Tespiti

SQLite veritabanlarında ayrılmamış alan rastgele veri yığınları içeren sayfa parçalarıdır. Bu normal bir sabit sürücüdeki ayrılmamış alana benzemektedir. Bu ayrılmamış parçalar geçerli veri veya işaretçileri içermez. Serbest listelerin aksine, ayrılmamış alan SQLite veritabanındaki herhangi bir yerden resmen atıfta bulunulmaz. Sonuç olarak, ayrılmamış alanı incelemek çok zor ve zaman alıcıdır. Dağıtılmamış fragmanlar genellikle rasgele parçalar ve veri parçalarını içerir. Bu parçaların hangi sayfaya dahil edildiğini belirlemek mümkün değildir. Ayrıca kırık ilişkileri düzeltmek imkansızdır.

Aynı zamanda, adli araştırmalar için ayrılmamış alanı analiz etmek esastır; çünkü bu sayfa parçaları kullanıcı tarafından uzun süre önce silinmiş verileri içerebilir.

Adli bilişim yazılımları SQLite veritabanındaki ayrılmamış alanları Hex Viewer'da görüntüleyebilmektedir.  

sqlite Forensic6

Ayrılmamış SQLite alanından Skype sohbeti kurtarılmıştır. Elde edilen verilerin çoğu bozulmuş olabilir. Ancak bu şekliyle bile bir soruşturmanın aydınlatılmasına yardımcı olabilmektedir.

SQLite veritabanlarının adli incelemesinde, silinen SQLite veritabanlarını kurtarma ve SQLite ayrılmamış alandaki verileri yorumlama becerisine sahip olan freelist ve WAL analizlerini destekleyen bir araç her adli bilişim uzmanı için zorunluluktur.

  • Veri Kurtarma Yapılan Aygıtlar

hard-disk-kurtarma

  

flash-kurtarma

          

ss-veri-kurtarma

   

server-kurtarma

   

raid-kurtarma

   

dvr kayit

 

mobil

 
Hard Disk   USB Bellek   

SSD

 

Server

 

RAID

 

DVR-Kayıt Cihazı

   Mobil Cihaz