Когда кто-то говорит: «Кибериммунная архитектура — это что-то ультрасовременное, только что из лабораторий Касперского», мы, конечно, гордо расправляем плечи. Но на самом деле принципы «кибериммунности» родом не из века компьютерных чипов, а из времён, когда люди считали крутым гаджетом тяжёлую железную болванку на палке и прорезь для стрел в стене.
Догадались, о чем речь? Конечно, о средневековых замках!
«Доверенная кодовая база» Средневековья
В эпоху Позднего Средневековья строили фортификационные шедевры, которые теперь восхищают туристов и историков. Возьмём, к примеру, ЗАМОК (ЦИТАДЕЛЬ). Там ничего не слышали про брандмауэры и антивирусы, зато проектировали предельно надёжную оборону от вторжения извне по всем правилам кибериммунитета.
- Изоляция и минимизация критичного. Самое ценное («король и казна») всегда хранилось отдельно, в центре замка. Чем меньше периметр, тем дешевле и надёжнее защита. Иными словами — критичного кода должно быть как можно меньше.
- Контроль взаимодействия. Никаких незваных гостей! Каждый мостик, ворота или дверь тщательно контролировались. Даже если шпион попал во внешний двор, вход внутрь строго ограничен белым списком и всегда под контролем защитников.
- Многоуровневая защита. Широкий ров (Moat) — первый рубеж обороны. Уже на этом этапе большинство атакующих начинают нести потери или отступать. Хотите штурмовать? Придётся переплывать, перепрыгивать или как-то исхитриться перебраться через ров.Наружная стена (Outer Ward) — второй барьер. Допустим, коварным штурмовикам посчастливилось преодолеть ров. Но захват внешней стены не означал падения замка: атакующие оказывались перед лицом ещё более сложной задачей — продвинуться дальше и преодолеть последующие защитные рубежи. Внутренняя стена (Inner Ward) — третий рубеж. Ещё одно препятствие, которое давало защитникам время перегруппироваться. В кибериммунных терминах: взломали одно приложение — не значит, что у вас теперь полный root-доступ ко всей системе.
В итоге врагу приходилось шаг за шагом «взламывать» каждый слой защиты, теряя кучу ресурсов и энтузиазма. Противник может «положить армию под стенами замка», штурмуя рубеж за рубежом и, возможно, даже преуспеет в чём-то незначительном, но до ключевых ресурсов добраться не сумеет.
И, если хоть один слой остаётся стоять, у защитников есть время и возможности отразить атаку или дождаться помощи союзников. Никакой «единой точки отказа» — вот, что такое многоуровневая архитектура или по-современному «defense in depth»: не просто поставить много стен подряд, а сделать так, чтобы преодоление каждой новой защиты обходилось противнику слишком дорого.
Именно этот подход перенимает и кибериммунная разработка: атака должна стать максимально невыгодной, а в идеале — нецелесообразной.
Итого:
Если вам кто-то скажет, что кибериммунность — это новая модная фишка от айтишников, смело можете отвечать: «Да нет, ребята, это ещё в Средневековье умели!». Ведь что в XII веке, что в XXI — главный принцип остаётся неизменным: многослойная защита без единого слабого места.
К счастью, теперь не нужно таскать тяжёлые камни, достаточно просто грамотно разделять процессы, контролировать потоки и сокращать доверенный код при постройке наших «замков» в цифровом мире. Пока враги ковыляют через «ров», у нас есть все шансы подправить «стены» и рассказывать им анекдоты, сидя сверху Цитадели.