Interesujące wieści płyną do nas Microsoft Security Response Center. Mimo że dział ten kojarzony jest przede wszystkim z łataniem oprogramowania Microsoftu, to okazuje się, że wkrótce może mieć duży wpływ także na proces jego produkcji. W Microsofcie trwają bowiem poszukiwania sposobów na wyeliminowanie podatności związanych z błędami w obsłudze pamięci. Jednym z nich może być zastąpienie C i C++ nowymi językami programowania, na przykład... rozwijanym pod okiem Mozilli Rustem.
W najnowszym wpisie opublikowanym na łamach bloga Microsoft Security Response Center Gavin Thomas, szef działu inżynierii bezpieczeństwa, przypomina statystyki, które ujrzały światło dzienne już w styczniu tego roku. Podatności wynikająće z błędów w obsłudze pamięci stanowią aż 70% wszystkich podatności oprogramowania Microsoftu poważnych na tyle, że otrzymały własną sygnaturę CVE. Wycieki pamięci, przepełnienia bufora, hazard czy błędy w alokacji – oto błędy, które spędzają sen z powiek ludziom odpowiedzialnym za bezpieczeństwo oprogramowania produkowanego przez Microsoft.
Zdecydowana większość błędów, które powodują podatności związane z obsługą pamięci, znajdować ma się w niskopoziomowym kodzie napisanym w C i C++. Pracownicy MSRC doszli zatem do wniosku, że do znacznego zmniejszenia ryzyka nowych podatności w kodzie produkowanym przez Microsoft będzie zastąpienie C/C++ przez nowsze języki programowania. Z jednej strony muszą one sprawdzić się w niskopoziomowym kodzie, a z drugiej oferować funkcje zabezpieczające. Według Gavina Thomasa obiema tymi cechami wykazuje się Rust:
C++ ma swoje zalety, które sprawiają, że jest atrakcyjny, a w niektórych przypadkach niezbędny: jest niezwykle szybki, zużywa niewiele pamięci operacyjnej i masowej, jest dojrzały, jego wykonywanie jest przewidywalne, jego adaptowalność do platformy jest niemal niezrównana i można tego doświadczyć bez konieczności instalowania dodatkowych komponentów. Gdyby tylko programiści mieli możliwość zagwarantowania bezpieczeństwa pamięci, jak w .NET/C# przy jednoczesnym zachowaniu zalet C++. Być może jest to możliwe: jednym z najbardziej obiecujących języków programowania systemów, które spełniają te wymagania, jest język programowania Rust, pierwotnie opracowany przez Mozillę.
Czy taka deklaracja z ust człowieka, który w zakresie bezpieczeństwa produktów i usług Microsoftu ma naprawdę wiele do powiedzenia oznacza, że od jutra Windows zacznie być przepisywany od zera na Rusta? Tego oczywiście nie należy oczekiwać, niemniej wpis Thomasa sygnalizuje nam ważną kwestię: Microsoft „proaktywnie” poszukuje następców C i C++. A to faktycznie może przełożyć się na ograniczenie szkód powodowanych przez błędy pamięci i wzrost poziomu bezpieczeństwa we wszystkich programach rozwijanych przez korporację, na czele rzecz jasna z Windowsem.
Zobacz też: Microsoft potwierdza duże zmiany w Universal Windows Platform i Microsoft Store