Выявление уязвимостей программного обеспечения — это осуществление анализа программного обеспечения с целью выявления уязвимостей информационной безопасности, которые были допущены при его разработке.
Уязвимости программного обеспечения
Сегодняшняя нормативная, методическая и инструментальная база выявления незадекларированных возможностей программ не способна эффективно гарантировать безопасность программных продуктов. Наличие объективных причин возникновения уязвимостей в программном обеспечении объясняется чрезвычайно высокой структурной сложностью программного кода, динамичностью развития версий и легкостью модификации кода.
Кроме того, существует проблема достоверной идентификации преднамеренно сформированных программных закладок, несовершенства нормативно-методической базы и отставание инструментальной базы сертификационных испытаний. То есть, в отличие от методов антивирусного контроля, не существует средств, которые гарантированно способны выявить программные закладки в структурно сложном программном обеспечении.
23. Разбор уязвимостей веб-приложений. Часть 1
Базой теории информационной безопасности считается понятия угрозы, то есть, присутствие уязвимости, и риска, возможности эту угрозу реализовать. Уязвимостью программного обеспечения является его реализационный дефект, который способен потенциально снизить уровень его безопасности. Наиболее важными классификационными признаками уязвимостей программного кода считаются следующие моменты:
- Преднамеренное внесение уязвимостей программного кода. Это может быть логическая ошибка кодирования или программная закладка.
- Степень уязвимостей и функционирования, которая может быть в исходном и выполнимом коде, в среде.
- Подсистема безопасности, которая может быть компрометируема уязвимостью, например, парольная, криптографическая и так далее.
Выявление уязвимостей программного обеспечения
Руководящий документ по не декларированным возможностям был сформирован в девяностые годы прошлого века с целью решения задачи контроля над продаваемым в Российскую Федерацию зарубежным программным обеспечением и тогда, естественно, имел очень важное значение. Методики, которые были определены в этом руководящем документе, опирались на теорию надежности функционирования программных продуктов, поэтому проблемы защиты непосредственно программного кода были представлены в документе в недостаточно явной форме. Согласно этому документу главными видами проверок, которые обязаны проводить испытательные лаборатории, считаются структурный статический и динамический анализ исходных текстов (структуры программы, формирования и прохождения всех ее путей).
«Выявление уязвимостей программного обеспечения»
Готовые курсовые работы и рефераты
Решение учебных вопросов в 2 клика
Помощь в написании учебной работы
К числу достоинств документа можно причислить:
- требование предоставить исходный программный код и документацию;
- требование выполнять контроль избыточности, которое может позволить исключить определенные закладные компоненты;
- требование присутствия определения полномасштабного тестирования.
Последнее требование при наличии необходимого мониторинга и аудита работы способно позволить выявить практически все уязвимости несложных программ, но касательно сложного программного обеспечения это будет весьма проблематичным.
Безопасность и защита сайта от угроз и взлома. Урок 1. Виды уязвимостей: xss, csrf, sql injection
Но имеется также у руководящего документа и отдельные недостатки. Прежде всего это существенная вычислительная сложность статического и динамического анализа. Практически, при возрастании сложности программного обеспечения динамический анализ превращается в неразрешимую задачу, и становится формальной процедурой, отнимающей большое количество времени и ресурсов у специалистов.
Также следует отметить отсутствие или недостаточность проверок, которые напрямую связаны с безопасностью программного продукта. К примеру, не упомянут сигнатурный анализ в требованиях к проверке программ ниже второго уровня контроля, то есть, программ, которые обрабатывают секретные и конфиденциальные информационные данные. Не задействованы требования к содержимому базы потенциально опасных конструкций, что может сделать неэффективными методики сигнатурного анализа.
На сегодняшний день используются следующие основные подходы к определению уязвимостей кода:
- Подход, который состоит в использовании структурного статического и динамического анализа исходного программного кода и регламентируется руководящим документом.
- Подход, который заключается в использовании сигнатурно-эвристического анализа потенциально опасных операций. Он выполняет сканирование программного кода на наличие таких операций, и далее осуществляется ручной или автоматический анализ фрагмента кода для определения реальной угрозы для программного обеспечения.
Можно считать очевидным, что второй подход не имеет недостатков избыточной структуризации всего программного обеспечения и очень большого объема полноформатного тестирования. Так как количество потенциально опасных операций обычно не превышает примерно десяти процентов объема всего программного обеспечения, то примерно в десять (иногда и в двадцать) раз может быть снижено время ручного анализа исходного текста.
Касательно статического и динамического анализа необходимо заметить, что итоговые результаты статического анализа по сложности интерпретации могут быть сопоставимыми с исходными текстами, а динамический анализ может дополнительно потребовать формирования и исполнения соответствующих тестов маршрутов. Это означает, что сигнатурно-эвристический анализ способен сократить затраты времени на поиск не декларированных возможностей в десятки раз. Практика показывает, что практически все выявленные на этапе сертификационных испытаний уязвимости кода, были найдены за счет применения именно второго подхода.
Замечание 1
Следует подчеркнуть, что для выявления уязвимостей программного обеспечения нужно использовать комплексный подход.
Источник: spravochnick.ru
Уязвимости программ
Уязвимости программ — ошибки, допущенные программистами на этапе разработки программного обеспечения. Они позволяют злоумышленникам получить незаконный доступ к функциям программы или хранящимся в ней данным. Изъяны могут появиться на любом этапе жизненного цикла, от проектирования до выпуска готового продукта. В ряде случаев программисты нарочно оставляют лазейки для проведения отладки и настройки, которые также могут рассматриваться в качестве бекдоров или недекларированных возможностей.
В некоторых случаях возникновение уязвимостей обусловлено применением средств разработки различного происхождения, которые увеличивают риск появления в программном коде дефектов диверсионного типа.
Уязвимости появляются вследствие добавления в состав ПО сторонних компонентов или свободно распространяемого кода (open source). Чужой код часто используется «как есть» без тщательного анализа и тестирования на безопасность.
Не стоит исключать и наличие в команде программистов-инсайдеров, которые преднамеренно вносят в создаваемый продукт дополнительные недокументированные функции или элементы.
Классификация уязвимостей программ
Уязвимости возникают в результате ошибок, возникших на этапе проектирования или написания программного кода.
В зависимости от стадии появления этот вид угроз делится на уязвимости проектирования, реализации и конфигурации.
- Ошибки, допущенные при проектировании, сложнее всего обнаружить и устранить. Это — неточности алгоритмов, закладки, несогласованности в интерфейсе между разными модулями или в протоколах взаимодействия с аппаратной частью, внедрение неоптимальных технологий. Их устранение является весьма трудоемким процессом, в том числе потому, что они могут проявиться в неочевидных случаях — например, при превышении предусмотренного объема трафика или при подключении большого количества дополнительного оборудования, что усложняет обеспечение требуемого уровня безопасности и ведет к возникновению путей обхода межсетевого экрана.
- Уязвимости реализации появляются на этапе написания программы или внедрения в нее алгоритмов безопасности. Это — некорректная организация вычислительного процесса, синтаксические и логические дефекты. При этом имеется риск, что изъян приведет к переполнению буфера или появлению неполадок иного рода. Их обнаружение занимает много времени, а ликвидация подразумевает исправление определенных участков машинного кода.
- Ошибки конфигурации аппаратной части и ПО встречаются весьма часто. Распространенными их причинами являются недостаточно качественная разработка и отсутствие тестов на корректную работу дополнительных функций. К этой категории также можно относить слишком простые пароли и оставленные без изменений учетные записи по умолчанию.
Согласно статистике, особенно часто уязвимости обнаруживают в популярных и распространенных продуктах — настольных и мобильных операционных системах, браузерах.
Риски использования уязвимых программ
Программы, в которых находят наибольшее число уязвимостей, установлены практически на всех компьютерах. Со стороны киберпреступников имеется прямая заинтересованность в поиске подобных изъянов и написании эксплойтов для них.
Поскольку с момента обнаружения уязвимости до публикации исправления (патча) проходит довольно много времени, существует изрядное количество возможностей заразить компьютерные системы через бреши в безопасности программного кода. При этом пользователю достаточно только один раз открыть, например, вредоносный PDF-файл с эксплойтом, после чего злоумышленники получат доступ к данным.
Заражение в последнем случае происходит по следующему алгоритму:
- Пользователь получает по электронной почте фишинговое письмо от внушающего доверие отправителя.
- В письмо вложен файл c эксплойтом.
- Если пользователь предпринимает попытку открытия файла, то происходит заражение компьютера вирусом, трояном (шифровальщиком) или другой вредоносной программой.
- Киберпреступники получают несанкционированный доступ к системе.
- Происходит кража ценных данных.
Исследования, проводимые различными компаниями («Лаборатория Касперского», Positive Technologies), показывают, что уязвимости есть практически в любом приложении, включая антивирусы. Поэтому вероятность установить программный продукт, содержащий изъяны разной степени критичности, весьма высока.
Чтобы минимизировать количество брешей в ПО, необходимо использовать SDL (Security Development Lifecycle, безопасный жизненный цикл разработки). Технология SDL используется для снижения числа багов в приложениях на всех этапах их создания и поддержки. Так, при проектировании программного обеспечения специалисты по ИБ и программисты моделируют киберугрозы с целью поиска уязвимых мест. В ходе программирования в процесс включаются автоматические средства, сразу же сообщающие о потенциальных изъянах. Разработчики стремятся значительно ограничить функции, доступные непроверенным пользователям, что способствует уменьшению поверхности атаки.
Чтобы минимизировать влияние уязвимостей и ущерб от них, необходимо выполнять некоторые правила:
- Оперативно устанавливать выпускаемые разработчиками исправления (патчи) для приложений или (предпочтительно) включить автоматический режим обновления.
- По возможности не устанавливать сомнительные программы, чье качество и техническая поддержка вызывают вопросы.
- Использовать специальные сканеры уязвимостей или специализированные функции антивирусных продуктов, позволяющие выполнять поиск ошибок безопасности и при необходимости обновлять ПО.
Источник: www.anti-malware.ru
5. Уязвимость информации в информационных системах.
5.1 Понятие уязвимости информации в информационных системах. Причины возникновения уязвимости информации.
Уязвимость — это любая характеристика информационной системы, использование которой нарушителем может привести к реализации угрозы.
В компьютерной безопасности термин «уязвимость» (англ. vulnerability) используется для обозначения недостатка в системе, используя который, можно намеренно нарушить её целостность и вызвать неправильную работу. Уязвимость может быть результатом ошибок программирования, недостатков, допущенных при проектировании системы, ненадежных паролей, вирусов и других вредоносных программ, скриптовых и SQL-инъекций. Некоторые уязвимости известны только теоретически, другие же активно используются и имеют известные эксплойты.
короч уязвимости могут быть допущены случайно и заложены специально, но как правило уязвимость является результатом человеческой халатности иили невнимательности.
5.2 Классификация уязвимостей информации.
из башки:Могут быть организационными, уязвимости СКУД, документы, отсутствие видеонаблюдения, противопожарной охраны, дырявое ПО и тд
- уязвимости уровня сети — уязвимости сетевых протоколов;
- уязвимости уровня операционной системы;
- уязвимости уровня баз данных — уязвимости конкретных СУБД ;
- уязвимости уровня приложений — относятся уязвимости программного обеспечения.
- уязвимость со стороны персонала
- Недостаточное обучение
- неосведомленность персонала
- немотивированность персонала
- отсутствие мониторинга
- небрежное использование механизмов физического контроля доступа
- отсутствие дверей/окон и пр.
- Подверженность оборудования затоплению/температурам/пыли/перепадам напряжения
- Сложный интерфейс, приводящий к ошибкам при использовании
- Плохой контроль изменений
- Плохое управление сетью
- отсутствие резервного копирования
- Отсутствие обновлений ПО
- Отсутстви разграничение прав/обязанностей
- Отсутствие разделения тестового и боевого оборудования
- Неконтроллируемое копирование
- плохое разделение доступа в сетях
- отсутствие меанизмов аутентификации/идентификации
- Плохая политики контроля доступа
- Отсутствие выхода из системы при уходе от компа
- нет или мало тестирования ПО
- нет контроля прав доступа
- Плохой контроль паролей
- Плохие криптоключи
- отсутствие контроля входных/выходных данных
- отсутствие проверки обрабатываемых данных
- нет или мало тестирования ПО
- неконтроллируемая загрузка и использование ПО
- использование бесплатных ПО
5.3 Понятие «утечка информации». Общая характеристика каналов утечки информации из информационных систем.
- Кража или утеря носителей информации, исследование не уничтоженного мусора;
- Дистанционное фотографирование, прослушивание;
- Перехват электромагнитных излучений.
- Инсайдеры(человеческий фактор). Утечка информации вследствие несоблюдениякоммерческой тайны;
- Прямое копирование.
- акустические— запись звука, подслушивание и прослушивание;
- акустоэлектрические — получение информации через звуковые волны с дальнейшей передачей ее через сети электропитания;
- виброакустические — сигналы, возникающие посредством преобразования информативного акустического сигнала при воздействии его на строительные конструкции и инженерно-технические коммуникации защищаемых помещений;
- оптические— визуальные методы, фотографирование, видео съемка, наблюдение;
- электромагнитные— копирование полей путем снятия индуктивных наводок;
- радиоизлучения или электрические сигналыот внедренных в технические средства и защищаемые помещения специальных электронных устройств съема речевой информации “закладных устройств”, модулированные информативным сигналом;
- материальные— информация на бумаге или других физических носителях информации
Источник: studfile.net