İçeriğe geç

Dikkat: “Telif ihlali” e-postaları bizden değil, bağlantıya tıklamayın.

Ayrıntı
Flatinium
YazılımYayın 8 dk okumaYazanDeniz Işık

Pentest nedir, web sitenize gerekli mi?

Sızma testi ne yapıyor, otomatik taramadan farkı ne, hangi işletmeye gerçekten gerekli ve öncesinde hiçbir maliyeti olmadan yapılabilecek altı kontrol neler? Sunmadığımız bir hizmeti dürüstçe anlatıyoruz.

Kısaca

  • Pentest (sızma testi), bir sistemin gerçek bir saldırganın yöntemleriyle izinli ve planlı biçimde sınanmasıdır; amaç açıkları kötü niyetli biri bulmadan önce bulup raporlamak. Otomatik taramadan farkı, insan uzmanın iş mantığı hatalarını ve zincirlenebilen açıkları aramasıdır.
  • Otomatik tarama ile pentest aynı şey değil: tarama bilinen açıkları listeliyor, pentest ise iş mantığındaki hataları ve zincirlenebilen zafiyetleri arıyor.
  • Her siteye gerekli değil; kişisel veri işleyen, ödeme alan veya kurumsal müşterilerin talep ettiği sistemlerde anlamlı, tanıtım sitelerinde genellikle gereksiz.
  • Pentest öncesinde ücretsiz yapılabilecek çok iş var: güncelleme disiplini, güçlü kimlik doğrulama, gereksiz eklentilerin kaldırılması ve yedekleme.
  • Pentest bir kerelik bir belge değil; sistem değiştikçe tekrarlanması gereken bir kontrol ve tek başına güvenlik sağlamıyor.
Pentest nedir, web sitenize gerekli mi? — Flatinium yazılım yazısının kapak görseli

Pentest (penetration test, Türkçesiyle sızma testi), bir sistemin gerçek bir saldırganın kullanacağı yöntemlerle, izinli ve yazılı kapsam içinde sınanmasıdır; amaç açıkları kötü niyetli biri bulmadan önce bulup raporlamak. Otomatik zafiyet taramasından farkı, işi bir insanın yapması ve iş mantığı hatalarını araması. Her siteye gerekmiyor: kişisel veri işliyor, ödeme alıyor ya da kurumsal müşteriniz sözleşmede istiyorsa anlamlı; tanıtım sitesinde o bütçe önce temel güvenlik hijyenine gitmeli.

Baştan bir not

Sızma testi hizmeti vermiyoruz. Bu yazı bir satış sayfası değil; işletme sahibinin "bize gerekli mi, gerekiyorsa kimden alınır" sorusuna dürüst bir cevap.

Bizim ilgimiz başka yerden: geliştirdiğimiz sistemlerin güvenli kurulması ve pentest yapıldığında temiz çıkması. Yani bu yazı, hazırlık tarafıyla ilgili.

Pentest ne yapıyor?

Pentest — açılımıyla penetration test, Türkçesiyle sızma testi — bir sistemin gerçek bir saldırganın kullanacağı yöntemlerle izinli olarak sınanması.

Amaç açıkları kötü niyetli biri bulmadan önce bulmak.

Testi yapan kişi sisteme dışarıdan bakıyor, zayıf noktaları arıyor ve bulduklarını raporluyor. Rapor genellikle şunları içeriyor: bulunan açıklar, her birinin ciddiyet düzeyi, nasıl istismar edilebileceği ve nasıl kapatılacağı.

Pentest türleri — kara, gri ve beyaz kutu

Teklif alırken ilk duyacağınız ayrım bu. Türü belirleyen şey, test eden kişiye ne kadar bilgi verildiği; NIST'in güvenlik testi rehberi de aynı ayrımı kullanıyor:

Tür

Test edene verilen bilgi

Neyi simüle ediyor

Ne zaman uygun

Kara kutu

Hiçbir şey; yalnızca adres

Dışarıdan rastgele bir saldırgan

İnternete açık yüzeyin ilk kontrolü

Gri kutu

Kullanıcı hesabı ve sınırlı belge

Üye ya da bayi gibi içeriden sınırlı erişimi olan biri

Üyelik, panel ve portal içeren siteler; en sık istenen tür

Beyaz kutu

Kaynak kod, mimari, sunucu erişimi

Kodu bilen biri; en derin inceleme

Özel yazılım, ödeme ve kişisel veri işleyen sistemler

Kara kutu en ucuz ve en yüzeysel; beyaz kutu en pahalı ve en kapsamlı. Web siteleri için makul başlangıç çoğunlukla gri kutu: yetki atlatma ve iş mantığı hataları ancak bir kullanıcı hesabıyla görülebiliyor.

Türün yanında kapsam da ayrışıyor: web uygulaması, ağ ve altyapı, mobil uygulama, kablosuz ağ, sosyal mühendislik. Bir teklifte "pentest" yazıyorsa hangi tür ve hangi kapsam olduğu yanında yazmalı; yazmıyorsa teklifler karşılaştırılamıyor.

Pentest ile zafiyet taraması farkı

Bu ayrım sık karıştırılıyor ve fiyat farkının sebebi. Zafiyet taraması (vulnerability scan) otomatik; pentest insan işi.

Otomatik tarama bilinen açıkları arıyor. Bir imza listesi var, sistem o listeye göre kontrol ediliyor. Hızlı, ucuz, tekrarlanabilir.

Pentest insan uzmanlığı gerektiriyor. Test eden kişi iş mantığını anlıyor ve otomatik aracın göremeyeceği şeyleri arıyor:

  • Yetki atlatma — başka kullanıcının verisine erişebiliyor muyum?
  • İş mantığı hataları — sipariş tutarını değiştirebiliyor muyum?
  • Zincirlenebilen zafiyetler — tek başına zararsız iki açığın birleşimi

İkisi birbirinin alternatifi değil. Tarama düzenli yapılıyor, pentest belirli aralıklarla.


Otomatik tarama

Pentest

Bulduğu

Bilinen açıklar

İş mantığı hataları dahil

Süre

Saatler

Günler

Maliyet

Düşük

Yüksek

Sıklık

Düzenli

Yılda bir, değişiklik sonrası

İnsan gerekli mi

Hayır

Evet

Kime gerekli?

Dürüst cevap: her siteye değil.

Anlamlı olduğu durumlar:

  • Kişisel veri işleyen sistemler — üye kaydı, sağlık verisi, personel bilgisi
  • Ödeme alan siteler
  • Kurumsal müşterilerin sözleşmede talep ettiği durumlar
  • İç sistemlere açılan paneller
  • Özel geliştirilmiş yazılımlar

Genellikle gereksiz olduğu durumlar:

  • Sadece tanıtım yapan kurumsal siteler
  • Form dışında veri toplamayan bloglar
  • Hazır platform üzerinde çalışan küçük mağazalar

İkinci gruptaki siteler için o bütçe, temel güvenlik hijyenine harcandığında çok daha fazla iş görüyor.

Dikkat — "Rakiplerimiz yaptırmış" bir gerekçe değil. Pentest, sistemin taşıdığı riske göre kararlaştırılıyor; risk yoksa rapor bir belge olmaktan öteye geçmiyor.

Öncesinde yapılacaklar

Bu bölüm en çok işe yarayanı, çünkü çoğu işletme bunları yapmadan test yaptırıyor ve raporda zaten bilinen şeyleri görüyor.

1. Güncellemeler. Sistem, tema ve eklentiler güncel mi? Yaşanan güvenlik olaylarının önemli kısmı, aylardır yaması çıkmış açıklardan kaynaklanıyor.

2. Kullanılmayan eklentiler. Her eklenti bir yüzey. Kullanılmayanlar devre dışı bırakılmıyor, kaldırılıyor.

3. Kimlik doğrulama. Yönetici hesaplarında güçlü parola ve iki adımlı doğrulama. Ortak kullanılan tek hesap yerine kişi başına hesap.

4. Yönetim paneli. Panel adresinin korunması, deneme sayısının sınırlanması ve arama motorlarına kapatılması.

5. Yedekleme. Otomatik, düzenli ve sunucu dışında. Test edilmemiş yedek, yedek sayılmıyor.

6. Yetkiler. Herkesin yönetici olduğu bir sistem, en yaygın ve en kolay düzeltilen sorun.

Bu altısı ücretsiz ve raporun içeriğini belirgin şekilde değiştiriyor.

İpucu — Yedeğin çalıştığını yılda bir kez gerçekten geri yükleyerek test edin. Çalışmayan yedekle karşılaşılan an, her zaman en kötü an oluyor.

Yaygın açık türleri

OWASP'ın ilk on maddesi sektörde ortak başvuru listesi ve web uygulamalarında en sık görülen zafiyet kategorilerini derliyor. Ayrıntılı uygulama rehberleri OWASP kılavuzlarında bulunuyor.

İşletme tarafında bilinmesi gereken şey listenin tamamı değil, geliştiricinizin bu listeden haberdar olup olmadığı. Yazılım firması seçerken bu soruyu sormayı ayrı bir yazıda önerdik.

Kişisel veri tarafı

Sistem kişisel veri işliyorsa güvenlik yalnızca teknik bir mesele olmaktan çıkıyor.

Veri sorumlusu olarak uygun güvenlik önlemlerini almak yükümlülüğünüz. Bir ihlal yaşandığında sorumluluk sizde kalıyor, tedarikçinizde değil.

Kişisel Verileri Koruma Kurumu'nun temel ilkeler sayfası bu konuda başlangıç noktası.

Bu, pentest yaptırma gerekçelerinin en somutu: veri işliyorsanız, güvenliğin denetlenmiş olması bir belge değil bir sorumluluk gereği.

Rapor geldiğinde

Pentest raporları uzun ve teknik oluyor. Okuma yöntemi önemli.

Ciddiyet düzeyine göre sıralayın. Kritik ve yüksek olanlar önce; düşük olanlar bekleyebiliyor.

Her bulgu için sorumluyu belirleyin. Bir kısmı geliştiricinin, bir kısmı sunucu yöneticisinin, bir kısmı sizin işiniz.

Düzeltme sonrası doğrulama isteyin. Kapatıldığı iddia edilen açığın gerçekten kapandığının teyidi.

Tekrar takvimi koyun. Rapor o günkü durumun fotoğrafı; sistem değiştikçe geçerliliğini kaybediyor.

Örnek senaryo — Pentest yaptıran ve raporunda 40 bulgu çıkan bir işletme düşünün. Bulguların çoğu güncellenmemiş eklentilerden kaynaklanıyorsa, testten önce güncellemeleri yapmak raporu kısaltır ve aynı ücrete çok daha değerli bilgi alınmasını sağlar.

Güvenlik bir defalık iş değil

En yaygın yanlış beklenti bu: test yapıldı, rapor alındı, iş bitti.

Güvenlik süregelen bir bakım işi. Yeni açıklar çıkıyor, sistem değişiyor, yeni özellikler ekleniyor.

Sürdürülebilir bir düzen şöyle kuruluyor:

  • Haftalık: Güncelleme kontrolü
  • Aylık: Yedeklerin kontrolü, erişim yetkilerinin gözden geçirilmesi
  • Yıllık: Kapsamlı test ve yetki temizliği
  • Her büyük değişiklikte: Hedefli kontrol

Bu ritim, tek seferlik bir testten çok daha fazla koruma sağlıyor.

Kapsam nasıl belirlenir?

Test yaptırma kararı verildiyse ikinci karar kapsam ve fiyatı doğrudan belirliyor.

Netleşmesi gerekenler:

Hangi sistemler dahil? Yalnızca web sitesi mi, yönetim paneli de mi, mobil uygulama da mı?

Hangi bilgiyle test edilecek? Hiçbir bilgi verilmeden mi, kullanıcı hesabıyla mı, kaynak koda erişimle mi? Üçü farklı derinlikte sonuç veriyor.

Test ortamı mı canlı mı? Canlı sistemde test yapılacaksa zamanlama ve yedekleme planı gerekiyor.

Sosyal mühendislik dahil mi? Personeli hedefleyen denemeler ayrı bir kapsam ve ayrı izin gerektiriyor.

Kapsam yazılı tanımlanmadan alınan fiyatlar karşılaştırılabilir olmuyor.

Pentest ne kadar sürer ve neye göre fiyatlanır?

Rakam vermiyoruz; aynı adla satılan işler arasında on kat fark var ve kaynaksız bir aralık yanıltır. Süreyi ve fiyatı belirleyen kalemler ise sabit:

  • Tür. Kara kutu en kısa, beyaz kutu en uzun; kod incelemesi süreyi katlıyor.
  • Kapsamın büyüklüğü. Kaç uygulama, kaç alan adı, kaç ekran ve form, kaç kullanıcı rolü. Fiyat çoğunlukla adam-gün üzerinden hesaplanıyor ve bu sayı doğrudan kapsamdan çıkıyor.
  • Sistemin karmaşıklığı. Ödeme akışı, dosya yükleme, üçüncü taraf entegrasyonlar ve çok rollü yetki yapısı test süresini uzatıyor.
  • Test ortamı. Canlı sistemde test yapılacaksa zamanlama ve koruma planı eklenir; ayrı test ortamı varsa iş hızlanır.
  • Yeniden test. Düzeltme sonrası doğrulama turu dahil mi, ayrı mı? Dahil değilse teklif eksik.
  • Raporun biçimi. Yalnızca teknik rapor mu, yönetim özeti ve müşteriye sunulacak belge de var mı?
  • Sosyal mühendislik. Personeli hedefleyen denemeler ayrı kapsam, ayrı izin ve ayrı ücret.

Süre tarafında kaba bir sıra: küçük bir web uygulamasında gri kutu test birkaç gün, orta büyüklükte çok rollü bir sistem bir-iki hafta, beyaz kutu kod incelemesiyle birlikte daha uzun sürüyor. Rapor yazımı ve yeniden test bu sürenin dışında; teklifte ayrı satır olarak görünmeli.

Teklifleri karşılaştırırken yedi kalemi yan yana yazdırın. Toplamı tek satırda veren teklif ucuz görünebilir ama çoğunlukla yeniden testi ve yönetim özetini dışarıda bırakıyor.

Yasal çerçeve

Bu, atlanınca ciddi sonuç doğuran bir başlık.

Sızma testi, izinsiz yapıldığında suç. Test edilecek sistemin sahibi olmanız ya da yazılı izin almanız gerekiyor.

Barındırma sağlayıcınızın da bilgilendirilmesi gerekebiliyor; bazı sağlayıcılar test trafiğini saldırı olarak algılayıp hesabı askıya alabiliyor.

Yazılı izin ve kapsam belgesi, testi yapan taraf için de sizin için de koruma.

Sonuçları kimle paylaşmalı?

Pentest raporu hassas bir belge: sisteminizin zayıf noktalarını tarif ediyor.

Paylaşım sınırlı tutulmalı ve düzeltmeden sorumlu kişilerle sınırlı kalmalı. Kurumsal müşteri talep ediyorsa genellikle raporun tamamı değil, testin yapıldığını ve bulguların kapatıldığını gösteren bir özet yeterli oluyor.

Rapor dosyasının kendisi de korunmalı — paylaşılan bir sürücüde açık duran bir pentest raporu, kendi başına bir risk.

Sonuç — Pentest değerli ama sıranın sonunda. Güncellemesi yapılmamış, yedeği alınmamış, herkesin yönetici olduğu bir sistemde yaptırılan test, zaten bilinen sorunları pahalı bir rapora çeviriyor.

Güvenli geliştirme ve altyapı kurulumunu web sitesi geliştirme ve özel yazılım geliştirme kapsamında yürütüyoruz; devraldığımız sistemlerde inceleme raporu bu başlıkları da kapsıyor — yarım kalan yazılım projesi yazısında anlattık.

Bu konuyla ilgili

Projenizi kısaca anlatın

Adınızı, e-postanızı ve varsa sitenizin adresini bırakın. Bir iş günü içinde dönüp neyin gerektiğini açıkça söyleyelim; ön görüşme ücretsiz.

Telefon ya da not eklemek isterseniz

Bilgileriniz yalnızca size dönüş için kullanılır. KVKK aydınlatma metni

SSS

Sık sorulan sorular

Pentest nedir?

Bir sistemin, gerçek bir saldırganın kullanacağı yöntemlerle izinli olarak sınanması. Amaç açıkları kötü niyetli biri bulmadan önce bulmak ve raporlamak. Otomatik taramadan farkı, insan uzmanlığının devreye girmesi.

Otomatik güvenlik taraması yeterli mi?

Bilinen açıkları bulmak için iyi bir başlangıç ama yeterli değil. Tarama araçları imza tabanlı çalışıyor; iş mantığındaki hataları, yetki atlatmalarını ve zincirlenebilen zafiyetleri göremiyor. Bu ikisi farklı işler.

Bizim sitemize gerekli mi?

Kişisel veri işliyorsanız, ödeme alıyorsanız veya kurumsal müşterileriniz talep ediyorsa anlamlı. Sadece tanıtım yapan, form dışında veri toplamayan bir sitede genellikle gereksiz; o bütçe temel güvenlik hijyenine harcanmalı.

Öncesinde ne yapmalıyız?

Temel hijyen. Güncellemeleri düzenli yapmak, kullanılmayan eklentileri kaldırmak, güçlü ve iki adımlı kimlik doğrulama kurmak, yedekleme almak ve yönetim panelini korumak. Bunlar yapılmadan yaptırılan pentest, zaten bilinen sorunları raporluyor.

Ne sıklıkla tekrarlanmalı?

Sistem önemli ölçüde değiştiğinde ve düzenli aralıklarla. Bir kerelik yapılan test, o günkü durumun fotoğrafı; yeni bir modül eklendiğinde geçerliliğini kaybediyor. Yılda bir ve büyük değişikliklerden sonra makul bir ritim.

Pentest türleri nelerdir?

Test edene verilen bilgiye göre üç tür var: kara kutu (hiç bilgi yok, dışarıdan saldırgan gibi), gri kutu (kullanıcı hesabı ve sınırlı bilgi) ve beyaz kutu (kaynak kod ve mimariye tam erişim). Kapsama göre de ayrılıyor: web uygulaması, ağ ve altyapı, mobil uygulama, sosyal mühendislik. Web siteleri için en sık istenen gri kutu web uygulama testi.