Обзор книги Адама Шостака «Угрозы. Чему Звездные Войны учат каждого инженера».
В издательстве «Бомбора» (импринт суперкорпорации «АСТ/Эксмо») в конце года должна выйти в моем переводе книга одного из самых известных специалистов в области информационной безопасности Адама Шостака (Adam Shostack). В оригинале книга вышла в 2023 году под заглавием «THREATS. What Every Engineer Should Learn from Star Wars».
Возможно вы спросите — почему в моем переводе, ты кто вообще такой? На Хабре можно встретить много критики в адрес переводных изданий издательства «Бомбора», вот наконец и переводчик явился со своими рекомендациями. В свое оправдание могу только сказать, что переводами специальной литературы я занимался все сорок лет, что проработал в отрасли ИТ, со времен, когда она еще так и не называлась. Переводы, которые я делал или редактировал, всегда были связаны с моей основной работой в качестве руководителя проектов, системного архитектора, евангелиста правильных технологий и архитектур. После окончания активной карьеры в профессиональном качестве я переключился на переводы художественной литературы. Но вот, ровно год назад мне снова предложили вернуться к техническим переводам, но на этот раз уже предложенные книжки не лежали в русле моей основной специализации. Перевод этих книг стал для меня поводом узнать что‑то новое, догнать ход событий в менее известных мне областях. Моя базовая подготовка в ИТ позволяет надеяться, что грубых ошибок я не наделал.
После того, как я за год перевел три книжки, из них две довольно толстых и мудреных (кроме книги Шостака еще объемную монографию о глубоких нейронных сетях «Understanding Deep Learning» (автор Simon J.D. Prince), я уже не удивлялся, когда мне предложили присоединиться к компании IDX в качестве копирайтера (в хорошем смысле). Перейдем собственно к рассказу о книге.
Для кого эта книжка
За книгу Шостака об угрозах информационной безопасности я взялся после того, как прочитал, для кого она предназначена — для инженеров в области компьютерных и информационных технологий, которые раньше не занимались вплотную информационной безопасностью. То есть, и для меня тоже. Значит, если я сумею понять, о чем в ней написано, то, вероятно, смогу растолковать это таким же как я, но уже на языке родных осин. Вполне вероятно, что для узких специалистов по ИБ эта книга покажется очевидной, наверняка судить не могу.
Я не стал называть эту статью рецензией, поскольку не представляю мнение специалиста по ИБ, а скорее делюсь познавательным опытом и опытом переводчика. Кстати говоря, в поисках примеров использования терминологии по ИБ, я тщательно сканировал Хабр, так что авторы многочисленных статей по ИБ и рецензий на другие книги по ИБ, появлявшихся на Хабре в последнее время, могут считаться консультантами моего перевода.
Где-то я уже слышал про этого Шостака
Представлю автора. Адам Шостак — один из ведущих специалистов в области моделирования угроз. Из некоторых намеков в тексте книги можно предположить, что, как и многие другие его коллеги, он стал «белым хакером» не сразу, а начал с того, что взламывал системы для собственного удовольствия и удовлетворения любопытства. Повзрослев и образумившись, он продолжал делать то же самое, но на благо создателей систем, которые взламывал. В том числе, почти десять лет проработал в компании Microsoft, прилагая значительные усилия, чтобы оснастить код классических продуктов Microsoft средствами защиты от угроз взлома, которые не были включены при проектировании этих продуктов много лет назад. Там же руководил проектированием и реализацией инструментального средства для моделирования угроз Microsoft SDL Threat Modelling Tool.
Цитата:
«Я работал в Майкрософт почти десять лет и питаю огромное уважение к моим коллегам, которые вколачивали безопасность в MS Office и MS Windows, заменяя отдельные куски их внутренностей. Они достигли гораздо большего, чем, я думал, возможно таким образом достичь. Однако очень отличающиеся внутренности IoS и ChromeOS позволяют этим конкурентам сегодня двигаться быстрее.»
Адам был одним из создателей, возможно, самого известного реестра уязвимостей информационной безопасности CVE (Common Vulnerabilities and Exposures). Это не единственный реестр уязвимостей, которым пользуются специалисты по ИБ, но этот официально финансируется Министерством внутренней безопасности США (US Department of Homeland Security), используется в протоколе SCAP, а коды уязвимостей (CVE ID) внесены в Национальную базу данных угроз США.
Притомившись лечить, Адам начал учить — написал несколько книг, в том числе эту, сделал несколько игр, обучающих моделированию угроз, консультирует академические организации, в том числе Вашингтонский университет в позиции аффилированного профессора.
О чем эта книга
Название книги снабжено шутливым заголовком, но это не должно вас обманывать. Это не популярная книжка для «чайников», она как раз для инженеров, которые хорошо представляют себе вычислительную архитектуру, структуру кода, в том числе на уровне машинного кода, но никогда не сталкивались с угрозами взлома того кода, который они создают, сопровождают или модифицируют.
Автор признается в том, что стал закоренелым фанатом франшизы «Звездных войн» с юных лет, а многие эпизоды и сюжеты этой эпопеи так поразили его в детстве, что продолжают удивлять и сейчас, но уже с точки зрения специалиста по безопасности. Конечно, для того, чтобы понимать примеры и шутки из «ЗВ», необходимо посмотреть хотя бы классическую трилогию (эпизоды 4–6). А можно не смотреть, а просто пропускать эти вкрапления, книжка все равно будет полезна как актуальное введение в тему «Угрозы информационной безопасности».
Рассказывая об угрозах ИБ и защите от них, то есть, о современных кибервойнах, часто говорят о продолжении «состязания снаряда и брони» в войнах прежнего времени. Во введении автор приводит несколько афоризмов, описывающих это вечное противостояние угроз безопасности и защиты от них.
Якобы в АНБ США говорят:
«Атаки становятся только лучше; они никогда не становятся хуже».
Сам Адам Шостак говорит:
«Компьютерная безопасность – это извращение. Когда вы хотите, чтобы что-нибудь было трудным, это легко устроить, а когда вы хотите, чтобы что-нибудь было легко, это очень трудно».
Большая часть книги посвящена угрозам, отсюда и название. В конце каждой главы есть раздел с кратким описанием защиты от угроз, описанных в этой главе.
Запомните эту аббревиатуру
Композиция первых шести глав соответствует аббревиатуре STRIDE, определяющей классическое понимание угроз. STRIDE — это Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Expansion of Authority (Спуфинг, Вмешательство, Отказ от ответственности, Раскрытие информации, Отказ в сервисе, Расширение полномочий). Это мнемоника, которая помогает запомнить шесть главных групп угроз, которым посвящены первые шесть глав книги. За ними следуют еще три главы о предсказуемости, парсинге, и поэтапных кибератаках (kill chains).
Первая, самая большая глава в книге посвящена спуфингу, как злонамеренной активности. Поскольку мы в компании IDX занимаемся аутентификацией персональных данных для наших клиентов, эта глава представляла для меня наибольший практический интерес. Спуфинг и есть нарушение аутентичности. В книге методы аутентификации, конечно, рассматриваются в более широком контексте, но нам это было очень полезно, для понимания нашего места в общей картине предотвращения угроз и атак спуфинга, а также защиты от них. В каждой главе группа угроз рассматривается для конкретных сценариев — при использовании мобильных устройств, в среде «Интернета вещей (IoT)», в ситуации применения ИИ, в облачных конфигурациях и так далее. В конце главы коротко упоминаются методы защиты от угроз спуфинга. В частности, утверждается, что
«Ни один фактор в отдельности не работает хорошо для аутентификации людей, и использование более одного фактора — лучший способ преодолеть эти недостатки.»
В задаче аутентификации людей компьютерами (да-да, это не единственный сценарий аутентификации) многофакторность обеспечивается проверками ответов на следующие вопросы:
Что ты знаешь? (комбинация сейфа)
Что у тебя есть? (ключ или ID карточка)
Какой ты есть? (биометрия)
Где ты находишься? (геолокация)
Как ты связываешься? (канал доступа)
Кого ты знаешь? (доверенные лица)
В качестве шутки иногда говорят, что многофакторная аутентификации — это ответы на вопросы «что ты забыл?», «что ты потерял» и «какой ты был, когда был моложе и здоровее».
Не буду здесь пересказывать всех шуток и примеров из ЗВ, чтобы не портить удовольствие тем любителям этой франшизы, кто соберется прочитать эту книгу.
Во второй главе описываются угрозы вмешательства и нарушения целостности, которые наступают после удачного спуфинга, когда некто выдал себя не за того, кем является и получил доступ к ресурсам, с которыми теперь может творить что угодно — от сравнительно невинных розыгрышей до нанесения серьезного, часто непоправимого вреда. Из этой главы я узнал новое для себя слово «обфускатор» (затемнитель смысла) кода, а также про относительно недавно появившееся семейство атак типа «rawhammer», которые могут привести к изменению содержимого оперативной памяти за счет физических эффектов, вызываемых в интегральных схемах высокой плотности. Для тех, кто не занимается производством оборудования, поверить в это почти невозможно.
Третья глава посвящена скорее юридическим уловкам для мошенничества, путем вмешательства в переписку и отказа от своих обязательств как со стороны покупателя, так и со стороны продавца. Эта группа атак может быть интересна многим компаниям, кто работает с обширной клиентской базой. В странах с работающей системой правовой защиты есть много любителей «нагибать эту систему», добиваясь компенсаций за якобы нанесенный ущерб путем отказа от обязательств. В набор методов реализации этой группы угроз входит, например, подделка журналов, которые используются для разбирательств при возникновении диспутов. Для меня это был практически новый материал.
Четвертая глава о раскрытии информации и конфиденциальности следует модели АНБ США, в которой различается кража информации в состоянии покоя и кража информации в состоянии движения. Любопытными показались примеры похищения и анализа метаданных, например, отсутствие каких‑то метаданных может служить раскрытию важной информации.
В пятой главе занимательно рассказывается об относительно общеизвестном — атаках, имеющих целью добиться отказа в обслуживании и уменьшения доступности ресурсов публичных сервисов. Да, это многим знакомые DDoS атаки, но не только. Интересно описаны рекомендации по защите от перегрузки ресурсов, которые в книге называются «корректной деградацией» (graсeful degradation).
Кстати говоря, этот и многие другие русскоязычные варианты англоязычных терминов, при переводе книги выбирались после тщательного анализа публикаций на Хабре, как средоточии экспертного знания. Подавляющее большинство авторов просто используют кальки или вставляют англоязычные термины, но встречаются также и удачные попытки ввести в обиход новые термины, корректно передающие смысл.
В шестой главе в отдельную группу выделяются угрозы расширения полномочий (authority), которые воспринимаются иначе, чем другие группы угроз, как спуфинг или вмешательство, которые «… могут восприниматься как механизмы или даже цели. Расширение полномочий может выглядеть (или даже быть) больше похожим на эффект или ступеньку», но каждый из них представляет собой угрозу. Расширение полномочий — это угроза для системы авторизации. В этой главе проводится очень тонкий семантический анализ различий между разрешениями (permissions) и способностями (capabilities), между полномочиями (authority) и привилегиями (privileges). Это лексикографическое упражнение оказывается очень полезным, в том числе при чтении текстов, где близкие, но разные по смыслу термины используются беспорядочно.
Что еще происходит?
Следующие три главы выходят за рамки модели угроз STRIDE, но тоже чрезвычайно полезны, поскольку излагают очень актуальный материал. В седьмой главе о предсказуемости и случайности было очень интересно читать об угадывании паролей. А в восьмой главе автор объявляет священную войну парсингу, как главной уязвимости любого кода, а программистов, которые плодят парсеры без нужды и без меры, объявляет пособниками дьявола. Чувствуется, что натерпелся человек, анализируя причины взломов.
Девятая глава, возможно, самая актуальная. В ней описаны цепочки атак или поэтапные атаки (kill chains), которые скоординировано добиваются поставленных злоумышленниками целей. Впрочем, в этой области терминология только складывается и как раз в момент выхода книги один из ведущих экспертов по кибербезопасности Рич Могулл объявил, что отныне будет называть kill chains просто последовательностью атак (attack sequences). Весь материал девятой главы очень занимательный и остроумно изложен. В доказательство приведу еще один афоризм из множества, использованных в книге.
Нападающему должно повезти только один раз, а обороняющемуся должно везти все время.
Этим я и закончу свой рассказ о книге и, предполагая, что большинство читателей Хабры находится на светлой стороне Силы, пожелаю им постоянной удачи.
Да пребудет с вами Сила!
О грубой реальности
В заключение о грустном. К сожалению, я не могу сказать, когда книга выйдет. Кажется, что ни одно издательство в наше время не может назвать точные даты выхода своих книг. Иногда книги задерживаются на пару лет. Если художественная литература от этого почти не портится, то актуальность специальной литературы, конечно, убывает со стремительным развитием технологий ИБ. В любом случае рекомендую ознакомиться с оригиналом.
Нельзя сказать, что книга написана очень простым языком. Когда редактор пролистал мой перевод, она удивилась большому количеству «темных мест», а когда заглянула в оригинал, убедилась, что в оригинале они «не светлее». Редактор почти в шутку попеняла мне, что я не «улучшил оригинал», но мои переводческие принципы не позволяют мне заниматься этим, переводил то, что было.