Опубликован: 20.02.2006 | Доступ: свободный | Студентов: 3564 / 482 | Оценка: 4.34 / 3.99 | Длительность: 21:22:00
ISBN: 978-5-9570-0022-1
Лекция 6:

Безопасность

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

Общие сведения о безопасности в интернете

Интернет изначально был создан без учета требований безопасности; он разрабатывался компьютерными специалистами и предназначался для их собственных нужд. При отсутствии концепции сетевой защиты в стек межсетевых протоколов четвертой версии (IP v4) не были встроены функции безопасности. С момента создания интернета с каждым годом растет количество атак на системы. Иногда кажется, что всем этим червям, вирусам, "троянским коням", хакерству, крэкингу и саботажу не будет конца! Единственным способом защитить себя и свои системы является внимательное изучение последних угроз в области безопасности, особенно, если речь идет о высокотехнологичных серверах и приложениях.

Причины уязвимых мест

Уязвимые места появляются по целому ряду причин.

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

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

Джо: Алло?

Хакер: Добрый день, это Боб из службы поддержки. У нас возникла проблема с сетью, и мы определили, что ее причиной является ваш идентификатор.

Джо: Нет, этого не может быть...

Хакер: Да, именно так. Пожалуйста, не могли бы вы продиктовать ваш идентификатор пользователя, чтобы я мог его сверить?

Джо: Разумеется. Мой идентификатор – JoeUser99.

Хакер: Да, вроде бы все правильно. Не могли бы вы также продиктовать свой пароль?

Джо: Конечно. Мой пароль – Nancy, это имя моей жены.

Хакер: Отлично! Теперь, я думаю, мы справимся с проблемой в сети. Спасибо за помощь!

Джо: Всегда пожалуйста!

Теперь хакер имеет доступ в системе ко всему, к чему имеет доступ Джо. В данном случае не поможет даже установка самых совершенных обновлений и программных средств.

Как защитить систему

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

  • Определение типов возможных атак.
  • Определение тех мест, в которых возможны атаки.
  • Определение потенциально уязвимых мест.
  • Процедуры восстановления после атак.
  • Применение систем обнаружения вторжений (IDS).

Общие типы нарушений безопасности

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

Вирусы

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

  • Вирусы выполняют себя на компьютере-жертве посредством несущего файла.
  • Вирусы размножаются.

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

Троянские кони

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

Черви

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

Переполнение буфера

Черви атакуют системы с помощью различных методов, но чаще всего в мире продуктов Microsoft используется атака на переполнение буфера. Этот метод применяли черви Nimda, Slammer и Code Red.

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

Рассмотрим на простом примере. Предположим, что два приложения взаимодействуют друг с другом и первое, что они "говорят": "Привет". Как программист вы, скорее всего, установите размер буфера равным 6 символов, чтобы это слово в него поместилось. А теперь, если программа "скажет" что-то вроде: "Эй, как дела?", то, очевидно, что эта фраза не будет соответствовать установленному стандарту.

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

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

HELLO
OPEN_MY_FILE_&EDIT

Ваша программа проверит данные и выполнит инструкции.

А теперь реализуем переполнение буфера, умышленно увеличив длину данных:

HELLOGRANT_ADMIN_RIGHTS
OPEN_MY_FILE_&EDIT

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

Данный тип атаки получил широкое распространение по той причине, что неправильное построение программ в сочетании с реализацией буферов на языках C и C++ не позволяет приложениям обрабатывать некорректные пакеты.

Червь Code Red является прекрасным примером вредоносной программы, использующей такую тактику. Ниже приведен запрос с переполнением буфера, с помощью которого он проник в систему через службу индексирования.

/default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN N
NNNNNNNNNNNNNNNNNNNNNNNN%u9090%u6858%ucbd3%u7801%u9090%
u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190% 
u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a

Обратите внимание на запрос файла /default.ida, являющийся набором символов для переполнения буфера, а также на инструкции, начинающиеся с символа %.

Определения

Давайте сначала ознакомимся с некоторыми важными терминами. Компания Microsoft ввела в обиход такие понятия, как сервис-пакеты, "горячие исправления" и надстройки безопасности.

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

"Горячие исправления". "Горячие исправления" представляют собой патчи для определенных продуктов, обеспечивающие обновление по конкретным параметрам. Они не подвергаются возвратному тестированию перед выходом в свет, и не предназначены для повсеместной установки пользователями. "Горячее исправление" следует устанавливать только, когда произошла конкретная серьезная ошибка, для устранения которой оно и разработано. Как правило, "горячие обновления" создаются в том случае, если возникшую ошибку нельзя обойти обычными способами.

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

Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Владимир Кирин
Владимир Кирин
Неполодки на ресурсе.При сдаче 7 теста, открывается пустое окно, и ничего не происходит.Поправте пожалуйста. При этом попытка считается защитана, перездача только через 30 мин. Использую браузер опера.