Меню

Белый дом призывает разработчиков избегать C и C++, использовать "безопасные для памяти" языки программирования

|

Связано это с грядущим переходом федерального правительства на облачные сервисы.

В новом отчете Управление Национального директора по кибербезопасности (ONCD) Белого дома призвало разработчиков использовать безопасные для памяти языки программирования.

Безопасность памяти относится к защите от ошибок и уязвимостей, связанных с доступом к памяти. 

Java считается безопасным для памяти языком из-за возможности проверок на обнаружение ошибок во время выполнения. 

В то же время C и C++ не проводят автоматической проверки на то, выходят ли операции за пределы выделенного для данных или структур пространства в памяти. Такая проверка называется "проверкой границ". Отсутствие такой проверки означает, что программист может случайно или намеренно записать данные за пределы выделенного блока памяти, что может привести к перезаписи других данных, испорченным данным или, в худшем случае, к уязвимостям безопасности".

В связи с этим National Security Agency выпустило список Memory-Safe Programming Languages:

  • Rust
  • Go
  • C#
  • Java
  • Swift
  • JavaScript
  • Ruby
  • Python
  • Delphi/Object Pascal
  • Ada

Не афишируя явно, в документе обозначены критерии, которым максимально соответствует Rust.

Тут же развернулась бурная дискуссия.

………………………………………

"В качестве альтернативы вы могли бы просто нанять разработчиков, которые всё знают об использовании памяти и учитывают это. Я знаю, что эти навыки стоят дорого и их трудно найти. Но они есть у сотрудников старшего возраста.

Рынок наводнен разработчиками, имеющими ученые степени или сертификаты, изучавшими Java всего один семестр. Как человеку, прошедшему интенсивную техническую программу, где преподавались разработка алгоритмов, время выполнения, оптимизация памяти, упорядочивание, многопоточность и другие важные вещи, мне больно сталкиваться с людьми, которые полагаются исключительно на библиотеки / фреймворки и думают, что компилятор все исправит за них."

……………………………………..

"Не имеет значения, насколько "безопасен для памяти" язык. В наши дни, при невероятно низком стандарте для программистов, все они представляют угрозу. Плюс у всех у них все равно есть встроенные лазейки. Все это знают. … Перестаньте обвинять язык. Проблема в людях."

……………………………………….

"Java или любой другой язык, основанный на виртуальных машинах, не является жизнеспособной заменой большинству проектов на C / C ++. Разработчики обычно используют C / C ++ по двум причинам. Чувствительность к ресурсам (скорость, память и т.д.) и / или межъязыковая совместимость. Java не будет работать ни в одном из этих вариантов использования".

………………………………………………..

"Поощрять написание безопасного кода - хорошая идея, но сколько утечек данных было до сих пор, и в конечном итоге это всегда был человеческий фактор? Даже если была использована уязвимость

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти