Dijital dönüşümün hızlanmasıyla birlikte, gerek kurumsal gerekse son kullanıcıya yönelik birçok hizmet ve süreç web uygulamalarıyla yönetilir hale geldi. Bankacılıktan eğitime, sağlıktan ulaşıma kadar pek çok süreç web uygulamaları üzerinden yürüyor. Çağdaş hayatın kritik bileşenlerinden biri haline gelen bu uygulamaların güvenliğini garanti altına almak ise hizmet sağlayıcıların en kıymetli misyonlarından biri oldu. Siber güvenlik entegratörü Innovera, inançlı bir internet tecrübesi için web uygulama geliştiricilerin alması gereken güvenlik önlemlerini 10 hususta özetledi:
1. İnançlı temas ve aktüel sertifikalar kullanın
Tarayıcıların adres çubuğunda yeşil bir kutucuğun içerisinde yer alan “Güvenli” ibaresi, bağlı olduğumuz internet sitesinin uçtan uca şifrelendiğini gösteriyor. Bu ibareye sahip olabilmek için ise sitenin “HTTPS” protokolüyle çalışması gerekiyor. Sıradan HTTP sayfalarının sonuna eklenen “S” ibaresi, ismini İngilizce güvenlik sözünden alıyor ve interneti şifreleyerek inançlı hale getiriyor. Bu yüzden ödeme ve üyelik sayfaları üzere kullanıcı tarafından data girişi yapılan her internet sayfasında bu protokolün kullanılması gerekiyor.
Güvenli internetin gelişmesine öncülük eden Google üzere arama motorları, her internet sitesinin bu protokolü kullanmasını tavsiye ediyor. İnançlı temaslar, farklı hizmet sağlayıcılardan satın alınan “SSL Sertifikaları” ile elde ediliyor. Bu sebeple sertifikalandırma süreçlerinde hem emniyetli bir firma ile çalışmak hem de sertifikanın şimdiki olduğuna emin olmak gerekiyor.
2. Dış ağa açık giriş ekranlarına captcha yerleştirin
Bir siteye üye olurken ortaya çıkan “Ben robot değilim” kutucuğunu hepimiz yakından tanıyoruz. Bu kutucuğa tıkladığımızda, yapay zeka ve makine tahsilinden beslenen algoritmalar internet üzerindeki tüm faaliyetlerimizi denetim ederek bizim gerçek bir insan olup olmadığımızı denetim ediyor. Kuşkulu bir hareket sezdiğinde ise karşımıza görseller çıkararak bizden yanlışsız seçimleri yapmamızı bekliyor.
“Captcha” olarak isimlendirilen ve hayatımıza okunması sıkıntı harf kombinasyonlarıyla giren bu denetleme sistemini, şirketinizin dış ağa açık olan giriş ekranlarında kullanabilirsiniz. Çoklu yanlış denemelerde hesabı muhakkak bir mühlet kısıtlayarak, brute force olarak da bilinen ve sistemlere sızmak için gerisi gerisine bilgi girişi yapılması gereken hücumların önüne geçebilirsiniz.
3. İstemcilerde çerez güvenliğini sağlayın
İnternet üzerindeki her hareketimizde gerimizde bir iz bırakıyoruz. Bu izler pazarlama ve reklam için kullanılabileceği üzere berbat gayelerle da kullanılabiliyor. Bu sebeple kullanıcıların dijital dünyadaki ayak izleri manasına gelen çerezlerin (cookie) en güzel formda korunduğuna emin olmak gerekiyor. Örneğin çerezlerin samesite başlıklarındaki güvenlik “httponly” ve “secure” kullanarak artırılabiliyor. İnternet sitesinde CSRF ve XSS üzerinden oluşabilecek riskler ise sunucunun başlık (header) bilgilerine “sameorigin (SOP), cross-origin resource sharing (CORS)” ve “http nosniff” ibarelerinin eklenmesiyle minimuma iniyor. Bu süreçler biraz teknik olsa da kısa bir internet araştırmasıyla çarçabuk uygulanabiliyor.
4. İddia edilebilir dizinlerden kaçının
Uygulama sunucusu üzerinde kestirim edilebilir dizin isimleri olmadığından emin olmak, kritik evrakların güvenliği için epey kıymetli. Dışarıdan erişilmesini istemediğiniz bir evrakın ismini “belge” olarak kaydettiğinizde, site domaininin sonuna eklenen “/belge” sözü, rastgele bir kullanıcının ilgili evraklara erişmesi manasına geliyor. Bu sebeple belge ve dizinlere yüksek hassasiyetle yaklaşmaya daha isimlendirme evresindeyken başlamak gerekiyor.
5. Botlara dikkat edin
Web uygulamanızdaki hassas dizinlerin robots.txt belgesi içinde yer almadığından emin olun. Google, Yandex ve Bing üzere arama motorları tarafından yaratılan ve interneti nizamlı olarak tarayan akıllı botlar, her internet sayfasını tek tek tarayıp arama sonuçlarında tüm dünyaya sunmak için durmaksızın çalışıyor. Özel bilgiler içeren ve sizden diğer kimsenin görmesini istemediğiniz sayfaların ezkaza bir Google aramasında çıkmasını istemezsiniz. Neyse ki kolay robots.txt düzenlemeleri ile bu durumun önüne geçilebiliyor.
6. Güçlü parolalar kullanın
2019 yılında azımsanmayacak sayıda insan hala doğum tarihi ve isimlerinden oluşan kombinasyonlarla parolalar oluşturuyor. Bu parolalar hem makûs niyetli şahıslar tarafından rahatlıkla iddia edilebiliyor hem de dakikada binlerce deneme yapabilen ziyanlı yazılımlar tarafından çarçabuk çözülebiliyor. Bu yüzden asgarî sekiz karakterden oluşan ve içerisinde sayı, özel karakter, büyük ve küçük harf barındıran güçlü şifreler oluşturmak gerekiyor.
7. Her framework ve kütüphaneyi kullanmayın
İnternet üzerinde çalışan tüm uygulamalar, sayısız framework ve kütüphaneden faydalanıyor. Framework; web uygulamasının ortaya çıkmasını sağlayan çalışma ortamını, kütüphane ise daha evvel diğerleri tarafından hazırlanmış hazır kod parçacıklarını temsil ediyor. Bu ikili, çoklukla yapılacak işin gereksinimine nazaran projenin başlangıç etaplarında seçiliyor. Web uygulamanızda bir kütüphane kullandığınızda, aslında dışarıdan takviye almış oluyorsunuz. Grubunuzdan olmayan, farklı bir geliştirici tarafından yazılmış kod parçacıklarını projenize dahil ediyorsunuz. Hasılı seçici olmakta büyük yarar var. Aktüel versiyonlara sahip olmayan ya da günümüz teknolojileriyle uyumlu çalışmayan kütüphane ve framework’ler faydadan çok ziyan getirebiliyor.
8. Formlarınızı inançta tutun
Uygulamalarda bulunan form süreçlerinde, kullanıcılarınız için rastgele üretilmiş eşsiz bir token (geçici anahtar) ile “Siteler Ortası Talep Sahteciliği (CSRF)” zafiyetine karşı tedbir alabilirsiniz. Bu token’lar kullanıcıların yapmak istedikleri süreç için sırf bir kez üretilir ve bir müddet sonra kullanım dışı kalır. Böylece uygulamanızda uçtan uca güvenlik sağlar.
9. Temizleme süreci (Sanitize)
Kullanıcılarınızdan gelen tüm dataların denetim edilerek sürece alındığından emin olmak ismine temizleme süreci (Sanitize) yapılmalıdır. Sanitize, girdinin kabul edilebilir bir formata çevrilmesi sürecidir. Beyaz liste mantığı ile sanitize sürecine örnek vermek gerekirse, kullanıcıdan alınan TCKN verisinin içinde geçen ve sayı olmayan tüm karakterlerin silinmesidir. Kara liste mantığı ile sanitize sürecine örnek vermek gerekirse kullanıcıdan alınan isim parametresi üzere alanlarda bulunan ve uygulama için risk oluşturabilecek (tek tırnak, çift tırnak vb.) karakterlerin silinmesi gösterilebilir. Bilgi kontrolü gerçekleştirirken, uygun alanlarda beyaz liste mantığı ile tedbir alınmasını önermekteyiz.
10. Ayrıntılı yanılgı iletisi göstermeyin
Ortaya çıkan yanılgı iletilerini tek tek denetim ederek, kullanıcılarınıza gereğinden fazla bilgi sunan detaylı kusur bildirilerinin verilmesini engellemeniz gerekiyor. Çünkü bir siber saldırgan, ayrıntılı bir kusur iletisinden sisteminizin nasıl çalıştığına ait fikir edinebilir. Bu sebeple yanılgı ayıklama bilgilerini, incelenmek üzere harici bir kayıt evrakına yönlendirmenizi tavsiye ediyoruz.