Uygulama Güvenliği Programında İnsan Faktörü

Mert Coskuner
2 min readJan 23, 2021
Photo by Mitchell Luo on Unsplash

Merhaba, bugün bir süredir kafamı kurcalayan bir konuda içimi dökeceğim.

Öncelikle, yazıya konu bazı terimlerin tanımlarına bakalım; uygulamanın güvenliğini artırmak adına zafiyetlerin bulunması, fixlenmesi ve engellenmesi aktivitelerine uygulama güvenliği, yazılım geliştirme süreci denildiğinde herkesin kafasında aynı sürecin canlanmasını sağlayan faz serisine yazılım yaşam döngüsü (SDLC), yaşam döngüsünün güvenlik pratikleri eklenmiş versiyonuna ise güvenli yazılım yaşam döngüsü (Secure SDLC) diyoruz.

Uygulama güvenliği programını da özünde; reaktif ve proaktif unsurların birlikte kullanıldığı, uzun planlama ve tasarımlar yapılarak “Secure” SDLC içerisine konumlandırılan, her şirketin kendi kültürünü ve pratiklerini düşünerek oluşturduğu bir şirket içi program olarak tanımlayabiliriz.

Uygulama güvenliğinin SDLC içerisine konumlandırılması denildiğinde tehdit modelleme gibi, SAST, DAST, SCA gibi ve bu süreçlerin pipelinelara entegrasyonu gibi pek çok konu, güvenlik alanıyla uğraşan biriyseniz üstteki terimlerin tanımlarını okurken aklınıza gelmiştir. Alttaki uygulama güvenliği alanında otorite sayılabilecek bir firmanın sitesinden yaptığım alıntı da, aklınızdakileri özetler nitelikte;

“Secure SDLC is important because application security is important.”

Bu kadar girizgahdan sonra, yazının da başlığını kapsayan, kafamı kurcalayan, sadece uygulama güvenliğiyle sınırlandırılamayacak olan ve üstteki alıntıyı sorgulamama sebep olan o soruya gelelim; “Bir firmada, güvenlik kimin için önemli?”

Sabahları “Venti” boy kahvesini içmeden güne başlayamayan, kendisine sosyal mecrada yaratığı kimliğiyle hayatın içinde var olma savaşı veren ve belki de işini yapmasının en büyük motivasyonu da oluşturduğu bu kimliği devam ettirmek olan birisi için mi?

Aylardır uğraştığı, bazen de savsakladığı, projesinin hedeflenen canlıya çıkma tarihi yaklaştığı için stres yapan, yakın zamanlı tek hedefi bu projeyi bir şekilde bitirmek olan birisi için mi?

Yoksa siber güvenlikle yatıp kalkan, firmanın siber güvenlik politikalarını işleten bir siber güvenlik mühendisi için mi?

Teoride sıklıkla söylenen, uygulamada pek az hatırlanan “Güvenliğin en zayıf halkası insandır.” sözünü, onca teknik çözüm ve ürün varken uygulama güvenliği programının merkezine koymak, bu açıdan bakıldığında pek de mantıksız görünmüyor değil mi?

İşe girişlerde verilen güvenlik eğitimleri, geliştiricilere verilen güvenli yazılım gelişirme eğitimleri… Bu tip eğitimler, bir insanın güvenliğe bakışını ne kadar etkileyebilir? Düşünme şeklini ne kadar değiştirebilir? Uygulama güvenliği programı — çağımızın en popüler konseptlerinden olan — geliştiriciye bir “deneyim” sunmadığı sürece, ne kadar akılda kalabilir?

Belki de geliştirici süreçlerinde güvenliği sola alırken (shift-left security), zafiyet bildirirken, bazı araçlar için self-servis kullanım ortamı sağlarken, bu çözümlerin uygulamalara dokunan kişilere yaşatacağı deneyimi çok da tekniğe boğulmadığımız bir açıdan da düşünmemiz gerekiyor.

Uygulama geliştiren ekiplerle sırt sırta çalışmak, birlikte kod yazıp, modelleme yapıp, birlikte zafiyet fixlemek, deneyim ve vizyon alışverişi yapmak, konulara bakış açılarını dinlemek ve öğrenmek, satın alacağınız bir güvenlik aracından daha değerli olabilir.

Kafamı kurcalayan bu konu hakkında araştırdıklarım ve pratikte uyguladıklarımın beni getirdiği noktada; ürün bağımsız kurgulanmış, geleceğin getirdiklerine dayanıklı, kurum kültürüne uyan ve ölçeklenebilir bir uygulama güvenliği programının anahtarı, insanda gibi görünüyor.

--

--