В настоящее время как в мировой, так и в отечественной практике осознана необходимость проработки решений по информационной безопасности и анализа уязвимостей на всех уровнях жизненного цикла программного обеспечения и информационных систем. Это обусловлено постоянным развитием информационных технологий, что неизбежно ведет к росту числа уязвимостей программного обеспечения и способов их эксплуатации для реализации компьютерных атак.
Ранее информационная безопасность рассматривалась как отдельный процесс эксплуатации программного обеспечения и информационных систем. Это привело к проблемам интеграции функционала и безопасности, архитектурным просчетам и, как следствие, высоким затратам при перепроектировании ИТ-решений, или что еще хуже – ущербу в результате нарушения безопасности.
В отечественной нормативно-методической базе для государственных информационных систем установлены соответствующие рекомендации и требования по анализу уязвимостей применяемого программного обеспечения. Важным этапом для разработчиков стало появление и развитие в 2016-2020 гг. методологии выявления уязвимостей и недекларированных возможностей.
Так, ГОСТ Р 56939-2016 содержит перечень и рекомендации по организации процессов безопасности в жизненном цикле программного обеспечения. Содержание и детали реализации процессов уточняются методическими документами регуляторов. Данное методическое обеспечение может быть использовано разработчиками любого программного обеспечения, в том числе мобильных и веб-приложений, для повышения безопасности как самих приложений, так и обрабатываемых данных.
Вид работ по выявлению уязвимостей исходного кода путем простого анализа синтаксического дерева и более сложных видов анализа без его реального выполнения.
Анализ безопасности веб-приложений путем автоматизированной отправки специально сгенерированных запросов с целью имитирования реализации угроз информационной безопасности.
Выявление уязвимостей путем автоматизированной подачи на вход программного обеспечения наборов специфических данных с отслеживанием возникновения ошибок и сбоев в работе программы.
Это только некоторые примеры потенциальных уязвимостей программного обеспечения, которые могут стать актуальными и открыть злоумышленникам путь для атаки государственной информационной системы. Важно проводить регулярный и тщательный анализ уязвимостей и принимать соответствующие меры для обеспечения безопасности информационных систем.
Уязвимости данного типа связаны с ошибками, позволяющими нарушителю осуществить несанкционированное внедрение кода в различные элементы, используемые в составе веб-приложений:
Уязвимости данного типа связаны с ошибками механизмов разграничения доступа, а также механизмов защиты данных, позволяющими нарушителю получить несанкционированный доступ к запрашиваемому элементу веб-приложения.
Уязвимости данного типа связаны с ошибками работы с различными структурами данных с учетом параметров, полученных извне. Эксплуатация таких уязвимостей может привести к выполнению произвольного кода, в том числе, с последующим получением полного контроля над узлом, под управлением которого работают веб-приложение, или к аварийному завершению работы программы.
Уязвимости данного типа связаны с недостатками реализации процедур аутентификации. В результате эксплуатации таких уязвимостей нарушитель может получить доступ к веб-приложению от имени пользователей с различными уровнями доступа. В зависимости от полученных прав в системе нарушитель может раскрыть защищаемую информацию, а также нарушить ее целостность или доступность. В отдельных случаях нарушитель может получить полный контроль над узлом, на базе которого функционирует веб-приложение.
Уязвимости данного типа связаны с некорректным управлением ресурсами, доступными веб-приложению. Эксплуатация уязвимостей данного типа приводит, преимущественно, к отказу в обслуживании веб-приложения или узла, под управлением которого оно функционирует.