Превратить группу камер наблюдения в ботнет? Нет ничего проще

ab2aaaf1dd082207bac7d96e3c68be7c.jpg

Уже долгое время специалисты по информационной безопасности говорят о том, что современные IoT устройства и системы слабо защищены от вмешательства извне. Некоторые из них вовсе не защищены, и взломать подобный гаджет или целую систему может даже школьник. Около года назад специалисты из Proofpoint обнаружили ботнет, основными элементами которого была домашняя «умная» техника. Как оказалось, в ботнет входили телевизоры и даже один холодильник.

Взлом, о котором идет речь, был осуществлен между между 23 декабря 2013 года и 6 января 2014 года. Гаджеты, составляющие ботнет, три раза в день отправляли письма пакетами в 750 тысяч за раз со 100 тысяч устройств (да, это был большой ботнет) предприятиям и частным лицам по всему миру. Но легче всего для злоумышленников, как оказалось, использовать для создания ботнета не холодильник и не телевизор, а камеру безопасности, подключенную к Сети.

При этом именно камеры безопасности являются одними из наиболее распространенных IoT устройств. В Сети уже публиковались отчеты, согласно которым в прошлом году по всему миру работало около 245 миллионов камер наблюдения. И это только те, что установлены профессионально, о которых что-то известно. Кроме них, есть еще миллионы других камер, установленные, образно говоря, домохозяйками, которые ничего не знают о безопасности и, соответственно, не использовавших настройки безопасности для своих устройств.
Исходя из всего вышесказанного, вовсе не удивительно, что именно ботнеты, состоящие из камер наблюдения являются одними из наиболее активных. Так, недавно стало известно об атаке типа «HTTP flood», с пиковым показателем в 20000 запросов в секунду. Эту атаку решили изучить специалисты Incapsula, с удивлением обнаружившие, что в состав ботнета входили камеры, установленные рядом с офисом этой компании.

После детального изучения оказалось также, что для доступа к настройкам большинства камер используются дефолтные связки логин/пароль (что вовсе не удивительно, масштаб этой проблемы огромен). Одна из камер была установлена на торговом центре, в пяти минутах езды от офиса компании. Специалисты помогли владельцам центра правильно настроить камеры, но остались еще десятки и сотни устройств, владельцам которых они не могли помочь при всем желании.

Некоторые подробности атаки


Как уже упоминалось выше, атака состояла в использовании HTTP GET floods с пиковым показателем в 20000 запросов. Этот трафик генерировали всего 900 камер наблюдения со всего земного шара. Цель атаки — крупный облачный сервис, обслуживающий миллионы пользователей по всему миру.

cctv-ddos-map.png

Все взломанные устройства работали на Linux с BusyBox — пакете Unix-утилит, собранных в единый пакет, и предназначенных для устройств с ограниченными ресурсами.

Malware оказался ELF-бинарник для ARM, один из вариантов ELF_BASHLITE. Это malware сканирует сетевые устройства с BusyBox, отыскивая Telnet/SSH сервисы, которые просто взломать путем брутфорса по словарю.

image

В данном случае maleware обладало возможностью самостоятельно запускать HTTP Get flood DDoS атаки со скопроментированных девайсов.

Немного запросов
$ strings .btce @ #! gfffd gfff root toor admin user guest login changeme 1234 12345 123456 default pass password :>%$# 31.169.77.242:5 (null) /bin/sh /proc/cpuinfo BOGOMIPS PING %d.%d.%d.%d %d.%d.%d.0 ogin: assword: ncorrect /bin/busybox;echo -e '\147\141\171\146\147\164' gayfgt multi-call REPORT %s:%s:%s REPORT %s:%s: Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en] Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.8 (build 4157); .NET CLR 2.0.50727; AskTbPTV/5.11.3.15590) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Mozilla/4.0 (compatible; MSIE 8 .0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); .NET CLR 3.5.30729) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.5 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5 Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11 Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5 Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0 Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1 Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1 Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1 Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1 Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11 Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5 Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0 Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1 Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0.1 Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1 Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60 GET /%s?%d HTTP/1.1 Host: %s Connection: keep-alive Accept-Encoding: gzip,deflate,sdch Accept: */* Accept-Language: en-US,en;q=0.8 User-Agent: %s Cache-Control: max-age=0 HTTP Failed opening raw socket. Failed setting raw headers mode. Invalid flag "%s" PING PONG! GETLOCALIP My IP: %s SCANNER SCANNER ON | OFF HOLD HOLD Flooding %s:%d for %d seconds. HTTP Flooding %s:%d for %d seconds. JUNK JUNK Flooding %s:%d for %d seconds. UDP Flooding %s for %d seconds. UDP Flooding %s:%d for %d seconds. TCP Flooding %s for %d seconds. KILLATTK Killed %d. None Killed. LOLNOGTFO 8.8.8.8 /proc/net/route MAC: %02X:%02X:%02X:%02X:%02X:%02X BUILD %s PONG %s 2>&1 %s: __is*{_l}(%d,%#x {locale}) /dev/null (nil) +0-#'I npxXoudifFeEgGaACScs hlLjztqZ CAk[S — See more at: www.incapsula.com/blog/cctv-ddos-botnet-back-yard.html#sthash.PBKyc8Hl.dpuf


Доступ к взломанным камерам осуществлялся из различных мест, что может говорить о работе нескольких человек.

netstats-cctv-ddos.png

В качестве заключения


Несмотря на то, что подобная проблема обсуждалась уже не один десяток (да что там, сотню) раз, она остается актуальной. В некоторых даже неплохо оснащенных компаниях к камерам безопасности и IoT устройствам относятся, как к обычным железкам, которые можно просто установить, и забыть.

На самом деле, сейчас даже утюги (утрирую, да) оснащены беспроводным модулем связи. Поэтому лучше заранее позаботиться о том, чтобы к условному утюгу никто не смог получить доступ. Иначе потом может быть мучительно больно.

© Habrahabr.ru