Адам Шостак – Защита систем. Чему «Звездные войны» учат инженера ПО (страница 4)
Эта книга начинается с аббревиатуры STRIDE, которая определяет классическое понимание угроз. STRIDE – это Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Expansion of Authority (спуфинг, вмешательство, отказ от ответственности, раскрытие информации, отказ в обслуживании, расширение полномочий). STRIDE – это мнемонический прием, который помогает запомнить шесть главных групп угроз, которым посвящены первые шесть глав книги. За ними следуют главы о предсказуемости, распознавании и поэтапных кибератаках.
Большинство глав этой книги следуют одному и тому же общему плану: начать с объяснения угрозы, потом показать, как она проявляется в конкретных технологиях, механизмы, которые используют злоумышленники, и, наконец, короткий раздел, посвященный защите.
Существует множество способов организации материала в такого рода книгах. Я рассматриваю разные вычислительные модели, и те пути, какими на них воздействуют разного рода угрозы. Эти модели включают интернет вещей (Internet of Things, IoT), мобильные вычисления, облачные вычисления и ИИ / машинное обучение. Подробности в соответствующих разделах служат дополнением к более широким утверждениям главы, а не заменой им: тот факт, что компьютер имеет форму плюшевого мишки, не значит, что остальная часть главы неприменима. Несколько таких разделов в других главах снабжены дополнительными подразделами, потому что природа угроз обладает интересными свойствами в специфических сценариях, которые стоит обсудить.
Единственная из развивающихся технологий, которая осталась не затронутой, – это квантовые вычисления. Большинство угроз из STRIDE будут работать для систем, окружающих квантовое ядро, и, вероятно, для самого ядра тоже. Например, потребляемая мощность зеркал в квантовой криптографии ведет к раскрытию важной для атак информации. (Квантовое криптование использует информацию о спи´не, чтобы распространять криптоключи так, что это очень сложно подслушать, но часто полагается на оптику между сайтами. Это очень отличается от использования квантовой механики для вычислений.) Первичный ранний эффект квантовых вычислений – высокая вероятность взлома большей части классической ассиметричной криптографии: перспектива вычисления секретных ключей с помощью квантовых компьютеров создает угрозу раскрытия информации. Если вам интересны квантовые вычисления, книга Law and Policy for the Quantum Age («Закон и политика квантового века») [Hoofnagle and Garfinkel, 2021] будет отличным введением в предмет.
Другой важный выбор в организации материала – это постоянное возвращение к перечню угроз. Исходя из моего опыта преподавания, когда кто-то встречает информацию в первый раз, она не сразу усваивается. Часто помогает возвращение к этой информации, чтобы посмотреть на нее под другим углом.
В книге упомянуты многие организации и продукты. Названия продуктов используются, только чтобы привести конкретный пример, не подразумевая злого умысла по отношению к создателям или владельцам торговой марки. Помечать каждый такой случай выражением «например» было бы пустой тратой времени большинства читателей, ради возможных выгод для тех немногих, которые все понимают буквально и будут все равно сбиты с толку, сколько разъяснений ни приводи.
Йода.
Люк.
Йода.
Люк.
Йода.
Темный путь – это путь игнорирования безопасности. Все легко, код льется рекой. Но как только вы вступили на этот путь, он будет вечно определять вашу судьбу. Игнорировать безопасность и сосредоточиться только на возможностях, которые будут доступны потребителям, – это легкий выбор. Современные языки позволяют выполнить полный статический анализ за счет ограничения некоторых соблазнительных возможностей указателей. За это приходится платить: темная сторона языка C – это более быстрый код, но он будет вечно доминировать над вашими рекомендациями безопасности. И двадцать лет назад, когда безопасность значила меньше, это был выбор, который сделали многие компании, часто бездумно. Это был выбор, который сделал Microsoft в зените славы.
Но Йода был прав: «Поглотит тебя она». Я работал в Microsoft почти десять лет, и я питаю огромное уважение к моим коллегам, которые вколачивали безопасность в MS Office и MS Windows, заменяя отдельные куски их внутренностей. Они достигли гораздо большего, чем, я думал, возможно таким образом достичь. Однако очень отличающиеся внутренности IoS и ChromeOS позволяют этим конкурентам сегодня двигаться быстрее.
Наконец, для вас открыт еще один путь добиться успеха в области безопасности – путь атак. Этот путь очень яркий. Он мощный: «Давайте я вам покажу, как могу получить контроль над вашей системой». И если вы хотите пойти этим путем, моя единственная просьба – делайте это этично, используя свои навыки и знания для выполнения санкционированных атак, чтобы построить более прочную защиту. Мой собственный путь начался с обнаружения уязвимости, но в последнее время я сосредоточился на создании более надежных систем. Этот путь гораздо тяжелее, но его воздействие в долгосрочной перспективе может быть гораздо большим.
1
Спуфинг и аутентичность
Вскоре после того как мы первый раз встречаемся с Люком Скайуокером, он чистит своих только что приобретенных дроидов, а R2-D2 проигрывает ему фрагмент сообщения, которое предназначается только для Оби-Вана Кеноби. Откуда R2-D2 знает, кто такой Оби-Ван Кеноби? Как он принимает решение воспроизвести запись принцессы Леи Оби-Вану, а не Люку? Как я упоминал во введении, эти вопросы затрагивают много аспектов. Давайте углубимся в проблему имен и аутентичности.