Google, Android üçün etibarlı proqramlaşdırma metodlarının (Safe Coding) tətbiqi ilə bağlı təşəbbüsünün yekunlarını açıqlayıb. Bu, təhlükəsiz yaddaş işini təmin edən proqramlaşdırma dillərindən istifadə, statik analizatorların tətbiqi və API-lərin təhlükəsizliyə diqqət yetirərək layihələndirilməsi kimi metodları əhatə edir. Dəyişikliklər 2019-cu ildən 2024-cü ilə qədər Android-də yaddaşla bağlı zəifliklərin faizini 76%-dən 24%-ə endirməyə imkan tanıdı ki, bu da sənaye üzrə orta göstəricidən – 70%-dən xeyli aşağıdır.
Google mühəndisləri həmçinin, təhlükəsizlik problemlərinin əsas mənbəyinin yeni kod olduğunu irəliləyərək, yeni kodun inkişafında metodların modernləşdirilməsinə diqqət yetirməyin vacib olduğunu qeyd ediblər. Təqdim olunan kod zamanla daha etibarlı və təhlükəsiz olur (təhlükəsizliyin zamanla eksponensial asılılığı müşahidə edilir), bu da mövcud kodun yenidən yazılması layihələrinə sərmayə qoymağı daha az cəlbedici edir. Məsələn, 5 illik kodun zəiflik sıxlığı ortalama 3.4 dəfə yeni koddan aşağıdır. Android və Chromium layihələri üçün yaddaşla etibarlı işləmə metodlarının tətbiqi ilə fərq 7.4 dəfədir.

Beləliklə, yeni kodda yaddaşla bağlı səhvlərin yaranmasını önləsək, köhnə kodda belə səhvlər zamanla daha az aşkar olunacaq. Ümumilikdə, Google köhnə kodu yenidən yazmaqdan çox, yaddaşla etibarlı işləyən dillərdə yeni kod yazmağa və yeni ilə köhnə kod arasında daşıma qabiliyyətini təmin etməyə diqqət yetirməyi tövsiyə edir.
Zəifliklərin sayının azaldılması ilə yanaşı, etibarlı proqramlaşdırma metodlarının istifadəsi inkişaf müddətini artırır, daha yüksək kod keyfiyyətini təmin edir və performansa müsbət təsir göstərir. Məsələn, Chromium-da QR kodlarının yaradılması üçün kodun Rust dilində yenidən yazılması 95%-lik performans artımı qazandırıb, bunun səbəbi əlavə sandbox izolyasiyasının tələb etdiyi xərclərin aradan qaldırılmasıdır.
İnkişaf sürəti və keyfiyyəti, test etməni asanlaşdırmaqla və səhvlərin aşkar edilməsini inkişafın erkən mərhələlərinə yönəltməklə artır. Bu mərhələlərdə səhvlər, inkişafçı kodu yoxlamağa başlamazdan əvvəl aşkar olunur. Məsələn, Rust dilində yazılmış kod üçün gözlənilməz səhvlərin aşkar olunması nəticəsində dəyişikliklərin geri qaytarılma sayı C++ dilindəki kod ilə müqayisədə iki dəfə azdır.
Ümumilikdə, etibarlı proqramlaşdırma metodlarının tətbiqi bu günə qədər tətbiq olunan ən effektiv inkişaf paradiqması kimi təqdim edilir, əvvəllər istifadə olunan üç yanaşmanın yerini almışdır:
- Zəifliklərin aşkar edildikdən sonra düzəldilməsi. Bu, bahalıdır, tez-tez yeniləmələrin buraxılmasını və onların istifadəçilərə sürətlə çatdırılmasını tələb edir.
- Proaktiv müdafiə, zəifliklərin istismarını çətinləşdirən texnikaların tətbiqinə yönəlib. Belə bir müdafiənin qiyməti performansın azalması və hücum edənlərlə davamlı bir pişik-yırtıcı oyunu oldu.
- Zəifliklərin erkən aşkarlanması fuzzing testi və AddressSanitizer və MemorySanitizer kimi alətlərdən istifadə etməklə gerçəkləşir. Bu metod yalnız simptomları aradan qaldırır, xəstəliyin səbəbini deyil, və daimi iş tələb edir.


Mənbə: opennet.ru
