Защита сайтов


Некоторые аспекты безопасности при написании и установке CGI-скриптов.


Превод с англ. и доработка текста:
Автор: Selena Sol

Сценарии CGI несут в себе столько же опасности, сколько и пользы. Но это не говорит о том, что вы не должны ими пользоваться. На то и существует компьютерная безопасность, чтобы брать ситуацию в свои руки. Вы никогда не можете быть в полной безопасности, если предоставляете определенный сервис или какие-то услуги. Однако без последнего вы можете ровно столько же, сколько и без самого компьютера. Таким образом, защита становится важнее, в рамках приемлемого риска и с учетом возможного восстановления, после нарушения работы системы, чем полная недоступность. Это - ваша работа, удостовериться, что всех отрицательных аспектов, касающихся безопасности вашего web-сервера, значительно меньше чем положительных. Ниже обсуждаются фундаментальные концепции безопасности и защиты при установке и настройке уже написанных (pre-built) CGI сценариев. А так же даются отправные точки для поиска дальнейшей информации.

"Все данные мошеннические.
Всякую систему пытаются взломать.
Все клиенты - воры.
Технология - только моя первая строка защиты".

- унылый утренний перечень Администратора.

Минута соединения вашего компьютера с Internet - это минута, когда безопасность ваших данных подвергается риску. Даже наиболее безопасные системы, которые находятся под контролем наиболее образованных и способных, с большим опытом, системных администраторов, с использованием самого современного и проверенного програмного обеспечения, постоянно находятся в опасности, каждый день. Как было доказано Кевином Митником (Kevin Mitnick) при взломе San Diego Supercomputer Center в 1994 году, даже самые "закаленные" защиты, написанные ветеранами подобно Tsutomu Shimamura можно, обойти.

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

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

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

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



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

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

  • Удостоверьтесь, что права доступа к файлам (file permissions) установлены верно.

  • Удостоверьтесь, что не пропустили очередной объявленной заплаты (patches) или исправлении бага (bug fixed). Например, можно подписаться на CERT или CIAC mailist (список рассылки), или регулярно посещать сайт, распростроняющий используемый вами код.



  • Пытайтесь регулярно взломать ваш сайт самостоятельно. Изучите инструментальные средства хакеров (hack tools), ведь они используют против вас лучшие средства для несанкционированного доступа в вашу систему.

  • Регулярно создавайте резервные копии.

  • Создавайте и постоянно проверяйте, анализируйте регистрационные или log-файлы (log files) фашей системы.

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

    Рассмотрим некоторые виды возможных действий:


    • Ваша информация/данные/файлы будут удалены (уничтожены).

    • Ваша информация/данные/файлы будут проданы вашему конкурену.

    • Ваша информация/данные/файлы будут модифицированны или изменены, подобно как в случае с сайтами ЦРУ (CIA) и др.

    • Хакер использует ваш сайт, чтобы предпринять ряд атак на другие сервера. Например он может использовать ваш сайт для атаки на сервер Белого Дома (White House Site) от вашего лица.


    Защита и Web сервера.

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

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


    Содержание раздела