Национальный центр кибербезопасности Великобритании (NCSC) предложил новую методологию оценки уязвимостей , разделяя их на «простительные» и «непростительные». Этот подход направлен на искоренение целых классов уязвимостей и упрощение внедрения ключевых защитных механизмов.
Согласно исследованию, количество уязвимостей в программном обеспечении продолжает расти, и без системных мер тенденция сохранится. Многие ошибки сложно предотвратить, но некоторые из них слишком очевидны и повторяются из года в год. Такие уязвимости, по мнению NCSC, свидетельствуют о грубом нарушении принципов безопасной разработки.
В работе используется концепция «непростительных уязвимостей», предложенная Стивом Кристи в 2007 году в исследовании MITRE. Эксперты NCSC классифицировали типовые ошибки, основываясь на списке 25 наиболее опасных уязвимостей CWE-2023, и определили 11 методов их устранения. Для каждого метода присвоены уровни сложности реализации, учитывающие стоимость, доступность знаний и техническую осуществимость. Если исправление ошибки требует минимальных усилий, она считается «непростительной».
В качестве примера новая оценка была применена к реальной уязвимости в веб-приложении с SQL-инъекцией. Анализ показал, что два из трёх способов её устранения относились к категории средней сложности, а один был «простым». В результате уязвимость признали «непростительной» — она не должна была появляться в программном коде.
Исследователи выделяют три ключевых направления для предотвращения таких ошибок: разработка более безопасных операционных систем, улучшение инструментов разработки и популяризация защищённого программирования среди разработчиков и компаний. В частности, предлагается запретить небезопасные функции на уровне ОС, упростить внедрение важных защитных механизмов через API, а также внедрять безопасные языки программирования с самого начала проекта.
Методология NCSC призвана побудить разработчиков и компании к более серьёзному подходу к вопросам кибербезопасности, чтобы искоренять повторяющиеся ошибки ещё на этапе проектирования программного обеспечения.