Web Uygulama Zafiyetleri ve Giderilme Yöntemleri

EPISODE I: INTRO

Muhammet Muti
hepsiburadatech
4 min readJul 24, 2020

--

Selamlar Arkadaşlar,

Bu yazıyı bir yazı dizisinin ilk yazısı olarak oluşturmayı hedefliyorum.

Bu dizide developer arkadaşların geliştirdikleri kod içerisinde ya da bir yerden alıp kullandıkları kod içerisinde ortaya çıkabilecek güvenlik zafiyetlerini, bu zafiyetlerin neler olduklarını, bir saldırgan tarafından nasıl kötüye kullanılabileceğini ve bu zafiyetlerin oluşmaması için developer arkadaşların nasıl önlemler alarak saldırganları saf dışı bırakabileceklerini paylaşmak istiyorum.

Diziyi en çok karşılaşılan web güvenlik zafiyetleri, kaynak kod seviyesinde tespit edilen güvenlik zafiyetleri ve dünya çapında büyük etki uyandırmış güvenlik zafiyetleri ile ilgili yazılarla devam ettirmek istiyorum.

Bu yazıda ise konuya ilk giriş yapalım. Güvenlik zafiyeti nedir? Bu alanda yapılan çalışmalar nelerdir? Bu güvenlik kod geliştirme işi gerçekten büyütüldüğü kadar kıymetli midir? Hepsiburada ekibi böyle kod yazmayı nerden öğrendi? (Son sorunun cevabı bizi aşabilir) :) gibi soruların cevaplarına birlikte bakalım istiyorum.

Güvenlik zafiyetini açıklamadan önce güvenli internet için çalışmalar yapan OWASP topluluğundan biraz bahsetmek istiyorum.

OWASP

OWASP

OWASP, Internet kullanıcıların güvenliğini tehdit eden güvensiz web yazılımların oluşturabileceği sorunlarla mücadele için kurulmuş bir topluluktur. Bu amaç doğrultusunda araştırmalar, raporlar, açık kaynak kodlu güvenlik ürünleri üretir. Bu yönüyle de yazılım güvenliği konusunda güvenebileceğimiz bir otorite olarak karşımıza çıkıyor. OWASP’ın başlıca birkaç projesinin ismini aşağıda paylaşıyorum. Bunlardan bir kaçını detaylı incelemek için ayrı medium yazıları yazmayı da hedefliyorum.

  1. OWASP Top Ten
  2. OWASP Proactive Controls
  3. OWASP Cheat Sheet Series
  4. Software Assurance Maturity Model (SAMM)
  5. Security Knowledge Framework

Güvenlik zafiyeti

Şimdi esas konumuz olan güvenlik zafiyetine dönersek, özet olarak “Kötü niyetli kullanıcıların(Saldırgan ya da başka bir deyişle Hacker :) ), zarar vermek amacıyla kullanabilecekleri, yazılımlar içerisindeki zayıflıklardır.” şeklinde özetleyebiliriz ama bu açıklama bile pek çok açıklama gerektiriyor.

Güvenlik otoritesi olabilir dediğimiz OWASP da güvenlik zafiyetini;

“Güvenlik zafiyeti, bir saldırganın bir uygulamanın paydaşlarına zarar vermesine izin veren bir tasarım hatası veya uygulama hatası olabilen uygulamada bir delik veya zayıflıktır.”

tanımı ile tarif ediyor.

Yani bir saldırgan güvenlik zafiyetini tespit eder ve bunu kendi çıkarları için kullanır ise zafiyetin bulunduğu uygulamaya, firmaya, müşterilere, fiziksel cihazlara beklenmedik zararlar verebilir.

Aslında bir zafiyet bir saldırgan tarafından bulunmasa bile firmalara, yazılımcılara zarar veriyor. Zafiyetin tespit edilmesi, Zafiyetin giderilmesi eforu, Zafiyetin kontrol testleri … .Geliştirilen bir kodda bir güvenlik zafiyeti var ise bu kodun sahibi firma bu zafiyetin tespit aşamasıyla orantılı olarak yüksek maliyetlerde kayıplar yaşayabiliyor.

Bir zafiyet geliştirme sürecinin hangi aşamasında tespit edildiğine göre zafiyet maliyeti oranları

Yukarıdaki grafikte de görüldüğü gibi bir güvenlik zafiyetinin hangi yazılım geliştirme yaşam döngüsü aşamasında tespit edildiği zafiyetin maliyetini oldukça etkiliyor. Zafiyet daha kod yazılmadan ön görülür ve kod bu zafiyet oluşmayacak şekilde yazılır ise bu zafiyet 1 birim maliyet oluştururken, Eğer kod üretime alındıktan sonra tespit edilirse 30–90 birim maliyet oluşturabiliyor.

Başka bir deyişle işin başında düşünmediğimiz her zafiyet bize daha fazla iş çıkarıyor.

İşte bu yüzden bir yazılımcı güvenli yazılım geliştirdiğinde bu işi azalttığı için daha değerli ve firmasına yerine göre 30 kat daha fazla katkı sağlayan bir yazılımcı oluyor.

Güvenli yazılım geliştirmenin günümüzde daha fazla değer verilmesinin, güvenli yazılım geliştiren yazılımcıların el üstünde tutulmasının, tüm firmaların güvenliği yazılımcının içselleştirmesini istemesinin, güvenlik için kültür dönüşümü şart olarak görülmesinin ya da güvenliği içselleştirmiş yazılımcıların daha değerli görülmelerinin temel sebebi tam olarak bu.

Buda gösteriyor ki güvenli yazılım, yazılım güvenliği, siber güvenlik ya da nasıl adlandırıyor isek bunların hepsi yazılımcı ile başlayıp yazılımcı ile biten bir süreçtir. Güvenli bir yazılımın ancak yazılımcının güvenli yazılım geliştirmesi ile ortaya çıkabilir.

Saygılarımla,

--

--