Последовательность
действий при выполнении трансляции
исходных текстов, версия транслятора,
а также исходные данные (директивы)
для транслятора должны соответствовать
приведённым в сопроводительной документации.
Автоматизация здесь подразумевается
на уровне командных
файлов для сборки или автоматизации,
предусмотренной в самих средствах
сборки.
3.2.4. Отчётность
По окончании
испытаний оформляется отчёт (протокол),
содержащий результаты:
- контроля исходного состояния программного обеспечения;
- контроля полноты и отсутствия избыточности исходных текстов контролируемого программного обеспечения на уровне файлов;
- контроля соответствия исходных текстов программного обеспечения его объектному (загрузочному) коду.
3.3. Требования к третьему уровню контроля
3.3.1. Контроль
состава и содержания документации
Требования
полностью включают в себя аналогичные
требования к четвертому уровню контроля.
Кроме того, должна
быть представлена «Пояснительная записка»
(ГОСТ 19.404-79), содержащая основные сведения о назначении
компонентов, входящих в состав программного
обеспечения, параметрах обрабатываемых
наборов данных (подсхемах баз данных),
формируемых кодах возврата, описание
используемых переменных, алгоритмов
функционирования и т.п.
3.3.2. Контроль исходного состояния
программного обеспечения
Требования
полностью включают в себя аналогичные
требования к четвёртому уровню контроля.
3.3.3. Статический
анализ исходных текстов программ
Кроме аналогичных
требований, предъявляемых к четвёртому уровню контроля, дополнительно
предъявляются следующие требования:
- контроль полноты и отсутствия избыточности исходных текстов ПО на уровне функциональных объектов (процедур);
- контроль связей функциональных объектов (модулей, процедур, функций) по управлению;
- контроль связей функциональных объектов (модулей, процедур, функций) по информации;
- контроль информационных объектов различных типов (например, локальных переменных, глобальных переменных, внешних переменных и т.п.);
- формирование перечня маршрутов выполнения функциональных объектов (процедур, функций).
Лекция № 13
Перечень типовых
дефектов программного обеспечения
Рассмотрим
перечень типовых дефектов программного
обеспечения.
- Неполная проверка параметров и разброса переменных; нестрогий контроль границ их изменений.
- Скрытое использование приоритетных данных.
- Асинхронное изменение интервала между временем проверки и временем использования.
- Неправильное преобразование в последовательную форму.
- Неправильные идентификация, верификация, аутентификация и санкционирование задач.
- Отказ предотвращения перехода за установленные в программе пределы доступа и полномочий.
- Логические ошибки (например, больше логических выражений или результатов, чем операций перехода).
- Незавершённые разработка и описание.
- Недокументированные передачи управления.
- Обход контроля или неправильные точки контроля.
- Неправильное присвоение имен, использование псевдонимов.
- Неполная инкапсуляция или неполное скрытие описания реализации объекта.
- Подменяемые контрольные журналы.
- Передача управления в середине процесса.
- Скрытые и недокументированные вызовы из прикладных программ, команд ОС и аппаратных команд.
- Не устранение остаточных данных или отсутствие их адекватной защиты.
- Неправильное освобождение ресурсов.
- Игнорирование отключения внешних приборов.
- Неполное прерывание выполнения программ.
- Использование параметров ОС в прикладном пространстве памяти.
- Не удаление средств отладки до начала эксплуатации.
Формы проявления
программных дефектов
(Вариант 1)
1. Выполнение
арифметических операций и стандартных функций:
- деление на 0;
- переполнение разрядной сетки;
- отличие результатов арифметических операций от ожидаемых;
- обращение к стандартным функциям с недопустимыми значениями параметров.
2. Ошибки, связанные
с затиранием команд и переменных.
3. Ошибки управления:
- зацикливание – бесконечное повторение одной и той же части программы;
- последовательность прохождения участков программы не соответствует ожидаемому;
- потеря управления, приводящая к ошибкам разного рода (обращение к запрещенной области памяти, попытка выполнить запрещенную программу или «не команду».
- 4. Ошибки ввода-вывода:
- «странный» вывод (на печать, на монитор и т.д.);
- сообщения об ошибках от системных программ ввода-вывода.
(Вариант 2)
1. Ошибки, приводящие
к прекращению выполнения основных или части функций управляющей
системы на длительное и или неопределенное
время:
- зацикливание, то есть последовательная повторяющаяся реализация определенной группы команд, не прекращающаяся без внешнего вмешательства;
- останов и прекращение решения функциональных задач;
- значительное искажение или потеря накопленной информации о текущем состоянии управляемого процесса;
- прекращение или значительное снижение темпа решения некоторых задач вследствие перегрузки ЭВМ по пропускной способности;
- искажение процессов взаимного прерывания подпрограмм, приводящее к блокировке возможности некоторых типов прерываний.
2. Ошибки, кратковременно,
но значительно искажающие отдельные
результаты, выдаваемые управляющим
алгоритмом:
- пропуск подпрограмм или их существенных частей;
- выход на подпрограммы или их части, резко искажающиеся результаты;
- обработка ложных или сильно искаженных сообщений.
3. Ошибки, мало
и кратковременно влияющие на
результаты, выдаваемые управляющим
алгоритмом.
Этот тип
ошибок характерен, в основном, для
квазинепрерывных величин, в которых
возможны небольшие отклонения результатов
за счёт ошибок. Эти ошибки в среднем мало
искажают общие результаты, однако отдельные
выбросы могут сильно влиять на процесс
управления и требуется достаточно эффективная
защита от таких редких значительных выбросов.
Лекция № 14
Следует отметить,
что круг вопросов, связанных с
защитой информацией в операционных
системах, является более широким, чем
вопросы защиты, рассматриваемые
ранее. Здесь появляются дополнительные
возможности атак, дополнительные уязвимости
и т.д. Здесь, например, необходимо защищать
приложение от воздействия от него другого
приложения, что может привести к краху
системы.
Защищенность
операционной системы во многом характеризует
защищенность всей компьютерной системы в целом. В связи с этим,
защите ОС необходимо уделять много внимания
на практике.
Классификация
угроз безопасности ОС
Классификация
угроз по цели:
- Несанкционированное чтение информации.
- Несанкционированное изменение информации.
- Несанкционированное уничтожение.
- Полное или частичное разрушение операционной системы, полное или частичное ее завешивание, завешивание программных модулей, физическое стирание с диска системных файлов (вирусы, DoS).
Классификация
по принципу воздействия на ОС:
- Использование легальных каналов получения информации, например угроза несанкционированного чтения при некорректном определения профиля пользователя администратором.
- Использование скрытых каналов получения информации – использование недокументированных возможностей ОС (переполнение буфера – запуск некоторого программного кода).
- Создание новых каналов получения информации с помощью программных закладок.
По характеру воздействия на
ОС:
- Активное воздействие – несанкционированное действия злоумышленника в системе (подбор пароля, украли базу паролей).
- Пассивное воздействие – несанкционированное наблюдение злоумышленника за процессами, происходящими в системе (сниффер).
По типу слабости
защиты:
- Неадекватная политика безопасности, в том числе, ошибки администратора системы.
- Ошибки и недокументированные возможности программного обеспечения ОС: люки – случайные или преднамеренные служебные входы.
- Ранее внедренная программная закладка.
По способу
воздействия на объект атаки:
- Непосредственное воздействие.
- Превышение пользователем своих полномочий.
- Работа от имени другого пользователя.
- Использование результатов работы другого пользователя (перехват информационных потоков).
По способу
действий злоумышленника:
- В интерактивном режиме.
- В пакетном режиме (с помощью специально написанной программы, скрипта, которая действует самостоятельно, без участия злоумышленника).
По объекту
атаки:
- ОС в целом.
- Объекты ОС (файлы, устройства, и т.д.).
- Субъекты ОС (пользователи, системные процессы, и т.д.).
- Каналы передачи данных.
По используемым
средствам атаки:
- Штатные средства ОС, без использования дополнительного ПО.
- ПО третьих фирм (вирусы, вредоносные программы, отладчики, сетевые мониторы, сканеры).
- Специально разработанное ПО.
По состоянию
атакуемого объекта на момент атаки: хранение, передача, обработка.
Типичные
атаки на ОС
1. Сканирование
файловой системы
2. Кража ключевой
информации.
Простейший случай – подсматривание
паролей, набираемых пользователем.
3. Подбор
пароля.
4. Сборка
мусора. В данном случае восстанавливается
информация, которая помечена как удаленная,
но реально не удаленная с диска или из
памяти.
Например, если
в памяти обрабатывался конфиденциальный
документ, то после закрытия текстового
редактора, можно просканировать память
и выделить его.
5. Превышение
полномочий. Злоумышленник использует
дырки в ПО или ОС и получает полномочия,
превышающие те, которые были ему выданы
в соответствии с политикой безопасности.
Обычно это достигается путем запуска
программы от имени другого пользователя
или подмены динамически подгружаемой
библиотеки (скрипт МЭЛТ запускался от
имени администратора и копировал содержимое
файлов в HTML, выдавая их другому пользователю).