Как свидетельствует статистика (Sonatype, Aspect Security и другие), около половины крупнейших предприятий в мире (список Fortune 500), так или иначе, используют уязвимое программное обеспечение с открытым кодом. Причина – отсутствие в приложениях оперативной системы оповещения об обнаруженной в них уязвимости. И, разумеется, автоматического обновления.
Риск наличия уязвимостей в библиотеках и фреймворках – игнорируется и недооценивается, несмотря на то, что около 80% исходников используемых приложений основывается именно на них (данные получены по сотне миллионов приложений, скаченных десятками тысяч организаций).
С каждым годом увеличивается число взломов ресурсов, особенный интерес представляют сайты с большим количеством посетителей («Вконтакте» и другие), а также многие бесплатно распространяющиеся приложения. Они часто имеют уязвимости (дыры).
Например, недавно обнаруженная уязвимость «деактивации друга» при добавлении «жертвы» в Facebook и последующей деактивации своей учетной записи. В результате злоумышленник получит доступ к публикациям на странице жертвы. Затем он снова активирует учетную запись.
Часто причина появления уязвимостей кроется в том, что эта проблема не рассматривается достаточно обстоятельно уже на этапе проектирования, программирования. Сказывается и сложность проекта.
Каковы типы и насколько опасны XSS?
XSS или Сross Site Sсriрting, «межсайтовый скриптинг» (CSS – уже оказалось занято под «каскадные таблицы стилей») – это тип уязвимости интерактивных информационных веб-систем. Возникает он тогда, когда во время генерации сервером страниц в них по различным причинам попадают скрипты пользователей. Специфика этих атак – в использовании уязвимого сервера в качестве средства атаки (вместо атаки сервера).
Как показывают данные статистики (на текущий год), XSS – 26% и они занимают «ведущее» место среди прочих типов уязвимостей. Это и понятно: долгое время им не уделяли адекватного внимания, считали их неопасными.
XSS можно условно классифицировать на активные (второго типа) и пассивные (первого типа).
Пассивные исходят из того, что вредоносный скрипт на сервере уязвимого ресурса не хранится, или автоматически не выполним в браузере этого сайта. Для срабатывания этой пассивной XSS потребуется дополнительное воздействие в браузере жертвы, например, достаточен будет клик по ссылке, специально для этого сформированной.
Активные XSS характерны тем, что вредоносный скрипт находится на самом сервере, а срабатывает в браузере сайта-жертвы во время открытия страницы сайта.
Пример: если форум позволяет посетителю использовать HTML-теги при форматировании текста и будет отсутствовать адекватный уровень фильтрации, то возможно, что злонамеренному пользователю удастся вставить теги , отправляющие злоумышленнику «куки» пользователей (ворующие их), которые открывают тему форума, а, возможно, и незаметно открывать какую-то ссылку в браузере пользователя. Для защиты следует на сайте удалить теги, кроме разрешённых.
Отсутствие фильтрации и разрешённые теги
При отсутствии фильтрации атрибутов и разрешенных значений тэгов (такая уязвимость нетипична для HTML-форматирования сообщений), например, тег img после подстановки в качестве адреса изображения можно будет «протаскивать» в тег запланированный пользовательский скрипт.
Хотя они и не XSS, но очень вредны и другие типы атак, например, злоумышленник может указать URL сервера, имеющего «узкий канал», тем самым парализуя работу ресурса большим потоком запросов, устроив атаку.
Защита от уязвимостей этого типа потребует жёсткой фильтрации (как имен атрибутов, так и значений их). Следует также запретить возможность использования протокол javascript: или data: в ссылках.
Такой способ используют с помощью вставки (на странице) изображения, который сделан с помощью PHP-файла с самим изображением или с вредоносным кодом.
Подмена кодировки
Современные браузеры определяют кодировку страницы «на лету» и интерпретируют HTML-код в соответствии с результатом этой процедуры. Когда тег title предшествует тегу meta и заполнен пользовательскими данными, у хакера имеется возможность вставки злонамеренного HTML-кода в UTF-7 обходя фильтрацию символов. Ответственность за безопасность данных эксплоитов лежит полностью на администрации сервера.
Устранение последствий
Восстановление (бэкап) – недостаточно, взломанный сайт еще притянет не раз – и что делать владельцу ресурса? Необходимы следующие мероприятия:
- определить сразу же, какие файлы подверглись изменению (замене), например, index.php, шаблон, изображение и т.п.;
- выполнить скриншоты последствий;
- оповестить хостинг-провайдера (с ним же согласовать свои действия);
- в отдельном каталоге протоколировать сами файлы сайта, а также доступ, время и модификацию;
- восстановить (бэкап), используя резервную копию сайта или помощь хостера;
- скачать логи ошибок (доступа) к ресурсу или попросить их предоставить хостера (скопировав в отдельный каталог);
- анализ времени модификации файлов и сопоставить с указанными в логах (позволит вам определить характер уязвимости и IP-адрес взломщика);
- обновить скрипты и, если это невозможно, то отказаться от использования всех уязвимых модулей;
- сменить (обязательно все!) пароли доступа.
Советы по безопасности сайта
Безопасность сайта должна быть обеспечена политикой безопасности – как разработчиком и администратором сайта, так и владельцем и хостером. Для этого минимально необходимо:
- не хранить нигде учётные данные для доступа;
- применять комплексные и не короткие пароли, нестандартные логины, периодически менять их;
- сменить стандартные адреса для обращения к скриптам и обновлять скрипты – по мере выхода обновлений системы;
- проверять наличие открытых уязвимостей;
- отслеживать права на файлы скриптов (особенно, критические конфигурационные файлы);
- «серверным образом» разрешать доступ только со своего IP;
- проверять регулярно доступность разделов сайта;
- хранить в актуализируемом состоянии бэкап сайта;
Разумеется, следует помнить и простые правила безопасности сайта:
- регулярно обновлять базу и иметь лицензионный антивирус;
- не открывать посторонние ссылки, даже хорошо проверенные;
- не ставить лишних программ, но если ставить, то только с сайтов разработчиков, дилеров, хорошо проверенных;
- следить за файлом DNS - C:\WINDOWS\system32\drivers\etc\hosts, в котором имеется только одна строчка (остальные – подозрительные).
Необходимо также проверять (после очередных изменений или обновлений) модули на сервисах и с помощью специальных платных и бесплатных программ (XSpider, MaxPatrol, SQLFury и другие). Например, защита от наиболее распространенных атак на сайты – SQL-инъекций, а именно, бесплатная программа SQLFury позволяет идентифицировать версию БД, имена БД, таблиц, колонок и аутентифицировать пользователя.
Уязвимость онлайн торговли и платежей
Электронная коммерция и электронные платежи испытывают на себе все типы атак, включая уязвимости специфичные, например, ценовые манипуляции, уязвимости самой природы электронной коммерции. И это несмотря на то, что электронной торговля использует обычно 128-разрядные SSL-сертификаты.
Каковы общие уязвимости и их причины в системах онлайн-платежей, электронных покупок?
Во-первых, это SQL-инъекция. Например, для выявления степени уязвимости сайта посылается какой-то знак (в частности, одинарной кавычки), затем по детальному сообщению об ошибке раскрывается используемая на сайте технология, вплоть до доступа к закрытым разделам сайта и выполнения команд ОС на сервере.
Во-вторых, это манипулирование ценой. Например, подлежащая к уплате стоимость товара например, холодильной камеры, сохраняется скрытно в специальном HTML-поле динамической страницы, затем специальное web-приложение изменяет итоговую суммы к оплате, в момент пересылки информации с браузера клиента (покупателя) на web-сервер. Используется для транзакций с высокой суммой (может остаться незамеченной).
В-третьих, уязвимость из-за переполнения буфера. Например, при большом объеме (темпе) поступающей информации на сервере PHP-сценарий может не смочь их обработать, выдать сообщение об ошибке, с отображением самих PHP функций. Используя такую информацию (об ошибках) можно получить доступ к администрированию, каталогу админки.
В-четвертых, межсайтовый скриптинг (CSS-атака). Она направлена, прежде всего, на конечного пользователя и опирается на web-форму, принимающая данные пользователя, обрабатывающую их и отображающую результаты на странице сайта с данными пользователя. Например, в поисковой системе вводимые данные отображаемы без предшествующего синтаксического анализа, а поэтому у злоумышленника имеется возможность внедрить код JavaScript (как часть входных данных) и затем, при нажатии на URL с таким кодом, он будет выполнен «на клиенте». CSS-атака позволяет захватить Cookie с важной информацией. Можно также перенаправить пользователя на специальный сайт, в частности, «дубликат» интернет-магазина (где он должен «расстаться» с важной информацией – номер кредитки, пароль и т.п.).
В-пятых, удаленное выполнение команд. Например, используя CGI-сценарий, выполняется команда ОС с привилегией web-сервера.
В-шестых, использование слабостей аутентификации и авторизации. Например, механизм аутентификации, не запрещающий многократные попытки входа, использующий открытую HTTP-аутентификацию или без SSL-сеанса. При захвате и определении идентификатора сеанса взломщик может сымитировать поведение пользователя на сайте, особенно, в сочетании со слабым алгоритмом генерации идентификаторов сеанса.
Как противодействовать? – Важна защита приложения и оценка риска уязвимости непосредственно на стадии проектирования – выявить ключевую информацию для web-приложения: конфигурационная информация, идентификаторы сеансов, платежные данные и т.д.
Уязвимость сайта финансового учреждения – угроза вашим финансовым средствам. Получив контроль или достаточное «влияние» над браузером, злоумышленник может осуществить транзакции на счетах. Необходимо быть очень и очень осторожными, проводя денежные транзакции.
Пример: новый вирус в сети
Новый вирус сейчас не удивит никого - ни пользователей, ни разработчиков программного обеспечения. Но этот может удивить всех. Используемым способом активации и передачи своего кода в сети. Действительно особенный и новый по методу активации вирус.
Компания Eleven из Германии, которая специализируется на средствах защиты электронной почты, предупреждает о новом методе заражения вирусом вашего компьютера. В чем суть такого метода заражения? Осуществляется почтовая атака вредоносной программой, которая скачивается на ваш компьютер автоматически (и, как это часто бывает, вполне неожиданно для вас), запуская свой вредоносный код после того, как вы открываете тело письма.
Вот это действительно новое! - До нынешнего вируса, все вредоносные сообщения заражали компьютер только после того, как вы загружали ссылку в теле или вложение в письме. Новый спам из HTML-кода электронной почты загружает содержащийся в нем скрипт с вредоносным файлом. Как только пользователь просмотрит HTML-сообщение e-mail, вредоносный код сразу же активизируется. В окне появляется сообщение: «Loading…». Очень смахивает на самопроизвольную подкачку контента во всплывающем окне браузера. О котором вы и не просили.
Как распознать это вирус? - В теме (subject) вредоносного сообщения, в частности, написан текст: «Banking security update», а само письмо отправляется с fdic.com, который принадлежит страховой компании из США.
Как обезопасить себя? – Следует, во-первых, убедиться, что почта защищена от спама и вирусов. Во-вторых, не следует пользоваться форматом HTML для отображения писем, для чего настройте почтовый клиент на отображение писем в текстовом формате. В этом случае, заражение возможно лишь при запуске вложения. В-четвертых, не открывайте никакие письма, а тем более, вложения к нему, если вы не уверены в адресате.