Statik Kod Analizi IDE Entegrasyonları

Uygulama Güvenliği süreçlerinde zafiyetleri erken aşamada tespit etmek ve önlem almak çok önemlidir.  Yazılım Geliştirme Yaşam Döngüsü’nde (SDLC) ve DevSecOps süreçlerinde Shift Left olarak geçen bu kavram, zafiyetlerin erken tespit edilmesi ile proje risk ve maliyetinin düşürülmesini hedefler. Uygulama Güvenliği’nin en önemli süreçlerinden biri olan Statik Kod Analizi (SAST) aşamasında da Shift Left kavramı çok önemlidir ve bu kavramı destekleyecek teknolojik imkanlar bulunmaktadır.

Bu yazıda, SAST süreçlerinde destek verdiğimiz Fortify SCA ürünü ve Visual Studio IDE’si üzerinden örnek bir uygulamadan bahsedecek, Visual Studio Fortify extensionlarını inceleyeceğiz.

Visual Studio için Fortify’ın 3 farklı extensionı bulunmaktadır. Bunlar:

Fortify Security Assistant for Visual Studio: Yazılımcı kod geliştirirken anlık güvenlik bildirileri veren ve açıklıkları gösteren extensiondır.

Fortify Extension for Visual Studio: Kodlama tamamlandıktan sonra Visual Studio üzerinden statik kod analizi taraması tetiklemek, zafiyetleri analiz etmek ve sonuçları Software Security Center’a yüklemek için kullanılan extensiondır.

Fortify on Demand Extension for Visual Studio: Fortify’ın SAST için kullanılan Cloud platformudur. Bu yazıda kapsam dışında bırakılmıştır.

Bu yazıda iletilen bilgiler ve görseller için Visual Studio 2022 Community kullanılmıştır.

Extensionları listelemek için VS 2022’de Extensions –> Manage Extensions tıklanarak Browse alanına Fortify yazılır ve arama yapılır. Yapılan arama neticesinde yukarıda bahsettiğimiz üç extension görülecektir.

Fortify Extensionları

Untitled

Browse ekranında ilk iki extension için install tıklandıktan sonra Visual Studio uygulaması kapatılır ve yükleme gerçekleşir.

Extensionların Yüklenmesi

Untitled

VS tekrar açıldıktan sonra Extensions alanında Fortify ve Fortify Security Assistant görülebilir.

VS Ekranında Fortify Extensionları

Untitled

VS kurulu olan istemciye veya sunucuya SCA uygulaması yüklendikten ve bazı ayarlar (lisans yükleme vb.) yapıldıktan sonra projeler analiz edilebilir.

Security Assistant Bulguları

Untitled

Zafiyet Detayları

Untitled

Security Assistant Ekranı

Untitled

Security Assistant, derleme yapmadan kod üzerinde analiz gerçekleştirdiğinden zafiyetlerin tamamını gösteremez. Yazılımcıların kodlama sırasında görebilecekleri bazı zafiyetler gösterilir ve zafiyetlerin düzeltilmesine yönelik bilgiler içerir.

Fortify Extension ise daha komple bir çözümdür. Proje derlenebilir hale geldikten sonra build alınarak tarama işlemi gerçekleştirilir. Bu yüzden projede bulunan bütün zafiyetlerin tespit edilmesi beklenir.

Fortify Extension Üzerinden SCA ile Analiz

Untitled

Yapılan tarama sonucunda Analysis Results ekranında zafiyetler görüntülenir.

Analiz Ekranı

Untitled

Görüntülenen zafiyetlere ilişkin bütün detaylar (Remediation, Audit, Diagram, History vb.) bu extension vasıtasıyla IDE’de görüntülenebilir.

Analiz Ekranı ve Zafiyetlerin Yorumlanması

Untitled

Örnek Bir Bulguya İlişkin Diyagram Ekranı

Untitled

Recommendations ekranı bulgunun nasıl düzeltileceğine ilişkin detaylı bilgiler içerir.

Remediations Ekranı

Untitled

Tespit edilen zafiyetler, Fortify SAST ürününün merkezi yönetim konsolu olan Software Security Center’a yüklenir. Böylece sonuçlar SSC üzerinden de analiz edilebilir.

Sonuçların SSC Portalına Yüklenmesi

Untitled

Sonuçların SSC Portalına Yüklenmesi

Untitled

SSC’de Projeye İlişkin Zafiyetlerin Görüntülenmesi

Untitled

SSC’de Zafiyetlerin Analiz Edilmesi

Untitled

Analiz Edilen ve Yorumlanan Bulgulara İlişkin History Ekranı

Untitled

Bu yazıda Fortify Extension’ları kullanılarak örnek bir IDE ekranında projelerin taranması ve zafiyetlerin analiz edilmesini incelemiş olduk.

Written by

Oktay Şahin