Universal (Isomorphic) Web Applications Security

Nowadays you do not write things in jQuery. You use node.js, webpack, React, Redux, websockets, babel and a ton of other packages to help you create a basic ToDo web application. With frontend technologies developing rapidly, isomorphic (or to be correct universal) web applications are a big thing now. In a nutshell, it means that you can write the code in JavaScript which can be run both on server and client side with reusable components, validators and shared state. Lovely, isn’t it? As a frontend developer you would say that it definitely is. A security guy would argue since the approach is extremely unsafe for your data.

Read more »

Waf.js: How to Protect Web Applications using JavaScript

Waf.js: How to Protect Web Applications using JavaScript from Denis Kolegov

5 бесплатных онлайн сервисов для предотвращения заражения и борьбы с malware

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

  1. SurfPatrol

    Бесплатный онлайн сервис от отечественной компании Positive Technologies, специализирующейся в области информационной безопасности. SurfPatrol предназначен для проверки безопасности браузера и его плагинов. Работает очень быстро, позволяет получить общее представление об устаревших компонентах почти мгновенно. Read more »

Expression Language Injection

В списке уязвимостей, связанных с различного рода инъекциями (SQL, LDAP, XPath, etc) появилось новое наименование — Expression Language Injection. Новая разновидность инъекций описана в свежем исследовании Стефано ди Паолы (Stefano Di Paola) и Аршана Дабирсиаги (Arshan Dabirsiaghi). Уязвимость затрагивает JSP-приложения, написанные с использованием популярного в этой среде фреймворка Spring MVC. В результате успешной атаки EL Injection может привести к утечке данных как со стороны сервера (пути, значения глобальных переменных, etc), так и пользователя (обход httpOnly, получение идентификаторов сессий). Уязвимость возможна в том случае, когда внутри JSP-тэгов фреймворка Spring используется Expression Language — скриптовый язык, позволяющий получить доступ к Java-компонентам из JSP:

<spring:message scope=”${param.foo}”/>

В чем заключается уязвимость?
Дело в том, что в Spring MVC выражения Expression Language внутри определенных атрибутов выполняются дважды, поэтому, приложение, получающее входящие данные посредством Expression Language как в примере выше, уязвимо к внедрению произвольных EL-выражений. Read more »

CMS Explorer

При проведении пентестов очень часто приходится иметь дело с такими известными CMS как Joomla, WordPress и Drupal. Эта тройка составляет значительную часть от общего количества используемых в сети систем управления контентом с открытым исходным кодом. Серьезные уязвимости, как правило, присутствуют только в древних версиях, поэтому на первый план выходят самостоятельно установленные плагины, безопасность которых может быть намного более далекой от идеала, чем в ядре системы.
Инструмент CMS Explorer служит для определения плагинов в перечисленных выше CMS. Он представляет собой небольшой perl-скрипт с набором списков плагинов для каждой из CMS. Наборы легко обновляются, указав ключ -update. Утилита также сканирует используемые темы оформления, но обычно это не несет никакой пользы. Чтобы отключить сканирование тем, в исходном коде нужно вручную указать значение соответствующего элемента массива ($OPTIONS{‘checkthemes’} = 0;), так как автор не предусмотрел такой опции при запуске.
Отличительной особенностью скрипта является автоматический поиск на предмет уязвимостей по базе данных OSVDB для найденных плагинов. Однако для использования поиска необходимо иметь ключ к API сервиса. Впрочем, получить его может любой желающий, пройдя регистрацию. К сожалению, присутствует одно ограничение — сервис позволяет сделать только 100 запросов в день. Получив ключ, нужно создать в папке с CMS Explorer файл osvdb.key и внести значение. Read more »

Опубликован OWASP Top 10 2010 (RC1)

OWASP, открытый проект безопасности приложений, накануне представил для обсуждения новую версию списка десяти самых опасных угроз. В сравнении с OWASP Top 10 2007 изменениям подверглись четыре позиции. Меня удивило, что инклуд-баг Malicious File Execution был исключен из списка якобы в силу того, что PHP стал более безопасным по умолчанию. Видимо Jeremiah Grossman и компания не учли, что LFI (local file include) по степени риска теперь можно практически приравнять к RFI (remote file include). Возможно к 2010 бажных версий PHP будет намного меньше, но, несмотря на это, косячить в коде будут всегда. А может обнаружатся еще какие-нибудь новые уязвимости 🙂

Итак, сама десятка самых опасных угроз:

  1. A1 Injection (всякого рода инъекции, в т.ч. SQL, LDAP и т.д.)
  2. A2 Cross Site Scripting (не потерявший актуальности XSS)
  3. A3 Broken Authentication and Session Management (ошибки в архитектуре аутентификации и управления сессиями)
  4. A4 Insecure Direct Object References (незащищенные ресурсы и объекты, можно вспомнить случай с SVN)
  5. A5 Cross Site Request Forgery (CSRF)
  6. A6 Security Misconfiguration (небезопасная конфигурация окружения, различных фреймворков, платформы)
  7. A7 Failure to Restrict URL Access (несанкционированный доступ к функционалу, требующему особых привилегий — например обход проверки c помощью двойного слэша «//» в URL для получения доступа к управлению блогом в WordPress)
  8. A8 Unvalidated Redirects and Forwards (открытые редиректы, которые ведут к фишингу, HTTP Response Splitting и XSS)
  9. A9 Insecure Cryptographic Storage (небезопасное хранение важных данных)
  10. A10 Insufficient Transport Layer Protection (недостаточная защита данных при их передаче на транспортном уровне, например по HTTP вместо HTTPS).

Надеюсь, это неокончательная версия Top 10, ждем следующий релиз-кандидат.

HTTP Parameter Pollution

HTTP Parameter Pollution — это новый вид атак на веб-приложения, основным преимуществом которого является возможность обхода WAF (Web Application Firewall). Концепт HPP был разработан итальянскими исследователями Luca Carettoni и Stefano di Paola и представлен на недавно прошедшей конференции OWASP AppSec EU09 Poland.

Несмотря на простоту, HPP является довольно эффективным способом. Его суть заключается в смешивании или дословно «загрязнении» границ HTTP-параметров.

Read more »

Чтение истории посещений с помощью CSS

На написание этой небольшой заметки меня подтолкнул пост в блоге автора плагина NoScript о ресурсе с провокационным названием Start Panic!, который призывает пользователей написать петицию к разработчикам браузеров для устранения бага, связанного с выявлением посещенных пользователями страниц с помощью JS+CSS эксплоита, который может быть размещен на любом сайте. Как раз на startpanic.com и проводится демонстрация уязвимости; к слову, довольно показательная — все выведенные адреса действительно мной посещались. На самом деле ничего нового в этом баге нет — используется давно известный прием CSS History Reading. Собственно о нем и расскажу на примере его реализации на startpanic.com.

Read more »

XSS Rays — браузер как сканер XSS

Небезызвестный Gareth Heyes сегодня опубликовал свою новую утилиту для сканирования сайтов на наличие XSS. Особенность его разработки заключается в том, что процесс сканирования производится браузером атакующего при помощи javascript. Алгоритм довольно прост: javascript-код рекурсивно собирает все ссылки и формы со страниц сайта и проводит различные тесты, используя встроенную базу векторов. XSS Rays способен совершать кроссдоменные вызовы благодаря использованию тэгов iframe вместо AJAX. Для логирования результатов сканеру требуется локальный веб-сервер с PHP. Реализация сканера в контексте браузера, по словам разработчика, способствует повышению точности и качества конечного результата, хотя ложные срабатывания не исключены. Для использования XSS Rays необходимо лишь открыть страницу http://localhost/XSS_Rays/helpers/bookmarklet.html и сохранить ссылку в закладки. Сканирование сайта производится по клику на букмарклет и нажатию на CTRL+SHIFT+X.
XSS Rays

Опубликован Browser Security Handbook

Компания Google в лице известного эксперта по веб-безопасности Michal Zalewski опубликовала 60-страничный документ, описывающий все тонкости современных браузеров с точки зрения их безопасности. Вся информация очень удобно скомпанована в виде наглядных таблиц, в которых отражены характеристики браузеров по тому или иному критерию. Помимо специалистов по веб-безопасности работа также представляет интерес для веб-разработчиков, которым постоянно приходится подстраиваться под множество браузеров.
Книга на английском, ссылка ниже.
Browser Security Handbook.

P.S. обновил wordpress до 2.7, радуюсь новой фишке «Опубликовать это!», реализованной в виде букмарклета. Очень удобно публиковать свеженайденный интересный контент, не покидая сайт.

Следующая страница →