Как работи ботнета Mirai обяснено накраткоПубликувано / posted 2016-12-03 в категория / in category: Други
|
Много се изписа в последните седмица за ботнета Мирай, чрез който се осъществяваха мащабни DDOS атаки чрез зомбирани ~400k IoT -- камери, принтери, рутери и т.н.
Преди около месец автора му е публикувал кода в Github. Стана ми интересно и го свалих, за да видя как работи.
Има два основни аспекта на ботнета:
- как се сканира за уязвими устройства и как се инфектира. Този аспект беше от основен интерес за мен и в следващите редове го описвам основно него;
- инфраструктурата и как се упралява, така наречения "Command and Control" (CnC).
1. Сканиране
Бота получава от CnC сървъра списък с IP-a, които да сканира. Интересното при Mirai сканирането е, че не използва традиционен сокет (който се предоставя от операционната система), а използва така наречения Raw сокет с цел да може да извършва SYN сканиране, което според автора е 80 пъти по-бързо от обичайното.
Бота сканира IP-тата за отворени Telnet или SSH портове. Когато открие такъв, се преминава към следващия етап.
2. Пробиване
Проблемът с някои IoT устройства че, че идват от производителите със стандартни username и парола, които потребителите не променят. Бота съдържа в себе си 60+ двойки username/password, които използва, за да се логинне през telnet (или ssh). Няма 0-day exploit-и или разни други сложнотии, а само най-обикновен телнет логин.
3. Инфектиране
След успешен логин бота използва /bin/busybox , за да изпълнява команди върху инфектираното устройство.
Първото нещо, което прави е да разпознае архитектурата на устройството -- дали е x86, arm и т.н.
След това се опитва да намери директория в която има права за писане (не рядко логина е с root привилегии (!!!), така че това е излишно в такива случаи). След това качва изпълнимия си код на устройството (според архитектурата), като интересното е, че може да го направи по 3 различни начина: чрез echo, wget или tftp, като echo служи за fallback. Не разбрах, защо кракера си е направил труда да използва и wget, и tftp при положение, че echo е винаги(?) налично.
След успешно качване се стартира бота на вече инфектиеднараното устройство и се изтрива качения файл, за да се заметат следите.
Малко за безотговорността:
- на производителите на IoT устройства, за това, че си позволяват да пускат продукти с компрометирана сигурност. Разбирам, че всички искат максимално бързо да си разработват и пускат продуктите, но това да използваш стандартни пароли е изключително безотговорно. Заслужават да бъдат съдени/глобени солено за подобно нещо.
- на доставчиците на интернет -- не е като да не знаят какво се случва в техните мрежи и не е като да няма какво да направят. Най-малко ще забраниш порта на телнет (20) (и без това никой не го ползва) и проблемът се решава в голямата си част.
- на правителствата, че си нямат на идея какво се случва и съответно не правят нищо. Най-малкото могат да задължат доставчиците на интернет да не допускат включването на уязвими устройства. Един читав скенер за уязвимости, като тези използвани от Mirai мога дори и аз да напиша за не повече от 1 седмица, ffs.
- на потребителите, че не си сменяват паролите на устройствата.
Между другото, не само производителите на IoT устройства са толкова безотговорни. Производителите на коли не остават по-назад, че дори и ги изпреварват с безхаберието си по отношение на сигурността на компютърните системи, които вграждат в колите. Не само, че е изключително лесно да се откраднат повечето от съвременните коли, ами нерядко е възможно да се поеме контрол върху управлението отдалечено, т.е. както си карате, някой може ви хакне системата, да поеме управлението и да ви блъсне в стълб (примерно).
|