60-страничный документ, Межведомственный отчет NIST (NISTIR) 8151: Значительное сокращение уязвимостей программного обеспечения, представляет собой собрание новейших стратегий, собранных из различных отраслевых и других источников для уменьшения количества ошибок в программном обеспечении. Хотя отчет официально является ответом на запрос о методах со стороны Управления науки и технологий Белого дома, ученый-компьютерщик NIST Пол Э. Блэк говорит, что его содержание поможет любой организации, которая стремится создать высококачественный компьютерный код с низким уровнем дефектов. .«Мы хотим, чтобы программисты знали об этом», — сказал Блэк, один из соавторов публикации. «Мы сосредоточились на включении новых идей, о которых они, возможно, еще не слышали».Блэк и его коллеги из NIST собрали эти идеи, работая с экспертами по программному обеспечению из многих частных компаний компьютерной индустрии, а также из нескольких правительственных агентств, которые генерируют большой объем кода, включая Министерство обороны и НАСА.
Итоговый документ отражает их совокупный вклад и опыт.В программном обеспечении часто встречаются уязвимости.
По некоторым оценкам, даже в небольших приложениях есть сотни ошибок. Снижение этих цифр принесет много преимуществ, таких как уменьшение количества сбоев компьютеров и перезагрузок, с которыми приходится иметь дело пользователям, не говоря уже об уменьшении количества обновлений исправлений, которые им необходимо загрузить.По словам Блэка, суть документа — это пять наборов подходов, инструментов и концепций, которые могут помочь, и все они можно найти во втором разделе документа.
Подходы разделены на пять подзаголовков, каждый из которых, несмотря на жаргонизирующие названия, основан на здравом смысле как всеобъемлющем принципе (см. Загружаемую инфографику).Эти подходы включают: использование математических инструментов для проверки правильности работы кода; разбиение компьютерных программ на модульные части, чтобы в случае выхода из строя одной из них не происходило сбоя всей программы; подключение инструментов анализа кода, которые в настоящее время работают изолированно; использование соответствующих языков программирования для задачи, которую пытается выполнить код; и разработка развивающейся и изменяющейся тактики защиты кода, который является целью кибератак.
Помимо самих методов, публикация предлагает рекомендации о том, как сообщество программистов может узнать, где и как их использовать. Это также предполагает, что клиенты должны запрашивать методы, которые будут использоваться при разработке. «Вы, как потребитель, должны иметь возможность записать в контракт, что вы хотите, чтобы поставщик разработал программное обеспечение в соответствии с этими принципами, чтобы оно было максимально безопасным», — сказал Блэк.Безопасность, конечно, является серьезной проблемой почти для всех, кто использует технологии в наши дни, и Блэк сказал, что первоначальный запрос Белого дома на эти подходы был частью его Федерального стратегического плана действий по кибербезопасности 2016 года, который планируется реализовать в течение следующих трех лет. до семи лет.
Но хотя в документе пропитаны идеи безопасности, Блэк сказал, что эти стратегии имеют еще более широкий смысл.«Безопасность имеет тенденцию всплывать на поверхность, потому что у нас есть противники, которые хотят использовать слабые места, — сказал он, — но мы все равно хотели бы избегать ошибок даже без этой угрозы.
Попытка заблокировать их поднимает общие принципы. Вы обратите внимание, в названии нигде нет слова «безопасность». "Найдите отчет в Интернете по адресу: http://nvlpubs.nist.gov/nistpubs/ir/2016/NIST.IR.8151.pdf
