
Bu makalenin amacı: tekrarlanabilir bir Windows lab. kurmak, standart bir kullanıcı verisi üretmek ve artefakt-toplama tasarımını (triage vs full image) netleştirmek. LangurTrace’in önerdiği ortam bileşenleri (backend runtime / client interface / integrated platform) ve artefakt sınıfları bu makalede izah edilecektir.
Bu yazı dizisinin temel amacı, Windows üzerinde çalışan yerel LLM uygulamalarının bıraktığı adli izleri (forensic artefakt) incelemek için tekrarlanabilir bir laboratuvar ortamı kurmak ve standart bir veri üretim protokolü oluşturmaktır. Yerel LLM uygulamaları, örneğin lokal model çalıştıran backend servisleri ve bunlara bağlanan sohbet arayüzleri, tıpkı klasik yazılımlar gibi kullanıcı davranışlarını yansıtan dosya ve loglar üretir.
Bu çalışmada referans aldığımız LangurTrace çerçevesi*, söz konusu izlerin sistematik analizini yapmak için LLM ortamlarını bileşenlerine ayıran bir yapı sunar. Şimdilik odak noktamız yalnızca Windows ve yerel (local) LLM ortamlarıdır; ChatGPT web/API gibi bulut tabanlı servisleri serinin ilerleyen bölümlerinde ele alacağız. (*https://dfrws.org/wp-content/uploads/2025/10/LangurTrace-Forensic-analysis-of-lo_2025_Forensic-Science-International-Di.pdf)
Buradaki yaklaşımımız, artefakt analizini soyut teoriler yerine somut dosya ve konumlar üzerinden yaparak öğretmek ve bu süreci bir standarda oturtmaktır. Bu bölümü, ileride yapacağımız detaylı analizlere zemin hazırlayacak bir “kurulum, veri üretimi ve toplama” rehberi olarak düşünebilirsiniz.
Yerel LLM ekosistemini doğru analiz edebilmek için mimariyi tek bir yazılım olarak değil, birbiriyle konuşan parçalar bütünü olarak görmemiz gerekir. Genellikle bir backend runtime (modeli çalıştıran servis) ve bir client interface (sohbet ve oturum yönetimi yapan arayüz) birlikte çalışır.
LangurTrace metodolojisinde ortamı “backend runtime / client interface / integrated platform” şeklinde sınıflandırıyoruz. Bu ayrım, adli analiz sürecinde hayati önem taşır çünkü konuşma kayıtlarını genellikle client tarafında bulurken; model indirme, çalıştırma veya silme gibi yaşam döngüsü izlerini backend tarafında tespit ederiz. Bilinmelidir ki, kullanılan modelin türü adli izlerin yapısını kökten değiştirmez; izler daha çok uygulamanın veriyi nasıl yönettiğine bağlıdır.
Bu seride, mimari farkı net görebilmek ve artefakt’ları kaynağına göre sınıflandırmayı kolaylaştırmak adına şu minimum kurulumu kullanacağız:
• Backend runtime: Ollama
• Client interface: Chatbox
Standartlaştırma için önce “hangi izler var?” sorusuna cevap vermek gerekir. LangurTrace, LLM uygulamalarında ortak görülen artefakt türlerini şu şekilde özetliyor: downloaded models, model setup history, conversation session configurations, chat history, uploaded/generated files, API keys. Bu kategoriler, adli incelemede iki temel ihtiyacı karşılar:
Kullanıcı niyeti ve davranışı (chat history, uploaded/generated files)
Zaman çizelgesi ve ilişkilendirme (model setup history, logs, manifests, API calls)
LangurTrace’e göre örneğin Chatbox tarafında config.json dosyası; ayarlar, API anahtarları, kayıtlı modeller, varsayılan prompt’lar ve sohbet oturumlarını bir arada tutabilir. Backend tarafında ise server log’ları ve model manifestleri, hangi modelin ne zaman indirildiği/çalıştırıldığı gibi adli değer taşıyan kayıtlar sunar.
Bu serideki tüm bulguların tekrar edilebilir olması için laboratuvar ortamı Hyper-V tabanlı kurgulanmıştır.
Konfigürasyonda kullanılan sistem bileşenleri aşağıdaki gibidir:
• Ollama version: 0.13.5
• Ollama API Host: http://127.0.0.1:11434
• Model: llama3.2: latest
• chatbox (v1.18.2)
• OS Name: Microsoft Windows 11 Pro
• OS Version: 10.0.26200 N/A Build 26200
Sanal makinanın imajı FTK Imager ile alınmıştır.
Kaynak türü: Logical
İmaj formatı: E01
İmaj alma işlemi hatasız tamamlanmış ve yazılım ara yüzünde başarılı şekilde doğrulanmıştır.

MD5: f99e8449a97ad803861e71c50fc3b2fa
SHA1: 294afc6d6a9f2d60e9c93f7221bc59ce2dfccd33
5.1.Ollama
LangurTrace Makalesi, bir LLM imajında en önemli üç artefaktın server.log, model manifest ve model layer olduğunu belirtmektedir. Server.log dosyası, API çağrı kayıtlarını içerir ve her bir çağrı için API türü, zaman damgası, çağrının başarı durumu, gecikme süresi ve çağrı yapan IP adresi gibi bilgileri sunar. Temel API işlemleri arasında model listeleme, indirme, çalıştırma, silme ve sohbet istekleri yer almaktadır. Özellikle model indirme kayıtları, ilgili modelin ayrıntılı meta verilerini içerir; bu sayede araştırmacılar modellerin daha önce hangi tarihlerde yüklendiğini tespit edebilirler.

Bizim incelediğimiz imajda da server.log içerisinde hem model kurulum (setup) süreçlerini hem de API çağrılarını gözlemleyebiliyoruz. Kullanıcı bir modeli indirdiğinde, Ollama bu modeli SHA-256 özetleri (hash) hâlinde saklamaktadır. Kullanıcı modeli silse bile, günlüklerdeki bu “parmak izleri” sayesinde hangi spesifik modelin kullanıldığı geriye dönük olarak kanıtlanabilir. Bu kısmı anlaşılır kılmak için “server.log” dosyasını analiz edeceğiz.
time=2026-02-18T11:20:56.166+03:00 level=INFO source=routes.go:1554 msg=”server config” env=”map[CUDA_VISIBLE_DEVICES: GGML_VK_VISIBLE_DEVICES: GPU_DEVICE_ORDINAL: HIP_VISIBLE_DEVICES: HSA_OVERRIDE_GFX_VERSION: HTTPS_PROXY: HTTP_PROXY: NO_PROXY: OLLAMA_CONTEXT_LENGTH:4096 OLLAMA_DEBUG:INFO OLLAMA_FLASH_ATTENTION:false OLLAMA_GPU_OVERHEAD:0 OLLAMA_HOST:http://0.0.0.0:11434 OLLAMA_KEEP_ALIVE:5m0s OLLAMA_KV_CACHE_TYPE: OLLAMA_LLM_LIBRARY: OLLAMA_LOAD_TIMEOUT:5m0s OLLAMA_MAX_LOADED_MODELS:0 OLLAMA_MAX_QUEUE:512 OLLAMA_MODELS:C:\\LLM_Forensic_Lab\\Ollama\\Models OLLAMA_MULTIUSER_CACHE:false OLLAMA_NEW_ENGINE:false OLLAMA_NOHISTORY:false OLLAMA_NOPRUNE:false OLLAMA_NUM_PARALLEL:1 OLLAMA_ORIGINS:[http://localhost https://localhost http://localhost:* https://localhost:* http://127.0.0.1 https://127.0.0.1 http://127.0.0.1:* https://127.0.0.1:* http://0.0.0.0 https://0.0.0.0 http://0.0.0.0:* https://0.0.0.0:* app://* file://* tauri://* vscode-webview://* vscode-file://*] OLLAMA_REMOTES:[ollama.com] OLLAMA_SCHED_SPREAD:false OLLAMA_VULKAN:false ROCR_VISIBLE_DEVICES:]” time=2026-02-18T11:20:56.188+03:00 level=INFO source=images.go:493 msg=”total blobs: 6″ time=2026-02-18T11:20:56.189+03:00 level=INFO source=images.go:500 msg=”total unused blobs removed: 0″ time=2026-02-18T11:20:56.195+03:00 level=INFO source=routes.go:1607 msg=”Listening on [::]:11434 (version 0.13.5)” time=2026-02-18T11:20:56.200+03:00 level=INFO source=runner.go:67 msg=”discovering available GPUs…” time=2026-02-18T11:20:56.218+03:00 level=INFO source=server.go:429 msg=”starting runner” cmd=”C:\\Users\\LLM_Forensics\\AppData\\Local\\Programs\\Ollama\\ollama.exe runner –ollama-engine — port 51759″ time=2026-02-18T11:20:58.310+03:00 level=INFO source=server.go:429 msg=”starting runner” cmd=”C:\\Users\\LLM_Forensics\\AppData\\Local\\Programs\\Ollama\\ollama.exe runner –ollama-engine — port time=2026-02-18T11:20:58.949+03:00 level=INFO source=runner.go:106 msg=”experimental Vulkan support disabled. To enable, set OLLAMA_VULKAN=1″ time=2026-02-18T11:20:58.951+03:00 level=INFO source=server.go:429 msg=”starting runner” cmd=”C:\\Users\\LLM_Forensics\\AppData\\Local\\Programs\\Ollama\\ollama.exe runner –ollama-engine — port 51776″ time=2026-02-18T11:21:15.683+03:00 level=INFO source=types.go:60 msg=”inference compute” id=cpu library=cpu compute=”” name=cpu description=cpu libdirs=ollama driver=”” pci_id=”” type=”” total=”16.0 GiB” available=”12.1 GiB” time=2026-02-18T11:21:15.683+03:00 level=INFO source=routes.go:1648 msg=”entering low vram mode” “total vram”=”0 B” threshold=”20.0 GiB” [GIN] 2026/02/18 – 11:21:15 | 200 | 5.8811ms | 127.0.0.1 | GET “/api/version” [GIN] 2026/02/18 – 13:25:02 | 200 | 0s | 127.0.0.1 | GET “/” [GIN] 2026/02/18 – 13:25:02 | 404 | 0s | 127.0.0.1 | GET “/favicon.ico” [GIN] 2026/02/18 – 13:44:07 | 200 | 0s | 127.0.0.1 | GET “/api/version” |
5.1.1.Server.log Dosyasının Analizi: Başlama (Startup) Artefaktlarının İncelenmesi
Bu log dosyası Ollama servisinin başlatılma sürecine ilişkin ayrıntılı yapılandırma ve çalışma parametrelerini bize göstermektedir. Kayda göre sunucunun 18.02.2026 11:20:56 (time) zamanında başlatıldığı, başlatma esnasında sistem çalışma ortamına ilişkin tüm çevresel değişkenleri (env) kaydettiği görülmüştür. Bu iki önemli bulgu adli analiz açısından önem arz eder; çalışma zamanı, değişkenlerin durumu bize sistemin konfigürasyonunu tam olarak göstermekle birlikte uygulamanın hangi parametreler ile çalıştığını doğrulama imkânı tanır.
5.1.2. Model Depolama Konumu ve Dosya Sistemi Artefaktları
Log içerisinde tespit edilen OLLAMA_MODELS:C:\\LLM_Forensic_Lab\\Ollama\\Models parametresi oldukça dikkat çekicidir. Şöyle ki, bu dizin bize dil modelimizin dosyaların fiziksel olarak depolandığı konumu göstermektedir. Adli bilişim açısından bu dizin, model bütünlüğünün doğrulanması, yetkisiz model değişiklerinin tespiti, zararlı veya manipüle edilmiş model dosyalarının analizi olarak değerlendirilebilir. Model dosyalarımızın belirli bir laboratuvar klasör yapısı altında konumlandırılmış olması, analiz ettiğimiz sistemin kontrollü bir test ortamı olmasındandır.
5.1.3. Bağlam Uzunluğu ve Bellek Davranışı
Log içerisinde tespit edilen OLLAMA_CONTEXT_LENGTH:4096 parametresi, modelin bağlam uzunluğunu (context length) belirtmektedir. Bağlam uzunluğu, modelin tek bir etkileşim kapsamında işleyebileceği maksimum token sayısını ifade eder. Bu değer, olası prompt truncation durumlarının analizinde ve uzun girdiye dayalı saldırıların (örneğin prompt flooding) değerlendirilmesinde referans noktası olarak
kullanılmaktadır.
Ayrıca, OLLAMA_NOHISTORY:false parametresi, istemci etkileşim geçmişinin devre dışı bırakılmadığını göstermektedir. Bu durum, uygulamanın geçmiş prompt ve yanıtları bellekte tutabileceğine işaret etmektedir. Dolayısıyla bellek (RAM) analizinde kullanıcı girdilerine ait kalıntıların tespit edilme olasılığı artmaktadır. OLLAMA_NOHISTORY:true olsa ne olurdu?
Elde ettiğimiz bu yapılandırma bilgileri, LLM tabanlı sistemlerde veri kalıcılığı (data persistence) ve gizlilik risklerinin değerlendirilmesi açısından önem arz eder.
5.1.4. Ağ Yapılandırması ve Erişim Analizi
Log içerisinde yer alan OLLAMA_HOST:http://0.0.0.0:11434 parametresi ile Ollama hostunun 0.0.0.0 adresine bağlanması, servisin yalnızca yerel makinede değil, ağ üzerindeki tüm ara yüzlerde erişilebilir olduğunu gösterir. Bu durum potansiyel risk taşısa da çalışmaların kontrollü laboratuvar ürünü olduğunu hatırlatmakta fayda var. Devam eden http erişim kayıtları incelendiğinde 127.0.0.1 | GET “/api/version” şeklindeki tüm isteklerin yalnızca localhost üzerinden geldiği görülmektedir. Bu da analiz edilen örnekte dış ağdan bir erişim gerçekleşmediğini göstermektedir.
Bu iki bulguyu birlikte değerlendirdiğimizde sistem ağ üzerinden erişime açık erişime yapılandırılmış olsa da, incelenen zaman aralığında yalnızca lokalden erişim gerçekleşmiştir.
5.1.5. Versiyon Bilgisi
Çalıştırılan sürüm bilgisinin log içerisinde yer aldığı tespit edilmiştir. İlgili parametre ve değer şöyledir: Listening on [::]:11434 (version 0.13.5)
5.1.6. Donanım Bilgisi
Log dosyası içerisinde sistemin açıkça GPU araması yaptığı görülmüştür: msg=”discovering available GPUs…”
Ancak logların devamında msg=”inference compute” id=cpu library=cpu compute=”” name=cpu description=cpu libdirs=ollama driver=”” pci_id=”” type=”” total=”16.0 GiB” available=”12.1 GiB” ifadelerinin yer aldığı görülmüş, sistemin GPU tespit edemediğini ve CPU taban
5.1.7. Runner Süreçleri ve Port Kullanımı
Log içerisinde birden fazla “runner” sürecinin başlatıldığı görülmektedir:
runner” cmd=”C:\\Users\\LLM_Forensics\\AppData\\Local\\Programs\\Ollama\\ollama.exe runner — ollama-engine –port 51759″
runner” cmd=”C:\\Users\\LLM_Forensics\\AppData\\Local\\Programs\\Ollama\\ollama.exe runner — ollama-engine –port 51767″
runner” cmd=”C:\\Users\\LLM_Forensics\\AppData\\Local\\Programs\\Ollama\\ollama.exe runner — ollama-engine –port 51776″
Runner’ları ollama’nın childprosesleri gibi düşünebiliriz. Port numaralarını işleme göre sürekli değişmesi ise dinamik port kullanımına işaret eder ve bu da hangi sürecin ya da hangi inference sürecinin hangi port ile ilişkili olduğunu gösterir.
Buna ek olarak, makaleye göre app.log dosyası startup ve runtime bilgilerini, upgrade.log ise yazılım güncelleme olaylarını belgelemektedir. İncelediğimiz imajda bu bilgiler de doğrulanabilmektedir.

5.1.8. app.log Dosyasının İncelenmesi: Başlatma (Startup), Sürüm ve Ortam Artefaktları
App.log, Ollama uygulamasının Windows ortamındaki genel çalışma davranışlarını, işletim sistemi ile olan etkileşimini ve arka plan işlemlerini izleyen ve kayıt altına alan bir dosyadır.
time=2026-02-18T11:20:54.781+03:00 level=INFO source=app_windows.go:270 msg=”starting Ollama” app=C:\Users\LLM_Forensics\AppData\Local\Programs\Ollama version=0.13.5 OS=Windows/10.0.26200 time=2026-02-18T11:20:54.783+03:00 level=INFO source=app.go:237 msg=”initialized tools registry” tool_count=0 time=2026-02-18T11:20:54.785+03:00 level=INFO source=app.go:277 msg=”starting ui server” port=51629 time=2026-02-18T11:20:54.785+03:00 level=INFO source=app.go:252 msg=”starting ollama server” time=2026-02-18T11:20:57.786+03:00 level=INFO source=updater.go:254 msg=”beginning update checker” interval=1h0m0s time=2026-02-18T11:20:58.278+03:00 level=INFO source=updater.go:129 msg=”New update available at https://github.com/ollama/ollama/releases/download/v0.16.2/OllamaSetup.exe” time=2026-02-18T11:22:55.648+03:00 level=INFO source=updater.go:217 msg=”new update downloaded C:\\Users\\LLM_Forensics\\AppData\\Local\\Ollama\\updates_v2\\0x8DE6DB006FA038D\\OllamaSe tup.exe” time=2026-02-18T12:22:56.016+03:00 level=INFO source=updater.go:129 msg=”New update available at https://github.com/ollama/ollama/releases/download/v0.16.2/OllamaSetup.exe” time=2026-02-18T12:22:56.323+03:00 level=INFO source=updater.go:178 msg=”update already downloaded” bundle=C:\Users\LLM_Forensics\AppData\Local\Ollama\updates_v2\0x8DE6DB006FA038D\OllamaSe tup.exe time=2026-02-18T13:22:56.713+03:00 level=INFO source=updater.go:129 msg=”New update available at https://github.com/ollama/ollama/releases/download/v0.16.2/OllamaSetup.exe” time=2026-02-18T13:22:56.955+03:00 level=INFO source=updater.go:178 msg=”update already downloaded” bundle=C:\Users\LLM_Forensics\AppData\Local\Ollama\updates_v2\0x8DE6DB006FA038D\OllamaSe tup.exe Log dosyasının ilk satırlarında uygulamanın başlatılma anına ait kök dizin ve ortam bilgileri açıkça görülmektedir: msg=”starting Ollama” app=C:\Users\LLM_Forensics\AppData\Local\Programs\Ollama version=0.13.5 OS=Windows/10.0.26200 |
Bu kayıt bize ne söylüyor: Uygulamanın çalıştırma yolunun AppData\Local\Programs\Ollama dizini olduğunu, çalıştırılan sürümün 0.13.5 olduğunu, üzerinde çalıştığı işletim sisteminin Windows 10 ve yapım numarasının 26200 olduğunu net olarak ifade ediyor.
5.1.9. Araç (Tools) Kayıtları
Log içerisindeki msg=”initialized tools registry” tool_count=0 ifadesi, modelin harici araçları (fonksiyon çağırma, web araması, kod çalıştırma vb.) kullanabilme yeteneğini başlattığını göstermektedir. Ancak tool_count=0 değeri, bu analiz edilen oturumda Ollama’ya entegre edilmiş herhangi bir dış aracın yapılandırılmadığını veya yüklenmediğini gösterir. Bu durum, modelin dış dünya ile etkileşim kapasitesinin (izole bir laboratuvar ortamında olmasından ötürü) sınırlı olduğunu açıkça gösterir.
5.1.10. Arayüz ve Sunucu Süreçlerinin Ayrışması
Kayıtlarda yer alan şu iki satır, uygulamanın mimari yapısı hakkında önemli bir ipucu verir: msg=”starting ui server” port=51629 msg=”starting ollama server” Ollama’nın Windows sürümünde, arka planda çalışan ana LLM motoru (ollama server) ile kullanıcının etkileşime girdiği sistem tepsisi uygulaması (ui server) ayrı süreçler olarak ele alınmaktadır. UI sunucusunun 51629 gibi yüksek ve dinamik (geçici) bir port üzerinden başlatılması, uygulamanın yerel sistemdeki diğer servislerle çakışmamak adına esnek bir ağ tahsisi yaptığını gösterir. Ağ trafiği analizinde (PCAP vb.) bu portun tespiti, UI etkileşimlerini ayırt etmek için kritik bir göstergedir.
5.1.11. Güncelleme Mekanizması
Log dosyasının geri kalan büyük bir kısmı, uygulamanın otomatik güncelleme (updater) rutinine aittir. msg=”beginning update checker” interval=1h0m0s parametresi, sistemin her 1 saatte bir düzenli olarak yeni sürüm kontrolü yaptığını göstermektedir.
Bu sürecin adli açıdan en değerli artefaktları ağ iletişimi ve dosya indirme konumlarıdır:
msg=”New update available at
https://github.com/ollama/ollama/releases/download/v0.16.2/OllamaSetup.exe” kaydı, uygulamanın dış ağda doğrudan GitHub sunucularıyla iletişim kurduğunu ve bu adres üzerinden düzenli sinyal aktivitesi gerçekleştirdiğini doğrular.
Yeni kurulum dosyasının fiziksel olarak diske yazıldığı konum loglara detaylıca yansımıştır:
msg=”new update downloaded
C:\\Users\\LLM_Forensics\\AppData\\Local\\Ollama\\updates_v2\\0x8DE6DB006FA038D\\OllamaSetup.exe“. Burada yer alan updates_v2 klasörü altındaki 0x8DE6DB006FA038D şeklindeki hex (onaltılık) formatındaki klasör ismi, güncelleme paketinin bütünlüğünü doğrulamak için kullanılan bir hash veya kimlik (ID) değeridir.
Makale ayrıca model manifest ve model layer verilerinin de elde edilebileceğini belirtmektedir. Model manifest, model katmanlarının metadata’sını; model layers ise şablon (template) ve parametre bilgilerini sağlar.
İncelenen imajdaki dosya sistemi yapısına (Şekil 4) bakıldığında, model dosyalarının C:\LLM_Forensic_Lab\Ollama\Models\blobs dizini altında tutulduğu görülmektedir. Burada dikkat çeken en önemli adli artefakt, dosyaların klasik bir isim (örn: llama3.gguf) yerine, doğrudan kendi içeriklerinin SHA-256 özet (hash) değerleriyle isimlendirilmiş olmasıdır (örn: sha256-dde5aa…)

Bu mimari, soruşturmacılar için model bütünlüğünün (integrity) doğrulanmasını son derece kolaylaştırır.
Sistemdeki bir modelin kötü amaçlı olarak manipüle edilip edilmediği, dosyanın yeniden hash’lenip adıyla karşılaştırılması ile anında tespit edilebilir.
5.2.Chatbox
Client interface uygulamaları, LLM uygulama ortamında artefakt’ların birincil kaynağıdır. Bu kanıtlar, kullanılan LLM hakkında bilgi, system prompt yapılandırmaları ve konuşma içerikleri bulunur.
LangurTrace gibi temel çalışmalar, istemci arayüzlerinde yapılandırma ayarları ile sohbet geçmişlerinin (chat-sessions) genellikle config.json gibi merkezi dosyalarda, hibrit bir yapıda tutulabildiğine işaret etmektedir. Ancak Chatbox (v1.18.2) üzerinde yaptığımız bu inceleme, modern uygulamaların bu teorik beklentiden uzaklaştığını ve yapılandırma (config) ile döküm (sohbet) verilerini birbirinden ayıran bir veri ayrıştırma stratejisi izlediğini göstermektedir.
Elde ettiğimiz imaj üzerindeki config.json dosyası incelendiğinde, dosyanın işlevinin tamamen kullanıcı arayüzü tercihleri ve model tanımlamalarıyla sınırlandırıldığı tespit edilmiştir. Dosya içerisinde API anahtarları için ayrılan bölümlerin bulunmasına rağmen bu alanların boş olduğu görülmüş ve uygulamanın veri yapısında “chat-sessions” (sohbet geçmişi) anahtarına bu dosya içerisinde rastlanmamıştır.
Buna karşılık, elde edilen main.log kayıtları literatürde belirtilen yedekleme ve güncelleme takibi mekanizmalarını doğrular niteliktedir. config.json dosyasında sohbet geçmişine rastlanmamasına karşın, aşağıdaki dizinlerde kullanıcı verilerinin bulunduğu tespit edilmiştir:
| Artefakt | Format | Description |
|---|---|---|
| LocalStorage\leveldb | LevelDB | Sohbet geçmişi |
| IndexedDB\ | LevelDB | chat-sessions, sohbet geçmişi |
Bu bulgular, güncel sürümde sohbet verilerinin tarayıcı tabanlı veri depolama mekanizmaları (LevelDB altyapısı) üzerinden tutulduğunu göstermektedir. Dolayısıyla adli analiz süreçlerinde yalnızca config.json dosyasına odaklanmak yeterli olmayıp, istemciye ait LocalStorage ve IndexedDB dizinlerinin de bütüncül olarak incelenmesi gerekmektedir.
VERSION META:file:// _file:// initial-theme _file:// initial-time 1768214609359 $_file:// mantine-color-scheme-value _file:// ui-store• h”:null},”version”:0} _file:// __storejs__test__°½ÜÐK META:file:// _file:// new-chat Bana 5 maddede°ñTMD META:file:// _file:// new-chat Bana 5 ‘ META:file:// _file:// new-chat Bana 5 maddede windowsw META:file:// _file:// new-chat) Bana 5 maddede windowsta silinen dosya iM META:file:// %_file:// _currentSessionIdCachedAtom’ “2c11337b-40f5-4ede-a9d8-64b580c992fb” _file:// input-box-history« {“state”:{“widthFull”:false,”showCopilotsInNewSession”:false,”inputBoxWebBrowsingMode”:false,”sidebarWidt “Bana 5 maddede windowsta silinen dosya izlerini görebileceğim artifaktları anlat.”]ᤁ _file:// last-used-modelQ {“state”:{“chat”:{“provider”:”ollama”,”modelId”:”llama3.2:latest”}} ,”version”:0} _file:// new-chatbWw#D META:file:// _file:// __storejs__test__• META:file:// %_file:// _currentSessionIdCachedAtom’ “40cc5c4d-6ae2-41c4-ab69-4427ebd7d38e” _file:// input-box-historyÑ “event log nedir?”,”Bana 5 maddede windowsta silinen dosya izlerini görebileceğim artifaktları anlat.”]ሀ _file:// new-chat META:file:// _file:// input-box-history• “kendini başarılı buluyor musun?”,”event log nedir?”,”Bana 5 maddede windowsta silinen dosya izlerini görebileceğim artifaktları anlat.”] 4_file:// draft-40cc5c4d-6ae2-41c4-ab69-4427ebd7d38eY META:file:// 4_file:// draft-40cc5c4d-6ae2-41c4-ab69-4427ebd7d38e _file:// input-box-history© “merhaba”,”kendini başarılı buluyor musun?”,”event log nedir?”,”Bana 5 maddede windowsta silinen dosya izlerini görebileceğim artifaktları anlat.”] META:file:// _file:// __storejs__test__ |
İnceleme sırasında,
Users\LLM_Forensics\AppData\Roaming\xyz.chatboxapp.app\IndexedDB\file__0.indexeddb.leveldb dizinindeki veri tabanı kayıtları çözümlenmiş ve config.json dosyasında rastlanmayan “Sohbet Oturumları” (Chat Sessions) bu alanda tespit edilmiştir. Elde edilen ham (raw) veriler, uygulamanın kullanıcı mesajlarını ve yapay zekâ yanıtlarını karmaşık bir JSON nesnesi halinde bu veri tabanında sakladığını kanıtlamaktadır.
IndexedDB Ham Veri Sınıflandırma Tablosu
| Artefakt | Format | Açıklama |
|---|---|---|
| contentParts | JSON | Kullanıcının veya asistanın gerçek metin verisidir. |
| role | String | Verinin kaynağını belirtir: system (başlangıç komutu), user (kullanıcı girdisi) veya assistant (AI yanıtı). |
| timestamp | Unix Epoch | İşlemin gerçekleştiği kesin anı milisaniye cinsinden verir. |
Users\LLM_Forensics\AppData\Roaming\xyz.chatboxapp.app\LocalStorage\leveldb dizini, uygulamanın çalışma anındaki durumunu (state) ve kullanıcı tercihlerini sakladığı ana merkezdir. Adli bir incelemede bu alanın analizi, kullanıcının niyetini, alışkanlıklarını ve uygulamanın en son hangi teknik parametrelerle kullanıldığını ortaya koyar. Özellikle uygulamanın kullanıcı yazarken gerçekleştirdiği otomatik kayıt işlemleri, bir sorgunun nasıl şekillendiğini ve hangi aşamalardan geçtiğini (örneğin hatalı yazımların düzeltilmesi) kronolojik olarak takip etmeyi mümkün kılar. Bu durum, sadece “ne konuşulduğunu” değil, kullanıcının “nasıl bir hazırlık yaptığını” da kanıtlayarak adli profil çıkarma sürecine büyük katkı sağlar.
| Key | Format | Açıklama |
|---|---|---|
| input-box-history | JSON | Kullanıcının giriş kutusuna yazdığı son sorguların listesi. |
| currentSessionIdCachedAtom | UUID | O anda aktif olan veya en son açık bırakılan sohbet oturumunun kimliği. |
| last-used-model | JSON Object | Kullanıcının en son tercih ettiği AI sağlayıcısı (örn: Ollama) ve spesifik model ismi. |
| draft-[UUID] | Raw String | Kullanıcı bir mesaj yazmış ancak “Gönder” tuşuna basmamışsa, bu metin bir “taslak” (draft) olarak kaydedilir. |
| initial-time | Unix Epoch | Uygulamanın veya ilgili oturumun ilklendirilme zamanı. Olay örgüsünün (timeline) başlangıç noktasını belirlemek için kritiktir. |
| ui-store | JSON | Uygulamanın pencere boyutu, yan panelin açık olup olmaması gibi kullanıcı tercihlerini tutar. |
IndexedDB yapısı, LLM ile gerçekleşen diyaloğun ‘nihai ve kalıcı’ kayıtlarını (chat-sessions) saklarken; LocalStorage yapısı, kullanıcının sorgu oluşturma sürecindeki ‘davranışsal ve geçici’ izlerini (input-history, drafts) barındırmaktadır. Adli bir incelemede her iki katmanın birlikte analizi hem gerçekleşen konuşmayı hem de kullanıcının o konuşmaya giden yoldaki silinmiş veya taslak aşamasındaki düşüncelerini ortaya çıkarmaktadır.
Bu çalışmada, Windows tabanlı yerel Büyük Dil Modeli (LLM) ortamlarının adli bilişim perspektifinden standartlaştırılmış bir analizi gerçekleştirilmiş; ortam bileşenleri (backend runtime ve client interface) izole edilerek tekrarlanabilir bir laboratuvar kurgusu üzerinden veri üretim ve toplama stratejileri netleştirilmiştir.
İncelenen LangurTrace metodolojisi rehberliğinde gerçekleştirilen pratik analizler, yerel LLM ekosistemlerinin bıraktığı adli izlerin (artefaktların) klasik yazılımlardan farklı, karmaşık ve çok katmanlı bir yapıya sahip olduğunu ortaya koymuştur. Elde edilen temel bulgular şu şekilde özetlenebilir:
Özetle, yerel LLM uygulamalarının hızla yaygınlaştığı günümüz teknoloji ikliminde, adli bilişim uzmanlarının yalnızca belirli konfigürasyon dosyalarına odaklanması eksik ve yanıltıcı sonuçlar doğuracaktır. Doğru bir “triage” (önceliklendirilmiş veri toplama) ve imaj analizi için hem backend loglarının hash mimarisiyle çaprazlanması hem de istemci tarafındaki dinamik web veri tabanlarının (LevelDB) bütüncül olarak incelenmesi standart bir prosedür haline gelmelidir.
Bu makale, yerel LLM artefaktlarının standartlaştırılması adına bir temel oluşturmaktadır. Gelecek çalışmalarda, bu izlerin sistem belleği (RAM) üzerindeki yansımalarının (memory forensics) incelenmesi ve bulut tabanlı API etkileşimlerinin adli analiz süreçlerine dâhil edilmesi hedeflenmektedir.
-