Ричард Кларк - Третья мировая война. Какой она будет
Очевидные ошибки исправляются, иначе программа не функционирует так, как нужно, но менее явные остаются и могут быть позднее использованы для получения доступа к коду. Поскольку вычислительные системы работают быстрее, компьютерные программы становятся сложнее, чтобы использовать все возможности новых скоростей и мощности. В Windows 95 было менее 10 миллионов строк кода, в Windows ХР их уже 40 миллионов, а в Windows Vista — более 50. За десять с небольшим лет количество строк увеличилось в пять раз, и во столько же возросло количество ошибок. Многие из этих ошибок позволяют хакерам заставлять программу делать то, для чего она не предназначалась. Для того чтобы использовать популярное программное обеспечение в собственных целях, например получить статус администратора, хакеры разрабатывают небольшие приложения — апплеты, которые учитывают особенности программного обеспечения, слабые места и ошибки конфигурации системы. Поскольку компьютерная преступность — это большой бизнес, подготовка к отражению кибератак финансируется столь же хорошо, а хакеры и кибервоины постоянно разрабатывают новые способы обмануть системы. Приложения, создаваемые хакерами, называются вредоносным ПО, или мэлвером. В 2009 году новая разновидность мэлвера появлялась в киберпространстве в среднем каждые 2,2 секунды. Посчитайте: три-четыре крупнейшие компании по производству антивирусных программ пользуются сложнейшими схемами отслеживания нового мэлвера, но они находят и блокируют только одну из десяти вредоносных программ. Пока «фикс» — компонент программного обеспечения, блокирующий мэлвер, — доходит до клиентов антивирусной компании, проходят дни, а иногда недели. На протяжении этого времени коммерческие компании, правительственные учреждения и рядовые пользователи остаются беззащитными.
Часто вредоносные программы поджидают вас на совершенно безобидных сайтах. Вы заходите на сайт вашингтонского научного центра, чтобы ознакомиться с последними исследованиями по важной политической проблеме. Научным центрам, как известно, денег вечно не хватает, поэтому они не уделяют достаточного внимания созданию безопасных и надежных сайтов. Пока вы читаете о недавних махинациях вокруг проблем здравоохранения и прав человека в Китае, небольшая вредоносная программка загружается на ваш компьютер. Вы об этом не знаете, но вашему новому «другу» из Белоруссии известна каждая клавиша, которую вы нажимаете. Что будет, когда вы зайдете на свою личную страницу в банке или в защищенную сеть своего работодателя? Нетрудно догадаться.
Самая распространенная ошибка — переполнение буфера. Код веб-страницы должен быть написан так, чтобы пользователь имел возможность ввести фиксированный объем данных, например имя пользователя и пароль. Вспомните Twitter, где вы за раз можете ввести не более 140 символов. Но если разработчик кода забывает ограничить количество символов, пользователь может ввести что-нибудь лишнее. И вместо имени пользователя и пароля там окажутся несколько строк кода, дающих вам права администратора. Представьте, как эти команды оказываются в полях ввода персональных данных пользователя и превращаются в приложение. Ваша страничка начинает думать, что это вошел системный администратор, и — пинг! — нарушитель внутри.
Ошибки программного кода непросто обнаружить. Даже специалистам бывает сложно идентифицировать ошибки или слабые места в нескольких строках кода. А если речь идет о миллионах строк? Конечно, существуют программы, проверяющие корректность написанного кода, но и им не под силу выловить все ошибки. Каждая новая строка кода увеличивает количество багов программы. В некоторых случаях программисты добавляют эти баги намеренно. Самый знаменитый пример такой «добавки» произошел, когда шутник из Microsoft добавил в Excel 97 программу-симулятор полетов. В Microsoft об этом узнали лишь тогда, когда люди стали благодарить компанию за такой подарок. Возможно, программисты сделали это ради развлечения, выгоды или по просьбе службы внешней разведки; но какими бы ни были мотивы, невозможно гарантировать то, что в массовых программах не найдется пары строк кода, которые дадут кому-нибудь возможность несанкционированного доступа. В троянском коне прятались «коммандос», в современных «троянах» прячутся команды вредоносного кода. При открытии нового документа в Excel можно было нажать F5, ввести в строку «X97:L97», нажать клавишу Enter, а затем Tab. И, о чудо, вы оказывались в ячейке М97. Достаточно было вызвать «Мастер диаграмм», удерживая кнопки CTRL+SHIFT, и — пинг! — на экране появлялась программа-симулятор полетов.
Иногда разработчики кода специально оставляют «черные ходы», чтобы иметь возможность обновить код в дальнейшем. Но иногда они делают это по менее достойным причинам. Порой другие люди — хакеры и кибервоины — используют их для того, чтобы незаметно проникнуть в сеть. Когда кто-нибудь взламывает программный продукт (в процессе его разработки или позднее), он может не только украсть копию программы, но и добавить в нее что-нибудь лишнее. Умышленно оставленные «черные ходы», так же как и те, что появляются в результате ошибок, позволяют хакеру получить неограниченный доступ. Хакеры продают и покупают друг у друга «права доступа». Если у вас есть права неограниченного доступа к программе или сети, вы получаете все права и полномочия создателя программы или администратора сети. Вы можете изменять программу, добавлять учетные записи пользователей — делать все что угодно. И, что важно, вы можете уничтожить все следы вашего пребывания здесь, как вор, стирающий отпечатки пальцев и сметающий следы ног.
Разработчики кода могут оставлять не только «черный ход», но и логические бомбы. Логическая бомба в своей самой простой форме — это устройство, которое уничтожает программное обеспечение компьютера, превращая его в бесполезную груду металла. Более совершенные логические бомбы могут сначала дать команду аппаратным средствам сделать что-нибудь во вред себе, например вызвать скачок напряжения в электрической сети или заставить самолет уйти в пике. Затем стирается все, включая саму бомбу. АНБ все больше беспокоит проблема логических бомб, поскольку они, скорее всего, уже заложены по всей нашей электрораспределительной сети. В этом есть определенная ирония, ведь именно американские военные изобрели такую форму оружия. Одна из первых логических бомб, которая, возможно, и стала предвестником кибервойны, была создана еще до эпохи массового распространения Интернета. В начале 1980-х советское руководство составило для своей разведывательной службы КГБ список западных технологий, которые нужно было выкрасть. Один агент КГБ, у которого был доступ к этому списку, решил, что предпочтет провести остаток дней, потягивая вино в парижском кафе, а не замерзая в Сибири, и поэтому передал этот список французской разведке в обмен на французское гражданство. Франция же, будучи участником Западного альянса, передала его США. КГБ, не зная о том, что у западной разведки есть этот список, продолжал работать. Когда Франция передала список ЦРУ, президент Рейган дал добро на «помощь» Советскому Союзу. ЦРУ начало специальную программу, позволившую Советскому Союзу выкрасть необходимые технологии, но предварительно добавила незначительные ошибки в схемы истребителей-невидимок и космического вооружения. Но не чертежи были основной целью КГБ. Прежде всего России были нужны коммерческие и промышленные технологии, в частности для нефтяной и газовой промышленности. Нефть и газ должны пройти по трубопроводам тысячи километров, чтобы попасть к западным или российским покупателям. В России ощущался острый недостаток технологий автоматизированного управления трубопроводами. Советский Союз пытался купить их у американских компаний, но получил отказ, в связи с чем решено было выкрасть их у канадской фирмы. ЦРУ внедрило вредоносный код в программное обеспечение этой компании, и, когда русские украли код и стали использовать его для управления своими трубопроводами, все поначалу шло отлично. Но какое-то время спустя программа начала ошибаться. В одном сегменте трубопровода программа заставила насос работать на полную мощность, а в другом — закрыла клапан. Давление увеличилось, и произошел самый крупный неядерный взрыв за всю историю — более трех килотонн.
Если холодная война с Россией разгорится снова или если нам придется воевать с Китаем, превосходство окажется на стороне наших противников. Передовой арсенал, которым обладают Соединенные Штаты, может обернуться против нас самих. Наши военно-воздушные, сухопутные и военно-морские силы зависят от сетевых технологий и уязвимы перед кибероружием, которое разработали Китай и другие противники, чтобы уничтожить традиционное американское превосходство. Вооруженные силы США не способны обойтись без Интернета, как не способен обойтись без него крупнейший интернет-магазин Amazon.com. Материально-техническое обеспечение, управление и контроль, вывод флота на позиции, наведение орудий на цели—все базируется на программном обеспечении и прочих связанных с Интернетом технологиях. И все это так же не защищено, как ваш домашний компьютер, поскольку использует те же несовершенные технологии и то же небезопасное программное и аппаратное обеспечение.