
- •Безпека інформаційно- комунікаційних систем
- •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.
6.6.2. Засоби створення шкідливого програмного забезпечення
Утиліти, призначені для полегшення написання комп'ютерних вірусів і для їх вивчення із зловмисною метою (дають змогу розібратися, як вірус працює, і зробити свій — кращий), дістали назву VirTool.
Є спеціальні утиліти-конструктори, за допомогою яких із заготовлених блоків (із заданих функцій) можна складати нові комп'ютерні віруси і «троянців». Відомі конструктори вірусів для DOS і Windows і такі, що допомагають створювати макровіруси. За допомогою таких конструкторів можна згенерувати вихідні тексти вірусів, об'єктні модулі та безпосередньо заражені файли.
Деякі конструктори мають віконний інтерфейс, в якому за допомогою меню можна обрати: тип вірусу та тип об'єктів, які цей вірус намагатиметься вразити; протидію налагодженню; наявність поліморфізму; внутрішні текстові рядки; ефекти, що супроводжуватимуть роботу вірусу тощо. Інші конструктори не мають такого інтерфейсу і зчитують інформацію про тип вірусу з конфігураційного файлу.
Є також утиліти, які забезпечують реалізацію окремих функцій вірусів. Наприклад, програми, що використовують для шифрування інших шкідливих програм, щоб приховати їхній вміст від антивірусної перевірки (FileCryptor або Poly-
Cryptor). Є ще поліморфні генератори (PolyEngine), основна функція яких шифрування тіла вірусу іта генерування відповідного розшифрувальника.
6.6.3. Створення засобів атак
Останнім часом спостерігається тенденція розвитку систем, призначених для спрощення та прискорення процесу розроблення експлойтів і середовищ їх тестування та моделювання. Поява таких систем привела до значного скорочення часу між випуском повідомлення про вразливість і появою відповідного експлойта. Розглянемо одну з таких систем — Metasploit Framework (MSF) [68]. Ця система з відкритим вихідним кодом являє собою середовище для створення, тестування і використання експлойтів, що дає змогу тестувати системи на проникнення, розробляти shell-код і досліджувати вразливості.
Структура системи Metasploit Framework
Більшу частину системи Metasploit Framework написано мовою Perl, а деякі до даткові компоненти — мовами С, Асемблер и Python. Спочатку MSF була розрахована на UNIX - системи, але сьогодні це — мультиплатформна система, що функціонує як під керуванням Linux, *BSD, MacOS X, так і під керуванням Windows (версія для Windows використовує полегшену версію емулятора Cygwin, що впли ває на швидкодію MSF).
Ядро MSF є системою пов'язаних сутностей — експлойтів, генераторів nор - послідовностей (послідовностей команд nop (no operation), які дають змогу передати керування на код зловмисника), генераторів корисного навантаження (у контексті розроблення експлойтів корисним навантаженням називають такий код зловмисника, який виконується в результаті успішного використання вразливості) та кодерів. Експлойт належить до Perl-класу і відповідає за використання вразливості та передання керування на корисне навантаження (shell-код). Конкретний екземпляр експлойта параметризується екземпляром генератора nop - послідовностей, генератора корисного навантаження і кодера.
У версії MSF 2.4 для платформи х86 є два генератори пор-послідовиостей Рех и OptyNop2, здатних генерувати послідовності інструкцій, що не змінюють
стан процесу в широкому діапазоні. Як параметри пор-генераторів можна вказувати регістри процесора, які можна змінювати, збільшуючи в такий спосіб ентропію отримуваних послідовностей. Це разом із динамічним генеруванням nop - послідовностей дає змогу суттєво знизити ймовірність детектування системами
виявлення атак, які здебільшого відстежують серії байтів 0x90 та інші поширені серії пор-байт. Генератор Рех генерує однобайтові пор-інструкції, що знижує ентропію послідовності, але спрощує її створення, a OptyNop2 генерує багатобайтові інструкції, які буде інтерпретовано саме як інструкції типу nop, незалежно від того, в яке місце послідовності буде вказувати ЕІР.
Система MSF надає широкий вибір корисного навантаження для експлойтів Корисні навантаження в MSF існують для операційних систем *BSD, Linux, So
laris і Windows, для архітектур х86, PowerPC і SPARC. Для більшості систем існують shell-коди запуску довільної команди, додавання користувача з правами
адміністратора, зв'язування командної оболонки з портом тощо. Для окремих систем є специфічні shell-коди, що забезпечують впровадження виконуваних модулів ELF для Linux, завантаження багатофункціонального компонента Meter- preter, впровадження DLL-модулів, завантаження та виконання елементів керування ActiveX і сервера VNC для ОС Windows.
Для генерування корисного навантаження, яке не може містити певних байтів, у MSF передбачено набір різних кодерів для архітектур х86, PowerPC і SPARC. Наприклад, у мові С код не може містити нульових байтів для роботи з рядковими функціями. Кодери призначені для роботи з будь-якими бінарними послідовностями, що дає змогу використовувати їх незалежно від виду корисного навантаження. У результаті кодування розмір shell-коду природно зростає; такий побічний ефект ще більше ускладнює детектування системою виявлення атак. Серед прикладів кодерів можна назвати різноманітні XOR-кодери і два алфавітно-цифрових кодери — Alpha2 і PexAlphaNum. Система кодування в MSF дає змогу обирати найліпший кодер, а також встановлювати набір заборонених байтів і максимальну довжину повідомлення.
Інтерфейс користувача
Взаємодію користувача з ядром системи забезпечують три інтерфейси — інтерактивний консольний інтерфейс msfconsole, інтерфейс командного рядка msfcli та веб-інтерфейс msfweb.
Інтерфейс msfconsole — стандартний і найбільш розвинений інтерфейс (в основу якого покладено інтерфейс readline). Він надає функціональність, подібну до інших readline-інтерфейсів (наприклад, bash і gdb), — різноманітні доповнення, історію команд тощо. Так само, як і решта схожих інтерфейсів, msfconsole дає змогу переглядати інформацію про наявні експлойти і shell-коди, обирати конкретний експлойт і корисне навантаження для атаки, задавати їх параметри, перевіряти систему на вразливість тощо. Також msfconsole (на відміну, наприклад, від веб-інтерфейсу) дозволяє додавати нові MSF-сумісні експлойти, змінювати параметри середовища, на кшталт настроювання журналів реєстрації, опцій сокетів, параметрів налагодження та інших.
Інтерфейс командного рядка msfcli дає можливість за допомогою сценаріїв автоматизувати процес тестування експлойта. Він також може стати у пригоді, коли користувач немає змоги чи бажання застосовувати інтерактивний інтерфейс. Цей інтерфейс інколи використовують як доповнення до msfconsole для автоматизації задач. Тоді настроювання змінних середовища доцільно виконувати в msfconsole, а також використовувати його повторно в інтерфейсі командного рядка.
Інтерфейс msfweb — це прикладна програма, що запускається на окремому веб-сервері та підтримує функції основного інтерфейсу msfconsole. У ньому можна обрати конкретний експлойт, задати його параметри, зокрема параметри корисного навантаження, кодера и генератора nор - послідовності. Цей інтерфейс використовують для середовищ командного тестування на проникнення, але він більш зручний для демонстрацій. Веб-інтерфейс msfweb на комп'ютерах під керуванням
Windows через окремі особливості архітектури системи працює значно повільніше, ніж па UNIX-машинах.
Утиліти MSF для створення експлойтів
Написання MSF - сумісного експлойта завершується створенням певного класу мовою Perl. Після цього експлойт можна вбудовувати в систему і використовувати на кшталт тих, що постачаються разом із MSF. Розробник експлойтів, використовуючи наявний у MSF набір утиліт, за допомогою звичайного мережного повідомлення може, наприклад, викликати переповнення буфера, виконати деякий фіксований код, незважаючи на обмеження, що має експлойт MSF. Утиліти MSF використовують для створення повідомлень (задля визначення адреси повернення), створення дампа пам'яті процесу і пошуку в ньому команд певного типу, створення shell-коду, його кодування тощо.
Визначати зміщення в атакуючому повідомленні в MSF можна за допомогою набору сценаріїв мовою Perl. Один із них — утиліта patternCreate.pl, що дає змогу генерувати послідовності байтів, в яких кожні чотири послідовні байти унікальні. Ці повідомлення використовують із метою визначення зміщень для адрес повернення і стану регістрів на момент зриву стека.
Визначати адреси повернення для ОС Windows можна, користуючись базою опкодів, розташованою на сайті розробників [68], яка містить понад 10 млн. адрес інструкцій для різних версій Windows і дозволяє віднайти необхідні інструкції в поширених DLL-модулях (ntdll.dll, kernerl.dll, user32.dll). Ця система шукає не лише стандартні інструкції на кшталт jmp esp, вона здійснює пошук за класами опкодів (наприклад, еах => еір) і типами інструкцій (наприклад, jmp reg, call reg, push reg/ret), а також конкретних інструкцій (наприклад, call [esi + 20]),
яких містить більше трьохсот. До складу MSF також входять утиліта для створення дампу процесу memdump.exe та утиліта командного рядка msfpescan для пошуку інструкцій у виконуваних файлах формату РЕ і дампах memdump. Аналогічну функціональність (хоча й менш уживану) реалізовано в утиліті msfelf- scan; її передбачено для ОС з виконуваними файлами у форматі ELF.
Для роботи з корисними навантаженнями і кодерами передбачено дві утиліти msfpayload і msfencode. Перша дає змогу задати параметри і згенерувати конкретний shell-код. Дані, що виводить утиліта, подано у вигляді, зручному для інтерпретації компілятором С або інтерпретатором Perl, проте їх можна вивести й у «сирому» вигляді. У цьому випадку використовують утиліту msfencode для кодування shell-коду. Як уже зазначалося, за допомогою цієї утиліти можна обрати потрібний кодер і встановити обмеження на максимальну довжину повідомлення, а також на набір заборонених байтів.
Система MSF — доволі досконалий інструмент, який значно спрощує процедуру розроблення засобів атак (експлойтів), дає змогу підвищити їхню якість і ускладнити їх детектування системами виявлення атак. На перший погляд, цю систему можна визнати злочинною і спрямувати зусилля на її викорінення (як і решти таких систем). Але, як показує досвід минулих років, такі заходи в Інтернеті неефективні. Однією з причин такої неефективності є те, що Інтернет мережа інтернаціональна, і тому той, кого в одній країні вважають злочинцем,
в іншій може бути добропорядним громадянином або навіть національним героєм. В одній країні автора комп'ютерного вірусу засуджують на довгі роки ув'язнення (наприклад, тривалий термін ув'язнення і штраф у 400 тис. доларів отримав у США розробник мережного хробака Melissa), а в іншій — випускають на волю (наприклад, автора відомого Чорнобильського вірусу — південнокорейського студента — не було засуджено, оскільки на нього не надходило скарг від співгромадян). Спроба загнати в підпілля будь-яких розробників засобів, які за деякими ознаками можна вважати шкідливими або навіть злочинними, найімовірніше, матиме своїм результатом лише ескалацію протидії за принципом кібертероризму.
Але головне полягає в іншому. Засоби розроблення, тестування і моделювання атак, як і більшість засобів, що використовують або могли б використати злочинці, також є корисними, а часто — навіть необхідними для тих, хто бореться за те, щоб програмне забезпечення було більш надійним, стійким до різних зовнішніх впливів і не мало вразливостей (розробників програмного забезпечення, тестувальників, експертів із комп'ютерної безпеки, адміністраторів). Іще раз наголошуємо — зброя небезпечна завжди, але результат її застосування (або просто наявності) залежить від того, в чиїх вона руках. Найгірший варіант, який можна собі уявити, — це коли в руках злочинців є зброя, а у тих, хто від злочинців захищає, її немає.
Слід зауважити, що останнім часом у країнах Європи впроваджують зміни до законодавства, які мають посилити відповідальність користувачів комп'ютерних систем. Зокрема, протиправним вважається не лише застосування небезпечних програмних засобів, а й наявність їх на комп'ютері користувача. Перш ніж застосовувати такі програмні засоби (до них належать засоби, розглянуті у цьому розділі та різні мережні сканери, про які йтиметься у розділі 18), потрібно ретельно ознайомитись із законодавством, а також із правилами та обмеженнями, що діють у конкретній інформаційно-комунікаційній системі (корпоративній мережі, мережі провайдера Інтернету).
Висновки
1. Класифікацію шкідливого програмного забезпечення здійснюють за різними ознаками; найважливішими серед них є такі:
♦ спосіб розповсюдження: яким чином засіб потрапляє на комп'ютер і домагається
своєї активізації;
♦ яка мета функціонування засобу, тобто які саме шкідливі дії він здійснює.
2. За механізмами розповсюдження можна виокремити такі класи шкідливого програмного забезпечення:
класичні комп'ютерні віруси;
мережні хробаки;
«троянські коні»;
спеціальні засоби — інструменти зловмисників.
3. Програми або окремі їх функції, які протягом тривалого часу функціонують у комп'ютерній системі, приховуючи своє існування від користувача, називають програмними закладками. Програмні закладки можуть бути впроваджені вірусом, «троянським конем», мережним хробаком або безпосередньо користувачем-зловмисником. В окремих випадках програмні закладки впроваджують адміністратори для виявлення злочинної діяльності користувачів або для керування комп'ютерами користувачів.
4. Типові шкідливі функції програмних закладок:
перехоплення і передавання інформації (перехоплювачі паролів, шпигунські програми);
порушення функціонування систем («логічні бомби»: знищення інформації, зловмисна модифікація інформації, блокування системи);
♦ модифікація програмного забезпечення, впровадження шкідливих функцій (люки, інтернет-клікери, проксі-сервери, дзвінки на платні ресурси, організація DoS- і DDoS-атак);
♦ психологічний тиск на користувача (реклама, лихі жарти і містифікації).
Впровадження програмних закладок віддаленого керування може бути здійснено спеціалізованими мережними хробаками. У результаті їхньої діяльності формується мережа комп'ютерів, на яких впроваджена певна утиліта віддаленого керування — так званий бот. Мережу, якою централізовано керує зловмисник, називають ботнетом (мережа ботів). Керування може здійснюватися через IRC-канал, веб-сайт, на якому зловмисник розміщує команди для заражених машин, або навіть через спеціальну Р2Р-мережу.
Класичні комп'ютерні віруси — один із найпоширеніших різновидів шкідливого програмного забезпечення. Для них є характерним, по-перше, здатність самостійно відтворюватися, тобто розмножуватися, а по-друге, спосіб, у який вірус потрапляє до системи і примушує користувача себе запустити. Вірус використовує в ролі носія інший програмний код, який він модифікує таким чином, щоб впровадити в нього свою копію. У результаті замість необхідного користувачу програмного коду починає виконуватися код вірусу.
Основні технології виявлення вірусів (та інших шкідливих програм):
♦ пошук сигнатур (характерних ознак відомих вірусів) у файлах, службових структурах даних файлової системи і в оперативній пам'яті комп'ютера;
♦ евристичний аналіз, коли впровадження шкідливого коду визначається за наявністю підозрілих операцій;
♦ контроль незмінності об'єктів, які з найбільшою ймовірністю можуть бути атаковані вірусами.
Програмні засоби, що дістали назву мережних хробаків, здатні самостійно, без втручання користувача, розповсюджуватися у комп'ютерній мережі, передаючи свій програмний код на інші комп'ютери і запускаючи його. Як правило, мережні хробаки, як і комп'ютерні віруси, здатні розмножуватися.
9. Головною ознакою, за якою розрізняють типи мережних хробаків, є спосіб їх розповсюдження — яким чином хробак передає свою копію на віддалені комп'ютери. Решта ознак — це способи запуску копії хробака на комп'ютері, методи його впровадження в систему та характеристики, притаманні іншим типам шкідливого програмного забезпечення (вірусам і «троянським коням») — поліморфізм, прихованість тощо.
10. Програми, які дістали назву «троянські коні», привертають до себе увагу користувачів своїм привабливим зовнішнім виглядом, що змушує їх запустити таку програму. Але ці програми містять у собі шкідливі функції, а дуже часто — руйнівні. Класичний «троянський кінь» не містить у собі функцій доставляння програми на комп'ютер-жертву.
11. Є небезпечні програмні засоби, які використовують цілком свідомо (тому вони ніяк не приховують своєї присутності в системі). До таких засобів належать засоби підготовки та здійснення атак, які полюбляють застосовувати порушники, а також сервісні та службові програми, які у разі їх некомпетентного використання здатні завдати значної шкоди системі.
Контрольні запитання та завдання
За якими головними ознаками доцільно класифікувати шкідливе програмне забезпечення?
Які класи шкідливого програмного забезпечення можна виділити за механізмами їх розповсюдження?
Що таке програмні закладки? Наведіть класифікацію програмних закладок.
Яким чином може здійснюватися керування ботнетом?
Які головні ознаки мають комп'ютерні віруси?
Наведіть класифікацію комп'ютерних вірусів.
У чому полягає особлива небезпека завантажувальних (бутових) вірусів?
Назвіть основні технології виявлення комп'ютерних вірусів. Які переваги й недоліки має кожна з цих технологій?
Які головні ознаки мережних хробаків, що вирізняють їх з-поміж інших шкідливих програм?
За якими ознаками класифікують мережних хробаків?
Які функції реалізовував (або намагався реалізувати) хробак Морріса?
Назвіть стратегії проникнення на віддалені комп'ютери, які реалізовував хробак Морріса.
Які програмні засоби дістали назву «троянські коні»? Наведіть їх класифікацію.
Які програми можуть належати до спеціальних хакерських утиліт?
Частина III
Нормативні документи
з оцінювання захищеності
інформації
Розділ 7
Розвиток стандартів безпеки
Призначення стандартів інформаційної безпеки
Стандарти, орієнтовані на застосування військовими та спецслужбами
Оцінювання адекватності засобів захисту
Концепція профілю захисту
Європейські критерії безпеки інформаційних технологій
Федеральні критерії безпеки інформаційних технологій США