- Регистрация
- 01.05.12
- Сообщения
- 20,032
Есть мнение, что банковские 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 и все эти стандарты безопасности.
Последнее редактирование: