Zdecydowana większość wszystkich błędów bezpieczeństwa znalezionych w Google Chrome jest związana z zarządzaniem pamięcią, stwierdzili badacze firmy. Po analizie ponad 900 krytycznych/wysokich błędów bezpieczeństwa znalezionych w stabilnym kanale od 2015 roku inżynierowie Google potwierdzili, że około 70% z nich jest związanych z zarządzaniem pamięcią i bezpieczeństwem. Kwestie bezpieczeństwa pamięci to głównie błędy kodowania C i C++, dwóch głównych języków kodowania w bazach kodu Chrome i Microsoft. Ze wspomnianego odsetka 50% to luki w zabezpieczeniach po wydaniu, zakorzenione w źle zarządzanych wskaźnikach pamięci.
Wymagane poprawki
Podstawowym problemem jest to, że C i C++ to starsze języki programowania, które nie uwzględniają możliwości cyberataków. Pozwalają programistom na pełną kontrolę nad zarządzaniem wskaźnikami pamięci i nie ostrzegają ich automatycznie o możliwych błędach zarządzania pamięcią podczas programowania. Tak więc te błędy i wynikające z nich słabości zarządzania pamięcią, takie jak użycie po uruchomieniu, warunki konkurencji, podwójne uruchomienie, przepełnienie bufora itp. Są zintegrowane z aplikacjami Chrome i Microsoft. Luki w zarządzaniu pamięcią są jedną z pierwszych rzeczy, których szukają potencjalni atakujący, ponieważ mogą je wykorzystać do po prostu osadzenia złośliwego kodu w pamięci urządzenia, a następnie czekać, aż ich własne aplikacje go wykonają. ofiara. Błędy zarządzania pamięcią stały się problemem, zmuszając inżynierów Google do przestrzegania „reguły 2” podczas pisania nowego programu Chrome. Zgodnie z tym standardem kod nowej funkcjonalności nie może naruszać więcej niż dwóch z następujących warunków: Ustalenie jest zgodne z oświadczeniem inżyniera firmy Microsoft na konferencji poświęconej bezpieczeństwu w lutym 2019 r., że przez ponad dekadę 70% problemów związanych z bezpieczeństwem są rozwiązywane każdego roku poprzez aktualizację Problemy bezpieczeństwa firmy Microsoft związane z bezpieczeństwem pamięci.- Obsługa niezaufanych danych wejściowych
- Działa bez piaskownicy.
- Jest napisany w wrażliwym języku programowania (C/C++)