ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Несанкціонований доступ до терміналів серверів з операційними системами сімейства UNIX. На прикладі octopus.stu.lipetsk.ru
         

     

    Інформатика, програмування

    Міністерство освіти російської федерації

    ЛИПЕЦЬКА ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

    Кафедра АСОІУ

    Індивідуальне домашнє завдання з дисципліни «Операційні системи»


    «Несанкціонований доступ до терміналів серверів з операційними системами сімейства UNIX. На прикладі octopus.stu.lipetsk.ru »

    Виконав: Архипов Н.А.

    Група: АС-99-2

    Прийняв: Журавльова М. Г.

    Липецьк 2001

    Передмова

    План, що й казати, був чудовий: простий і ясний, краще не придумаєш. Недолік у нього був тільки один: було зовсім невідомо, як привести його у виконання.

    Л. Керролл. Аліса в країні чудес

    У цьому звіті ми спробуємо виявити «дірки» і «вади» локальноїкомп'ютерної мережі ЛДТУ (LSTU) в цілому і зокрема сервера для вивченняопераційних систем UNIX - octopus.lstu. Для цього ми розповімо проможливі спроби отримання доступу до терміналів серверів, у тому числі і зправами root'a, а так само спроба перевантажити сервер. Тут нерозглядається такий вид атаки як «Соціальна інженерія», оскільки нашазавдання - вивчення операційних систем, а не психології. Відразу попереджаю,що на практиці не використовувалося ніяких деструктивних дій (у томучислі перевантаження сервера), крім тих дій, які використовувалися тількидля вивчення мережі. Тому, ми ні якої відповідальності за використанняцього документа не несемо.

    Особливості безпеки комп'ютерних мереж


    Основною особливістю будь-якої мережевої системи є те, що їїкомпоненти розподілені в просторі, а зв'язок між ними здійснюєтьсяфізично, за допомогою мережевих з'єднань (коаксіальний кабель, вита пара,оптоволокно і т. п.), і програмно, за допомогою механізму повідомлень. Прицьому всі керуючі повідомлення і дані, що пересилаються між об'єктамирозподіленої обчислювальної системи, передаються з мережних з'єднань ввигляді пакетів обміну.
    До мережним системам, поряд зі звичайними (локальними) атаками,що здійснюються в межах однієї комп'ютерної системи, застосуємоспецифічний вид атак, обумовлений розподілу ресурсів іінформації в просторі так звані мережеві (або віддалені) атаки
    (remote або network attacks). Вони характеризуються, по-перше, тим, щозловмисник може знаходитися за тисячі кілометрів від атакується об'єкта,і, по-друге, тим, що нападу може піддаватися не конкретнийкомп'ютер, а інформація, що передається по мережевим з'єднанням. З розвиткомлокальних і глобальних мереж саме віддалені атаки стають лідируючимияк по кількості спроб, так і по успішності їх застосування, і,відповідно, забезпечення безпеки НД з точки зору протистояннямережевим атакам набуває першорядного значення.

    віддалені атаки на хост iNterNet

    Багато що наша Земля побачила, Але не бачила Такого скандалу!

    Б. Заходер. Географія всмятку

    Аналіз мережевого трафіку Internet
    У Internet базовими протоколами віддаленого доступу є TELNET і FTP
    (File Transfer Protocol). TELNET - це протокол віртуального терміналу
    (Вт), що дозволяє з віддалених хостів підключатися до серверів в Internetрежимі Вт FTP - протокол, призначений для передачі файлів міжвіддаленими хостами. Для отримання доступу до сервера за даними протоколівкористувачу необхідно пройти процедури ідентифікації і аутентифікації. Уякості інформації, що ідентифікує користувача, виступає його ім'я, адля аутентифікації використовується пароль. Особливістю протоколів FTP і
    TELNET є те, що паролі і ідентифікатори користувачів передаються помережі у відкритому, незашифрованому вигляді. Таким чином, необхідним ідостатньою умовою для одержання віддаленого доступу до хостам зпротоколів FTP і TELNET є ім'я та пароль користувача.
    Одним із способів отримання таких паролів і ідентифікаторів в Internetє аналіз мережевого трафіку. Цей аналіз здійснюється за допомогоюспеціальної програми-аналізатора пакетів (sniffer), перехоплює всіпакети, що передаються по сегменту мережі, і виділяє серед них ті, в якихпередаються ідентифікатор користувача та його пароль. Мережний аналізпротоколів FTP і TELNET показує, що TELNET розбиває пароль на символиі пересилає їх по одному, розміщуючи кожен символ пароля до відповідногопакет, a FTP, навпаки, пересилає пароль цілком в одному пакеті.
    Виникає питання: а чому б не зробити передачу ім'я користувача тапароля в зашифрованому вигляді? Мабуть, проблема в тому, що базові прикладніпротоколи сімейства TCP/IP розроблялися дуже давно, в період з кінця 60 --х до початку 80-х років, і з тих пір абсолютно не змінилися. При цьому крапказору на побудову глобальних мереж стала іншою. Інфраструктура Мережі та їїпротоколи розроблялися виходячи, в основному, з міркувань надійностізв'язку, але не з міркувань безпеки.
    Таким чином можливо відстежити мережний потік і виявити пакетищо містять необхідні дані (ім'я, пароль, і т.д.). Тому що в цьомудокументі розглядається тільки сервер ЛДТУ octopus.lstu, то япроаналізувавши мережу, прийшов до висновку, що сервер не завжди знаходиться вактивному стані. Таким чином, цей варіант атаки відпадає, та й щещоб постійно відстежувати трафік, необхідно, щоб весь цей час у мережізнаходився хоча б один комп'ютер, що неможливо через фінансовітруднощів.

    Перебір паролів в файлі/etc/passwd
    У ранніх версіях операційних системах сімейства UNIX зашифрованіпаролі (точніше їх хеш-копії) зберігалися у файлі/etc/passwd. У сучасних
    UNIX'ах паролі зберігаються в/etc/shadow. Зберігання зашифрованих паролів в
    / etc/passwd робить систему сервера octopus.lstu вразливою. Тутвикористовується хеш-функція Data Encryption Standard (DES 48/64 4K). Оскількидана шифровка працює тільки «в одну сторону», а перевірка автентичностіпароля полягає в тому, що при введенні пароля користувача, операційнасистема шифрує введену послідовність і порівнює її з рядком вфайлі/etc/passwd. Ось приклад запису паролів і імен користувачів в
    / etc/passwd:

    root: LyavHDdahFcwU: 0:1: Superuser: /:
    ...malysh: 7DnDkTMD9/wG2: 1007:25: Olga A. Bocharnikova, AS-98-
    1:/user/students/as98/malysh:

    Для перебору паролів ми використовуємо той же метод, що й операційнасистема: перебираю всі можливі комбінації букв латинського алфавіту
    (причому має значення велика буква або рядкова), цифр і спеціальнихзнаків. Тут можна використовувати як функції самої операційної системи,так і написати свою функцію шифрування. Але треба бути точно впевненим що заалгоритм використовується в даному випадку, інакше перебір не призведе ні до якихрезультатами. На комп'ютері octopus використовується алгоритм шифрування DES
    [48/64 4K]. Так як на octopus'e настільки кепські, за сьогоднішніми мірками,апаратні засоби (див. наступний пункт), то ні про яку перебір пароля неможе йти і мови. Тим більше, навіть на більш швидких машинах (Pentium III -
    650MHz) розшифровка зайняла приблизно 30 діб (!!!). Та і сервер не всічас знаходиться в робочому стані, як уже зазначалося вище. У звітідодається частина програми, для розшифровки паролів файлу/etc/passwd.

    Deny of Service (DoS) атака.

    Дослівно Deny of Service перекладається як «відмова в обслуговуванні». Цеозначає наприклад, що операційна система не може обслужити запиткористувача або іншої системи.

    Розглянемо порушення працездатності хосту в мережі при використанніспрямованого шторму хибних TCP-запитів на створення з'єднання або припереповнення черги запитів. З розглянутої в попередньому пункті схемистворення TCP-з'єднання випливає, що на кожен отриманий TCP-запит (TCP
    SYN) операційна система повинна згенерувати початкове значенняідентифікатора ISN і відіслати його на запитав хост. Але так як в
    Internet (стандарту IPv4) не передбачений контроль за IP-адресоювідправника повідомлення, то простежити справжній маршрут, пройдений IP -пакетом, неможливо і, отже, у кінцевих абонентів мережі немає способуобмежити число запитів, що приймаються в одиницю часу від одного хоста.
    Тому можливе здійснення типової віддаленої атаки «відмова вобслуговуванні », яка полягатиме в передачі на об'єкт атаки якможна більшого числа хибних TCP-запитів на створення з'єднання від іменібудь-якого хоста в мережі (спрямований шторм запитів TCP SYN, схема якогонаведена на малюнку).

    При цьому атакують мережева ОС в залежності від обчислювальної потужностікомп'ютера або перестає реагувати на легальні запити на підключення
    (відмова в обслуговуванні), або, в гіршому випадку, практично зависає. Цевідбувається тому, що система повинна, по-перше, зберегти в пам'ятіотриману в неправдивих повідомлень інформацію і, по-друге, виробити івідіслати відповідь на кожен запит. Таким чином, «з'їдає» всі ресурсисистеми: переповнюється чергу запитів, і ОС змушена займатися тількиїх обробкою. Ефективність даного впливу тим вища, чим більшепропускна здатність каналу між атакуючим і його метою, і тим менша, ніжбільше обчислювальна потужність атакується комп'ютера (число ішвидкодія процесорів, обсяг оперативної пам'яті і т.п.).
    Таку атаку можна було передбачити ще років двадцять тому, коли з'явилосясімейство протоколів TCP/IP: її корені знаходяться в самій інфраструктурі мережі
    Internet, в її базових протоколах - IP і TCP. Але яким же було нашездивування, коли з'ясувалося, що на інформаційному. WWW-сервері CERT
    (Computer Emergency Respone Team) перша згадка про віддаленийвпливі такого роду датоване тільки 19 вересня 1996 року! Там цяатака мала назву «TCP SYN Flooding and IP Spoofing Attacks»
    ( «Повінь» TCP-запитами з помилкових IP-адрес). Інший різновидатаки «відмова в обслуговуванні» полягає в передачі на атакується хосткількох десятків (сотень) запитів TCP SYN у секунду (спрямований міні -шторм TCP-запитів) на підключення до сервера, що може призвести дотимчасовому (до 10 хвилин) переповнення черги запитів на сервері (див.атаку К. Мітника). Це відбувається через те, що деякі мережні ОСобробляють тільки перші кілька запитів на підключення, а рештаігнорують, Таким чином, отримавши N запитів на підключення, ОС сервераставить їх у чергу і генерує відповідно N відповідей. Потім протягомпевного проміжку часу (тайм-аут <10 хвилин) сервер будечекати повідомлення від передбачуваного клієнта, щоб завершити handshakeі підтвердити створення віртуального каналу із сервером. Якщо атакуючийнадішле таку кількість запитів на підключення, яке дорівнюємаксимальному числу одночасно оброблюваних сервером повідомлень, то впротягом тайм-ауту інші запити будуть ігноруватися і встановити зв'язокіз сервером не вдасться.
    Ми провели ряд експериментів зі спрямованим штормом і спрямованиммініштормом запитів на різних по обчислювальних потужностей комп'ютерах зрізними операційними системами.
    Тестування спрямованим штормом запитів TCP SYN, що проводиться нарізних мережевих ОС в експериментальних 10-мегабітних сегментах мережі, далонаступні результати: всі описані далі атаки здійснювалися заметодикою. Підготовлявся TCP-запит, який за допомогоюспеціально розробленої власної програми в циклі передавався в мережу звідповідними затримками (аж до нульової) між запитами. При цьомуциклічно змінювались такі параметри запиту, як порт відправника ізначення 32-о ідентифікатора SYN. IP-адреса відправника запиту бувобраний так, щоб, по-перше, цей хост в даний момент не був активний вмережі і, по-друге, щоб відповідний маршрутизатор, у чиїй зонівідповідальності знаходиться даний хост, не надсилав повідомлення Host
    Unreachable (Хост недоступний). В іншому випадку хост, від імені (з IP -адреса) якого посилався запит TCP SYN, отримавши «несподіваний» відповідь TCP
    АСК від атакується сервера, перешле на нього пакет TCP RST, закриваючи в такийчином з'єднання.
    При передачі по каналу зв'язку максимально можливого числа TCP-запитів іпри знаходженні кракерами в одному сегменті з об'єктом атаки атакується системивели себе в такий спосіб: ОС Windows 95, встановлена на 486DX2-66 з 8
    Мб ОЗУ, «завмирала» і переставала реагувати на будь-які зовнішні впливи
    (зокрема, натискання на клавіатуру); ОС Linux 2.0.0 на 486DX4-133 з 8 Мб
    ОЗУ також практично не функціонувала, обробляючи одне натискання наклавіатурі приблизно 30 секунд. У результаті до цих хостам неможливо булоотримати не тільки віддалений, але і локальний доступ.
    Не менш цікавим був поведінка атакованих систем після зняттявпливу: ОС Windows 95 практично відразу ж після припинення атакипочала нормально функціонувати; в ОС Linux 2.0.0 з 8 Мб оперативної пам'яті, мабуть,переповнився буфер, і більше півгодини система не функціонувала ні длявидалених, ні для локальних користувачів, а займалася лише передачеювідповідей на отримані раніше запити. CyberGuard відразу ж після зняттявпливу став доступним для віддаленого доступу.
    Якщо кракерами знаходився в суміжних сегментах з об'єктом, то під час атаки ОС
    Windows 95 на Pentium 100 з 16 Мб ОЗУ обробляла кожне натискання зклавіатури приблизно секунду, ОС Linux 2.0.0 на Pentium 100 з 16 Мб ОЗУпрактично «повисала» - одне натискання за 30 секунд, зате після зняттявпливу нормальна робота поновлювалася.
    Не треба обманювати себе, вважаючи, що ОС Windows 95 показала себе з кращогосторони. Такий результат пояснюється наступним: Windows 95 - операційнасистема, яка не має FTP-сервера, а отже, їй не потрібно булозберігати в пам'яті параметри переданого TCP-запиту на підключення доцього сервера і чекати закінчення handshake.

    Таким чином, з огляду на апаратні засоби сервера octopus.lstu
    (Olivetti 80286) можна легко здійснити на нього DoS атаку. Навіть якщолокальна мережа буде завантажена. Можна припустити, що й інші серверауніверситету можуть бути «знерухомлені» в такий спосіб. Наприклад серверкафедри прикладної математики: IBM 486DX66 16RAM. За апаратної частинисервери кафедри АСУ (тут не мається на увазі octopus.lstu) більш стійкі до
    DoS атаки.

    Перевищення максимально можливого розміру IP-пакета, або Ping Death
    У максимальний розмір IP-пакета (65 535 байт) включаються довжина IP-заголовка і довжина нуля даних у IP-пакеті. Так як мінімальний розмір IP-заголовка -
    20 байт (максимальний - 60), то відповідно розмір даних, переданих в одному IP-пакеті, не може перевищувати 65 535 - 20 = 65 515 байт. А що буде, якщо перевищити це число? Тестувати свої програми на граничних критичних значеннях-стандартний для будь-якого програміста хід. Подібні тести дозволяють виявити такі неприємні помилки, як різноманітні переповнення (буфера, стека, змінної і т. д.). Але повернемося до IP. В принципі ніщо не заважає атакуючому сформувати набір фрагментів, які після зборки перевищать максимально можливий розмір IP-пакета. Власне в цій фразі і сформульована основна ідея даної атаки.

    Отже, 18 грудня 2000 року на інформаційному сервері СЕКТИ з'явилися повідомлення про те, що більшість мережевих операційних систем, що підтримують протоколи TCP/IP, володіють наступною вразливістю: при передачі на них IP-пакета довжиною, що перевищує максимально допустиме значення, в цих ОС переповнюється буфер або змінна, в результаті система «зависає» або перезавантажується, тобто в наявності відмова в обслуговуванні. Був наведений і список потенційно небезпечних платформ:
    • Berkeley Software Design, Inc. (BSD);
    • Computer Associates, Intl. (products for NCR);
    • Cray Research;
    • Digital Equipment Corporation;
    • FreeBSD, Inc.; 'Hewlett-Packard Company;
    • IBM Corporation;
    • Linux Systems;
    • NEC Corporation;
    • Open Software Foundation (OSF);
    • The Santa Cruz Operation, Inc. (SCO);
    • Sun Microsystems, Inc.
    Ми з подивом прочитали цей перелік операційних систем на різнихплатформах, а потім взялися за експерименти. Наше найглибше здивуваннявикликав той факт, що елементарну помилку переповнення буфера в модулі IPядра ОС за майже 20 років активного функціонування протоколу IPрозробники сьогоднішніх систем до сих пір не помічали. Тому мидозволили собі не повірити настільки поважної організації, як CERT. Але першніж почати експерименти, було вирішено подивитися за вказаною в CERT посиланням
    (http://www.sophist.demon.co.uk/ping) на WWW-сервер, де експертамипроводилися подібні дослідження на різних ОС. На WWW-серверіпропонувалося реалізувати такий вплив наступним чином: необхідновиконати на робочій станції з ОС Windows 95 або Windows NT наступнукоманду: ping-l 65527 victim.destination.IP.address (по цій команді атакаі отримала свою назву - Ping Death).
    Так як звичайний розмір IP-заголовка складає 20 байт, а розмір 1СМР -заголовка - 8 байт, то подібний ICMP-пакет буде перевищувати максимальноможливий розмір IP-пакета на 20 байт: 65 527 +20 +8-65 535 = 20.
    Грунтуючись на наведеному розрахунку, ці «експерти» декларували, щозвичайною командою ping можна порушити працездатність практично будь-якиймережевої ОС. На завершення пропонувалася наступна таблиця тестуваннярізних операційних систем

    | Операційна система | Версія ПЗ | Симптоми |
    | Solaris (x86) | 2.4, 2.5, 2.5.1 | Перезавантаження |
    | Minix | 1.7.4, v2.0 і інші | Збій |
    | HP3000 MPE/iX | 4.0, 5.0, 5.5 | Скидання системи |
    | Convex SPP-UX | Усі версії | Збій |
    | Apple Mac | MacOs 7.x.x | Збій |
    | Windows 3.11 with |? | Змішані звіти |
    | Trumpet winsock | | |
    | Novell Netware | 3.x | Змішані звіти |
    | Windows 95 | Усі версії | Збій |
    | AIX | 3 і 4 | Скидання системи |
    | Linux | 2.0.23 | Спонтанна перезавантаження |
    | | | Або зависання (kernel |
    | | | Panic) |
    | DEC UNIX/OSF1 | 2.0 і вище | зависання (kernel |
    | | | Panic) |
    | Open VMS for AXP | Різні | Змішані звіти |
    | HP-UX | 9.0 по 10.20 | Збій, перезавантаження, |
    | | | Зависання. |
    | Windows NT | 3.5.1 | Змішані результати |
    | Irix | 5.3 | зависання (kernel |
    | | | Panic) |
    | Windows NT | 4 | Збій |
    | SCO Openserver | 4.2, 5.0.x | Вразливою |
    | DEC TOPS-20, TOPS-10 | Усі | Помилки |
    | Digital Firewall |? | Вразливою |
    | AltaVista Firewall for |? | Вразливою |
    | UNIX | | |

    (тут вона приводиться в скороченні), на які має ця віддалена атаканібито виробила необхідний ефект. Отже, ми почали тестування і, чеснокажучи, абсолютно не здивувалися, коли досліджувані ОС - IRIX, AIX, VMS,
    SunOs, FreeBSD, Linux, Windows NT 4.0, навіть Windows 95 і Windows for
    WorkGroups 3.11-абсолютно не реагували на подібний некоректний запит,продовжуючи нормально функціонувати. Тоді були зроблені спеціальніпошуки операційної системи, яку б дійсно вивела з ладудана атака. Нею виявилася Windows 3.11 з WinQVT - ця ОС дійсно
    «Зависла».
    Цим «експертам», яким настільки довіряють CERT і С1АС, ми надіслали запит,де попросили прояснити ситуацію, що виникла, а також уточнити відомості звищенаведеної таблиці. У отриманій нами відповіді говорилося, що успіхданої атаки залежить від багатьох факторів, а саме: програмного таапаратного забезпечення, встановленого на комп'ютері, і, найголовніше, відфази Місяця. Як кажуть, без коментарів. Для повноти картини ми хотілиб привести опис exploit, створеного для Windows NT 4.0, завданняякого, використовуючи ping, «завісити» власний комп'ютер (!). Спочаткупропонувалося запустити Web Browser, потім-taskmgr (Task Manager): так Ping
    Death нібито краще працює (ще не вистачає шаманського бубна!). І нарешті,було потрібно запустити 18 ping-процесів (чому не 100?). Якщо ви думаєте,що після всього цього ваша ОС негайно «зависне», то помиляєтеся! Укоментарях до exploit до одержання ефекту пропонувалося чекати приблизно 10хвилин, а може бути, трохи більше або трохи менше.
    Можна зробити висновок, що побоювання з приводу даного впливу ні на чомуне засновані, і нам залишається тільки назвати цю атаку черговийпрограмістської байкою і зарахувати її до розряду практичнонездійсненних.

    причини успіху ВИДАЛЕННЯ АТАК

    «Те, що винайдено однією людиною, може бути зрозуміле іншим», - сказав Холмі.

    А. Конан доїв. Танцюючі чоловічки

    (Використання нестійких алгоритмів ідентифікації

    На жаль, взаємодія об'єктів з віртуального каналу врозподіленої НД не є панацеєю від усіх проблем, пов'язаних зідентифікацією об'єктів РВС. ВК - необхідна, але не достатня умовабезпечної взаємодії. Надзвичайно важливим у цьому випадку стаєвибір алгоритму ідентифікації при створенні віртуального каналу. Основневимога до цих алгоритмами, полягає в наступному: перехопленняключової інформації, якою обмінюються об'єкти РВС при створенні ВК, неповинен дозволити атакуючому отримати підсумкові ідентифікатори каналу іоб'єктів. Однак у базових алгоритмах ідентифікації, що використовуються пристворення ВК в більшості існуючих мережевих ОС, ця вимогапрактично не враховується.

    (Відсутність контролю за віртуальними каналами зв'язку

    Об'єкти розподіленої НД, що взаємодіють по віртуальних каналах,можуть піддаватися типовий атаці «відмова в обслуговуванні». Особливість цьоговпливу полягає в тому, що, діючи абсолютно легальними засобамисистеми, можна віддалено домогтися порушення її працездатності. У чомупричина успіху даної атаки? У відсутності необхідного контролю надз'єднанням. При цьому завдання контролю розпадається на два підзадачі:
    • контроль за створенням з'єднання;
    • контроль за використанням з'єднання.

    Якщо шляхи вирішення другого завдання зрозумілі - зазвичай підключення розриваєтьсяпо тайм-ауту, визначеному системою, - так зроблено у всіх відомихмережевих ОС (однак тут виникає серйозна проблема вибору конкретногозначення тайм-ауту), то контроль за створенням ВК досить складний: всистемі, де відсутня статична ключова інформація про всі їїоб'єктах, неможливо відокремити помилкові запити на створення з'єднання відсправжніх. Очевидно також, що якщо один суб'єкт мережевої взаємодіїбуде мати можливість анонімно займати необмежене число каналівзв'язку з віддаленим об'єктом, то подібна система може бути повністюпаралізована даним суб'єктом. Таким чином, якщо будь-який об'єкт врозподіленої системі здатний анонімно відправити повідомлення від імені іншогооб'єкта (наприклад, в Internet маршрутизатори не перевіряють IP-адресавідправника), то в подібній розподіленої ВС практично неможливийконтроль за створенням віртуальних з'єднань. Тому основна причинатипової загрози «відмова в обслуговуванні» - це відсутність прийнятного рішеннязавдання контролю за маршрутом повідомлень.

    (Відсутність можливості контролювати маршрут повідомлень
    Якщо у РВС не передбачити контролю за маршрутом повідомлення, то адресавідправника повідомлення виявляється нічим не підтверджена. Таким чином, усистемі буде існувати можливість роботи від імені будь-якого об'єкта шляхомвказівки в заголовку повідомлення чужого адреси відправника (IP Spoofing). Уподібної РВС важко визначити, звідки насправді прийшлоповідомлення, а отже - обчислити координати атакуючого (в Internetнеможливо знайти ініціатора односпрямованої віддаленої атаки).

    (Відсутність повної інформації про об'єкти РВС

    У розподіленої системи з розгалуженою структурою, що складається звеликої кількості об'єктів, може виникнути ситуація, коли для доступу довизначеному хосту у суб'єкта взаємодії не виявиться необхідноїінформації, тобто адреси даного об'єкта. Очевидно, що в системіподібного типу існує потенційна небезпека занесення помилкового об'єктата видачі одного об'єкта за одною шляхом передачі помилкового відповіді назапит.

    (Відсутність криптозахисту повідомлень

    У розподілених нд зв'язок між об'єктами системи здійснюється завіртуальних каналах зв'язку, а отже, хакер має принциповуможливість прослухати канал, одержавши несанкціонований доступ доінформації, якою обмінюються по мережі се абоненти. Якщо ця інформаціяне зашифровано, то виникає загроза атаки типу «аналіз мережевого трафіку».

    (Відсутність виділеного каналу зв'язку між об'єктами мережі Internet

    Глобальна мережа не може бути побудована за принципом прямого зв'язку міжоб'єктами, оскільки для кожного об'єкта неможливо забезпечити ви діленийканал зв'язку з будь-яким іншим об'єктом. Тому в Internet зв'язокздійснюється через ланцюжок маршрутизаторів, а отже, повідомлення,проходячи через велику кількість проміжних підмереж, може бутиперехоплено. Також до Internet підключено велику кількість локальних Ethernet -мереж, що використовують топологію «загальна шина»; в мережах з такоютопологією нескладно програмно здійснювати перехоплення повідомлень.

    (Недостатні ідентифікація і автентифікація

    В базових протоколах обміну ідентифікація і автентифікація об'єктівпрактично відсутні. Так, наприклад, у прикладних протоколах. FTP,
    TELNET, РОРЗ імена і паролі користувачів передаються по мережі у виглядівідкритих незашифрованих повідомлень.

    (Використання нестійких алгоритмів ідентифікації об'єктів при створеннівіртуального TCP-з'єднання

    Як уже підкреслювалося, протокол TCP є єдиним базовимпротоколом транспортного рівня, до функцій якого закладена захистз'єднання. Проте використання найпростішого алгоритму ідентифікаціїоб'єктів при створенні віртуального TCP-каналу, особливо за умовизастосування в мережевих ОС найпростіших времязавісімих законів створення TCP -ідентифікаторів (ISN), зводить нанівець усі спроби забезпечення ідентифікаціїканалу і об'єктів при їх взаємодії по протоколу TCP.


    (Відсутність криптозахисту повідомлень

    В існуючих базових протоколах сімейства TCP/IP, що забезпечуютьвзаємодія на мережному і транспортному рівнях, не передбаченаможливість шифрування повідомлень, хоча очевидно, що додати її до протоколу
    TCP не становило жодних проблем. Розробники вирішили перекласти завдання криптозахистуна протоколи більш високих рівнів, наприклад прикладного рівня. При цьомубазові протоколи прикладного рівня (FTP, TELNET, HTTP та ін) також непередбачали ніякого шифрування повідомлень. Тільки не так давно з'явивсязагальнодоступний прикладної протокол SSL, вбудований в Netscape Navigator,що дозволяє як надійно зашифрувати повідомлення, так і підтвердити йогосправжність. На закінчення хотілося б зауважити, що всі описані вищепричини, по яких можлива успішна реалізація загроз безпеки РВС,роблять мережу Internet небезпечною. А отже, всі користувачі мережіможуть бути атаковані в будь-який момент.

    Підіб'ємо підсумки.
    З огляду на все вищесказане, я думаю, що студентам кафедри АСОІУ вжезараз не представляється ніякої складності для несанкціонованого доступудо терміналів серверів з правами адміністраторів (причому це ненеобгрунтоване висловлювання). Інше питання - доцільності всього цього.
    Я думаю що не варто перевіряти на все вищесказане на практиці в цілях своєїж безпеки.

    В цілому, обчислювальна мережа університету адмініструється вельминепогано, треба віддати належне системним адміністраторам. На серверах стоятьостанні версії операційних систем. Однак на chuck.stu.lipetsk.ru чомусьто у звичайних користувачів немає прав на компілювання Сі програм. Чому?
    Може це і є слабка ланка в адмініструванні, чи це ще одинобережність адміністратора? Хоча на tomcat.am.lstu звичайним смертнимдозволено ...

    Взагалі-то злом octopus.stu.lipetsk.ru було б неповагою до своєї жкафедри. Адже та захист яка там присутня направлена не для того,щоб запобігти проникненню зловмисника, а для елементарного захистувід недосвідчених користувачів.

    ДОДАТОК.
    З метою безпеки, наводимо тільки фрагменти програми. Файл john.c
    # include
    # include
    # include
    # include

    # include "arch.h"
    # include "misc.h"
    # include "params.h"
    # include "path.h"
    # include "memory.h"
    # include "list.h"
    # include "tty.h"
    # include "signals.h"
    # include "idle.h"
    # include "common.h"
    # include "formats.h"
    # include "loader.h"
    # include "logger.h"
    # include "status.h"
    # include "options.h"
    # include "config.h"
    # include "bench.h"
    # include "charset.h"
    # include "single.h"
    # include "wordlist.h"
    # include "inc.h"
    # include "external.h"
    # include "batch.h"

    # if CPU_DETECTextern int CPU_detect ();
    # endif

    extern struct fmt_main fmt_DES, fmt_BSDI, fmt_MD5, fmt_BF;extern struct fmt_main fmt_AFS, fmt_LM;

    extern int unshadow (int argc, char ** argv);extern int unafs (int argc, char ** argv);extern int unique (int argc, char ** argv);

    static struct db_main database;static struct fmt_main dummy_format;

    static void john_register_one (struct fmt_main * format)
    (If (options.format) if (strcmp (options.format, format-> params.label)) return;

    fmt_register (format);
    )

    static void john_register_all ()
    (If (options.format) strlwr (options.format);

    john_register_one (& fmt_DES); john_register_one (& fmt_BSDI); john_register_one (& fmt_MD5); john_register_one (& fmt_BF); john_register_one (& fmt_AFS); john_register_one (& fmt_LM) ;

    if (! fmt_list) (fprintf (stderr, "Unknown ciphertext format name requestedn"); error ();

    )
    )

    static void john_load ()
    (Struct list_entry * current;

    umask (077);

    if (options.flags & FLG_EXTERNAL_CHK) ext_init (options.external);

    if (options . flags & FLG_MAKECHARS_CHK) (options.loader.flags | = DB_CRACKED; ldr_init_database (& database, & options.loader);

    if (options.flags & FLG_PASSWD) (ldr_show_pot_file (& database, LOG_NAME);

    database.options-> flags | = DB_PLAINTEXTS; if ((current = options.passwd-> head)) do (ldr_show_pw_file (& database, current-> data);

    ) while (( current = current-> next ));

    ) else (database.options-> flags | = DB_PLAINTEXTS; ldr_show_pot_file (& database, LOG_NAME);

    )

    return;

    )

    if (options.flags & FLG_STDOUT) (ldr_init_database (& database, & options.loader); database.format = & dummy_format; memset (& dummy_format, 0, sizeof ( dummy_format)); dummy_format.params.plaintext_length = options.length; dummy_format.params.flags = FMT_CASE | FMT_8_BIT;

    )

    if (options.flags & FLG_PASSWD) (if ( options.flags & FLG_SHOW_CHK) (options.loader.flags | = DB_CRACKED; ldr_init_database (& database, & options.loader);

    ldr_show_pot_file (& database, LOG_NAME);

    if ((current = options.passwd-> head)) do (ldr_show_pw_file (& database, current-> data);

    ) while ((current = current-> next ));

    printf ( "% s% d password% s cracked,% d leftn", database.guess_count? "n": "", database.guess_count, database.guess_count! = 1? "s": "", database.password_count - database. guess_count);

    return;

    )

    if (options.flags & (FLG_SINGLE_CHK | FLG_BATCH_CHK)) options.loader.flags | = DB_WORDS; else if (mem_saving_level) options.loader.flags & = ~ DB_LOGIN; ldr_init_database (& database, & options.loader);

    if ((current = options.passwd-> head)) do (ldr_load_pw_file (& database, current - > data);

    ) while ((current = current-> next ));

    ldr_load_pot_file (& database, LOG_NAME);

    ldr_fix_database (& database);

    printf ( "Loaded% d password% s% s", database.password_count, database.password_count! = 1? "s": "", database.password_count? "": ", exiting .. . "); if (database.password_count> 1) (printf (" with "); printf (database.salt_count! = 1?"% d ":" no ", database.salt_count); printf (" different salts ") ;

    ) if (database.password_count) printf ( "(% s [% s]) n", database.format-> params.format_name, database.format-> params.algorithm_name); else putchar ( 'n');

    if ((options.flags & FLG_PWD_REQ) & &! database.salts) exit (0);

    )
    )

    static void john_init (int argc, char ** argv)
    (
    # if CPU_DETECT if (! CPU_detect ()) (
    # if CPU_REQ fprintf (stderr, "Sorry,% s is requiredn", CPU_NAME); error ();
    # endif

    )
    # endif

    path_init (argv); cfg_init (CFG_NAME); status_init (NULL, 1); opt_init (argc, argv);

    john_register_all (); common_init ();

    sig_init (idle_yield);

    john_load ();
    )

    static void john_run ()
    (If (options.flags & FLG_TEST_CHK) benchmark_all (); else if (options.flags & FLG_MAKECHARS_CHK) do_makechars (& database, options.charset); else if (options.flags & FLG_CRACKING_CHK) (if (! (Options.flags & FLG_STDOUT )) log_init (LOG_NAME); tty_init ();

    if (options.flags & FLG_SINGLE_CHK) do_single_crack (& database); else if (options.flags & FLG_WORDLIST_CHK) do_wordlist_crack (& database, options.wordlist,

    (options.flags & FLG_RULES)! = 0); else if (options.flags & FLG_INC_CHK) do_incremental_crack (& database, options.charset); else if (options.flags & FLG_EXTERNAL_CHK) do_external_crack (& database); else if (options.flags & FLG_BATCH_CHK) do_batch_crack (& database);

    status_print (); tty_done (); if (! (options.flags & FLG_STDOUT)) log_done ();

    )
    )

    static void john_done ()
    (Path_done ();

    check_abort ();
    )

    int main (int argc, char ** argv)
    (Char * name;

    # ifdef __DJGPP__ if (- argc 4) if (! Strcmp (strlwr (name) + strlen (name) - 4, ". Exe")) name [strlen (name ) - 4] = 0;
    # endif

    if (! strcmp (name, "john")) (john_init (argc, argv); john_run (); john_done ();

    return 0;

    )

    if (! strcmp (name, "unshadow")) return unshadow (argc, argv);

    if (! strcmp (name, "unafs") ) return unafs (argc, argv);

    if (! strcmp (name, "unique")) return unique (argc, argv);

    fprintf (stderr, "Sorry, I can't find myselfn "); return 1;
    )
    Файл des_bs.c
    # include

    # include "arch.h"
    # include "DES_std.h"
    # include "DES_bs.h"

    DES_bs_combined DES_bs_all;int DES_bs_mem_saving = 0;

    extern void DES_bs_body ();

    void DES_bs_init ()
    (Int index, bit;

    for (index = 0; index <0x300; index + +) (bit = DES_K_bits [index]; bit -= bit>> 3;

    DES_bs_all. Kp [index] = & DES_bs_all.K [55 - bit];

    )
    )

    void DES_bs_set_salt (ARCH_WORD salt)
    (Register int src, dst; register ARCH_WORD mask;

    mask = 1; for (dst = 0; dst <48; dst + +) (if (dst == 24) mask = 1;

    if (salt & mask) (if (dst <24) src = dst + 24; else src = dst - 24;

    ) else src = dst;

    DES_bs_all . E [dst] = & DES_bs_all.B [DES_E [src ]];

    DES_bs_all.E [dst + 48] = & DES_bs_all.B [DES_E [src] + 32];

    mask> 4;

    /* Swap L and R here instead of doing it one more time in DES_bs_crypt () */index ^ = 2;

    /* Calculate the number of one of the 16 data bits in raw [index] */shift = ((bit & 0xC)> shift) & 1;

    if (DES_bs_mem_saving)
    / * Memory saving: pack the bits into two words */out [bit>> 5] | = value (bit & 0x1F))) & 1) return 0;

    return 1;

    )

    mask = (ARCH_WORD) 1; L

    >; => 5 8

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status