В отрасли безопасности слово угроза используется по-разному. Мы называем злоумышленника угрозой или носителем угрозы. В той части отрасли, где занимаются защитой от вредоносного программного обеспечения, угрозой называют каждый вирус или фрагмент вредоносного кода.
Исполнение угрозы – это нападение. Каждая угроза, ее проявление и ее воздействие могут вызывать беспокойство. В законе реальная угроза рассматривается как насилие; ударить кого-то – это «избиение» в словосочетании «нападение и избиение». Это может привести к травме. В кибербезопасности мы часто беспокоимся и об угрозе, и о ее результате. Если кто-то совершает взлом под видом законного пользователя (spoofing), возможно образование по цепочке других угроз, таких как фальсификация или раскрытие информации. Особенно на этапе обучения полезно установление конкретной взаимосвязи между механизмом и воздействием. Риск – это количественное уточнение угрозы, и эти количественные измерения часто включают вероятность успеха и объем последствий, выраженный в долларах или в жизнях.
Злоумышленники используют некоторое средство для получения выгоды от использования уязвимости. Средством эксплуатации уязвимости или просто эксплойтом называют код, который дает использующему его сделать что-либо, что хозяин системы предпочел бы предотвратить. Эксплойт можно применить для намеченной цели. Уязвимость – это либо специфическая проблема (ошибка) в коде, оплошность, допущенная из-за неполного учета проектных требований, либо результат компромисса, сделанного дизайнерами или эксплутационниками. Иногда конкретика вносит ясность, в других случаях она доводит до педантизма.
В компьютерной безопасности широко используют термин доверие (trust), и он легко может сбить с толку. В обычном языке доверие означает «твердую веру в чью-нибудь надежность, честность или способность». Заслуживающий доверия означает кого-то, кто соответствует этим ожиданиям. В компьютерной безопасности доверенный означает нечто способное нарушить вашу безопасность. Профессор Росс Андерсон из Кембриджского университета приводит пример: «Шпион, пойманный на продаже секретов, был доверенным, но не заслуживающим доверия». Другие указывают на то, что это слово часто используется в пассивном залоге или с оруэлловской интонацией. Выражение доверенная система (trusted system) не может сообщить нам, кто доверяет системе. Галактическая Империя часто помечала системы как «доверенные», чтобы не обсуждать их воздействие на людей, которых они касались.
Афоризмы
Есть несколько мудрых выражений, которыми бы я хотел поделиться, поскольку они могут широко использоваться в вашей работе, связанной с безопасностью.
«Атаки становятся только лучше; они никогда не становятся хуже». Брюс Шнайер утверждает, что так поговаривают в Агентстве национальной безопаснасти (АНБ) США. Хотя защита развернута, уроки атаки никогда не забываются. Инструменты, разработанные для ее проведения, не пропадают. Они оттачиваются и шлифуются.
«Теории безопасности возникают из теорий незащищенности», – сказал Рик Прото из АНБ. Атаки становятся лучше, а совокупность атак определяет то, что мы вообще думаем о безопасности.
«Все модели неправильны; некоторые модели полезны». Слова британского статистика Джорджа Бокса.
«Компьютерная безопасность – это извращение. Когда вы хотите, чтобы что-нибудь было трудным, это легко, а когда вы хотите, чтобы что-нибудь было легко, это трудно». (Автор я.) Рассмотрим удаление файла. Когда вы действительно хотите, чтобы файл исчез, это трудно сделать, а когда вы хотите его восстановить, это на удивление сложно. Сложно заставить файл исчезнуть, потому что его удаление обычно означает просто удаление ссылок в файловой системе. Если вы попробуете переписать биты на магнитном диске, окажется, что физические записи на диске различаются по размеру и поэтому их можно прочитать и после перезаписи. А флеш-накопители вообще делают почти невозможным создание записи в том же самом физическом месте. Сходным образом легко найти случайность, когда вы хотите предсказуемости. Компьютеры кажутся непредсказуемыми, и часто встречаются гейзенбаги (ошибки, которые то появляются, то исчезают, или меняют свои свойства при попытке отладки), но вы попробуйте написать безопасный генератор случайных чисел.