Уязвимость информационной системы – недостаток или слабое место в системном или прикладном программном (программно-аппаратном) обеспечении автоматизированной информационной системы, которые могут быть использованы для реализации угрозы безопасности информации.
Причинами возникновения уязвимостей являются:
· ошибки при проектировании и разработке программного (программно-аппаратного) обеспечения;
· преднамеренные действия по внесению уязвимостей в ходе проектирования и разработки программного (программно-аппаратного) обеспечения;
· неправильные настройки программного обеспечения, неправомерное изменение режимов работы устройств и программ;
· несанкционированное внедрение и использование неучтенных программ с последующим необоснованным расходованием ресурсов (загрузка процессора, захват оперативной памяти и памяти на внешних носителях);
· внедрение вредоносных программ, создающих уязвимости в программном и программно-аппаратном обеспечении;
· несанкционированные неумышленные действия пользователей, приводящие к возникновению уязвимостей;
· сбои в работе аппаратного и программного обеспечения (вызванные сбоями в электропитании, выходом из строя аппаратных элементов в результате старения и снижения надежности, внешними воздействиями электромагнитных полей технических устройств и др.).
Классификация основных уязвимостей приведена на рисунке 4.2.3.1.
Рисунок 4.2.3.1 – Классификация основных уязвимостей
Ниже представлена общая характеристика основных групп уязвимостей информационной системы, включающих:
· уязвимости системного программного обеспечения (в том числе протоколов сетевого взаимодействия);
· уязвимости прикладного программного обеспечения (в том числе средств защиты информации).
Уязвимости системного программного обеспечения необходимо рассматривать с привязкой к архитектуре построения вычислительных систем.
При этом возможны уязвимости:
· в микропрограммах, в прошивках ПЗУ, ППЗУ;
· в средствах операционной системы, предназначенных для управления локальными ресурсами информационной системы (обеспечивающих выполнение функций управления процессами, памятью, устройствами ввода/вывода, интерфейсом с пользователем и т.п.), драйверах, утилитах;
· в средствах операционной системы, предназначенных для выполнения вспомогательных функций, – утилитах (архивирования, дефрагментации и др.), системных обрабатывающих программах (компиляторах, компоновщиках, отладчиках и т.п.), программах предоставления пользователю дополнительных услуг (специальных вариантах интерфейса, калькуляторах, играх и т.п.), библиотеках процедур различного назначения (библиотеках математических функций, функций ввода/вывода и т.д.);
· в средствах коммуникационного взаимодействия (сетевых средствах) операционной системы.
Уязвимости протоколов сетевого взаимодействия связаны с особенностями их программной реализации и обусловлены ограничениями на размеры применяемого буфера, недостатками процедуры аутентификации, отсутствием проверок правильности служебной информации и др. Краткая характеристика этих уязвимостей применительно к протоколам приведена в таблице 4.2.3.1.
Таблица 4.2.3.1 - Уязвимости отдельных протоколов стека протоколов TCP/IP, на базе которого функционируют глобальные сети общего пользования
Наименование протокола
Уровень стека протоколов
Наименование (характеристика) уязвимости
Содержание нарушения безопасности информации
FTP (File Transfer Protocol) – протокол передачи файлов по сети
Прикладной, представи-тельный, сеансовый
1. Аутентификация на базе открытого текста (пароли пересылаются в незашифрованном виде)
2. Доступ по умолчанию
3. Наличие двух открытых портов
Возможность перехвата данных учетной записи (имен зарегистрированных пользователей, паролей).
Получение удаленного доступа к хостам
telnet – протокол управления удаленным терминалом
Прикладной, представи-тельный, сеансовый
Аутентификация на базе открытого текста (пароли пересылаются в незашифрованном виде)
Возможность перехвата данных учетной записи пользователя.
Получение удаленного доступа к хостам
UDP – протокол передачи данных без установления соединения
Транспорт-ный
Отсутствие механизма предотвращения перегрузок буфера
Возможность реализации UDР-шторма.
В результате обмена пакетами происходит существенное снижение производительности сервера
ARP – протокол преобразования IP-адреса в физический адрес
Сетевой
Аутентификация на базе открытого текста (информация пересылается в незашифрованном виде)
Возможность перехвата трафика пользователя злоумышленником
RIP – протокол маршрутной информации
Транспорт-ный
Отсутствие аутентификации управляющих сообщений об изменении маршрута
Возможность перенаправления трафика через хост злоумышленника
TCP – протокол управления передачей
Транспорт-ный
Отсутствие механизма проверки корректности заполнения служебных заголовков пакета
Существенное снижение скорости обмена и даже полный разрыв произвольных соединений по протоколу TCP
DNS – протокол установления соответствия мнемонических имен и сетевых адресов
Прикладной, представи-тельный, сеансовый
Отсутствие средств проверки аутентификации полученных данных от источника
Фальсификация ответа DNS-сервера
IGMP – протокол передачи сообщений о маршрутизации
Сетевой
Отсутствие аутентификации сообщений об изменении параметров маршрута
Зависание систем
Win 9x/NT/2000
SMTP – протокол обеспечения сервиса доставки сообщений по электронной почте
Прикладной, представи-тельный, сеансовый
Отсутствие поддержки аутентификации заголовков сообщений
Возможность подделывания сообщений электронной почты, а также адреса отправителя сообщения
SNMP – протокол управления маршрутизаторами в сетях
Прикладной, представи-тельный, сеансовый
Отсутствие поддержки аутентификации заголовков сообщений
Возможность переполнения пропускной способности сети
Для систематизации описания множества уязвимостей используется единая база данных уязвимостей CVE (Common Vulnerabilities and Exposures), в разработке которой принимали участие специалисты многих известных компаний и организаций, таких как MITRE, ISS, Cisco, BindView, Axent, NFR, L-3, CyberSafe, CERT, Carnegie Mellon University, институт SANS и т.д. Эта база данных постоянно пополняется и используется при формировании баз данных многочисленных программных средств анализа защищенности и, прежде всего, сетевых сканеров.
К прикладному программному обеспечению относятся прикладные программы общего пользования и специальные прикладные программы.
Прикладные программы общего пользования – текстовые и графические редакторы, медиа-программы (аудио- и видеопроигрыватели, программные средства приема телевизионных программ и т.п.), системы управления базами данных, программные платформы общего пользования для разработки программных продуктов (типа Delphi, Visual Basic), средства защиты информации общего пользования и т.п.
Специальные прикладные программы – это программы, которые разрабатываются в интересах решения конкретных прикладных задач в данной информационной системы (в том числе программные средства защиты информации, разработанные для конкретной информационной системы).
Уязвимости прикладного программного обеспечения могут представлять собой:
· функции и процедуры, относящиеся к разным прикладным программам и несовместимые между собой (не функционирующие в одной операционной среде) из-за конфликтов, связанных с распределением ресурсов системы;
· функции, процедуры, изменение определенным образом параметров которых позволяет использовать их для проникновения в операционную среду информационной системы и вызова штатных функций операционной системы, выполнения несанкционированного доступа без обнаружения таких изменений операционной системой;
· фрагменты кода программ («дыры», «люки»), введенные разработчиком, позволяющие обходить процедуры идентификации, аутентификации, проверки целостности и др., предусмотренные в операционной системе;
· отсутствие необходимых средств защиты (аутентификации, проверки целостности, проверки форматов сообщений, блокирования несанкционированно модифицированных функций и т.п.);
· ошибки в программах (в объявлении переменных, функций и процедур, в кодах программ), которые при определенных условиях (например, при выполнении логических переходов) приводят к сбоям, в том числе к сбоям функционирования средств и систем защиты информации, к возможности несанкционированного доступа к информации.
Данные об уязвимостях разрабатываемого и распространяемого на коммерческой основе прикладного программного обеспечения собираются, обобщаются и анализируются в базе данных CVE.