Архив

Posts Tagged ‘просто о сложном’

Как быстро искать научные статьи

Думаю, многим любителям академических работ будет полезно. Не претендуя на полноту, решил описать свой способ поиска новых статей в своей предметной области (web & application security).

Шаг 1. Берем статью 2010-2011 года близкой нам тематики из любого источника из списка ниже:
https://seclab.cs.ucsb.edu/academic/publishing/
http://www.iseclab.org/publications.html
http://www.ieee-security.org/TC/SP-Index.html
https://www.usenix.org/publications/proceedings
Пусть, например, мы выбрали статью про создание black-box сканера уязвимостей, который учитывает состояние веб-приложения: «Enemy of the State: A State-Aware Black-Box Web Vulnerability Scanner».

Шаг 2. Берем интересные нам статьи и ищем, кто за последние годы на них ссылался. Делается это так:
— либо ищем название статьи в Google Scholar и кликаем в выдаче «Cited By»; в нашем случае будет выдано 17 статей — http://scholar.google.com/scholar?cites=15644735933810005707
— либо ищем название статьи в portal.acm.org и переходим во вкладку «Cited By»; в нашем случае будет выдано 4 статьи — http://dl.acm.org/citation.cfm?id=2362793.2362819.

Шаг 3. Для каждой новой заинтересовавшей нас статьи из ссылающихся на исходную повторяем Шаг 2. Обычно рекурсия не заходит глубже второго уровня.

Шаг 4. Качаем выбранные статьи и читаем. Для тех, кто не в курсе, платные статьи можно скачать через http://sci-hub.org/.

Удачной охоты!

p.s. Буду благодарен за related типсы и триксы, если кто знает.

Маркетинг @ Анализаторы исходного кода

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

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

Итак, сегодня — первая серия, и поговорим мы вот про какие заявления (встречаются в произвольной комбинации): «сигнатурный анализ не может обеспечить полноту», «сигнатурный анализ дает много ложных срабатываний», «сигнатурный анализ хуже, чем анализ потоков данных», «анализ потоков данных дает офигительную полноту при низком числе ложных срабатываний», «о какой полноте может идти речь при наличии в базе N сигнатур» и вот это вот всё.

Для тех, кто испугался объема, сразу выводы:

1. Все применяемые сейчас вида анализа кода — сигнатурные (в т.ч. taint анализ на основе потоков данных).

2. В свете п.1. сравнивать подходы и продукты по количеству сигнатур — нонсенс. Сигнатура может описывать как целый класс недостатков (например, input validation), так и один-единственный экземпляр (unserialize($_GET[.*])).

3. Про полноту и точность можно говорить только после фиксирования класса недостатков (например, input validation). Полноты «вообще» — не существует. В свете разговора про каждый класс недостатков на первое место выходит формальная модель описания недостатка. По факту, сейчас почти всегда используется модель невмешательства (aka taint). Данная модель описывает только уязвимости класса input validation. Она бесполезна для недостатков авторизации. Полнота, говорите?

4. Даже в рамках одного класса недостатков, например, input validation, существующая модель невмешательства не может обеспечить не только полноту, но и даже приемлемую точность. Ограничения модели невмешательства расписаны вот тут (англ).

Тег «Далее»

Безопасность веб-приложений: starter edition

В минувший четверг в рамках инициативы проведения вебинаров RISSPA провел первую часть обучающего вебинара по безопасности веб-приложений.
Материалы (видео, презентация, ролик по использованию Browser Exploitation Framework) доступны на сайте RISSPA.

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

Для удобства подключу их и сюда.

Трансляция:

Презентация:

 

Ролик по использованию Browser Exploitation Framework (смотреть в HD):

Drive-by-Download: еще один способ отличить человека от робота

Напомню, что целью атак Drive-by-Download является распространение вредоносного кода, а реализуются они через привлечение жертв на вредоносный сайт с последующей эксплуатацией уязвимостей в ПО (браузер, flashplayer, pdfviewer, компоненты ActiveX и т.п.).
Для того, чтобы вредоносный сайт подольше жил, злоумышленники предпринимают целый ряд защитных мер (о них подробно написано в нашей статье «Drive-by-Download по-тихому или Маскируем вредоносные сайты от wepawet и его друзей» в сентябрьском номере Хакера), среди которых:
— отделяют уязвимых пользователей от неуязвимых (страницу с эксплойтом не хочется показывать абы кому);
— отделяют посетителей-человеков от роботов (роботы, а тем более боты всяких AV-производителей мало того, что не подвержены эксплойтам, так они еще могут заклеймить домен как вредоносный, что приведет к снижению времени его эффективной работы);
— отделяют новых посетителей от возвращающихся (вредоносному сайту не нужно повышенное внимание).
… и т.п.

Сегодня я хочу поделиться с вами одной идеей, с помощью которой можно отделить роботов от человеков. Итак, задача (упрощенно):
1. Есть страница X, на которую приходят (перенаправляются) посетители, в отношении коих будет проводиться атака Drive-by-Download.
2. Есть страница Y, на которой размещен непосредственно эксплойт.

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

Усложним себе задачу, сделав следующие допущения:
1. Все роботы умеют интерпретировать Javascript. Иначе задача решается тривиально.
2. Все роботы построены на основе WebKit, а пользователи работают из-под браузера Google Chrome. Таким образом, методы fingerprinting’а также не применимы.

Сначала перечислим well-known варианты решения:
1. CAPTCHA. Не годится, ибо мы хотим свести к минимуму взаимодействие с пользователем. Кроме того, CAPTCHA на простой странице вызывает подозрения.
2. Можно регистрировать события от мыши и клавиатуры: мол, если есть — то человек, иначе — электронный болван. Но такие события эмулируются на раз.

Что же предлагается? Идея заключается в том, что типичные пользователи до автоматизма довели свою реакцию на раздражающие факторы: всплывающую рекламу или звук — немедленно выключить. Таким образом, делаем следующее: при переходе на нашу страницу пользователю демонстрируем всплывающую рекламу (полностью отрисованную с помощью Javascript), заслоняющую почти всю страницу. Нормальный пользователь тут же закроет такую рекламу. Бот — нет. Соответственно, зарегистрировав закрытие такого окна, перенаправляем пользователя на страницу Y, в противном случае — на сайт Диснейленда.

Обсуждая эту идею с Владимиром Воронцовым, получил справедливую критику метода: а что если с помощью WebKit мы будем делать скриншоты текущего окна (пример, как это работает — тут) и распознавать в полученных картинках крестики для закрытия рекламы, вычислять X и Y и эмулировать туда click мышью?
Можно в самой рекламе разместить много похожих крестиков. Например, показать смеющуюся японскую девочку anime-style — у них, как известно, глазки крестиком :)

Если мысль моя не нова, прошу кинуть ссылкой на первоисточник. Google мне ничего не сказал…

О роли модели угроз при анализе защищенности сайта и кое-что еще

Написал на сайт Internal Security несколько заметок, которые могут быть интересны аудитории. Вот они:

Роль модели угроз и профилей нарушителей при аудите безопасности.
Аннотация. Один из ключевых вопросов, возникающих у заказчика перед аудитом Сайта – определение перечня работ и оценка их стоимости. Иными словами, каким образом обосновать необходимость проведения аудита Сайта в том или ином виде с экономической точки зрения? Читать далее…

Типичные профили нарушителей безопасности сайтов.
Аннотация. Без понимания того, кто, зачем и каким образом собирается проводить атаки на Сайт достаточно затруднительно выбрать адекватные защитные меры. Что такое – адекватные? Адекватные меры – это прежде всего экономически обоснованные меры. Грубо говоря, зачем закладывать в годовой бюджет на обеспечение безопасности 10000$, если суммарный ущерб от предполагаемых атак за весь год составляет не более 8000$?

Так как для выбора адекватных мер необходимо представлять, какие именно атаки угрожают защищаемому объекту, целесообразно взглянуть на вопрос с «тёмной стороны силы». В данной заметке описываются профили вероятных нарушителей безопасности сайтов. В профиль нарушителя входит описание его цели и обоснование мотивации. Читать далее …

Зачем кому-то нужно взламывать мой сайт? Об экономике ненаправленных атак в Интернет.

Обеспечение безопасности расширений в корпоративных информационных системах

Сегодня в рамках семинара RISSPA на конференции InfoSecurity Russia представлял доклад на тему «Обеспечение безопасности расширений в корпоративных информационных системах». Надеюсь, не переборщил с «систематичностью» и «научностью». Обсуждение в конце доклада — на 5 баллов! )

Lessons learned: как надо и как не надо сравнивать сканеры

Уже не первый год мне интересна тема сравнения сканеров уязвимостей (посты по теме — раз, два и три). В небольшой серии постов под названием «Lessons learned» я поделюсь своим видением проблемы — надеюсь, кому-то это окажется полезным в систематизации его миропредставления.
Первая тема — это критерии сравнения сканеров. Тег «Далее»