Ваша интеллектуальная собственность не в безопасности
Если какой‑то прием не работает, я пробую что‑то еще, поскольку я знаю: что‑нибудь обязательно сработает. Что‑нибудь всегда срабатывает. Надо просто найти, что.
Эрик
Что самое ценное в любой компании? Это не компьютеры, не помещения или фабрики, это даже не то, что стало модным клише в некоторых корпорациях: «Наши самые ценные активы — это наши люди».
На самом деле все, что перечислено, может быть заменено. Не так просто, не без борьбы, но практически любая компания выживет после того, как сгорит фабрика или несколько ключевых сотрудников покинут ее пределы. А вот выжить после потери интеллектуальной собственности — это совсем другая история. Если кто‑нибудь украдет конструкцию ваших продуктов, список клиентов, план выпуска новых товаров, результаты исследовательских работ — это будет катастрофа для компании.
Более того, если кто‑то украдет хоть тысячу продуктов с вашего склада, тонну титана с производства или сотню компьютеров из офиса, вы сразу же узнаете об этом. Если кто‑нибудь украдет вашу интеллектуальную собственность электронным образом, то есть, скопирует ее, вы никогда об этом не узнаете или узнаете, когда почувствуете последствия этой кражи.
Шокирующей новостью для вас может стать тот факт, что люди с хакерскими навыками крадут интеллектуальную собственность каждый день, часто из компаний, которые думают о безопасности не меньше, чем вы, о чем и рассказывается в этой главе.
Два героя двух следующих историй принадлежат к особой хакерской ветви под названием «кракеры», — так называют хакеров, которые взламывают программы при помощи реинжиниринга коммерческих приложений или простой кражи кодов этих приложений или лицензированных кодов, так что они могут использовать эти программы бесплатно и распространять их через лабиринт тайных кракерских сайтов. (Не надо их путать с программами «кракерами» для взлома паролей).
У кракеров есть три главных мотива для погони за определенным продуктом:
• Получить программу, которая их интересует, для пристального изучения.
• Принять вызов, чтобы понять, сможет ли он превзойти конкурента (обычно разработчика), — аналогично тому, как игроки стремятся превзойти оппонента за шахматной доской, в бридже или за покерным столом.
• Разместить программное обеспечение в Интернете, чтобы оно стало доступным другим обитателям виртуального мира бесплатно. Кракеры взламывают не только программы, но также и коды, используемые для создания лицензированных ключей.
Оба героя наших историй взламывают сайты производителей ПО, чтобы украсть у них коды программ и распространить их ключевые элементы в группах кракеров, чтобы они могли использовать это ПО бесплатно. Есть много людей с хакерскими способностями, которые занимаются тем же, и есть производители программ, которые не представляют, какой вред наносят им хакеры.
Кракеры существуют в темном, надежно спрятанном мире, где валютой является украденная программа — масштабы кражи интеллектуальной собственности могут ужаснуть любого нормального человека. Потрясающий последний акт этой истории подробно описан в конце главы в разделе «Распределение: мир кракеров».
Истории в этой главе сильно адаптированы для обычных читателей.
ДВУХЛЕТНЕЕ ХАКЕРСТВО
Эрик — тридцатилетний консультант по безопасности. Он жалуется: «Когда я сообщаю об уязвимости, я часто слышу: «Это ерунда.
Что за проблема? Какой от этого вред?». Его рассказ хорошо иллюстрирует часто забываемый трюизм: обычно люди гибнут от небольших ошибок.
Надо предупредить, что эта история может показаться людям с недостаточным знанием технического арсенала хакеров слишком трудной для восприятия. Это — некая хроника, описывающая трудовые будни кракеров. То, о чем здесь рассказывается, произошло совсем недавно. Итак, Эрик, как и многие другие герои этой книги, днем работает консультантом, который помогает бизнесу защитить свои информационные активы. Но зато ночью он превращается в хакера, проникающего в самые неожиданные места.
Эрик принадлежит к специальному типу хакеров, которые стремятся к цели с невероятным упорством и никогда не бросают своих попыток, даже если они занимают месяцы или годы.
РАБОТА НАЧИНАЕТСЯ
Несколько лет назад Эрик и еще несколько хакеров собирали различные типы программ и, в конце концов, достигли такого состояния. когда они стали «собственниками кодов» всех основных программ с одним единственным исключением. «Это была последняя программа, которой у меня не было, — объясняет Эрик, — и я не знаю почему, но мне было просто суперважно добраться до нее». Я прекрасно понимаю эту его страсть. Эрик в душе — охотник за трофеями и чем ценнее программа, тем крупнее трофей.
Это задача заводила Эрика больше, чем он мог признаться себе. «Есть несколько сайтов, на которые я хочу попасть, но они действительно трудны по некоторым причинам», — просто объясняет он. Я могу понять и эту его эмоцию.
Он начал обычным способом, « с о сканирования портов на Интернет‑сервере, — это первое место, куда я заглядываю, когда пытаюсь проникнуть на Интернет‑сервер. Обычно там есть много интересного. Но на этот раз я не мог ничего найти». Начиная атаку, хакеры обычно подбираются к мишени осторожно, чтобы избежать сигналов тревоги и не быть замеченными администратором. Это особенно актуально в наши дни, когда многие компании пользуются системами обнаружения вторжения, чтобы заметить сканеры портов и другие типы хакерских инструментов, которыми обычно пользуются атакующие.
Эрик: «Я искал несколько портов, которые должны были стать для меня интересными мишенями». Он охотился на список номеров портов, которые используются для Интернет‑сервера, терминальных сервисов, Microsoft SQL‑сервера, Microsoft VPN. NetBIOS, почтового сервера (SMTP) и других целей.
На сервере Windows, порт 1723 (как отмечалось в главе 7) обычно используется для протокола, известного, как туннель «точка‑точка», который является реализацией V P N компанией Microsoft и использует авторизацию на базе Windows, Эрик вспоминал, что пробуя порт 1723, он «понял, какую роль играет сервер».
Он даже не пытался скрывать свою личность на этом этапе, поскольку «компании так часто подвергаются сканированию в наши дни, что на это никто не обращает внимания. Одно сканирование среди сотни тысяч таких же ничего не значит».
(Оценка Эриком невысокой степени риска быть обнаруженным и идентифицированным базируется на его авантюрном предположении, что это сканирование портов будет похоронено в «шуме» современного Интернета. Действительно, сетевой администратор компании‑мишени может быть слишком загруженным или ленивым для того, чтобы проверять все записи об активности в сети, но всегда есть шанс, что он займется именно этим. Более осторожные хакеры стремятся не рисковать даже в такой малости).
Несмотря на весь риск, в этом случае сканирование портов не выявило ничего полезного. Далее, используя стандартную программу. которая работала как сканер CGI (common gateway interface), он обнаружил log‑file, созданный WSFTP‑cepвepом , который содержал, кроме всего прочего, список имен файлов, загружаемых на сервер. Он был аналогичен любым другим распечаткам работы FTP‑серве‑ров, говорит Эрик, «за исключением того, что этот список хранился в каждой директории, файлы которой были загружены», так что, когда вы видели имя файла в списке, который выглядел интересно, то он находился именно здесь — вам не надо было охотиться за ним.
Эрик проанализировал FTP‑записи и обнаружил имена файлов, которые были загружены в директорию «/include», где обычно хранились файлы типа «.inc» — программные функции общего типа, которые взяты из других модулей кодов. В Windows 2000 по умолчанию эти файлы не были защищены. После тщательного просмотра списка файлов в log Эрик использовал свой Интернет‑браузер, чтобы просмотреть коды в некоторых файлах, которые, по его мнению, могли содержать важную информацию. Специальное внимание он уделял файлам, которые могли содержать пароли резервного сервера баз данных. И случайно он наткнулся на нечто интересное.
«В тот момент», — вспоминает Эрик, — «я уже сделал десяток запросов на Интернет‑сервер и ничего не мог там найти». Хотя находка паролей базы данных и была восхитительной, он быстро понял, что на этой машине нет сервера баз данных.
С этого момента ситуация стала «интересной».
«Я ничего не мог найти на том сервере, но у меня была специальная программа, которая перебирала возможные имена узлов на основе списка общеупотребительных имен узлов — как gateways, backup, test и т.д. плюс имя домена. Она перебирала список общеупотребительных имен узлов, чтобы убедиться, какие имена узлов существуют в этом домене.
Люди очень предсказуемы в выборе имен узлов, поэтому очень просто найти серверы».
Отыскать серверы было просто, но это по‑прежнему не привело его никуда. Затем его озарило: компания расположена не в США. Поэтому «я начал добавлять в конце расширения различных стран и опять перепробовал все названия узлов, которые уже отыскал при помощи моего сканирующего средства». Например, для японской компании это выглядело бы так:
hostname.companyname.com.jp
Это позволило ему отыскать сервер архивирования и почтовый сервер. Он попал на них с помощью паролей, которые он обнаружил в файлах источников (.inc) в «include». Пароль для сервера Microsoft SQL был найден в директории администратора ( « s a » ) . Он смог выполнять команды при помощи стандартной процедуры (xpcmdshell) , которая позволяла ему запускать shell‑команды там, где работал SQL‑сервер, обычно в привилегированном режиме. И — удача! Это дало ему полный доступ к Интернет/почтовому серверу.
Эрик немедленно начал рыться в директориях в поисках копий кодов и других ценностей. Его главной целью было найти очень секретную программу, используемую для производства лицензионных ключей для пользователей, которая обычно называется генератором ключей или «keygen». Сначала надо было собрать как можно больше информации о системе и ее пользователях. Все собранные интересующие его сведения Эрик записывал в таблицу Excel, где классифицировал пароли, IP‑адреса, имена узлов, какие сервисы были доступны через открытые порты и т.д.
Он также заглядывал и в такую скрытую часть операционной системы, которую неопытные хакеры обычно пропускают, как LSA‑секреты, где содержатся сервисные пароли, пароль последнего пользователя, входившего в компьютер, RAS‑имена (Remote Access Services — услуги удаленного доступа) для dial‑up, пароли рабочих станций, используемые для доступа в домен и многое другое. Он также просмотрел и защищенную область для хранения данных, где хранились пароли для Internet Explorer и Outlook Express.
Сначала он извлек «мешанину» паролей, и, расшифровав их, восстановил. Поскольку сервер был одновременно резервным контроллером домена, почтовым сервером и вторичным DNS‑сервером, Эрик получил доступ ко всем записям обо всех DNS‑pecypcax, (включая, среди прочего, имена узлов и соответствующие IP‑адреса), открыв панель управления DNS. которая содержала подробный список имен узлов и доменов, используемых в компании.
«Теперь у меня был список всех их узлов, и я собирал пароли к ним тут и там, перескакивая из системы в систему».
Подобные «скачки» были возможны благодаря его предыдущим успехам в расшифровке паролей на backup Интернет‑сервере после использования пароля Microsoft SQL, который он нашел.
Он до сих пор не знал, на каком сервере разрабатываются приложения, хранятся коды программ и лицензируемые коды управления. В поисках подсказки он тщательно просматривал все письма и записи о работе в Интернете, чтобы найти там хоть какой‑то намек. Однажды он нашел список других IP‑адресов из распечатки, которая выглядела интересно, тогда он решил атаковать этот компьютер. Его «Священным Граалем» на этом этапе была рабочая станция разработчиков, поскольку любой разработчик всегда хотел бы иметь доступ ко всему набору файлов кодов.
После этого он решил затихнуть на несколько недель. Собрав коллекцию паролей, он не находил ничего интересного в течение нескольких месяцев, «только незначительные порции информации. которые, как я думал, будут мне полезны».
КОМПЬЮТЕР ГЛАВЫ КОМПАНИИ
Почти восемь месяцев он «перескакивал с одного сервера на другой», не находя ни кодов программы, ни генератора ключей. Пока, наконец, не произошел некий прорыв. Он начал более пристально изучать backup Интернет‑сервер, на который он проник первым, и обнаружил, что там хранятся копии всех писем, в частности список IP‑адресов и адресов электронной почты всех сотрудников. Просмотрев этот список, он смог восстановить IP‑адрес главы компании (CEO — Chief Executing Officer). Наконец‑то он определил действительно достойную мишень.
«Наконец‑то я нашел компьютер С Е О и это было уже интересно. Несколько дней я сканировал его порты, и он не отвечал, но я был уверен, что он там. В заголовках электронной почты я видел, что он использует один IP‑адрес, но его там никогда не было.
Я начал сканировать его компьютер, проверяясь каждые два ч а с а — не прощупывает ли он меня, на тот случай, если бы у него были программы для обнаружения вторжения. Я прощупывал его несколько раз в день, но ограничил число портов пятью за каждые двадцать четыре часа. Через несколько дней я нашел порт, открытый, когда он работал за компьютером. Я наконец нашел открытый порт на его машине — 1433, работающий под MS SQL‑сервером. Оказалось, что это его ноутбук, который он просматривал по два часа каждое утро. Итак, он приходил к себе в офис, проверял почту и затем уходил, выключив ноутбук».