1 / 30

Kaynak Kod Analiz Süreci

PRISMA CSI • Cyber Security and Intelligence www.prismacsi.com<br><br>Bu doküman, alıntı vererek kullanılabilir ya da paylaşılabilir ancak değiştirilemez ve ticari amaçla kullanılamaz. Detaylı bilgiye https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode.tr bağlantısından erişebilirsiniz.

prismacsi
Télécharger la présentation

Kaynak Kod Analiz Süreci

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 1 Kaynak Kod Analizi Bu doküman, alıntı vererek kullanılabilir ya da paylaşılabilir ancak değiştirilemez ve ticari amaçla kullanılamaz. Detaylı bilgiye https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode.tr bağlantısından erişebilirsiniz. www.prismacsi.com © All Rights Reserved.

  2. 2 Konular Giriş Hazırlık • • Bilgi Edinme Kaynak Kontrol Listesi Analiz Manuel Kod İnceleme Tehtit Modelleme Güvenlik Kontrolleri • • • • • • • www.prismacsi.com © All Rights Reserved.

  3. 3 Konular Otomatize Araç Taramaları Bulguların Karşılaştırılması Raporlama • • • www.prismacsi.com © All Rights Reserved.

  4. 4 Giriș Günümüzde birçok kuruluş geliştirdikleri veya kullandıkları uygulamaların tam anlamıyla güvende olmadığının, her zaman saldırıya açık olabileceğinin farkına varmışlardır. Bu doğrultuda çeşitli test ve analizlerle yazılımların güvenliğini mümkün olan en üst düzeye çıkarmak için çaba göstermektedirler. Bir yazılımın güvenlik analizi dört şekilde yapılabilir: manuel sızma testleri, zafiyet taraması, statik kod analizi ve kod gözden geçirme. Bu belgede uygulamaların çalışma ortamına alınmadan önceki hali olan kaynak kodlarının statik analizi ve gözden geçirilmesi üzerinde durulacaktır. İnceleme süreçleri ve bulgular sonucunda hazırlanacak rapor hakkında detaylı bilgiler verilecektir. www.prismacsi.com © All Rights Reserved.

  5. 5 Hazırlık • Bilgi Edinme Analiz ekibinin en doğru çıktıları üretebilmesi için analize başlamadan önce hedef uygulama hakkında detaylı bilgileri edinmesi gerekmektedir. Bu bilgiler ışığında analiz öncesi hazırlığını tamamlayacak ve en kısa sürede etkili bir analiz ortaya koyacaktır. Gerekli bilgilerin yazılımın dokümantasyonundan elde edilmesi beklenir. Dokümantasyonun olmaması, eski tarihli veya eksik olması durumunda ise proje sorumlusu ile yapılacak toplantılarla bilgi toplama aşaması tamamlanır. Analiz öncesi keşif aşamasının yapılmaması, sonucu doğrudan etkilememekle birlikte işlemlerin daha uzun sürmesine ve analiz ekibinin veriminin daha düşük olmasına sebep olacaktır. www.prismacsi.com © All Rights Reserved.

  6. 6 Hazırlık • Kaynak Kaynak, geliştirilen yazılım sonucu ortaya çıkacak uygulamanın kullandığı, işlediği veya sakladığı verileri ifade eder. Bu verilerin değiştirilmesi veya istenmeyen kişilerce ele geçirilmesi durumunda doğacak zararın boyutu, yapılacak analizin önemini belirlemektedir. www.prismacsi.com © All Rights Reserved.

  7. 7 Hazırlık • Kaynak Analiz ekibi, uygulamadaki iş akışını iyice öğrenemedikçe yazılım üzerindeki potansiyel güvenlik risklerini tespit etmekte zorlanacaktır. Kodun analizine başlanmadan önce aşağıdaki soruların cevabını alınmış olması gerekmektedir: • Uygulama ne kadar gizli/hassas veri saklıyor? • Uygulama kimlere yönelik? Kurum içi kullanım için mi geliştiriliyor, yoksa dışardan bir son kullanıcı erişebilir mi? • Uygulama nerede barındırılacak? www.prismacsi.com © All Rights Reserved.

  8. 8 Hazırlık • Kontrol Listesi Kod analiz edilmeye başlamadan önce aşağıdaki ana başlıklar doğrultusunda uygulamanın altyapısı ve kaynağına göre bir kontrol listesi çıkarılmalıdır. • Veri Doğrulama • Kimlik Doğrulama • Oturum Yönetimi • Yetkilendirme • Şifrelemeler • Hata Yakalama • Loglama • Güvenlik Konfigürasyonu • Üçüncü Parti Uygulama ve Kütüphanelerin Güvenliği www.prismacsi.com © All Rights Reserved.

  9. 9 Analiz Keşif aşamasında elde edilen bilgiler doğrultusunda kaynak kodların analizine başlanır. Analiz, birbiriyle eş zamanlı yapılan iki aşamadan oluşmaktadır: manuel kod gözden geçirme ve otomatize kaynak kod taraması. Bu iki sürecin sonuçları daha sonra birbirleriyle karşılaştırılarak analiz tamamlanır. www.prismacsi.com © All Rights Reserved.

  10. 10 Manuel Kod İnceleme • Tehtit Modelleme Tehdit modelleme yazılımın güvenliğini analiz etmek için izlenen yöntemlerden birisidir. Bu yöntem güvenlik risklerinin tanımlanmasına, ölçeklendirilmesine ve ele alınmasına olanak sağlar. Tehdit modellemenin ilk aşaması uygulamanın alt parçalarına ayrıştırılmasıdır. Uygulamanın nasıl kullanıldığı, olası saldırıların gelebileceği girdi noktalarının neler olduğu ve dışarıya ne gibi bilgiler verdiği bu aşamada belirlenir. İkinci aşama tehditlerin belirlenip sıralanmasıdır. Bu aşamada uygulamanın alabileceği potansiyel tehditler belirlenerek kategorize edilir. www.prismacsi.com © All Rights Reserved.

  11. 11 Manuel Kod İnceleme • Tehtit Modelleme Böylece olası saldırıların her birinde karşılaşılacak tehlikeler belirlenmiş olur. Tehditlerin seviyelerine göre kategorize edilmesinin defansif ve ofansif perspektiften bakıldığında faydaları bulunmaktadır. Hem saldırganın gözünden uygulamaya verilebilecek zararın boyutu ortaya çıkacak, hem de geliştiricinin gözünden uygulamanın zayıf noktaları belirlenmiş olacaktır. Tehdit modellemenin son aşaması ise alınacak önlemlerin ve yapılacak sıkılaştırmaların belirlenmesidir. Bir önceki adımda hem saldırgan hem geliştirici gözüyle ortaya konan zayıf noktalar için en uygun sıkılaştırma yöntemleri daha tehdit modelleme aşamasında belirlenecektir. Böylece doğuracağı zarar, gidermek için gerekli süre gibi çok yönlü bulgularla modellenen tehditlerin risk sıralaması rahatlıkla yapılabilecektir. www.prismacsi.com © All Rights Reserved.

  12. 12 Manuel Kod İnceleme • Güvenlik Kontrolleri Kod incelemenin odak noktası güvenlik denetimleri olacaktır. Güvenlik denetimlerinin var olduğundan, çalışır durumda olduğundan ve gerekli yerlerde doğru şekilde çağrıldıklarından emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  13. 13 Manuel Kod İnceleme • Güvenlik Kontrolleri Aşağıda tüm olası riskleri gözden geçirmeye yarayan bir denetim listesi verilmiştir. • Kimlik Doğrulama • Tüm iç ve dış bağlantıların yeterli bir kimlik doğrulamasından geçtiğinden emin olunmalıdır. • Tüm sayfaların kimlik doğrulamadan geçtiğinden emin olunmalıdır. • Kimlik doğrulaması yapılan sorguların POST isteği ile yapıldığından emin olunmalıdır. • Kimlik doğrulama kapsamının dışında olduğu düşünülen her sayfanın tekrar üstünden geçilmelidir. • Kimlik doğrulama amacıyla yapılan sorguların açık metin olarak iletilmediğinden emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  14. 14 Manuel Kod İnceleme • Güvenlik Kontrolleri • Yetkilendirme • Yetkilendirme mekanizması olduğundan emin olunmalıdır. • Kullanıcı türlerinin ve yetkilerinin açık bir şekilde belirlendiğinden emin olunmalıdır. • Uygulamanın her parçasının minimum yetki prensibi ile çalıştığından emin olunmalıdır. • Yetkilendirme mekanizmasının doğru çalıştığından, hata durumunda minimum risk oluşturacağından ve atlatılamayacağından emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  15. 15 Manuel Kod İnceleme • Güvenlik Kontrolleri • Cookie Yönetimi • Hassas bilgilerin açıkça gösterilmediğinden emin olunmalıdır. • Cookie manipülasyonu ile hassas verilerin ortaya çıkarılamadığından emin olunmalıdır. • Olası kazalara karşı “secure” belirtecinin ayarlanmış olduğundan emin olunmalıdır. • Oturum verilerinin doğrulandığından emin olunmalıdır. • Cookie’lerin minimum gizli bilgi barındırdığından emin olunmalıdır. • Eğer hassas veri tutuyorsa, cookie’nin uygun bir algoritma ile şifrelendiğinden emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  16. 16 Manuel Kod İnceleme • Güvenlik Kontrolleri • Veri ve Girdi Doğrulama • Veri doğrulama mekanizmasının varlığından emin olunmalıdır. • Saldırganlar tarafından manipüle edilebilecek http başlıkları, gizli ve açık tüm form elemanları ve diğer web bileşenlerinin doğrulandığından emin olunmalıdır. • Tüm girdilerde uzunluk kontrolünün yapıldığından emin olunmalıdır. • Veri doğrulama işleminin sunucu taraflı yapıldığından emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  17. 17 Manuel Kod İnceleme • Güvenlik Kontrolleri • Hata Yakalama ve Bilgi Sızıntısı • Dönüş değeri olan tüm metot ve çağrıların hata yakalama mekanizması olduğundan ve dönüş değerlerinin kontrol edildiğinden emin olunmalıdır. • Her çeşit hata ve sıra dışı ihtimalin düzgünce yakalandığından emin olunmalıdır. • Hiçbir sistem hatasının son kullanıcıya gösterilmediğinden emin olunmalıdır. • Uygulamanın hata vermesi durumunun güvenli bir şekilde ele alındığından emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  18. 18 Manuel Kod İnceleme • Güvenlik Kontrolleri • Loglama ve Denetleme • Hata ve bilgi loglarında hassas verilerin bulunmadığından emin olunmalıdır. • Kullanıcı tarafından yapılan manipülasyon işlemlerinin denetlendiğinden emin olunmalıdır. • Tüm başarılı ve başarısız kimlik doğrulama girişimlerinin loglandığından emin olunmalıdır. • Uygulama hatalarının loglandığından emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  19. 19 Manuel Kod İnceleme • Güvenlik Kontrolleri • Şifreleme • Uygulama içinde veya dışında tüm hassas verilerin şifreli bir şekilde iletildiğinden emin olunmalıdır. • Bilinen ve güçlü bir şifreleme algoritması kullanıldığından emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  20. 20 Manuel Kod İnceleme • Güvenlik Kontrolleri • Güvenli Kod Ortamı • Yazılımın dosya yapısında yer alan tüm bileşenlerin kullanıcının doğrudan erişemeyeceği şekilde korunduğundan emin olunmalıdır. • Hafıza yönetiminin doğru bir şekilde yapıldığından, taşmalara izin verilmediğinden emin olunmalıdır. • Dinamik SQL sorgularının güvenliğinden emin olunmalıdır. • Yoruma alınmış kod parçasının bulunmadığından emin olunmalıdır. • Hassas verilerin koda gömülü olmadığından emin olunmalıdır. www.prismacsi.com © All Rights Reserved.

  21. 21 Manuel Kod İnceleme • Güvenlik Kontrolleri • Oturum Yönetimi • Kullanıcı oturumlarının nasıl ve ne zaman oluşturulduğu, hangi kimlik doğrulama yöntemi kullandığı kontrol edilmelidir. • Oturum anahtarının tahmin edilemez derecede karmaşık ve anlaşılabilir olmadığından emin olunmalıdır. • Oturumların nerede tutulduğu kontrol edilmelidir. • Beklenmeyen oturum anahtarı ile sorgu yapıldığında uygulamanın tepkisi belirlenmelidir. www.prismacsi.com © All Rights Reserved.

  22. 22 Manuel Kod İnceleme • Güvenlik Kontrolleri • Oturum Yönetimi • Oturumun geçersiz olma durumları incelenmelidir. • Oturum yönetim mekanizmasının thread-safe olduğundan emin olunmalıdır. • Oturumun geçerli bir zaman aşımına sahip olduğundan emin olunmalıdır. • Oturum sonlandırma işleminin doğru çalıştığından emin olunmalıdır. Bu listede yer alan kontrollerin her biri gerçekleştirildikten sonra sebep olduğu zafiyetlere göre kategorize edilir. www.prismacsi.com © All Rights Reserved.

  23. 23 Otomatize Araç Taramaları Manuel kod incelemesine başlanırken, eş zamanlı olarak otomatize araçlar vasıtasıyla kodun statik analizi de yapılır. Kodun tamamını tarayan araçlar, ürettikleri çıktılarla manuel kod incelemesine katkı sağlamaktadırlar. Kodun otomatize araçlarla taranmasının bazı avantajları ve dezavantajları vardır. www.prismacsi.com © All Rights Reserved.

  24. 24 Otomatize Araç Taramaları • Avantajları • Devasa büyüklükteki projeleri bile tamamını mümkün olan en kısa sürede tarar. Böylece insan gözünden kaçabilecek zafiyetlerin tespitinde faydalı olacaktır. • İnsan gözünün yakalayamayacağı bellek taşması gibi zafiyetlerin keşfi için gereklidir. • Çıktıları analistler için anlaşılabilir ve yorumlanabilirdir. www.prismacsi.com © All Rights Reserved.

  25. 25 Otomatize Araç Taramaları • Dezavantajları • Kimlik doğrulama, erişim kontrolü zayıf şifreleme gibi birçok zafiyetin otomatik araçlarla tespit edilmesi imkansıza yakındır. • Çok fazla doğru gibi görünen hatalı çıktı (false-positive) üretirler. • Konfigürasyon hatalarını bulmakta yetersiz kalırlar. • Tespit ettikleri bulgunun gerçekten bir zafiyete sebep olup olamayacağını kestiremezler. Bu avantajlar ve dezavantajlar göz önünde bulundurulduğunda araçların kaynak kod analizinde kullanılmasının gerekli olduğu fakat yeterli olmadığı görülmektedir. www.prismacsi.com © All Rights Reserved.

  26. 26 Bulguların Karşılaştırılması Manuel inceleme ve araç taraması tamamlandıktan sonra her iki yöntemin çıktıları tekrar incelenir. Bu inceleme ile; • False-positive çıktılar ortadan kaldırılır, • Gözden kaçan kontrolün olmadığından emin olunur, • Tekrarlı bulgular teke indirilir, • Bulgular raporlamaya hazır hale getirilir. www.prismacsi.com © All Rights Reserved.

  27. 27 Raporlama Analiz sürecinin son adımı raporlamadır. Hazırlık ve analiz aşamaları başarıyla sonuçlandıktan sonra elde edilen tüm bulgular net, yalın ve eksiksiz olarak kodun veya uygulamanın sorumlusuna bildirilir. Sonuç raporunun yeterince anlaşılır olmaması veya eksik bilgi içermesi gibi durumlarda proje sorumluları beklenen çıktıyı alamayacak, dolayısıyla tüm sürecin heba olma ihtimali ortaya çıkacaktır. Buradan anlaşılacağı üzere raporlama en az analiz kadar önemli bir aşamadır. www.prismacsi.com © All Rights Reserved.

  28. 28 Raporlama Bulguların en iyi şekilde raporlanabilmesi için aşağıdaki kriterlere dikkat edilir: • Her bir bulgunun ekran görüntüsü alınmış olmalıdır. • Bulguların sebep olduğu zafiyetler açık bir şekilde çıkarılmış olmalıdır. • Bulgular sebep olacakları zafiyetlere, sıkılaştırma yöntemine ve kod üzerindeki konumuna göre doğru bir şekilde sınıflandırılmış ve risk analizi yapılmış olmalıdır. www.prismacsi.com © All Rights Reserved.

  29. 29 Raporlama Bulgular raporlanırken koddan sorumlu tüm teknik personelin anlayacağı bir dil kullanımı önem arz etmektedir. Raporda her bir bulgunun; • Bulunduğu kod parçasının görüntüsü, • Sebep olduğu zafiyet, • Risk seviyesi, • Ortaya çıkardığı tehditler, • Çözüm önerileri yer almaktadır. Böylece geliştirme ve test ekibi zafiyeti iyi anlayabilecek, hızlıca önlem alabilecek ve daha da önemlisi sonrasında benzer zafiyetlerin ortaya çıkma olasılığı en aza inecektir. www.prismacsi.com © All Rights Reserved.

  30. 30 İletişim www.prismacsi.com info@prismacsi.com 0 850 303 85 35 /prismacsi www.prismacsi.com © All Rights Reserved.

More Related