Системные администраторы последних поколений стали старательно избегать подобных проблем, в значительной степени из-за того, что слишком часто на собственной шкуре ощущали последствия таких ошибок в коде. «Вы никогда
Самые опасные – и, следовательно, самые заманчивые – из таких атак известны как уязвимости нулевого дня. Опасность, которую они представляют собой, всегда проявляется именно тогда, когда уже слишком поздно, – в нулевой день, когда становится ясно, что они все это время активно работали в «доверчивой» сети или компьютере. Этот момент, когда узнаешь о вирусном заражении, подобен тому же нулевому дню диагноза рака – в обоих случаях моментально начинается отчаянный поиск выхода. Слабые места, уязвимости, которые являют собой «трещины» в стенах компьютеров, часто не известны их производителям, системным инженерам и экспертам в области безопасности. Мечта хакеров, шпионов и хакеров-пижонов – особая версия такого трюка, который называется продвинутой постоянной угрозой: скрытый доступ к машине, которая держится – иногда даже годами – за счет обновлений, проверок безопасности и чисток системы, и, одновременно, все это время, будучи уже «ненормальной», выполняет команды, о которых ее пользователь не имеет и малейшего понятия, – отправляет, например, копию каждого действия, совершенного пользователем, на какой-нибудь другой компьютер или выполняет функции стартовой площадки для атак на другие машины, создавая при этом вид совершенно нормального рабочего компьютера.
Лучшие взломы «нулевого дня» основаны не столько на идее внедрения в машины вредоносного ПО, сколько на использовании уже существующего проверенного кода и поиске в нем мелких щелей, создающих возможность краж информации из гигантских каналов. Такие атаки обычно базируются на случайно допущенных ошибках в компьютерных системах или на таких их характеристиках, которые могут выглядеть безобидными, но легко могут стать опасными. Все разработчики аппаратного и программного обеспечения отлично понимают, что их системы уязвимы. Математики доказали, что никогда нельзя быть уверенным, что компьютер, подключенный к сети, безопасен. Мобильный телефон, к примеру, может содержать более 10 миллионов строк кода. Системы, обрабатывающие огромные облачные хранилища, такие как Google и Amazon, еще более массивны. Обновляются они ежедневно, объемы информации, которую они пропускают через себя, невообразимы. Даже самые талантливые программисты допускают по 4–5 ошибок на каждый миллион строк кода.