Web Uygulaması Güvenliğine Yönelik En İyi Kılavuz

Yayınlanan: 2022-10-18

Web uygulamaları günümüzde işlevsellik açısından çeşitlilik göstermektedir. Yani onlara yönelik tehditler var. Bu nedenle, geliştirmenin başlangıcından itibaren test ve destek yoluyla bunları tespit etmeye ve önlemeye hazır olmanız gerekir.

Bu makale, güvenli bir web uygulaması geliştirmenize ve sürdürmenize yardımcı olacak güvenlik araçları ve tekniklerine genel bir bakış sunar.

Web uygulama güvenliği nedir?

Web uygulaması güvenliği, ilgili yöntem ve teknikleri uygulayarak güvenli çalışmayı sürdürmek anlamına gelir. Güvenli bir web uygulaması, kendisine yönelik saldırılara rağmen beklendiği gibi çalışır ve verileri güvende tutar.

Web uygulamalarında güvenlik neden önemlidir?

Günümüzde web uygulamaları, hassas verilerin iletilmesini içeren karmaşık işlemler gerçekleştirmektedir. Kişisel veriler, kredi kartı bilgileri ve hastaların tıbbi verileri bu tür verilere birkaç örnektir. Saldırganlar onları çalmaya çalışırsa, itibar hasarına neden olabilir.

Teknik açıdan, bozuk bir uygulama kapanmaya ve zaman ve para kaybına yol açacaktır. Kullanıcılar bozuk uygulamayla ilgilenecek ve daha güvenilir bir uygulamaya geçmeye eğilimli olacaktır.

En yaygın web uygulaması güvenlik riskleri

Codica'da Open Web Application Security Project (OWASP), güvenlik konularında kullandığımız bir kaynaktır. Diğer sorunların yanı sıra, web uygulamalarının karşılaştığı en yaygın riskleri gösterir. Aşağıda, güvenlik risklerinin zaman içinde nasıl değiştiğini gösteren OWASP'ta oluşturulmuş ilgili bir diyagram bulunmaktadır:

Kaynak: OWASP.org

AWS sürdürülebilirlik araçları

Ekibimiz öncelikle Amazon Web Services (AWS) ile çalışır. Bu nedenle, aşağıda web uygulamalarınızın güvenliğini sağlamak için oluşturulmuş hizmetlerin bir listesi bulunmaktadır. Aşağıdakileri içerir:

  • AWS VPC'si;
  • AWS Güvenlik Merkezi;
  • AWS IAM;
  • AWS Rota 53;
  • AWS Web Uygulaması Güvenlik Duvarı;
  • AWS Kalkanı;
  • AWS Cloudfront.

Web uygulaması güvenlik gereksinimleri

Bir web uygulaması için güvenlik gereksinimi, endüstri standartlarından, yasalardan veya önceki deneyimlerden gelir. Örneğin, OWASP'ın Uygulama Güvenliği Doğrulama Standardı (ASVS), uygulamanın sektörüne bağlı olarak üç güvenlik düzeyi tanımlar. Örneğin, askeri web uygulamalarının üçüncü seviye için güvenlik gereksinimlerine uyması gerekir.

2022'de web uygulaması güvenliği en iyi uygulamaları

Aşağıda, web uygulaması geliştirme için uygulayabileceğiniz en iyi güvenlik uygulamalarını tartışıyoruz.

Adım 1. Güvenlik çerçevelerinden ve kitaplıklarından en iyi şekilde yararlanın

Günümüzde birçok programlama dilinin de çerçeveleri ve kitaplıkları vardır. Güvenli ve güvenilir olanları seçmenizi öneririz. Ayrıca bunların bir listesini tutun. Üstelik bunları güncel tutarsanız, saldırı yüzeyini azaltır.

Adım 2. Veritabanına güvenli erişim

Bir uygulama ile bir veritabanı arasındaki bağlantı şifrelenmelidir. Bir veritabanına erişim, iki faktörlü kimlik doğrulamayı içermelidir. Ayrıca, güçlü bir parola, veritabanından uygulamaya güvenli veri aktarımı sağlar.

Adım 3. Verileri kodlayın ve veriden çıkın

Bu yaklaşım, siteler arası komut dosyası çalıştırma (XSS) saldırılarından kaçınmaya yardımcı olur. Bu saldırılar, bir uygulama bir kontrol işlemi olmadan bir veritabanına güvenilmeyen verileri gönderirse gerçekleşir. Ayrıca, XSS zararlı kodu bir oturum tanımlama bilgisi kullanabilir.

Kodu bir XSS saldırısına karşı korumak için Siteler Arası İstek Sahteciliği belirteci gibi bir kodlama belirteci kullanabilirsiniz. Kodun güvenli olmasını ve hedef yorumlayıcı için tehlikeli olmamasını sağlar.

Adım 4. Tüm girişleri doğrulayın

Girişin doğrulanması, bilgi sistemi iş akışına yalnızca uygun şekilde oluşturulmuş verilerin girmesini sağlar. Bir veritabanına hatalı biçimlendirilmiş girdilerin önlenmesi, bütünlüğünü sağlar. Bu nedenle, güvenilmeyen kaynaklardan gelen veriler doğrulama kontrollerinden geçmelidir.

Adım 5. Dijital kimliği uygulayın

Dijital kimlik, yetkilendirmeden önce kullanıcının doğrulanması anlamına gelir. Çok faktörlü kimlik doğrulama (MFA) ve kriptografik tabanlı kimlik doğrulama (CBA), bir kullanıcının güvenli bir şekilde tanımlanmasını sağlayan iki güvenilir tekniktir. Microsoft'a göre, bilgisayar korsanlığı riskini azaltmaya yardımcı oluyorlar.

Adım 6. Erişim kontrollerini zorunlu kılın

Buradaki tavsiye, erişim kontrollerini önceden yapılandırmaktır. İstekleriniz erişim kontrolünden geçmelidir. Bu durumda, en az ayrıcalıklı olanla birlikte “reddet” durumunun kullanılması önerilir. Ayrıca, kimlik bilgilerini sabit kodlamayın.

Yetkisiz erişim girişimlerini kontrol etmek için her bir kimlik doğrulama ve yetkilendirme vakasının günlüğe kaydedilmesi tavsiye edilir. AWS Secrets Manager ve Hashicorp Vault gibi gizli yöneticiler, web uygulamasına erişimi güvenli hale getirmenize yardımcı olabilir.

Adım 7. Verileri koruyun

Web uygulamanızın hassas verilerinin korunması gerekir. Bunları tanımlayın ve güvende kalmalarına yardımcı olacak güvenli mekanizmalar oluşturun. Bunun için, bu tür veriler aktarım sırasında ve beklemedeyken şifrelenmelidir.

Web uygulamanızdaki en önemli verileri seçmenizi öneririz. Aksi takdirde, şifreleme uygulamayı aşırı yükleyecek ve veri iletimini yavaşlatacaktır.

Adım 8. Güvenli günlük kaydı uygulayın

Bulut çözümleri sayesinde günlük tutmak nispeten basit bir iştir. Örneğin, AWS'nin CloudTrail'i, API etkinliğinin izlenmesine yardımcı olur. Günlüğe kaydetmeyi yapılandırırken hassas veriler ve kimlik bilgileri güvenli bir şekilde saklanmalıdır.

Günlükler bütünleşik tutulmalıdır. Bunun için bunları tek bir yerde (örn. CloudWatch veya S3'te) saklamalı ve salt okunur hale getirmelisiniz. Böylece günlüklerin filtrelemesini merkezileştirirsiniz.

Adım 9. Hataları ve istisnaları ele alın

Modern web uygulamaları, örneğin kopan bir bağlantıya yanıt vermek gibi çeşitli hata mesajları gösterebilir. İlgili hata mesajlarının gösterilmesi, kullanıcılar için kısa ve net olmalıdır. Ayrıca, temel hata işleme sızıntısının sistemin kapanmasına neden olabileceğini unutmayın.

Codica'dan öneriler

Codica'da en iyi güvenlik uygulamalarını izliyor ve bunları dijital çözümlerde uyguluyoruz. Bu nedenle, web uygulamanızın güvenliğini sağlamak için kullanabileceğiniz araçları ve teknikleri sizinle paylaşmak istiyoruz.

Web uygulaması güvenliği için faydalı araçlar

AWS'yi tercih ettiğimiz için WAF ve Shield'ını kullanıyoruz. Ayrıca, AWS'nin Güvenlik Hub'ını kullanmanızı öneririz. Birçok AWS güvenlik hizmetinden veri ve ölçüm toplamanıza yardımcı olacaktır.

Müşterilerimize zengin özelliklere sahip sırlar eklemelerini tavsiye ederiz. Onlar çeşitlidir. Ancak bakımlarının yapıldığından emin olun.

Ekibimiz ayrıca bir kapsayıcı görüntü güvenlik tarayıcısı kullanmanızı önerir. Kapsayıcılar, uygulamanızın herhangi bir ortamda çalışmasına yardımcı olan gerekli öğeleri içerir. Web uygulaması güvenlik açıklarını belirlemenizi sağlarlar. Kapsayıcılar size bir saldırı, hata veya yeni bir hata gösterir.

Web uygulaması testi için faydalı araçlar da vardır. Genel olarak, test etmek için statik (SAST), dinamik (DAST) ve SCA (Yazılım Bileşimi Analizi) olmak üzere üç ana yaklaşımı kullanırız. Hatalar ve güvenlik açıkları için web uygulamalarının güvenliğini sağlamaya ve taramaya yardımcı olurlar.

DevSecOps yaklaşımı ve felsefesi

DevSecOps (geliştirme, güvenlik ve operasyonlar) yaklaşımı, güvenli yazılım geliştirme için gerekli teknikleri tanımlar. Kritik yaklaşımlardan biri güvenlik operasyonlarını “sola kaydırmak”tır. Bu, bir DevOps mühendisinin önden güvenli web uygulaması geliştirmeyi sağladığı anlamına gelir.

Çözüm

Web uygulaması, geliştirmenin başlangıcından test ve desteğe kadar güvenliğe ihtiyaç duyar. Bu nedenle, bu makalede tartıştığımız araç ve teknikleri kullanmanızı öneririz. Örneğin, AWS izleme ve güvenlik hizmetlerini kullanmanızı öneririz. Ayrıca web uygulamanızın güvenlik ihtiyaçlarını ön planda tutarak yazılım ve altyapı kısımlarını dengelemeniz gerekir.


Makale ilk olarak Codica blogunda yayınlandı.