В Агентстве национальной безопасности США опубликовали свежий отчёт, посвящённый кибербезопасности. В частности, там шла речь о возможных уязвимостях при работе приложений с памятью.
В организации порекомендовали отказаться от использования языков C/C++, вместо них рекомендуется использовать C#, Go, Java, Ruby, Rust и Swift, которые обладают встроенной защитой памяти.
В ведомстве отметили, что около 70% уязвимостей в продуктах Microsoft и Google связаны как раз с небезопасной работой с памятью. К примеру, они могут использовать переполнение буфера или ошибки распределения памяти, что даёт доступ к целевым системам. Полностью отчёт можно прочитать здесь.
Помимо этого, рекомендуется задействовать системы защиты кода на уровне компилятора, чтобы простые ошибки не становились причиной взлома.
Многие разработчики уже начали отказываться от C/C++ ради «безопасности и надёжности». В сентябре это предложил технический директор Microsoft Azure Марк Руссинович (Mark Russinovich). Также ранее Линус Торвальдс (Linus Torvalds) заявил, что хочет добавить поддержку Rust в ядро Linux, ведь для этого есть объективные причины. Одной их них стало желание стимулировать новых разработчиков начать работу над ядром.
При этом C используется уже более полувека. На нём написаны Windows, Linux и другие операционные системы.