Есть мнение, что банковские CISO — скучные ребята. Совершенно не умеют работать руками, бесконечно совещаются и вообще занимаются всякой ерундой. Героя сегодняшней истории, isox’а, скучным назвать точно нельзя. Кому-то он известен как топовый багхантер Яндекса, кому-то как создатель открытой базы уязвимостей Vulners, а кому-то — просто как крутейший спец по корпсеку. Isox предельно честно рассказал о своей работе, о блеке, об анонимности и о взрослой ИБ в целом. Итак, знакомься — Кирилл «isox» Ермаков, главный безопасник QIWI!
Факты
Использует nano, не признает Vim
Может найти path traversal даже в чайнике
Всегда под рукой:
OS X
Sublime Text 2
Canvas
WSO Shell
jpeg-payload от BlackFan
subbrute
pwdump
выделенная машина с 32 ядрами и 256 Гбайт памяти для Burp Suite и FTK
Гитарист. Играет на
Gibson Les Paul № 384 Pre-Historic, купленной у коллекционера из Японии
Fender Stratocaster
Gibson SG Standard 2000
Увлеченный автогонщик. Ездит на Porsche 911
На самом деле я не очень люблю компьютеры. Я люблю гонки. А на гонки нужно как-то зарабатывать. Так я и стал хакером.
Я увлекался time attack гонками. Это очень быстрая езда по кругу на время. То есть нужно просто проехать быстрее остальных свой круг.
У меня была Subaru STI, там все как в мобильной игре. В машине стояли кастомные гоночные мозги за 3000 евро, но сами по себе они почти ничего не умели. В лучшем случае ты просто заведешь машину. А вот гоночного функционала, вроде удаленного снятия телеметрии или системы поддержания давления наддува (Anti-Lag), не было. Чтобы твоя тачка что-то умела, нужно купить к ней дополнения.
У мозгов есть уникальный серийник. Ты отсылаешь его вендору, платишь деньги и получаешь код разблокировки. Вводишь в машине, и у тебя активируется та или иная опция. То есть все гоночные фичи уже изначально зашиты в мозгах, нужно только их разблокировать. Вот тут-то я задумался: а нельзя ли обойтись без вендора?
Машины я умею программировать сам. Если понимаешь, как работает двигатель, настроить сможешь. Конечно, при этом его у тебя заклинит. Но ты же хакер, ты упорный, правда? Так вот, залезаю я в машину и вижу, что система управления заблокирована паролем. У меня тут же в голове сложилось: «заблокировано паролем» и «информационная безопасность» — это где-то рядом. Я запихнул прошивку этих мозгов в OllyDbg (в IDA я тогда не мог) и увидел, что пароль проверяется на клиенте. То есть не посылается на удаленный сервер на проверку, а сверяется прямо в программе управления на компьютере, сделанной в C++ Builder. Один JMP решил вопрос. Так я и попал в свою прошивку.
Оставалась вторая задача — подобрать те самые ключики, которые активировали дополнительный функционал. В Subaru стояли мозги от одного известного вендора. Мне посчастливилось, что у меня за спиной сидели два очень крутых реверсера — Дима Скляров и Саша Plex. Я сказал ребятам: «А давайте взломаем мозги моей машины?»
Дима быстро отреверсил всю прошивку мозга, это был Motorola 68000. Но разобранной прошивки оказалось недостаточно: активационные коды для суперфич, естественно, лежали в защищенном разделе памяти, который присутствовал только в мозге, и вычитать его, казалось бы, было никак нельзя.
В поисках хоть какой-то инфы я пошел на сайт вендора и случайно наткнулся на интересную багу. Когда ты скачиваешь с их сайта файл со свежей прошивкой, URL выглядит так: /download-file?id=315. Я попробовал подставить 316, 317 и быстро отенумерейтил все, что было. Среди слитого сокровища был и Developer Tools, который позволял перепрошить бутлоадер! Оставалось найти образ самого бутлоадера.
Нам помог раздобытый Developer Tools. Через этот devkit мы научились зашивать модифицированные нами прошивки. Дима Скляров нашел единственный XOR в прошивке. Именно этот код отвечал за проверку ключиков. Дальше мы просто модифицировали то поле, где находился серийник, так, чтобы за три перепрошивки вычитать всю область, где находились magiс bytes, и вычислить необходимые коды активации. Так я получил ключики и активировал все гоночные функции у себя в машине.
Вендору мы все зарепортили. Им, впрочем, было все равно. Они уже пять лет не фиксят эту уязвимость. Даже презентацию на PHDays на эту тему сделали. Мы им говорили: «Ну пофиксите, пожалуйста, нам же совестно», а они никак. Зато я почувствовал себя настоящим хакером. Настоящий блек — похекать собственную машину
.
О том, как так вышло
Мой «творческий путь» начался с того, что я нашел в бюджете деньги, которые правильно применил. А именно — на обучение себя. Я тогда работал на одном госпредприятии и сумел выбить из них немного денег на учебу. Оперативно отсдавал RHCSS, RHCT и RHCE. Кстати, что удивительно, эти знания пригождаются до сих пор. В этот момент меня нашел Positive Technologies.
Я знал, как секьюрно конфигурить никсы, винду, слышал про всякие Center of Internet Security, умел куда-нибудь всунуть кавычку и даже мог запустить дебаггер. Короче, они меня послушали и сказали, что я, оказывается, безопасник и мне надо срочно идти работать безопасником. Ну окей, ну пошли тогда
.
Cначала просто работал над MaxPatrol, но быстро нашел то, что можно назвать «своей темой». Мне захотелось не решать частные случаи по одному, а сделать что-то, что могло бы глобально решить проблему поиска уязвимостей методом версионных проверок. Мы скооперировались с Сашей Леоновым (работает сейчас в Mail.Ru) и полностью разобрались в такой штуке, как OVAL. А затем я накодил фреймворк для парсеров, базу данных по сбору информации об уязвимостях и превращению ее в валидный OVAL-контент, пригодный для сканеров безопасности.
Вообще, я окончил МИРЭА по информационной безопасности. Но от этого безопасником не стал. То, чему нас учили в институте, было насквозь неинтересно. Какой-то ISO, 152-ФЗ, PCI DSS, казалось бесполезной чушью. Только спустя много лет я понял, что все эти документы написаны кровью и взломами. В инсте дают базу, которая позволяет строить как-то enterprise security, понимать, как это все должно работать. Этому всему учат в институте, но не объясняют, зачем это нужно. Работая обычным пентестером-одиночкой или безопасником у себя в компании, ты тоже не понимаешь, зачем это все нужно. Образование пытается привить тебе системный подход, без объяснения, где и как ты его будешь применять.
Образование пригодилось, когда я стал работать корпоративным безопасником. Технари вечно кладут болт на основную документальную базу, но они просто ни разу не пытались выстроить безопасность на всех уровнях в большой компании. Вот приходит к пентестеру клиент, просит выстроить ему ИБ. И дает компанию на 1500 человек и 5000 серверов. Давай, сделай ее безопасной! Вот тогда-то образование приходит на помощь. Понимаешь, что процессы стоят во главе всего, зачем нужны ISO и все эти стандарты безопасности.
Факты
Использует nano, не признает Vim
Может найти path traversal даже в чайнике
Всегда под рукой:
OS X
Sublime Text 2
Canvas
WSO Shell
jpeg-payload от BlackFan
subbrute
pwdump
выделенная машина с 32 ядрами и 256 Гбайт памяти для Burp Suite и FTK
Гитарист. Играет на
Gibson Les Paul № 384 Pre-Historic, купленной у коллекционера из Японии
Fender Stratocaster
Gibson SG Standard 2000
Увлеченный автогонщик. Ездит на Porsche 911
На самом деле я не очень люблю компьютеры. Я люблю гонки. А на гонки нужно как-то зарабатывать. Так я и стал хакером.
Я увлекался time attack гонками. Это очень быстрая езда по кругу на время. То есть нужно просто проехать быстрее остальных свой круг.
У меня была Subaru STI, там все как в мобильной игре. В машине стояли кастомные гоночные мозги за 3000 евро, но сами по себе они почти ничего не умели. В лучшем случае ты просто заведешь машину. А вот гоночного функционала, вроде удаленного снятия телеметрии или системы поддержания давления наддува (Anti-Lag), не было. Чтобы твоя тачка что-то умела, нужно купить к ней дополнения.
У мозгов есть уникальный серийник. Ты отсылаешь его вендору, платишь деньги и получаешь код разблокировки. Вводишь в машине, и у тебя активируется та или иная опция. То есть все гоночные фичи уже изначально зашиты в мозгах, нужно только их разблокировать. Вот тут-то я задумался: а нельзя ли обойтись без вендора?
Машины я умею программировать сам. Если понимаешь, как работает двигатель, настроить сможешь. Конечно, при этом его у тебя заклинит. Но ты же хакер, ты упорный, правда? Так вот, залезаю я в машину и вижу, что система управления заблокирована паролем. У меня тут же в голове сложилось: «заблокировано паролем» и «информационная безопасность» — это где-то рядом. Я запихнул прошивку этих мозгов в OllyDbg (в IDA я тогда не мог) и увидел, что пароль проверяется на клиенте. То есть не посылается на удаленный сервер на проверку, а сверяется прямо в программе управления на компьютере, сделанной в C++ Builder. Один JMP решил вопрос. Так я и попал в свою прошивку.
Оставалась вторая задача — подобрать те самые ключики, которые активировали дополнительный функционал. В Subaru стояли мозги от одного известного вендора. Мне посчастливилось, что у меня за спиной сидели два очень крутых реверсера — Дима Скляров и Саша Plex. Я сказал ребятам: «А давайте взломаем мозги моей машины?»
Дима быстро отреверсил всю прошивку мозга, это был Motorola 68000. Но разобранной прошивки оказалось недостаточно: активационные коды для суперфич, естественно, лежали в защищенном разделе памяти, который присутствовал только в мозге, и вычитать его, казалось бы, было никак нельзя.
В поисках хоть какой-то инфы я пошел на сайт вендора и случайно наткнулся на интересную багу. Когда ты скачиваешь с их сайта файл со свежей прошивкой, URL выглядит так: /download-file?id=315. Я попробовал подставить 316, 317 и быстро отенумерейтил все, что было. Среди слитого сокровища был и Developer Tools, который позволял перепрошить бутлоадер! Оставалось найти образ самого бутлоадера.
Нам помог раздобытый Developer Tools. Через этот devkit мы научились зашивать модифицированные нами прошивки. Дима Скляров нашел единственный XOR в прошивке. Именно этот код отвечал за проверку ключиков. Дальше мы просто модифицировали то поле, где находился серийник, так, чтобы за три перепрошивки вычитать всю область, где находились magiс bytes, и вычислить необходимые коды активации. Так я получил ключики и активировал все гоночные функции у себя в машине.
Вендору мы все зарепортили. Им, впрочем, было все равно. Они уже пять лет не фиксят эту уязвимость. Даже презентацию на PHDays на эту тему сделали. Мы им говорили: «Ну пофиксите, пожалуйста, нам же совестно», а они никак. Зато я почувствовал себя настоящим хакером. Настоящий блек — похекать собственную машину

О том, как так вышло
Мой «творческий путь» начался с того, что я нашел в бюджете деньги, которые правильно применил. А именно — на обучение себя. Я тогда работал на одном госпредприятии и сумел выбить из них немного денег на учебу. Оперативно отсдавал RHCSS, RHCT и RHCE. Кстати, что удивительно, эти знания пригождаются до сих пор. В этот момент меня нашел Positive Technologies.
Я знал, как секьюрно конфигурить никсы, винду, слышал про всякие Center of Internet Security, умел куда-нибудь всунуть кавычку и даже мог запустить дебаггер. Короче, они меня послушали и сказали, что я, оказывается, безопасник и мне надо срочно идти работать безопасником. Ну окей, ну пошли тогда

Cначала просто работал над MaxPatrol, но быстро нашел то, что можно назвать «своей темой». Мне захотелось не решать частные случаи по одному, а сделать что-то, что могло бы глобально решить проблему поиска уязвимостей методом версионных проверок. Мы скооперировались с Сашей Леоновым (работает сейчас в Mail.Ru) и полностью разобрались в такой штуке, как OVAL. А затем я накодил фреймворк для парсеров, базу данных по сбору информации об уязвимостях и превращению ее в валидный OVAL-контент, пригодный для сканеров безопасности.
Вообще, я окончил МИРЭА по информационной безопасности. Но от этого безопасником не стал. То, чему нас учили в институте, было насквозь неинтересно. Какой-то ISO, 152-ФЗ, PCI DSS, казалось бесполезной чушью. Только спустя много лет я понял, что все эти документы написаны кровью и взломами. В инсте дают базу, которая позволяет строить как-то enterprise security, понимать, как это все должно работать. Этому всему учат в институте, но не объясняют, зачем это нужно. Работая обычным пентестером-одиночкой или безопасником у себя в компании, ты тоже не понимаешь, зачем это все нужно. Образование пытается привить тебе системный подход, без объяснения, где и как ты его будешь применять.
Образование пригодилось, когда я стал работать корпоративным безопасником. Технари вечно кладут болт на основную документальную базу, но они просто ни разу не пытались выстроить безопасность на всех уровнях в большой компании. Вот приходит к пентестеру клиент, просит выстроить ему ИБ. И дает компанию на 1500 человек и 5000 серверов. Давай, сделай ее безопасной! Вот тогда-то образование приходит на помощь. Понимаешь, что процессы стоят во главе всего, зачем нужны ISO и все эти стандарты безопасности.
Комментарий