Читать книгу Секреты и ложь. Безопасность данных в цифровом мире (Брюс Шнайер) онлайн бесплатно на Bookz (27-ая страница книги)
bannerbanner
Секреты и ложь. Безопасность данных в цифровом мире
Секреты и ложь. Безопасность данных в цифровом миреПолная версия
Оценить:
Секреты и ложь. Безопасность данных в цифровом мире

3

Полная версия:

Секреты и ложь. Безопасность данных в цифровом мире

И конечно, от них нельзя ожидать разумных решений в вопросах безопасности. Можно было предположить, что после паники 1999 года в связи с вирусами Melissa и Worm.ExploreZip люди не станут открывать вложения, которых не ожидали увидеть в своей почте. Однако темпы распространения червя ILOVEYOU (и десятков его разновидностей) свидетельствуют о том, что люди ничему не учатся… особенно когда многие компании зарабатывают на том, что пользователи обмениваются любопытными вложениями.

Браузеры используют цифровые сертификаты для того, чтобы обеспечить безопасность соединений. Когда они получают сертификат, они не обязательно предоставляют сведения об идентификации тому, кто находится на другом конце соединения. Это имеет существенное значение для безопасности, поскольку соединение не может считаться безопасным, пока не будет известно, кто находится на другом его конце. Большинство людей не беспокоятся о том, чтобы взглянуть на сертификат, и даже не знают, что это следовало бы сделать (или как это можно сделать).

Те же браузеры могут выводить на экран предупреждения перед загрузкой апплетов Java. Пользователя спрашивают, доверяет ли он некоторому веб-серверу, с которого отправляется апплет. Пользователь не имеет представления о том, стоит ему доверять ему или нет. Или не беспокоится об этом. Если некто, бесцельно блуждающий по Интернету, щелкает на кнопке, обещающей вывести на экран пляшущих поросят, и получает предупреждение о возможных опасностях апплета, он сделает выбор в пользу поросят, а не стабильной безопасности своего компьютера. Если его попытаются образумить предупреждением вроде: «Апплет DANCING PIGS может содержать вредоносный код, способный вызвать непоправимые повреждения вашего компьютера, похитить все ваши сбережения и лишить вас способности к деторождению», он щелкнет ОК, даже не прочитав его. Через тридцать секунд он и не вспомнит, было ли подобное предупреждение.

Автоматизм действий пользователя

Когда в главе 6 я излагал основы криптографии, я говорил о том, как Алиса и Боб шифруют, расшифровывают, подписывают и верифицируют сообщения и документы. Например, я упоминал, как Алиса может применять шифрование с помощью открытого ключа: если она найдет ключ Боба в телефонной книге, она может использовать его для шифрования своего сообщения Бобу. На самом деле все совсем не так. Алиса никогда не шифрует и не подписывает свои сообщения Бобу. Она никогда не расшифровывает входящие сообщения. Она вообще не занимается криптографией. Все, что она делает, так это щелкает на соответствующей кнопке, а компьютер шифрует или подписывает сообщения и вообще делает то, чего хочет Алиса. В этом состоит принципиальное отличие.

Представьте себе, что в будущем мы будем постоянно подписывать цифровые документы. Как это будет выглядеть? Алиса составит документ с помощью некоторого приложения – текстового редактора, почтовой программы и т. п. – и щелкнет на определенном значке, чтобы сообщить о своей готовности подписать его. Приложение вызовет некоторую программу, которая создаст подпись. Алиса введет свой пароль (слово или целую фразу) или приложит палец к устройству идентификации, или еще каким-либо способом подтвердит, что она именно та, за которую себя выдает. Программа составит цифровую подпись и передаст ее вызвавшему приложению для присоединения к документу. Вуаля – подпись готова. Возможно, Алиса даже проверит подпись (снова с помощью компьютера), чтобы убедиться, что она правильная.

Это то, что я называю автоматизмом действий пользователя (human-computer transference). Алиса знает, чего она хочет, – подписать документ. Она должна иметь определенные гарантии того, что компьютер сделает именно то, что ей нужно. Однако обеспечить безопасность не так просто.

Предположим, мы хотим заставить Алису подписать нечто, что ей подписывать не хочется. Это легко сделать, если она поверит в то, что подписывает именно тот документ, который видит на экране. Нам нужно заставить компьютер обмануть Алису.

Мы напишем троянского коня, который будет размещаться в программе, создающей цифровую подпись. Этот троянский конь будет содержать документ, который мы хотим подсунуть Алисе, – несомненно, или что-нибудь постыдное, или сулящее выгоду, – и код для его подписания. Единственное, чего не хватает троянскому коню, – это ключа Алисы. Когда она вводит свой пароль, чтобы подписать какое-нибудь сообщение для нас, троянский конь подсовывает вместо него компрометирующий документ. Программа, создающая цифровую подпись, возвращает ее основному приложению, которое присоединяет подпись к документу, который Алиса действительно собиралась заверить. Если она попытается проверить подпись, троянский конь снова подсунет подделку, и программа, создавшая подпись, подтвердит, что она правильная. Таким образом, троянский конь может заставить компьютер солгать Алисе. Затем она отправляет нам свое сообщение с ошибочной подписью – составленной для совершенно другого документа. Мы присоединяем эту подпись к копии нашей подделки и звоним в Washington Post. Тем временем троянский конь самоуничтожается, и все возвращается в исходное состояние.

Это легко реализовать в среде Windows: можно создать макрос, который будет попросту наблюдать за «открытым файлом» диалога PGP, копировать свой собственный файл под именем того, который как раз собирается подписать Алиса, и впоследствии возвращать старый файл на место. Язык макрокоманд программы Word позволяет сделать это, поэтому совсем не трудно создать такой макровирус.

Это всего лишь один пример. Троянский конь может подсунуть для подписи оба документа и переслать подделку позже, в подходящий момент. Или просто похитить ключ Алисы.

В этом нет ничего сложного, программирование – простое дело. Во всяком случае, если мы достигнем успеха, мы завладеем опасным для Алисы документом с ее подписью. Мы можем размахивать им в суде или передать журналистам, обоснованно заявляя, что под документом стоит действительная подпись. Однако вероятнее всего, что нас постигнет неудача. Как только кто-нибудь напишет троянского коня, подделывающего подписи, он распространится повсеместно. И если документ будет предъявлен в суде, одна из сторон может представить свидетельство эксперта о существовании этого троянского коня и о том, с какой легкостью можно заставить кого угодно поставить свою подпись неведомо на чем. Примет ли суд эту подпись в качестве доказательства? Все зависит от обстоятельств, а не от математических методов.

Суть фундаментальной проблемы состоит в том, что у нас нет никакого представления, что же в действительности делает компьютер по нашей команде. Когда мы приказываем ему сохранить документ, или зашифровать файл, или сложить числа в столбце, у нас нет уверенности в том, что этот «черный ящик» выполнит задание правильно или даже вообще его выполнит. Мы вынуждены все принимать на веру. Насколько трудно поймать за руку вороватого работника, настолько же трудно выловить разрушительную программу. Дело обстоит даже хуже. Представьте себе, что этот сотрудник работает в одиночестве и за ним некому уследить, Все средства наблюдения, которые мы можем установить, – скрытые камеры и микрофоны – управляются самим же этим работником. Все, что мы можем сделать, – это сравнивать поступающие к нему («на входе») материалы с производимым им продуктом («на выходе»). Но и этого недостаточно для полной уверенности в его честности.

Если Алиса не может доверять компьютеру, на котором работает, то она не может быть уверена в том, что он точно выполняет ее команды. Хотя бы потому, что когда она велит ему подписать документ, это не означает, что он не способен поставить ее подпись под другим документом. Проблему можно исчерпать, когда Алиса станет подписывать документы лишь на совершенно надежном компьютере, а это трудно осуществить. Если речь идет о компьютере общего назначения, я никогда не поверю в то, что он достаточно надежен.

Вот если бы у Алисы был маленький компьютер с единственным назначением – создавать цифровые подписи, – тогда было бы на что надеяться. Я в состоянии представить карманное устройство с миниатюрной клавиатурой и экраном, в которое можно перенести документ с компьютера общего назначения. Алиса сможет просмотреть документ на экране – так как нет никакой гарантии, что «большой» компьютер загрузит именно то, о чем его попросят, – и ввести пароль с клавиатуры. Устройство создаст подпись под документом и передаст ее назад компьютеру общего назначения. Нам остается молиться о том, чтобы такая система была безопасной. Можно сконструировать ее так, чтобы устройство использовало только заводское программное обеспечение, а независимая проверяющая компания будет выдавать свидетельство о том, что программа работает правильно.

Однако при работе на небезопасном компьютере – то есть практически всегда – нет никакой гарантии того, что мы видим на экране именно то, что получили, или что оно работает так, как мы могли бы ожидать.

Внутренние враги

В главе 4 я уже рассказал о внутренних врагах. Стоит вспомнить о тех проблемах, которые с ними связаны. Основная проблема заключается в том, что они пользуются безоговорочным доверием. Для них не проблема стащить деньги из кассового аппарата, внести путаницу в отчетность и замести следы, скопировать и переправить китайцам военные секреты, похитить набор бланков кредитных карточек, набить карманы фишками в казино, найти другой путь, чтобы грабители могли безопасно вывезти на грузовике краденое добро, и многое другое. Часто никакие средства компьютерной безопасности не в состоянии предотвратить нападения такого рода (хотя тщательная проверка имеет шансы впоследствии выявить виновных).

Киберпространство особенно чувствительно в этом отношении. Тот, кто пишет программу защиты, может предусмотреть «черный ход» в нее. Тот, кто устанавливает брандмауэр, может оставить тайную брешь в защите. Тот, кто по роду своей деятельности обязан проверять работу системы безопасности, может сознательно пропустить какие-то вещи.

Вот только один пример. В Чикаго для оплаты проезда в метрополитене используются как жетоны, так и проездные билеты. Пассажиры должны либо отдать контролеру жетон, либо предъявить проездной, после чего их пропускают на платформу. Многие годы контролеры принимали от пассажиров жетоны, а отмечали их как владельцев проездных билетов. В конце концов, в 1991 году руководство узнало об этом, и контролеры были арестованы. По самым скромным оценкам, ущерб составил сотни тысяч долларов. Когда начали работать более честные контролеры, дневная выручка на некоторых станциях удвоилась. На решение этой проблемы ушло несколько лет.

Компании пытаются снизить риск ущерба от внутренних врагов различными способами. Наилучшее решение состоит в том, чтобы принимать на работу честных людей, но это легче сказать, чем сделать. Некоторые компании зашли так далеко, что проводят предварительный отсев претендентов, подвергая их проверке на честность. Другие пытаются распределить ответственность между сотрудниками и ограничить возможности причинения ущерба одним работником. Для того чтобы иметь возможность установить, какой вред причинен сотрудником, и предъявить ему обвинение в суде, необходимо проводить проверки. Тем не менее любая организация оказывается во власти работающих в ней людей.

Манипулирование людьми

В 1994 году французский хакер по имени Антоний Зборальски позвонил в вашингтонский офис ФБР и представился представителем этой организации, работающим в американском посольстве в Париже. Он убедил собеседника на другом конце провода, и тот объяснил ему, как подключиться к системе телеконференции ФБР. Его звонки за последующие семь месяцев стоили ФБР 250 000 долларов.

Вообще, это распространенный хакерский прием – позвонить ничего не подозревающему работнику и представиться системным администратором сети или руководителем службы безопасности. Если хакер достаточно осведомлен об особенностях корпоративной сети, чтобы выглядеть убедительно, он может выудить у работника пароли, учетные записи и другие важные сведения. В одно прекрасное мгновение хакер размещает на доске объявлений компании новый телефон «справочного стола»[48] – свой собственный. Сотрудники компании будут регулярно звонить ему, и он соберет богатый урожай паролей и данных по учетным записям в обмен на свою помощь.

Манипулирование людьми – это хакерский термин для обозначения такого рода мошенничества: убедить кого-нибудь сделать то, что вам нужно. Это весьма эффективно. Манипулирование людьми преодолевает и криптографию, и средства компьютерной или сетевой безопасности, и любые другие технические приемы. Оно направлено непосредственно на самое слабое звено любой системы безопасности: бедный человечек старается выполнить свою работу и готов выручить другого, если в силах чем-то помочь.

Печально, но это гораздо проще, чем можно подумать. Бывает достаточно появиться в компьютерной фирме с каким-нибудь «железом» в руках, нацепив соответствующую эмблему компании-поставщика. Если побродить вокруг и поинтересоваться, нельзя ли здесь где-нибудь примоститься и чуток поработать, скорее всего, можно оказаться за клавиатурой и получить выход в сеть: ясно ведь, что это – посетитель компании.

По большей части манипулирование людьми осуществляется по телефону, что затрудняет поимку злоумышленника. Один из них звонил разным людям и заявлял: «Это оператор. Вам звонит за ваш счет… (имярек) из такого-то города». Если жертва соглашалась принять звонок, «оператор» продолжал: «Функция соединения за ваш счет заблокирована. Сообщите мне, пожалуйста, номер вашей карты, и я соединю вас». Это происходило в действительности. Злоумышленник находил людей в конференциях Usenet и придумывал звонки за их счет от корреспондентов по конференции, что выглядело весьма правдоподобно.

Когда в 2000 году Кевин Митник давал показания в Конгрессе, он говорил о манипулировании людьми: «Нападения этого рода были столь успешны, что мне редко приходилось обращаться к техническим средствам. Компании способны истратить миллионы долларов на технические средства защиты, но все это будет напрасно, если можно позвонить по телефону и убедить кого-нибудь сделать на компьютере нечто, что ослабляет защиту или открывает доступ к интересующей информации».

Другой вид нападений с помощью манипулирования людьми направлен против кредитных карт. Предположим, Алиса узнала номер кредитной карты Боба. Она могла бы сделать покупки за его счет, но она более коварна. Она дает рекламу различных товаров – видеокамер, компьютеров, чего угодно еще – и предлагает их по очень низкой цене. Карл попадается на удочку и покупает какой-то продукт у Алисы. Она в свою очередь заказывает этот продукт у настоящего продавца, используя номер кредитной карты Боба. Продавец доставляет покупку Карлу и бывает озадачен, когда впоследствии Боб обнаруживает траты. В этом случае виновным посчитают Карла, а не Алису.

Автоматизированное манипулирование людьми можно использовать сразу против большого количества людей, и кто-нибудь постоянно будет одурачен. В 1993 году подписчики New York ISP Phantom Access получили следующее зловещее сообщение: «Мне стало известно, что ваша учетная запись была взломана посторонним лицом. Внесенные изменения столь значительны, что это позволило обнаружить ошибку. Пожалуйста, временно измените пароль для доступа к DPH7, чтобы мы смогли оценить серьезность вторжения. Когда проблема будет решена, я извещу вас. Благодарю за содействие. – Системный администратор». А в 1999 году пользователи AOL постоянно получали сообщения вроде: «В результате произошедшей ошибки была удалена из базы данных информация о более чем 25 000 учетных записей, в том числе и вашей. Чтобы получить доступ к резервным данным, нам необходим ваш пароль. Если мы не получим его, мы НЕ будем иметь возможности позволить вам подписаться на America Online в течение 24 часов, следующих за открытием настоящего письма».

Правдоподобие и неожиданность сообщения, ужас, который оно вызывает, заставляют жертву сдаться. Распространяемые по электронной почте вирусы и черви используют автоматизированное манипулирование людьми, чтобы заставить получателей открыть их. Вирус ILOVEYOU прятался в посланиях от людей, известных получателю. Сообщения имели правдоподобную тему и содержание, побуждавшее открыть вложение. Вложение было представлено как безвредный текстовый файл, на самом же деле это был файл VBScript. Я уже говорил об этом в главе 10. Люди не могут противодействовать таким вирусам, использующим манипулирование людьми.

В некоторых случаях технические средства безопасности в состоянии помочь. Если бы всегда готовые прийти на подмогу сотрудники помимо пароля должны были использовать маркеры доступа (или средства биометрического контроля), то славный парень на другом конце провода не сумел бы получить все, чего хотел. Его не выручил бы пароль, если бы компьютер имел устройство для распознавания отпечатков пальцев. Если бы системы были достаточно разумны и распознавали, что кто-то входит в них с удаленного компьютера, тогда как правила предписывают делать это исключительно на рабочем месте, возможно, кого-нибудь это встревожило бы.

Иногда предотвратить манипулирование людьми позволяют довольно простые процедуры. В Военно-морских силах США используются сейфы с двумя замками (конечно, с различными комбинациями цифр); один человек не должен знать шифр обоих замков. Это значительно затрудняет управление людьми. Можно использовать многие компьютерные трюки, чтобы ограничить возможности обманутого законного пользователя оказать помощь мошеннику. Технические средства способны усложнить задачу мошенника, в некоторых случаях весьма значительно.

Но скорее всего, манипулирование людьми будет действенно всегда. Взгляните на проблему глазами жертвы – Боба. Боб – славный малый. В компании он принадлежит к числу сотрудников низшего или среднего звена. Он не работает в службе безопасности, но, несомненно, прошел некоторую подготовку по этой части и знает, что нужно быть настороже, так как настырные хакеры не дремлют. Но вообще-то Боб довольно невежествен и не понимает проблем безопасности системы. Ему неведомы тонкости нападений. Он хочет лишь выполнять свою работу и готов прийти на помощь.

Мошенница Алиса приходит к Бобу со своей проблемой. Она, как и Боб, всего лишь винтик в механизме компании. Ей тоже нужно сделать свою работу. Все, чего она хочет от Боба, – узнать его пользовательское имя и пароль или какой-либо номер телефона, подключить здесь какое-нибудь «железо» или сделать еще что-нибудь вполне осмысленное. Конечно, формально это запрещено, но у Алисы какие-то затруднения, и ей нужно сделать всего лишь это. Каждый хоть однажды обходил средства безопасности, когда торопился закончить работу вовремя. Неужели Боб откажет в помощи? Или он не член команды? Разве он не знает, как часто глупые правила компании мешают работе? Конечно, он поможет. Он добрый.

Именно поэтому приемы манипулирования людьми работают. Люди в основном доброжелательны и приходят на помощь. И их часто обманывают. Взывая к естественным душевным качествам Боба, Алиса всегда добьется своей цели. Она убедит Боба, что она – такая же, как и он сам. Она позвонит в тот момент, когда Боб менее всего ожидает этого. Она знает, что средства безопасности мешают его работе, и может сыграть на этом. Если же она допустит ошибку, и Боб не попадется на удочку, она может обратиться к десяткам и сотням других Бобов в той же организации, которые сделают то, о чем их попросят.

Часть III

Стратегии

До сих пор мы изучали проблему по частям. Мы рассмотрели основные существующие угрозы. Мы познакомились с разными видами атак и типами злоумышленников. Мы многое узнали о различных технологиях и о том, каким образом они противодействуют (или почему не могут противодействовать) нападениям. Пришло время собрать это все вместе и попытаться решить некоторые проблемы безопасности.

Руководителей можно разделить на три категории в зависимости от их подхода к вопросам безопасности. Первая категория считает: «В этой области дела обстоят слишком плохо». Эта точка зрения, согласно которой системы безопасности настолько ненадежны, что просто невозможно вести учет товаров с помощью карманных компьютеров (PDA), осуществлять банковские платежи через Интернет или участвовать в лотерее с помощью сотового телефона. Вторая категория придерживается позиции «Я куплю себе безопасность». Согласно этой точке зрения, безопасность – всего лишь отметка об оплате в товарном чеке, и если вы приобрели брандмауэр, то защита вам обеспечена. Обе категории придерживаются крайних взглядов, и любая из этих позиций отражает упрощенческий взгляд на вещи. Третья категория рассуждает еще более странно: «Мы слишком незначительны, чтобы нас атаковали». Эта позиция более чем упрощенческая.

Мы хотим предложить нечто лучшее. Дела можно вести безопасно в цифровом мире так же, как можно их вести в мире реальном. На первый взгляд лучший способ обеспечить безопасность состоит в использовании как можно большего количества средств защиты: повесить больше замков на двери, везде использовать шифрование, брандмауэры, системы обнаружения вторжения, инфраструктуру открытого ключа в компьютерных сетях. К сожалению, все далеко не так просто. Во-первых, финансирование системы безопасности ограничено. Во-вторых, нагромождение различных средств защиты – не лучший путь к достижению цели.

Задача состоит в том, чтобы понять, как работает целостная система и как в нее вписываются средства защиты. Бесполезно рассматривать только отдельные технологии.

Безопасность – это цепь; ее прочность определяется прочностью самого слабого ее звена. Если вы решили осуществить зашифрованное телефонное соединение, вы должны побеспокоиться об алгоритме шифрования голосовой связи, о механизме обмена ключами, который позволит участникам диалога понимать друг друга, о процессе создания ключа, о безопасности программного обеспечения на телефонной станции, о физической безопасности аппаратов и т. д. Изъян в любом из этих звеньев сведет на нет все усилия.

То же самое относится к компьютерным системам. Если у вас есть сеть с брандмауэром, вы должны подумать о безопасности самого брандмауэра. Если ваша сеть снабжена брандмауэром и VPN, необходимо, чтобы были защищены оба этих устройства. Уязвимое место в одном из них может привести к тому, что вся сеть окажется в нерабочем состоянии.

Безопасность – это процесс, а не продукт. В этой части мы будем обсуждать процессы, связанные с безопасностью: атаки, способы защиты и взаимоотношения между ними. Мы поговорим о том, как осуществляются реальные нападения, и о том, как сконструировать систему, способную противостоять таким нападениям. Мы также поговорим о текущем состоянии средств безопасности, об их будущем и о том, что необходимо для их эффективной работы.

Глава 18

Уязвимости и их ландшафт

В первой части мы теоретически рассматривали атаки: какие существуют виды нападений и нападающих. Но, как я каждый раз не устаю повторять, теория отличается от практики. Каждый, кто читает детективные романы или криминальную хронику в газетах, знает, что для осуществления нападения необходимо намного больше, чем просто найти уязвимое место. Можно считать, что нападающий с успехом использовал слабую точку, если ему удалось определить цель, спланировать атаку, сделать свое дело и скрыться. Недостатки в замке сейфа, находящегося в безопасном месте, менее существенны, чем аналогичные недостатки в банковском уличном ящике для депозитов.

То же самое и в цифровом мире. Потенциальному преступнику недостаточно найти изъян в алгоритме шифрования, использующемся в системе кредитных карт. Он должен получить доступ к соединению, он должен обладать достаточными знаниями о протоколах, чтобы создать поддельное сообщение, которое позволит ему на самом деле украсть деньги, и в конце концов он должен успеть убраться вовремя. Обнаружение изъяна в шифровании в отрыве от всех остальных шагов представляет только теоретическую ценность.

Подобно этому, существует великое множество мер противодействия, которые могут помочь «заткнуть дыру». В сейфе можно повесить более надежный замок или установить сигнализацию на окнах и дверях помещения, в котором сейф находится, и поставить у дверей охрану. Недостатки в шифровании могут быть исправлены, если использовать лучший алгоритм шифрования. Они не будут представлять опасности, если держать протоколы в секрете, использовать частную сеть для сообщений или просто менять ключи каждые пять минут.

Методология атаки

В общем случае успешную атаку можно разбить на пять последовательных шагов:

1. Опознать цель, которая должна подвергнуться нападению, и собрать о ней информацию.

2. Проанализировать информацию и найти уязвимую точку в цели, которая позволит добраться до объектов, на которые направлена атака.

3. Получить необходимый уровень доступа к цели.


Вы ознакомились с фрагментом книги.

bannerbanner