Тех, кого раньше бы окрестили киберпанками, сегодня величают себя более политкорректно: DevSecOps. Помните «весь спектр радуги», из легендарного фильма «Хакеры»? 1) Зелёная (всемирная среда UNIX); 2) ярко-оранжевая (критерии защиты данных компьютера по стандартам DOD); 3) розовая рубашка (справочник IBM; прозвали так из-за дурацкой розовой рубашки на мужике с обложки); 4) книга дьявола (библия UNIX); 5) книга дракона (разработка компилятора); 6) красная книга (сети национального управления безопасности; известна как мерзкая красная книга, которой нет места на полке).
Пересмотрев в очередной раз этот легендарный фильм, я задался вопросом: а что бы сегодня читали киберпанки прошлого, ставшие в наше время DevSecOps’ами? И получился обновлённый, более современный вариант этого радужного спектра:
– Фиолетовая (руководство APT-хакера)
– Чёрная (корпоративная кибер-не-безопасность)
– Красная (справочник красноармейца)
– Книга бизона (культивирование DevOps-культуры в сообществе разработчиков; названа так из-за зверя с обложки)
– Жёлтая паутина (жёлтая, в смысле злободневная, подборка уязвимостей всемирной паутины)
– Коричневая (книга багоборца)
– Книга возмездия (библия безопасной разработки кода)
1. Фиолетовая (руководство APT-хакера)
Tyler Wrightson. Advanced Persistent Threat Hacking: The Art and Science of Hacking Any Organizations. 2015. 434 p.
Эта книга написана для одной единственной цели: продемонстрировать, что в мире не существует безопасных систем. Причём написана она с точки зрения преступника, без каких-либо компромиссов. Автор беззастенчиво демонстрирует современные реалии кибер-не-безопасности, и без утайки делится самыми интимными подробностями APT-хакерства. Без какого-либо намёка на то, чтобы ходить на цыпочках вокруг да около спорных тем, опасаясь привлечь к себе предосудительное внимание. Почему именно с бескомпромиссно преступной точки зрения? Потому что автор уверен, что только так мы сможем по-настоящему «узнать своего врага в лицо», как это советовал Сунь Цзы в своей книге «Искусство войны». И потому что автор также уверен, что без этого знания невозможно разработать сколь-нибудь эффективную защиту от киберугроз.
В книге описывается образ мыслей APT-хакера, инструменты и навыки, – которые позволяют ему взламывать абсолютно любую организацию, вне зависимости от того, какая там развёрнута система безопасности. С демонстрацией реальных примеров взлома, для реализации которых вполне достаточно скромного бюджета и скромных технических навыков.
Для борьбы с традиционными преступниками в любом государстве существуют отработанные схемы. Однако в киберпространстве смышлёные преступники неуловимы. Поэтому суровые реалии современной эпохи цифровых технологий таковы, что кто бы ни подключился к Интернет, – он находится под постоянной атакой, как дома, так и на работе. Вы можете не отдавать себе в этом отчёта, но когда вы впустили в свою жизнь Интернет, компьютер, мобильный телефон, Facebook, Twitter или что-то подобное, – вы тем самым присоединились к войне. Хотите вы того или нет, но вы уже в числе солдат этой войны.
Даже если у вас «нет никаких ценных данных», – вы легко можете стать случайной жертвой. Не говоря уже о том, что преступник может задействовать ваше цифровое оборудование в своих тёмных делишках: взлома паролей, рассылка спама, поддержка DDoS-атаки и т.п. Мир сегодня превратился в игровую площадку – для тех, кто сведущ в высоких технологиях и любит нарушать правила. И место царя горы в этой игре занимают APT-хакеры, чей манифест сводится к следующим словам: «Мы супергерои, невидимки и Нэо из Матрицы. Мы можем перемещаться невидимо и бесшумно. Манипулировать всем чем только пожелаем. Идти куда захотим. Нет такой информации, которую бы мы не могли достать. Мы уверенно летаем там, где остальные могут только ползать».
2. Чёрная (корпоративная кибер-не-безопасность)
Scott Donaldson. Enterprise Cybersecurity: How to Build a Successful Cyberdefence Program Against Advanced Threats. 2015. 536 p.
В книге представлена гибкая наглядная схема для управления всеми аспектами корпоративной программой кибербезопасности (КПК), в которой вся КПК разделена на 11 функциональных областей и на 113 предметных аспектов. Эта схема очень удобна для проектирования, разработки, внедрения, контроля и оценки КПК. Также она очень удобна для управления рисками. Схема универсальна и легко масштабируется под нужды организации любых размеров. В книге подчёркивается, что абсолютная неуязвимость принципиально недостижима. Потому что имея в запасе неограниченное время, предприимчивый злоумышленник может в конце концов преодолеть даже самую передовую киберзащиту. Поэтому эффективность КПК оценивается не в абсолютных категориях, а в относительных, – двумя относительными показателями: насколько быстро она позволяет обнаруживать кибератаки и насколько долго она позволяет сдерживать натиск противника. Чем лучше эти показатели, тем больше у штатных специалистов времени на то, чтобы оценить ситуацию и предпринять контрмеры.
В книге подробно описаны все действующие лица, на всех уровнях ответственности. Объясняется, как применять предложенную схему КПК для объединения разношёрстных департаментов, скромных бюджетов, корпоративных бизнес-процессов и уязвимой киберинфраструктуры – в рентабельную КПК, способную противостоять передовым кибератакам; и способную значительно сокращать ущерб, в случае пробоя. В рентабельную КПК, которая принимает во внимание ограниченность бюджета выделенного на обеспечение кибербезопасности и которая помогает находить нужные компромиссы, оптимальные именно для вашей организации. С учётом повседневной оперативной деятельности и долгосрочных стратегических задач.
При первом знакомстве с книгой владельцы малого и среднего бизнеса, имеющие ограниченные бюджеты, могут посчитать, что для них представленная в книге схема КПК, с одной стороны не по карману, а с другой стороны вообще излишне громоздка. И действительно: далеко не все предприятия могут позволить себе учитывать все элементы комплексной программы КПК. Когда генеральный директор является по совместительству также финансовым директором, секретарём, службой технической поддержки, – полномасштабная КПК явно не для него. Однако в той или иной степени проблему кибербезопасности приходится решать любому предприятию, и если почитать книгу внимательно, то можно увидеть, что представляемая схема КПК – легко адаптируема под нужды даже самого маленького предприятия. Так что она подходит для предприятий любых размеров.
Кибербезопасность на сегодняшний день – очень проблемная область. Обеспечение кибербезопасности начинается с комплексного понимания её составляющих. Одно уже это понимание – первый серьёзный шаг к обеспечению кибербезопасности. Понимание того, с чего начать обеспечение кибербезопасности, чем продолжить и что улучшить – ещё несколько серьёзных шагов на пути к её обеспечению. Вот эти несколько шагов представленная в книге схема КПК и позволяет сделать. Она заслуживает внимания, поскольку авторы книги – признанные эксперты кибербезопасности, которым доводилось сражаться на переднем крае кибербезопасности, против APT-хакеров, – отстаивая в разное время правительственные, военные и корпоративные интересы.
3. Красная (справочник красноармейца)
Ben Clark. RTFM: Red Team Field Manual. 2014. 96 p.
RTFM – подробный справочник для серьёзных представителей красной команды. В RTFM приведён базовый синтаксис основных инструментов командной строки (для Windows и Linux). И также приведены оригинальные варианты их использования, в комплексе с такими мощными инструментами как Python и Windows PowerShell. RTFM будет снова и снова экономить вам целую кучу времени и сил, – избавляя от необходимости вспоминать/искать трудно запоминающиеся нюансы операционной системы, связанные с такими инструментами как Windwos WMIC, инструменты командной строки DSQUERY, значения ключей реестра, синтаксис планировщика Task Scheduler, Windows-скрипты и др. Кроме того, что ещё более важно, RTFM помогает своему читателю перенять наиболее передовые красноармейские техники.
4. Книга бизона (культивирование DevOps-культуры в сообществе разработчиков; названа так из-за зверя с обложки)
Jennifer Davis, Ryn Daniels. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale. 2016. 410 p.
Самое удачное из ныне существующих пособие по формированию корпоративной DevOps-культуры. Здесь DevOps рассматривается как новый способ мышления и работы, позволяющий формировать «умные команды». «Умные команды» отличаются от прочих – тем, что их члены понимают особенности своего образа мышления и применяют это понимание с пользой для себя и для дела. Такая способность «умных команд» развивается в результате систематической практики ToM (Theory of Mind; наука самоосознания). ToM-компонент DevOps-культуры позволяет распознавать сильные стороны – свои и своих коллег; позволяет улучшать понимание себя и других. В результате способность людей сотрудничать и сопереживать друг другу – увеличивается. Организации с развитой DevOps-культурой реже допускают ошибки, быстрее восстанавливаются после сбоев. Сотрудники этих организаций – чувствуют себя более счастливо. А счастливые люди, как известно, – более продуктивны. Поэтому целью DevOps является выработка взаимопонимания и общих целей, позволяющих установить долговременные и прочные рабочие взаимоотношения между отдельными сотрудниками и целыми департаментами.
DevOps-культура это своеобразный фреймворк, располагающий к тому, чтобы обмениваться ценным практическим опытом и развивать между сотрудниками сопереживание. DevOps это культурная ткань, сплетённая из трёх нитей: непрерывное выполнение должностных обязанностей, развитие профессиональных компетенций и личное самосовершенствование. Эта культурная ткань «обволакивает» как отдельных сотрудников, так и целые департаменты, – позволяя им эффективно и непрерывно развиваться в профессиональном и личном плане. DevOps помогает уйти от «старого подхода» (культуры упрёков и поиска виноватых) и прийти к «новому подходу» (использование неизбежных ошибок не для порицания, а для извлечения практических уроков). В результате в команде увеличивается прозрачность и доверие, – что очень благотворно сказывается на способности членов команды сотрудничать друг с другом. Таково краткое содержание книги.
5. Жёлтая паутина (жёлтая, в смысле злободневная, подборка уязвимостей всемирной паутины)
Michal Zalewski. Tangled WEB: A guide to Securing Modern Web Applications. 2012. 300 p.
Всего каких-нибудь 20 лет назад Интернет был настолько же простым, насколько и бесполезным. Он представлял собой причудливый механизм, позволяющий небольшой кучке студентов и вундеркиндов – посещать домашние странички друг друга. Подавляющее большинство таких страничек было посвящено науке, домашним питомцам и поэзии.
Архитектурные изъяны и недостатки реализации всемирной паутины, с которыми нам приходится мириться сегодня – плата за историческую непредусмотрительность. Ведь это была технология, которая никогда не стремилась к тому глобальному статусу, который она имеет сегодня. В итоге мы имеем сегодня очень уязвимую киберинфраструктуру: как выяснилось, стандарты, дизайн и протоколы всемирной паутины, которых было достаточно для домашних страничек с танцующими хомяками, – совершенно недостаточно, скажем, для Интернет-магазина, который ежегодно обрабатывает миллионы транзакций по кредитным картам.
Оглядываясь на прошлые два десятка лет, трудно не разочароваться: практически каждое сколь-нибудь полезное web-приложение, разработанное до сегодняшнего дня, – было вынуждено заплатить кровавую цену за непредусмотрительность вчерашних архитекторов всемирной паутины. Мало того, что Интернет оказался куда более востребованным, чем это ожидалось, так мы ещё и закрывали глаза на некоторые неудобные его характеристики, которые выходили за пределы зоны нашего комфорта. И ладно бы закрывали глаза в прошлом, – мы продолжаем закрывать их и сейчас… Более того, даже очень хорошо спроектированные и тщательно проверенные веб-приложения, всё равно имеют гораздо больше проблем, чем их несетевые собратья.
Итак, мы порядком наломали дров. Пришло время покаяться. В целях такого покаяния эта книга и была написана. Это первая в своём роде (и на данный момент лучшая в своём роде) книга, которая предоставляет систематический и тщательный анализ текущего состояния безопасности веб-приложений. Для такого сравнительно небольшого объёма книги, количество рассмотренных в ней нюансов – просто ошеломительное. Более того, инженеры-безопасники, ищущие быстрых решений, порадуются наличию чит-листов, которые можно найти в конце каждого раздела. В этих чит-листах описываются эффективные подходы для решения наиболее злободневных проблем, с которыми сталкивается разработчик веб-приложений.
6. Коричневая (книга багоборца)
Tobias Klein. A Bug Hunter ‘s Diary: A Guided Tour Through the Wilds of Software Security. 2011. 208 p.
Одна из интереснейших книг, вышедших за последнее десятилетие. Её посыл можно резюмировать следующими словами: «Дайте человеку эксплойт, и вы сделаете его хакером на один день, научите его эксплуатировать ошибки – и он останется хакером на всю жизнь». Читая «Дневник багоборца», вы проследуете за практикующим экспертом кибербезопасности, который выявляет ошибки и эксплуатирует их, – в самых популярных на сегодняшний день приложениях. Таких как Apple iOS, VLC-медиаплеер, веб-браузеры и даже ядро Mac OS X. Читая эту уникальную в своём роде книгу, вы получите глубокие технические знания и понимание того, какой у хакеров подход к трудноразрешимым проблемам; а также в каком они экстазе находятся в процессе охоты на баги.
Из книги вы узнаете: 1) как пользоваться проверенными временем методами поиска багов, такими как трассировка вводимых пользователем данных и реверсинженеринг; 2) как эксплуатировать уязвимости, такие как разыменование NULL-указателей, переполнение буфера, огрехи преобразования типов; 3) как писать код, демонстрирующий наличие уязвимости; 4) как грамотно уведомлять вендоров об выявленных в их софте багах. Дневник багоборца испещрён реальными примерами уязвимого кода, и авторскими программами, разработанными для облегчения процесса поиска багов.
Ради какой бы цели вы ни охотились за багами, будь то развлечение, заработок или же альтруистическое стремление сделать мир более безопасным, – эта книга поможет вам развить ценные навыки, поскольку с её помощью, вы заглядываете через плечо профессионала-багоборца, на экран его монитора, и также в его голову. Максимальную отдачу от книги получат те, кто хорошо знаком с языком программирования C/C++ и x86-ассемблером.
7. Книга возмездия (библия безопасной разработки кода)
Michael Howard. 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them. 2010. 394 p.
Сегодня любой разработчик софта просто обязан обладать навыками написания безопасного кода. Не потому что это модно, а потому что дикая природа киберпространства – весьма недружелюбна. Мы все хотим, чтобы написанные нами программы были надёжными. Но они не будут таковыми, если мы не позаботимся об их кибербезопасности.
Мы всё ещё расплачиваемся за грехи кибер-не-безопасности, совершённые в прошлом. И мы будем обречены расплачиваться за них и дальше, если не извлечём уроков из своей богатой истории небрежной разработки софта. Эта книга вскрывает 24 принципиальных момента, – очень некомфортных для разработчиков софта. Некомфортных в том плане, что разработчики практически всегда допускают в этих моментах серьёзные огрехи. В книге представлены практические советы, каким образом при разработке софта избежать этих 24 серьёзных огрехов, и как протестировать на наличие таких огрехов уже имеющийся софт, написанный другими людьми. Повествование книги – простое, доступное и основательное.
Эта книга будет ценной находкой для любого разработчика, независимо от языка, который он использует. Она будет интересна всем тем, кто заинтересован в разработке качественного, надёжного и безопасного кода. В книге наглядно продемонстрированы наиболее распространённые и опасные огрехи, сразу для нескольких языков (C ++, C #, Java, Ruby, Python, Perl, PHP и др.); а также приведены проверенные временем и хорошо зарекомендовавшие себя техники, позволяющие смягчить эти огрехи. Искупить прошлые грехи, иначе говоря. Возьмите на вооружение эту библию безопасной разработки, и больше не грешите!
Руководители некоторых софтверных компании используют эту книгу для проведения блиц-тренингов – непосредственно пред началом разработки нового софта. Обязывают разработчиков прочитать перед началом работы те разделы из этой книги, которые затрагивают технологии, с которыми им предстоит иметь дело. Книга разделена на четыре раздела: 1) грехи веб-софта, 2) грехи разработки, 3) криптографические грехи, 4) сетевые грехи.