
- •Томский государственный университет систем управления и радиоэлектроники (тусур)
- •Обзор уязвимостей программной части. Способы их обнаружения и устранения
- •Содержание
- •1 Введение
- •2 Классификация уязвимостей
- •3 Методы обнаружения уязвимостей
- •3.1 Ручной поиск
- •3.2 Поиск по шаблонам
- •3.3 Фазинг
- •4 Способы устранения уязвимостей
- •4.1 Корректировка исходных кодов программ
- •4.2 Использование неисполняемых буферов
- •4.3 Применение проверок выхода за границы
- •4.4 Решение проблемы неинициализированных данных
- •4.5 Защита от sql-инъекций
- •4.6 Защита от xss-инъекций
- •4.7 Шифрование паролей
- •Заключение
- •Список использованных источников
Министерство образования и науки Российской Федерации
Томский государственный университет систем управления и радиоэлектроники (тусур)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
Обзор уязвимостей программной части. Способы их обнаружения и устранения
Реферат
по дисциплине «Методы и средства защиты компьютерной информации»
Выполнил:
студент гр. 429-1
__________ Д. А. Сидоров
"___" __________ 2012 г.
Принял:
преподаватель
__________ И. Г. Ганюшкин
"___" __________ 2012 г.
2012
Содержание
Содержание 2
1 Введение 3
2 Классификация уязвимостей 4
3 Методы обнаружения уязвимостей 6
3.1 Ручной поиск 6
3.2 Поиск по шаблонам 7
3.3 Фазинг 8
4 Способы устранения уязвимостей 10
4.1 Корректировка исходных кодов программ 10
4.2 Использование неисполняемых буферов 11
4.3 Применение проверок выхода за границы 11
4.4 Решение проблемы неинициализированных данных 11
4.5 Защита от SQL-инъекций 12
4.6 Защита от XSS-инъекций 13
4.7 Шифрование паролей 13
Заключение 14
Список использованных источников 15
1 Введение
В современном мире в любых сферах деятельности происходит автоматизация практически всех процессов или услуг. Автоматизация чаще всего проявляется посредством программных средств. Ну а так как большинство программ пишется человеком, то и ошибок или каких-либо недочетов в данных программах не избежать. И именно из-за этого программы и становятся уязвимыми, что представляет собой угрозу информации, хранящейся в данных программах. Поэтому одним из важнейших механизмов защиты является процесс поиска и устранения уязвимостей информационной системы.
Уязвимость - ошибка в системе, используя который, можно нарушить её целостность и вызвать неправильную работу.
В данной работе будут рассмотрены классификация уязвимостей, способы их обнаружения и устранения.
2 Классификация уязвимостей
Можно выделить несколько критериев классификации уязвимостей:
по уровню информационной структуры организации;
по уровню сложности;
по этапам жизненного цикла, на которых они появляются.
К уязвимостям программной части в большей степени можно отнести именно классификацию по этапам жизненного цикла, так как она захватывает все уровни жизни программы:
уязвимости этапа проектирования;
уязвимости этапа реализации;
уязвимости этапа эксплуатации.
Уязвимости первого класса наиболее опасны. Источником возникновения этих уязвимостей является процесс проектирования, их трудно обнаружить и устранить. К ним относится проектирование системы без учета требований безопасности.
Уязвимости второго класса заключается в появлении ошибки на этапе реализации в программном или аппаратном обеспечении корректного с точки зрения безопасности проекта или алгоритма. Выявить такие уязвимости значительно проще, чем проектные. К ним относится переполнение буфера.
Источником возникновения уязвимостей третьего класса являются ошибки конфигурирования аппаратного и программного обеспечения. Такие уязвимости наиболее распространены и легче всего обнаруживаются. К ним относятся: наличие слабых паролей; наличие в ИС неиспользуемых, но потенциально опасных сетевых служб и программных компонентов.
Такая классификация является логически законченной и обоснованной, так как охватывает все этапы жизненного цикла программного продукта, но не описывает взаимосвязь между уязвимостями.
К данной классификации можно отнести много уязвимостей, но отметим основные из них, представляющие наибольшую опасность для программных продуктов:
переполнение буфера;
выход вычислений за пределы определенного диапазона;
отсутствие инициализации данных;
утечка, нехватка, использование освобожденной памяти;
SQL-инъекции;
XSS-запросы;
Хранение открытых паролей.
Данные уязвимости могут быть использованы при проведении атак на отказ в обслуживании или выполнении нелегитимного кода.