Verileri Gizlemek İçin Steganografiyi Kullanma

 

Hedef Kitle: Siber güvenlik öğrencileri, adli bilişim uzmanları, sistem yöneticileri, bilgi güvenliği uzmanları ve etik hackerlar

Seviye: Başlangıç → İleri


Giriş

Günümüzde verileri korumak denildiğinde çoğu kişinin aklına ilk olarak şifreleme (Encryption) gelir. Ancak şifreleme tek başına her zaman yeterli değildir.

Şifrelenmiş bir dosya;

  • herkes tarafından görülebilir,

  • dikkat çeker,

  • hedef olabilir.

Buna karşılık Steganografi, veriyi görünmez hale getirir.

Yani;

Şifreleme = Veriyi okunamaz yapar.

Steganografi = Veriyi görünmez yapar.

İdeal güvenlikte ise ikisi birlikte kullanılır.

Mesaj
   │
Şifreleme (AES)
   │
Şifreli Veri
   │
Steganografi
   │
Resim içerisinde gizli veri

Steganografi Nedir?

Steganografi (Steganography);

Bir bilginin;

  • resim

  • ses

  • video

  • PDF

  • Word

  • ağ trafiği

  • boşluk karakterleri

  • metadata

gibi masum görünen verilerin içerisine gizlenmesidir.

Kelime kökeni Yunancadır.

Steganos = Gizli

Graphia = Yazı

Yani:

Gizli Yazı


Şifreleme ile Steganografi Arasındaki Fark

ÖzellikŞifrelemeSteganografi
Veri görünür mü?EvetHayır
Veri okunabilir mi?HayırHayır
Dikkat çeker mi?EvetGenellikle Hayır
AmaçGizlilikGizliliği saklamak
KullanımAES, RSALSB, Metadata vb.

Gerçek Hayattan Örnek

Ali,

"Yarın saat 20:00'de buluş."

mesajını gönderecek.

Şifreleme

Yarın saat 20:00

↓

83F9A6F2A22B889...

Karşı taraf şifreli veri olduğunu anlar.


Steganografi

Ali aynı mesajı

tatil.jpg

isimli resmin içine gizler.

Karşı taraf sadece bir tatil fotoğrafı görür.

Hiç kimse içerisinde mesaj olduğunu anlamaz.


Steganografinin Çalışma Mantığı

Temel prensip şöyledir.

Kap (Cover Object)

↓

Veri

↓

Stego Object

Örneğin;

cover.png

+

gizli.txt

↓

stego.png

Dışarıdan bakıldığında iki resim tamamen aynıdır.


Cover Object Nedir?

Verinin içerisine gizlendiği dosyadır.

Örnekler

  • JPG

  • PNG

  • BMP

  • WAV

  • MP3

  • AVI

  • MP4

  • PDF


Payload Nedir?

Gizlenen gerçek veridir.

Örneğin

şifre.txt

parola.pdf

AES anahtarı

ZIP dosyası

Word dosyası

Stego Object

Veri gizlendikten sonraki dosyadır.

cover.jpg

↓

secret.txt eklenir

↓

stego.jpg

Steganografinin Kullanım Alanları

1. Dijital Filigran (Watermark)

Fotoğrafların içerisine görünmez imza eklenebilir.

Örneğin

Fotoğraf

↓

Şirket Logosu

↓

Görünmez Filigran

2. Telif Hakları

Film şirketleri

fotoğraflarına görünmez bilgi ekler.


3. Askeri Haberleşme

Hassas mesajlar

normal görünen dosyaların içerisine gizlenebilir.


4. İstihbarat

Ajanlar

normal fotoğraflar paylaşırken

gizli veri taşıyabilir.


5. Zararlı Yazılımlar

Ne yazık ki

APT grupları da steganografiyi kullanır.

Örneğin

normal.png

↓

PowerShell Script

↓

Çalıştırılır

Steganografi Türleri

1. Image Steganography

En yaygın yöntemdir.

PNG

BMP

JPG

2. Audio Steganography

WAV

MP3

3. Video Steganography

MP4

AVI

MKV

4. Text Steganography

Boşluk karakterleri

TAB

Unicode karakterleri

kullanılabilir.


5. Network Steganography

TCP

UDP

DNS

HTTP

paketleri içerisinde veri gizlenebilir.


Image Steganography

En popüler yöntemdir.

Bir resimde milyonlarca piksel vardır.

Örneğin

1920x1080

2.073.600 piksel

Her piksel

R

G

B

değerlerinden oluşur.

R = 255

G = 128

B = 64

RGB Yapısı

R

G

B

Her biri

8 bit

dir.

11111111

00000000

Toplam

24 bit

LSB (Least Significant Bit)

En önemli tekniklerden biridir.

En düşük anlamlı bit değiştirilir.

Örnek

10010110

↓

10010111

İnsan gözü bu farkı göremez.


Örnek

Normal piksel

11100100

Gizli bit

1

Sonuç

11100101

Yalnızca son bit değişmiştir.


LSB Algoritmasının Avantajları

  • Basit

  • Hızlı

  • Görsel kalite bozulmaz

  • Eğitim amaçlı idealdir


Dezavantajları

  • Sıkıştırma sonrası bozulabilir.

  • Görüntü işleme işlemleri gizli veriyi yok edebilir.

  • İstatistiksel analizlerle tespit edilebilir.


PNG ve BMP Neden Daha Uygundur?

Çünkü;

Lossless sıkıştırma kullanırlar.

PNG

BMP

LSB verisini korurlar.


JPG Neden Risklidir?

JPEG;

Lossy Compression kullanır.

LSB

↓

JPEG

↓

Veri kaybolabilir.

Linux'ta Steghide Kullanımı

Steghide, dosyaları resim veya ses dosyalarının içine gizlemek için kullanılan açık kaynaklı bir araçtır.

Kurulum (Debian/Pardus/Ubuntu)

sudo apt update
sudo apt install steghide

Kali Linux

sudo apt install steghide

Sürümü Kontrol Etme

steghide --version

Dosya Gizleme

Elinizde:

cover.jpg

secret.txt

olsun.

Komut:

steghide embed \
-cf cover.jpg \
-ef secret.txt

Program parola ister.

Enter passphrase:

Sonuç

stego.jpg

oluşacaktır.


Gizli Dosyayı Çıkarma

steghide extract \
-sf stego.jpg

Parola girildiğinde

secret.txt

çıkarılır.


Bilgi Görüntüleme

steghide info cover.jpg

Binwalk ile İnceleme

Steganografi şüphesi olan dosyalar incelenebilir.

Kurulum:

sudo apt install binwalk

Kullanım:

binwalk image.png

Strings Analizi

strings image.jpg

Exif Bilgileri

exiftool image.jpg

Zsteg

PNG dosyaları için oldukça güçlüdür.

Kurulum

sudo gem install zsteg

Kullanım

zsteg image.png

OutGuess

JPEG dosyalarında kullanılabilir.

Kurulum

sudo apt install outguess

Veri gizleme:

outguess \
-k parola \
-d secret.txt \
cover.jpg \
stego.jpg

Veri çıkarma:

outguess \
-k parola \
-r stego.jpg \
secret.txt

OpenStego

Java tabanlıdır.

Avantajları:

  • GUI

  • Windows

  • Linux

  • macOS

  • Filigran desteği


Python ile Basit LSB Örneği

from PIL import Image

img = Image.open("cover.png")
pixels = img.load()

r, g, b = pixels[0, 0]

# Son biti 1 yap
r = (r & 0xFE) | 1

pixels[0, 0] = (r, g, b)

img.save("stego.png")

Bu örnek yalnızca tek bir biti değiştirir. Gerçek uygulamalarda veri, tüm piksellere belirli bir algoritma ile dağıtılır ve genellikle önce şifrelenir.


Adli Bilişimde Steganaliz

Steganaliz, gizlenmiş veriyi tespit etmeye yönelik analiz sürecidir.

Kullanılan yöntemlerden bazıları:

  • Histogram analizi

  • İstatistiksel sapma analizi

  • LSB analizi

  • Metadata incelemesi

  • Dosya boyutu karşılaştırması

  • Makine öğrenmesi tabanlı tespit yöntemleri


En İyi Güvenlik Yaklaşımı

Steganografi tek başına güçlü bir güvenlik mekanizması değildir. En iyi uygulama şu sıralamayı izlemektir:

Veri
   │
AES-256 ile Şifreleme
   │
Şifreli Veri
   │
Steganografi (PNG/BMP)
   │
Stego Dosyası

Bu yöntemle saldırgan dosya içinde gizli veri olduğunu fark etse bile, güçlü bir şifreleme katmanı nedeniyle içeriğe erişemez.


Laboratuvar Çalışmaları

Laboratuvar 1

  • steghide ile bir metin dosyasını JPEG dosyasına gizleyin.

  • Aynı dosyayı parola ile çıkarın.

Laboratuvar 2

  • PNG dosyasında Python kullanarak LSB tekniğiyle birkaç karakter gizleyin.

  • Sonuç dosyasını orijinal görüntü ile karşılaştırın.

Laboratuvar 3

  • exiftool, strings ve binwalk kullanarak örnek bir görüntüyü analiz edin.

  • Araçların bulduğu farklı bilgileri raporlayın.

Laboratuvar 4

  • Aynı mesajı önce AES ile şifreleyin, ardından oluşan dosyayı steghide ile bir görüntü içine gizleyin.

  • Dosyayı çıkarıp şifresini çözerek bütünlüğünü doğrulayın.


Gerçek Hayatta Kullanım Senaryoları

SenaryoKullanım
Dijital filigran        Telif hakkı koruma
Adli bilişim        Gizli veri tespiti
Kurumsal güvenlik        Hassas bilgilerin gizlenmesi
Siber güvenlik eğitimi        LSB ve steganaliz laboratuvarları
Tehdit analizi        Zararlı yazılımların steganografi kullanımını inceleme
İstihbarat çalışmaları        Gizli iletişim yöntemlerinin analizi

Steganografi Araçlarının Karşılaştırması

AraçPlatformDestek        Arayüz
Steghide        Linux, Windows        JPG, BMP, WAV        CLI
OpenStego        Windows, Linux, macOS        PNG ve diğer formatlar        GUI/CLI
OutGuess        Linux        JPEG        CLI
Zsteg        Linux, macOS        PNG        CLI
Binwalk        Linux, Windows        Çoklu dosya formatı analizi        CLI
ExifTool        Tüm platformlar        Metadata analizi        CLI

Sonuç

Steganografi, veriyi yalnızca şifrelemek yerine görünmez hale getirmeyi amaçlayan güçlü bir bilgi gizleme tekniğidir. Günümüzde dijital filigran uygulamalarından adli bilişime, kurumsal veri korumadan siber tehdit analizine kadar pek çok alanda kullanılmaktadır.

Ancak steganografi tek başına mutlak güvenlik sağlamaz. En iyi yaklaşım, güçlü şifreleme algoritmaları (örneğin AES-256) ile şifrelenmiş verilerin, kayıpsız sıkıştırma kullanan dosya formatları (PNG veya BMP gibi) içerisinde güvenilir steganografi yöntemleriyle gizlenmesidir. Böylece hem veri gizliliği hem de gizli iletişimin fark edilme olasılığı önemli ölçüde azaltılır.

Bu nedenle modern bilgi güvenliği yaklaşımında şifreleme + steganografi + bütünlük doğrulama (hash) birlikte kullanıldığında çok katmanlı ve daha dirençli bir koruma modeli elde edilir.


Bu makaleyi, siber güvenlik eğitimlerinizde, laboratuvar uygulamalarınızda veya teknik blogunuzda öğrencilerinize ve okurlarınıza sunabileceğiniz yapılandırılmış bir formatta hazırladım.

Verileri Gizlemek İçin Steganografiyi Kullanma: Kapsamlı Eğitim Rehberi

Siber güvenlik dünyasında veriyi korumanın iki temel yolu vardır: Verinin içeriğini anlaşılmaz hale getirmek (Kriptografi) ve verinin varlığını tamamen gizlemek (Steganografi). Kriptografi, şifrelenmiş bir mesajın orada olduğunu açıkça belli ederken; steganografi, şifreli mesajın varlığını sıradan bir dosyanın (resim, ses veya video) içine saklayarak şüphe çekmekten kaçınır.

Özellikle Capture The Flag (CTF) yarışmalarında ve zararlı yazılım analizlerinde sıkça karşılaşılan steganografi teknikleri, bilgi güvenliği uzmanlarının mutlaka hakim olması gereken konulardan biridir.

Steganografi Nasıl Çalışır?

Steganografinin en yaygın ve temel yöntemi LSB (Least Significant Bit - En Az Anlamlı Bit) tekniğidir.

Dijital bir görüntü, piksellerden oluşur ve her piksel RGB (Kırmızı, Yeşil, Mavi) renk değerlerini temsil eden baytlar içerir. Bir bayt 8 bitten oluşur. LSB tekniğinde, bu 8 bitlik dizilimin en sonundaki (en az anlamlı) bit değiştirilir.

İnsan gözü, bir rengin tonundaki 1 bitlik değişimi (örneğin; 11001000 ile 11001001 arasındaki farkı) algılayamaz. Bu sayede, piksellerin en az anlamlı bitleri sırasıyla değiştirilerek, resmin içine gizli bir metin veya başka bir dosya gömülebilir. Dosyanın boyutu veya dış görünüşü şüphe uyandırmaz.

Kriptografi ve Steganografi Karşılaştırması

Bu iki kavram genellikle birbirini tamamlamak için birlikte kullanılır.

Özellik

Kriptografi (Şifreleme)

Steganografi (Gizleme)

Temel Amaç

Verinin okunmasını/anlaşılmasını engellemek.

Verinin var olduğunu gizlemek.

Çıktı Görünümü

Anlamsız karakter dizileri veya rastgele veri blokları.

Sıradan bir resim, ses veya video dosyası.

Saldırganın Yaklaşımı

Şifreyi kırmaya (Decryption/Brute-force) çalışır.

Dosyanın içinde gizli veri olup olmadığını tespit etmeye (Steganaliz) çalışır.

Pratik Uygulama: Linux Terminalinde Steghide Kullanımı

Pardus veya diğer Debian tabanlı Linux dağıtımlarında steganografi laboratuvar uygulamaları yapmak için en popüler komut satırı araçlarından biri steghide'dır. Bu araç, JPEG, BMP, WAV ve AU dosyaları içine veri gömebilir.

1. Kurulum

Terminali açın ve paket yöneticisini kullanarak aracı sisteminize kurun:

Bash

sudo apt update

sudo apt install steghide

 

2. Veri Gömmek (Embedding)

Öğrencilerinize veya CTF katılımcılarına vereceğiniz bir hedef dosya hazırlayalım. Elimizde manzara.jpg adında bir resim ve içine saklamak istediğimiz gizli_hedef.txt (örneğin bir flag veya parola) dosyası olsun.

Bash

steghide embed -ef gizli_hedef.txt -cf manzara.jpg

 

Komut çalıştırıldığında, steghide sizden bu veriyi korumak için bir parola (passphrase) belirlemenizi isteyecektir. Bu parola, veriyi çıkaracak kişinin bilmesi gereken anahtardır.

3. Gizli Veriyi Tespit Etmek (Info)

Bir dosyanın içinde steghide ile gizlenmiş bir veri olup olmadığını kontrol etmek için info parametresi kullanılır:

Bash

steghide info manzara.jpg

 

Bu komut dosyanın formatını analiz eder. Eğer doğru parolayı girerseniz, içinde hangi isimde ve boyutta bir dosya saklandığını size söyler.

4. Gizli Veriyi Çıkarmak (Extracting)

Gizlenmiş mesajı resmin içinden çıkartıp okumak için:

Bash

steghide extract -sf manzara.jpg

 

Doğru parola girildiğinde, gizli_hedef.txt dosyası bulunduğunuz dizine çıkartılacaktır.

İleri Seviye Konular ve Steganaliz

Bir sistem yöneticisi veya mavi takım (Blue Team) analisti olarak, ağınızda veya sistemlerinizde steganografi kullanıldığını tespit etmek (Steganaliz) zordur ancak imkansız değildir.

  1. Dosya Boyutu ve İmzaları (Magic Bytes): Hex editörleri kullanılarak dosyanın başlık (header) bilgileri ile uzantısının uyuşup uyuşmadığı kontrol edilebilir. Gömülen veri dosyanın sonuna eklenmişse, hex analizi ile kolayca tespit edilir.

  2. Binwalk Kullanımı: binwalk, bir dosyanın içine gömülmüş başka dosyalar (örneğin bir JPEG içine gömülmüş ZIP arşivi) olup olmadığını analiz etmek için mükemmel bir araçtır.

  3. ExifTool Analizi: Bazen veriler resmin piksellerine değil, EXIF (meta veri) etiketlerine (örneğin telif hakkı veya kamera modeli kısımlarına) gizlenir.

Özetle: Steganografi tek başına bir güvenlik katmanı sağlamaz. En iyi güvenlik pratiği, veriyi önce güçlü bir şifreleme algoritması (örneğin AES) ile şifrelemek, ardından elde edilen şifreli veriyi steganografi araçları ile bir medya dosyasının içine gizlemektir.

 

CTF laboratuvarlarında öğrencilere steganaliz mantığını kavratmak için sadece steghide gibi araçların kullanımını göstermek yeterli değildir. Öğrencilerin dosya yapılarını (file signatures) ve "Magic Bytes" (Sihirli Baytlar) kavramını anlamaları, Blue Team (Mavi Takım) senaryolarında anormallikleri tespit edebilmeleri için kritik bir temeldir.

Bu rehberde, Debian/Pardus tabanlı laboratuvar ortamlarında terminal üzerinden hex analizi ve binwalk kullanımını adım adım inceleyeceğiz.

1. Hex Analizi ve Sihirli Baytlar (Magic Bytes)

Her dosya formatının, işletim sistemine "Ben bir JPEG'im" veya "Ben bir ZIP arşivi'yim" demesini sağlayan standart bir başlangıç hex değeri vardır. Buna Magic Bytes (Sihirli Baytlar) denir. Dosya uzantısı (örneğin .jpg) ne olursa olsun, gerçek dosya türünü bu baytlar belirler.

Siber saldırganlar veya CTF tasarımcıları, kötü amaçlı yazılımları veya gizli flag dosyalarını genellikle zararsız görünen resim veya ses dosyalarının içine doğrudan yapıştırırlar (concatenation). Bu durumda dosyanın sonuna farklı bir formatın sihirli baytları eklenmiş olur.

Dosya Formatı

Başlangıç Hex Değeri (Magic Bytes)

JPEG

FF D8 FF E0

PNG

89 50 4E 47

ZIP Arşivi

50 4B 03 04 (PK)

PDF Document

25 50 44 46 (%PDF)

Aşağıdaki araç ile farklı bayt değerlerinin dosya yapılarını nasıl temsil ettiğini laboratuvar ortamında simüle edebilirsiniz:

2. Binwalk: Dosya İçinde Dosya Arama

binwalk, bir dosyanın veya firmware imajının (donanım yazılımı) içindeki gömülü dosyaları ve yürütülebilir kodları bulmak için kullanılan oldukça popüler bir steganaliz ve tersine mühendislik (reverse engineering) aracıdır. Dosyanın tamamını tarar ve bilinen sihirli bayt imzalarını arar.

Kurulum (Pardus / Debian):

Bash

sudo apt update

sudo apt install binwalk

 

3. Pratik CTF Senaryosu: Gömülü ZIP Dosyasını Çıkarma

Öğrencileriniz için terminal üzerinde uygulayabileceğiniz uçtan uca bir laboratuvar senaryosu kuralım.

Adım 1: Hedef Dosyayı Hazırlama

Öncelikle sıradan bir JPEG resminin sonuna gizli bir ZIP dosyası ekleyerek kendi "şüpheli" dosyamızı oluşturalım.

Bash

# 1. Gizlenecek veriyi oluşturun ve ziplayinecho "CTF{H3x_4n4l1z1_B4s4r1l1}" > flag.txt zip gizli.zip flag.txt  # 2. Linux cat komutuyla resmi ve zip dosyasını birleştirin cat normal_manzara.jpg gizli.zip > supheli_manzara.jpg

Artık supheli_manzara.jpg dosyası çift tıklandığında normal bir resim gibi açılacaktır, ancak son kısımlarında bir ZIP arşivi barındırmaktadır.

Adım 2: Hex Analizi ile Tespit (xxd)

Linux sistemlerinde dahili olarak bulunan xxd aracı ile dosyanın hex dökümünü alıp anormalliği tespit edebiliriz. Eklenen ZIP dosyası resmin sonuna eklendiği için, dosyanın son satırlarına bakmak yeterlidir.

Bash

xxd supheli_manzara.jpg | tail -n 15

 

Analiz: Çıktının sağ tarafındaki ASCII yorumlamasında PK (Zip dosyalarının sihirli baytı olan 50 4B'nin metin karşılığı) ve flag.txt metnini görüyorsanız, resmin içine bir arşiv gizlendiğini kanıtlamış olursunuz.

Adım 3: Binwalk ile Veriyi Çıkarma

Tespit ettiğimiz gömülü dosyayı çıkartmak için binwalk kullanırız.

Bash

# Dosyayı analiz edip içeriğin listesini görmek için: binwalk supheli_manzara.jpg  # İçindeki dosyaları (örneğin ZIP) otomatik olarak klasöre çıkartmak için -e parametresi kullanılır: binwalk -e supheli_manzara.jpg

Komut çalıştıktan sonra _supheli_manzara.jpg.extracted adında bir dizin oluşacak ve gizli flag.txt dosyası bu dizinin içinde, erişilebilir durumda olacaktır.

 

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu