ГЛАВА 2. Крис Касперски — Евангелие от Мыщъха
ГЛАВА 2. Крис Касперски — Евангелие от Мыщъха
Крис Касперски (Николай Лихачёв) — популярный российский автор компьютерной литературы на русском и английском языках по информационной безопасности и низкоуровневому программированию. Реверсер, хакер и эксперт по информационной безопасности, известный в Рунете под ником «мыщъх». Считает работу смыслом своей жизни. Хобби и увлечения — астрономия, стрельба из оружия, коллекционирование монет.
Интервью взято в 2014 году.
За свою жизнь на три страны я видел вживую множество гуру из мира больших ИТ — les monstres sacres («священных монстров»). Крис Касперски, также известный как Мыщъх, стоит особняком. Известный российский реверсер, кстати, не признающий себя программистом и хакером, — один из самых популярных авторов российской компьютерной литературы (для статистики: он «заточил» около 800 статей и больше 20 книг). Все — с приставкой «бывший».
Сказать, что теперь у него сложно взять интервью, — не сказать ничего. Моя первая попытка два года тому назад оборвалась на полуслове. На этот раз получилось более удачно, и когда все «эксепшены» были аккуратно расставлены, Крис закурил свои любимые гаванские сигары, и мы начали этот длинный разговор об ИТ, Америке и его бренной жизни.
Рестон
У каждой профессии, как и у человека, — свой рай обетованный. Для актеров это, безусловно, Голливуд. Для компьютерщиков подобным вожделенным пристанищем стала Кремниевая долина. Сразу оговорюсь: предлагаю отойти от более традиционного русского написания «Силиконовая долина», которая в самих США ассоциируется с «порнографически раем» в Сан-Фернандо. Впрочем, кроме раскрученной в медиа Кремниевой долины, в США есть еще одно место, не менее известное у бывалых айтишников в теме, — это Рестон (штат Виргиния). Об этом небольшом городке не принято рассказывать взахлеб, а толпы программистов, работающие там, не любят бахвалиться своим местом работы.
Рестон — небольшой городок, типичное захолустье. Высокая трава по колено, всего одна дорога во внешний мир, несколько провинциальных магазинов натыканы прямо среди поля. За чертой города — бескрайний лес. На фоне типичной деревенско-лесистой местности можно заметить необычные вывески — тут представлены все без исключения американские ИТ-гиганты: Intel, Microsoft, Google, Symantec, PayPal, IBM, Dell, Juniper, Citrix и т. д. Oracle здесь вообще градообразующее предприятие со своей собственной центральной улицей — Oracle way.
Чем же так примечательна эта деревня?
В 20 минутах езды от нее — Вашингтон, политическая столица США. Там обитают основные заказчики и кураторы многочисленных местных ИТ-проектов, которые, чаще всего, не принято обсуждать в прессе. Здесь каждый стремится урвать свой кусок от бездонного федерального пирога — и именитые ИТ-компании, и, тем более, их многочисленные рабочие лошадки — программисты.
Уже более шести лет Крис Касперски — один из колоритных обитателей Рестона. Несмотря на то что знакомые, встречая его на улице, панибратски приветствуют «Привет, Иисус!», от былой публичности не осталось ни следа. После последнего развернутого интервью пять лет назад у него были проблемы с работой, и «плохие парни» грозились депортировать его из США.
Про работу
Что ты сам можешь рассказать о своей работе? Надеюсь, это не ЦРУ?
Мы, конечно, не ЦРУ, но уровень секретности у нас ничуть не хуже. Не люблю секретность. Не выдержал и написал на стене маркером в знак протеста:
Everything is a secret. Everybody is an enemy. A cold war inside [censored].
Насчет врагов я, конечно, погорячился, но перед отбытием на «Black Hat» (в качестве зрителя) со мной провели инструктаж, потому как там шпион на шпионе. Здесь мы подходим к той грани, где мне приходится взвешивать каждое слово, поскольку оно идет в печать. А потому давайте сойдемся на формулировке: «На данный момент работаю в крупной американской компании на должности рядового инженера, занимаясь выполнением задач, поставленных руководством».
Какая у тебя специализация?
Поскольку в физическом труде меня заподозрить сложно, то, вероятнее всего, основной доход дают мозги на плодородной ниве информационной безопасности (ИБ).
Поковыряем немного в плотной завесе секретности. Пару лет назад было много шума, типа ты там какой-то космический софт написал?
Ох уж этот пытливый русский народ, блин. Там все засекречено. Но из того, что можно рассказывать (и что уже засветилось на конференциях), так это проекты для US FAA и US Air-Force.
Писал модули детекции (HIPS) для обнаружения вторжений и атак как second in charge, то есть вся ответственность на мне. Эти модули работают в закрытой сети указанных организаций, физически отрубленных от Интернета, и там даже нормальных rfc’шных протоколов нет — все какой-то левый самопал, с которым приходится работать. Это, конечно, не совсем космос, но очень-очень близко к нему. Любые атаки (инсайдеров) тут — это очень критично.
Касательно космоса — писал софт для одной организации для распознавания спутниковых фотографий. Но это скучно и к космосу имеет только опосредованное отношение. Применил уже давно разрабатываемую мной идею.
Какова история этой идеи распознавания?
Вся история развивалась примерно так.
Специализируюсь в секьюрити, и вот мне предлагают принять участие в американской государственной программе (то есть практически бесплатно) по охоте на сайты с детской порнографией. Но ловить сайты по косвенным признакам (локациям доменных имен и прочим) уже пробовали — неэффективно. И тут меня осеняет, что «распознавание образов» как общая задача, действительно, требует искусственного интеллекта и многих лет упорной работы. А вот данную частную задачу можно решить на коленке буквально в сотне строк кода, анализируя видеопоток — порно или не порно (даже если видеопоток сильно пережат). Попробовали — получилось! Очень высокая точность!
В распознавании «малвари» (а это моя основная узкая специальность) и изображений на первый взгляд мало общего, но существующие антивирусы работают по тому же принципу, который может быть адаптирован и для распознавания изображений, если не спускаться на уровень алгоритмов, а мыслить абстрактными категориями. Именно за счет этого достигается возможность распознавания новой «малвари» моим методом.
Другая госпрограмма США работала со спутниками, меня спросили: а нельзя ли адаптировать твою порнотехнологию для наших целей на спутники (автоматическое распознавание заданных объектов на поверхности)? Решили попробовать. Получилось. Главное требование у всех — скорость. Большого ума от распознавалки не требовали, но она должна была работать так быстро, как это только возможно. Вот три этапа эволюции одной идеи. Кстати, сейчас на эту мою технологию начал поглядывать Google.
Что такого принципиально нового ты смог предложить, если этим занимаются тысячи человек по всему миру?
Цвет кожи (особенно детской) имеет достаточно специфичный оттенок, который предсказуемо «корежится» при пережатии в разные цветовые пространства. Сочетание цветов половых органов также специфично. Но это мы пока говорим про то, что есть на порно. А вот то, чего на нем гарантированно нет, позволяет однозначно отсеять кучу другого контента. Обычно в качестве критерия для поиска с переменным успехом искали лишь первую часть условия. У меня же эффективность значительно увеличивается использованием второй «исключающей» составляющей. Но даже в первой составляющей у меня есть определенные ноу-хау.
А вообще, основные алгоритмы были лицензированы у Кэннона и только допилены под мое видение задачи. К примеру, мой вклад — там распознается не только свет, но еще и постановка освещения. В дешевом порно она очень характерна. Например, повсеместное мигание вспышек. Кстати, в момент вспышки мы получаем истинный цвет, решая проблему баланса.
Короче, это как бы не распознавание изображения в классическом понимании, а распознавание конкретного вида контента. Скорость получилась офигительная, так как выполняются тривиальные операции, которые еще и легко параллелятся. Число ложно-позитивных и ложно-негативных срабатываний получилось даже лучше, чем изначально требовал заказчик.
Да, кстати, вирусы у меня распознаются примерно так же. Тот же самый принцип в точности. Ищем в вирусах нечто такое, что встречается в них, но гарантированно отсутствует в остальных программах.
Как я понял, твой успех был отчасти в том, что все пытались найти общее универсальное решение и впоследствии увязали в нарастающей сложности. Ты же решил узкоспециализированную задачу, зато смог это сделать эффективно и быстро. Немного отвлекаясь от основной темы, здесь мы снова возвращаемся к любимому тобой спору вокруг назначения языков C и C++.
Каждый конкретный язык определяет мышление, хотим мы того или нет. Так вот, постоянно сталкиваюсь с тем, что «плюсовики» тяготеют к решениям в общем виде, в то время как «сишники» решают задачу в частном виде, что в разы быстрее.
Одну текущую задачу сначала показали «плюсовику», спросив, сколько займет ее решение. Он сказал: «Здесь нужно писать могучий движок. Короче говоря, это проект на полгода». Его коллега-«сишник» поинтересовался: «А зачем?» Ведь поставленная задача укладывается в сотню строк кода! Ответ был ошеломляющим: «Ну и что, мы так и будем по сотне строк кода писать для решения частных задач, каждый раз, как они возникают?» Нетушки, задачи надо решать раз и навсегда!
По моему глубокому личному убеждению, проблемы нужно решать по мере их возникновения. Писать программы на вырост с избыточным универсализмом нужно, лишь очень хорошо предварительно подумав, ибо это из серии «Почему сегодня не делают корабли, летающие к звездам?» Ответ прост: потому что корабль, построенный завтра, прибудет быстрее, а корабль, построенный послезавтра, еще быстрее. И их обоих обгонит корабль, построенный лет через пятьдесят, но когда он вернется обратно, то обнаружит, что у человечества совсем-совсем другие проблемы.
Ты упомянул, что этот твой «принцип распознавания» впоследствии применялся к разным темам, но впервые ты использовал его в анализе «малвари» и даже оформил патент на его основе. Можешь рассказать подробнее?
Как-то в бытность свою работал я удаленно. Ну, как работал, скорее анализировал огромное количество сплоитов. Причем делал все медленно, потому что навыка не было. Порядочно устав, я написал программу, которая автоматически сгенерировала другую программу. И вот эта другая программа анализировала сплоиты со скоростью один гигабайт в секунду. Запустил ее и улетел в Берген на встречу со знакомой немкой. И вот пока я гулял по сказочно красивой Норвегии, наслаждаясь золотой осенью и местным колоритом старинных замков и фортификационных сооружений, мой компьютер все это время стоял включенным «под нагрузкой».
И когда дней через десять вернулся, программа уже завершала анализ, но у меня хватило ума никому об этом не говорить и до конца года получать «убитых енотов» автоматом. А за пунктуальность и следование намеченным планам мне еще бонусы платили на работе. В конце концов, меня заела совесть, и я выслал результаты машинного анализа одним и очень большим куском. В результате эта фирма надолго встала, и теперь мне же пришлось писать еще одну программу, чтобы автоматизировать труд тех, кто разгребал эти результаты, писал к ним тесты и заносил в базу.
Собственно, так я и получил свой первый (и пока единственный) софт верный патент.
Не удивлен, что без женщин не обошлось. Как я понимаю, на основе развития этого принципа впоследствии ты написал модуль, благодаря которому был признан лучшим сотрудником года в McAfee. Что он делал?
Если помнишь, была такая нашумевшая китайская атака против Google — Operation Aurora1. Вот за нее и наградили. Фокус в том, что я ее чистой эвристикой распознал, модулем, который собрал еще за полгода до самой атаки. Конечно, мне просто повезло, как везет немногим...
Но в итоге оказалось, что передо мной в США открылись такие перспективы, о которых я вообще мечтать не мог. Даже в принципе. В самом смелом сне.
Про ФБР и тренды ИБ
Не знаю ничего про твою текущую работу, но вот что интересно. Я лично не знаком с рядовыми айтишниками, которые стали долларовыми миллионерами. Насколько я в теме, ты — один из них. Дает ли это какие-то особые ощущения?
Теперь долларовых миллионеров столько, что их никто не считает. Даже миллиардеров и то не считают, ибо слишком много. Долларовых миллионеров только среди моих очень близких друзей я могу перечислить несколько, и никакой элитарности в них не наблюдается.
До сих пор ношу майку, купленную больше пяти лет назад. Всю в дырках и заплатах. В тире надо мной смеются. Спрашивают: «Это дырки от пуль?»
Так что миллион — это очень мало на самом деле. Это верхне-средний класс. С другой стороны, одни интересные люди предлагали мне два «лимона». Я спросил у них, что можно сегодня купить на эти деньги. Интересные люди неправильно меня поняли и, не торгуясь, предложили сразу двадцать, но были посланы, потому что на текущие расходы я и сам заработаю, а большего мне не надо. [1 http://en.wikipedia.org/wiki/Operation_Aurora]
Давай еще немного погутарим про интересных людей, так и шарящихся вокруг тебя. Слышал из новостей, что в США у тебя было неприятное приключение — однажды к тебе с обыском нагрянуло ФБР...
Очевидно, меня подозревали и что-то искали, а потому изъяли все, что могли. Никаких обвинений не предъявляли. Так что по существу мне рассказать нечего.
Чем все закончилось?
История имела приятное продолжение и закончилась внесудебным урегулированием с выплатой мне отступных в размере зарплаты сферического программиста из РФ за несколько лет, так что никакие это не потери, а сплошные приобретения. Выводы? Все, что не убивает, делает нас сильнее. Хотя кастрированный кот с этим может быть не согласен.
Подобные бодрящие дух инциденты регулярно случаются с известными специалистами по ИБ и «полевыми хакерами». Пройдя через это лично, что посоветуешь своим коллегам?
С тех пор, когда внезапно ФБР постучалось в дверь и изъяло все железо, флешки и все-все-все, у меня появился ценный жизненный опыт. Теперь время от времени самые важные для меня данные я сбрасываю на «винт» и кладу в банковскую ячейку. Это — мои личные файлы (не для чужих глаз). А все, что не представляет секрета, я активно раздаю народу. В тот раз мне пришлось собирать себя по кусочкам, качая файлы взад у тех, кому я их давал ранее. Месяца за три я собрал себя процентов на девяносто, кое-что оказалось утеряно безвозвратно, ну и фиг с ним.
Переходя к твоей специализации — реверсинг любого кода, анализ вирусов и разной малвари. Расскажи про их эволюцию — вначале были стелз-вирусы, затем пришла эпоха полиморфов, а что было потом?
А потом «замысловатые слова» посыпались как из рога изобилия. Advanced persistent threat (или сокращенно APT) обычно включает в себя сокрытие факта своего присутствия в системе (он же Stealth, он же Root-Kit), активное/пассивное противодействие обнаружению и удалению и т. п.
Полиморфизм — это частный случай метапрограммирования. В computer science под метапрограммированием обычно подразумевают программу, результатом работы которой является другая программа. Пассивные детекторы сканируют файлы в поисках уникальных последовательностей символов. Активные (их принято называть «проактивные») детекторы работают по принципу поведенческого анализа. Грубо говоря, последовательность вызова API-функций — это метрика. Поведенческий анализ распознает определенные сценарии (например, инъекцию кода в доверенный процесс) безотносительно того, как именно они реализованы, и последние несколько лет идут кровопролитные бои за видоизменение поведенческих сценариев до состояния, когда они становятся практически неотличимы от легитимных сценариев популярных программ.
Изменились и угрозы. Если во времена MS-DOS вирусы были «проблемой грязных рук» и не затрагивали тех, кто пользовался лицензионным программным обеспечением, то сейчас основная масса вредоносных программ распространяется через документы, эксплуатируя ошибки проектирования. Дороже всего приходится расплачиваться за ошибки в сетевом стеке — чтобы подхватить заразу, достаточно всего лишь интернет-подключения, даже браузер запускать не обязательно, хотя ошибки в сетевом стеке — большая редкость и гораздо чаще хакеры проникают через святую троицу — pdf, jar, swf. По умолчанию браузер загружает их автоматически, и если не установлены обновления — ждите проблем.
Вообще, полиморфическим технологиям сейчас переломили хребет?
Отнюдь. Во времена MS-DOS вирусы включали в себя генератор кода, доступный для анализа. Сейчас же код генерируется удаленно на хакерском сервере и отдается по http-запросу. Или... не отдается. Сервер проверяет IP-источник запроса, и в случае каких-либо подозрений последующие ответы возвращают 404 или чистую страницу. К тому же, хакеры обязательно проверяют IP на принадлежность к антивирусным компаниям и разным правительственным лабораториям. Да и сам генератор в любом случае остается недоступен. В самом лучшем случае вы можете его купить на черном рынке за наличные деньги, но чаще всего такая возможность недоступна, а потому в распоряжении аналитиков есть лишь отдельные экземпляры работы генератора, в которых необходимо выделить неизменную часть, что существенно затрудняет разработку детектора.
К тому же централизованный генератор хакеры могут обновлять так часто, как им вздумается. Прошли времена, когда вирусы работали только под MS-DOS и только под Intel x86. Сейчас необходимо распознавать не только машинный код x86, ARM, PowerPC, не только байт-код (Java, Flash), но и бесчисленное множество скриптовых языков (JavaScript, VBScript, Python).
Например, на Маках Python идет предустановленным, что открывает для хакеров новые перспективы. Кстати, Python замечательно распространяется не только в виде скриптов, но и байт-кода.
На фоне всего сказанного, что можно сказать про перспективы традиционного автоматического лечения вирусов?
Автоматическое лечение (удаление троянцев) неуклонно сдает свои позиции, и зачастую лечение сводится к переустановке системы. Кроме того, лечение возможно только на end-points. Типичный IPS в лучшем случае предотвращает атаку, но не в состоянии обезвредить уже атакованные системы, поскольку IPS находится между атакуемым и атакующим.
Вообще сейчас перед хакером стоит другой приоритет — любой ценой передать управление на свой код, например, расположенный в файле документа и не рассчитанный на исполнение. Эта новая доминанта содействовала развитию веера новых технологий от NOP Slides до Heap-Spay и Return oriented programming (оно же ROP).
Крис, как человек изнутри этой темы, поясни, как антивирусная индустрия вообще справляется с таким огромным потоком новых зловредов? Сколько «дохлых тушек», положенных реверсеру на стол, он способен физически обработать в сутки?
Этим занимаются специально обученные люди и машины, причем машины все более активно вытесняют людей. Все, что можно автоматизировать, — давно автоматизировано. Сейчас этих тушек столько, что никаких человеческих ресурсов на них не хватит. В качестве примера устройства этого процесса могу посоветовать интересную презентацию, ищите ее по ключевым словам: Adobe Malware Classifier.Вообще, дизассемблировать каждую тушку зловреда — это все равно, что хватать вражеских солдат по одному и допрашивать. Оно, конечно, полезно. Добыть языка. Одного. А лучше двух. Но что они могут рассказать? Стратегические планы верховного командования им все равно не известны.
Сегодня зловреды уже не сами по себе. Они — пушечное мясо на поле кибер-войн, сегодня от них зависит чуть больше, чем ничего. Сейчас важно суметь понять устройство хакерской экосистемы — круговорота машинного кода и наличных денег.
Каковы сейчас самые общие тренды ИБ в рамках этого круговорота?
Основные тренды уже сидят, причем сидеть им еще долго — лет двадцать, а то и больше. На помощь антивирусам пришли FBI, CIA, US Secret Service и другие страшные слова. Поэтому сейчас маржа везде падает, а посадки растут.
Самый последний писк моды — в прицел атаки попали встраиваемые устройства. В первую очередь это, конечно, роутеры. Зловредный код в роутере очень сложно обнаружить. А тем временем хакеры наши способ проникнуть внутрь камер наблюдения, подключенных к Ethernet, например используя процессорные мощности для майнинга биткоинов. На очереди умная бытовая техника (например, холодильники), а также атаки на бортовой компьютер автомобиля — это фантастика новой реальности.
Куда растет современный рынок коммерческих решений в области ИБ? Насколько я знаю, это одно из самых быстрорастущих и популярных направлений вообще в ИТ?
У меня лет двадцать опыта работы в индустрии безопасности, в том числе и на позиции архитектора. Я хорошо знаю рынок и видел множество примеров успешных начинаний, впрочем, неуспешных примеров было еще больше. Рынок систем безопасности действительно очень быстро растет. И растет он потому, что совсем недавно вирусами занимались школьники, «подонки» и прочие «креативные» личности. Затем ПК подключили к банкам, и тут оказалось, что на троянах можно делать деньги.
Рекорд в этом деле — двадцать лет отсидки за шесть доказанных нулей. Накинем еще один нуль за счет недоказанных, но... когда к Интернету подключили госучреждения, когда спецслужбы полностью компьютеризировались, внезапно выяснилось, что хакеры — это не просто «оболтусы с Дерибасовской», а угроза национальной безопасности. Уже несколько лет, как действия в кибер-пространстве США могут официально расцениваться как объявление войны и быть достаточным основанием для введения реальных войск на территорию противника.
Поэтому, как только государство появилось на рынке ИБ, домашние пользователи перестали быть в центре внимания просто потому, что у них нет пары десятков миллионов, с которыми они готовы расстаться (и еще столько же заплатить за поддержку). Причем государства всех стран крайне смутно понимают, что им нужно покупать для своей безопасности, посему покупают они много лишнего.
В итоге все крупные игроки, ну то есть абсолютно все, купили огромное количество решений безопасности, и на гребне следующей волны пришли системные интеграторы, пытающиеся собрать эту груду разрозненного говна воедино. Но и этот гребень уже пошел на спад, а на горизонте маячит новый третий. В практическом плане это означает, что скоро предстоят сделки на миллионы и миллиарды долларов, но «повезет» здесь только тем, кто к этому уже готов и у кого уже есть готовые решения.
Напомню, что в свое время антивирусы для ПК дали рождение многим нынешним компаниям-миллиардерам, возникшим буквально на пустом месте без каких-либо инвестиций. Но это было относительно давно, в девяностых. Впрочем, суть осталась неизменной — большие деньги зарабатывает тот, кто первым предлагает «спасительную» услугу, когда еще никто толком не осознал своих потребностей и необходимостей.
Развивая эту тему, можно ли поговорить о третьем гребне волны? Конечно, тебе это не интересно, но среди наших читателей-айтишников многие неравнодушны к деньгам. Можно ли привести примеры пока не заполненных ниш, чтобы молодые и амбициозные специалисты по ИБ с твоей помощью могли бы разглядеть, где же лежит этот новый и такой вожделенный Клондайк?
Чего только не ломают хакеры сегодня! И если на POS-терминале антивирус еще можно представить (хотя с большим трудом), то, например, на surveillance camera антивирус тупо не встанет потому, что это конструктивно не предусмотрено. Хотя де-факто там, скорее всего, ARM и портированная версия Linux. Такая камера вещает потоковое видео, и там хакеры уже нашли дыры, позволяющие заливать шелл-коды со всеми вытекающими отсюда последствиями.
Вот мой личный пример из этой оперы. Недавно я прикупил пару Ethernet-камер для дома. С камерами идут аккаунты на сервере их производителя с персональным доменом третьего уровня — заходи себе через браузер, введи пароль и смотри удаленно, что там дома у тебя происходит. Два сервомотора обеспечивают свободу наведения, а ИК-подсветка видит даже в темноте — все было бы хорошо, если бы не было так плохо.
Жизнь показала, что эти камеры оказались дырявые, и в них уже поселился ботнет. Сетевым червям даже мозги напрягать не нужно: ваш домен третьего уровня (точка входа в контрольную панель камеры) — это, грубо говоря, число (в данном случае) очень короткое, а потому все камеры сканируются перебором влет и тут же автоматически взламываются. А вот обнаружить такую атаку — затруднительно. Ну, то есть не то, чтобы совсем затруднительно... Например, если в камере не включен протокол https, то шелл-коды ловятся сниффером, а если включен? Мне повезло, что в моем случае производитель сделал фейковый https (ну, практически фейковый — у моей камеры нет ресурсов для шифрования видео, потому по https она только пароль с логином передает, а все остальное — гонит через http).
Поэтому мне пришлось после работы самолично поковырять такую камеру из-за ее заражения, и я обнаружил, что ботнет откликается на определенные http-запросы к камере. Детектор зараженности, быстро написанный мною на «питоне», укладывается меньше чем в сотню строк. Если накинуть еще пару сотен, то можно на Squid proxy через icap-фильтры давить попытки таких червей проникнуть в камеру, тупо заворачивая их «на юг».
Другой личный пример. Видел в местном магазине микроволновку с Ethernet. По сети она сама выкачивает из Интернета время и режимы приготовления тех или иных блюд, используя сканер штрих-кода с упаковки товара. От наших электронщиков слышал, что там при старте прошивка грузится в ПЗУ, распаковываясь в память, и что холодный рестарт, возможно, спасет домохозяек. Но что такое холодный рестарт для микроволновки, особенно в США? Если черви будут атаковать потоково, просто устанешь перезагружаться.
Подводя итог — через несколько лет на рынке бытовой электроники будут миллиарды (!) подобных «умных» устройств, подключенных к Интернету, многие из которых — на самом деле не умные, а очень даже глупые (потому как дырявые и уязвимые). Особенно, если они подключены к ПК. Тогда тот, кто заразил ПК, может контролировать весь «умный» дом удаленно.
Но известные мировые производители бытовой электроники разбираются в безопасности как «тузик в апельсинах» (смотрите два моих личных примера выше). И потому они будут вынуждены выкупать сторонние решения. Все это — огромный, только зарождающийся рынок. И он просто гигантский! Поверьте, что рынок ПК в сравнении с ним «нервно курит в сторонке». Сюда уже устремились первые и пока «совсем зеленые» поставщики решений ИБ.
В первую очередь это стартапы, один из которых недавно приобрел очень известный бренд бытовой электроники за деньги, которые лично мне даже не снились. А в том стартапе работает всего несколько человек, и они, между нами говоря, ничего нового и не сделали (слегка пропатченная OpenBSD, чуть переделанная OpenJava, а также расширения для отражения атак типа use after free). Но денег уже заработали на всю жизнь.
* * *
В возрасте нескольких недель, когда врач по ошибке вколола инъекцию хлористого кальция, Крис перенес инсульт. Частично омертвели ткани мозга, что привело к легкому аутизму. Это не помешало ему стать признанным специалистом в области ИБ и одним из самых популярных компьютерных авторов в РФ, хотя путь к этому был тернист. Родное село в Краснодарском крае, где Касперски провел большую часть жизни, он определяет лаконично: «Интернет-выделенка десять мегабит канал».
Многие отмечают, что Крис производит странное первое впечатление. Для примера попробуйте представить состояние консула США в Москве, к которому заявляется для получения рабочей визы простой краснодарский хлопчик, у которого нет ни высшего образования, ни подтвержденного опыта работы, то есть вообще ничего, кроме справки о законченном среднем образовании, но которого приглашала на работу ведущая американская ИТ-компания. «Да это …скам какой-то!» — выпалил офигевший консул, назначив служебную проверку всех представленных документов.
Первое собеседование Криса в США также показательно — он отказался выполнять предложенное задание, найдя в нем ошибки и «нечеткую спецификацию». Так его собеседование превратилось в собеседование работодателя, окончившееся оффером на 300 тысяч долларов — первой официальной работой в жизни. Сегодня Мыщъх — обладатель редкой американской визы О1 (для людей с выдающимися способностями). Подобной визой могут похвастаться нобелевские лауреаты, академики, известные всем айтишники типа Линуса Торвальдса. Крис — обладатель титула «лучший сотрудник McAfee», о своей текущей работе говорить категорически отказывается, ссылаясь на потенциальные проблемы.
Впрочем, к опасностям ему не привыкать. Мыщъх вспоминает, что когда еще жил в родном селе, местные бандиты предлагали ему подломать компьютерную систему учета завезенной свеклы на сахарном заводе. Отказаться было сложно, но приятель помог все разрулить без последствий — криминал убедили, что и бабок поднять не получится, и спалятся при этом все быстро.
Собеседования
В моем случае собеседования проходят обычно так. Когда я прихожу наниматься на работу, то сразу говорю, опережая вопросы: «Давайте я сам расскажу, что умею делать и какие конкретно проекты могу предложить, а вы выбирайте. Если вас ничего не заинтересует, пойду к другому. Если же вас заинтересовал, по крайней мере, один мой проект, то обсуждаем, какие ресурсы вы готовы под него выделить. Дадите мне людей и сроки или возможность заниматься этим самостоятельно (но тогда и сроки увеличиваются в разы)?» Также интересуюсь, сколько у них «кастомеров», какой «фидбэк» и не придется ли писать в стол?
Не могу отказать себе в удовольствии сыграть роль интервьюера. Какие у вас есть еще пожелания, мистер Касперски? Я уже записываю.
Если мой новый манагер будет против того, чтобы я держал сексигрушки (ладно, назовем это произведениями искусства) на своем рабочем месте, то мы с ним не сработаемся, и один из нас должен будет покинуть компанию.
Также если в коллективе много людей, неравнодушных к неграм и гомосексуалистам, то от них лучше держаться подальше. Тем более, если они еще и трусы.
Давай про требование о секс-игрушках поподробнее, все остальное пока подождет.
Прямо сейчас у меня на рабочем столе стоит стеклянный анальный плуг. И трава лежит рядом. Четыре мешочка. Кстати, настоящая. Раз положил ее на радиатор сетевого компьютера (с пассивным охлаждением), поскольку весь стол уже был заставлен нужными вещами, и она от сильного нагрева начала пахнуть. Сотрудники учуяли запах и... нет, отсыпать я им сам предложил. Они-то все это время думали, что это просто типа декорация. Ага, щаз.
Крис, я тут в большом затруднении, форкнуть ли разговор по теме «стеклянного анального плуга» или по теме «мешочков с травой, лежащих на радиаторе». И это, поверь, чертовски сложный выбор! Давай начнем с первого. Прости мою детскую психику, но что это за хрень такая?
Это стеклянный дилдо из чистого пурекса штучной работы.
Не будем продолжать эту взрывоопасную тему. Главное, что твой менеджер не против... По второй теме — ты рассказывал, что ФБРовцам тоже предлагал отсыпать хорошей травы по доброте душевной. Я человек старомодный и больше по части крепкого кофе, но даже мнеинтересно, что есть такого натурального «для разгона мозга» на твоем радиаторе?
Я вообще-то не специалист по вопросам «разгона мозга» (криво улыбается). Лично мне мозги по жизни не разгонять, а тормозить нужно. Посредством селективных ингибиторов обратного захвата, отпускаемых строго по рецепту.
Что же касается вас: зайдите на Ютуб и наберите Making a Killing: The Untold Story of Psychotropic Drugging. А на Амазоне можно заказать Diagnostic and statistical manual of mental disorders. В последнем, пятом издании список психических расстройств сильно расширен, и количество ненормальных среди населения с 75 % возросло до 90 %. И если вы думаете, что вас это не касается, просто дождитесь выхода шестого издания справочника.
Короче, был бы человек, а расстройство с прилагающимся препаратом найдется. 100 миллионов людей регулярно употребляют психотропы, отпускаемые по рецепту, то есть приблизительно каждый пятый американец (по другим данным — каждый третий).
Как часто тема травы обсуждается на интервью с тобой?
Травяная тема затрагивалась лишь в собеседовании с Google, потому что обе стороны относились к интервью как к покраске жухлой травы в зеленый цвет, и откровенно стебались. Потому что я не собирался менять работу, и моему собеседнику это было известно. В общем, это было убойное интервью на полчаса, в течение которого мне не задали ни одного технического вопроса. И лишь под конец гуглер сказал, что «только умный человек может позволить себе выглядеть дураком».
Зачем участвовать в интервью, если ты заранее знаешь, что не будешь там работать?
Друг, ты когда-нибудь заходил в магазин без конкретной цели, а просто, чтобы посмотреть? Тут то же самое. Я честно сказал товарищам гуглерам, что у меня есть работа и она мне нравится, но... никто ведь не застрахован от того, что меня, скажем, уволят или, образно выражаясь, поставят раком. Да и вообще, Мыщъх потрепаться любит, особенно о компьютерах, чего и другим рекомендует.
Сколько ты прошел интервью?
Телефонных интервью у меня было столько, что к концу я уже даже не отрывался от своего хачинья бинарников, сидя возле компа за повседневными делами и прижимая трубку плечом к уху. Уж даже не помню, о чем мы там говорили. А потом как-то резко интервьюировать перестали, а сразу стали предлагать офферы. Вот эту фазу запомнил четко.
Видимо, чисто спонтанно на подсознательном уровне у меня выработалась привычка снюхиваться с кадровичками, чтобы им все становилось ясно без всяких тупых вопросов, — просто большая практика и ничего больше.
Хорошо, двигаясь дальше, предположим, ты получаешь оффер, что происходит после этого?
Задаю вопрос манагеру: «А как насчет того, чтобы самому увидеть место предполагаемой жизни и работы?»
Вот как происходило со мной во многих фирмах. Сначала пускают в офис и говорят ничего не делать. Ну, я то к одному сотруднику подсяду рядом, то к другому. Смотрю, что они делают, как программируют. Что-то спрашиваю, что-то предлагаю переписать. Так проходит несколько дней. Затем пиплы пишут свои впечатления манагерам.
Последние выносят решение. После чего появляется кадровичка и называет такую цифру, которая очень далека от средней по рынку (в большую сторону). Но иногда меня это не возбуждает, ибо пиплы за ланчем только о политике и треплются, и меня уже тошнит от них, и мне совсем не улыбается дальше с ними работать. А бывает и наоборот — все просто клево, ну вот просто клево и все. Но... опенспейс и никакой приватности. Абыдно. Или хороший офис и коллектив, да и зарплата ничего, но сам город действует угнетающе (как на меня действует Пекин, например, откуда я поспешил быстро убраться).
Слушай, для многих интервью — это как экзамен, ты же превращаешь все в балаган.
Интервью — это и не экзамен, и не балаган. Вопросы в правильном собеседовании составляются так, чтобы понять, какую предметную область покрывает кандидат и какую не покрывает. Как бы и не предполагается услышать ответ на все.
Например, меня раз очень усердно пытали по крипто (скорее всего потому, что зашел в компанию, специализирующуюся на «криптографик ресерч»), на что я честно сказал, что прочел пару популярных книжек, но не осилил. В ответ поступает оффер.
«Ну как же так?» — от неожиданности офигел я. Объясняют — знаете, штат по крипто у нас укомплектован и расширять мы его не планируем. Даже если бы вы ответили на все крипто-вопросы, мы бы вас на эту тему все равно не взяли. «А на какую тему вы меня берете?» «А вы вот скрипты для IDA Pro писать умеете?» «Ну, да. Умею. Так это ж фигня». А вот и не фигня — отвечают категорично. Им это очень нужно, а никого так и не нашли.
Как успешно пройти собеседование? Есть какой-то максимально общий совет для наших читателей?
Для успеха на собеседовании достаточно просто представлять, как работает бюрократическая машина, и следовать тропами ее лабиринта, который на самом деле не лабиринт, а work flow.
Начнем с того, что это вообще за идиотизм такой вы у меня спрашиваете — «как пройти собеседование»? Пройти только затем, чтобы оказаться первым кандидатом на увольнение? Давайте уж расширим вопрос до «как пройти собеседование, устроиться на работу и удержаться на ней (и не застрять на первой же ступеньке карьерной лестницы?)».
«Устроили тут гестапо» — такой вывод можно сделать из вашей постановки вопроса. Типа собеседование — это смертельная схватка, которую нужно выиграть любой ценой. На самом деле все проще. На нормальном собеседовании смотрят ваши сильные и слабые стороны. И если (допустим) фирме нужен человек в отдел быстрого прототипирования, а вы тугодум, хоть и пишете программы, работающие с первого раза, то, очевидно, было бы безумством стремиться на данную позицию. Равно как и наоборот.
А если вы сразу с порога заявляете, что вы очень крутой, то к вам и спрос будет соответствующий. А вот Мыщъх обычно скромно мямлит, что он только хочет попробовать чучелком или тушкой, и никто не пытается его подловить. Серьезно. Я уже говорил и повторю еще раз из уважения к читателю — на многих работах, куда я собеседовался, все тестовые задания я провалил в том или ином виде. Практически наглухо. Но слив не зачли и сказали эйчару — не обращайте на это внимания, это у парня комплексы, это он считает, что он провалил собеседование, а мы (работодатели) считаем иначе.
Тут ведь понимаете, в чем суть. Если в ответ на запрос ТЗ предоставить его образцовую реализацию, то вас могут из принципа и зачморить, придравшись чуть ли не к оформлению комментов. Заставь дурака богу молиться, он же себе и фаберже расшибет. А если вы сразу скажете — у меня ни фига не получилось, но кое-какие мыслишки все-таки возникли и я вот тут их набросал в таком скомканном виде. Так как все равно это провал, я сильно не старался, но вот посмотрите, тут есть пара интересных моментов. И вот уже в этих моментах максимально раскрыть свою самую сильную сторону, зажечь там напалмом так, чтоб аж самого перло.
Клянусь своим хвостом, это работает. Утверждаю как матерый грызун, ибо в период с 2008 по 2010 год я собеседовался в дюжине стран и контор как по телефону, так и очно — это всегда срабатывало. Первое впечатление было всегда не в мою пользу (и я смирился с этим), ну уж потом на выходе я и сам не знал, как сделать так, чтоб они все отстали. Ибо их (офферов) много, а я — один.
Поэтому рекомендую постоянно тестировать свои способности и навыки, чтобы находить в себе свои личные сильные стороны (то, что вы делаете лучше всего, а в идеале лучше остальных) и развивать их, целенаправленно прокачивая. Не хвататься за первое попавшееся предложение, а мыслить стратегически, не сиюминутным рублем... вот я (ну о ком мне еще говорить, как не о себе?) на протяжении десятков лет, сидя в своей деревне, нес существенные финансовые потери. Ну, пусть не десятков. Но лет пятнадцать — точно. Зато теперь прицениваюсь к самолетам (реактивным) и смотрю, сколько стоит аренда места в ангаре. На дом еще не скопил, но квартиру могу купить в любом штате свободно, только не хочу терять мобильность. До сих пор воспринимаю зарплату как мелкие карманные деньги, работая на далеко не самой оплачиваемой работе, но зато на своем месте, где я всему активно учусь и развиваюсь. Но у меня свой собственный расчет. Он — дальновидный.
Подводя итог: основная стратегия, о которой я тут втираю, — это не тянуть свои скилзы под абстрактные требования, а, наоборот, развивать в себе свои лучшие качества. «Не стоит прогибаться под изменчивый мир — пусть лучше он прогнется под нас». Сначала стоит достоверно выяснить, что у вас получается лучше всего (в идеале лучше, чем у большинства), а затем — интенсивно копать в этом направлении.
Если говорить предельно кратко, чем отличается типичное американское собеседование от российского?
В России на собеседованиях часто пытаются раздавить, любой ценой показать, что ты ничего не понимаешь, — чтобы снизить зарплату. Людей там не ценят так, как деньги. Здесь, в США, чаще всего наоборот: если видят, что ты стоящий специалист, в тебя вцепляются мертвецкой хваткой и больше не отпускают, предлагая лучшие условия на рынке и идя во всем навстречу. Что же касается наболевшего — это общая специфика РФ, — там мало продуктовых компаний и еще меньше компаний, в которых постоянно появляются линейки принципиально новых продуктов (принципиально новых не технологически, а написанных «с нуля» без «легаси»). Поэтому в РФ разгребание «застоялых говен» входит в job description по умолчанию.
Образование и карьера
Невольно выходим на тему образования, которая всегда актуальна для любого айтишника. Для начала — есть ли у тебя высшее образование в области ИТ?
Институтов я не кончал. Я сделал свой выбор и бросил вуз сразу после поступления. До сих пор не знаю, что я упустил и как сложилась бы моя жизнь, поступи я иначе. История не знает сослагательного наклонения.
Сейчас с этим проще — самообразование становится очевидным трендом. Диплом — ничто, знания — все. Откуда сегодня можно черпать качественную информацию?
К примеру, на YouTube можно найти множество видеозаписей лекций по computer science от различных лекторов из самых различных мировых вузов. По части информатики с большим отрывом лидирует арабский мир, причем, что показательно, лекции почти всегда на английском. За ними следуют США (с большим отрывом от остальных).
При этом легко видеть, что не все лекторы одинаковы: одни объясняют вещи глубоко и понятно, другие же — ущербно и загадочно: у таких можно только вызубрить, сдать и забыть, поскольку пользоваться этим все равно не получится.
Отмечу, что кроме знаний институт дает еще и связи, а связи решают все. Потому что после вузов народ разбегается кто куда, а разбежавшись, тянет к себе своих. Впрочем, это сильно зависит от конкретного вуза и страны.
В наше время также доступно огромное количество книг...
Хороших книг и раньше было немного, и даже сегодня их чуть меньше, чем совсем ничего, а классика так и остается классикой. Например, в семидесятых была одна «Книга Дракона», а сейчас доступны десятки качественных вариаций на тему, но в них от 70 % до 90 % — это пересечения и повторения, а потому первую книгу читаем вдумчиво, остальные бегло пролистываем в поисках различий.
Опять же, давай поможем новому поколению сделать первый шаг в эту самую классику. Взять, например, известную книгу Кнута — не все способны понимать изложение алгоритмов, описанных в ней, хотя, знаю, многие усердно штурмовали их. Конкретный пример: Heap sort — несложный, в общем-то, алгоритм, который можно в пять минут объяснить на пальцах, но я столкнулся с тем, что некоторые коллеги не понимают его в наукообразном изложении Кнута. Как правильно грызть гранит науки? — вопрос на миллион для профессионального грызуна Мыщъха.
Нужно заказывать похожие или аналогичные книги с Амазона, где их очень много. К примеру, сейчас я углубился в теорию CS и постоянно покупаю кучу разных книг. Большинство из них давно не переиздавались, но можно купить б/у. Среди них попадаются очень и очень хорошие. Вас какие алгоритмы вообще интересуют? Алгоритмов много и все из разных предметных областей, но книг, их описывающих, — еще больше.
Взять, например, упомянутого Кнута. Да, у него изложение своеобразное. Но статьи, на которые он ссылается в своей книге, зачастую описывают эти же алгоритмы намного понятнее и доступнее. Многие из этих статей опубликованы в журналах, которых сейчас уже не достать, но сборники таких статей часто доступны в виде отдельных книг. Например, вот: Computer Algorithms: String Pattern Matching Strategies (ISBN-10: 0818654627). В этой книге один и тот же алгоритм последовательно описывается разными авторами и по-разному, что существенно облегчает понимание новичку.
Насколько я могу судить, молодое поколение не очень-то много читает, судя по всему, потерявшись в этом информационном изобилии.
Согласен. Но сейчас, по крайней мере, есть документация. Есть SDK и куча примеров. А вот в свое время, чтобы заставить CD-ROM проигрывать диски, мне пришлось дизассемблировать пару программплееров, реконструируя протокол, причем так приходилось делать не только мне одному. Информацию собирали буквально по крупицам. Ассемблер x86 я изучал в досовском debug.com путем анализа воздействия команды из реальной программы на флаги, память и регистры процессора.
Но у моих предшественников и этого не было. Пионеры информатики не могли почерпнуть знания в книгах, поскольку эти книги им еще предстояло написать. По сути, с тех пор ничего не изменилось, просто линия фронта сместилась. Да, сейчас можно набрать в Гугл вопрос: как развернуть список на Java/.NET/C и получить готовый код для «копи-пасты». Зачастую, даже несильно кривой и рабочий. Но если спросить Гугл, «как написать Гугл», то ничего полезного он все равно не скажет, так как непрерывно совершенствуется, а над проблемой поиска бьются лучшие умы человечества. Лет через надцать об этом можно будет прочитать так же свободно, как сейчас мы читаем принципы построения компиляторов в «Книге Дракона», в результате чего создается огромное множество новых языков и технологий, которые не только создаются, но и выживают в конкурентной борьбе.
Кстати, давайте побухтим о молодежи. В чем отличие молодежи от «олдскул», как ты видишь?
Данный текст является ознакомительным фрагментом.