Полный текст
#кибербезопасностьОфис национального директора по кибербезопасности (ONCD) Белого дома США призвал разработчиков отказаться от использования языков программирования C и C++ в разработке критически важного ПОЭтот совет основывается на опасениях, связанных с безопасностью управления памятью — аспекте, играющем критическую роль в предотвращении уязвимостей, таких как переполнение буфера и висячие указателиНеправильное управление памятью в программном коде может привести к серьёзным уязвимостям, позволяя злоумышленникам осуществлять кибератакиЯзыки программирования, такие как Java, благодаря своим механизмам обнаружения ошибок во время выполнения, считаются безопасными в отношении управления памятьюВ отличие от них, C и C++ позволяют разработчикам выполнять операции с указателями и обращаться непосредственно к адресам в памяти компьютераЭто включает в себя чтение и запись данных в любом месте памяти, к которому они могут получить доступ через указательОднако эти языки не проводят автоматической проверки на то, выходят ли эти операции за пределы выделенного для данных или структур пространства в памятиТакая проверка называется «проверкой границ»Отсутствие такой проверки означает, что программист может случайно или намеренно записать данные за пределы выделенного блока памяти, что может привести к перезаписи других данных, испорченным данным или, в худшем случае, к уязвимостям безопасности, которые злоумышленники могут использовать для выполнения вредоносного кода или получения контроля над системойОтчёт ONCD подчёркивает, что около 70 % всех уязвимостей в системе безопасности, выявленных инженерами Microsoft в 2019 году и Google в 2020 году, были связаны именно с нарушениями безопасности памятиВ отчёте не только указывается на проблемы с C и C++, но и предлагается ряд альтернатив — языков программирования, признанных «безопасными для памяти»Среди рекомендованных Агентством национальной безопасности (NSA) языков находятся: Rust, Go, C#, Java, Swift, JavaScript и Ruby@imaxairu Подписаться