Диплом: Разработка WEB-представительства студии корпусной мебели "ВК МЕБЕЛЬ"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
86
Получение доступа к сайту посредством уязвимостей в программном
обеспечении. Если на сайте установлены какие-либо программные пакеты,
код которых выполняется на веб-сервере (например, система управления
контентом — CMS, форум или чат, картинная галерея, интернет-магазин), то
они всегда потенциально опасны с точки зрения взлома. Если в программном
комплексе есть уязвимость, то взломщик с помощью хитро составленного
запроса к сайту может узнать пароли для управления сайтом или форумом, а
то и разместить на сайте свою программу, которая позволит загружать на
сайт свои файлы, удалять и менять любые данные.
Однако против каждой из этих угроз есть своя защита, которую нужно
грамотно применять.
Защита
К сожалению, для защиты от первой угрозы владелец сайта может лишь
удачно выбрать сервис хостинга, владельцы которого приняли все меры для
предотвращения взломов своего ресурса. Непосредственно противостоять
взломщику в этом случае не удастся. Однако при наличии каких-либо
серьезных потерь вполне реально предъявить компании-хостеру претензии и
добиться возмещения ущерба, если, конечно, в лицензионном соглашении с
компанией не было строк об отказе от всех возможных рисков и претензий.
В процессе выбора надежного хостинга основную помощь окажут различные
ресурсы Интернета, прежде всего форумы и блоги, в которых всевозможные
проблемы надежности и качества разных компаний обсуждаются вполне
открыто и остро. Достаточно сделать запрос к поисковой системе по
названию компании или адресу ее сайта, чтобы познакомиться с отзывами ее
клиентов. Стоит помнить, что отсутствие положительных отзывов можно
считать нормой: люди охотно высказывают свое недовольство, но не спешат
с благодарностями.
Чтобы избежать кражи паролей на доступ к управлению сайтом, достаточно
соблюдать некоторые правила компьютерной безопасности. Они не слишком
сложные, но весьма важные.
87
Первое правило очевидное, но, увы, нередко игнорируемое — надежно
беречь пароли. Коды доступа к панели управления сайтом и к FTP — это
строго секретная информация, которую не следует записывать на
теряющихся листочках, приклеенных к монитору, или в текстовом файле на
Рабочем столе. Если при заказе или настройке хостинга пользователю
предоставляется возможность самому ввести пароль, то следует приложить
все усилия, чтобы эту комбинацию было легко запомнить, но сложно
подобрать.
Следует также помнить, что никакие хостинговые компании никогда, ни под
каким предлогом не спрашивают пароли пользователей! У администратора
сервиса хостинга всегда есть все возможности работать со всеми базами
данных без всяких пользовательских паролей. Поэтому письмо или звонок от
«администрации хостинга» с жалобой на «крах базы» и требованием
сообщить свой пароль может быть только акцией хакеров (исключений нет).
Даже если в письме от «администрации хостинга» нет требований паролей,
но есть ссылка на сайт компании, по которой «необходимо пройти», то
крайне внимательно присмотритесь к тексту этой ссылки! При атаке под
названием «фишинг» взломщик присылает жертве ссылку на сайт, адрес
которого чуть-чуть отличается от оригинального, а интерфейс полностью
идентичен — то есть подсовывает подделку, которую полностью
контролирует. И если на таком сайте-подделке вы введете какие-либо
пароли, то они сразу окажутся в полном распоряжении злоумышленника.
Поэтому при получении подобного письма следует не переходить по
приведенным в нем ссылкам, а самостоятельно зайти браузером на
известный вам адрес компании-хостера и войти в свой аккаунт с его главной
страницы.
Наиболее распространенный способ кражи паролей — это использование
троянских программ. Вначале хакер заставляет пользователя загрузить и
запустить такую программу, например, выдав ее за какой-либо «ускоритель
Интернета», «видеокодек», необходимый для просмотра содержимого
88
интересного сайта, или просто использовав уязвимость браузера. Затем эта
программа сканирует системный реестр и файлы настроек популярных FTP-
клиентов и считывает оттуда все сохраненные логины и пароли, после чего
отправляет их взломщику. А если пользователь никогда и нигде не сохранял
свои коды доступа к сайту, то такая программа может отслеживать весь
текст, набираемый пользователем на клавиатуре или даже помещаемый в
буфер обмена (нетрудно понять, что вводимые пароли являются точно таким
же текстом).
Некоторые из таких программ одновременно являются еще и вирусами: узнав
пароль на FTP-доступ к сайту, они загружают сами себя на него и
автоматически модифицируют страницы так, чтобы при наличии в браузерах
посетителей уязвимостей данный процесс распространения продолжился
дальше.
Методы защиты от троянских программ те же, что и для вирусной опасности
— установка хорошей антивирусной программы, обязательная проверка всех
файлов, загружаемых из Интернета. Крайне желательно работать с
браузерами, наименее подверженными уязвимостям, например, Firefox и
Opera. (в свое время ряд популярных сайтов заполучил вышеописанным
способом довольно опасные трояны на свои главные страницы всего лишь
из-за того, что администраторы этих сайтов пользовались браузером с
дефектом.) Отправке паролей злоумышленнику может воспрепятствовать
грамотно настроенный брандмауэр и качественный почтовый клиент
(например, Mozilla Thinder-bird), не допускающий управления извне. В
определенной степени помогут и программы — «хранители паролей»,
сохраняющие их в зашифрованном виде в своей базе данных и
подставляющие в нужные окна ввода (например, KeePass Password Safe —
www.keepass.info). Хотя и они потенциально могут быть уязвимы.
Еще один способ взлома — это перехват данных на пути от вашего
компьютера к целевому сайту. Для такого достаточно направить этот обмен
данными через прокси-сервер, принадлежащий взломщику, или перехватить
89
пакеты, передающиеся по сети (снифинг). Адрес прокси-сервера указывается
в настройках браузера, которые обычно хранятся в системном реестре или
настроечном файле, поэтому хакеру достаточно каким-либо образом
подменить эти настройки (например, подсунув пользователю, специально
составленный REG-файл). Защититься от такой угрозы помогут некоторые
антивирусные программы, а также элементарная осторожность (не открывать
неизвестные файлы реестра, работать в Windows не с администраторского
аккаунта, а с ограниченного). Вторую угрозу, снифинг-сети, сведет на нет
использование защищенных протоколов — HTTP Secure (HTTPS), SFTP, SSH
(необходимо, чтобы и удаленный сервер, и браузер или FTP-клиент
пользователя могли по ним работать). Кроме того, защищенные протоколы
помогут обезопасить работу с собственным сайтом в тех случаях, когда
применение прокси-сервера является единственно возможным способом
доступа к Интернету — например, в корпоративных или домашних сетях.
Защита от третьей угрозы из перечисленных выше — опасности
несанкционированного получения доступа к сайту через уязвимость в
программном обеспечении — одновременно и самая простая, и самая
сложная. Если ваш сайт состоит из пары десятков HTML-страничек с
картинками, то взломать его подобным образом не сможет никто и никогда.
А вот если внешний вид сайта определяется системой управления контентом,
CMS (например, Joomla, Amiro, Mambo) или же сайт содержит в себе
интернет-магазин или форум, то будьте готовы, что активность по его взлому
может увенчаться успехом.
Уязвимость в программном обеспечении означает такую его особенность,
вследствие которой посетитель сайта может сделать с ним что-то, что не
разрешил делать его владелец. Например, просмотреть файлы закрытой части
сайта без всяких паролей на вход в эту часть. Или присвоить себе статус
администратора форума со всеми вытекающими полномочиями без всякого
разрешения форумного владельца. Или даже, что самое неприятное,
получить возможность бесконтрольно закачивать файлы на сайт, это как раз
90
и может привести к ужасным последствиям вроде описанных в начале
статьи. Причиной такой уязвимости является ошибка разработчиков
программы. Например, если сценарий получает от посетителя какой-либо
текст и записывает его в файл на самом сайте, то они обязаны позаботиться о
том, чтобы в этот файл не смог попасть никакой программный код,
введенный злоумышленником, а если даже это случится, то такой код не
должен исполниться ни при каких условиях.
В популярном программном обеспечении такого рода прорехи
обнаруживаются довольно регулярно — как хакерскими группами, так и
специалистами, заботящимися о сетевой безопасности. В последнем случае
информация об уязвимости широко распространяется, и производители (если
могут) обычно выпускают обновления к своим продуктам. В Интернете есть
ряд сайтов (подробнее см. во врезке), на которых публикуются сведения о
недавно обнаруженных уязвимостях и зачастую приводятся ссылки на
исправленные версии ПО. Поэтому в том случае, если на вашем сайте
установлен какой-либо известный программный пакет (например, форум
PHPBB или Invision, CMS Joomla или портал PHP-Nuke, фотосайт Gallery 2
или Coppermine PhotoGallery, магазин osCommerce или PHPShop и т.д.), то
для обеспечения его безопасности следует почаще посещать «багтрекеры» и,
в случае появления там неприятных для вас новостей, сразу же устанавливать
обновления.
К сожалению, полностью убрать угрозу взлома сайта таким образом нельзя
— всегда есть риск того, что какой-либо хакер обнаружит ранее неизвестную
уязвимость ПО на вашем сайте и воспользуется ею, никому, ничего не сказав
(тем самым, не позволив авторам ПО сделать защитное обновление). Однако
от массовых взломов через известные уязвимости быстрое обновление
вполне спасает. Для защиты же от хакера-одиночки можно порекомендовать
лишь косвенные методы: например, после установки программного обеспе
чения составить список всех загруженных на сайт файлов (с информацией об
их размерах и датах) и периодически отслеживать, не случились ли с ними
91
какие-либо изменения. Если вы обнаружите на аккаунте своего сайта какие-
то новые незнакомые файлы или поймете, что какие-то веб-страницы со
сценариями были кем-то изменены с момента установки, то как можно
пристальнее исследуйте данные изменения — возможно, это последствия
действий взломщика.
Резервная копия
Отдельно хочется подчеркнуть необходимость регулярного резервного
копирования всего содержимого сайта, в первую очередь на свой
собственный компьютер. Всегда имейте на своем ПК полную копию ресурса,
включая дамп базы данных (если таковая используется), и, в случае частых
изменений сайта, регулярно ее обновляйте (лучше иметь две-три копии
разной давности — день, неделя, месяц), причем целесообразно записывать
эти копии на оптические носители. Забота о резервном копировании
позволит исправить последствия взлома практически без потери данных
сайта.
Команда создания дампа базы данных есть практически во всех панелях
управления сайтами на сервисах хостинга или в специальных программных
комплексах для управления базами данных (например, PHPMyAdmin). Во
многих форумах и CMS есть свои встроенные утилиты резервного
копирования. Помните, что дамп базы нужно хранить в надежном месте —
обычно в него включаются и все данные о паролях на доступ к
программному обеспечению сайта!
Безопасность веб-приложений Ruby on Rails.
Современный мир несет в себе тысячи угроз и потенциальных опасностей
буквально на каждом шагу и в каждый момент времени. Всемирная сеть,
ставшая неотъемлемой частью нашей жизни, не является исключением.
Киберпреступность сейчас развита как никогда – ведь почти каждая
компания имеет свой сайт в интернете, а злоумышленник в сети может легко
оставаться абсолютно анонимным.
При этом все компании, имеющие сайт в интернете, делятся на три типа:
92
Чей сайт уже сломали;
Чей сайт еще не ломали;
Кто знаком с основными векторами атак и защитил приложения.
Следует как минимум знать и помнить об основных векторах атак на веб-
приложения и возможности их практического применения – ведь,
предупрежден, – почти защищен.
Акцент на возможности практического применения сделан не случайно.
Недостаточно знать теорию для понимания истинного масштаба угрозы –
ведь уязвимости, которые выглядят не очень страшно в теории, зачастую
могут нести катастрофические для бизнеса последствия.
Количество угроз растет пропорционально росту бизнеса, однако, как
показала многолетняя практика, 99% атак происходят через десяток
стандартных ошибок валидации входящих данных, либо обнаруженные
уязвимости в установленных компонентах программного обеспечения
сторонних производителей, либо банально, по халатности системных
администраторов, использующих настройки и пароли, установленные по-
умолчанию.
Классификацией векторов атак и уязвимостей занимается сообщество
OWASP (Open Web Application Security Project). Это международная
некоммерческая организация, сосредоточенная на анализе и улучшении
безопасности программного обеспечения.
OWASP создал список из 10-и самых опасных векторов атак на Web-
приложения, этот список получил название OWASP TOP-10 и в нем
сосредоточены самые опасные уязвимости, которые могут стоить некоторым
людям больших денег, или подрыва деловой репутации, вплоть до потери
бизнеса.
Инъекции — Injections
Все данные, как правило, хранятся в специальных базах, обращения к
которым строятся в виде запросов, чаще всего написанных на специальном
93
языке запросов SQL (Structured Query Language – структурированный язык
запросов).
Приложения используют SQL-запросы для того, чтобы получать, добавлять,
изменять или удалять данные, например, при редактировании пользователем
своих личных данных или заполнении анкеты на сайте. При недостаточной
проверке данных от пользователя, злоумышленник может внедрить в форму
веб-интерфейса приложения специальный код, содержащий кусок SQL-
запроса.
Такой вид атаки называется инъекция, в данном случае самый
распространённый — SQL-инъекция. Это опаснейшая уязвимость,
позволяющая злоумышленнику получить доступ к базе данных и
возможность читать/изменять/удалять информацию, которая для него не
предназначена.
Например, изменить вместе с именем и фамилией баланс своего счета,
посмотреть баланс чужого счета, или же, похитить конфиденциальные
личные данные.
Эта уязвимость является следствием недостаточной проверки данных,
поступающих от пользователя. Это позволяет злоумышленнику «подсунуть»,
например, в веб-формы, специально подготовленные запросы, которые
«обманут» приложение и позволят прочитать или записать нелегитимные
данные.
В целом эта разновидность атак имеет общее название «Ошибки валидации»,
к ней относятся далеко не только SQL-инъекции и будет упоминаться этот
вектор еще не раз.
Недочеты системы аутентификации и хранения сессий (Broken
Authentication and Session Management)
Для того, чтобы отличать одного пользователя от другого, веб-приложение
использует так называемые сессионные куки. После того, как пользователи
ввели логин и пароль и приложение их авторизовало, в хранилище браузера
94
сохраняется специальный идентификатор, который браузер в дальнейшем
предъявляет серверу при каждом запросе страницы вашего веб-приложения.
Именно так веб-приложение понимает, что Вы это именно Вы.
В случае, если ваш идентификатор украдет злоумышленник, а в системе не
были реализованы проверки, скажем IP-адреса сессии, или проверки наличия
более одного соединения в одной сессии, злоумышленник сможет получить
доступ в систему с правами вашего аккаунта. А если это интернет-банк или
кабинет платежной системы, о последствиях такого несанкционированного
доступа Вы можете легко догадаться сами.
Межсайтовый скриптинг – XSS (Cross Site Scripting)
Межсайтовый скриптинг – еще одна ошибка валидации пользовательских
данных, которая позволяет передать JavaScript код на исполнение в браузер
пользователя. Атаки такого рода часто также называют HTML-инъекциями,
ведь механизм их внедрения очень схож с SQL-инъекциями, но в отличие от
последних, внедряемый код исполняется в браузере пользователя. Чем это
грозит?
Во-первых, злоумышленник может украсть вашу сессионную cookie,
последствия чего были описаны во втором пункте, буквально парой абзацев
выше. Нужно отметить, что далеко не все серверы приложений уязвимы к
данному типу атак, об этом будет обсуждение далее.
Во-вторых, могут быть украдены данные, вводимые в формы на зараженной
странице. А это могут быть конфиденциальные персональные данные, или,
что еще хуже, данные кредитной карты вместе с CVC-кодом.
В-третьих, через JavaScript можно изменять данные, расположенные на
странице, например, там могут быть реквизиты для банковского перевода,
которые злоумышленник с удовольствием подделает и заменит подставными.
Небезопасные прямые ссылки на объекты (Insecure Direct Object
References)
Данный вид уязвимости является также следствием недостаточной проверки
пользовательских данных. Суть ее заключается в том, что при выводе каких-
95
либо конфиденциальных данных, например, личных сообщений или учетных
карточек клиентов, для доступа к объекту используется идентификатор,
который передается в открытом виде в адресной строке браузера, и не
реализована проверка прав доступа к объектам. Например, есть страница,
которая отображает личное сообщение, и она имеет адрес вида:
mysite.ru/read_message.jsp?id=123654
Перебирая число после "id=" можно будет читать чужие личные сообщения.
Эксплуатация данной уязвимости очень проста и не требует вообще никаких
специальных навыков – достаточно лишь перебирать число в адресной
строке браузера и наслаждаться результатом. Как ни парадоксально, но этой
детской болезни, порой были подвержены достаточно крупные европейские
платежные системы.
Небезопасная конфигурация (Security Misconfiguration)
Безопасность веб-приложения требует наличия безопасной конфигурации
всех компонентов инфраструктуры: компонентов приложения (таких как
фреймворки – frameworks), веб-сервера, сервера баз данных и самой
платформы. Настройки компонентов сервера по-умолчанию зачастую
небезопасны и открывают возможности к атакам. Например, кража
сессионной cookie через JavaScript при XSS-атаке становится возможна
благодаря выключенной по-умолчанию настройке cookie_httponly.
При правильной настройке сервера и включенной опции cookie_httponly,
получить сессионную cookie через JavaScript невозможно, но зачастую эта
простая и важная настройка отсутствовала в таких критично важных местах,
как личные кабинеты платежных систем.
Еще один пример "детской" уязвимости – использование настроек по-
умолчанию в серверах баз данных, таких как Redis, Memcached и других –
закрытая служба может быть доступна на публичном IP-адресе сервера,
и/или использовались пароли, установленные производителем по-
умолчанию. Это позволяет злоумышленнику запросто читать и изменять
данные, в числе которых, нередко бывают и сессионные cookies (чем это

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран