Есть мнение, что банковские CISO — скучные ребята. Совершенно не умеют работать руками, бесконечно совещаются и вообще занимаются всякой ерундой. Героя сегодняшней истории, isox’а, скучным назвать точно нельзя. Кому-то он известен как топовый багхантер Яндекса, кому-то как создатель открытой базы уязвимостей Vulners, а кому-то — просто как крутейший спец по корпсеку. Isox предельно честно рассказал о своей работе, о блеке, об анонимности и о взрослой ИБ в целом. Итак, знакомься — Кирилл «isox» Ермаков, главный безопасник QIWI!



Факты


  • Использует nano, не признает Vim
  • Может найти path traversal даже в чайнике
  • Всегда под рукой:
  • Гитарист. Играет на
    • 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 и все эти стандарты безопасности.


О блеках, греях и чайниках



У меня никогда не было мыслей блечить. Ну то есть как не было: я работаю в компании, где могу наблечить охулиард :). Как думаешь, такие мысли посещают? (Isox, ты слишком честный. — Прим. ред.) Но при этом есть одно но.


Я очень люблю спокойно спать. Когда блечишь — будешь просыпаться ночью просто потому, что ты осознаешь, что чего-то натворил и возмездие рано или поздно тебя достанет. Нет блеков, за которыми оно не приходит, просто за некоторыми чуть раньше, а за некоторыми чуть позже.


Вайты всегда скилловее блеков. Вайты скилляются хаотично: нашли интересную тему, поресерчили, проскиллялись. Блеки развиваются только в тех направлениях, которые эффективны сейчас и приносят деньги.


Блек не будет скилляться ради фана. Он не будет из интереса ломать чайник, чтобы понять, как он устроен. Денег с него не получить. Вот, например, d0znpp. У него недавно было время, он пошел и поломал чайник. Он теперь у нас главный хакер по взлому чайников, холодильников и другого IoT. Круто, прокачал скилл, респект! Но ты же понимаешь, блек никогда не будет этим заниматься.





Блеки, которые каждый день атакуют QIWI, — это скрипт-кидди. Они не скилловые. Хотя они в общем и понимают, how to, но используют чужой инструментарий, который подготовили для них другие блеки. Конечно, где-то есть могучая кучка, которая собственно пишет сплоиты, малварь. Вот они круты, эти чуваки знают, что делают, и, заметь, чаще всего сами не занимаются блеком. Это мой опыт, это те, кого мы встречаем. Но, кстати, я не отрицаю, что тех крутых, кто нас ломает, мы можем просто не замечать.


Нельзя называть блеком человека, который написал малварь, но ее не использует. Он просто написал малварь, это прикольный софт. Пока он ее не распространяет и не использует во вред, он не блек, он грей или ресерчер. Вот эти парни скилловые, и они спокойно спят.


Блеки мелкого пошиба не ищут новые уязвимости. Им неинтересно найти новый вектор. Например, есть у тебя Ruby on Rails, в нем периодически стреляют то SQL-инъекции, то RCE. И найти что-то кроме инжекта или RCE — это неинтересно. Найти абсолютно новый вектор и раскрутить его — вот это интересно, с моей точки зрения. Блек не будет этим заниматься. Зачем? Любая типовая компания ломается на раз-два. Зачем изобретать велосипед, если у тебя и старого хватит, чтобы поломать?


У блеков есть проблема — они слишком верят в свою безнаказанность. Они никогда не думают о том, что жертвой может оказаться человек, который способен их поймать. И не понимают, насколько другие компании сплочены в желании их найти. Нет, ну вы правда считаете, что корпоративные безопасники не общаются? Это тоже комьюнити. А в нем принято помогать друг другу.


Надеяться, что тебя не найдут, — это последнее дело. Любую твою активность, даже хорошо закамуфлированную, можно посчитать. Вопрос в стоимости поисков по сравнению с тем, сколько блек пытается спереть. Это же простая математика: если ты украл 10 000 000 долларов, то эти люди будут готовы потратить как минимум 9 999 999 долларов, чтобы тебя найти, и все еще останутся в условном плюсе.


В нашей стране какое-то странно пренебрежительное отношение к управлению «К» или ЦИБу. Меня не покидает ощущение, что кто-то умышленно распространяет этот миф. В обоих ведомствах сидят высококлассные специалисты. Там крутые whitehat’ы, которые знают свое дело, и они умеют ловить п*в [преступников]. И на их стороне все коммерческие компании и даже само государство. Это миф, что у нас в спецслужбах нет хороших спецов. Есть, знаю из первых рук.


Большинство хакеров отличается тщеславием. Мы что-то похекали и сразу же бежим всем рассказывать: «Я похекаль! Я молодец! Ты только зацени, как я могу!» Рассказываем одному, другому, третьему, а четвертый работает в органах или просто окажется крысой. Есть огромное количество людей, которые за небольшие деньги готовы сливать, что происходит на блекфронте.


Блеков бывших не бывает. Тут вопрос в том, как работает твоя голова. Если она хоть раз позволит тебе совершить противоправное действие, она позволит и второй, найдя для этого достаточное оправдание, чтобы ты не считал себя виноватым. Те, кто блечил, не могут попасть на работу в крупные компании. Человеку, который согрешил один раз, больше веры нет. Ресурсы, которые нам придется тратить на то, чтобы этого человека контролировать, будут больше, чем тот профит, который он принесет, добавляясь в нашу команду.





Конечно, есть блек по дурости. Например, поломал IBM, а у них нет bug bounty. Ну пошел и сдал им. Но это не блек, это grey: ты ломаешь ради фана. Нашел багу, посмотрел на нее и пошел дальше. Другое дело, когда ты поломал что-то ради наживы. После этого тебе закрыт вход в любую большую компанию. Все твое прошлое раскопают, и никто с тобой больше разговаривать не будет, потому что ты можешь натворить это еще раз.


O Vulners



Я еще в «Позитиве» говорил: мы написали крутой движок для сбора данных об уязвимостях. Давайте сделаем бесплатную открытую базу багов? Ценность в том, что в базе контент нормализованный. Это не человекочитаемый формат, а машиночитаемый. Нужно где-то взять исходное описание бага, распарсить, выяснить, где у него описание, где версионные проверки. Мой движок все это умел, и я хотел дать все это бесплатно и всем.


Однако скоро я ушел из PT, и все, что написал по этой теме, пришлось оставить. Я очень хотел довести проект до паблика, но формально не мог использовать код, написанный в Positive Technologies для MaxPatrol. Но человек, который написал что-то один раз, сможет написать что-то и второй. Я просто взял и с нуля сделал все то же самое — свой фреймворк для парсера и для обработчиков — и запустил базу, о которой мечтал. Так родился Vulners.com.


Сейчас проекту год, и у нас уже 500 уникальных активных юзеров в день, которые как-то нами пользуются. Ну и два десятка человек, которые спрашивают, куда задонатить :). За этот год я уже три раза переписал Вульнерс, это видно по API.


Конечно, Vulners я запилил не в одиночку. У нас была старая команда из PT. Ребята, которые перешли со мной из PT в QIWI. Они и подключились. Я пишу ядро и админю, Игорь Videns пишет поиск, Ваня Ванкувер — фронт, Саша Plex — роботов-сборщиков, а Саша Леонов — статьи и аналитику. Ребята знают тему не понаслышке и сами используют Vulners в повседневной работе. Это просто наше желание сделать мир лучше. Мы бы все равно придумали что-то похожее в QIWI, ну так что бы не сделать самим, покрасить в оранжевый цвет и дать всем пользоваться бесплатно?


Я никогда не искал инвесторов. И не хочу. Они заходили, но я не понимаю, зачем мне деньги в этом проекте. Сейчас приходит инвестор с улицы и говорит мне: «Я даю тебе двадцать миллионов на три года». А я за это должен кодить то, что зарабатывает деньги. Блин, я не хочу кодить то, чего они хотят. Я хочу кодить то, что мне интересно. Функционал базы знаний с удобным API останется бесплатным навсегда. Если я вдруг решу, что какой-то дополнительный функционал стоит денег, — ну что же, придется прикручивать кнопку оплаты.


О программистах, хакерах и безопасниках





Что-то поломать, поовнить или денег заработать — нормальная мотивация, это должен пройти каждый. Люди таким образом развивают себя, AppSec. Просто дальше есть два пути. Первый — они продолжают втыкать кавычку куда ни попадя и находить фигню, это так называемые рандомщики. Или они начинают разбираться, как те или иные вещи работают, и они становятся ценными кадрами AppSec. На самом деле в Enterprise нужны и те и другие.


Рандомщики тоже нужны. Мы вот сейчас попали в дурацкую ситуацию. У нас есть Игорь Videns и Ваня Vancouver. Они оба из тех чуваков, которые сначала прочтут всех исходники, а потом пойдут ломать. А нам вот не хватает чувака, который просто может помахать кроличьей лапкой и попасть, куда нужно.


Вот тебе пара примеров с Яндексом. Это уже старая история, думаю — можно рассказать. У них есть XML API. Есть там такой параметр — xmlns. Что-то меня дернуло туда вписать %s, и тут я увидел классическую format string уязвимость. Единственное, что омрачало, — это то, что я при каждом новом запросе попадал на новую ноду из балансировщика нагрузки. До RCE довести не получилось, только чтение памяти было. Точно такая же история была с их почтой для домена. Я смотрю на запрос и понимаю, что мне как программисту просто было бы лень на него писать регулярку. Натравил на него sqlmap — и в базе.


Чутье — вот что нужно. Важно понимание, где с той стороны можно нахалтурить. Человек, который писал веб, становится хорошим пентестером. Потому что он понимает, что существуют вот такие уязвимости, там-то можно накосячить, понимает, как остальные пишут такие же куски. Ибо все пишут абсолютно одинаково. HOWTO => Stack Overflow => Copy-Paste. Например, недавно мне захотелось сделать автоматическое приведение типов на Вульнерсе. Я открываю первый топик со Stack Overflow, там советуют сделать eval. Ты представляешь, сколько сейчас проектов в продакшене с eval?


Нам кажется, ни один нормальный человек не будет eval’ить инпут. Ничего подобного! Если ты обычный программист, у тебя задача — сделать, чтобы работало. Ты просто не думаешь о том, что в инпут можно что-то еще подсунуть, особенно в запарке. У тебя голова в эту сторону не работает.


Главная концепция безопасности в том, что мы считаем любой user input вредоносным априори. А девелопер не считает. Вот разница мышления безопасника и девелопера. 90% уязвимостей связано именно с инпутом. Разработчик просто не знает, что можно вот так, да и все. В этом и состоит работа корпоративного безопасника — объяснить девелоперу, что user input бывает зловредным. Вот тогда сразу весь код становится секьюрным.


У пентестеров тоже не все хорошо, они не знают, как писать безопасный код. Вот приходит ко мне человек, вроде скилловый. Назубок рассказывает OWASP TOP-10 и методы эксплуатации. Нашел инъекцию, все рассказал. Ну а дальше-то что он будет с этим делать? Как он объяснит программистам, как надо сделать правильно? Он же никогда не писал бэкенд, для него параметризованные SQL-запросы — это неизвестное словосочетание, он не знает про технологии защиты. Не знает, что делать concat в SQL-запросе теперь даже разработчики не советуют. Не потому, что это несекьюрно, а просто потому, что можно случайно нарушить запрос и все поломается. Вот в этом беда современных пентестеров — у многих недостаточно технического бэкграунда. Они уже знают, как поломать, но не знают, как защититься.


О работе и о том, кто приходит собеседоваться




Говорят, если человек чего-то не знает, но горит желанием — его возьмут. У меня так не работает. Есть минимальный чек-лист — стандартные двадцать вопросов, по которым я гоняю соискателя. Мы даем список и предлагаем отметить честно +, – и +–. И по плюсам начинаем разговаривать. Это такие опорные точки для диалога, чтобы копнуть знания. Вопросы из самых разнообразных областей, в основном база. Она позволяет общаться на одном языке. Не только внутри команды, но и с разработчиками и эксплуатацией. Если ты придешь к админам и скажешь поставить вот такой параметр ядра вот в такое значение, то первое, что у тебя спросят: а что он делает? И почему именно в такое значение? И тут, если ты плаваешь, тебя могут просто вежливо попросить вначале разобраться самому и только потом давать советы другим.


Сначала спрашиваем про ISO, про 152-ФЗ, про PCI DSS. Надо, чтобы ты знал теорию. Иначе как ты будешь секьюрить, если ты не знаешь, какую информацию надо защищать? Знание комплаенса, хоть в общих чертах, нам очень важно. Но это не будет стоп-сигналом на самом деле. Если чел скилловый, этому мы научить можем.


Дальше — про вебочку. Первый же вопрос — SOP, Same Origin Policy. То есть мне не нужно слушать байки про XSS. Вначале надо вообще разобраться, на чем строится безопасность веба, как вообще браузер работает хоть в общих чертах :). Eсли мы здесь ни о чем не поговорили, значит, дальше мы расходимся. CSRF, XSS — это все хорошо, но это частности.


Следующий вопрос — методы сегментации сети. Крутой вопрос. Типовой безопасник, который ко мне приходит, вообще никогда не видел большую сеть, и, что с ней делать, он точно не знает. Этот вопрос, по правде говоря, можем простить. Если человек всегда работал «с той стороны» (читай: ломал извне), естественно, он не знает, как секьюрить корпоративные сети. Обычно в этом случае предлагаем поговорить о TCP/IP — это вообще что такое? Мы ищем у человека общее понимание, как работает сеть. Если он знает, что такое IP-адрес, и на этом его понимание заканчивается — not really cool.


Надо уметь читать чужой код и понимать его концепцию, идею, а не кусками пытаться что-то уловить. Видел когда-нибудь код на Spring и Struts? Он же совершенно нечитабелен, пока не повернешь голову под определенным углом. Если мы возьмем к себе чувака без понимания и дадим ему наши 19 миллионов строк кода на Spring, он сможет нам в чем-то помочь? Не думаю.


Об анонимности



Базовый принцип безопасности — разделяй дом и работу. То есть машину, на которой ты что-то делаешь, и машину, на которой ты ничего не делаешь. На одном компьютере ты хакер-мегапавнер, на другом — обычный Вася, и будет счастье. Если этого не делать, рано или поздно ты ошибешься.


Тебя сливают именно те данные, которые ты вводишь сам. Никто, кроме тебя самого, тебя не сдаст. Настроил все как бы секьюрно — Tor, виртуалка, а потом лезешь на свой блог проверять, работает ли интернет :).


Если мы говорим про «защиту об блеков», это разделение машин очень хорошо работает. Заведи два компа. На этой машине у тебя платежная информация: на этой машине ты ходишь в свой PayPal, QIWI-кошелек. И вот другая машина, на которой ты занимаешься всякой фигней. Ну поймаешь ты малварь, ну похекают тебя. А на машине ничего ценнее пароля от одноразовой почты нет.


Надо иметь разные физические машины. Виртуалки — это тлен. Отдельная машина, только так. Виртуалки удобны, но рано или поздно спутаешь браузеры, все путают. Собственно, так обычно блеков и ловят, они сами палятся.
Возьми хотя бы VPN. Ты работаешь, павнишь что-то. VPN моргнул на секундочку — и этого хватило. Всего один пакет, и отсветился твой реальный IP. Провайдер пишет трафик, три месяца минимум. Один-единственный трейс — и finita la comedia.


Ломать из-под «мака» — вообще дурная затея, там слишком много intercommunications. Ни один Little Snitch тебя не спасет. Никто не знает, что там в точности происходит, — вдруг OS X стучит на более низком уровне в обход всех твоих VPN и файрволов?


Если тебе надо захайдиться, есть только одна реальная схема. Едешь в Митино, там покупаешь бэушную симку, бэушную мобилу и бэушный ноут. Едешь в ближайший большой город и там делаешь то, что тебе надо. А когда сделал — выкидываешь все в ближайшую речку. Вот это работает.





Блечить с использованием общедоступных утилит — это тоже глупость. Стучат все. Особенно пентест-утилиты следят за тем, кто, что и как пентестит. Например, надо быть наивным, чтобы поверить, будто Burp Collaborator не записывает те запросы, которые на него приходят. Даже нет, похек бывает везде! Один раз ради шутки мы выложили плагин для Burp Suite с небольшой закладкой. Около нее написали: «Это шутка, парень! Если ты это нашел, то ты крутой, напиши нам!» Думаешь, кто-то откликнулся? Ни разу.


Любое ПО, в котором используются сторонние либы, которые ты хотя бы не вычитал, — это по определению несекьюрно. Даже в энтерпрайзе используются мутные либы, которые никто не проверяет, что говорить об обычных приложениях?


Беседовал Илья «f1nnix» Русанен





Впервые опубликовано в Журнале «Хакер» от #06/2016



Подпишись на «Хакер»:


UPD: Редакция журнала «Хакер» приносит извинения за неверную ссылку на WSO-shell. Ссылка удалена.
Поделиться с друзьями
-->

Комментарии (51)


  1. ChiefPilot
    24.06.2016 10:51
    +3

    Думал, есть только «гламурное кисо», а, оказывается, есть ещё и «банковское CISO»! :)


  1. gisha
    24.06.2016 11:09
    -1

    Давно уже хочу начать развиваться в этом направлении — какие книги посоветуете «с нуля» или около него?


  1. GeMir
    24.06.2016 11:12
    +1

    Вот, любопытно стало: «захайдиться», «либы», «несекьюрно» и так далее — это авторский стиль повествования, или же речь «главного безопасника» действительно настолько богата жаргонизмами?


    1. XakepRU
      24.06.2016 11:14
      +10

      Речь главного безопасника очень живая и веселая. Инженер же, а не унылый пиджак :).


      1. Noyer
        24.06.2016 11:49
        -3

        Пиджаки тоже бывают инженерами и вполне живыми =) Не с теми пиджаками вы общались =)


    1. dmitry_dvm
      24.06.2016 11:20
      +4

      Почему бы на профессиональные темы не разговаривать на профессиональном жаргоне?


      1. GeMir
        24.06.2016 11:33
        -2

        Официальная терминология и сленг — не совсем одно и то же. Первым пользуются профессионалы, вторым обычно злоупотребляют те, кто ими хочет казаться. Из личного опыта. Отсюда и удивление.


        1. XakepRU
          24.06.2016 11:41
          +16

          100% согласны. Мы подозревали, что Кирилл вместо работы танки качает, а чтобы не выгнали за профнепригодность, рассказывает как «захайдится для блека» и «какие либы заюзать, чтобы не попавнили»


          1. GeMir
            24.06.2016 11:44

            Речь не о сомнениях в профессионализме интервьюируемого (их нет) а о несоответствии действительности ожиданиям. Не стоит ударяться в крайности.


            1. XakepRU
              24.06.2016 11:51
              +8

              А какие ожидания-то были? По-вашему, в корпсеке только роботы, которые общаются языком статей из журнала «Информационная безопасность»?

              Осознавая растущую зависимость от автоматизированных систем, бизнес также готов все больше заботиться об обеспечении информационной безопасности. Причем путь создания системы ИБ зависит от ситуации в данной конкретной организации – от имевших место инцидентов, убеждений конкретных сотрудников – и зачастую формируется «снизу», от отдельных подсистем ИБ к общей картине. В результате создается многоступенчатая единственная в своем роде система, состоящая из различных продуктов и сервисных работ, сложная, как правило, уникальная у каждой компании.


              1. ValdikSS
                24.06.2016 14:17
                +3

                Не впадайте в крайности, GeMir совершенно резонно заметил слишком много жаргонизмов и ка?лек. Для всего этого есть красивые русские слова. Если человек так часто употребляет сленг, или, что хуже, называет себя хакером, я по умолчанию отношусь к нему скептически.

                К слову, я и к журналу вашему до сих пор не привык, как-то сразу отдает несерьезностью обращения на «ты».


                1. fotonstep
                  24.06.2016 15:21
                  +3

                  Не, вы гляньте, ему показали непуганого вайтхата в естественной среде обитания, а он нос воротит


    1. eboyko
      24.06.2016 14:47
      +4

      Действительно: «Блек не будет скилляться ради фана», — какая-то фубля


  1. Antelle
    24.06.2016 11:43
    +8

    Те, кто блечил, не могут попасть на работу в крупные компании.


    Это если нашли. Если успешно блечил какое-то время и об этом никто не узнал — получил работу, денег стало хватать, профит.


    1. isox
      24.06.2016 12:09
      +6

      Ох золотые слова. Это проблема, да.


  1. Caelwyn
    24.06.2016 11:47
    +9

    Это то самое Qiwi, из которого я два месяца не мог деньги вывести, потому что SMS не приходило на телефон, а служба поддержки упорно делала вид что не замечает меня?


    1. eugzol
      24.06.2016 12:09
      +9

      Ваши деньги были в абсолютной безопасности.


    1. fotonstep
      24.06.2016 12:58

      А еще у них уборщица плохо полы моет. Давайте валить все в одну кучу, да.


    1. franzose
      25.06.2016 15:09

      А еще фишка, когда твой e-mail в системе зарегистрирован, а телефон — «данного агента не существует» или что-то вроде.


  1. Noyer
    24.06.2016 11:48
    +6

    Очень круто! Читаю и внутри смешанные чевства говорящие о том, что стоит выключить South Park и пойти позадротить хоть что-то до должного уровня владения. Короче респект Кириллу, материал очень мотивирует.


  1. ilyaplot
    24.06.2016 12:11
    +4

    После прочтения поста создается впечатление, что ты не нормальный разработчик, а только что закончил второй класс школы. Возможно, сленг добавляет завесу тайны в термины, но читалось на одном дыхании как журнал хакер лет 10 назад :)


    1. finnishprince
      24.06.2016 12:16
      +5

      Да откуда это заблуждение-то, что чем круче специалист, те больше наукообразия в его речи?

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


  1. Forx
    24.06.2016 12:30
    +3

    Главная концепция безопасности в том, что мы считаем любой user input вредоносным априори. А девелопер не считает.

    Мне кажется это очевидная для каждого девелопера мысль, что любые данные заведомо опасные и их нужно чистить, по крайней мере для веба — точно.


    1. finnishprince
      24.06.2016 12:39
      +1

      Понимают все, следовать сложно :)

      Когда у тебя небольшой проект, одна точка входа и глобальный парсер инпута, несложно написать регулярки на вход. Но со временем появляются костыли, быстрофиксы, новые параметры, и где-то все равно появляется нефильтрованный ввод.

      Это, конечно, к организации кода вопрос, но в жизни часто бывает как-то так :).


      1. Forx
        24.06.2016 12:43

        Дело не в размерах проекта, а в голове разработчика, получил данные — проверь, вставляешь в базу — очисти, это уже на уровне рефлексов должно быть. В идеале конечно же.
        Просто было странно читать такое про девелоперов от «главного безопасника QIWI», надеюсь он это не про нынешних своих коллег.


        1. Antelle
          24.06.2016 13:09
          +1

          Кавычка в инпуте это совсем детство. Проблемы обычно не из-за этого.
          Получил url http://example.com/%s — проверил, валидный, ок, отправил в сервис, который передаст его другому сервису, который через год воспримет его как format string. Всё проверить, предусмотреть, обложить тестами — это очень сложно, потому что часто разработчик даже не знает, из какого компонента системы запрос возник, через что прошёл, кто и чем его проверил, как и где будет обрабатываться через год, когда накрутят функционала в 5 раз больше чем сейчас. Как видим, с этим не справляется ни яндекс, ни гугл — никто. Дело, конечно, в голове, да, но это уже голова не одного человека, а с одновременным представлением работы системы в целом и каждого компонента в частности есть проблемы: в голову всё не влезает.


          1. Forx
            24.06.2016 15:25
            -1

            Я не только про кавычку, ваш пример это проблема принимающего сервиса, который так же должен проверять все входные данные. Это не так сложно, как вы пытаетесь преподнести. А про компоненты системы — если разработчик не знает откуда пришёл запрос, то тем более нужно их проверять и чистить, если вы с ними работаете, а не просто передаёте данные. Проблему всегда можно избежать на «последней миле», просто очистив данные.


            1. Antelle
              24.06.2016 16:27
              +1

              Такие проблемы оттого что не договорились / не знали / не придали значения / не так поняли, поэтому валидация скорее всего не поможет. Я что пытаюсь донести: "просто очистить" можно, когда знания о системе укладываются в голове (вот текст инпута, вот база, положи одно в другое — да, предельно просто). Когда связей настолько много, что вызовы могут приходить из компонента, спроектированного удалённой командой, а уходить, пройдя через несколько сторонних решений — их не так просто очистить, надо многое держать в голове.


      1. Zibx
        24.06.2016 13:07
        +2

        Сложно определить пользователя. Те же переменные окружения можно считать пользовательским вводом, а можно не считать. Хорошие приложения считают что они запустились на военной базе врага, где вызов системного метода — тоже пользовательский ввод.


        1. finnishprince
          24.06.2016 13:27
          +1

          Ну, не сгущайте краски. Эдак мы и до доверенной среды исполнения, загрузчика и аппаратных закладок в процессорах дойдем :).

          Самый простой способ засекьюрить инпут в типовом проекте (QIWI — не типовой проект!) — просто централизовать ввод, и прямо на уровне middleware проверять инпут по базе регулярок. Чуть что — бросать 400 код, и привет. Так, чтобы до типа-контроллера не долетало. Это если у нас есть какое-то подобие MVC и фреймворка, но без них тоже написать несложно)

          Вот эти телодвижения выше круто работают, когда у тебя есть время и возможность делать хотя бы базовую секурити. А когда «надо срочно добавить поле «Описание» на сайт и еще там в корзине верстка разъезжается», вот тут не работает. Задача сделать быстро и чтобы работало. У типового программиста элементарно нет времени (и привычки!) думать о каком-то инпуте. Разве что, фреймворк подумает.

          Я не говорю, что это нормальный и правильный подход, я говорю, что в небольших проектах так бывает. А небольшой проект !== нет денег.


          1. Paskin
            25.06.2016 10:38

            Централизовать ввод не всегда возможно — особенно когда у системы с десяток разных интерфейсов/протоколов. Типичный случай — шаблоны читали из файла, стало несколько машин — перенесли в базу, потом сделали микросервис, сейчас переезжаем на платформу у которой такой сервис «из коробки», но с несколько другим АПИ.


      1. Fedcomp
        24.06.2016 15:03

        Пишите/используйте абстракции (желательно готовые). Абстракции просто не дадут непроверенному варианту записаться в базу, валидации не пройдут.


        1. finnishprince
          24.06.2016 15:17

          Если вы про ORM, то я писал об этом выше; но и речь не только о базе. Вредоносный инпут может совсем не относиться к БД, и соответственно проходить мимо слоя валидации ORM. В этом случае ответственность за фильтрацию лежит на разработчике.


    1. deemytch
      25.06.2016 13:18
      +1

      Я лично знаю программистов, для которых и git — неподъёмная тяжесть для мозгов, и эту статью читать они не будут вообще. Потому что зачем?
      И при этом они пишут сайты на php. Да.


      1. And32
        28.06.2016 13:09
        +1

        Вся проблема в построении фразы, мне она тоже резанула слух. Звучит, будто каждый программист не считает вредоносными входящие данные. Отнюдь. Просто надо было аккуратней выражаться, смею предположить, что и не каждый безопасник таков, как описывает isox.


  1. Merkat0r
    24.06.2016 12:42

    Ну фииииг знает… QIWI то дырявое — предырявое, а платить за репорты не хочет-с, абсолютно на все — *Нам уже известно* или вообще не отвечают


    1. isox
      24.06.2016 13:11
      +4

      Дырявое? Not really.
      *Нам уже известно* --> В этот момент обычно добавляют в вотчеры к первичному репорту.
      Кидай тикеты в личку, посмотрю что там такое.
      Или телеграм — @isox_xx


    1. isox
      24.06.2016 13:15
      +5

      https://hackerone.com/qiwi ---> Там внизу есть лог. Все, что rewarded = мы заплатили денег. Все, что resolved = мы пофиксили багу.


    1. ethoz
      27.06.2016 16:55

      BB от QIWI платит исправно, но большинство багов фиксятся очень долго, поэтому им обо всём уже известно. Вознаграждения нормальные, заморочится можно, но есть более интересные варианты :)


  1. LukaSafonov
    24.06.2016 12:42
    +5

    Отличный текст и мотивация для молодых специалистов. В QiWi одна из сильнейших ИБ-команд в РФ.


  1. NeoCode
    24.06.2016 19:27

    Отличная статья, спасибо! Вы кстати когда на сайте Хакера форум вернете? B CMS-ка у вас какая-то на редкость тормозная…


    1. finnishprince
      25.06.2016 00:51
      +1

      Рады стараться!)

      По форуму: как только так и сразу, после нового сайта. Мы выкатимся сразу с новым движком и дизом. Сейчас допиливаем верстку и тюним кеши. Текущая CMS — это тихий ужас, полностью согласен, но, увы, были причины сделать так в свое время. Все понимаем, и работаем в этом направлении. Ждать осталось совсем недолго)


  1. handymade
    24.06.2016 22:39
    -2

    журнал Хакер листал лет 15 там так и писалось все для кулхацкеров-падонкафф — «закодить на дельфях» или «perlовая каша» — как сейчас помню, тогда было прикольно. Думал на хабре они будут ориентироваться на более серьезную (взрослую и тд) аудиторию и как то этот сленг модифицируют, даже если так выражается «главный безопасник»


    1. finnishprince
      25.06.2016 00:37
      +3

      Поглядите другие статьи из нашего блога на Хабре. Сами убедитесь: мы можем быть очень унылыми и нудными, что, несомненно, говорит о серьезности и взрослости :)

      А если без шуток, все от материала зависит. Это интервью с веселым и «живым» человеком, делать из его речи нудятину было бы просто кощунственно, поэтому постарались передать.


      1. kolyaflash
        26.06.2016 15:19

        Без «блек не будет скилляться ради фана» статья не стала бы унылее или нуднее ни на йоту. Просто было бы приятнее читать.


  1. Saffron
    25.06.2016 10:44
    -1

    > Возьми хотя бы VPN. Ты работаешь, павнишь что-то. VPN моргнул на секундочку — и этого хватило. Всего один пакет, и отсветился твой реальный IP.

    Откройте для себя уже netns. Вешать роуты триггером на VPN — последнее дело.


    1. Sleuthhound
      26.06.2016 16:47

      Ага, откройте и потом закройте, ибо в подсистеме netfilter в ядре Linux нашли уязвимость как раз затрагивающую user namespaces и network namespaces, сборка ядра с CONFIG_USER_NS=y и CONFIG_NET_NS=y. Пруф http://www.opennet.ru/opennews/art.shtml?num=44669


  1. dark_soho
    27.06.2016 11:45
    +3

    > Вайты всегда скилловее блеков
    В техническом плане — возможно, в остальном — не факт.
    У «блеков» и «вайтов» изначально разные цели. И скилы у них немного различаются. У «блека» главная цель — денежная прибыль. И тут задействуются не столько технические знания, сколько хитрость, умение обманывать, социальная инженерия вообщем. Умение рубить бабло и есть основной скилл «блеков». Остальное их не волнует.
    «вайты» могут иметь больше технических знаний, так как, работают за саму идею ИБ и как следствие питают бОльший интерес к изучению программного обеспечения, поиска уязвимостей, реверсинге.
    Коротко говоря, у одних цель — деньги, у других — изучение программного обеспечения и его защита. Совершенно разные цели. Как следствие — разные деньги.
    Это если сравнивать среднестатического блека и вайта. А так думаю с обоих сторон есть люди, для которых их дело — это работа, хобби, да и вообще смысл жизни. И они наиболее развиты в своем любимом деле.
    имхо.


  1. KonstantinSpb
    27.06.2016 11:47
    +1

    >Надеяться, что тебя не найдут, — это последнее дело. Любую твою активность, даже хорошо закамуфлированную, можно посчитать. Вопрос в >стоимости поисков по сравнению с тем, сколько блек пытается спереть. Это же простая математика: если ты украл 10 000 000 долларов, то эти >люди будут готовы потратить как минимум 9 999 999 долларов, чтобы тебя найти, и все еще останутся в условном плюсе.

    Да уж условный плюс, предположим, что хакера поймали, а 10млн $ не нашли, а на поиски потратили 9 999 999 $, итого совокупный убыток
    19 999 999 $ и где тут ТС увидел условный плюс непонятно, больше смахивает на что-то, из серии что больше весит килограмм металла или килограмм ваты? :)


    1. isox
      27.06.2016 11:51
      +3

      Ой вей. Вы правы, сударь. Некорректно передал мысль.
      Смысл-то был в том, что деньги в этом случае тратятся на расследование и поимку с целью нейтрализации риска последующего рецидива.
      Чаще всего о возмещении убытков можно забыть, но если действовать оперативно, то есть шансы и что-то вернуть.


  1. AndrewTishkin
    28.06.2016 14:18

    Фотографии с потрошением «тумбочек» (тесты на вандалоустойчивость?) для прикола или действительно в обязанности Кирилла входит какая-то физическая работа с ними, помимо софтверной?

    Вот, например, d0znpp. У него недавно было время, он пошел и поломал чайник. Он теперь у нас главный хакер по взлому чайников, холодильников и другого IoT.
    Пошёл в хабраюзерский профиль в надежде, что встречу какую-нибудь блогозапись с подробностями об этом. Не нашёл. Зато выпал в осадок от увиденного женского срача на oxod.ru
    К счастью есть whoishistory.ru, который подтвердил догадку, что у домена просто новый хозяин