Blackhat.az

Loading...

Blackhat.az

Register

Cyber Security - Kiber Təhlükəsizlik uyğunluğu - Uncategorized @az - Web App Security - 15 February 2021

TOP 7 statik kod analiz alətləri

Statik Kod Analizi nədir?

Statik kod analizi (və ya Mənbə kodu analizi), potensial zəiflikləri tapmağa çalışan statik kod analiz vasitələri ilə proqramın ‘statik’ (işləməyən) mənbə kodu üzərində aparılmış bir analiz üsuludur. Statik kod analizatorları mənbə kodunu müəyyən zəifliklərin yanı sıra müxtəlif kodlaşdırma standartlarına uyğunluğu yoxlayır.

Niyə Statik Analizdən istifadə etməliyik?

  • İcra edilməzdən əvvəl kod haqqında məlumat əldə edin
  • Dinamik analizlə müqayisədə sürətlə icra olunur
  • Kod keyfiyyətinin dəyərləndirilməsi avtomatlaşdırıla bilir
  • Xətalı kodların axtarılması növbəti addımlarda avtomatlaşdırıla bilir (hamısı olmasa da)
  • Təhlükəsizlik problemlərinin tapılması ilkin mərhələdə avtomatlaşdırıla bilir
  • Artıq statik analizatorları olan hər hansı bir IDE istifadə edirsinizsə, statik analizatorlardan istifadə edirsiniz (məs. Pycharm özü pep8 istifadə edir).

Artıq statik kod analizindən xəbərdar olduğumuz üçün bazara  da liderlik edən alətləri bilməliyik. Daha çox danışmadan statik kod analizi üçün populyar olan alətlərə nəzər salaq :

 

1. DeepSource

Image result for deep source

DeepSource , kod araşdırmaları zamanı kodunuzdakı problemləri avtomatik olaraq tapmaq və düzəltməyə kömək edir. Bitbucket, GitHub və ya GitLab hesabı ilə inteqrasiya edilə bilər. Bu vasitə anti-patternləri, səhv (bug) risklərini, performans problemlərini axtarır. DeepSource əlavə olaraq asılılıq sayımı, sənədlərin əhatə dairəsi və s. kimi göstəriciləri istehsal edir və izləyir. Analizatorlar fayl səviyyəsində işləyirlər (müəyyən bir yerdə tapılan anti-pattern kimi), daha çox depo səviyyəsində problemlər (görünməyən dörd asılılıq kimi) quraşdırılmışdır). DeepSource Autofix, aşkar edilmiş problemlər üçün düzəlişlər təklif edir və tövsiyə olunan dəyişikliklərlə qurulma/çəkmə (pull) istəyi yaradır.

Çatışmazlıqlar

  • PHP dili üçün dəstək mövcud deyil

Dil dəstəyi

Python, JavaScript, Go, Ruby, Java, Docker, TestIdentify və düzəltmə/çəkmə istəyi əhatə dairəsi, SQL, Terraform, Shell ilə əlaqədar səhv risklərini, anti-patterləri, performans problemləri və təhlükəsizlik qüsurlarını düzəldir.

 

2. SonarQube

Image result for sonarqube png

SonarQube , kod bazalarınızın kod keyfiyyətini və təhlükəsizliyini davamlı yoxlamaq və kod araşdırmaları zamanı inkişaf qruplarına rəhbərlik etmək üçün populyar statik analiz vasitəsidir. SonarQube, CI / CD İnteqrasiya ilə avtomatlaşdırılmış kod təhlili üçün istifadə olunur. Həm də onu aktiv şəkildə düzəltməyinizə kömək edəcək keyfiyyətli idarəetmə vasitələri təqdim edir: IDE inteqrasiyası, məşhur Continuous Integration server, Jenkins üçün inteqrasiya, kod analizi keçirmə vasitələri. Bloqumuzda SonarQube ile bağlı məqalə yazılmışdır.

Əsas Xüsusiyyətlər

  • Çoxdilli
  • Təhlükəsizlik Təhlili
  • Keyfiyyət kodunu buraxın
  • Maintainability
  • Və çətin məsələləri müəyyənləşdirə bilər

Çatışmazlıqlar

  • Çox vaxt IDE SonarQube-u dəstəkləmir
  • Qəsdən edilən məsələləri görməməzlikdən gəlmək üçün seçiminiz yoxdur və ya komanda onları həll etməməyə qərar verir

Dil dəstəyi

Java, C #, JavaScript, TypeScript, C / C ++, COBOL və daha çox daxil olmaqla 25+ proqramlaşdırma dili.

 

 

3. Codacy

Image result for codacy

Codacy , developerlərə texniki tapşırıqları həll etməyə və kod keyfiyyətini yaxşılaşdırmağa imkan verən statik bir analiz vasitəsidir. Codacy, hər dəyişiklikdə və PR-da kod keyfiyyətini izləyir. Kod keyfiyyət standartlarınızı yoxlaya, təhlükəsizlik praktikalarını tətbiq edə və kodu nəzərdən keçirə bilər.

Əsas Xüsusiyyətlər

  • Kod nəzərdən keçirilməsinin avtomatlaşdırılması
  • Kod keyfiyyəti analitikası
  • Təhlükəsizlik kodu təhlili
  • Klaster quraşdırılması / birdən çox nümunə

Çatışmazlıqlar

  • Digər SaaS xidmətlərinin inteqrasiyasından məhrumdur (Sonatype, Blackduck, AWS API Gateways-dən API QOS ölçmələri və ya Saas xidmətlərinin UI / E2E testi)
  • Layihə məlumatlarını şifrələmək və ya istifadəçinin interfeysindəki mənbə koduna girişini məhdudlaşdırmaq mümkünsüzdür
  • Digərlərinə nisbətən daha kiçik işləri yerinə yetirə bilir.

Dil dəstəyi

Elixir, Go, Java, JavaScript, JSON, Kotlin, Python, Ruby, Scala, Swift, TypeScript və daha çox daxil olmaqla 30-dan çox dil.