Уязвимости понятие уязвимости и дефекта безопасности программ

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

Уязвимости программного обеспечения

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

Кроме того, существует проблема достоверной идентификации преднамеренно сформированных программных закладок, несовершенства нормативно-методической базы и отставание инструментальной базы сертификационных испытаний. То есть, в отличие от методов антивирусного контроля, не существует средств, которые гарантированно способны выявить программные закладки в структурно сложном программном обеспечении.

23. Разбор уязвимостей веб-приложений. Часть 1

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

  1. Преднамеренное внесение уязвимостей программного кода. Это может быть логическая ошибка кодирования или программная закладка.
  2. Степень уязвимостей и функционирования, которая может быть в исходном и выполнимом коде, в среде.
  3. Подсистема безопасности, которая может быть компрометируема уязвимостью, например, парольная, криптографическая и так далее.

Выявление уязвимостей программного обеспечения

Руководящий документ по не декларированным возможностям был сформирован в девяностые годы прошлого века с целью решения задачи контроля над продаваемым в Российскую Федерацию зарубежным программным обеспечением и тогда, естественно, имел очень важное значение. Методики, которые были определены в этом руководящем документе, опирались на теорию надежности функционирования программных продуктов, поэтому проблемы защиты непосредственно программного кода были представлены в документе в недостаточно явной форме. Согласно этому документу главными видами проверок, которые обязаны проводить испытательные лаборатории, считаются структурный статический и динамический анализ исходных текстов (структуры программы, формирования и прохождения всех ее путей).

«Выявление уязвимостей программного обеспечения»
Готовые курсовые работы и рефераты
Решение учебных вопросов в 2 клика
Помощь в написании учебной работы

К числу достоинств документа можно причислить:

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

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

Безопасность и защита сайта от угроз и взлома. Урок 1. Виды уязвимостей: xss, csrf, sql injection

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

Читайте также:
Какие виды поиска существуют в программе в каких различных ситуациях их нужно применять

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

На сегодняшний день используются следующие основные подходы к определению уязвимостей кода:

  1. Подход, который состоит в использовании структурного статического и динамического анализа исходного программного кода и регламентируется руководящим документом.
  2. Подход, который заключается в использовании сигнатурно-эвристического анализа потенциально опасных операций. Он выполняет сканирование программного кода на наличие таких операций, и далее осуществляется ручной или автоматический анализ фрагмента кода для определения реальной угрозы для программного обеспечения.

Можно считать очевидным, что второй подход не имеет недостатков избыточной структуризации всего программного обеспечения и очень большого объема полноформатного тестирования. Так как количество потенциально опасных операций обычно не превышает примерно десяти процентов объема всего программного обеспечения, то примерно в десять (иногда и в двадцать) раз может быть снижено время ручного анализа исходного текста.

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

Замечание 1

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

Источник: spravochnick.ru

Уязвимости программ

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

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

Уязвимости программ

Уязвимости появляются вследствие добавления в состав ПО сторонних компонентов или свободно распространяемого кода (open source). Чужой код часто используется «как есть» без тщательного анализа и тестирования на безопасность.

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

Классификация уязвимостей программ

Уязвимости возникают в результате ошибок, возникших на этапе проектирования или написания программного кода.

В зависимости от стадии появления этот вид угроз делится на уязвимости проектирования, реализации и конфигурации.

  1. Ошибки, допущенные при проектировании, сложнее всего обнаружить и устранить. Это — неточности алгоритмов, закладки, несогласованности в интерфейсе между разными модулями или в протоколах взаимодействия с аппаратной частью, внедрение неоптимальных технологий. Их устранение является весьма трудоемким процессом, в том числе потому, что они могут проявиться в неочевидных случаях — например, при превышении предусмотренного объема трафика или при подключении большого количества дополнительного оборудования, что усложняет обеспечение требуемого уровня безопасности и ведет к возникновению путей обхода межсетевого экрана.
  2. Уязвимости реализации появляются на этапе написания программы или внедрения в нее алгоритмов безопасности. Это — некорректная организация вычислительного процесса, синтаксические и логические дефекты. При этом имеется риск, что изъян приведет к переполнению буфера или появлению неполадок иного рода. Их обнаружение занимает много времени, а ликвидация подразумевает исправление определенных участков машинного кода.
  3. Ошибки конфигурации аппаратной части и ПО встречаются весьма часто. Распространенными их причинами являются недостаточно качественная разработка и отсутствие тестов на корректную работу дополнительных функций. К этой категории также можно относить слишком простые пароли и оставленные без изменений учетные записи по умолчанию.
Читайте также:
Какие программы установить на Айфон 6

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

Риски использования уязвимых программ

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

Поскольку с момента обнаружения уязвимости до публикации исправления (патча) проходит довольно много времени, существует изрядное количество возможностей заразить компьютерные системы через бреши в безопасности программного кода. При этом пользователю достаточно только один раз открыть, например, вредоносный PDF-файл с эксплойтом, после чего злоумышленники получат доступ к данным.

Заражение в последнем случае происходит по следующему алгоритму:

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

Исследования, проводимые различными компаниями («Лаборатория Касперского», Positive Technologies), показывают, что уязвимости есть практически в любом приложении, включая антивирусы. Поэтому вероятность установить программный продукт, содержащий изъяны разной степени критичности, весьма высока.

Чтобы минимизировать количество брешей в ПО, необходимо использовать SDL (Security Development Lifecycle, безопасный жизненный цикл разработки). Технология SDL используется для снижения числа багов в приложениях на всех этапах их создания и поддержки. Так, при проектировании программного обеспечения специалисты по ИБ и программисты моделируют киберугрозы с целью поиска уязвимых мест. В ходе программирования в процесс включаются автоматические средства, сразу же сообщающие о потенциальных изъянах. Разработчики стремятся значительно ограничить функции, доступные непроверенным пользователям, что способствует уменьшению поверхности атаки.

Чтобы минимизировать влияние уязвимостей и ущерб от них, необходимо выполнять некоторые правила:

  • Оперативно устанавливать выпускаемые разработчиками исправления (патчи) для приложений или (предпочтительно) включить автоматический режим обновления.
  • По возможности не устанавливать сомнительные программы, чье качество и техническая поддержка вызывают вопросы.
  • Использовать специальные сканеры уязвимостей или специализированные функции антивирусных продуктов, позволяющие выполнять поиск ошибок безопасности и при необходимости обновлять ПО.
Читайте также:
1 смонтируйте образ диска в программе daemon tools или аналогичной

Источник: www.anti-malware.ru

5. Уязвимость информации в информационных системах.

5.1 Понятие уязвимости информации в информационных системах. Причины возникновения уязвимости информации.

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

В компьютерной безопасности термин «уязвимость» (англ. vulnerability) используется для обозначения недостатка в системе, используя который, можно намеренно нарушить её целостность и вызвать неправильную работу. Уязвимость может быть результатом ошибок программирования, недостатков, допущенных при проектировании системы, ненадежных паролей, вирусов и других вредоносных программ, скриптовых и SQL-инъекций. Некоторые уязвимости известны только теоретически, другие же активно используются и имеют известные эксплойты.

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

5.2 Классификация уязвимостей информации.

из башки:Могут быть организационными, уязвимости СКУД, документы, отсутствие видеонаблюдения, противопожарной охраны, дырявое ПО и тд

  • уязвимости уровня сети — уязвимости сетевых протоколов;
  • уязвимости уровня операционной системы;
  • уязвимости уровня баз данных — уязвимости конкретных СУБД ;
  • уязвимости уровня приложений — относятся уязвимости программного обеспечения.
  • уязвимость со стороны персонала
  1. Недостаточное обучение
  2. неосведомленность персонала
  3. немотивированность персонала
  4. отсутствие мониторинга
  1. небрежное использование механизмов физического контроля доступа
  2. отсутствие дверей/окон и пр.
  3. Подверженность оборудования затоплению/температурам/пыли/перепадам напряжения
  1. Сложный интерфейс, приводящий к ошибкам при использовании
  2. Плохой контроль изменений
  3. Плохое управление сетью
  4. отсутствие резервного копирования
  5. Отсутствие обновлений ПО
  6. Отсутстви разграничение прав/обязанностей
  7. Отсутствие разделения тестового и боевого оборудования
  8. Неконтроллируемое копирование
  1. плохое разделение доступа в сетях
  2. отсутствие меанизмов аутентификации/идентификации
  3. Плохая политики контроля доступа
  4. Отсутствие выхода из системы при уходе от компа
  5. нет или мало тестирования ПО
  6. нет контроля прав доступа
  7. Плохой контроль паролей
  1. Плохие криптоключи
  2. отсутствие контроля входных/выходных данных
  3. отсутствие проверки обрабатываемых данных
  4. нет или мало тестирования ПО
  5. неконтроллируемая загрузка и использование ПО
  6. использование бесплатных ПО

5.3 Понятие «утечка информации». Общая характеристика каналов утечки информации из информационных систем.

  • Кража или утеря носителей информации, исследование не уничтоженного мусора;
  • Дистанционное фотографирование, прослушивание;
  • Перехват электромагнитных излучений.
  • Инсайдеры(человеческий фактор). Утечка информации вследствие несоблюдениякоммерческой тайны;
  • Прямое копирование.
  • акустические— запись звука, подслушивание и прослушивание;
  • акустоэлектрические — получение информации через звуковые волны с дальнейшей передачей ее через сети электропитания;
  • виброакустические — сигналы, возникающие посредством преобразования информативного акустического сигнала при воздействии его на строительные конструкции и инженерно-технические коммуникации защищаемых помещений;
  • оптические— визуальные методы, фотографирование, видео съемка, наблюдение;
  • электромагнитные— копирование полей путем снятия индуктивных наводок;
  • радиоизлучения или электрические сигналыот внедренных в технические средства и защищаемые помещения специальных электронных устройств съема речевой информации “закладных устройств”, модулированные информативным сигналом;
  • материальные— информация на бумаге или других физических носителях информации

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru