Güvenli yazılım geliştirme ve kod denetimi

Arenklord

Uzman üye
9 Mar 2023
1,294
3
665
Orta doğu
<>
<>
<>

Merhaba THT ailesi ben Arenklord bu gün sizlere başlıkta da belirtiğim gibi Güvenli yazılım geliştirme ve kod denetimini değerledim umarım bir kişiye dahi olsa faydası olur
iyi okumalar

=======================================================================================================


G%C3%9CVENL%C4%B0-YAZILIM-GEL%C4%B0%C5%9ET%C4%B0RME-1200-x-605.jpg
Değerli THT ailesi teknolojinin gelişmesiyle beraber bilgiye ulaşmamız ve bilgiyi kullanmamız çok daha kolay bir hale gelmiştir. Elbette ki bu durum siber saldırganlar için zamanla avantaj haline gelmiş ve siber saldırılar artarak yeni yöntemler ve teknikler geliştirilmeye başlanmıştır.

Güvenli yazılım nedir?
Bir yazılımın işlevini yerine getirdiği sırada tehdit veya saldırı altındayken başarılı bir şekilde korunmasına ve siber tehditlere karşı önceden önlem alınmasına yazılım güvenliği sağlanması adı verilir. Yazılım güvenliği faaliyetlerinin amacı tüm saldırılara karşı daha dirençli ve korumalı geliştirme yapmaktadır.
Yazılıma karşı yapılan saldırıların, yazılımı tamamen hizmet dışı bırakmak, içine zararlı kod eklenerek yazılımın kodunu değiştirmek yoluyla yazılımı farklı bir amaç doğrultusunda çalıştırmak ve yazılımın zayıf noktalarını tespit ederek üzerinde çalışan sisteme ve sistemdeki diğer yazılımlara sızmak gibi farklı amaçları bulunabilir.

Güvenli Yazılım Geliştirme Modelleri:

Şimdiye kadar ortaya atılan yazılım geliştirme modellerine bakıldığında hepsinin temelinde güvenli yazılım geliştirme yaşam döngüsünün yer aldığı görülmektedir.
Döngünün birinci adımı olan eğitim ve farkındalığın artırılması sürecin temeli olan ve tüm süreç boyunca devam etmesi gereken bir unsurdur. Bu aşamada personellerin tehdit unsurlarına karşı bilinçlendirilmesi, güvenlik testleri konusunda eğitilmesi gerekir. İhtiyaç analizi kısmında yazılımın geliştirilmesi, güvenlik ve test için gerekli ihtiyaçlar belirlenmelidir.

Tasarım ve risk analizinde tehdit modelleme, gizlilik risk analizi gibi yöntemlerden faydalanılarak yazılımın ne tür risk grupları içerisinde olacağı tespit edilir. Geliştirme sırasında yazılım önceki adımlarda belirlenen yöntemlere göre geliştirilmeye başlanır. Bu sırada kaynak kod analizi gibi yöntemlerden faydalanılmalıdır.

Doğrulama aşamasında ortaya çıkan yazılım, güvenliğin temel esasları olan gizlilik, bütünlük, ulaşılabilirlik gibi kriterler ile test edilir ve ortaya çıkacak açıkların giderilmesi sağlanır. Devreye alımda yazılım son halini almıştır ve yayınlanmaya hazırdır. Öncesinde yapılan işlemlerin sonucu, yazılım kullanıcıya sunulması ile birlikte bu aşamada gözlemlenir.

Açıklık yönetimi ve geri bildirimler adımında ise kullanıcıdan alınan geri bildirimler ile yazılımda gözden kaçan veya değiştirilmesi gereken durumlar tespit edilir. Bu durumların tespiti sonucunda personeller eksik veya hatalı yerler için tekrar eğitilir. Bu sebeple de sürecin başına dönülmüş olur.

Yetenek Olgunluk Modeli;

1986 yılında geliştirilen bu modelde ana odak var olan uygulamaların geliştirilmesidir. Ürünün güvenlik standartlarına uygun olarak geliştirilmesinden ziyade belirli bir alandaki zayıflıklarının giderilmesini amaçlar.

Tümleşik Yetenek Olgunluk Modeli;

CMM modelini temel alır ve amacı bir organizasyonun denetlenmesi ve yönetimi ile ilgili çözümler sunmaktır. CMMI modeli, ürünün geliştirilmesi sürdürülebilmesi ve satış yönetiminin iyileştirilmesine yöneliktir. 5 seviyeden oluşmaktadır.

Microsoft Security Development Lifecycle;

Microsoft tarafından karşılaşılan problemleri gidermek amacıyla güvenlik ve gizliliği bütünleştirmek için geliştirilen modeldir. Temel yazılım yaşam döngüsüne dayanan bu modelde süreç tamamen proje yöneticisine bağlıdır.

Yazılım Garanti Olgunluk Süreci;

OWASP tarafından geliştirilen bu model bilgi güvenliği operasyonlarının yazılım geliştirme sürecine dahil edilmesi amacıyla ortaya çıkmıştır. Bu model organizasyonun büyüklüğünden bağımsızdır. Tek bir iş için kullanılabileceği gibi organizasyonun tamamında veya belirli bir bölümünde de kullanılabilir.

Bu modellerin yanı sıra birçok güvenli yazılım geliştirme yaklaşımı ve her birinin diğerlerine göre avantajları ve dezavantajları vardır. Bir model diğer modellerden daha iyidir gibi bir yaklaşım yapmak oldukça zordur. Önemli nokta organizasyonun yapısı, büyüklüğü, yaptığı iş dikkate alınarak ihtiyaçların analiz edilmesi ve uygun modelin seçilmesidir. Yapılan yanlış bir seçimde geliştirici veya test ekiplerine gereğinden fazla iş yükü binebilir ve yapılan iş olduğundan daha karmaşık bir hal alabilir. Diğer taraftan yetersiz bir model seçildiğinde oluşacak zafiyetler sebebiyle kullanıcılar mağdur edilebilir, organizasyon zor durumda kalabilir.

1*pno5meGZVpcayiDzWlBoMA.png

Güvenli Yazılımı Tehdit Eden Unsurlar:

Kod Yerleştirme;

Kod yerleştirme yazılımların veya ağ ortamının güvenlik açıklarını kullanarak bir sistemde bulunan zafiyetten faydalanılmasını sağlayan kod parçalarının hedef sisteme yerleştirilerek çalıştırılmasıdır.
Bu durumun önlenmesi için alınan girdiler filtrelenmeli, yazılım dillerinde bulunan keyword’leri kullanmaktan kaçınılmalı, SQL işlemlerinde store procedure gibi yöntemler kullanılarak tüm girdi/çıktı işlemleri kontrolden geçirilmelidir. Bunlara ek olarak geliştirilen uygulamanın katmanlı bir mimariye sahip olması da tehlikelerin önüne geçilmesinde etkin rol oynamaktadır.

XSS Açıkları;

XSS, OWASP Top 10 listesinde yer alan bir saldırı türüdür. Kullanıcıdan alınan bir girdinin veritabanında html şeklinde tutulması sonucu oluşan bir açıktır. Örneğin kötü niyetli bir kişi bir sitenin yorum kısmına Javascript kodu yazıp gönderirse, xss açığı olduğu taktirde bu yazılan kod çalışarak istenmeyen durumlar gerçekleşebilir. üç çeşit xss açığı vardır.

Reflected XSS;

Kullanıcıdan bir girdi beklendiği sırada Javascript kodu gönderilir. Bu girdi eğer ekranda gösterilmek istenirse yazılan kod çalışır.

Stored/Persistent XSS;

Bu tip xss saldırısında kullanıcıdan alınan girdi doğrudan ekrana yazdırılmak yerine veritabanı gibi herhangi bir yerde saklanır. Daha sonra normal bir şekilde kullanıcılar ilgili sayfayı ziyaret ettiğinde bu kod sanki o sayfaya geliştirici tarafından yazılmış gibi her seferinde çalışır.

DOM XSS;

Bir Dom tabanl xss saldırısında zararlı kod, sunucu tarafına ulaşmadan doğrudan dom nesneleri üzerinde işlem yaparak çalışır. Javascript ile bir kullanıcı listesi oluşturduğumuzu düşünelim. XSS açığı varsa bu liste yazdırılırken dışarıdan müdahale ile süreci manipüle ederek istediğimiz bir işlemi yaptırabiliriz.

SQL Injection;

SQL Injection, meta-karakter denilen derleyiciler için özel anlamlar taşıyan karakterleri kullanarak meydana gelen bir açıktır. Saldırganların, kullanıcıdan alınan kullanıcı adı ve parola gibi bilgilerin girildiği alanlara SQL kodunu manipüle edecek karakterleri yazarak veritabanına ulaşmasıdır. Örneğin bir alana şu şekilde bir yazı yazıldığını düşünelim: 10 or 1=1. Bu girdinin SQL karşılığı şu şekildedir:

SELECT * FROM Users WHERE UserID = 10 or 1=1
Bu sorguda WHERE koşulunda yazılan or 1=1 ifadesi ile her zaman true döndürülmesi sağlanmıştır. Bu sebeple UserID ne olursa olsun kullanıcıların listesini görebiliriz. Bu tabloda kullanıcıların parolaları da tutulursa tüm kullanıcı bilgileri çalınmış olur.

Başka bir durumda ise numerik bir alana veri girilirken veri tipi kontrol edilmesi gerekir.

SELECT * FROM Users WHERE UserID = “”
Örneğin yukarıdaki komutta “1; DROP TABLE ‘Users’;” şeklinde bir parametre girilirse tablo silinecektir.

SHELL Injection;

Komut satırını kullanan her uygulamada bulunabilecek bir açıktır. Alınan verinin komut satırına özel bir kelime olup olmadığı mutlaka kontrol edilmelidir. Aksi takdirde saldırgan komut satırına ulaşabilir, sistemde istenmeyen durumlar meydana gelebilir.

Günümüzde her şeyin internet ortamında olduğunu, yazılımların ve donanımların güvenliği oldukça önemlidir. Gerekli önlemler alınmadığı takdirde oluşacak kayıplar hem kurumun itibarına hem de ekonomisine zarar verecektir. Geliştirilen araçlar ile siber saldırıların yapılması oldukça kolay hale gelmiştir. Bu gelişmeler takip edilmelidir. Ayrıca kurumdaki personeller ilgili konularda eğitilmeli, siber güvenlik alanında eğitimler verilmelidir.

Güvenlik Kodu Nedir ?
0*DW6swNpjXGGn4CWi.png


Güvenlik Kodu yayınlanan verilerin bütünlüğünü (güvenliğini) ve doğruluğunu kontrol etmek için kullanılan ve sistem tarafından üretilen bir algoritmadır. İlgili algoritma yayınlanan sonuçların değerine göre 32 karakterlik bir sonuç üretir. Üretilen bu değere Güvenlik Kodu denir.

Kod Güvenliği Analizi:

Günümüzde siber saldırıların büyük oranda uygulama katmanındaki protokolleri hedef alması nedeniyle kod güvenliği analizleri kurumun güvenlik politikaları arasında yer alması gereken önemli bir bileşen haline gelmiştir. Kod analizi, Arka Kapı(Backdoor) ve zararlı kodları araştırarak saldırganlar tespit edip istismar etmeden önce düzeltilmesini sağlar.




Kod Güvenliği Kontrol Listesi:

- Kullanıcı Girdilerinin Denetimi
bg_large_course_821201515711AM-1024x539.jpg

- Çıktı Kodlama
- Kimlik Doğrulama ve Parola Yönetimi
- Oturum Yönetimi
- Erişim Kontrolü
- Kriptolojik Uygulamalar
- Hata Yakalama ve Loglama
- Veri Koruma
- İletişim Güvenliği
- Sistem Yapılandırması
- Veri Tabanı Güvenliği
- Dosya Yönetimi
- Bellek Yönetimi

Saygılar Arenklord
 

Ertugrul'

Basın&Medya Ekibi Deneyimli
22 Mar 2023
1,210
6
994
Photoshop 🔥
<>
<>
<>

Merhaba THT ailesi ben Arenklord bu gün sizlere başlıkta da belirtiğim gibi Güvenli yazılım geliştirme ve kod denetimini değerledim umarım bir kişiye dahi olsa faydası olur
iyi okumalar

=======================================================================================================


G%C3%9CVENL%C4%B0-YAZILIM-GEL%C4%B0%C5%9ET%C4%B0RME-1200-x-605.jpg
Değerli THT ailesi teknolojinin gelişmesiyle beraber bilgiye ulaşmamız ve bilgiyi kullanmamız çok daha kolay bir hale gelmiştir. Elbette ki bu durum siber saldırganlar için zamanla avantaj haline gelmiş ve siber saldırılar artarak yeni yöntemler ve teknikler geliştirilmeye başlanmıştır.

Güvenli yazılım nedir?
Bir yazılımın işlevini yerine getirdiği sırada tehdit veya saldırı altındayken başarılı bir şekilde korunmasına ve siber tehditlere karşı önceden önlem alınmasına yazılım güvenliği sağlanması adı verilir. Yazılım güvenliği faaliyetlerinin amacı tüm saldırılara karşı daha dirençli ve korumalı geliştirme yapmaktadır.
Yazılıma karşı yapılan saldırıların, yazılımı tamamen hizmet dışı bırakmak, içine zararlı kod eklenerek yazılımın kodunu değiştirmek yoluyla yazılımı farklı bir amaç doğrultusunda çalıştırmak ve yazılımın zayıf noktalarını tespit ederek üzerinde çalışan sisteme ve sistemdeki diğer yazılımlara sızmak gibi farklı amaçları bulunabilir.

Güvenli Yazılım Geliştirme Modelleri:


Döngünün birinci adımı olan eğitim ve farkındalığın artırılması sürecin temeli olan ve tüm süreç boyunca devam etmesi gereken bir unsurdur. Bu aşamada personellerin tehdit unsurlarına karşı bilinçlendirilmesi, güvenlik testleri konusunda eğitilmesi gerekir. İhtiyaç analizi kısmında yazılımın geliştirilmesi, güvenlik ve test için gerekli ihtiyaçlar belirlenmelidir.

Tasarım ve risk analizinde tehdit modelleme, gizlilik risk analizi gibi yöntemlerden faydalanılarak yazılımın ne tür risk grupları içerisinde olacağı tespit edilir. Geliştirme sırasında yazılım önceki adımlarda belirlenen yöntemlere göre geliştirilmeye başlanır. Bu sırada kaynak kod analizi gibi yöntemlerden faydalanılmalıdır.

Doğrulama aşamasında ortaya çıkan yazılım, güvenliğin temel esasları olan gizlilik, bütünlük, ulaşılabilirlik gibi kriterler ile test edilir ve ortaya çıkacak açıkların giderilmesi sağlanır. Devreye alımda yazılım son halini almıştır ve yayınlanmaya hazırdır. Öncesinde yapılan işlemlerin sonucu, yazılım kullanıcıya sunulması ile birlikte bu aşamada gözlemlenir.

Açıklık yönetimi ve geri bildirimler adımında ise kullanıcıdan alınan geri bildirimler ile yazılımda gözden kaçan veya değiştirilmesi gereken durumlar tespit edilir. Bu durumların tespiti sonucunda personeller eksik veya hatalı yerler için tekrar eğitilir. Bu sebeple de sürecin başına dönülmüş olur.

Yetenek Olgunluk Modeli;

1986 yılında geliştirilen bu modelde ana odak var olan uygulamaların geliştirilmesidir. Ürünün güvenlik standartlarına uygun olarak geliştirilmesinden ziyade belirli bir alandaki zayıflıklarının giderilmesini amaçlar.

Tümleşik Yetenek Olgunluk Modeli;

CMM modelini temel alır ve amacı bir organizasyonun denetlenmesi ve yönetimi ile ilgili çözümler sunmaktır. CMMI modeli, ürünün geliştirilmesi sürdürülebilmesi ve satış yönetiminin iyileştirilmesine yöneliktir. 5 seviyeden oluşmaktadır.

Microsoft Security Development Lifecycle;

Microsoft tarafından karşılaşılan problemleri gidermek amacıyla güvenlik ve gizliliği bütünleştirmek için geliştirilen modeldir. Temel yazılım yaşam döngüsüne dayanan bu modelde süreç tamamen proje yöneticisine bağlıdır.

Yazılım Garanti Olgunluk Süreci;

OWASP tarafından geliştirilen bu model bilgi güvenliği operasyonlarının yazılım geliştirme sürecine dahil edilmesi amacıyla ortaya çıkmıştır. Bu model organizasyonun büyüklüğünden bağımsızdır. Tek bir iş için kullanılabileceği gibi organizasyonun tamamında veya belirli bir bölümünde de kullanılabilir.

Bu modellerin yanı sıra birçok güvenli yazılım geliştirme yaklaşımı ve her birinin diğerlerine göre avantajları ve dezavantajları vardır. Bir model diğer modellerden daha iyidir gibi bir yaklaşım yapmak oldukça zordur. Önemli nokta organizasyonun yapısı, büyüklüğü, yaptığı iş dikkate alınarak ihtiyaçların analiz edilmesi ve uygun modelin seçilmesidir. Yapılan yanlış bir seçimde geliştirici veya test ekiplerine gereğinden fazla iş yükü binebilir ve yapılan iş olduğundan daha karmaşık bir hal alabilir. Diğer taraftan yetersiz bir model seçildiğinde oluşacak zafiyetler sebebiyle kullanıcılar mağdur edilebilir, organizasyon zor durumda kalabilir.

1*pno5meGZVpcayiDzWlBoMA.png

Güvenli Yazılımı Tehdit Eden Unsurlar:

Kod Yerleştirme;

Kod yerleştirme yazılımların veya ağ ortamının güvenlik açıklarını kullanarak bir sistemde bulunan zafiyetten faydalanılmasını sağlayan kod parçalarının hedef sisteme yerleştirilerek çalıştırılmasıdır.
Bu durumun önlenmesi için alınan girdiler filtrelenmeli, yazılım dillerinde bulunan keyword’leri kullanmaktan kaçınılmalı, SQL işlemlerinde store procedure gibi yöntemler kullanılarak tüm girdi/çıktı işlemleri kontrolden geçirilmelidir. Bunlara ek olarak geliştirilen uygulamanın katmanlı bir mimariye sahip olması da tehlikelerin önüne geçilmesinde etkin rol oynamaktadır.

XSS Açıkları;

XSS, OWASP Top 10 listesinde yer alan bir saldırı türüdür. Kullanıcıdan alınan bir girdinin veritabanında html şeklinde tutulması sonucu oluşan bir açıktır. Örneğin kötü niyetli bir kişi bir sitenin yorum kısmına Javascript kodu yazıp gönderirse, xss açığı olduğu taktirde bu yazılan kod çalışarak istenmeyen durumlar gerçekleşebilir. üç çeşit xss açığı vardır.

Reflected XSS;

Kullanıcıdan bir girdi beklendiği sırada Javascript kodu gönderilir. Bu girdi eğer ekranda gösterilmek istenirse yazılan kod çalışır.

Stored/Persistent XSS;

Bu tip xss saldırısında kullanıcıdan alınan girdi doğrudan ekrana yazdırılmak yerine veritabanı gibi herhangi bir yerde saklanır. Daha sonra normal bir şekilde kullanıcılar ilgili sayfayı ziyaret ettiğinde bu kod sanki o sayfaya geliştirici tarafından yazılmış gibi her seferinde çalışır.

DOM XSS;

Bir Dom tabanl xss saldırısında zararlı kod, sunucu tarafına ulaşmadan doğrudan dom nesneleri üzerinde işlem yaparak çalışır. Javascript ile bir kullanıcı listesi oluşturduğumuzu düşünelim. XSS açığı varsa bu liste yazdırılırken dışarıdan müdahale ile süreci manipüle ederek istediğimiz bir işlemi yaptırabiliriz.

SQL Injection;

SQL Injection, meta-karakter denilen derleyiciler için özel anlamlar taşıyan karakterleri kullanarak meydana gelen bir açıktır. Saldırganların, kullanıcıdan alınan kullanıcı adı ve parola gibi bilgilerin girildiği alanlara SQL kodunu manipüle edecek karakterleri yazarak veritabanına ulaşmasıdır. Örneğin bir alana şu şekilde bir yazı yazıldığını düşünelim: 10 or 1=1. Bu girdinin SQL karşılığı şu şekildedir:


Bu sorguda WHERE koşulunda yazılan or 1=1 ifadesi ile her zaman true döndürülmesi sağlanmıştır. Bu sebeple UserID ne olursa olsun kullanıcıların listesini görebiliriz. Bu tabloda kullanıcıların parolaları da tutulursa tüm kullanıcı bilgileri çalınmış olur.

Başka bir durumda ise numerik bir alana veri girilirken veri tipi kontrol edilmesi gerekir.


Örneğin yukarıdaki komutta “1; DROP TABLE ‘Users’;” şeklinde bir parametre girilirse tablo silinecektir.

SHELL Injection;

Komut satırını kullanan her uygulamada bulunabilecek bir açıktır. Alınan verinin komut satırına özel bir kelime olup olmadığı mutlaka kontrol edilmelidir. Aksi takdirde saldırgan komut satırına ulaşabilir, sistemde istenmeyen durumlar meydana gelebilir.

Günümüzde her şeyin internet ortamında olduğunu, yazılımların ve donanımların güvenliği oldukça önemlidir. Gerekli önlemler alınmadığı takdirde oluşacak kayıplar hem kurumun itibarına hem de ekonomisine zarar verecektir. Geliştirilen araçlar ile siber saldırıların yapılması oldukça kolay hale gelmiştir. Bu gelişmeler takip edilmelidir. Ayrıca kurumdaki personeller ilgili konularda eğitilmeli, siber güvenlik alanında eğitimler verilmelidir.

Güvenlik Kodu Nedir ?
0*DW6swNpjXGGn4CWi.png


Güvenlik Kodu yayınlanan verilerin bütünlüğünü (güvenliğini) ve doğruluğunu kontrol etmek için kullanılan ve sistem tarafından üretilen bir algoritmadır. İlgili algoritma yayınlanan sonuçların değerine göre 32 karakterlik bir sonuç üretir. Üretilen bu değere Güvenlik Kodu denir.

Kod Güvenliği Analizi:

Günümüzde siber saldırıların büyük oranda uygulama katmanındaki protokolleri hedef alması nedeniyle kod güvenliği analizleri kurumun güvenlik politikaları arasında yer alması gereken önemli bir bileşen haline gelmiştir. Kod analizi, Arka Kapı(Backdoor) ve zararlı kodları araştırarak saldırganlar tespit edip istismar etmeden önce düzeltilmesini sağlar.




Kod Güvenliği Kontrol Listesi:

- Kullanıcı Girdilerinin Denetimi
bg_large_course_821201515711AM-1024x539.jpg

- Çıktı Kodlama
- Kimlik Doğrulama ve Parola Yönetimi
- Oturum Yönetimi
- Erişim Kontrolü
- Kriptolojik Uygulamalar
- Hata Yakalama ve Loglama
- Veri Koruma
- İletişim Güvenliği
- Sistem Yapılandırması
- Veri Tabanı Güvenliği
- Dosya Yönetimi
- Bellek Yönetimi

Saygılar Arenklord
Elinize emeğinize sağlık.
 

gostking

Katılımcı Üye
29 Nis 2020
404
13
715
Vatan
<>
<>
<>

Merhaba THT ailesi ben Arenklord bu gün sizlere başlıkta da belirtiğim gibi Güvenli yazılım geliştirme ve kod denetimini değerledim umarım bir kişiye dahi olsa faydası olur
iyi okumalar

=======================================================================================================


G%C3%9CVENL%C4%B0-YAZILIM-GEL%C4%B0%C5%9ET%C4%B0RME-1200-x-605.jpg
Değerli THT ailesi teknolojinin gelişmesiyle beraber bilgiye ulaşmamız ve bilgiyi kullanmamız çok daha kolay bir hale gelmiştir. Elbette ki bu durum siber saldırganlar için zamanla avantaj haline gelmiş ve siber saldırılar artarak yeni yöntemler ve teknikler geliştirilmeye başlanmıştır.

Güvenli yazılım nedir?
Bir yazılımın işlevini yerine getirdiği sırada tehdit veya saldırı altındayken başarılı bir şekilde korunmasına ve siber tehditlere karşı önceden önlem alınmasına yazılım güvenliği sağlanması adı verilir. Yazılım güvenliği faaliyetlerinin amacı tüm saldırılara karşı daha dirençli ve korumalı geliştirme yapmaktadır.
Yazılıma karşı yapılan saldırıların, yazılımı tamamen hizmet dışı bırakmak, içine zararlı kod eklenerek yazılımın kodunu değiştirmek yoluyla yazılımı farklı bir amaç doğrultusunda çalıştırmak ve yazılımın zayıf noktalarını tespit ederek üzerinde çalışan sisteme ve sistemdeki diğer yazılımlara sızmak gibi farklı amaçları bulunabilir.

Güvenli Yazılım Geliştirme Modelleri:


Döngünün birinci adımı olan eğitim ve farkındalığın artırılması sürecin temeli olan ve tüm süreç boyunca devam etmesi gereken bir unsurdur. Bu aşamada personellerin tehdit unsurlarına karşı bilinçlendirilmesi, güvenlik testleri konusunda eğitilmesi gerekir. İhtiyaç analizi kısmında yazılımın geliştirilmesi, güvenlik ve test için gerekli ihtiyaçlar belirlenmelidir.

Tasarım ve risk analizinde tehdit modelleme, gizlilik risk analizi gibi yöntemlerden faydalanılarak yazılımın ne tür risk grupları içerisinde olacağı tespit edilir. Geliştirme sırasında yazılım önceki adımlarda belirlenen yöntemlere göre geliştirilmeye başlanır. Bu sırada kaynak kod analizi gibi yöntemlerden faydalanılmalıdır.

Doğrulama aşamasında ortaya çıkan yazılım, güvenliğin temel esasları olan gizlilik, bütünlük, ulaşılabilirlik gibi kriterler ile test edilir ve ortaya çıkacak açıkların giderilmesi sağlanır. Devreye alımda yazılım son halini almıştır ve yayınlanmaya hazırdır. Öncesinde yapılan işlemlerin sonucu, yazılım kullanıcıya sunulması ile birlikte bu aşamada gözlemlenir.

Açıklık yönetimi ve geri bildirimler adımında ise kullanıcıdan alınan geri bildirimler ile yazılımda gözden kaçan veya değiştirilmesi gereken durumlar tespit edilir. Bu durumların tespiti sonucunda personeller eksik veya hatalı yerler için tekrar eğitilir. Bu sebeple de sürecin başına dönülmüş olur.

Yetenek Olgunluk Modeli;

1986 yılında geliştirilen bu modelde ana odak var olan uygulamaların geliştirilmesidir. Ürünün güvenlik standartlarına uygun olarak geliştirilmesinden ziyade belirli bir alandaki zayıflıklarının giderilmesini amaçlar.

Tümleşik Yetenek Olgunluk Modeli;

CMM modelini temel alır ve amacı bir organizasyonun denetlenmesi ve yönetimi ile ilgili çözümler sunmaktır. CMMI modeli, ürünün geliştirilmesi sürdürülebilmesi ve satış yönetiminin iyileştirilmesine yöneliktir. 5 seviyeden oluşmaktadır.

Microsoft Security Development Lifecycle;

Microsoft tarafından karşılaşılan problemleri gidermek amacıyla güvenlik ve gizliliği bütünleştirmek için geliştirilen modeldir. Temel yazılım yaşam döngüsüne dayanan bu modelde süreç tamamen proje yöneticisine bağlıdır.

Yazılım Garanti Olgunluk Süreci;

OWASP tarafından geliştirilen bu model bilgi güvenliği operasyonlarının yazılım geliştirme sürecine dahil edilmesi amacıyla ortaya çıkmıştır. Bu model organizasyonun büyüklüğünden bağımsızdır. Tek bir iş için kullanılabileceği gibi organizasyonun tamamında veya belirli bir bölümünde de kullanılabilir.

Bu modellerin yanı sıra birçok güvenli yazılım geliştirme yaklaşımı ve her birinin diğerlerine göre avantajları ve dezavantajları vardır. Bir model diğer modellerden daha iyidir gibi bir yaklaşım yapmak oldukça zordur. Önemli nokta organizasyonun yapısı, büyüklüğü, yaptığı iş dikkate alınarak ihtiyaçların analiz edilmesi ve uygun modelin seçilmesidir. Yapılan yanlış bir seçimde geliştirici veya test ekiplerine gereğinden fazla iş yükü binebilir ve yapılan iş olduğundan daha karmaşık bir hal alabilir. Diğer taraftan yetersiz bir model seçildiğinde oluşacak zafiyetler sebebiyle kullanıcılar mağdur edilebilir, organizasyon zor durumda kalabilir.

1*pno5meGZVpcayiDzWlBoMA.png

Güvenli Yazılımı Tehdit Eden Unsurlar:

Kod Yerleştirme;

Kod yerleştirme yazılımların veya ağ ortamının güvenlik açıklarını kullanarak bir sistemde bulunan zafiyetten faydalanılmasını sağlayan kod parçalarının hedef sisteme yerleştirilerek çalıştırılmasıdır.
Bu durumun önlenmesi için alınan girdiler filtrelenmeli, yazılım dillerinde bulunan keyword’leri kullanmaktan kaçınılmalı, SQL işlemlerinde store procedure gibi yöntemler kullanılarak tüm girdi/çıktı işlemleri kontrolden geçirilmelidir. Bunlara ek olarak geliştirilen uygulamanın katmanlı bir mimariye sahip olması da tehlikelerin önüne geçilmesinde etkin rol oynamaktadır.

XSS Açıkları;

XSS, OWASP Top 10 listesinde yer alan bir saldırı türüdür. Kullanıcıdan alınan bir girdinin veritabanında html şeklinde tutulması sonucu oluşan bir açıktır. Örneğin kötü niyetli bir kişi bir sitenin yorum kısmına Javascript kodu yazıp gönderirse, xss açığı olduğu taktirde bu yazılan kod çalışarak istenmeyen durumlar gerçekleşebilir. üç çeşit xss açığı vardır.

Reflected XSS;

Kullanıcıdan bir girdi beklendiği sırada Javascript kodu gönderilir. Bu girdi eğer ekranda gösterilmek istenirse yazılan kod çalışır.

Stored/Persistent XSS;

Bu tip xss saldırısında kullanıcıdan alınan girdi doğrudan ekrana yazdırılmak yerine veritabanı gibi herhangi bir yerde saklanır. Daha sonra normal bir şekilde kullanıcılar ilgili sayfayı ziyaret ettiğinde bu kod sanki o sayfaya geliştirici tarafından yazılmış gibi her seferinde çalışır.

DOM XSS;

Bir Dom tabanl xss saldırısında zararlı kod, sunucu tarafına ulaşmadan doğrudan dom nesneleri üzerinde işlem yaparak çalışır. Javascript ile bir kullanıcı listesi oluşturduğumuzu düşünelim. XSS açığı varsa bu liste yazdırılırken dışarıdan müdahale ile süreci manipüle ederek istediğimiz bir işlemi yaptırabiliriz.

SQL Injection;

SQL Injection, meta-karakter denilen derleyiciler için özel anlamlar taşıyan karakterleri kullanarak meydana gelen bir açıktır. Saldırganların, kullanıcıdan alınan kullanıcı adı ve parola gibi bilgilerin girildiği alanlara SQL kodunu manipüle edecek karakterleri yazarak veritabanına ulaşmasıdır. Örneğin bir alana şu şekilde bir yazı yazıldığını düşünelim: 10 or 1=1. Bu girdinin SQL karşılığı şu şekildedir:


Bu sorguda WHERE koşulunda yazılan or 1=1 ifadesi ile her zaman true döndürülmesi sağlanmıştır. Bu sebeple UserID ne olursa olsun kullanıcıların listesini görebiliriz. Bu tabloda kullanıcıların parolaları da tutulursa tüm kullanıcı bilgileri çalınmış olur.

Başka bir durumda ise numerik bir alana veri girilirken veri tipi kontrol edilmesi gerekir.


Örneğin yukarıdaki komutta “1; DROP TABLE ‘Users’;” şeklinde bir parametre girilirse tablo silinecektir.

SHELL Injection;

Komut satırını kullanan her uygulamada bulunabilecek bir açıktır. Alınan verinin komut satırına özel bir kelime olup olmadığı mutlaka kontrol edilmelidir. Aksi takdirde saldırgan komut satırına ulaşabilir, sistemde istenmeyen durumlar meydana gelebilir.

Günümüzde her şeyin internet ortamında olduğunu, yazılımların ve donanımların güvenliği oldukça önemlidir. Gerekli önlemler alınmadığı takdirde oluşacak kayıplar hem kurumun itibarına hem de ekonomisine zarar verecektir. Geliştirilen araçlar ile siber saldırıların yapılması oldukça kolay hale gelmiştir. Bu gelişmeler takip edilmelidir. Ayrıca kurumdaki personeller ilgili konularda eğitilmeli, siber güvenlik alanında eğitimler verilmelidir.

Güvenlik Kodu Nedir ?
0*DW6swNpjXGGn4CWi.png


Güvenlik Kodu yayınlanan verilerin bütünlüğünü (güvenliğini) ve doğruluğunu kontrol etmek için kullanılan ve sistem tarafından üretilen bir algoritmadır. İlgili algoritma yayınlanan sonuçların değerine göre 32 karakterlik bir sonuç üretir. Üretilen bu değere Güvenlik Kodu denir.

Kod Güvenliği Analizi:

Günümüzde siber saldırıların büyük oranda uygulama katmanındaki protokolleri hedef alması nedeniyle kod güvenliği analizleri kurumun güvenlik politikaları arasında yer alması gereken önemli bir bileşen haline gelmiştir. Kod analizi, Arka Kapı(Backdoor) ve zararlı kodları araştırarak saldırganlar tespit edip istismar etmeden önce düzeltilmesini sağlar.




Kod Güvenliği Kontrol Listesi:

- Kullanıcı Girdilerinin Denetimi
bg_large_course_821201515711AM-1024x539.jpg

- Çıktı Kodlama
- Kimlik Doğrulama ve Parola Yönetimi
- Oturum Yönetimi
- Erişim Kontrolü
- Kriptolojik Uygulamalar
- Hata Yakalama ve Loglama
- Veri Koruma
- İletişim Güvenliği
- Sistem Yapılandırması
- Veri Tabanı Güvenliği
- Dosya Yönetimi
- Bellek Yönetimi

Saygılar Arenklord
elinize emeğinize sağlık
 

Butcherb3y

Uzman üye
1 Eyl 2022
1,618
7
1,205
Anıtkabir
<>
<>
<>

Merhaba THT ailesi ben Arenklord bu gün sizlere başlıkta da belirtiğim gibi Güvenli yazılım geliştirme ve kod denetimini değerledim umarım bir kişiye dahi olsa faydası olur
iyi okumalar

=======================================================================================================


G%C3%9CVENL%C4%B0-YAZILIM-GEL%C4%B0%C5%9ET%C4%B0RME-1200-x-605.jpg
Değerli THT ailesi teknolojinin gelişmesiyle beraber bilgiye ulaşmamız ve bilgiyi kullanmamız çok daha kolay bir hale gelmiştir. Elbette ki bu durum siber saldırganlar için zamanla avantaj haline gelmiş ve siber saldırılar artarak yeni yöntemler ve teknikler geliştirilmeye başlanmıştır.

Güvenli yazılım nedir?
Bir yazılımın işlevini yerine getirdiği sırada tehdit veya saldırı altındayken başarılı bir şekilde korunmasına ve siber tehditlere karşı önceden önlem alınmasına yazılım güvenliği sağlanması adı verilir. Yazılım güvenliği faaliyetlerinin amacı tüm saldırılara karşı daha dirençli ve korumalı geliştirme yapmaktadır.
Yazılıma karşı yapılan saldırıların, yazılımı tamamen hizmet dışı bırakmak, içine zararlı kod eklenerek yazılımın kodunu değiştirmek yoluyla yazılımı farklı bir amaç doğrultusunda çalıştırmak ve yazılımın zayıf noktalarını tespit ederek üzerinde çalışan sisteme ve sistemdeki diğer yazılımlara sızmak gibi farklı amaçları bulunabilir.

Güvenli Yazılım Geliştirme Modelleri:


Döngünün birinci adımı olan eğitim ve farkındalığın artırılması sürecin temeli olan ve tüm süreç boyunca devam etmesi gereken bir unsurdur. Bu aşamada personellerin tehdit unsurlarına karşı bilinçlendirilmesi, güvenlik testleri konusunda eğitilmesi gerekir. İhtiyaç analizi kısmında yazılımın geliştirilmesi, güvenlik ve test için gerekli ihtiyaçlar belirlenmelidir.

Tasarım ve risk analizinde tehdit modelleme, gizlilik risk analizi gibi yöntemlerden faydalanılarak yazılımın ne tür risk grupları içerisinde olacağı tespit edilir. Geliştirme sırasında yazılım önceki adımlarda belirlenen yöntemlere göre geliştirilmeye başlanır. Bu sırada kaynak kod analizi gibi yöntemlerden faydalanılmalıdır.

Doğrulama aşamasında ortaya çıkan yazılım, güvenliğin temel esasları olan gizlilik, bütünlük, ulaşılabilirlik gibi kriterler ile test edilir ve ortaya çıkacak açıkların giderilmesi sağlanır. Devreye alımda yazılım son halini almıştır ve yayınlanmaya hazırdır. Öncesinde yapılan işlemlerin sonucu, yazılım kullanıcıya sunulması ile birlikte bu aşamada gözlemlenir.

Açıklık yönetimi ve geri bildirimler adımında ise kullanıcıdan alınan geri bildirimler ile yazılımda gözden kaçan veya değiştirilmesi gereken durumlar tespit edilir. Bu durumların tespiti sonucunda personeller eksik veya hatalı yerler için tekrar eğitilir. Bu sebeple de sürecin başına dönülmüş olur.

Yetenek Olgunluk Modeli;

1986 yılında geliştirilen bu modelde ana odak var olan uygulamaların geliştirilmesidir. Ürünün güvenlik standartlarına uygun olarak geliştirilmesinden ziyade belirli bir alandaki zayıflıklarının giderilmesini amaçlar.

Tümleşik Yetenek Olgunluk Modeli;

CMM modelini temel alır ve amacı bir organizasyonun denetlenmesi ve yönetimi ile ilgili çözümler sunmaktır. CMMI modeli, ürünün geliştirilmesi sürdürülebilmesi ve satış yönetiminin iyileştirilmesine yöneliktir. 5 seviyeden oluşmaktadır.

Microsoft Security Development Lifecycle;

Microsoft tarafından karşılaşılan problemleri gidermek amacıyla güvenlik ve gizliliği bütünleştirmek için geliştirilen modeldir. Temel yazılım yaşam döngüsüne dayanan bu modelde süreç tamamen proje yöneticisine bağlıdır.

Yazılım Garanti Olgunluk Süreci;

OWASP tarafından geliştirilen bu model bilgi güvenliği operasyonlarının yazılım geliştirme sürecine dahil edilmesi amacıyla ortaya çıkmıştır. Bu model organizasyonun büyüklüğünden bağımsızdır. Tek bir iş için kullanılabileceği gibi organizasyonun tamamında veya belirli bir bölümünde de kullanılabilir.

Bu modellerin yanı sıra birçok güvenli yazılım geliştirme yaklaşımı ve her birinin diğerlerine göre avantajları ve dezavantajları vardır. Bir model diğer modellerden daha iyidir gibi bir yaklaşım yapmak oldukça zordur. Önemli nokta organizasyonun yapısı, büyüklüğü, yaptığı iş dikkate alınarak ihtiyaçların analiz edilmesi ve uygun modelin seçilmesidir. Yapılan yanlış bir seçimde geliştirici veya test ekiplerine gereğinden fazla iş yükü binebilir ve yapılan iş olduğundan daha karmaşık bir hal alabilir. Diğer taraftan yetersiz bir model seçildiğinde oluşacak zafiyetler sebebiyle kullanıcılar mağdur edilebilir, organizasyon zor durumda kalabilir.

1*pno5meGZVpcayiDzWlBoMA.png

Güvenli Yazılımı Tehdit Eden Unsurlar:

Kod Yerleştirme;

Kod yerleştirme yazılımların veya ağ ortamının güvenlik açıklarını kullanarak bir sistemde bulunan zafiyetten faydalanılmasını sağlayan kod parçalarının hedef sisteme yerleştirilerek çalıştırılmasıdır.
Bu durumun önlenmesi için alınan girdiler filtrelenmeli, yazılım dillerinde bulunan keyword’leri kullanmaktan kaçınılmalı, SQL işlemlerinde store procedure gibi yöntemler kullanılarak tüm girdi/çıktı işlemleri kontrolden geçirilmelidir. Bunlara ek olarak geliştirilen uygulamanın katmanlı bir mimariye sahip olması da tehlikelerin önüne geçilmesinde etkin rol oynamaktadır.

XSS Açıkları;

XSS, OWASP Top 10 listesinde yer alan bir saldırı türüdür. Kullanıcıdan alınan bir girdinin veritabanında html şeklinde tutulması sonucu oluşan bir açıktır. Örneğin kötü niyetli bir kişi bir sitenin yorum kısmına Javascript kodu yazıp gönderirse, xss açığı olduğu taktirde bu yazılan kod çalışarak istenmeyen durumlar gerçekleşebilir. üç çeşit xss açığı vardır.

Reflected XSS;

Kullanıcıdan bir girdi beklendiği sırada Javascript kodu gönderilir. Bu girdi eğer ekranda gösterilmek istenirse yazılan kod çalışır.

Stored/Persistent XSS;

Bu tip xss saldırısında kullanıcıdan alınan girdi doğrudan ekrana yazdırılmak yerine veritabanı gibi herhangi bir yerde saklanır. Daha sonra normal bir şekilde kullanıcılar ilgili sayfayı ziyaret ettiğinde bu kod sanki o sayfaya geliştirici tarafından yazılmış gibi her seferinde çalışır.

DOM XSS;

Bir Dom tabanl xss saldırısında zararlı kod, sunucu tarafına ulaşmadan doğrudan dom nesneleri üzerinde işlem yaparak çalışır. Javascript ile bir kullanıcı listesi oluşturduğumuzu düşünelim. XSS açığı varsa bu liste yazdırılırken dışarıdan müdahale ile süreci manipüle ederek istediğimiz bir işlemi yaptırabiliriz.

SQL Injection;

SQL Injection, meta-karakter denilen derleyiciler için özel anlamlar taşıyan karakterleri kullanarak meydana gelen bir açıktır. Saldırganların, kullanıcıdan alınan kullanıcı adı ve parola gibi bilgilerin girildiği alanlara SQL kodunu manipüle edecek karakterleri yazarak veritabanına ulaşmasıdır. Örneğin bir alana şu şekilde bir yazı yazıldığını düşünelim: 10 or 1=1. Bu girdinin SQL karşılığı şu şekildedir:


Bu sorguda WHERE koşulunda yazılan or 1=1 ifadesi ile her zaman true döndürülmesi sağlanmıştır. Bu sebeple UserID ne olursa olsun kullanıcıların listesini görebiliriz. Bu tabloda kullanıcıların parolaları da tutulursa tüm kullanıcı bilgileri çalınmış olur.

Başka bir durumda ise numerik bir alana veri girilirken veri tipi kontrol edilmesi gerekir.


Örneğin yukarıdaki komutta “1; DROP TABLE ‘Users’;” şeklinde bir parametre girilirse tablo silinecektir.

SHELL Injection;

Komut satırını kullanan her uygulamada bulunabilecek bir açıktır. Alınan verinin komut satırına özel bir kelime olup olmadığı mutlaka kontrol edilmelidir. Aksi takdirde saldırgan komut satırına ulaşabilir, sistemde istenmeyen durumlar meydana gelebilir.

Günümüzde her şeyin internet ortamında olduğunu, yazılımların ve donanımların güvenliği oldukça önemlidir. Gerekli önlemler alınmadığı takdirde oluşacak kayıplar hem kurumun itibarına hem de ekonomisine zarar verecektir. Geliştirilen araçlar ile siber saldırıların yapılması oldukça kolay hale gelmiştir. Bu gelişmeler takip edilmelidir. Ayrıca kurumdaki personeller ilgili konularda eğitilmeli, siber güvenlik alanında eğitimler verilmelidir.

Güvenlik Kodu Nedir ?
0*DW6swNpjXGGn4CWi.png


Güvenlik Kodu yayınlanan verilerin bütünlüğünü (güvenliğini) ve doğruluğunu kontrol etmek için kullanılan ve sistem tarafından üretilen bir algoritmadır. İlgili algoritma yayınlanan sonuçların değerine göre 32 karakterlik bir sonuç üretir. Üretilen bu değere Güvenlik Kodu denir.

Kod Güvenliği Analizi:

Günümüzde siber saldırıların büyük oranda uygulama katmanındaki protokolleri hedef alması nedeniyle kod güvenliği analizleri kurumun güvenlik politikaları arasında yer alması gereken önemli bir bileşen haline gelmiştir. Kod analizi, Arka Kapı(Backdoor) ve zararlı kodları araştırarak saldırganlar tespit edip istismar etmeden önce düzeltilmesini sağlar.




Kod Güvenliği Kontrol Listesi:

- Kullanıcı Girdilerinin Denetimi
bg_large_course_821201515711AM-1024x539.jpg

- Çıktı Kodlama
- Kimlik Doğrulama ve Parola Yönetimi
- Oturum Yönetimi
- Erişim Kontrolü
- Kriptolojik Uygulamalar
- Hata Yakalama ve Loglama
- Veri Koruma
- İletişim Güvenliği
- Sistem Yapılandırması
- Veri Tabanı Güvenliği
- Dosya Yönetimi
- Bellek Yönetimi

Saygılar Arenklord
Elinize sağlık
 

TurkGokay

Uzman üye
4 Ara 2022
1,022
1
544
Kemalizm
<>
<>
<>

Merhaba THT ailesi ben Arenklord bu gün sizlere başlıkta da belirtiğim gibi Güvenli yazılım geliştirme ve kod denetimini değerledim umarım bir kişiye dahi olsa faydası olur
iyi okumalar

=======================================================================================================


G%C3%9CVENL%C4%B0-YAZILIM-GEL%C4%B0%C5%9ET%C4%B0RME-1200-x-605.jpg
Değerli THT ailesi teknolojinin gelişmesiyle beraber bilgiye ulaşmamız ve bilgiyi kullanmamız çok daha kolay bir hale gelmiştir. Elbette ki bu durum siber saldırganlar için zamanla avantaj haline gelmiş ve siber saldırılar artarak yeni yöntemler ve teknikler geliştirilmeye başlanmıştır.

Güvenli yazılım nedir?
Bir yazılımın işlevini yerine getirdiği sırada tehdit veya saldırı altındayken başarılı bir şekilde korunmasına ve siber tehditlere karşı önceden önlem alınmasına yazılım güvenliği sağlanması adı verilir. Yazılım güvenliği faaliyetlerinin amacı tüm saldırılara karşı daha dirençli ve korumalı geliştirme yapmaktadır.
Yazılıma karşı yapılan saldırıların, yazılımı tamamen hizmet dışı bırakmak, içine zararlı kod eklenerek yazılımın kodunu değiştirmek yoluyla yazılımı farklı bir amaç doğrultusunda çalıştırmak ve yazılımın zayıf noktalarını tespit ederek üzerinde çalışan sisteme ve sistemdeki diğer yazılımlara sızmak gibi farklı amaçları bulunabilir.

Güvenli Yazılım Geliştirme Modelleri:


Döngünün birinci adımı olan eğitim ve farkındalığın artırılması sürecin temeli olan ve tüm süreç boyunca devam etmesi gereken bir unsurdur. Bu aşamada personellerin tehdit unsurlarına karşı bilinçlendirilmesi, güvenlik testleri konusunda eğitilmesi gerekir. İhtiyaç analizi kısmında yazılımın geliştirilmesi, güvenlik ve test için gerekli ihtiyaçlar belirlenmelidir.

Tasarım ve risk analizinde tehdit modelleme, gizlilik risk analizi gibi yöntemlerden faydalanılarak yazılımın ne tür risk grupları içerisinde olacağı tespit edilir. Geliştirme sırasında yazılım önceki adımlarda belirlenen yöntemlere göre geliştirilmeye başlanır. Bu sırada kaynak kod analizi gibi yöntemlerden faydalanılmalıdır.

Doğrulama aşamasında ortaya çıkan yazılım, güvenliğin temel esasları olan gizlilik, bütünlük, ulaşılabilirlik gibi kriterler ile test edilir ve ortaya çıkacak açıkların giderilmesi sağlanır. Devreye alımda yazılım son halini almıştır ve yayınlanmaya hazırdır. Öncesinde yapılan işlemlerin sonucu, yazılım kullanıcıya sunulması ile birlikte bu aşamada gözlemlenir.

Açıklık yönetimi ve geri bildirimler adımında ise kullanıcıdan alınan geri bildirimler ile yazılımda gözden kaçan veya değiştirilmesi gereken durumlar tespit edilir. Bu durumların tespiti sonucunda personeller eksik veya hatalı yerler için tekrar eğitilir. Bu sebeple de sürecin başına dönülmüş olur.

Yetenek Olgunluk Modeli;

1986 yılında geliştirilen bu modelde ana odak var olan uygulamaların geliştirilmesidir. Ürünün güvenlik standartlarına uygun olarak geliştirilmesinden ziyade belirli bir alandaki zayıflıklarının giderilmesini amaçlar.

Tümleşik Yetenek Olgunluk Modeli;

CMM modelini temel alır ve amacı bir organizasyonun denetlenmesi ve yönetimi ile ilgili çözümler sunmaktır. CMMI modeli, ürünün geliştirilmesi sürdürülebilmesi ve satış yönetiminin iyileştirilmesine yöneliktir. 5 seviyeden oluşmaktadır.

Microsoft Security Development Lifecycle;

Microsoft tarafından karşılaşılan problemleri gidermek amacıyla güvenlik ve gizliliği bütünleştirmek için geliştirilen modeldir. Temel yazılım yaşam döngüsüne dayanan bu modelde süreç tamamen proje yöneticisine bağlıdır.

Yazılım Garanti Olgunluk Süreci;

OWASP tarafından geliştirilen bu model bilgi güvenliği operasyonlarının yazılım geliştirme sürecine dahil edilmesi amacıyla ortaya çıkmıştır. Bu model organizasyonun büyüklüğünden bağımsızdır. Tek bir iş için kullanılabileceği gibi organizasyonun tamamında veya belirli bir bölümünde de kullanılabilir.

Bu modellerin yanı sıra birçok güvenli yazılım geliştirme yaklaşımı ve her birinin diğerlerine göre avantajları ve dezavantajları vardır. Bir model diğer modellerden daha iyidir gibi bir yaklaşım yapmak oldukça zordur. Önemli nokta organizasyonun yapısı, büyüklüğü, yaptığı iş dikkate alınarak ihtiyaçların analiz edilmesi ve uygun modelin seçilmesidir. Yapılan yanlış bir seçimde geliştirici veya test ekiplerine gereğinden fazla iş yükü binebilir ve yapılan iş olduğundan daha karmaşık bir hal alabilir. Diğer taraftan yetersiz bir model seçildiğinde oluşacak zafiyetler sebebiyle kullanıcılar mağdur edilebilir, organizasyon zor durumda kalabilir.

1*pno5meGZVpcayiDzWlBoMA.png

Güvenli Yazılımı Tehdit Eden Unsurlar:

Kod Yerleştirme;

Kod yerleştirme yazılımların veya ağ ortamının güvenlik açıklarını kullanarak bir sistemde bulunan zafiyetten faydalanılmasını sağlayan kod parçalarının hedef sisteme yerleştirilerek çalıştırılmasıdır.
Bu durumun önlenmesi için alınan girdiler filtrelenmeli, yazılım dillerinde bulunan keyword’leri kullanmaktan kaçınılmalı, SQL işlemlerinde store procedure gibi yöntemler kullanılarak tüm girdi/çıktı işlemleri kontrolden geçirilmelidir. Bunlara ek olarak geliştirilen uygulamanın katmanlı bir mimariye sahip olması da tehlikelerin önüne geçilmesinde etkin rol oynamaktadır.

XSS Açıkları;

XSS, OWASP Top 10 listesinde yer alan bir saldırı türüdür. Kullanıcıdan alınan bir girdinin veritabanında html şeklinde tutulması sonucu oluşan bir açıktır. Örneğin kötü niyetli bir kişi bir sitenin yorum kısmına Javascript kodu yazıp gönderirse, xss açığı olduğu taktirde bu yazılan kod çalışarak istenmeyen durumlar gerçekleşebilir. üç çeşit xss açığı vardır.

Reflected XSS;

Kullanıcıdan bir girdi beklendiği sırada Javascript kodu gönderilir. Bu girdi eğer ekranda gösterilmek istenirse yazılan kod çalışır.

Stored/Persistent XSS;

Bu tip xss saldırısında kullanıcıdan alınan girdi doğrudan ekrana yazdırılmak yerine veritabanı gibi herhangi bir yerde saklanır. Daha sonra normal bir şekilde kullanıcılar ilgili sayfayı ziyaret ettiğinde bu kod sanki o sayfaya geliştirici tarafından yazılmış gibi her seferinde çalışır.

DOM XSS;

Bir Dom tabanl xss saldırısında zararlı kod, sunucu tarafına ulaşmadan doğrudan dom nesneleri üzerinde işlem yaparak çalışır. Javascript ile bir kullanıcı listesi oluşturduğumuzu düşünelim. XSS açığı varsa bu liste yazdırılırken dışarıdan müdahale ile süreci manipüle ederek istediğimiz bir işlemi yaptırabiliriz.

SQL Injection;

SQL Injection, meta-karakter denilen derleyiciler için özel anlamlar taşıyan karakterleri kullanarak meydana gelen bir açıktır. Saldırganların, kullanıcıdan alınan kullanıcı adı ve parola gibi bilgilerin girildiği alanlara SQL kodunu manipüle edecek karakterleri yazarak veritabanına ulaşmasıdır. Örneğin bir alana şu şekilde bir yazı yazıldığını düşünelim: 10 or 1=1. Bu girdinin SQL karşılığı şu şekildedir:


Bu sorguda WHERE koşulunda yazılan or 1=1 ifadesi ile her zaman true döndürülmesi sağlanmıştır. Bu sebeple UserID ne olursa olsun kullanıcıların listesini görebiliriz. Bu tabloda kullanıcıların parolaları da tutulursa tüm kullanıcı bilgileri çalınmış olur.

Başka bir durumda ise numerik bir alana veri girilirken veri tipi kontrol edilmesi gerekir.


Örneğin yukarıdaki komutta “1; DROP TABLE ‘Users’;” şeklinde bir parametre girilirse tablo silinecektir.

SHELL Injection;

Komut satırını kullanan her uygulamada bulunabilecek bir açıktır. Alınan verinin komut satırına özel bir kelime olup olmadığı mutlaka kontrol edilmelidir. Aksi takdirde saldırgan komut satırına ulaşabilir, sistemde istenmeyen durumlar meydana gelebilir.

Günümüzde her şeyin internet ortamında olduğunu, yazılımların ve donanımların güvenliği oldukça önemlidir. Gerekli önlemler alınmadığı takdirde oluşacak kayıplar hem kurumun itibarına hem de ekonomisine zarar verecektir. Geliştirilen araçlar ile siber saldırıların yapılması oldukça kolay hale gelmiştir. Bu gelişmeler takip edilmelidir. Ayrıca kurumdaki personeller ilgili konularda eğitilmeli, siber güvenlik alanında eğitimler verilmelidir.

Güvenlik Kodu Nedir ?
0*DW6swNpjXGGn4CWi.png


Güvenlik Kodu yayınlanan verilerin bütünlüğünü (güvenliğini) ve doğruluğunu kontrol etmek için kullanılan ve sistem tarafından üretilen bir algoritmadır. İlgili algoritma yayınlanan sonuçların değerine göre 32 karakterlik bir sonuç üretir. Üretilen bu değere Güvenlik Kodu denir.

Kod Güvenliği Analizi:

Günümüzde siber saldırıların büyük oranda uygulama katmanındaki protokolleri hedef alması nedeniyle kod güvenliği analizleri kurumun güvenlik politikaları arasında yer alması gereken önemli bir bileşen haline gelmiştir. Kod analizi, Arka Kapı(Backdoor) ve zararlı kodları araştırarak saldırganlar tespit edip istismar etmeden önce düzeltilmesini sağlar.




Kod Güvenliği Kontrol Listesi:

- Kullanıcı Girdilerinin Denetimi
bg_large_course_821201515711AM-1024x539.jpg

- Çıktı Kodlama
- Kimlik Doğrulama ve Parola Yönetimi
- Oturum Yönetimi
- Erişim Kontrolü
- Kriptolojik Uygulamalar
- Hata Yakalama ve Loglama
- Veri Koruma
- İletişim Güvenliği
- Sistem Yapılandırması
- Veri Tabanı Güvenliği
- Dosya Yönetimi
- Bellek Yönetimi

Saygılar Arenklord
Eline sağlık.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.