Обеспечение качества функционирования компьютерных систем-psihdo. Обеспечение качества функционирования компьютерных систем Опорный конспект лекций
Скачать 478.49 Kb.
|
Четвертый уровень — это оценочный элемент метрики (вес), который используется для оценки количественного или качественного значения отдельного атрибута показателя качества ПО.§ Четвертый уровень — это оценочный элемент метрики (вес), который используется для оценки количественного или качественного значения отдельного атрибута показателя качества ПО. § В зависимости от назначения, особенностей и условий сопровождения ПО, выбираются наиболее важные характеристики качества и их атрибуты. § Выбранные атрибуты и их приоритеты отражаются в требованиях на разработку систем, либо используются соответствующие приоритеты эталона класса ПО, к которому это ПО относится. Объекты уязвимости ПОСвойства надежности программ принципиально отличаются от свойств надежности технических средств информационной системы. Основные отличия состоят в следующем:• программа физически не стареет и не изнашивается. Возможно только моральное старение программы;• программа не требует ремонта и профилактического обслуживания;• программные ошибки есть результат создания и корректировки ПО. Они могут не проявляться, если входные данные не инициируют выполнение тех участков программ, в которых содержатся ошибки. В отличие от технических средств некоторые входные потоки данных могут привести к частым ошибкам, в то время как другие потоки могут вообще не привести к ошибкам; • каждая программа является уникальным продуктом. Этот факт можно объяснить следующим образом. Во-первых, любые две копии программы абсолютно идентичны. Во-вторых, программа никогда не дает ухудшения характеристик без внешнего вмешательства. В-третьих, процесс отладки программы никогда не повторяется; • любая корректировка программы (даже если это относится только к устранению обнаруженной ошибки) приводит к новой версии программы, поскольку обязательно приводит к изменению хотя бы одного элемента объектного кода программы. Это важное обстоятельство исключает возможность использования ранее имевшихся статистических данных и принципиально не позволяет производить статистическую оценку надежности программ; • при исправлении обнаруженной ошибки программист может внести новые ошибки, которые могут со временем проявиться при определенном наборе входных данных, что отличается от последствий ремонта технических средств.Известно, что даже небольшая, казалось бы, уязвимость ПО может привести к большому ущербу.§ Известно, что даже небольшая, казалось бы, уязвимость ПО может привести к большому ущербу. § Отсюда и пристальное внимание разработчиков и пользователей ПО к вопросам систематизации уязвимостей. § Следует отметить, что проблема составления универсальной классификационной схемы уязвимостей ПО остается актуальной: в основном исследователями приводятся классификационные схемы, охватывающие лишь малую часть предметной области, на которую они ориентируются. § Далее рассмотрим классификацию уязвимостей по критерию «причина возникновения» в общем виде. Данная классификация включает два типа уязвимостей. Первый тип — уязвимости, вызванные дефектами (ошибки, проблемы)Первый тип — уязвимости, вызванные дефектами (ошибки, проблемы)проектирования и программирования системы, такими как:• ошибки обработки и представления данных;• неправильная обработка входных и выходных данных;• отсутствие проверки и представления ввода;• некорректное кодирование и экранирование вывода;• некорректная обработка входных данных;• ошибочная внутренняя трансформация данных;• ошибки, связанные с использованием строк;• ошибки типов данных;• ошибки представления данных;• числовые ошибки;• ошибки определения структур данных;• ошибки доступа к данным;• ошибки управления информацией;• неверный доступ к индексируемому ресурсу;• ошибки модификации постоянных данных;• нарушение внутренней структуры и зависимости;• некорректное использование API;• ошибки, связанные с инкапсуляцией;• ошибки обработки событий и состояний;• ошибки временных меток и внутреннего состояния;• нарушение логики функционирования;• некорректно написанные обработчики;• некорректная обработка ошибок и внештатных ситуаций;• неправильное использование ресурсов и внутренних механизмов системы; |