Prawie wszystkie błędy bezpieczeństwa Google Chrome dotyczą usterek pamięci

Prawie wszystkie błędy bezpieczeństwa Google Chrome dotyczą usterek pamięci

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. Mozilla przyjęła Rust jako swój język programowania dla Firefoksa. Rust jest uważany za jeden z najbezpieczniejszych języków programowania, idealny do łagodzenia luk w C i C++. Microsoft eksperymentuje również z Rust, a także tworzy zastrzeżony bezpieczny język programowania. Inżynierowie z The Chromium Project stwierdzili, że ich zdaniem piaskownica i izolacja witryn osiągają swoje granice i że najlepszym sposobem na to jest „usuwanie błędów u źródła, zamiast próbowania ich później”. W przyszłości inżynierowie Google planują zbadać rozwiązania, takie jak niestandardowe biblioteki C++, ograniczenia sprzętowe i stosowanie bezpieczniejszych języków tam, gdzie to możliwe. Opcje obejmują Rust, JavaScript, Java i Swift. Deweloperzy przyglądają się także projektowi MiraclePtr, inicjatywie zmienić błędy użyteczności po uruchomieniu z „błędów bezpieczeństwa na błędy niezwiązane z bezpieczeństwem”