Нетушки, задачи надо решать раз и навсегда!
По моему глубокому личному убеждению, проблемы нужно решать по мере их возникновения. Писать программы на вырост с избыточным универсализмом нужно, лишь очень хорошо предварительно подумав, ибо это из серии «Почему сегодня не делают корабли, летающие к звездам?» Ответ прост: потому что корабль, построенный завтра, прибудет быстрее, а корабль, построенный послезавтра, еще быстрее. И их обоих обгонит корабль, построенный лет через пятьдесят, но когда он вернется обратно, то обнаружит, что у человечества совсем-совсем другие проблемы. Ты упомянул, что этот твой «принцип распознавания» впоследствии применялся к разным темам, но впервые ты использовал его в анализе «малвари» и даже оформил патент на его основе. Можешь рассказать подробнее? Как-то в бытность свою работал я удаленно. Ну, как работал, скорее анализировал огромное количество сплоитов. Причем делал все медленно, потому что навыка не было. Порядочно устав, я написал программу, которая автоматически сгенерировала другую программу. И вот эта другая программа анализировала сплоиты со скоростью один гигабайт в секунду. Запустил ее и улетел в Берген на встречу со знакомой немкой. И вот пока я гулял по сказочно красивой Норвегии, наслаждаясь золотой осенью и местным колоритом старинных замков и фортификационных сооружений, мой компьютер все это время стоял включенным «под нагрузкой». И когда дней через десять вернулся, программа уже завершала анализ, но у меня хватило ума никому об этом не говорить и до конца года получать «убитых енотов» автоматом. А за пунктуальность и следование намеченным планам мне еще бонусы платили на работе. В конце концов, меня заела совесть, и я выслал результаты машинного анализа одним и очень большим куском. В результате эта фирма надолго встала, и теперь мне же пришлось писать еще одну программу, чтобы автоматизировать труд тех, кто разгребал эти результаты, писал к ним тесты и заносил в базу. Собственно, так я и получил свой первый (и пока единственный) софт верный патент.Не удивлен, что без женщин не обошлось. Как я понимаю, на основе развития этого принципа впоследствии ты написал модуль, благодаря которому был признан лучшим сотрудником года в 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, например используя процессорные мощности для майнинга биткоинов. На очереди умная бытовая техника (например, холодильники), а также атаки на бортовой компьютер автомобиля — это фантастика новой реальности. Куда растет современный рынок коммерческих решений в области ИБ? Насколько я знаю, это одно из самых быстрорастущих и популярных направлений вообще в ИТ? У меня лет двадцать опыта работы в индустрии безопасности, в том числе и на позиции архитектора. Я хорошо знаю рынок и видел множество примеров успешных начинаний, впрочем, неуспешных примеров было еще больше. Рынок систем безопасности действительно очень быстро растет. И растет он потому, что совсем недавно вирусами занимались школьники, «подонки» и прочие «креативные» личности. Затем ПК подключили к банкам, и тут оказалось, что на троянах можно делать деньги.