Объекты уязвимости. Лекция 2 Объекты уязвимости
Скачать 15.01 Kb.
|
ЛЕКЦИЯ 2 Объекты уязвимости План. 1. Контрольный опрос 2. Классификация уязвимостей. 3. уязвимости, вызванные дефектами конфигурирования и управления системой. 4. уязвимости, вызванные дефектами проектирования. Уязвимости программного обеспечения Известно, что даже небольшая, казалось бы, уязвимость ПО может привести к большому ущербу. Отсюда и пристальное внимание разработчиков и пользователей ПО к вопросам систематизации уязвимостей. Следует отметить, что проблема составления универсальной классификационной схемы уязвимостей ПО остается актуальной: в основном исследователями приводятся классификационные схемы, охватывающие лишь малую часть предметной области, на которую они ориентируются. Далее приведем классификацию уязвимостей по критерию «причина возникновения» в общем виде. Данная классификация включает два типа уязвимостей. Первый тип — уязвимости, вызванные дефектами (ошибки, проблемы) проектирования и программирования системы, такими как [2, 3, 4]: • ошибки обработки и представления данных; • неправильная обработка входных и выходных данных; • отсутствие проверки и представления ввода; • некорректное кодирование и экранирование вывода; • некорректная обработка входных данных; • ошибочная внутренняя трансформация данных; • ошибки, связанные с использованием строк; • ошибки типов данных; • ошибки представления данных; • числовые ошибки; • ошибки определения структур данных; • ошибки доступа к данным; • ошибки управления информацией; • неверный доступ к индексируемому ресурсу; • ошибки модификации постоянных данных; • нарушение внутренней структуры и зависимости; • некорректное использование API; • ошибки, связанные с инкапсуляцией; • ошибки обработки событий и состояний; • ошибки временных меток и внутреннего состояния; • нарушение логики функционирования; • некорректно написанные обработчики; • некорректная обработка ошибок и внештатных ситуаций; • неправильное использование ресурсов и внутренних механизмов системы; • ошибки при использовании механизмов безопасности; • ошибки инициализации и очистки областей памяти; • некорректное использование ссылок и псевдонимов; • некорректное использование указателей; • ошибки, свойственные определенному типу функционала; • ошибки при реализации пользовательского интерфейса; • некорректное использование сетевых протоколов; • присутствие в коде намеренно и ненамеренно внедренных объектов (закладок); • отклонения от стандартов качества проектирования, реализации, документирования; • несоблюдение качества кода; • нарушения принципов проектирования безопасного ПО; • выпуск неполной или некорректной документации. Второй тип — уязвимости, вызванные дефектами конфигурирования и управления системой и ее окружением, а именно дефекты: • конфигурации; • настройки механизмов безопасности; • настройки структуры и функционала; • в виде закладок в настройках; • совместимости версий; • качества настроек; • окружения; • среды компиляции и выполнения программного кода; • прикладного программного обеспечения; • системного программного обеспечения (гипервизора, операционной системы, драйверов); • аппаратного обеспечения. Представленная классификация основана на дефектах кода и ошибок эксплуатации систем и пересекается с международными таксономиями CWE и Fortify. К достоинству такого подхода следует отнести учет реальных причин уязвимостей, соответствие международной практике классификации и возможность исключения многократного дублирования отдельных позиций, что свойственно академическим общетехническим классификациям. Контрольные вопросы: 1. В чем заключается поиск уязвимостей; 2. Какие типы уязвимостей бывают; 3. Охарактеризуйте уязвимости, вызванные дефектами (ошибки, проблемы) проектирования и программирования; 4. Охарактеризуйте уязвимости, вызванные дефектами конфигурирования и управления системой. |