Защита от човек в средата. Всичко за атаката на човек в средата (MitM).

18.10.2016 | Владимир Хазов

Плановете на ФСБ, Министерството на телекомуникациите и масовите комуникации и Министерството на промишлеността и търговията за прилагане на разпоредбите на Закона Яровая относно прихващането и дешифрирането на кореспонденцията на руснаци вече не са просто планове, а вече започват да се прилагат в действие със заповед за изготвяне на експертно заключение относно възможността за прихващане на съобщения WhatsApp, Viber, Facebook Messenger, Telegram, Skype чрез MITM атаки и демонстрация на прототип на такъв инструмент.

Писахме за схемата за организиране на „легитимна“ MITM атака в предишна статия. Днес ще се спрем по-подробно на самия принцип на такава атака и методите за нейното изпълнение.

Какво е MITM атака

Man In The Middle (MITM) се превежда като „човек по средата“. Този термин се отнася до мрежова атака, при която нападателят е между интернет потребителя и приложението, до което той има достъп. Не физически, разбира се, а с помощта на специален софтуер. Той се представя на потребителя като исканото приложение (това може да е уебсайт или интернет услуга), симулира работа с него и прави това по такъв начин, че да създаде впечатление за нормална работа и обмен на информация.

Целта на атаката са личните данни на потребителя, като идентификационни данни за вход различни системи, банкови данни и номера на карти, лична кореспонденция и друга поверителна информация. В повечето случаи се атакуват финансови приложения (банкови клиенти, онлайн банки, услуги за плащане и парични преводи), фирмени SaaS услуги, уебсайтове е-търговия(онлайн магазини) и други сайтове, където се изисква оторизация за влизане.

Информацията, която нападателят получава, може да се използва за различни цели, включително незаконни парични преводи, промяна на сметки, прихващане на лична кореспонденция, извършване на покупки за чужда сметка, компрометиране и изнудване.

В допълнение, след кражба на идентификационни данни и хакване на системата, престъпниците могат да инсталират зловреден софтуер в корпоративната мрежа. софтуерда организира кражба на интелектуална собственост (патенти, проекти, бази данни) и да причини икономически щети чрез изтриване на важни данни.

MITM атака може да се сравни с пощальон, който, докато доставя вашата кореспонденция, отваря писмо, пренаписва съдържанието му за лична употреба или дори фалшифицира почерка, добавя нещо свое и след това запечатва плика и го доставя на адресата все едно нищо не се е случило.. Освен това, ако сте шифровали текста на писмото и искате да съобщите кода за дешифриране лично на адресата, пощальонът ще се представи като адресат по такъв начин, че дори да не забележите замяната.

Как се извършва MITM атака

Изпълнението на MITM атака се състои от две фази: прихващане и дешифриране.

  • Прихващане

Първият етап от атаката е да се прихване трафик от потребителя към желаната цел и да се насочи към мрежата на атакуващия.

Най-честият и най-лесният начин за прихващане е пасивна атака, когато нападателят създава Wi-Fi точки със свободен достъп (без парола или разрешение). В момента, в който потребителят се свърже с такава точка, нападателят получава достъп до целия трафик, преминаващ през нея и може да извлече всякакви данни от нея за прихващане.

Вторият метод е активно прихващане, което може да се извърши по един от следните начини:

IP спуфинг– замяна на IP адреса на целта в заглавката на пакета с адреса на нападателя. В резултат на това потребителите, вместо да посетят искания URL адрес, се озовават на уебсайта на нападателя.

ARP спуфинг– заместване на реалния MAC адрес на хоста с адреса на нападателя в ARP таблицата на жертвата. В резултат на това данните, изпратени от потребителя до IP адреса на необходимия възел, завършват на адреса на атакуващия.

DNS подправяне DNS кеш инфекция, проникване в DNS сървъри подмяна на запис за съвпадение на адрес на уебсайт. В резултат на това потребителят се опитва да получи достъп до искания сайт, но получава адреса на сайта на атакуващия от DNS сървъра.

  • Декриптиране

Веднъж прихванат, двупосочният SSL трафик трябва да бъде дешифриран по такъв начин, че потребителят и ресурсът, който иска, да не забележат намесата.

Има няколко метода за това:

HTTPS спуфинг– фалшив сертификат се изпраща до браузъра на жертвата, когато се установи връзка със сайта чрез HTTPS протокола. Този сертификат съдържа цифров подпис на компрометираното приложение, поради което браузърът приема връзката с нападателя за надеждна. След като се установи такава връзка, нападателят получава достъп до всички данни, въведени от жертвата, преди да бъдат предадени на приложението.

SSL ЗВЯР(browser exploit against SSL/TLS) – атаката използва уязвимостта на SSL в TLS версии 1.0 и 1.2. Компютърът на жертвата е заразен със злонамерен JavaScript, който прихваща криптирани бисквитки, изпратени до уеб приложението. Това компрометира режима на шифроване на „верижния блок на шифрован текст“, така че атакуващият да получи декриптираните бисквитки и ключовете за удостоверяване.

Отвличане на SSL– прехвърляне на фалшиви ключове за удостоверяване към потребителя и приложението в началото на TCP сесия. Това създава вид на защитена връзка, когато всъщност сесията се контролира от „човек по средата“.

SSL премахване– Понижава връзката от защитен HTTPS към обикновен HTTP чрез прихващане на TLS удостоверяването, изпратено от приложението до потребителя. Нападателят предоставя на потребителя некриптиран достъп до сайта, като същевременно той поддържа защитена сесия с приложението, получавайки възможността да види предадените данни на жертвата.\

Защита срещу MITM атаки

Надеждна защита срещу MITM атаки е възможна, ако потребителят предприеме няколко превантивни действия и използва комбинация от методи за криптиране и удостоверяване от разработчиците на уеб приложения.

Действия на потребителя:

  • Избягвайте да се свързвате с Wi-Fi точки, които нямат защита с парола. Деактивирайте функцията за автоматично свързване към известни точки за достъп - нападателят може да прикрие своя Wi-Fi като легитимен.
  • Обърнете внимание на известието на браузъра за посещение на незащитен сайт. Такова съобщение може да означава преход към фалшив уебсайт на нападател или проблеми със защитата на легитимен уебсайт.
  • Прекратете сесията с приложението (излезте), ако не се използва.
  • Не използвайте обществени мрежи (кафенета, паркове, хотели и др.) за извършване на поверителни транзакции ( делова кореспонденция, финансови транзакции, покупки в онлайн магазини и др.).
  • Използвайте антивирусна програма с актуални бази данни на вашия компютър или лаптоп; това ще ви помогне да се предпазите от атаки, използващи злонамерен софтуер.

Разработчиците на уеб приложения и уебсайтове трябва да използват защитени TLS протоколии HTTPS, които значително усложняват спуфинг атаките чрез криптиране на предаваните данни. Използването им също предотвратява прихващане на трафик с цел получаване на параметри за оторизация и ключове за достъп.

Счита се за добра практика защитата на TLS и HTTPS не само за страниците за оторизация, но и за всички останали раздели на сайта. Това намалява вероятността нападател да открадне бисквитките на потребителя в момента, когато той навигира през незащитени страници след оторизация.

Защитата срещу MITM атаки е отговорност на потребителя и телекомуникационния оператор. Най-важното за потребителя е да не губи бдителност, да използва само доказани методи за достъп до интернет и да избира сайтове с HTTPS криптиране при прехвърляне на лични данни. На телекомуникационните оператори може да се препоръча да използват системи за дълбока проверка на пакети (DPI) за откриване на аномалии в мрежите за данни и предотвратяване на измамни атаки.

Правителствените агенции планират да използват MITM атаката, за да защитят гражданите, а не да причиняват щети, за разлика от нападателите. Прихващането на лични съобщения и друг потребителски трафик се извършва в рамките на действащото законодателство, извършвано по решение на съдебните органи за борба с тероризма, трафика на наркотици и други забранени дейности. Редовни потребители„легитимните“ MITM атаки не са опасни.

Постигане желан резултатПочти винаги има няколко начина. Това важи и за областта на информационната сигурност. Понякога, за да постигнете цел, можете да използвате груба сила, да търсите дупки и да разработвате експлойти сами или да слушате какво се предава по мрежата. Освен това последната опция често е оптимална. Ето защо днес ще говорим за инструменти, които ще ни помогнат да уловим ценна информация от мрежов трафик, привличайки MITM атаки за това.

MITMf

Да започнем с един от най-интересните кандидати. Това е цяла рамка за провеждане на атаки човек по средата, изградена на базата на sergio-proxy. Наскоро включен в Kali Linux. За да го инсталирате сами, просто клонирайте хранилището и изпълнете няколко команди:

# setup.sh # pip install -r requirements.txt

# pip install -r requirements.txt

Той има архитектура, която е разширима чрез плъгини. Сред основните са следните:

  • Spoof - позволява ви да пренасочвате трафика чрез ARP/DHCP spoofing, ICMP пренасочвания и модифициране на DNS заявки;
  • Sniffer - този плъгин проследява опитите за влизане за различни протоколи;
  • BeEFAutorun - ви позволява автоматично да стартирате BeEF модули въз основа на типа на операционната система и клиентския браузър;
  • AppCachePoison - извършва атака с отравяне на кеша;
  • SessionHijacking - отвлича сесии и съхранява получените бисквитки в профила на Firefly;
  • BrowserProfiler - опитва се да получи списък с плъгини, използвани от браузъра;
  • FilePwn - позволява ви да замените съобщения, изпратени чрез HTTP файловеизползване на Backdoor Factory и BDFProxy;
  • Inject - инжектира произволно съдържание в HTML страница;
  • jskeylogger - вгражда JavaScript keylogger в клиентските страници.

Ако тази функционалност ви се струва недостатъчна, винаги можете да добавите своя собствена, като внедрите подходящото разширение.

PuttyRider

Друга програма, която заслужава внимание. Вярно е, че за разлика от всички други инструменти, разглеждани днес, той е много тясно специализиран. Както казва самият автор на проекта, той е бил вдъхновен да създаде такава помощна програма от факта, че по време на тестовете за проникване най-важните данни се намират на сървъри на Linux / UNIX, към които администраторите се свързват чрез SSH / Telnet / rlogin. Освен това в повечето случаи беше много по-лесно да се получи достъп до машината на администраторите, отколкото до целевия сървър. След като сте проникнали в машината на системния администратор, всичко, което остава, е да се уверите, че PuTTY работи и с помощта на този инструмент да изградите обратен мост към нападателя.

Помощната програма ви позволява не само да улавяте „комуникация“ между администратора и отдалечения сървър (включително пароли), но и да изпълнявате произволни команди на обвивката в дадена сесия. При това всичко това ще става абсолютно прозрачно за потребителя (администратора). Ако се интересувате от технически подробности, например как PuTTY се внедрява в процеса, препоръчвам ви да прочетете презентацията на автора.

Доста стара помощна програма, родена преди повече от осем години. Предназначен за клониране на сесии чрез кражба на бисквитки. За отвличане на сесии, той има основни умения за откриване на хост (в случай на свързване към отворен безжична мрежаили хъб) и провеждане на ARP отравяне. Единственият проблем е, че днес, за разлика от преди осем години, почти всички големи компании като Yahoo или Facebook използват SSL криптиране, което прави този инструмент напълно безполезен. Въпреки това в Интернет все още има достатъчно ресурси, които не използват SSL, така че е твърде рано да се отпише помощната програма. Предимствата му включват факта, че той автоматично се интегрира във Firefox и създава отделен профил за всяка прихваната сесия. Източнике наличен в хранилището и можете да го изградите сами, като използвате следната последователност от команди:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip крадец на сесии

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip крадец на сесии

ProxyFuzz

ProzyFuzz няма нищо общо с провеждането на MITM атаки. Както можете да познаете от името, инструментът е предназначен за размиване. Това е малък недетерминиран мрежов fuzzer, реализиран в Python, който произволно променя съдържанието на пакетите с мрежов трафик. Поддържа TCP и UDP протоколи. Можете да го конфигурирате да размива само едната страна. Полезно, когато трябва бързо да проверите нещо мрежово приложение(или протокол) и разработете PoC. Пример за употреба:

Python proxyfuzz -l -стр

python proxyfuzz -l -стр

Списъкът с опции включва:

  • w - указва броя на заявките, изпратени преди да започне размиването;
  • c - размиване само на клиента (в противен случай и двете страни);
  • s - размива само сървъра (в противен случай и двете страни);
  • u - UDP протокол (в противен случай се използва TCP).

Средният

Помощна програма за извършване на MITM атаки срещу различни протоколи, представена на конференцията DEF CON. Алфа версията поддържаше HTTP протокола и имаше три страхотни добавки в своя арсенал:

  • plugin-beef.py - инжектира Browser Exploitation Framework (BeEF) във всяка HTTP заявка, идваща от локалната мрежа;
  • plugin-metasploit.py - вгражда IFRAME в некриптирани (HTTP) заявки, което зарежда експлойти на браузъра от Metasploit;
  • plugin-keylogger.py - вгражда манипулатор на събития на JavaScript onKeyPress за всички текстови полета, които ще бъдат изпратени през HTTPS, което кара браузъра да изпрати въведената от потребителя парола символ по знак до сървъра на атакуващия, преди да бъде изпратен целият формуляр.

Middler не само автоматично анализира мрежовия трафик и намира бисквитки в него, но и независимо ги изисква от клиента, тоест процесът е максимално автоматизиран. Програмата гарантира събирането на всички незащитени акаунти в компютърна мрежа (или публична гореща точка), до чийто трафик има достъп. За да работи програмата правилно, в системата трябва да са инсталирани следните пакети: Scapy, libpcap, readline, libdnet, python-netfilter. За съжаление, хранилището не е актуализирано от дълго време, така че ще трябва сами да добавите нова функционалност.

Конзолна помощна програма, която ви позволява интерактивно да изследвате и променяте HTTP трафика. Благодарение на тези умения, помощната програма се използва не само от pentesters/хакери, но и от обикновени разработчици, които я използват, например, за отстраняване на грешки в уеб приложения. С негова помощ можете да получите подробна информация какви заявки прави приложението и какви отговори получава. Освен това mitmproxy може да помогне при изучаването на особеностите на функционирането на някои REST API, особено тези, които са слабо документирани.

Инсталацията е изключително проста:

$ sudo aptitude инсталирайте mitmproxy

Струва си да се отбележи, че mitmproxy също ви позволява да прихващате HTTPS трафик, като издавате самоподписан сертификат на клиента. Добър примерМожете да научите как да конфигурирате прихващане и модифициране на трафик.

Dsniff

Е, тази помощна програма обикновено е едно от първите неща, за които трябва да се сетите веднага щом чуете
"MITM атака". Инструментът е доста стар, но продължава активно да се актуализира, което е добра новина. Няма смисъл да се говори подробно за неговите възможности, през четиринадесетте години на своето съществуване той е бил отразяван в Интернет повече от веднъж. Например в ръководство като това:

или инструкции от нашия уебсайт:

накрая..

Както обикновено, не разгледахме всички помощни програми, а само най-популярните; има и много малко известни проекти, за които може да говорим някой ден. Както можете да видите, няма недостиг на инструменти за извършване на MITM атаки и, което не се случва много често, един от страхотните инструменти е внедрен за Windows. За nix системите няма какво да се каже - цяло разнообразие. Така че мисля, че винаги можете да намерите правилния инструмент за кражба
пълномощията на други хора. Опа, тоест за тестване.

Man in the middle attack (атака MitM) е термин в криптографията, който се отнася до ситуация, при която нападателят е в състояние да чете и променя по желание съобщенията, обменяни между кореспондентите, и никой от последните не може да познае самоличността му. присъствие в канала .

Метод за компрометиране на комуникационен канал, при който нападател, след като се е свързал с канал между контрагенти, активно се намесва в протокола за предаване, изтривайки, изкривявайки информация или налагайки невярна информация.

Принцип на атака:

Да предположим, че обект "A" планира да предаде някаква информация на обект "B". Обект „В” има познания за структурата и свойствата на използвания метод за предаване на данни, както и факта на планираното предаване на действителната информация, която „В” планира да прихване.

За да извърши атака, "C" изглежда на обект "A" като "B" и на обект "B" като "A". Обект "A", погрешно вярвайки, че изпраща информация на "B", я изпраща на обект "C".

Обект "C", след като е получил информация и е извършил някои действия с нея (например копиране или модифициране за свои цели), изпраща данните на самия получател - "B"; обект „Б” от своя страна смята, че информацията е получена директно от „А”.

Пример за MitM атака:

Да приемем, че Алис има финансови проблеми и, използвайки програма за незабавни съобщения, решава да поиска от Джон сума пари, като изпрати съобщението:
Алис: Джон, здравей!
Алис: Моля, изпратете ми ключа за криптиране, имам малка молба!
Джон: Здравейте! Чакай малко!

Но по това време г-н X, който, докато анализира трафика с помощта на снифър, забеляза това съобщение и думите „ключ за криптиране“ предизвикаха любопитство. Ето защо той решава да прихване следните съобщения и да ги замени с данните, от които се нуждае, и когато получава следното съобщение:
Джон: Ето моя ключ: 1111_D

Той смени ключа на Джон със своя и изпрати съобщение до Алис:
Джон: Ето моя ключ: 6666_M

Алис, без да знае и си мисли, че това е ключът на Джон, използва частния ключ 6666_M, изпраща криптирани съобщения до Джон:
Алис: Джон, имам проблеми и спешно се нуждая от пари, моля, прехвърлете $300 в моята сметка: Z12345. Благодаря ти. p.s. Моят ключ: 2222_A

След като получи съобщението, г-н X го декриптира с помощта на своя ключ, прочита го и, зарадван, променя номера на акаунта на Алис и ключа за криптиране на свой собствен, криптира съобщението с ключа 1111_Dи изпраща на Джон съобщение:
Алис: Джон, имам проблеми и спешно се нуждая от пари, моля, прехвърлете $300 в моята сметка: Z67890. Благодаря ти. p.s. Моят ключ: 6666_A

След като получи съобщението, Джон го дешифрира с помощта на ключа 1111_D, и без дори да се колебае, ще преведе пари по сметката Z67890...

И така, г-н X, използвайки атаката човек по средата, спечели $300, но Алис сега ще трябва да обяснява, че не е получила парите... А Джон? Джон трябва да докаже на Алис, че той ги е изпратил...

Изпълнение:

Този тип атака се използва в някои софтуерни продукти за мрежово подслушване, например:
NetStumbler- програма, с която можете да съберете много полезни данни за безжична мрежа и да разрешите някои проблеми, свързани с нейната работа. NetStumbler ви позволява да определите обхвата на вашата мрежа и ви помага точно да насочите антената си за комуникации на дълги разстояния. За всяка намерена точка за достъп можете да разберете MAC адреса, съотношението сигнал / шум, името на услугата и степента на нейната сигурност. Ако трафикът не е криптиран, тогава способността на програмата да открива неоторизирани връзки ще бъде полезна.

dsniff- е набор от програми за мрежов одит и тест за проникване, осигуряващи пасивен мрежов мониторинг за търсене на интересуващи данни (пароли, адреси електронна поща, файлове и т.н.), прихващане на мрежов трафик, който обикновено е недостъпен за анализ (например в комутирана мрежа), както и способността за организиране на MITM атаки за прихващане на SSH и HTTPS сесии чрез използване на PKI недостатъци.

Каин и Авел - безплатна програма, което ви позволява да възстановите изгубени пароли за операционна система Семейство Windows. Поддържат се няколко режима на възстановяване: хакване с груба сила, избор на речник, преглед на пароли, скрити със звездички и др. Има и опции за идентифициране на парола чрез прихващане на информационни пакети и техния последващ анализ, запис на мрежови разговори, анализ на кеша и други.

Ettercap- е снифър, прихващач на пакети и записващо устройство за локални Ethernet мрежи, което поддържа активен и пасивен анализ на множество протоколи, а също така е възможно да „хвърлите“ вашите собствени данни в съществуваща връзка и да филтрирате „в движение“, без да прекъсвате връзката синхронизация. Програмата ви позволява да прихващате SSH1, HTTPS и други защитени протоколи и предоставя възможност за декриптиране на пароли за следните протоколи: TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

КАРМА– набор от помощни програми за оценка на сигурността на безжични клиенти, е безжичен снифър, който чрез пасивно прослушване на 802.11 Probe Request кадри ви позволява да откривате клиенти и техните предпочитани/доверени мрежи. След това може да се създаде фалшива точка за достъп за една от заявените мрежи, към която може да се свърже автоматично. Фалшивите услуги на високо ниво могат да се използват за кражба на лични данни или използване на уязвимостите на клиента на хоста.

AirJack- набор от програми, които според експерти в областта на хакването на WiFi е най-добрият инструмент за генериране на различни 802.11 рамки. AirJack включва редица помощни програми, предназначени да откриват скрит ESSID, да изпращат рамки за прекъсване на сесия с фалшив MAC, да провеждат MitM атаки и да го модифицират.

Противодействие:

За да избегнат атаки от този тип, абонатите „A“ и „B“ трябва само да прехвърлят един на друг цифрови подписи на публични ключове за криптиране, използвайки надежден канал. След това, когато се сравняват подписи на ключове в сесии за криптиране, ще бъде възможно да се определи кой ключ е използван за криптиране на данните и дали ключовете са били заменени.

В тази статия ще се опитаме да разберем теорията за атаките "човек по средата" и някои практически точки, които ще помогнат за предотвратяването на тези видове атаки. Това ще ни помогне да разберем риска, който подобни прониквания представляват за поверителността ни, тъй като MitM атаките ни позволяват да нахлуваме в комуникациите и да подслушваме нашите разговори.

Разбиране как работи интернет

За да разберете принципа на атаката "човек по средата", си струва първо да разберете как работи самият интернет. Основни точки на взаимодействие: клиенти, рутери, сървъри. Най-често срещаният комуникационен протокол между клиент и сървър е протоколът за трансфер на хипертекст (HTTP). Сърфиране в интернет чрез браузър, имейл, незабавни съобщения - всичко това се извършва чрез HTTP.

Когато пишете в адресната лента на вашия браузър, клиентът (вие) изпраща заявка до сървъра за показване на уеб страница. Пакетът (HTTP GET заявка) се предава през няколко рутера към сървъра. След това сървърът отговаря с уеб страница, която се изпраща на клиента и се показва на неговия монитор. HTTP съобщенията трябва да се изпращат до безопасен режимза гарантиране на конфиденциалност и анонимност.

Фигура 1. Взаимодействие клиент-сървър

Защита на комуникационния протокол

Протоколът за защитена комуникация трябва да има всяко от следните свойства:

  1. поверителност- само желаният получател може да прочете съобщението.
  2. Автентичност- доказана е самоличността на взаимодействащите страни.
  3. Интегритет- потвърждение, че съобщението не е било променено при пренасяне.

Ако някое от тези правила не се спазва, целият протокол е компрометиран.

Man-in-the-middle атака чрез HTTP протокол

Нападателят може лесно да извърши атака тип човек по средата, използвайки техника, наречена ARP спуфинг. Всеки във вашия Wi-Fi мрежиможе да ви изпрати фалшив ARP пакет, карайки ви несъзнателно да изпратите целия си трафик през нападателя вместо вашия рутер.

След това нападателят има пълен контрол върху трафика и може да наблюдава заявките, изпратени и в двете посоки.

Фигура 2. Модел на атака "човек по средата".


За предотвратяване на подобни атаки е създадена защитена версия на HTTP протокола. Защитата на транспортния слой (TLS) и неговият предшественик, Secure Socket Layer (SSL), са криптографски протоколи, които осигуряват сигурност за предаване на данни през мрежа. Следователно защитеният протокол ще се нарича HTTPS. Можете да видите как работи защитеният протокол, като напишете в адресната лента на вашия браузър (обърнете внимание на S в https).

Атака "човек по средата" срещу лошо внедрен SSL

Съвременният SSL използва добър алгоритъм за криптиране, но това няма значение, ако не е внедрен правилно. Ако хакер може да прихване заявката, той може да я промени, като премахне "S" от искания URL, като по този начин заобиколи SSL.

Такова прихващане и модифициране на заявката може да бъде забелязано. Например, ако заявите https://login.yahoo.com/ и отговорът е http://login.yahoo.com/ , това трябва да породи подозрения. Към момента на писане тази атака действително работи в имейл услугата Yahoo.

Фигура 3. Заявка за прихващане и модификация


За да предотвратят такава атака, сървърите могат да внедрят HTTP Strict Transport Security (HSTS), механизъм, който позволява принудителна защитена връзка през HTTPS протокола. В този случай, ако атакуващ промени заявката, като премахне „S“ от URL адреса, сървърът пак ще пренасочи потребителя с пренасочване 302 към страница със защитен протокол.

Фигура 4. Диаграма на работа на HSTS


Този начин на внедряване на SSL е уязвим за друг вид атака - нападателят създава SSL връзка към сървъра, но използва различни трикове, за да принуди потребителя да използва HTTP.

Фигура 5. Модел на HSTS атака


За да предотвратят подобни атаки, съвременните браузъри като Chrome, Firefox и Tor наблюдават сайтове, използващи HSTS, и принуждават клиентска връзка към тях чрез SSL. В този случай нападателят, провеждащ атака "човек по средата", ще трябва да създаде SSL връзка с жертвата.

Фигура 6. Модел на атака, при който нападателят установява SSL връзка с жертвата


За да осигури SLL връзка на потребител, атакуващият трябва да знае как да действа като сървър. Нека разберем техническите аспекти на SSL.

Разбиране на SSL

От гледна точка на хакера, компрометирането на който и да е комуникационен протокол се свежда до намирането на слабата връзка сред изброените по-горе компоненти (поверителност, автентичност и цялост).

SSL използва асиметричен алгоритъм за криптиране. Проблемът със симетричното криптиране е, че един и същ ключ се използва за криптиране и декриптиране на данни, този подход не е валиден за интернет протоколи, защото нападателят може да проследи този ключ.

Асиметричното криптиране включва 2 ключа за всяка страна: публичен ключ, използван за криптиране, и частен ключ, използван за дешифриране на данните.

Фигура 7. Работят публични и частни ключове

Как SSL предоставя трите свойства, необходими за сигурни комуникации?

  1. Тъй като асиметричната криптография се използва за криптиране на данни, SSL осигурява частна връзка. Това криптиране не е толкова лесно да се разбие и да остане незабелязано.
  2. Сървърът потвърждава своята легитимност, като изпраща на клиента SSL сертификат, издаден от сертифициращ орган - доверена трета страна.

Ако нападателят по някакъв начин успее да се сдобие със сертификата, той може да отвори вратата за атака от типа "човек по средата". Така ще създаде 2 връзки - със сървъра и с жертвата. Сървърът в този случай смята, че атакуващият е обикновен клиент, а жертвата няма как да идентифицира атакуващия, тъй като е предоставил сертификат, доказващ, че той е сървърът.

Вашите съобщения пристигат и пристигат в криптирана форма, но следват верига през компютъра на киберпрестъпника, където той има пълен контрол.

Фигура 8. Модел на атака, ако нападателят има сертификат


Не е необходимо сертификатът да бъде фалшифициран, ако нападателят има способността да компрометира браузъра на жертвата. В този случай той може да вмъкне самоподписан сертификат, който ще бъде доверен по подразбиране. Ето как се извършват повечето атаки тип „човек по средата“. В по-сложни случаи хакерът трябва да поеме по различен път - да фалшифицира сертификата.

Проблеми със сертифициращия орган

Сертификатът, изпратен от сървъра, е издаден и подписан от сертифициращ орган. Всеки браузър има списък с надеждни сертифициращи органи и можете да ги добавяте или премахвате. Проблемът тук е, че ако решите да премахнете големи органи, няма да можете да посещавате сайтове, които използват сертификати, подписани от тези органи.

Сертификатите и сертифициращите органи винаги са били най-слабото звено в HTTPS връзката. Дори ако всичко беше внедрено правилно и всеки сертифициращ орган има солиден авторитет, пак е трудно да се примирите с факта, че трябва да се доверите на много трети страни.

Днес има повече от 650 организации, способни да издават сертификати. Ако нападател хакне някой от тях, той ще получи каквито иска сертификати.

Дори когато имаше само един сертифициращ орган, VeriSign, имаше проблем - хората, които трябваше да предотвратят атаки тип човек по средата, продаваха услуги за прихващане.

Освен това много сертификати са създадени поради хакване на сертифициращи органи. Използвани са различни техники и трикове, за да подмамят целевия потребител да се довери на измамни сертификати.

Криминалистика

Тъй като нападателят изпраща фалшиви ARP пакети, IP адресът на нападателя не може да бъде видян. Вместо това трябва да обърнете внимание на MAC адреса, който е специфичен за всяко устройство в мрежата. Ако знаете MAC адреса на вашия рутер, можете да го сравните с MAC адреса на шлюза по подразбиране, за да разберете дали това наистина е вашият рутер или нападател.

Например в операционната система Windows можете да използвате командата ipconfig в командна линия(CMD), за да видите вашия IP адрес на шлюз по подразбиране (последен ред):

Фигура 9. Използване на командата ipconfig


След това използвайте командата arp –a, за да разберете MAC адреса на този шлюз:

Фигура 10. Използване на командата arp –a


Но има и друг начин да забележите атаката - ако сте наблюдавали мрежовата активност в момента, в който е започнала и сте наблюдавали ARP пакетите. Например, можете да използвате Wireshark за тази цел, тази програма ще ви уведоми, ако MAC адресът на шлюза по подразбиране се е променил.

Забележка: Ако нападателят правилно фалшифицира MAC адреси, проследяването му ще се превърне в голям проблем.

Заключение

SSL е протокол, който принуждава нападателя да свърши много работа, за да извърши атака. Но няма да ви предпази от държавно спонсорирани атаки или от квалифицирани хакерски организации.

Работата на потребителя е да защити своя браузър и компютър, за да предотврати вмъкването на фалшив сертификат (много често срещана техника). Също така си струва да обърнете внимание на списъка с надеждни сертификати и да премахнете тези, на които не се доверявате.

Публикации по темата