«Предупреждение: частный компьютер. Использование этой системы предусматривает контроль безопасности. Все действия пользователя и сведения о нем регистрируются, включая IP-адрес и имя хоста».
Предоставьте нападающим самим разбираться, можете ли вы следить за ними.
Если вы строите частную систему безопасности (например, электронных банковских платежей), то важно использовать сильный, открытый, надежный алгоритм шифрования. Когда вы сделаете свой выбор, незачем объявлять о нем.
Если вы используете брандмауэр, нет никакого смысла сообщать всему миру настоящее имя хоста и имя пользователя. Это также принцип построения системы мер безопасности (сетевой сигнализации, приманок и других). Администратор сети знает, как она работает и что означают те или иные действия. Когда кто-то копается в фиктивном счете, администратор знает, что это – злоумышленник. Нападающий не должен знать, где и какое оборудование работает, когда и какой протокол можно использовать, какие порты и при каких условиях будут открыты. Поразительно, как часто серверы, приложения и протоколы объявляют на весь мир: «Привет! Я – служба V2.05». Многие автоматические средства взлома в поисках определенных версий программного обеспечения просматривают машины, о которых известно, что у них имеются уязвимые места. Если сети будут непредсказуемы, нападающие не смогут так свободно их огуливать. Не располагая нужной информацией, намного труднее обозначить цель и определить возможные виды атак. Разница такая же, как между прогулкой по солнечном лугу в полдень и по зарослям колючего кустарника в полночь.
Столь же непредсказуемы должны быть и меры реагирования. Ракета «Патриот» недостаточно эффективно поражала в небе иракские «Скады», но вы никогда не узнали бы об этом из официальных сообщений Пентагона. Если Соединенные Штаты знали, насколько была неэффективна противовоздушная оборона, это не означало, что нужно сообщать об этом врагу.
Непредсказуемость – мощное средство, используемое террористами, специалистами по «промыванию мозгов» при авторитарных режимах и теми, кто еще только рвется к власти. Но оно также хорошо работает в сфере компьютерной безопасности.
Стремитесь к простоте
Я уже говорил в предыдущей главе: сложность – злейший враг безопасности. Система настолько защищена, насколько защищено ее самое слабое звено. Поэтому систему с меньшим количеством связей легче обезопасить. Эйнштейн говорил: «Все должно быть настолько просто, насколько это возможно, но не более».
Народная мудрость «Не кладите все яйца в одну корзину», казалось бы, противоречит этому утверждению. Так оно и есть, и на этом принципе строится защита по глубине. Но помните, что охранять несколько корзин сложнее, чем одну. Когда речь идет о безопасности, лучше следовать совету одного героя Марка Твена: «Сложите все яйца в одну корзину и присматривайте за ней».
Заручитесь поддержкой пользователей
Обеспечить безопасность намного легче, если приходится иметь дело с надежными и разумными пользователям, и намного тяжелее – с невежественными и имеющими злой умысел. Меры безопасности, не понятые и не согласованные к каждым, не будут работать. Помните: самыми трудными проблемами безопасности являются те, которые связаны с людьми, а самыми легкими – те, что связаны с битами. Несомненно, должна существовать защита от нападений изнутри, но в основном ваши сотрудники – это ваши союзники. Заручитесь их поддержкой, насколько это возможно.
Обеспечьте гарантию
В чем мы действительно нуждаемся – так это в уверенности, что наши системы работают должным образом, что они обладают требуемыми свойствами и только ими. Большинство нападений в реальном мире приводит к тому, что системы либо перестают делать то, что им положено, либо начинают вести себя непредвиденным образом.
Сомневайтесь
Сомнение в надежности защиты должно присутствовать постоянно. Подвергните сомнению ваши предположения, ваши решения. Поставьте под вопрос ваши модели безопасности и модели угроз. Продолжайте анализировать деревья атак. Не доверяйте никому, особенно самому себе. Вы будете сильно удивлены тем, что вам удастся обнаружить.
Обнаружение и реагирование
Обнаружение атак намного важнее, чем предотвращение. Я неоднократно уже упоминал о том, что полностью предотвратить нападения невозможно. Конечно, стремиться к совершенству нужно, но все, что нам известно относительно сложных систем, говорит о том, что невозможно выявить и устранить все уязвимые точки. Нападающие найдутся всегда, и их нужно ловить и наказывать.
Читать дальше