Malwarebytes ile Windows Güvenlik Taraması Nasıl Yapılır?
Bir Windows sistemde zararlı yazılım taraması yapmak, sistem yöneticilerinin en sık ertelediği ama aslında en kritik görevlerinden biri. Özellikle kurumsal ortamlarda, kullanıcıların indirdiği dosyalar, açtığı e-posta ekleri veya ziyaret ettiği web siteleri yüzünden sistemler ciddi tehditlerle karşı karşıya kalıyor. Malwarebytes bu noktada devreye giriyor ve hem ücretsiz hem de ücretli sürümleriyle güçlü bir seçenek sunuyor.
Malwarebytes Nedir ve Neden Kullanmalısınız?
Malwarebytes, geleneksel antivirüs yazılımlarından farklı bir yaklaşım benimsiyor. Klasik antivirüsler imza tabanlı tespite odaklanırken, Malwarebytes davranış analizi ve sezgisel tarama (heuristic scanning) yöntemlerini ön plana çıkarıyor. Bu sayede henüz imza veritabanına girmeyen sıfırıncı gün (zero-day) tehditlerini de yakalayabiliyor.
Kurumsal ortamlarda sıkça karşılaştığım şu senaryo bunu iyi özetliyor: Muhasebe departmanındaki bir kullanıcı, fatura gibi görünen bir PDF açıyor. Windows Defender bu dosyayı temiz geçiriyor ancak Malwarebytes, dosyanın davranışsal analizinde şüpheli bir aktivite tespit ederek karantinaya alıyor. Bu tür senaryolar, Malwarebytes’ı var olan antivirüs çözümünüzün yanında ikinci bir savunma katmanı olarak kullanmanın neden mantıklı olduğunu gösteriyor.
Malwarebytes’ın öne çıkan özellikleri şunlar:
- Gerçek zamanlı koruma: Premium sürümde aktif tehdit izleme
- Rootkit taraması: İşletim sistemi çekirdeğine gizlenmiş tehditleri tespit etme
- Exploit koruması: Yazılım açıklarını istismar eden saldırılara karşı koruma
- Web koruması: Zararlı URL’lere erişimi engelleme
- Ransomware koruması: Fidye yazılımı saldırılarına karşı katmanlı savunma
Kurulum ve İlk Yapılandırma
Malwarebytes’ı indirmek için resmi sitesi üzerinden veya PowerShell kullanarak doğrudan indirebilirsiniz. Kurumsal ortamlarda sessiz kurulum (silent install) tercih ediliyor çünkü onlarca makineye tek tek gidip kurulum yapmak zaman kaybı.
# PowerShell ile Malwarebytes indirme
$url = "https://downloads.malwarebytes.com/file/mb-windows"
$output = "C:TempMBSetup.exe"
Invoke-WebRequest -Uri $url -OutFile $output
Write-Host "Indirme tamamlandi: $output"
Sessiz kurulum için şu parametreleri kullanabilirsiniz:
# Sessiz kurulum komutu (CMD veya PowerShell'den)
MBSetup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-
# Kurulum dizini belirterek sessiz kurulum
MBSetup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /DIR="C:Program FilesMalwarebytes"
Kurulum tamamlandıktan sonra Malwarebytes’ı komut satırından da yönetebilirsiniz. Bu özellikle uzak sistemlere bağlanarak tarama başlatmanız gerektiğinde çok işe yarıyor.
Komut Satırı ile Tarama Yapma
Malwarebytes’ın komut satırı arayüzü olan mbam.exe ve MBAMService.exe üzerinden çeşitli işlemler yapabilirsiniz. Gerçek sysadmin işi burada başlıyor.
# Malwarebytes komut satırı tarama başlatma
"C:Program FilesMalwarebytesAnti-Malwarembam.exe" /scan /threat
# Hızlı tarama (Quick Scan)
"C:Program FilesMalwarebytesAnti-Malwarembam.exe" /scan /quick
# Tam sistem taraması
"C:Program FilesMalwarebytesAnti-Malwarembam.exe" /scan /full
# Belirli bir dizini tara
"C:Program FilesMalwarebytesAnti-Malwarembam.exe" /scan /path "C:UserskullaniciDownloads"
Önemli parametreler:
- /scan /threat: Tehdit odaklı hızlı tarama başlatır
- /scan /quick: Bellekte çalışan süreçleri ve kritik sistem lokasyonlarını tarar
- /scan /full: Tüm sürücüleri kapsamlı şekilde tarar
- /scan /path: Belirtilen dizin veya dosyayı tarar
- /norestart: Tarama sonrası yeniden başlatmayı engeller
PowerShell ile Otomatik Tarama Senaryoları
Tek bir makineyi manuel taramak kolay ama kurumsal ortamda 50-100 makineyi nasıl yöneteceksiniz? PowerShell burada kurtarıcı oluyor.
# Uzak bilgisayarda Malwarebytes taraması başlatma
$bilgisayarlar = @("PC001", "PC002", "PC003", "MUHASEBE-PC")
foreach ($bilgisayar in $bilgisayarlar) {
if (Test-Connection -ComputerName $bilgisayar -Count 1 -Quiet) {
Write-Host "$bilgisayar erisilebilir, tarama baslatiliyor..." -ForegroundColor Green
Invoke-Command -ComputerName $bilgisayar -ScriptBlock {
$mbamPath = "C:Program FilesMalwarebytesAnti-Malwarembam.exe"
if (Test-Path $mbamPath) {
Start-Process -FilePath $mbamPath -ArgumentList "/scan /threat" -Wait
Write-Host "Tarama tamamlandi: $env:COMPUTERNAME"
} else {
Write-Host "Malwarebytes kurulu degil: $env:COMPUTERNAME" -ForegroundColor Red
}
}
} else {
Write-Host "$bilgisayar erisilebilir degil, atlaniyor." -ForegroundColor Yellow
}
}
Bu script gerçek ortamda kullandığım ve çok zaman kazandıran bir araç. Sabah işe geldiğinizde scripti çalıştırıp kahvenizi içerken taramalar arka planda tamamlanıyor.
Tarama Sonuçlarını Log Dosyasından Okuma
Malwarebytes tarama sonuçlarını C:ProgramDataMalwarebytesMBAMServiceLogs dizininde tutuyor. Bu logları ayrıştırarak otomatik raporlama yapabilirsiniz.
# Malwarebytes log dosyalarini okuma ve analiz etme
$logDizini = "C:ProgramDataMalwarebytesMBAMServiceLogs"
$sonLog = Get-ChildItem -Path $logDizini -Filter "*.log" |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
if ($sonLog) {
Write-Host "Son log dosyasi: $($sonLog.FullName)"
$logIcerigi = Get-Content -Path $sonLog.FullName -Encoding UTF8
# Tehdit bulunup bulunmadigini kontrol et
$tehditler = $logIcerigi | Where-Object { $_ -match "Quarantine|Detected|Threat" }
if ($tehditler) {
Write-Host "DIKKAT: Tehdit tespit edildi!" -ForegroundColor Red
$tehditler | ForEach-Object { Write-Host $_ -ForegroundColor Yellow }
# E-posta bildirimi gonder (SMTP sunucunuz varsa)
Send-MailMessage -To "[email protected]" `
-From "[email protected]" `
-Subject "Malwarebytes Tehdit Tespiti - $env:COMPUTERNAME" `
-Body ($tehditler -join "`n") `
-SmtpServer "mail.sirket.com"
} else {
Write-Host "Temiz: Tehdit tespit edilmedi." -ForegroundColor Green
}
} else {
Write-Host "Log dosyasi bulunamadi." -ForegroundColor Red
}
Zamanlanmış Görev ile Otomatik Tarama
Malwarebytes’ın kendi zamanlama özelliği var ama bazen Windows Task Scheduler üzerinden daha granüler kontrol istiyorsunuz. Özellikle mesai saatleri dışında tarama yapmak, kullanıcı deneyimini olumsuz etkilememek açısından önemli.
# Haftalık otomatik tarama gorevi olusturma (Her Cuma gece 23:00)
$taskAdi = "MalwarebytesHaftalikTarama"
$taskAciklama = "Her Cuma gece Malwarebytes tam sistem taramasi"
$eylem = New-ScheduledTaskAction `
-Execute "C:Program FilesMalwarebytesAnti-Malwarembam.exe" `
-Argument "/scan /full /norestart"
$tetikleyici = New-ScheduledTaskTrigger `
-Weekly `
-DaysOfWeek Friday `
-At "23:00"
$ayarlar = New-ScheduledTaskSettingsSet `
-RunOnlyIfNetworkAvailable `
-WakeToRun `
-ExecutionTimeLimit (New-TimeSpan -Hours 4)
Register-ScheduledTask `
-TaskName $taskAdi `
-Description $taskAciklama `
-Action $eylem `
-Trigger $tetikleyici `
-Settings $ayarlar `
-RunLevel Highest `
-Force
Write-Host "Zamanlanmis gorev olusturuldu: $taskAdi" -ForegroundColor Green
Bu görevi oluştururken dikkat etmeniz gereken bazı noktalar var. RunLevel Highest parametresi yönetici haklarıyla çalıştırmasını sağlıyor, bu rootkit taramaları için şart. WakeToRun ise bilgisayar uyku modundaysa uyandırıp taramayı başlatıyor, bu özellikle gece uyku moduna geçen ofis bilgisayarlarında hayat kurtarıyor.
Karantina Yönetimi
Malwarebytes bir tehdit tespit ettiğinde dosyayı doğrudan silmiyor, karantinaya alıyor. Bu önemli bir özellik çünkü bazen yanlış pozitif (false positive) durumlar oluşabiliyor. Karantina içeriğini komut satırından yönetmek de mümkün.
# Karantina listesini görüntüleme ve yonetme
# Malwarebytes Management konsolu ile karantina sorgulama
# Karantina dizinini listeleme (varsayilan konum)
$karantinaDizini = "C:ProgramDataMalwarebytesMBAMServiceQuarantine"
if (Test-Path $karantinaDizini) {
$karantinadakiDosyalar = Get-ChildItem -Path $karantinaDizini -Recurse
Write-Host "Karantinadaki dosya sayisi: $($karantinadakiDosyalar.Count)"
foreach ($dosya in $karantinadakiDosyalar) {
$boyut = [math]::Round($dosya.Length / 1KB, 2)
Write-Host "Dosya: $($dosya.Name) | Boyut: $boyut KB | Tarih: $($dosya.CreationTime)"
}
# 30 gundan eski karantina dosyalarini raporla
$eskiDosyalar = $karantinadakiDosyalar |
Where-Object { $_.CreationTime -lt (Get-Date).AddDays(-30) }
if ($eskiDosyalar) {
Write-Host "`n30 gundan eski karantina kayitlari:" -ForegroundColor Yellow
$eskiDosyalar | ForEach-Object { Write-Host " - $($_.Name)" }
}
} else {
Write-Host "Karantina dizini bos veya mevcut degil."
}
Gerçek Dünya Senaryosu: Şirket Geneli Güvenlik Denetimi
Geçen ay bir müşterimde yaşanan olayı paylaşayım. 80 kullanıcılı bir ofiste, finans bölümündeki bir bilgisayardan anormal ağ trafiği tespit edildi. SIEM aracı alarm verdi ama tam olarak ne olduğu belli değildi. Bu durumda şu adımları izledim:
İlk olarak şüpheli makinede anlık tarama başlattım:
# Acil durum tarama scripti - Supheli bilgisayar analizi
$supheligBilgisayar = "FINANS-PC-07"
$taramaSonucu = Invoke-Command -ComputerName $supheligBilgisayar -ScriptBlock {
# Malwarebytes tam tarama baslat ve bekle
$mbam = "C:Program FilesMalwarebytesAnti-Malwarembam.exe"
$process = Start-Process -FilePath $mbam -ArgumentList "/scan /full" -PassThru -Wait
# Son log dosyasini oku
$logDizini = "C:ProgramDataMalwarebytesMBAMServiceLogs"
$sonLog = Get-ChildItem -Path $logDizini -Filter "*.log" |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
$sonuclar = @{
BilgisayarAdi = $env:COMPUTERNAME
TaramaTarihi = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
LogDosyasi = $sonLog.FullName
LogIcerigi = Get-Content -Path $sonLog.FullName -Tail 50
}
return $sonuclar
}
# Sonuclari kaydet
$taramaSonucu | ConvertTo-Json | Out-File "C:RaporlarGuvenlikTarama_$(Get-Date -Format 'yyyyMMdd').json"
Write-Host "Tarama tamamlandi. Rapor kaydedildi."
Tarama sonucunda Malwarebytes, sistemde bir Trojan.Banker varyantı tespit etti. Dosya, kullanıcının indirdiği sahte bir PDF okuyucu uygulamasına gömülüydü. Malwarebytes hem ana zararlıyı hem de bıraktığı arka kapı (backdoor) bileşenlerini temizledi. Sonrasında aynı uygulamanın başka makinelere de yüklenip yüklenmediğini kontrol etmek için tüm ağa tarama sürdürdük.
Malwarebytes ve Windows Defender Birlikte Kullanımı
Sık sorulan soru: “Malwarebytes varken Windows Defender’ı kapatmalı mıyım?” Kesinlikle hayır. İkisi birbirini tamamlıyor. Windows Defender imza tabanlı tehditleri iyi yakalıyor, Malwarebytes ise davranışsal analizde ve potansiyel olarak istenmeyen programlarda (PUP) daha başarılı.
Birlikte kullanırken dikkat etmeniz gereken nokta, her iki aracın da gerçek zamanlı korumasının aktif olması durumunda bazen çakışma yaşanabiliyor. Bunu önlemek için Malwarebytes Premium kullanıyorsanız, karşılıklı dışlama listeleri oluşturmanız öneriliyor.
Windows Defender dışlama listesine Malwarebytes dizinini eklemek için:
# Windows Defender'a Malwarebytes dizinini istisna olarak ekle
Add-MpPreference -ExclusionPath "C:Program FilesMalwarebytes"
Add-MpPreference -ExclusionPath "C:ProgramDataMalwarebytes"
Add-MpPreference -ExclusionProcess "mbam.exe"
Add-MpPreference -ExclusionProcess "MBAMService.exe"
# Mevcut istisnalari listele
Get-MpPreference | Select-Object -ExpandProperty ExclusionPath
Kurumsal Ortamda En İyi Pratikler
Malwarebytes’ı kurumsal ortamda verimli kullanmak için şu noktalara dikkat edin:
- Güncel tutun: Malwarebytes günlük imza güncellemesi yapıyor. Otomatik güncelleme mutlaka aktif olmalı
- Merkezi yönetim: 10’dan fazla makineniz varsa Malwarebytes Nebula veya OneView gibi merkezi yönetim konsollarını değerlendirin
- Log toplama: Tarama loglarını SIEM sisteminize entegre edin. Splunk veya Elastic Stack ile Malwarebytes loglarını parse edebilirsiniz
- Yanlış pozitif yönetimi: Geliştirme ortamlarındaki bazı araçlar yanlış pozitif verebilir, bunları izin listesine (allowlist) ekleyin
- Karantina politikası: Karantina dosyalarını en az 30 gün saklayın, sonrasında otomatik temizlik yapılandırın
- Incident response entegrasyonu: Tehdit tespit edildiğinde otomatik ticket açacak bir webhook veya script entegrasyonu kurun
- Kullanıcı eğitimi: Teknik çözümler tek başına yeterli değil, kullanıcıları sosyal mühendislik saldırıları konusunda bilinçlendirin
Performans Etkisi ve Optimizasyon
Tam sistem taramaları, özellikle HDD’li eski makinelerde belirgin bir yavaşlamaya neden olabiliyor. Bu sorunu minimize etmek için şu ayarları yapın:
Malwarebytes ayarlarında tarama sırasında CPU kullanımını sınırlayın. Bunu Ayarlar > Güvenlik > CPU Optimizasyonu bölümünden yapabilirsiniz. Ayrıca taramaları mesai saatleri dışına planlayın ve SSD’li sistemlerde bu sorun zaten büyük ölçüde ortadan kalkıyor.
Görev yöneticisinden Malwarebytes işleminin önceliğini düşürerek de performans etkisini azaltabilirsiniz:
# Malwarebytes tarama surecinin onceligini duşur (dusuk CPU kullanimi icin)
$mbamProcess = Get-Process -Name "mbam" -ErrorAction SilentlyContinue
if ($mbamProcess) {
$mbamProcess.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::BelowNormal
Write-Host "Malwarebytes surec onceligi dusuruldu: BelowNormal"
} else {
Write-Host "Malwarebytes sureci bulunamadi veya tarama aktif degil."
}
Sonuç
Malwarebytes, Windows güvenlik stratejisinin vazgeçilmez bir parçası haline geldi. Özellikle kurumsal ortamlarda tek bir güvenlik aracına güvenmek artık kabul edilebilir bir risk değil. Katmanlı güvenlik yaklaşımı kapsamında Malwarebytes, Windows Defender’ın yakalamadığı tehditleri temizlemek, ransomware saldırılarına karşı ek koruma sağlamak ve PUP’ları temizlemek için güçlü bir tamamlayıcı oluyor.
Bu yazıda anlattığım PowerShell scriptlerini ve otomasyon yaklaşımlarını kendi ortamınıza uyarlayabilirsiniz. Önemli olan nokta şu: Güvenlik taraması yapmak bir seferlik iş değil, süreklilik gerektiren bir süreç. Haftalık otomatik taramalar, log takibi ve anormal aktivite tespiti bir arada çalıştığında, Malwarebytes gerçekten etkili bir savunma aracına dönüşüyor.
Sorularınız veya farklı senaryolarınız varsa yorum bölümünde paylaşın, elimden geldiğince yardımcı olmaya çalışırım.
