На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Программное обеспечение источник всех проблем

Итак, конечная цель взлома системы — это заставить данную систему "молить о пощаде", когда уже раскрыты все секреты установленных программ и хакеру предоставлен доступ к командному интерпретатору с неограниченными правами. Взлом компьютера практически всегда выполняется с помощью установленного программного обеспечения. И чаще всего атакуемый компьютер не является рядо­вой системой1. Практически у всех современных компьютерных систем есть своя "ахиллесова пята" в виде программного обеспечения. Благодаря этой книге вы уз­наете, как взламывать программное обеспечение, и научитесь использовать уязви­мые места программ, чтобы получить контроль над компьютером.
На сегодняшний день выпущено уже немало хороших книг по сетевой безопасно­сти. Например, книга Брюса Шнейера (Bruce Schneier) Secrets and Lies (2000) пре­доставляет читателям прекрасный обзор ситуации в области защиты информации, причем эта книга содержит огромное количество великолепных примеров и мудрых советов. Книга Hacking Exposed (автор Мак-Клур) является прекрасным руково­дством для тех, кто хочет понять элементарные атаки (например, чтобы организо­вать защиту). Умение противодействовать таким атакам тоже важно, но является только первым шагом в правильном направлении. Вернуться на уровень элементар­ных программ атаки не помешает для организации правильной защиты (или прове­дения нужной атаки). С помощью сведений, изложенных в книге The Whitehat Security Arsenal, можно защитить свою сеть от огромного количества атак. Книга Security Engineering (автор Росс Андерсон, 2001) дает подробный аналитический об­зор проблемы безопасности. Так зачем нужна еще одна книга по безопасности?
Шнейер в предисловии к своей книге Building Secure Software написал: "Мы бы не тратили так много времени, денег и усилий на обеспечение безопасной работы в се­ти, если бы у нас было более надежное программное обеспечение". Затем он написал следующее:
"Вспомните последние уязвимые места в программном обеспечении, о кото­рых вы узнали. Возможно, это был вредоносный пакет, который позволяет
1 Безусловно, большинство программатаки предназначено для взлома стандартного про­граммного обеспечения, запущенного на стандартном компьютере, которые ежедневно ис-гриммносо оиеспечения, 'запущенного на станиартном * > г
хакеру взломать какой-то сервер.Возможно,это была одна из бесчисленных атак на переполнение буфера, используя которую злоумышленник получает контроль над чужим компьютером, отправивспециальное вредоносное со­общение. Л возможно, это былоуязвимоеместо в протоколе шифрования, благодаря чемухакерможет читатьзашифрованные сообщения или обойти систему аутентификации.Всеэто проблемы программного обеспечения".
Среди того огромного количества материала, который был опубликован по теме компьютерной безопасности, в центре внимания только очень небольшой части тру­дов была первопричина всех проблем — ошибки в программном обеспечении. Мы исследуем этот безбрежный океан ошибок в программах и научим вас прокладывать правильный маршрут в этих бескрайних просторах.
Краткая история программного обеспечения
Современные компьютеры больше не являются громоздкими агрегатами разме­ром с комнату, при обслуживании которых оператору приходилось заходить внутрь компьютера. Теперь пользователи скорее носят компьютеры, чем заходят в них. Среди тех революционных средств, которые позволили совершить это коренное преобразование, можно назвать кинескоп, транзистор и чип на силиконовой под­ложке, но самым главным все же является программное обеспечение.
Именно благодаря программному обеспечению компьютеры выделяются на фоне других технологических новшеств. Блестящая идея перенастройки машины для выполнения практически неограниченного количества задач одновременно проста и гениальна. Эта идея очень долго оставалась просто теорией, до того как удалось получить осязаемые результаты ее воплощения. При работе над своей концепцией счетной машины в 1842 году Чарльз Бэббидж (Charles Babbage) вос­пользовался помощью переводчика — леди Ады Лавлейс (Ada Lovelace)2. Ада, ко­торая сама себя называла "аналитиком (и метафизиком)" разбиралась в идее уст­ройства не хуже, чем сам Бэббидж, но лучше выражала на словах те преимущества, которые принесет создание этого устройства. Особенно это касается пояснений к оригинальной работе. Она поняла, что счетная машина — это то, что теперь мы на­зываем компьютером общего назначения. По ее словам, счетная машина была предназначена для "подсчета и составления таблиц для выполнения любого дей­ствия ... механизм дает возможность подсчитать значение любой неопределенной функции любой степени сложности". Уже тогда ей удалось выразить всю мощь идеи программного обеспечения.
Согласно словарю университета Вебстера, слово software (программное обеспе­чение) получило широкое распространение в 1960 году и поясняется следующим образом:
"...что-то используемое или связанное с аппаратными средствами: например, полный набор программ, процедур и пояснительной документации, связан­ной с системой и особенно с компьютерной системой, в частности, компью­терные программы... "
2 Более подробную информацию об Аде Лавлейс можно прочесть по адресу http://www. sdsc.edu/ScienceWomen/lovelace.html.


В 60-х годах прошлого века появление "современных, высокоуровневых" языков программирования, например Fortran, Pascal и С, позволило программному обеспе­чению выполнять все более сложные операции. Компьютеры стали больше опреде­ляться по тому, какое программное обеспечение на них запущено, а не по тому, ка­кими аппаратными средствами управляют программы. Появились и начали разви­ваться операционные системы. Были созданы первые сети, которые стали увеличи­ваться стремительными темпами. Причем этот рост был связан прежде всего с раз­витием программного обеспечения3. Программное обеспечение стало необходимым.
Забавная вещь случилась с появлением Internet. Использование программного обеспечения, которое было задумано для упрощения жизни отдельного человека, стало противоречить правилам морали и этики. И совершенно права оказалась леди Лавлейс, когда говорила, что оно позволяет выполнять "любые действия", в том чис­ле и вредоносные действия, потенциально опасные действия и просто ошибочные функции.
В процессе своего развития программное обеспечение стало выходить за рамки технических устройств и стало проникать в различные сферы человеческой деятель­ности. Использование программного обеспечения в бизнесе и военной сфере стало практически обыденным.
При ошибках в программах деловой мир несет колоссальные убытки. Программ­ное обеспечение управляет каналами снабжения, предоставляет доступ к глобальной информации, позволяет управлять заводами и фабриками и используется для взаи­модействия с заказчиками. Любая ошибка в таком программном обеспечении может привести к тяжелым последствиям:
• предоставление конфиденциальных данных неавторизованным пользовате­лям (включая и хакеров);
• выход из строя и "зависание" систем вследствие предоставления неправиль­ных данных;
• возможность для хакера внедрять и выполнять программный код;
• выполнение привилегированных команд со стороны хакера.
Распространение компьютерных сетей оказало огромное (и в основном негатив­ное) влияние на использование программного обеспечения. По сравнению с в начала 1970-х годов сетью под названием ARPANET, глобальная сеть Internet ворвалась в жизнь людей просто с непредсказуемой скоростью, гораздо быстрее, чем многие дру­гие технологии, включая электричество и телефон (см. 1). Если Internet — это машина, то программное обеспечение — это ее двигатель.
Объединение компьютеров в сети позволяет пользователям совместно использо­вать данные, программы и вычислительные ресурсы. При подключении компьютера к сети он становится доступным с других удаленных компьютеров, что позволяет географически удаленным пользователям получать данные или использовать ресур­сы этого компьютера. Программное обеспечение в реализации этих задач является сравнительно новым и работает нестабильно. В современной быстроменяющейся
3 Существует теснейшая взаимосвязь между развитием аппаратных средств и программ­ного обеспечения. Тот факт, что современные аппаратные средства обладают огромными возможностями и емкостью при небольших размерах, неразрывно связан с параллельным раз­витием программного обеспечения. — Прим. авт.


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


ют хакеров. Это относится только к тем злоумышленникам, которые "пытаются вой­ти через парадную дверь". Проблема в том, что многие механизмы, призванные за­щитить программное обеспечение от взлома, сами являются программами и могут оказаться целью более сложной атаки. Поскольку большинство средств безопасно­сти представляют собой только часть программного обеспечения, эти проверки можно обойти. И хотя все мы видели фильмы, в которых хакеры отгадывают пароли, в реальной жизни хакеры "работают" с более сложными функциями безопасности. Среди усовершенствованных систем безопасности и связанных с ними атак можно назвать следующие:
• контроль над тем, кому разрешено подключаться к конкретному компьютеру;
• выявление подложных аутентификационных данных;
• определение того, кто имеет право доступа к ресурсам совместно используе­мого компьютера;
• защита данных (особенно при передаче) с помощью шифрования;
• место и способ хранения данных регистрационных журналов.
В течение 1990-х годов были обнаружены и представлены широкой обществен­ности десятки тысяч ошибок в программном обеспечении, которые были связаны с безопасностью. Наличие этих ошибок привело к распространению программ атаки. К настоящему времени десятки тысяч так называемых "потайных ходов" созданы в компьютерных сетях по всей планете. Это последствия взрыва хакинга в конце XX века. Исходя из нынешнего состояния дел, прояснить ситуацию полностью ка­жется практически невозможным, но мы предпримем попытку сделать это. Одна из причин создания этой книги — вызвать конструктивные дискуссии по поводу ис­тинных проблем, которые привели к появлению программ атаки, и оставить в про­шлом "интересные", но лишь поверхностные разговоры.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика