В данной работе рассмотрены вопросы поиска уязвимостей в программах, написанных на С++ путем анализа их текстов при помощи специально разработанных программ - анализаторов. Поскольку уязвимости в ПО вносятся на этапе разработки и многие разработчики ищут только ошибки ПО игнорируя уязвимости. Эти уязвимости могут быть использованны вредоносным ПО, так что для исправления этого целесообразно разработать анализатор уязвимостей, а после сделать анализ уязвимостей одним из этапов разработки. Разработка программ анализаторов и является целью проекта.
Уязвимости ПО - это точки, в которых имеются нарушения защиты или она отсутствует исходно и через которые можно провести атаку на доступность, конфиденциальность или целостность информации. Наличие уязвимости не приводит к получению неправильного ошибочного результата. Нужны дополнительные условия. Однако, иногда ошибка кроме неправильного результата способствует появлению уязвимости ПО. Для реализации информационной атаки злоумышленнику необходимо использовать ту или иную определенную им уязвимость АС. Наличие уязвимостей АС может быть обусловлено рядом факторов:
- ошибками в программном обеспечении,
- наличием ПО без установленных модулей обновлений(для закрытия ранее обнаруженных ошибок и уязвимостей),
- отсутствием средств контроля входных данных,
- ошибками в ЭТД,
- отсутствием средств защиты информации при прерываниях работы ПО,
- ошибочной конфигурацией защиты сетевых служб. Уязвимости могут быть внесены в ПОАС как на технологическом, так и на эксплуатационном этапах жизненного цикла . На технологических этапах жизненного цикла АС уязвимости могут быть внесены: 1.На стадии проектирования АС, в процессе которой могут быть выбраны такие технологии получения, хранения, преобразования и передачи информации, в которых отсутствуют механизмы защиты (не предусмотрены, например, межсетевые экраны). 2. На стадии разработки программно-аппаратного обеспечения АС могут быть допущены и не обнаружены такие ошибки, которые приводят к уязвимости и могут привести к нарушению ИБ. 3.На стадии установки и развертывания АС, в процессе которой выбираются параметры работы АС, уязвимые для потенциальных атак.
Эксплуатационные уязвимости вносятся при неправильной настройке и использовании программно-аппаратного обеспечения АС, например, при неправильной настройки тех же межсетевых экранов. Устранение эксплуатационных уязвимостей требует меньших усилий, так как это связанно с изменениями конфигурации АС, а не переработкой проекта АС. В работе рассматриваются уязвимости, внесенные в ПО на стадии его разработки т.е. уязвимости кода ПО.
Поиск уязвимостей может осуществляться путем анализа текстов ПО без его исполнения, а также при исполнении текста ПО. В работе рассматриваются статические анализаторы текстов ПО, не требующие запуска ПО.