Всі напевно знають, що є дуже багато різних способів загрози безпеці. Їх дійсно достатньо, скільки їх дізнаєтеся прочитавши під палачами.
Всі посилання, що використовуються нижче, взяті для прикладу якщо вони кудись ведуть не туди до аффтора притензій не пред'являти
Так само стаття доступна за адресами: forxakep.ucoz.ru/publ/3-1-0-16
forum.netall.ru/index.php?showtopic=125182&st=0&p=1573116&#entry1573116
www.inattack.ru/article/402.html
Fishing (або Фішинг).
Дуже широке поняття. Сенс його в тому, щоб отримати від користувачів інформацію (паролі, номери кредитних карток тощо) або гроші. Цей прийом спрямований не на одного користувача, а на багатьох. Наприклад, листи нібито від служби технічної підтримки розсилаються всім відомим клієнтам якого-небудь банку. У листах зазвичай міститься прохання вислати пароль до облікового запису, нібито через проведення будь-яких технічних робіт. Незважаючи на те, що користувачів попереджають, що ніяку подібну інформацію від них ніхто з працівників не може вимагати, і ця інформація не повинна розголошуватися, завжди знаходяться ті, хто із задоволенням «дарує» свої номери, паролі та інше. Подібні листи, зазвичай дуже правдоподібно і грамотно складені, що, можливо, підкуповує довірливих користувачів. Потрібно обмовитися, що прийомів для фішингу є кілька, крім листів. Деякі з наведених нижче прийомів при правильному застосуванні підходять для фішингу (як правило, ми згадуємо про це при описі прийому).
Рекомендації: Пам'ятайте, що параноя - найкращий захист. Не довіряйте нічому підозрілому, нікому не давайте свої дані. Адміністраторам не потрібно знати Ваш пароль, якщо він призначений для доступу до їхнього сервера. Вони повністю керують сервером і можуть самі подивитися пароль або змінити його.
Соціальна інженерія
Не технічний, а психологічний прийом. Користуючись даними, отриманими при інвентаризації, зломщик може зателефонувати будь-якому користувачеві (наприклад, корпоративній мережі) від імені адміністратора і спробувати дізнатися у нього, наприклад, пароль. Це стає можливим, коли у великих мережах, користувачі не знають всіх працівників, і тим більше не завжди можуть точно впізнати їх по телефону. Крім цього, використовуються складні психологічні прийоми, тому шанс на успіх сильно зростає.
Рекомендації: ті ж самі. Якщо дійсно є необхідність, то повідомте потрібні дані особисто. Якщо ви записали пароль на папері, не залишайте його де потрапило і за можливості знищуйте, а не просто викидайте в смітник.
Віруси.
Найвідоміша простому користувачеві проблема. Суть у впровадженні шкідливої програми в комп'ютер користувача. Наслідки можуть бути різними і залежать від виду вірусу, яким заражено комп'ютер. Але в цілому - від викрадення інформації до розсилки спаму, організації DDoS атак, а так само отримання повного контролю над комп'ютером. Крім прикріпленого до листа файлу, віруси можуть потрапити в комп'ютер через деякі вразливості ОС, які описуються в нашій статті «Рейтинг вразливостей Windows». Вірусів існує величезна безліч, але все ж можливо їх класифікувати. Ми не хочемо винаходити заново велосипед, тому можна скористатися інформацією цієї сторінки school8.uriit.ru/people/av/class.html де наводиться класифікація вірусів з описом. Трохи більш детально ця тема розкривається тут fivt.krgtu.ru/kafedri/mo/site/ANTIVIRUS/pages/02.htm
Рекомендації: Користуйтеся антивірусним ПЗ. Не обмежуйтеся лише DrWEB або Kaspersky Anti-Virus (оскільки вони не перевіряють реєстр), використовуйте спеціалізовані антивіруси проти Malware, наприклад Ad-Aware, SpyBot, XSpy. А так само не відкривайте підозрілих вкладень і взагалі не відкривайте програм від невідомих відправників. Навіть якщо відправник Вам знайомий, все одно спочатку перевірте антивірусом. Тут як в медицині, легше уникнути, ніж потім вилікувати.
DoS (Denial of Service або Відмова від Обслуговування).
Хотілося сказати, що це скоріше не окрема атака, а результат атаки; використовується для виводу системи або окремих програм з ладу. Для цього зломщик особливим чином формує запит до будь-якої програми, після чого вона перестає функціонувати. Потрібен перезарвлення, щоб повернути робочий стан програми. Часто зустрічається думка, що DoS, це те ж саме, що і атака типу Flood і що взагалі потрібно з'єднати всі атаки, які призводять до відмови системи під загальною назвою DoS. Тут варто обмовитися, що:
- Общей терминологии нет, есть скорее негласные правила, по которым классифицируется атака, поэтому даже в рамках данной статьи мы приведем, в чем-то расхожую классификацию.
- Як ми вже сказали, до відмови від обслуговування може призвести не тільки Flood, але, наприклад і Buffer Overflow.
Тому, DoS можна охарактеризувати як результат атаки. Наприклад: «ефект відмови від обслуговування досягнуто застосуванням атаки типу Flood».
Flood (Флуд або Потік/Затоплення)
Цей тип досить спірний, почасти його можна віднести до DoS, але ми хотіли б виділити його окремо. З деякої кількості машин (у цьому випадку атака буде називатися DDoS Distributed Denial of Service. Розподілена атака на відмову від обслуговування), як правило «Зомбі» посилають жертві максимально можливу кількість запитів (наприклад, запити на з'єднання). Від цього жертва не встигає відповідати на кожен запит, і в результаті не відповідає на користувальницькі запити, тобто можна сказати, що перестає нормально функціонувати. Примітка: цей тип атаки можна назвати хуліганством, коли, наприклад, форуми заповнюють великою кількістю безглуздих повідомлень. Можна виділити такі типи Flood:
--SYN Flood - Затоплення атакуючого комп'ютера пакетами типу SYN. Як відомо, комп'ютер повинен на такий пакет відповісти пакетом типу SYN/ACK. Якщо пакунків SYN занадто багато, комп'ютер не встигає відповідати на кожен і не може приймати пакети від інших комп'ютерів.
--ICMP Flood або Ping Flood - Те саме, тільки пакетами ICMP. Система повинна відповісти на такий пакет, тим самим створюється велика кількість пакетів, які знижують продуктивність (пропускну здатність) каналу.
--Identification Flood (Ident Flood). Схожа на ICMP Flood, але відповідь на запит на порт 113 типу identd займає у системи більше часу, тому атака більш ефективна.
- DNS Flood - атака спрямована на DNS сервера. Їх наводняють DNS запити, на які сервер не встигає відповідати, таким чином, на Ваші запити він так само відповісти не зможе. Як наслідок, Ви не зможе відвідувати Інтернет сайти.
- DDoS DNS - Атака досить нова, і ми не зустрічали «усталеної» назви. По суті, цей прийом приблизно те ж саме, що і попередній, з тією лише різницею, що запити надходять з великої кількості машин (попередній тип цього не виключає). Адреса, за якою повинен відповісти DNS-сервер на ці запити, дорівнює адресу самого DNS сервера, тобто його не тільки наводяють запити DNS, але він же ще й відправляє їх собі ж. Таким чином, прийом більш ефективний, ніж попередній, але і більш складний в реалізації.
--Boink (Bonk, Teardrop) - Жертві надсилається величезна кількість сильно фрагментованих пакетів, але при цьому фрагменти великого розміру. Для кожного фрагментованого пакета виділяється спеціальний буфер, в який надалі будуть розміщені інші фрагменти, щоб потім скласти їх воєдино. Величезна кількість великих фрагментів переповнюють буфери і можуть спровокувати зависання або аварійну зупинку.
--Pong - те ж саме, що і будь-який інший з перерахованих вище видів, відмінність тільки в тому, що адреса відправника підроблена. Це дає зломщику деяку анонімність.
Рекомендації: для кожної ОЗ або маршрутизатора свої; вони, як правило, дані в технічній документації. Не нехтуйте ними, чітко обмежуйте кількість допустимих пакунків. На жаль, деякі види неможливо відобразити нічим, крім фізичного відключення. Правильно налаштовані міжмережеві екрани (або Брандмауери) часто є панацеєю.
Smurf (атака, спрямована на помилки реалізації TCP-IP протоколу)
Зараз цей вид атаки вважається екзотикою, проте раніше, коли TCP-IP протокол був досить новим, в ньому містилося деяка кількість помилок, які дозволяли, наприклад, підміняти IP адреси. Однак, цей тип атаки застосовується досі. Деякі фахівці виділяють TCP Smurf, UDP Smurf, ICMP Smurf. Звичайно, такий поділ базується на типі пакетів.
Рекомендації: комутатори CISCO надають гарний захист, як і багато інших, а також свіже ПЗ і міжмережеві екрани; необхідно блокувати широкомовні запити.
Ping-of-Death (или Jolt, SSPing)
Атака полягає в тому, що жертві надсилається фрагментований ICMP пакет, але розмір фрагмента дуже великий (64кБ). Старі версії ОС, наприклад Windows 95, повисають. Цю атаку можна здійснити за допомогою програми Shadow Security Scanner.
Рекомендації: найлегше оновити ОС, відмовившись від старої версії.
UDP Storm (UDP шторм)
Використовується в тому випадку, якщо на жертві відкрито як мінімум два UDP порту, кожен з яких відсилає відправнику яку-небудь відповідь. Наприклад, порт 37 з сервером time на запит надсилає поточну дату і час. Зломщик відправляє UDP пакет на один з портів жертви, але як відправник вказує адресу жертви і другий відкритий UDP порт жертви. Тоді порти починають нескінченно відповідати один одному, що знижує продуктивність. Шторм припиниться, як тільки один з пакетів пропаде (наприклад, через перевантаження ресурсів).
Рекомендації: за можливості виключити використання сервісів, які приймають UDP пакети, або відрізати їх від зовнішньої мережі міжмережевим екраном.
UDP Bomb
Зломник відправляє системі UDP пакет з некоректними полями службових даних. Дані можуть бути порушені як завгодно (наприклад, некоректна довжина полів, структура). Це може призвести до аварійного завершення.
Рекомендації: оновіть ПЗ.
Land
Жертві надсилається пакет на певний порт, але адреса відправника встановлюється та ж сама, що і жертви, а порт відправника дорівнює порту одержувача. (приклад: отримувач: 1.1.1.1 порт 111 відправник: 1.1.1.1 порт 111). Жертва намагається встановити з'єднання з собою, чому може відбутися повисання системи. Подібна атака також може бути на 100% ефективна проти деяких маршрутизаторів.
Mail Bombing («Поштова бомбардування»)
Якщо на атакуючому комп'ютері є поштовий сервер, то на нього надсилається величезна кількість поштових повідомлень з метою виведення його з ладу. З одного боку, це нагадує Flood, але з іншого боку, якщо повідомлення містять великі вкладення, які будуть перевірятися серверним антивірусом, то подібна перевірка безлічі вхідних вкладень може істотно знизити продуктивність або звести її нанівець. Крім того, такі повідомлення зберігаються на жорсткому диску сервера і можуть переповнити його, що може викликати DoS. Звичайно, зараз ця атака, швидше історія, але в деяких випадках все ж може бути використана.
Рекомендації: грамотне налаштування поштового сервера.
Sniffing (Сніффінг або прослуховування мережі)
У тому випадку, якщо замість комутаторів в мережі встановлені концентратори, отримані пакети розсилаються всім комп'ютерам в мережі, а далі вже комп'ютери визначають для них цей пакет чи ні. Якщо зломщик отримає доступ до комп'ютера, який включений в таку мережу, або отримає доступ до мережі безпосередньо, то вся інформація, що передається в переділах сегмента мережі, включаючи паролі, стане доступна. Зломщик просто поставить мережеву карту в режим прослуховування і буде приймати всі пакети незалежно від того, чи йому вони призначалися. Можна використовувати як консольні зниффери, наприклад TcpDump (вбудований в * NIX системах), WinDump (для Windows, але не вбудований), а так само з візуалізованим інтерфейсом, наприклад Iris.
Рекомендації: використовуйте комутатори замість концентраторів, шифруйте трафік.
IP Hijack (IP хайджек)
Якщо є фізичний доступ до мережі, то зломщик може «врізатися» в мережевий кабель і виступити в якості посередника при передачі пакетів, тим самим він буде слухати весь трафік між двома комп'ютерами. Дуже незручний спосіб, який часто себе не виправдовує, за винятком випадків, коли ніякий інший спосіб не може бути реалізований. Подібне включення саме по собі незручне, хоча є пристрої, які трохи спрощують це завдання, зокрема вони стежать за нумерацією пакетів, щоб уникнути збою і можливого виявлення вторгнення в канал. Такий спосіб використовується для обману банкоматів, але такий випадок технічно складніший, тому що неприпустимим розрив зв'язку між банком і банкоматом, а «врізання» в канал без його розриву - завдання тільки для висококваліфікованого фахівця. Крім цього, тепер банкомати встановлюються набагато краще, що виключає можливість вільного фізичного доступу до кабелю.
Рекомендації: слідкуйте за доступом до кабелів, наприклад, використовуйте короба. Шифруйте трафік.
Dummy ARP (Фальшивий ARP)
ARP сервер, маршрутизатор або комутатор знають які IP належать MAC адресам (тобто мережевим картам). При можливості фізичного доступу до мережі, зломщик може підробити ARP відповідь і видати себе за інший комп'ютер в мережі, отримавши його IP. Тим самим всі пакети, призначені тому комп'ютеру, буде отримувати він. Це можливо, якщо цей комп'ютер вимкнено, інакше ця дія викличе конфлікт IP адрес (в одній мережі не можуть бути 2 комп'ютери з однією і тією ж IP адресою).
Рекомендації: використовуйте ПО, яке інформує про зміну MAC адрес у IP, стежте за лог-файлами ARP сервера.
Dummy DNS Server (помилковий сервер DNS)
Якщо налаштування мережі поставлені в автоматичний режим, то при включенні в мережу, комп'ютер «запитує» (тобто відправляє широкомовний пакет) хто буде його DNS сервером, до якого він надалі надсилатиме DNS запити. За наявності фізичного доступу до мережі, зломщик може перехопити такий широкомовний запит і відповісти, що його комп'ютер буде DNS сервером. Після цього він зможе відправляти ошукану жертву за будь-яким маршрутом. Наприклад, жертва хоче пройти на сайт банку і переказати гроші, зломщик може відправити її на свій комп'ютер, де буде сфабрикована форма введення пароля. Після цього пароль належатиме зломщику. Досить складний спосіб, тому що зломщику необхідно відповісти жертві раніше, ніж DNS сервер.
Рекомендації: за можливості обмежте доступ до мережі сторонніх.
Fuzzy (Фаззі)
Фільтри можна налаштувати на блокування певних видів пакунків, наприклад, UDP. Зломник може сфабрикувати пакет так, що фільтр не зрозуміє, що цей пакет UDP і не відфільтрує його, і він потрапить за призначенням. Таким чином, зломщик може обійти фільтри пакетів. Цей прийом дуже вузький і призначений для приватних випадків, точніше тих, коли зв'язок не обов'язково повинен бути двостороннім. Двосторонній зв'язок неможливий у більшості випадків, оскільки в основному, якщо блокуються вхідні пакети певного типу на який-небудь порт, то блокуються і вихідні. Виходить, що навіть якщо сфабрикований пакет пройде через фільтр (наприклад на порт UDP), то сервер відповість на нього пакетом того ж типу, тобто UDP, але при цьому він не буде його фабрикувати за прикладом зломщика. Тобто цей вихідний пакет буде відфільтрований і не потрапить до зломника. Як би там не було, все одно варто убезпечити себе від подібного роду атак.
Рекомендації: зазвичай нові версії міжмережних екранів надають достатній захист проти цього прийому.
Puke
Зломник фабрикує відповідь ICMP unreachable (помилка віддаленої системи), що спровокує клієнта на відключення від сервера. Використовується швидше як допоміжний засіб, у тому випадку, якщо якийсь клієнт повинен бути відключений від сервера для проведення атаки.
Fake unreachable - зломщик фабрикує повідомлення про те, що пакет не може бути доставлений (unreachable), тим самим змушує сервер думати, що у клієнта збій і пакети не доставляються за призначенням. Це може спровокувати сервер вимкнути клієнта. Теж допоміжний засіб, схоже на № 17, тільки спрямований не на клієнта, а на сервер.
IP-Spoofing (Спуфінг або Підміна IP адреси)
Атакуючий підміняє свій реальний IP фіктивним. Це необхідно, якщо доступ до ресурсу мають лише певні IP адреси. Зломнику потрібно змінити свій реальний IP на «привілейований» або «довірений», щоб отримати доступ. Цей спосіб може бути використаний по-іншому. Після того, як два комп'ютери встановили між собою з'єднання, перевіривши паролі, зломщик може викликати на жертві перевантаження мережевих ресурсів спеціально згенерованими пакетами. Тим самим він може перенаправити трафік на себе і таким чином обійти процедуру аутентифікації.
Рекомендації: їх може бути багато, з тієї причини, що прийомів досить багато. Але варто згадати, що загрозу знизить (але можливо ускладнить легімітивні з'єднання) зменшення часу відповідного пакета з встановленими прапорами SYN і ACK, а також збільшити максимальну кількість SYN-запитів на встановлення з'єднання в черзі (tcp_max_backlog). Так само можна використовувати SYN-Cookies.
Host spoofing (Підміна хосту). Дуже складна техніка, що вимагає фізичного доступу до мережі. Кожен комп'ютер знає маршрутизатор, на який він відправляє всі пакети, які потім маршрутизатором доставляються за призначенням. При зміні маршрутизатора кожному комп'ютеру висилається redirect повідомлення, після чого комп'ютери починають посилати пакети новому маршрутизатору. Зломщик може сфабрикувати подібне повідомлення і видати себе за маршрутизатор, таким чином він отримає контроль над трафіком в межах сегмента мережі.
Рекомендації: контроль над доступом до мережі і моменту зміни маршрутизатора. Наприклад, можна стежити, чи весь минулий трафік (тобто старі з'єднання) «з'явилися» на новому маршрутизаторі.
Підбір пароля.
Використовується для реєстрації в системі шляхом підбору пароля до облікового запису. Є два види: підбір всіх можливих комбінацій символів (BruteForce) і підбір за словником. Перший спосіб більш ефективний, оскільки все одно знайдеться комбінація символів, яку ви ввели з клавіатури в якості пароля, але цей спосіб вкрай повільний, особливо якщо в розрахунок приймаються знаки перепинання і т. п. Другий спосіб швидкий, але якщо ви ввели слово, якого не може бути в словнику, наприклад: «Мій-Новий-Пароль», то підібрати за словником його буде неможливо. Програм, які служать для підбору пароля дуже багато, тому ми не думаємо, що є сенс називати якісь конкретні. Як правило, програми, ОС тощо зберігають паролі в шифрованому вигляді, тому навіть якщо зломщик отримав доступ до файлу, йому доведеться розшифрувати пароль. Він це може робити добою на своєму домашньому комп'ютері.
Рекомендації: використовувати складні паролі, краще зі знаками перепинання. Обмежте кількість спроб введення пароля. Проти розшифровки пароля допоможе тільки його складність.
Back Connect/Pipes/Reverse (Зворотній сеанс або Реверс)
Це допоміжний прийом, але сам по собі він дуже цікавий. Наприклад, зломщик не хоче щоразу виконувати багато дій заради однієї команди. Він може спростити завдання, використовуючи цей прийом. Суть його в тому, що зломщик змушує атакуваний комп'ютер підключитися до комп'ютера зломщика. Наприклад, на атакуючому комп'ютері можна виконати команду telnet [ip.адрес.взломника] [порт]. Після цього зломщик, по суті справи отримує командний рядок (командну оболонку або Шелл/Shell) на атакованому комп'ютері.
Software vulnerabilities (Помилки ПО)
Використання помилок у програмному забезпеченні. Ефект може бути різний. Від отримання несуттєвої інформації до отримання повного контролю над системою. Атаки через помилки ПО найпопулярніші в усі часи. Старі помилки виправляються новими версіями, але в нових версіях з'являються нові помилки, які знову можуть бути використані. Далі ми опишемо не види атак, а прийоми, що використовуються для атаки на помилки ПЗ. Рекомендації: наведемо відразу для всіх, бо рекомендація загальна - допоможе тільки «безпечно» написаний код програм. З цієї теми можна знайти велику кількість матеріалу в Інтернет.
Buffer Overflow (Переповнення буфера)
Дуже небезпечний вид атаки, коли запит формується так, що він переповнює виділені йому рамки пам'яті і команди «вшиті» в запит потрапляють в стек, а після виконуються процесором. Це можна зробити як віддалено, так і локально, якщо зломщик може запустити свою програму на атакуючому комп'ютері. Це може бути використано як для виконання коду на комп'ютері, так і для підняття прав. Є кілька підвидів атак на переповнення буфера. Ми не будемо описувати кожен з них, оскільки для пояснення принципу нам доведеться навести приклади коду, який буде незрозумілий людям, незнайомим з програмуванням. Нижченаведена класифікація належить Андрію Коліщаку (andr [at] sandy.ru) і знаходиться в його статті «Атаки на переповнення буфера». Тому знайти їх опис, приклади та рекомендації Ви можете безпосередньо в цій статті. Ми ж наведемо їх просто для ознайомлення.
- Атака «зрив стека»
- Атака «зрив стека» з параметризацією
- Атака «зрив стека» з передачею управління
- Спотворення індексів функцій
- Атака на індекси функцій
- Атака на вказівники функцій з параметризацією
- Атака на покажчики функцій з передачею управління
- Деформація таблиць переходів
- Атака на таблиці переходів
- Атака на таблиці переходів з параметризацією
- Атака на таблиці переходів з передачею управління
-- Спотворення індексів даних
- Атака з спотворенням індексів даних
- Атака з викривленням індексів даних з параметризацією
- Атака з викривленням індексів даних з оригінальним кодом.
До вищенаведеної класифікації ми б хотіли привести ще один тип: Integer Overflow (Переповнення цілочисельних). За більш детальною інформацією можна звернутися до статті "Цілочисельне переповнення: Атака «і» Цілочисельне переповнення: Захист "або" Basic Integer Overflows "від Blexim.
Shatter
Вразливість Windows систем, яка може бути використана тільки локально. Дуже схожа на переповнення буфера, точніше призводить до того ж самого результату: команди зломщика потрапляють у стек. Базується на тому, що кожне вікно Windows, яке має поле для введення, має максимальну довжина значення. Вона встановлюється ще на стадії розробки програми і для невеликих полів може бути рівна, наприклад 50. З клавіатури не можна ввести кількість символів більше 50, але робота вікон Windows заснована на Messages (Посланнях). Можна легко отримати Header (Хідер або Заголовок (особливий, призначений тільки для ОС)) поля для вводу і надіслати SETTEXT (встановити текст) повідомлення (використовуючи цей хідер) полю для введення. Повідомлення має сказати, що необхідно встановити текст довжиною понад 50, відповідно, все, що буде після 50-го символу, потрапить у стек і буде виконано процесором. Захисту від цього не існує. Єдина панацея - це процесори AMD Athlon 64, у яких є вбудований захист, і вони не виконують команди зі стека.
Nuke (WinNuke або Нюк)
Зараз це швидше історія. Windows за замовчуванням використовує протокол NetBIOS для спільної роботи з файлами і принтерами в мережі. Для цього ОС відкриває три TCP порти (137, 138, 139). Реалізація цього протоколу на старих версіях Windows містила вразливість. Суть у тому, що можна надіслати у відкритий 139 порт кілька OutOfBand «повідомлень» поспіль. Система не могла коректно обробити подібні дані і система повисала. Програм для подібних атак було написано чимало, але ми згадаємо тільки Shadow Security Scanner, який вже був названий нами раніше, як засіб для SSPing.
Cross User Attack (міжкористувальницька атака)
На наш погляд досить неоднозначна назва, тому що не кращим чином відображає суть атаки, але все ж ми дотримуємося цієї, загальновідомої назви. Squid 2.4 і ISA/2000 дозволяють користувачам ділити між собою TCP з'єднання з сервером. Можна спровокувати за допомогою HRS (описано нижче) дві відповіді від сервера, одна з яких контролюватиметься зломщиком і фальсифікує отриману користувачем інформацію.
Атака на CGI. Більшість WWW (Веб) серверів використовують скрипти для надання користувачам додаткових послуг або надання додаткових можливостей. Наприклад, поштові сервери, як mail.ru На багатьох серверах встановлено «самописні» CMS (Content Management System або Системи керування вмістом (сайту)). Програмісти далеко не завжди змушують свої скрипти перевіряти введені користувачем значення, через що з'являються можливості використання таких помилок у різних цілях. Атака на переповнення буфера також може бути проведена через помилки CGI скриптів. Наприклад: http://host/cgi-bin/helloworld? type = A * 100 (тобто буква A буде в кількості 100 разів). За адресою http:/ /www.opennet.ru/base/sec/linux_sec_guide.txt.html можна знайти відмінну статтю, у другій частині якої описуються проблеми безпеки, які зазвичай залишаються без уваги CGI програмістами. Багато хто не є прийомами злому, а тільки допомагає злому, тому для написання хорошого коду краще ознайомитися зі статтею. Рамки нашої статті не дозволяють нам заглибитися в тему написання безпечного коду, тому скажемо тільки, що потрібно, як мінімум, фільтрувати всі службові символи з отримуваних даних.
SQL Injection (SQL іньєкція)
Якщо введені користувачем дані використовуються в сформованих SQL запитах без перевірки, то зломщик може ввести дані, які дозволять йому отримати будь-яку інформацію з Ваших SQL баз. Наприклад: є запит «SELECT login, password FROM members where email =» $ email «;» Де $ email вводиться користувачем у таблиці, запит обробляється і результат виводиться на сторінку. Зломщик може модифікувати дані і ввести в форму: «Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.' OR login LIKE '%admin%». Таким чином, сформований SQL запит буде: «SELECT login, password FROM members where email=Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.' OR login LIKE '%admin%';». Таким чином, зломщик отримає паролі від користувачів, в login яких міститься admin.
HRS (HTTP Resource Splitting)
Досить молодий і на нашу думку складний прийом (якщо не використовувати його тільки для XSS), який дозволяє реалізувати атаки виду Hijacking Pages, Cross User Defacement, Web Cache Poisoning, Browser Cache Poisoning, XSS (будуть описані нижче). Сутність атаки в тому, що зломщик, спеціально приготованим HTTP запитом може змусити Веб-сервер, вразливий перед HRS, відповісти жертві (а не зломщику) двома роздільними HTTP відповідями (а не одним, як це було б у звичайній ситуації). Перший HTTP відповідь може бути частково контролюємо зломщиком, але другий контролюється зломщиком повністю! Якщо це можливо, зломщик посилає два запити, де жертва виступає вже посередником. Перший із цих запитів знову змусить Веб-сервер відповісти два рази, а другий зазвичай запитує якийсь другорядний ресурс на сервері (наприклад, якусь маленьку картинку). Але! Жертва об'єднає другий HTTP запит (на другорядний ресурс) з другою HTTP відповіддю (яка контролюється зломщиком)! Таким чином, жертва думає, що отриманий «агрегат» це відповідь від Веб-сервера з частиною його вмісту, але насправді це буде важлива інформація або команда (яка підготовлена зломщиком). Є ще один нюанс, жертвою може бути комп'ютер зломщика, який отримає в результаті атаки, важливу інформацію, наприклад, cookie іншого користувача. Нижче ми опишемо атаки, які можна провести через HRS, але вони так само можуть бути проведені з використанням іншого прийому, але ми скажемо про них все ж в ключі HRS.
Cross User Defacement
Досить вузький прийом, тому що зломщик підробляє сторінку, яка надсилається вразливим Веб - сервером тільки одній жертві. Вміст Веб - сервера не змінюється. Крім цього, прийом дуже складно провести не за допомогою HRS. Зломнику доведеться виступити посередником між клієнтом і сервером за допомогою Спуфінга, IP хайджека, або помилки в реалізації деяких Веб-серверів, але в підсумку «витрати» не виправдають отриманого результату. Більш легко реалізувати це через міжкористувальницьку атаку.
Web Cache Poisoning
На мою думку, не зовсім корисний прийом, тому опишу його виключно коротко. В основному, проксі сервери кешують сторінки, запитувані користувачами, щоб при повторному запиті такої сторінки віддати її з кешу, а не запитувати Веб-сервер. Це необхідно для економії трафіку, якщо це корпоративна мережа і проксі сервер внутрішньомережевий. Суть прийому в тому, щоб спровокувати проксі сервер кешувати підроблену сторінку, яка потім буде передаватися користувачам мережі.
Browser Cache Poisoning. Кеші є не тільки у проксі серверів, але також і у браузерів. По суті цей прийом майже те ж саме, що і Web Cache Poisoning, з тією лише різницею, що їй піддається тільки один комп'ютер.
Hijacking Pages
Певною мірою цей прийом схожий з міжкористувальницькою атакою, але тут мета атаки не «підсунути» користувачеві підроблену інформацію, наприклад Веб-сторінку, а навпаки, змусити сервер переслати зломщику Веб-сторінку, яка призначалася іншому користувачеві. Таким чином, зломщик може отримати важливу інформацію, призначену іншому користувачеві. Це може бути номер його рахунку або виданий йому пароль. Для проведення атаки, зломнику необхідно TCP з'єднання з проксі сервером (назвемо «ВРП»), TCP з'єднання між жертвою і проксі сервером («ЖСП») і TCP з'єднання між Веб-сервером і проксі сервером («ССП»). Схема наступна:
-Взламувач надсилає через «ВРП» запит (назвемо «ЗА») до проксі сервера, на який Веб-сервер повинен відповісти двома «відповідями» «ОФ1» і «ОФ2» (випадок HRS).
-Проксі сервер пересилає через «ССП» запит «ЗА» до Веб-сервера.
-Веб-сервер відповідає «ОФ1» і «ОФ2» через «ССП».
- Проксі сервер вважає, що «ОФ1» це відповідь на «ЗА» і пересилає його зломщику через «ВРП».