- •Безпека інформаційно- комунікаційних систем
- •Isbn 966-552-167-5
- •1.1. Термінологія
- •1.1.1. Системи, в яких здійснюється захист інформації
- •1.1.2. Завдання захисту інформації
- •1.1.3. Загрози і вразливості
- •1.1.4. Комплексна система захисту інформації
- •1.1.5. Об'єкти захисту та їхні властивості
- •1.1.6. Розроблення й оцінювання захищених систем
- •1.2. Загрози безпеці інформації
- •1.2.1. Класифікація загроз
- •1.2.2. Перелік типових загроз безпеці
- •1.2.3. Класифікація атак
- •1.2.4. Методика класифікації загроз stride
- •1.2.5. Модель загроз
- •1.3. Порушники
- •1.3.1. Визначення терміну «хакер»
- •1.3.2. Наслідки віддій порушників
- •1.3.3. Модель порушника
- •2.1. Рівні інформаційно-комунікаційної системи
- •2.2. Функціональні сервіси безпеки і механізми, що їх реалізують
- •2.2.1. Таксономія функцій систем захисту
- •2.3. Основні підсистеми комплексу засобів захисту
- •2.3.1. Підсистема керування доступом
- •2.3.2. Підсистема ідентифікації й автентифікації
- •2.3.3. Підсистема аудита
- •Підсистема забезпечення цілісності
- •Криптографічна підсистема
- •3.1. Історична довідка
- •3.2. Основні поняття
- •3.3.1. Симетричне шифрування
- •3.3.2. Асиметричне шифрування
- •4.1. Загальні поняття теорії захисту інформації
- •4.2. Позначення, аксіоми та визначення
- •4.3. Основні типи політик безпеки
- •4.4. Математичні моделі безпеки
- •4.4.1. Моделі дискреційної політики безпеки
- •4.4.2. Моделі мандатної політики безпеки
- •5.1. Передумови виникнення вразливостей у комп'ютерних системах
- •5.2. Класифікація вад захисту
- •5.2.1. Класифікація вад захисту за причиною їх появи
- •5.2.2. Класифікація вад захисту за їх розміщенням у системі
- •5.2.3. Класифікація вад захисту за етапами їх появи
- •5.3. Класифікація помилок, що виникають у процесі програмної реалізації системи
- •5.4. Помилки переповнення буфера
- •5.4.1. Переповнення буфера у стеку
- •5.4.2. Переповнення буфера у статичній або динамічній пам'яті
- •5.4.3. Помилка переповнення в один байт
- •5.5. Помилки оброблення текстових рядків
- •5.5.1. Використання конвеєра
- •5.5.2. Переспрямування введення-виведення
- •5.5.3. Спеціальні символи
- •5.6. Люки
- •5.6.1. Режим debug у програмі sendmail
- •6.1. Класифікація шкідливого програмного забезпечення
- •6.2. Програмні закладки
- •6.2.1. Функції програмних закладок
- •6.2.2. Шпигунські програми
- •6.2.3. «Логічні бомби»
- •6.2.4. Люки — утиліти віддаленого адміністрування
- •6.2.5. Несанкціонована робота з мережею
- •6.2.6. Інші програмні закладки
- •6.3. Комп'ютерні віруси
- •6.3.1. Файлові віруси
- •6.3.2. Завантажувальні віруси
- •6.3.3. Макровіруси
- •6.3.4. Скриптові віруси
- •6.3.5. Захист від комп'ютерних вірусів
- •6.4. Мережні хробаки
- •6.4.1. Класифікація мережних хробаків
- •6.4.2. Хробак Морріса
- •6.4.3. Сучасні мережні хробаки
- •6.5. «Троянські коні»
- •6.5.1. Соціальна інженерія
- •6.5.2. Класифікація «троянських коней»
- •6.5.3. Шпигунські троянські програми
- •6.5.4. Троянські інсталятори
- •6.5.5. «Троянські бомби»
- •6.6. Спеціальні хакерські утиліти
- •6.6.1. Засоби здійснення віддалених атак Засоби проникнення на віддалені комп'ютери
- •6.6.2. Засоби створення шкідливого програмного забезпечення
- •6.6.3. Створення засобів атак
- •7.1. Призначення стандартів інформаційної безпеки
- •7.2. Стандарти, орієнтовані на застосування військовими та спецслужбами
- •7.2.1. «Критерії оцінювання захищених комп'ютерних систем» Міністерства оборони сша
- •7.2.2. Інтерпретація і розвиток tcsec
- •7.2.3. Керівні документи Державної технічної комісії при Президенті Російської Федерації
- •7.3. Стандарти, що враховують специфіку вимог захисту в різних системах
- •7.3.1. Європейські критерії безпеки інформаційних технологій
- •7.4. Стандарти, що використовують
- •7.4.1. Концепція профілю захисту
- •7.4.2. Федеральні критерії безпеки
- •8.1. Законодавча і нормативна база захисту
- •8.1.1. Закон України «Про захист інформації
- •8.1.2. Нормативні документи системи
- •8.2. Оцінювання захищеності інформації,
- •8.2.1. Особливості термінології
- •8.2.2. Критерії захищеності інформації в комп'ютерних системах від несанкціонованого доступу
- •8.2.3. Класифікація автоматизованих систем
- •8.3. Керівні документи з вимогами до захисту інформації в інформаційних системах певних типів
- •8.3.1. Вимоги із захисту конфіденційної інформації
- •8.3.2. Вимоги до захисту інформації веб-сторінки від несанкціонованого доступу
- •9.1. Основні відомості
- •9.2. Базові поняття
- •9.3.2. Оцінювання об'єкта за «Загальною методологію»
- •9.3.3. Матеріали, необхідні для проведення кваліфікаційного аналізу
- •9.3.4. Три етапи здійснення кваліфікаційного аналізу
- •9.4. Структура основних документів «Загальних критеріїв»
- •9.4.1. Профіль захисту
- •9.4.2. Завдання з безпеки
- •1. Вступ.
- •5. Вимоги безпеки.
- •8. Обґрунтування.
- •10.1. Завдання апаратного захисту
- •10.2. Підтримка керування пам'яттю
- •10.2.1. Віртуальні адреси
- •10.2.2. Віртуальна пам'ять
- •10.2.3. Трансляція адрес
- •10.4. Особливості архітектури процесорів Intel х86
- •10.4.2. Селектори та дескриптори сегментів і сторінок
- •10.5.2. Сегментно-сторінковий розподіл пам'яті
- •10.6. Керування задачами
- •10.6.1. Виклик процедур
- •10.6.2. Виклик задач
- •10.6.3. Привілейовані команди
- •11.1. Загрози безпеці операційних систем
- •11.1.1. Сканування файлової системи
- •11.1.2. Викрадення ключової інформації
- •11.1.3. Добирання паролів
- •11.1.4. Збирання сміття
- •11.1.5. Перевищення повноважень
- •11.1.6. Програмні закладки
- •11.1.7. «Жадібні» програми
- •11.2. Поняття захищеної операційної системи
- •11.2.1. Підходи до побудови захищених операційних систем
- •11.2.2. Принципи створення захищених систем
- •11.2.3. Адміністративні заходи захисту
- •11.2.4. Політика безпеки
- •11.3.1. Основні функції кзз
- •11.3.2. Розмежування доступу
- •11.3.3. Ідентифікація, автентифікація й авторизація
- •11.3.4. Аудит
- •12.1. Історія створення unix
- •12.2. Архітектура системи
- •12.3.1. Модель безпеки системи unix
- •12.3.2. Підсистема ідентифікації й автентифікації
- •12.3.3. Підсистема розмежування доступу
- •12.3.4. Підсистема реєстрації
- •12.4. Адміністрування засобів безпеки unix 12.4.1. Особливості адміністрування
- •12.4.2. Утиліти безпеки
- •12.4.3. Характерні вразливості системи unix
- •13.1. Основні відомості про систему
- •13.1.1. Стисло про історію створення системи
- •13.1.2. Відповідність вимогам стандартів безпеки
- •13.2.1. Основні концепції
- •13.2.2. Компоненти системи захисту
- •13.3. Розмежування доступу
- •13.3.1. Основні принципи реалізації системи розмежування
- •13.3.2. Суб'єкти доступу Windows
- •13.3.3. Об'єкти доступу Windows
- •13.3.4. Стандартні настроювання прав доступу
- •13.3.5. Ідентифікація й автентифікація
- •13.3.6. Реалізація дискреційного керування доступом
- •13.4. Аудит
- •14.1. Обґрунтування застосування захищених ос для створення систем оброблення конфіденційної інформації
- •14.2. Система Trusted Solaris
- •14.2.1. Основні характеристики середовища Trusted Solaris
- •14.2.2. Керування доступом у середовищі Trusted Solaris
- •14.2.3. Окреме зберігання позначеної мітками
- •14.2.4. Адміністрування безпеки у середовищі Trusted Solaris
- •14.3. Операційна система Фенікс
- •14.3.1. Архітектура системи
- •14.3.2. Засоби захисту
- •14.3.3. Дискреційна модель ієрархічного керування
- •14.3.4. Засоби керування доступом
- •14.3.5. Перегляд протоколу аудита
- •14.3.5. Програмні інтерфейси системи
- •14.3.7. Застосування операційної системи Фенікс
- •15.1. Основні відомості про комп'ютерні мережі
- •15.1.1. Відкриті системи
- •15.1.2. Модель взаємодії відкритих систем
- •15.1.3. Стеки протоколів
- •15.2. Інтернет
- •15.2.1. Організація
- •15.2.2. Адресація
- •15.2.3. Маршрутизація
- •15.3. Загрози безпеці інформації у мережах
- •15.4. Безпека взаємодії відкритих систем
- •15.4.1. Сервіси безпеки
- •15.4.2. Специфічні механізми безпеки
- •15.4.3. Універсальні механізми безпеки
- •15.4.5. Подальший розвиток міжнародних стандартів
- •16.1. Протоколи прикладного рівня
- •16.1.1. Протокол Telnet
- •16.1.2. Протокол ftp
- •16.1.3. Мережні служби unix
- •16.2. Транспортні протоколи
- •16.2.1. Протокол udp
- •16.2.2. Протокол tcp
- •16.3. Протокол ip
- •16.3.1. Призначення й можливості протоколу iPv4
- •16.3.2. Атаки на протокол iPv4, пов'язані з адресацією Підміна адреси відправника
- •16.3.3. Атаки, що ґрунтуються на помилках оброблення фрагментованих пакетів
- •16.3.4. Можливості, закладені у протокол iPv6
- •16.4.1. Особливості протоколу
- •16.4.2. Модель загроз
- •16.4.3. Механізми захисту
- •16.4.4. Рішення з безпеки
- •Interdomain Route Validation
- •16.4.5. Оцінювання захищеності
- •16.5. Протоколи керування мережею 16.5.1. Протокол ісмр
- •16.5.2. Протокол snmp
- •17.1. Система електронної пошти
- •17.1.1. Архітектура системи електронної пошти
- •17.1.2. Формат повідомлення електронної пошти
- •17.1.3. Протокол smtp
- •17.1.4. Протокол рорз
- •17.1.5. Протокол імар4
- •17.1.6. Загрози, пов'язані з використанням електронної пошти
- •17.1.7. Анонімне відсилання електронної пошти
- •17.1.8. Атаки через систему електронної пошти
- •17.2.1. Принципи веб-технології
- •17.2.2. Протокол http
- •17.2.3. Динамічні сторінки
- •17.2.4. Уразливості серверного програмного забезпечення
- •17.2.5. Уразливості у сценаріях
- •17.2.7. Міжсайтовий скриптінг
- •17.2.8. Захист сервера від атак
- •17.2.9. Атака на клієнта
- •17.2.10. Безпека Java
- •18.1. Архітектура захищених мереж
- •18.1.1. Протидія прослуховуванню трафіку
- •18.1.2. Сегментація мережі
- •18.1.3. Резервування мережного обладнання і каналів зв'язку
- •18.2. Міжмережні екрани
- •18.2.1. Можливості міжмережних екранів
- •18.2.2. Рівні реалізації
- •18.2.3. Особливості персональних брандмауерів
- •18.2.4. Недоліки міжмережного екрана
- •18.3. Системи виявлення атак
- •18.3.1. Можливості систем виявлення атак
- •18.3.2. Різні типи систем виявлення атак
- •18.3.3. Інформаційні джерела
- •18.3.4. Аналіз подій у системах виявлення атак
- •18.3.5. Відповідні дії систем виявлення атак
- •18.4. Додаткові інструментальні засоби
- •18.4.1. Системи аналізу й оцінювання вразливостей
- •18.4.2. Перевірка цілісності файлів
- •Передавання інформації через захищені мережі
- •19.1. Захист інформації, що передається відкритими каналами зв'язку
- •19.2. Віртуальні захищені мережі
- •19.2.1. Різні види віртуальних захищених мереж
- •Vpn віддаленого доступу
- •19.2.2. Проблеми побудови віртуальних захищених мереж
- •19.3. Рівні реалізації віртуальних захищених мереж
- •19.3.1. Захист віртуальних каналів на сеансовому рівні
- •19.3.2. Захист віртуальних каналів на мережному рівні
- •19.3.3. Захист віртуальних каналів на канальному рівні
- •19.4. Вимоги нормативної бази до реалізації віртуальних захищених мереж в Україні
- •20.1. Порядок проведення робіт зі створення комплексної системи захисту інформації
- •20.1.1. Структура комплексної системи захисту інформації
- •20.1.2. Створення комплексної системи захисту інформації
- •Обґрунтування потреби у створенні системи захисту
- •20.2.2. Обстеження середовищ функціонування
- •20.2.3. Визначення й аналіз можливих загроз безпеці
- •20.2.4. Розроблення політики безпеки
- •20.2.5. Перелік вимог до захищеної системи
- •20.3. Розроблення технічного завдання на створення комплексної системи захисту інформації
- •20.4. Створення і впровадження комплексної системи захисту інформації
- •20.4.1. Розроблення проекту Порядок розроблення проекту
- •20.4.2. Введення комплексної системи захисту інформації в дію та оцінювання захищеності інформації в інформаційно-телекомунікаційних системах
- •20.4.3. Супроводження комплексної системи захисту інформації
- •21.1. Вимоги до кваліфікаційного аналізу
- •21.2. Організація державної експертизи
- •21.2.1. Положення про державну експертизу
- •21.2.2. Рекомендації з оформлення програм і методик проведення експертизи комплексної системи захисту інформації
- •21.3. Сертифікація засобів технічного захисту інформації
- •22.1. «Типове положення про службу захисту інформації в автоматизованій системі»
- •22.1.1. Загальні положення
- •22.1.2. Завдання та функції служби захисту інформації
- •22.1.3. Права й обов'язки служби захисту інформації
- •22.1.4. Взаємодія служби захисту інформації з іншими підрозділами та із зовнішніми організаціями
- •22.1.5. Штатний розклад і структура служби захисту інформації
- •22.1.6. Організація заходів служби захисту інформації та їх фінансування
- •22.2. Рекомендації щодо структури
- •22.2.1. Завдання захисту інформації в ас
- •22.2.2. Класифікація інформації, що обробляють в ас
- •22.2.3. Компоненти ас і технології оброблення інформації
- •22.2.4. Загрози інформації в ас
- •22.2.5. Політика безпеки інформації в ас
- •22.2.6. Календарний план робіт із захисту інформації в ас
- •22.3. Iso/iec 27002 «Інформаційні технології — Методики безпеки — Практичні правила управління безпекою інформації»
- •22.3.1. Загальні відомості про стандарт
- •22.3.2. Структура й основний зміст стандарту
- •22.3.3. Інші стандарти серн 27000
- •Грайворонський Микола Владленович Новіков Олексій Миколайович безпека інформаційно-комунікаційних систем
- •21100, М. Вінниця, вул. 600-річчя, 19.
помилки,
виявлені у програмах-демонах finger
і
sendmail,
і
наслідки, до яких вони призвели. Також
наведемо аналогічні вразливості систем
Windows,
які
виникають через вади захисту в реалізації
системних сервісів.
Помилки,
які спричиняють вади захисту в прикладному
програмному забезпеченні, як правило,
не здатні завдати помітної шкоди
функціонуванню системного програмного
забезпечення і призводять лише до збоїв
процесу, що містить такі помилки. Але
ті вади захисту, що є результатом
навмисного впровадження шкідливих
функцій у прикладні програми, вкрай
небезпечні. Адже переважна більшість
вірусів, «троянських коней», програмних
закладок і спеціалізованих засобів
атак функціонують саме як прикладні
програми. Різниця полягає у тому, що
спеціально впроваджені шкідливі функції
використовують відомі вразливості у
програмному забезпеченні, що дає їм
змогу діяти з більшими повноваженнями,
ніж повноваження прикладного процесу
та користувача, який його ініціював.
Наявність
класифікації вад захисту за етапами
їх появи має велике значення для
здійснення аналізу передумов виникнення
помилок та запобігання їм. Така
класифікація тісно пов'язана з етапами
життєвого циклу програмного забезпечення.
Оскільки є різні моделі життєвого циклу
та технології розроблення ПЗ, класифікації
також можуть різнитися.
У
цьому підрозділі подано не надто
детальну класифікацію, яка фактично
охоплює лише найвищий рівень подання
життєвого циклу (рис. 5.2) але може бути
у пригоді для аналізу ймовірності
виникнення вад захисту на відповідних
етапах.
Рис.
5.2.
Класифікація вад захисту за етапами
їх появи
Життєвий
цикл програмних систем складається з
таких трьох основних
етапів:
розроблення, впровадження й експлуатація.5.2.3. Класифікація вад захисту за етапами їх появи
На першому етапі (якщо процес створення програмної системи розглядати спрощено) здійснюють:
розроблення технічних вимог і специфікацій;
розроблення алгоритмів;
кодування.
У технічних вимогах визначають, що має робити програма. У специфікаціях описують, яким чином програма виконуватиме зазначені дії. Реалізація певних дій потребує розроблення алгоритмів. Відповідно до розроблених специфікацій і алгоритмів, створюють вихідні тексти програми та компілюють їх у програмний код. Іноді розроблення та компіляцію програм розглядають окремо, через наявність імовірності внесення специфічних помилок на кожному із цих етапів. Реальний процес кодування, як правило, проходить циклічно, тобто після написання чергового фрагмента вихідного тексту здійснюють його компіляцію і тестування, після чого робота триває.
Етап упровадження детально не розглядатимемо, лише зауважимо, що на цьому етапі відбуваються інсталяція системи, її налагодження у конкретному програмному й апаратному оточенні, а також випробування і (за потреби) атестація.
Етап експлуатації системи передбачає її супроводження і застосування (що можна розглядати як окремі процеси і як один).
Під супроводженням системи мають на увазі її модифікацію та удосконалення шляхом виправлення наявних помилок, упровадження додаткових функцій та оновлення застарілих версій програм. Застосування системи — це експлуатація конкретної версії системи в певних умовах.
Розглянемо ці етапи докладніше, враховуючи імовірність появи на кожному з них специфічних вад захисту.
Розроблення технічних вимог і специфікацій
На цьому етапі навмисне внесення помилок малоймовірне, оскільки технічні вимоги і специфікації можна легко перевірити. Проте й тут виникають дві проблеми, які можуть спричинити появу вад захисту в кінцевому програмному продукті. Перша — це протиріччя між вимогами безпеки і загальними вимогами до функціональності системи. Виконати всі вимоги можна, лише приймаючи певні компромісні рішення, що сприяють послабленню безпеки. Типові приклади таких компромісів — спрощення процедур ідентифікації й автентифікації, розширення прав користувачів, збільшення квот на використання пам'яті, процесорного часу, дискового простору, кількості одночасних запитів користувачам і процесам тощо.
Друга проблема — невідповідність реальної системи технічним вимогам і розробленим на їх основі специфікаціям (а точніше, середовища, в якому система функціонуватиме). Така невідповідність виникає, коли стандартні проектні рішення тиражуються на різні системи і коли середовище системи зазнає змін на етапі його проектування. Найтиповішою і найнебезпечнішою з таких змін є підключення системи до глобальної мережі чи поява додаткових підключень в обхід запроектованих. Такі невідповідності можуть призвести до того, що всі обрані рішення із захисту втратять свою ефективність.
Розроблення алгоритмів
Алгоритми, що реалізують функції безпеки, також є потенційним джерелом над захисту. Оскільки алгоритми підлягають перевірці, внесення навмисних помилок на цьому етапі малоймовірне, але ненавмисні помилки, наприклад, в алгоритмах роботи системи розмежування доступу цілком імовірні.
Кодування
Процедура створення вихідних текстів програм на основі розроблених специфікацій і алгоритмів надає широкий простір для виникнення вад захисту. На цьому етапі часто припускаються помилок. Більшість таких помилок можна виявити, проаналізувавши вихідні тексти програм разом зі специфікаціями. Про те дуже важко, майже неможливо, виявити ці помилки тестуванням скомпільованої програми, навіть якщо застосовувати для цього технологію «зворотної інженерії», тобто декомпіляцію.
Причинами появи помилок окрім складності програмного коду є особливості створення сучасних програмних систем, коли над проектом разом працюють ба гато виконавців, а також використання фрагментів уже готового коду (бібліотек). Останнє вимагає від програмістів не лише досконалого знання правил виклику тих чи інших функцій, але й особливостей їх реалізації, що не завжди відповідає
реальності. Наприклад, найтиповіші помилки переповнення буфера, які надають зловмисникам можливість виконувати довільні команди на комп'ютері, як правило, виникають або внаслідок використання програмістами бібліотечних функцій
з такою вразливістю, або через те, що ці функції викликаються іншими бібліотечними функціями, про що програмісти можуть не здогадуватися.
Вади захисту виникають на етапі розроблення тексту програм також через на вмисне внесення недокументованих функцій — програмних закладок. Найчастіше програмісти за допомогою закладок створюють так звані люки, або чорні ходи (Backdoors), з метою спрощення процедур тестування і налагодження програми, а інколи і задля того, щоб у подальшому можна було скористатися ресурсами системи. Іноді вони вносять нешкідливі програмні закладки, які за виконання певних умов демонструють, наприклад, інформацію про розробників. Але є й такі програмні закладки, які здійснюють шпигунську місію, приховано надсилаючи з системи конфіденційну інформацію, або виконують руйнівні дії. Зауважимо, що останнє фактично унеможливлюється у разі використання програмного забезпечення, розробленого «на замовлення» відомими розробниками, але цілком імовірне у програмах, отриманих із сумнівних джерел.
Компіляція
Окремо розглянемо помилки, що виникають у коді програм на етапі їх компіляції. За допомогою сучасних компіляторів можна робити численні настроювання, які мають відповідати розробленим специфікаціям і вихідним текстам програм. Таким чином можна обирати модель використання пам'яті, змінювати розмір сегментів (особливо стека), формат змінних за умовчанням і встановлювати додаткові перевірки параметрів під час виклику процедур, компіляції та у разі підключення додаткових модулів.
Компілятори також можуть містити недокументовані функції. Як приклад варто навести ідею Кена Томпсона — автора мови програмування С, — яку він висловив у своїй класичній доповіді, присвяченій питанням довіри до програмного забезпечення, на церемонії вручення йому премії Т'юрінга у 1983 році [59].
Кен Томпсон запропонував увести в компілятор С програмну закладку, яка розпізнає вихідний код утиліти login, що виконує автентифікацію користувача в операційній системі UNIX і в процесі компіляції додає до цієї утиліти недоку ментовану функцію, яка після введення спеціального таємного пароля надає користувачу привілейований доступ. Оскільки компілятор — це також програма, причому написана тією самою мовою програмування С, Кен Томпсон запропонував упровадити в компілятор С ще одну програмну закладку, яка розпізнає вихідний текст компілятора і під час його компіляції додає до вихідного тексту обидві закладки.
Проаналізуємо можливі наслідки реалізації цієї пропозиції. Внесену компілятором програмну закладку майже неможливо виявити без трудомісткого аналізу машинних кодів. Оскільки вихідні тексти системних і прикладних програм UNIX були доступними, майже весь аналіз коду і пошук помилок виконувався не у відкомпільованих кодах, а у вихідних текстах. Окрім того, всі нові версії компіляторів, реалізовані з використанням попередніх версій, також мали вносити ту саму програмну закладку. Таким чином, впроваджений люк із великою ймовірністю міг існувати протягом тривалого часу на всіх системах UNIX.
Основні висновки, що випливають із доповіді Кена Томпсона, зводяться до такого: не можна цілком довіряти програмі, написаній не власноруч, і не можна бути впевненим, що програмні продукти, навіть відомих і шанованих виробників, не містять програмних закладок.
Впровадження
На етапі впровадження системи виконується її налагодження в конкретному програмному та апаратному оточенні. На цьому етапі вади захисту можуть бути впроваджені через помилки в адмініструванні системи. Їх спричиняє відсутність повної документації на систему, яка мала б надавати вичерпну інформацію про параметри, що можуть змінюватися під час інсталяції системи, та недостатній досвід персоналу в адмініструванні конкретної системи.
Супроводження
Під час супроводження системи також можуть бути внесені випадкові помилки, які спричиняють вади захисту. Такі помилки виникають переважно через недостатню обізнаність програмістів, що вносять зміни в систему, в деяких аспектах її функціонування. Внесення будь-яких змін потенційно загрожує безпеці системи. Єдиним ефективним способом захисту від цієї загрози є всебічне тестування системи після здійснення будь-яких її модифікацій (щоразу як нової системи).
Експлуатація
Цей етап має два джерела виникнення вад захисту. Перше — це помилки в адмініструванні системи. Добре спроектована система захисту зазвичай відстежує такі
помилки адміністрування, як відключення окремих захисних функцій, звуження кола контрольованих об'єктів, надання підвищених привілеїв користувачам чи процесам. Адміністратори часто не зважають на попереджання системи і діють на свій розсуд, ігноруючи вимоги безпеки задля спрощення процедур адміністрування.
Розглянемо такий приклад. У системі UNIX, щоб надати окремим користувачам право на запуск певної програми, яка вимагає повноважень суперкорнстувача, потрібно або встановити на цю програму атрибут SUID, або повідомити всім цим користувачам пароль root'a, або налаштувати програму sudo (конфігурацій
ний файл /etc/sudoers) на виконання визначеними користувачами заданої про грами (можна також надати всім цим користувачам права root'a, встановивши для них UID=0, але таку одіозну ситуацію розглядати не варто). У першому випадку програма автоматично запускається від імені суперкористувача, у другому — ко ристувачам доведеться, виконуючи команду su root або входячи в систему як root, вводити пароль root'a, у третьому — користувачам під час виконання команди sudo потрібно вводити власний пароль.
Перший спосіб найзручніший для користувачів і найпростіший для адміністратора, але абсолютно неприйнятний із міркувань безпеки. Другий — є небажаним через високу ймовірність розголошення пароля root'a, крім того, використання su root є прийнятним з міркувань безпеки, а входження в систему різних користувачів як root'a — ні (через особливості реалізації системи аудита). І лише використання sudo є цілком виправданим із міркувань безпеки, хоча й найскладнішим і для користувачів, і для адміністратора.
Другим джерелом появи вад захисту під час експлуатації системи є дія шкідливого програмного забезпечення, розробленого спеціально, щоб упроваджувати в систему програмні закладки. До таких програм належать, зокрема, комп'ютернівіруси, «троянські коні», мережні хробаки (докладніше про них йтиметься в роз ділі 6). Здебільшого запуск шкідливого програмного забезпечення здійснює персонал (авторизовані користувачі системи) через свою необачність або необізнаність. Іноді вади захисту цілеспрямовано впроваджують користувачі-порушники.