Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamen_po_infe_33_33_33_33.docx
Скачиваний:
7
Добавлен:
07.08.2019
Размер:
282.54 Кб
Скачать

15. Уязвимость программных приложений и борьба с ней

термин «эксплойт» синоним «уязвимость» . Само существование эксплойтов является доказательством того, что в компьютерном сообществе ни на теоретическом, ни на практическом уровне пока еще нет понимания того, каким образом следует проектировать, разрабатывать и внедрять безопасный программный код.

все эксплойты являются плодами труда талантливых хакеров, использующих уязвимые места плохо спроектированных и написанных программ. Код плохо написанных программ может содержать множество неявных дефектов, способствующих переполнению стека и разрушению кучи, возникновению ошибок форматной строки и ситуации конкуренции. Уязвимости первых трех типов обычно называют переполнением буфера. Оно может стать следствием такой мелочи, как один ошибочный символ в программе на миллион строк, и возникнуть по причине неправильного управления массивами, состоящими из миллионов символов. Принимая во внимание то, что взломщики всегда ищут наиболее эффективные способы проникновения, с большой долей вероятности можно предположить, что лазейки будут выискиваться в наиболее распространенных пакетах программ. Вот почему наибольшее количество выявленных уязвимостей относится именно к ним. Вполне возможно, что популярные программы содержат наибольшее количество ошибок, но, с другой стороны, понятно, что эти программы находятся под пристальным вниманием «доброжелателей».

Безопасность программного обеспечения:

Разработка программ является чрезвычайно сложным родом деятельности. Работа программного архитектора – он должен детально знать операционные системы, языки программирования, их сильные и слабые стороны применительно к различным платформам. В последнее время в обязанности такого специалиста вошло проектирование гибких приложений, которые в то же время были бы защищенными от происков коварных хакеров. Что и говорить, задача практически неразрешимая.

Уязвимости прикладного уровня, особенно те, что случаются в Web¬приложениях, чрезвычайно сложно распознать. Ведь такие типы атак, как внедрение кода SQL, аутентификация прямым подбором пароля, обход каталогов, модификация файлов маркеров Интернета, межсайтовый скриптинг и использование логических ошибок в программах, довольно сложно отличить от обычных, невредоносных запросов HTTP. По заявлению той же компании, сегодня более 70 % атак на корпоративные сети происходит на прикладном уровне, а не на сетевом или сеансовом.

абсолютная безопасность вряд ли возможна, поэтому стоит использовать поэтапный подход, ориентируясь на реальные цели, достижимые при проектировании, разработке и внедрении программного обеспечения. Не стоит, например, рассчитывать на то, что в окончательной версии продукта будет менее пяти уязвимостей.

Имеется ряд компонентов, избежать уязвимостей в которых нужно стремиться в первую очередь. В частности, это компоненты, отвечающие за:

- использование единого идентификатора ресурса (URI, Uniform Resource Identi¬fier) — еще в первой бета¬версии;

-ввод данных пользователем;

-аутентификацию;

-использование компонентов сторонних производителей (в обязанности програм¬много архитектора входит оценка их небезопасности и планирование мер на тот случай, когда она может проявиться).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]