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

     

     

     

     

     

         
     
    Безпека Linux. Віддалені атаки
         

     

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

    Безпека Linux. Віддалені атаки

    У цій статті переважає теорія про те, як щось влаштовано (хоча присутні і практичні поради). Вона більше орієнтована на адміністраторів (початківців).

    Я не буду описувати те, що пароль може бути просто підібраний або побачений на листочку, який ви забули на роботі. Паролі слід робити легкими для запам'ятовування, проте найбільш складними для підбору (використовувати цифри, букви різних регістрів і спецсимволи; довгою від 9 до 14 символів). Так само краще заборонити підключення за допомогою користувача root з віддаленого комп'ютера (файл etc/security)

    Default

    Не забувайте змінювати налаштування, які стоять за замовчуванням. Не слід залишати паролі 12345 на який-небудь сервіс. Непотрібні папки з веб-сервера (наприклад документи по ньому), слід видалити.

    Для отримання детальної інформації установки "за замовчуванням" краще дивитися в мануал використовуваного Вами ОП.

    DoS і DDoS

    Скажу чесно, що коли я вперше почув ці абревіатури, то подумав, що малася на увазі операційна система. Ні, це атаки на відмову в обслуговуванні. Дійсно великої шкоди вони не принесуть, однак сервер може перестати відповідати користувачам, звертається до нього. Атаки такі діють методом "в лоб". Комп'ютер відсилає багато пакетів на віддалений сервер, поки той не відправить всі свої ресурси на "розгрібання" такої атаки. Зазвичай в адресі "from:" вказують той же сервер, що і для одержувача. Таким чином організовується цикл, що і призводить до відмови в обслуговуванні.

    Сканування мною спеціально для цієї статті 100 порівняно великих сайтів показало, що 92 з них схильні "легкому" (досить навіть невеликого кол-ва комп'ютерів, а іноді навіть одного) Dos.

    Я також хочу згадати про те, що існує атака-smurf: комп'ютер надсилає запит (ping) на декілька великих серверів з підробленими адресою відправника (адреса жертви), після чого кожен комп'ютер відправляє відповідь жертві. Легко зрозуміти, що таким чином жертву дуже легко вивести з ладу. Програму для використання можу порадити nemesis.

    Особисто я раджу відключати служби echo, chargen і парочку інших служб. Для цього закомментіруйте несолько строк в etc/inetd.conf

    Бажано також поставити firewall і обмежити кількість можливих запитів з віддалених комп'ютерів.

    Протистояти декільком сотням комп'ютерів, засилали сервер практично неможливо (навіть при недавньої атаці novarg на www.microsoft.com останній не відповідав на запити)

    Sniffers

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

    На жаль (а для кого-то до щастя), багато служб передають інформацію в незашифрованому вигляді. Це відноситься до таких відомих і часто використовуваних речей, як telnet, http та ftp.

    Єдиним порятунком може бути комутатор, (існує ще концентратор) тому комутатор дозволяє відправити потрібну інформацію прямо на необхідний комп'ютер.

    Наводити приклади та опис сніффер я тут наводити не буду, тому що таких статей дуже багато (www.dago.org, www.xakep.ru та ін.)

    Buffer Overflow

    Ну це загальновідома помилка некомпетентності програмістів.

    Якщо звернутися до якоїсь змінної і ввести для неї дуже велике (для неї) значення, то відбудеться помилка і адреса повернення в стеку буде заміщений вказаною адресою. (для більш повного розуміння раджу вивчити пристрій ПК)

    Єдиним порятунком, якщо ви не встигли встановити заплатку, є постійний перегляд log файлів, які веде ваш сервер. Він запише туди, що були некоректні звернення до служби. У такому випадку службу краще зупинити до кращих часів (поява патча).

    etc/exports і etc/dfs/dfstab

    Використовується цей файл для зазначення того, який комп'ютер має право змонтувати собі віддалену файлову систему.

    У ранніх версіях використовувався файл etc/exports, в новіших - etc/dfs/dfstab.

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

    root @ localhost: mount hostname: file system (nfs for example) directory_he_need

    Прибрати можливість подібного злому можна заборонивши firewallом порт 2049. Слід так само відредагувати файл експорту так, щоб не всі комп'ютери мали право це зробити, а ті, що могли б, монтували б тільки необхідні їм дані (а не папку etc/passwd).

    Кому довіряти?

    Необхідно заборонити всіх хостам, крім зазначених підключатися до Вашої машині. Робиться це завдяки редагування файлів etc/hosts.allow і etc/hosts.deny

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

    Зробити йому це іноді може бути просто (підмінити refer при зверненні).

    Такий же обман може бути застосований до NFS і NIS.

    Краще уникати використання telnet і ftp, а користуватися сучасним ssh. Даний протокол краще захищений криптографічно і його процес ідентифікації залишить зловмисникові набагато менше шансів обдурити вас. NFS краще замінити AFS, а NIS використовувати як можна менше.

    Маршрутизатор, через який буде проходити весь трафік від інтернету повинен забороняти запити від імені тих комп'ютерів, які перебувають з сервером в одній локальній мережі (навіщо їм звертатися до сервера через інтернет?).

    Бажано поставити firewall.

    Тепер про те, як треба налаштувати firewall.

    а) По-перше, необхідно перевірити, чи включений tcpd (саме він працює з файлами hosts.allow і hosts.deny). Для цього розглянемо файл etc/inetd.conf. До кожного рядка, де вказується включення служби повинен стояти такий фрагмент:

    /usr/sbin/tcpd

    До речі, розповім докладніше про inetd. Цей демон запускає різні мережеві служби (telnet та ін) при запиті до них, він вказує до якого порту вони підключені і необхідний для роботи в мережі.

    Файл hosts.allow краще налаштувати так:

    All: 127.0.0.01

    All: комп'ютери, яким ви довіряєте.

    Файл hosts.deny настроюється аналогічно.

    У нову версію inet - xinet вже вбудований такий проверщік. Для роботи з ним краще почитайте документацію.

    На жаль, не всі служби запускаються через демон inetd. Однак вони підтримують запуск з tcpd. Розглянемо приклад на ssh. Для того, щоб вона запускалася з увімкненим tcpd необхідно запустити її configure з ключем-with-tcp-wrappers Залишилося тільки в hosts.allow (. deny) додати рядок:

    sshd: імена_компьютеров_которим_можно_доверять

    Що робити, якщо програмний продукт не підтримує tcpd? Ми ж під linux! А лінукс - синонім відкритого вихідного коду! Особисто я б не зміг написати необхідний код, якщо б не один книга. Наводжу лістинг з неї:

    // На початку заголовка програми необхідно розмістити:

    # ifdef USE LIBWRAP

    # include

    int allow_severity = LOG_NOTICE;

    int deny_severity = LOG_WARNING;

    # endif

    // У функції, яка управляє з'єднанням, додамо наступну

    // рядок при оголошенні змінної:

    # indef USE_LIBWRAP

    struct request_info request;

    # endif;

    // Після установки з'єднання, але перед виконанням будь-яких дій з даними:

    # ifdef USE_LIBWRAP

    request_init (& request, RQ_DAEMON, options.servername, RQ_file, local, 0);

    fromhost (& request);

    if (! hosts_access (& recuest)) (

    log (LOG_WARNING, "Connection from% s:% d REFUSED by libwrap",

    inet_ntoa (addr.sin_addr), ntohs (addr.sin_port ));

    log (log_debug, "See hosts_access (5) for detailes ");

    goto cleanup_local;

    )

    # endif;

    // особисто я розібрався з цим кодом, однак це зайняло багато часу,

    // сподіваюся це допоможе і вам. (кім. автора статті)

    б) Згадаймо вищеописану можливість злому завдяки dns. Нам необхідно виконувати зворотне перетворення по ip: спочатку tcpd перевірить ім'я комп'ютера за адресою, а потім адреса на ім'я комп'ютера. Якщо ip-результат не співпаде з ip, який був зазначений з самого початку - зловмисник не отримає доступу. Для такої перевірки необхідно скомпілювати tcpd з ключем-dparanoid (зазвичай він встановлений з замовчуванням, однак не можна сподіватися на default, треба бути точно впевненим).

    в) Необхідно захистити Ваш демон від DoS. Для цього необхідно завантажити програму, що обмежує кількість запитів в цієї служби.

    г) Згадаємо попередню статтю. Для заборони і traceroute ping можна використовувати вбудований набір правил ipchains.

    Рядок/sbin/ipchains-A input 0/0 echo-request-d ip.ip.ip.ip-p icmp-j DENY (я не пояснюю тут, що робить кожен параметр цієї команди, тому що набір правил ipchains достатньо великий, а прочитати його можна в мануалі по linux).

    д) Переходимо до безпосереднього опису налаштування firewall на основі ipchains.

    -)/sbin/ipchains-p input deny //заборона всіх вхідних пакетів

    -)/sbin/ipchains-a input-s 0/0 -d В. А. Ш. IP www-p tcp-j ACCEPT// дозволяє проходження пакетів на порт 80.

    Замість www може бути вказана інша// служба (ftp, ssh);

    -)/sbin/ipchains-a input-j deny-l// реєструємо те, що пакет був заблокований.

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

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.bugtraq.ru/

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

     

     

     

     

     

     

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