B2B portalı ve bayi sistemi işletenler
Dışarıdan kullanıcıların giriş yaptığı sistemler. Bu portallar müşteri listesi ve fiyat verisi taşır; yetkilendirme hatası burada doğrudan ticari bilgi sızması demektir.
Teslim edilmiş ya da devralınmış uygulamalarda güvenlik denetimi yaparız: yetkilendirme ve veri erişim hataları, kimlik doğrulama zayıflıkları, enjeksiyon riskleri, sır ve anahtar yönetimi, bağımlılık zafiyetleri. Bulguları kapatma tarafında da çalışırız.
Bir işletmenin en değerli verisi çoğu zaman en az korunan uygulamanın içindedir. Bayi portalı müşteri listesini ve fiyatları taşır; teklif sistemi maliyet yapısını gösterir; saha uygulaması personel ve müşteri bilgisini tutar. Bu uygulamalar genellikle hızlı yazılmış, işe yaramış ve sonra üzerine eklenerek büyümüştür. Güvenlik, çoğu zaman ilk günün önceliği olmamıştır ve sonradan da kimse geriye dönüp bakmamıştır.
Pratikte en sık karşılaşılan sorunlar egzotik değildir. Bir kullanıcının adres satırındaki numarayı değiştirerek başka bir bayinin siparişini görebilmesi; parola sıfırlama akışının zayıf kurulması; arayüzde gizlenmiş ama sunucuda kontrol edilmemiş bir yetkinin dışarıdan çağrılabilmesi; veritabanı parolasının kod içine yazılması; yıllardır güncellenmemiş bir kütüphanenin bilinen bir zafiyet taşıması. Bunların hepsi sıradan hatalardır ve sıradan oldukları için de yaygındır.
Yaptığımız iş kod ve mimari tarafındaki denetimdir. Yetkilendirme mantığı satır satır incelenir; kimlik doğrulama ve oturum yönetimi değerlendirilir; veri erişim katmanındaki enjeksiyon riskleri aranır; sırların nerede tutulduğu ve nasıl dağıtıldığı kontrol edilir; bağımlılıklar bilinen zafiyetlere karşı taranır. Bulgular tahmin olarak değil, nerede olduğu ve neden sorun olduğu gösterilerek raporlanır.
Sınırı açıkça yazıyoruz: resmî sızma testi ayrı bir yetkilendirme rejimine tabidir ve o hizmeti verdiğimizi söylemiyoruz. Bizim çalışmamız kod ve mimari denetimi ile bulguların kapatılmasıdır; elinizde başka bir tarafın hazırladığı bir sızma testi raporu varsa, oradaki bulguları kapatma tarafında çalışabiliriz. Bu ayrım işin ciddiyetinin göstergesidir; her ikisini birden vaat eden tekliflerde genellikle biri gerçek anlamda yapılmaz.
Dışarıdan kullanıcıların giriş yaptığı sistemler. Bu portallar müşteri listesi ve fiyat verisi taşır; yetkilendirme hatası burada doğrudan ticari bilgi sızması demektir.
Yazan ekiple yolları ayrılmış ve sistemi devralmış işletmeler. Devir sırasında güvenlik durumunun bilinmemesi olağandır; denetim, devrin doğal bir parçası olarak yapılmalıdır.
Müşteri, tedarikçi veya pazaryerine arayüz sunan işletmeler. Arayüzler genellikle iç kullanım için yazılıp sonradan dışarı açılır ve yetki modeli bu geçişte gözden geçirilmez.
Personel, müşteri veya sağlık verisi tutan sistemler. Burada güvenlik yalnızca teknik değil, aynı zamanda hukuki bir yükümlülüğün teknik karşılığıdır.
| Yetenek | Ne sağlar |
|---|---|
| Yetkilendirme ve veri erişim denetimi | Kullanıcının yalnızca kendi verisine erişebildiği doğrulanır; adres veya kimlik değiştirerek başkasının kaydına ulaşma imkânı aranır. Yetki kontrolünün arayüzde değil sunucuda yapıldığı kontrol edilir. Uygulamada en sık ve en ciddi bulgular bu başlıktan çıkar. |
| Kimlik doğrulama ve oturum yönetimi | Giriş akışı, parola politikası, parola sıfırlama, oturum süresi ve çoklu oturum davranışı incelenir. Sıfırlama akışı, saldırıya en açık ve en çok ihmal edilen noktalardan biridir. |
| Enjeksiyon ve veri katmanı riskleri | Veritabanı sorgularının nasıl kurulduğu incelenir; birleştirilerek oluşturulan sorgular ve doğrulanmamış girdiler tespit edilir. Dosya yükleme, dışa aktarma ve rapor üretimi gibi yan yollar da ayrıca değerlendirilir. |
| Sır ve anahtar yönetimi | Veritabanı parolaları, API anahtarları ve sertifikaların nerede tutulduğu, nasıl dağıtıldığı ve kimlerin eriştiği incelenir. Kod deposunda duran sırlar, sürüm geçmişi dahil aranır; silinmiş görünen bir sır geçmişte durmaya devam eder. |
| Bağımlılık ve bileşen zafiyetleri | Kullanılan kütüphaneler bilinen zafiyetlere karşı taranır ve güncelleme yolu çıkarılır. Öncelik, bileşenin varlığına değil gerçekten kullanılıp kullanılmadığına bakılarak belirlenir. |
| Bulguların kapatılması ve ekibe aktarım | Bulgular önem sırasına konur ve düzeltme uygulanır; isterseniz bunu kendi ekibiniz de yapabilir. Çalışmanın sonunda tekrar etmemesi için kısa bir güvenli geliştirme kontrol listesi bırakılır. |
Hangi uygulamaların inceleneceği, kaynak koda erişim durumu ve çalışma penceresi belirlenir. Kapsam ve süre yazılı olarak sabitlenir; canlı ortama dokunulup dokunulmayacağı baştan netleştirilir.
Uygulamanın veri modeli, kullanıcı rolleri ve erişim mantığı çıkarılır. Yetkilendirme hatalarının çoğu, kodun tek tek satırlarında değil bu modelin kendisinde saklıdır.
Kod incelemesi, otomatik taramalar ve hedefli denemelerle bulgular çıkarılır. Her bulgu, gerçekten sömürülebilir olup olmadığı açısından değerlendirilir; teorik uyarılarla dolu bir rapor işe yaramaz.
Bulgular etkisine ve sömürülme kolaylığına göre sıralanır; her biri için düzeltme önerisi verilir. Acil kapatılması gerekenler ayrı bir listeye alınır ve rapordan önce bildirilir.
Düzeltmeler uygulandıktan sonra ilgili bulgular yeniden denenir ve kapanış kaydedilir. Ekibe kısa bir güvenli geliştirme kontrol listesi ve bağımlılık güncelleme düzeni bırakılır.
Hayır. Resmî sızma testi ayrı bir yetkilendirme rejimine tabidir ve o hizmeti verdiğimizi söylemiyoruz. Bizim yaptığımız iş kod ve mimari tarafındaki denetimdir. Elinizde başka bir tarafın hazırladığı bir sızma testi raporu varsa, bulguların kapatılması tarafında çalışabiliriz. İkisini birden vaat eden tekliflerde genellikle biri gerçek anlamda yapılmaz.
Kapsam daralır ama tamamen imkânsız değildir. Arayüz ve veri tarafından yapılabilecek incelemeler ve bağımlılık değerlendirmesi yine mümkündür. Ancak yetkilendirme mantığının doğru kurulup kurulmadığını en net gösteren şey koddur. Kaynak koda ulaşılamıyorsa, önce yazılımın devralınması gündeme gelir; bu ayrı bir çalışmadır.
Bulgular önem sırasına konur ve düzeltme önerileriyle birlikte raporlanır. Acil olanlar rapor beklemeden bildirilir. Düzeltmeyi biz uygulayabiliriz ya da kendi ekibiniz uygulayabilir; rapor bunu mümkün kılacak açıklıkta yazılır. Raporu alıp kendi yolunuza devam etmeniz de bizim için kabul edilebilir bir sonuçtur.
İnceleme büyük ölçüde kod ve yapılandırma üzerinde, yani salt okunur yürütülür. Çalışan sistem üzerinde deneme yapılması gerekiyorsa bu, canlıda değil kopya ortamda ya da sizinle kararlaştırılmış bir pencerede yapılır. Canlı ortama yalnızca sizin yazılı onayınızla dokunulur.
Tek seferlik bir denetim, yapıldığı andaki durumu gösterir. Kod değiştikçe ve bağımlılıklar eskidikçe tablo değişir. Uygulamada işe yarayan düzen şudur: bağımlılık taraması sürekli otomatik çalışır, kapsamlı denetim ise büyük değişikliklerden sonra veya belirli aralıklarla tekrarlanır. Sıklığı sistemin değişim hızına bakarak birlikte belirleriz.
Kapsamı yazılı bir denetim raporu; önem sırasına konmuş bulgular ve her biri için düzeltme önerisi; acil kalemlerin ayrı listesi; uygulanan düzeltmeler ve yeniden denetim sonuçları; bağımlılık güncelleme düzeni ve ekibe bırakılan güvenli geliştirme kontrol listesi. Rapor ve uygulanan düzeltmeler dahil üretilen her şey yüzde yüz sizindir.
30 dakikalık keşif görüşmesinde ihtiyacınızı dinler, özele mi yoksa hazır çözüme mi ihtiyacınız olduğunu dürüstçe söyleriz.
Mevcut yazılım varlığınızı bağımsız olarak değerlendiririz: mimari haritası, teknik borç envanteri ve önceliklendirmesi, bağımlılık ve tedarikçi kilitlenmesi riski, ekibin çalışma biçimi ve gerçekçi bir yol haritası. Kod yazmadan yön veren bir çalışmadır.
Detay →Tek müşteri için yazılmış ve çalışan bir yazılımı satılabilir bir ürüne dönüştürürüz: çekirdek ile müşteriye özel katmanın ayrılması, konfigürasyon motoru, çok kiracılı veri izolasyonu, kurulum ve sürüm yönetimi ile abonelik altyapısı.
Detay →Talep ile tedariğin nerede ayrıştığını, hangi tedarikçinin termininde durduğunu ve malın şu anda hangi noktada beklediğini tek yerden görünür kılarız. Amaç yeni bir ERP kurmak değil; mevcut sistemin bilmediği zincir dışı bilgiyi toplayıp planlama kararını veriye bağlamaktır.
Detay →Talebin nereden geldiğini, hangi tekliflerin alındığını, kimin neyi onayladığını ve gelen faturanın siparişle örtüşüp örtüşmediğini tek bir zincirde toplarız. Satın alma kişilerin hafızasında değil sistemde yürür; her adım geriye dönük olarak gerekçesiyle birlikte okunabilir. Mevcut ERP'niz yerinde kalır.
Detay →Tedarikçinin kim olduğunu, hangi belgesinin ne zaman dolduğunu, geçen yıl terminine ne kadar uyduğunu ve hangi fiyat anlaşmasının yürürlükte olduğunu tek kayıtta toplarız. Onaylı tedarikçi listesi bir Excel dosyası olmaktan çıkar. Tedarikçi portalı isteğe bağlı olarak aynı yapıya bağlanır.
Detay →Sevkiyatı planlayan, aracı ve güzergâhı belirleyen, taşıyıcı ile navlunu karşılaştıran, e-irsaliyeyi kesen ve teslim kanıtını sahadan toplayan bir katman kurarız. Kendi filonuz varsa yakıt, bakım ve belge maliyeti aynı sistemde birikir; taşıyıcıyla çalışıyorsanız hangi işin kime kaça verildiği kayıt altına alınır.
Detay →