İçindekiler
- Giriş
- Uygulama Güvenliği Nedir?
- Uygulama güvenliğin alt başlıkları
- Web Applications Firewall (Web Uygulama Duvarları)
- Application Testing (Uygulama Testi)
- Secure Development(Güvenli Geliştirme)
- Güvenli Uygulama Geliştirme sürecinde takip edilmesi gereken aşamalar
- Application security Testing Methodologies (Uygulama güvenliğini test etme metodojileri)
- Sonuç
- Kaynakça
Giriş
1980 yıllarında bilgisayar makinelerine yapılan büyük solucan saldırından beri bilgisayar sistemlerinde güvenliğin ciddi mesele olarak alınmasına neden olmuştur. Bu saldırıdan sonra bilgisayar sistemlerde bir çok değişiklik yapılmış olsa bile saldırılar ve tehditler tamamen ortadan kalkmamıştır. Aksi takdirde saldırganların kötü amaçlı yazılımları kullanarak saldırı yaptıktan sonraki elde ettikleri çeşitli faydalardan dolayı saldırıların çoğalmasına neden olmuştur. Daha sonra bilgisayar sistemleri mobil platformlara geçti bu da saldırganların o yöne ilerlemelerine neden olmuştur. Bu saldırılara en çok maruz kalanlar Android kullanıcılardır.(Wamba, Akter, Edwards, Chopin ve Gnanzou, 2015)’e göre Mobil cihaz, cep telefon kullanımı hızla yaygınlaştığını vurgulamaktadır. 2011 yılında 4 milyardan fazla cep telefon kullanıcısı varken ilerleyen yıllarda bu oran ciddi bir şekilde artış göstermektedir. Bundan hareket ederek mobil uygulamaların kullanıcısı artmaktadır aynı şekilde bu kullanıcıların hassas bilgilerini çeşitli nedenlerden dolayı elde etmek isteyen saldırganlar da artmaktadır. Dolayısıyla uygulama güvenliği günümüzde önemli konulardan yer almaktadır.
Uygulama Güvenliği Nedir?
Uygulamalardaki güvenlik açıklarını tespit ederek onları düzelterek ve önleyerek uygulamanın güvenliğini artırmak için alınan önlemleri kapsamaktadır. Bu açıklar uygulamanın içindeki bulunan verilerin çalınma ihtimalı ve uygulamanın kodları çalınması gibi hususlar olabilir. Uygulama güvenliği açıkları uygulamanın tasarım ve geliştirme sırasında tespit edilmektedir.
Uygulama Güvenliğin Alt başlıkları
Web Applications Firewall (Web Uygulama Duvarları)
Web uygulama Güvenlik duvarları bir uygulamada bulunan bir güvenlik modülüdür. Bu Modüller Proxy cihazlarda bulunup bir web uygulamanın sunucusunun çeşitli virüs saldırılarından korumaktadır. Web uygulama duvarların önemlerinden biri ise uygulamanın sapmasını algılayarak kullanıcıların (kredi kart bilgileri , kimlik bilgileri ) gibi hassas verilerin saldırganlar tarafından erişilip erişilmediğini tespit edip ona göre uygun eylemde bulunur. Ayrıca bu duvarlar önemli güvenlik katmanlar oluşturmaktadır ve bu katmanların çalışma prensibi bu şekildedir. Web uygulama duvarları kendisinin koruduğu web sunucusunun güvenli olup olmadığını kontrol eder . Bu kontrolü web’in HTTP/HTTPS istek paketlerine ve web trafiğin modellerine bakarak sağlar.
Application Testing (Uygulama Testi)
Uygulama testi işlemi özellikle uygulama güvenliğinin sağlanmasında başarısız olma durumlarına odaklanmaktadır. Uygulama testi iki yaklaşımla yapılmaktadır.
- Dinamik Uygulama Testi Yaklaşımı
- Statik Uygulama Testi Yaklaşımı
Dinamik uygulama testi yaklaşımında kullanılan araç web uygulaması ile iletişim kurarak web uygulamanın uygulama güvenlik açıklarını tespit ederek yapılır. Bu yaklaşım uygulamanın kaynak kodunun üzerinden hareket ederek işlem gerçekleştirmez.
Statik uygulama testi yaklaşımında ise uygulamanın kaynak kodlarına ulaşarak açıkları tespit eder. Daha sonra tespit edilen açıkları saldırganın kullanabileceği saldırı yaklaşımlarını deneyerek önlem alınır.
Secure Development(Güvenli Geliştirme)
Bir uygulama geliştirilirken güvenlik aşaması önemli bir aşamadır. Bu aşama kişileri ve uygulamaları içererek uygulamanın güvenliği, kullanılabilirliği ve bütünlüğünü sağlar. Geliştirme aşamasında güvenlik sorunları göz önünde bulundurularak güvenlik bilincine sahip bir yazılım geliştirilmektedir. Uygulama geliştiren yazılımcıların bu aşamayı göz ardı etmesi demek büyük verilerin riske girmesi demektir. Güvenli Geliştirmenin aşamasının sağladığı faydaları şu şekildedir:
- Uygulamanın güvenlik açıklarını sürekli kontrol eder dolayısıyla uygulamanın kalitesini arttırmaktadır.
- Uygulama geliştirirken güvenlik açıklarını tespit ederek ona göre önlem almak uygulama geliştirildikten sonra güvenlik açıklarını kontrol etmek için ekstra çabaya gerek kalmaz.
- Uygulamanın güvenlikle ilgili olan yasalarına göre geliştirilmesine teşvik eder.
Güvenli Uygulama Geliştirme sürecinde takip edilmesi gereken aşamalar:
- Konsept ve Planlama Aşaması:
Uygulamanın gereksinimlerini planlama aşamasıdır
- Tasarım Aşaması:
Bu aşamada tespit edilen gereksinimleri karşılamak üzere uygulama tasarlanır ayrıca uygulamanın güvenliği tasarlanır.
- Uygulama Aşaması:
Bu aşamada uygulamanın kodları yazıldığı aşamadır. Ayrıca Güvenli kod yazma, statik tarama ve kodları gözden geçirmek gibi alt aşamalar içerir.
- Test etme ve kod hatalarını tespit etme aşaması:
Bu aşamanın temel amacı uygulamada bulunan önemli hataları tespit etmektir.
- Uygulamayı piyasaya sunmak:
Bu aşamada uygulamanın kullanıcıların tarafından kullanıldığı aşamadır. Geliştiricileri ise uygulamaya sürekli, güncellemeler yaparlar. Süreç içerisinde de uygulamanın çalışma süreci geliştiriciler tarafından takip edilip yeni güvenlik açıkları tespit edilmeye çalışılır.
- Güvenli uygulama geliştirmenin son aşaması:
Bu aşamada ise uygulama artık geliştiricilerin tarafından yönetilmez.
Application security Testing Methodologies (Uygulama güvenliğini test etme metodojileri)
Uygulama geliştirirken kullanıcılara güvenli bir uygulama sunmak için alınması gereken aşamalardan uygulamaya uygulanan test metodijileridir. Aşağıdakiler uygulama güvenliği test etmek için kullanılan metodojilerdir.
- Agile Testing Methodology (Çevik Test metodoloji)
Bu süreç içerisinde uygulamada olması gereken güvenliğin otomatikleştirilmiş hale dönüştürüldüğünü test edilir . Böylece uygulamanın sisteminde yazılımcılar güvenlik testleri gerçekleştirmeden otomatik olarak güvenlik testler oluşturulmaktadır.
2. Threat Modeling Methodology (Tehdit Modelleme Metodoloji)
Tehdit modelleme uygulama geliştiricilerin güvenlik açıklarını belirlemek için kullandıkları bir yöntemdir. Bu yöntemi kullanarak uygulama geliştirirken yapılabilecek saldırıları mümkün olduğu kadar azaltılmaktadır. Güvenlik açıklarını tespit edebilmek için geliştiriciler saldırgan gibi düşünmeleri gerekir ve ona göre güvenlik açıkları tespit ediliyor. Bir uygulama geliştirirken tehdit modelleme yöntemini kullanmak saldırganların giriş yapabilecekleri uygulamanın zayıf alanlarını tespit edip ona göre işlem yapılır. Tehdit modelleme yaparken takip edilmesi gereken sabit aşamalar bulunmamaktadır. Yazılımcılar genel olarak kendi tecrübelerine göre aşamalar uygularlar ama bu aşamalar genel anlamda aşağıdaki kavramlardan oluşmaktadır.
- Uygulamanın diyagramını çizmek
- Olabilecek tehditleri belirlemek
- Önlemleri tanımlamak
- Yapılmış olan modellenmeyi doğrulamak
3. Open Web Application Security Project Methodology (Açık Web Uygulama Güvenliği projesi Metodolojisi)
Son olarak bu yöntem ise özellikle kuruluş ve firmaların güvenli bir web uygulamasını geliştirmek için katkıda bulunur. Bu metodolojin
önemi ise kuruluşların güvenlik konusunda hangi öncelikle hangi risklere odaklanmaları gerektiğini aydınlatır ayrıca güvenlik açıkların tespit etmelerine, anlamalarına ve onları düzeltmelerine yardımcı olmaktadır.
Application Security Assessment (Uygulama Güvenliği değerlendirmesi)
Uygulama güvenlik değerlendirmesi bir uygulamanın tasarım ve yapılandırılmasında iyi güvenlik önlemler alınıp alınmadığını ortaya koyar. Bu değerlendirme uygulamayı geliştiren yazılımcıların kullanım için piyasa sunmadan gerçekleştirilir. Değerlendirme yaparak yazılımcılar kullanıcılara güvenlik hataları olmayan bir uygulama sunmalarına olanak sağlar . Ayrıca bu değerlendirme daha sonra oluşacak güvenlik hatalarla zaman harcamamak için önemlidir.
Sonuç
Günümüzde kullandığımızın uygulamaların çoğu genelde çeşitli ağlar üzerinde kullanılıp ve bulut teknolojisine bağlıdır dolayısıyla güvenlik tehditleri ve verilerin çalınma ihtimali yüksektir. Uygulama güvenliği uygulama geliştirirken saldırganların saldırılarına maruz kalmamak için ve uygulamada mevcut olan önemli verilerin çalınmaması için alınması gereken önlemlerdir. Bu önlemler yazılım, donanım ve uygulamanın açıklarını tamamen kapatmak veya azaltmak için bazı yöntemler içermektedir. Uygulama güvenliği yazılımın geliştirme, test etme ve değerlendirme gibi aşamalarda yapılmaktadır.
KAYNAKÇA
Darren Haye, Francesco Cappa ve Nhien An Le-Khac c (2020, Aralık). An effective approach to mobile device management: Security and privacy issues associated with mobile applications. Pace University, Seidenberg School of CSIS, New York, NY, USA.
Namit Gupta ve Abakash Saikia . Web Application Firewall. Department of Computer Science and Engineering Indian Institute Of Technology, Kanpur.
B.Potter and G.McGraw(2004,Kasim). Software SecurityÖzlem Bakırcı . Erişim adresi: https://ieeexplore.ieee.org/abstract/document/1341418
Samuel Fosso Wamba, Shahriar, Andrew j Edwards , Geoffrey Chopin ve Denis Gnanzou . How ‘big data’ can make big impact: Findings from a systematic review and a longitudinal case study. International Journal of Production Economics.
How to Approach secure Software Development. Erişim adresi: https://www.ptsecurity.com/ww-en/analytics/knowledge-base/how-to-approach-secure-software-development/
Öne Çıkarılan Görsel :www.freepik.com
Bu makale Creative Commons Atıf-AynıLisanslaPaylaş 4.0 Uluslararası Lisansı ile lisanslanmıştır.
Bu makale duplichecker sitesi üzerinden 29.05.2021 tarihinde kontrol edilmiştir.
Makale, benzerlik değeri ile kabul edilmiştir. Results Completed: 100% Plagiarism: %3 Unique: %97
Ben Hussein Mdala 2015 yılında lise eğitimini almak üzere Türkiyeye geldim. Lise eğitimi sürecinde arama kurtarma , bilgisiayar yazılımı, ılk yardım, dil kursu gibi birçok kursa katıldım. Liseyi tamamladıktan sonra 2019 yılında marmara üniversitesinde Böte bölümünü kazanarak üniversite eğitimime devam etmekteyim. Kendi alanımdan hariç dil öğrenmeykle uğraşırım. Türkiyeye geldiğimden beri Swahilice, Arapça ve Türkçe olmak üzere 3 yeni dil öğrendim ek olarak kursa katılarak A1 seviyesinde almanca dili görmüş oldum ve öğrenmeye devam etmekteyim. Yeni dil öğrenmek özellikle bulunduğum uluslararası ortamlarda çeşitli insanlarla bir etkiletişimde olmama yardımcı olmaktadır. Yeni kültür ve insanlarlar tanışmayı sevdiğim için dil öğrenmeyi de severim. Marmara üniversitesinde sivil savunma kulübünde üyeyim.