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

К ним относится хакер-самоучка Михал Залевски (Michal Zalewski), который входит в список самых влиятельных представителей индустрии ИБ. Он построил успешную карьеру от технического специалиста польского интернет-провайдера до директора по информационной безопасности Google, а в своей недавней книге даёт практические советы, как подготовиться к наступающему концу света. В общем, это разносторонняя и талантливая личность. На рисунке из Твиттера (вверху) Михал изображён с женой и собакой.

Михал Залевски родился 19 января 1981 года. В конце 90-х паренёк под ником lcamtuf стал активным участником списка почтовой рассылки Bugtraq — крупнейшего мирового сообщества по инфобезу, где заработал авторитет благодаря интересным эксплоитам.

В 19 лет он устроился техническим специалистом к польскому интернет-провайдеру TP Internet (Orange PL), а через год переехал в США на должность аналитика по безопасности в BindView (куплена Symantec). Потом была работа в T-Mobile Polska, должность директора по безопасности всей корпорации T-Mobile и переход в Google в 2007 году (там он поднимался по карьерной лестнице параллельно с ростом самой компании).

Михал заработал авторитет благодаря обнародованию серьёзных уязвимостей в браузерах Internet Explorer и Firefox. Разглашение багов привело к укреплению всех браузеров и повлияло на разработку браузера Chrome с принципиально новым механизмом изоляции процессов.

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

▍ Эксплоиты и исследования


Вот некоторые важные уязвимости, которые обнаружил lcamtuf за свою карьеру, а также лучшие его работы в области информационной безопасности:

  • Первая фундаментальная исследовательская работа Залевски вышла в 2001 году. Это
    математическое и геометрическое описание ISN-генераторов чисел в различных операционных системах и аппаратных устройствах для оценки случайности генерации номеров для TCP-пакетов с целью правдоподобного спуфинга и внедрения сторонних пакетов (продолжение, предупреждение CERT). Уязвимые алгоритмы генерируют в числовом 3D-пространстве явно различимые паттерны:


    Наверное, никто раньше не демонстрировал слабости алгоритмов в виде 3D-графики, где различимость паттернов означает недетерминизм выдачи.
  • 2001 год. Потенциальные уязвимости в обработке сигналов при использовании стандартных хэндлеров типа access(2), chdir(2), chmod(2), close(2), fork(2), getpid(2), open(2), pause(2), read(2), write(2) и проч. Имеется в виду шаблонная эксплуатация злоумышленником некорректных кодовых конфигураций с хэндлерами, которые вызывают состояние гонки (signal race) и встречаются повсеместно, в том числе в ядре Linux и других опенсорсных программах.
  • 2001 год. Обнаружил уязвимость в протоколе SSH, которую через два года использовала Тринити в фильме «Матрица. Перезагрузка» (2003).
  • 2002 год. Статья об опасности утилит типа tmpwatch.
  • 2003 год. Переполнение буфера в sendmail (CA-2003-12).
  • 2004 год. Объявил о запуске антиспамерского сервиса eProvisia LLC, который обеспечивает 100%-ю защиту от спама благодаря ручной фильтрации писем. На шутку купились многие компьютерные СМИ, включая ZDNet, Yahoo, Slashdot и др.
  • 2005 год. Переполнение буфера Internet Explorer при использовании соответствующего файла JPEG (VU#965206).
  • 2007 год. Уязвимость в схеме отображения закэшированных ресурсов WYCIWYG (What You Cache Is What You Get, «что кэшируешь, то и получаешь», по аналогии с WYSIWYG) в браузере Firefox. В те времена браузеры на движке Gecko использовали проприетарную схему загрузки ресурсов из кэша с отображением в адресной строке URI ресурса типа wyciwyg://.

    Залевски продемонстрировал возможность стороннего доступа к кэшированным документам. То есть с одного сайта (сервера) можно было получать доступ к документам, которые записал другой сайт без надлежащей проверки принадлежности их домену.

    Последствия несанкционированного доступа к кэшу понятны: злоумышленник может подменить его, внедрить произвольный контент и собственный код, всё это с оригинальным SSL-сертификатом.

    На самом деле подобное отравление кэша — это не просто какой-то глюк, а фундаментальная слабость старых браузеров, которые не изолировали отдельные процессы и файлы разных сайтов друг от друга, а хранили всё в одном месте. Сейчас ситуация начинает меняться. Для сравнения, тот же Firefox постепенно внедряет state partitioning, то есть раздельное хранение ресурсов для разных доменов.

Также Михалу Залевски принадлежит пробинг истории посещённых страниц в браузере пользователя через трюки с алгеброй CSS и полное описание всех векторов веб-трекинга через браузеры.

Кстати, по современным тарифам bug bounty, Михалу даже не нужно строить корпоративную карьеру, чтобы заработать миллионы долларов, потому что настолько серьёзные 0day-уязвимости в браузерах сейчас очень хорошо оплачиваются. Официальное вознаграждение за функциональный эксплоит Chrome доходит до $40 000, а на чёрном рынке премиальные 0day можно продать гораздо дороже через специализированных брокеров-перепродавцов, таких как Zerodium (платит до $2,5 млн за эксплоит).


Причём современный рынок bug bounty тоже во многом сформировал именно Залевски, который в 2010 году запустил программу выплаты вознаграждений Google Vulnerability Reward Program. Это была первая подобная программа в мире — и она кардинально изменила мировой рынок эксплоитов, превратив хакинг в уважаемую и высокооплачиваемую профессию. Собственно, одним этим фактом он уже вписал своё имя в историю.

После прихода в Google парень не утратил прежние навыки и продолжил исследовательскую работу, сообщая о новых критических багах в Mac OS X и помогая Google выпускать более защищённые продукты. В Google он управлял командой из 100 специалистов по безопасности, а в 2018 году перешёл на работу в Snap, где под его началом работает уже 200 специалистов, которые обеспечивают безопасность платформы, приватность пользователей и занимаются поиском уязвимостей.

В общей сложности за всё время lcamtuf нашёл более сотни критических и серьёзных уязвимостей в браузерах, операционных системах и опенсорсных программах, таких как OpenSSH, GnuPG, PuTTY и многих других. Является лауреатом Lifetime Achievement Pwnie Award в виде специального готического пони.

▍ Программы и книги


Михал Залевски разработал несколько полезных инструментов для тестирования систем на предмет безопасности. Это десятки маленьких фаззеров и других утилит для тестирования и поиска уязвимостей. Вот самые известные из них, опубликованные в открытом доступе:

  • Pof v3 — пассивный фингерпринтер трафика, впервые разработанный в 2000 году и перевыпущенный в 2014-м. Инструмент позволяет распознавать ОС и установленный софт, не вмешиваясь в канал и не делая никаких запросов, что особенно полезно в ситуации, когда активность Nmap не разрешается. Измерение аптайма, сетевой задержки, расстояний между узлами (топология сети), языковых настроек и проч. В той или иной форме ранние версии pof используются во многих опенсорсных программах, включая pfsense, Ettercap, PRADS, amavisd, milter, postgrey, fwknop, Satori и файрвол OpenBSD, а также в десятках коммерческих инструментов ИБ;

    Сниппет выдачи
    .-[ 1.2.3.4/1524 -> 4.3.2.1/80 (syn) ]-
    |
    | client   = 1.2.3.4
    | os       = Windows XP
    | dist     = 8
    | params   = none
    | raw_sig  = 4:120+8:0:1452:65535,0:mss,nop,nop,sok:df,id+:0
    |
    `----
    
    .-[ 1.2.3.4/1524 -> 4.3.2.1/80 (mtu) ]-
    |
    | client   = 1.2.3.4
    | link     = DSL
    | raw_mtu  = 1492
    |
    `----
    
    .-[ 1.2.3.4/1524 -> 4.3.2.1/80 (uptime) ]-
    |
    | client   = 1.2.3.4
    | uptime   = 0 days 11 hrs 16 min (modulo 198 days)
    | raw_freq = 250.00 Hz
    |
    |
    `----
    
    .-[ 1.2.3.4/1524 -> 4.3.2.1/80 (http request) ]-
    |
    | client   = 1.2.3.4/1524
    | app      = Firefox 5.x or newer
    | lang     = English
    | params   = none
    | raw_sig  = 1:Host,User-Agent,Accept=[text/html,application/xhtml+xml...
    |
    `----

  • Ratproxy (2007) — полуавтоматический прокси для пассивного аудита веб-приложений и выявления потенциальных проблем веб-безопасности;
  • American Fuzzy Lop (2014) — фаззер для поиска уязвимостей (afl-fuzz);


    Например, в 2015 году Михал просто для демонстрации взял известную СУБД SQLite и за 30 минут с помощью своего фаззера обнаружил там 22 уязвимости.
  • Skipfish — высокопроизводительный веб-сканер (до 2000 запросов в секунду), который позже стал одним из компонентов;
  • Google Cloud Scanner и другие инструменты.

Кроме программ, Залевски написал несколько довольно популярных книг по инфобезу:


У второй книги 2438 скачиваний на рутрекере, хотя она не переведена на русский.

В новой книжке «Практика Судного дня. Пользовательское руководство к Концу света» автор отошёл от технических вопросов и рассуждает о более высокоуровневом управлении рисками в повседневной жизни. Там разбираются практические вопросы типа создания финансовой подушки (глава 6), выбора актуальной профессии (глава 8), прокачивания физической формы (11), создания сообщества (12), обеспечения водой, выбора продуктов питания, инструментов, аварийной связи, вопросы активной самообороны и многое другое. Любопытно, что книга вышла в январе 2022 года.


Пример Михала Залевски демонстрирует, что можно стать выдающимся разработчиком, практически не имея примеров собственно «разработки». Написанного кода у него не так много, а главные достижения — не новые программы, а эксплоиты. То есть как бы не создание чего-то нового, а поиск уязвимостей в существующем мире, что само собой приводит к перерождению мира в лучшем виде. На языке химических аналогий, Михал работает не как действующее вещество в реакции (креативная сила разработки), а скорее как катализатор, который запускает эту реакцию в окружающем мире. Наверное, так действуют хакеры.

Ещё любопытный факт: у Залевски до сих пор нет никакого формального образования в области информатики (высшего или какого-либо другого), он не закончил ни одного курса и не получал никаких сертификатов.

▍ Офтоп из личного блога


Telegram-канал с полезностями и уютный чат

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


  1. Wesha
    08.11.2022 22:18
    +1

    Вот по его аварийному набор туева очень много вопросов.

    1. Предметы уровня "какого вообще буя оно там делает?": синтезатор, фиджет-спиннер, жевательная резинка (Bergman & Kelly), издаватель прикольных звуков (Emergency Chicken), дезодорант, гантели, непонятная карта с USB-разъёмами, зарядка Apple.

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

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


    1. fedorro
      08.11.2022 23:22
      +1

      непонятная карта с USB-разъёмами

      - это Raspberry Pi или аналог,- да не понятно что с ним делать без периферии... Но вообще согласен - это похоже на "набор для выживания на заднем дворе своего дома на выходных". Но может это просто картинка такая, книгу не читал ????


    1. lain8dono
      09.11.2022 01:42
      +1

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

      Хорошей одноразовой зажигалки хватит на первые полгода. На вторые полгода хватит второй одноразовой зажигалки. За это время можно что-нибудь придумать.


    1. Wesha
      09.11.2022 04:10
      +1

      P.S. Огонь из полированной банки


      1. Didimus
        09.11.2022 09:18

        Ещё можно в ней линзу изо льда отлить


        1. Wesha
          09.11.2022 11:16
          +1

          линзу изо льда отлить

          Летом?


          1. Didimus
            09.11.2022 11:22
            +1

            В Сахаре ночью бывает минус. Правда, солнца нет.


    1. sshemol
      09.11.2022 06:07

      Кстати, зажигалки имеют свойство небольшой утечки газа, и в doomsday можно обнаружить ее пустой.


      1. Wesha
        09.11.2022 09:06

        По счастью, уровень сжиженного газа через прозрачный корпус отлично виден.


        1. sshemol
          10.11.2022 01:27

          Ага, такой как на картинке.


    1. K0styan
      10.11.2022 12:04

      Я бы сказал, что это набор в духе "что я держу на рабочем месте и что поможет добраться до по-настоящему безопасного места в случае чего"


    1. pfg21
      11.11.2022 11:44

      это нормальный набор "городского выжывальщика" :)
      они никогда не были больше чем пары дней в полной изоляции на природе и не представляются что и за чем там делать


  1. dimwap
    09.11.2022 15:50
    +1

    Присутствие спиннера как бы намекает, что заняться будет собственно особо и нечем.

    Больше похоже на набор для тюрьмы.


  1. JohnSelfiedarum
    10.11.2022 13:33

    Линденбаум в 1996 году уже демонстрировал всё это. Не интересно