<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Безопасность веб-приложений: просто о сложном</title>
	<atom:link href="https://andrepetukhov.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://andrepetukhov.wordpress.com</link>
	<description></description>
	<lastBuildDate>Wed, 24 Jun 2015 18:30:09 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">13110337</site><cloud domain='andrepetukhov.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s0.wp.com/i/buttonw-com.png</url>
		<title>Безопасность веб-приложений: просто о сложном</title>
		<link>https://andrepetukhov.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://andrepetukhov.wordpress.com/osd.xml" title="Безопасность веб-приложений: просто о сложном" />
	<atom:link rel='hub' href='https://andrepetukhov.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Как выбрать сканер уязвимостей веб-приложений?</title>
		<link>https://andrepetukhov.wordpress.com/2015/06/24/%d0%ba%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b1%d1%80%d0%b0%d1%82%d1%8c-%d1%81%d0%ba%d0%b0%d0%bd%d0%b5%d1%80-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b5%d0%b9/</link>
					<comments>https://andrepetukhov.wordpress.com/2015/06/24/%d0%ba%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b1%d1%80%d0%b0%d1%82%d1%8c-%d1%81%d0%ba%d0%b0%d0%bd%d0%b5%d1%80-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b5%d0%b9/#respond</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Wed, 24 Jun 2015 18:26:23 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=838</guid>

					<description><![CDATA[Нередко мне задают вопрос: «какой сканер веб-приложений – самый лучший?» Как водится, на общий вопрос можно дать общий ответ типа «смотря для каких целей». В данной заметке я решил рассмотреть задачу сравнения сканеров веб-приложений. Сразу скажу, что эта заметка скорее обучающая, для новичков, чем отвечающая на конкретные вопросы. Для экспертов в ИБ заметка будет, наверное, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Нередко мне задают вопрос: «какой сканер веб-приложений – самый лучший?» Как водится, на общий вопрос можно дать общий ответ типа «смотря для каких целей». В данной заметке я решил рассмотреть задачу сравнения сканеров веб-приложений.</p>
<p>Сразу скажу, что эта заметка скорее обучающая, для новичков, чем отвечающая на конкретные вопросы. Для экспертов в ИБ заметка будет, наверное, капитанством.</p>
<p>В заметке мы ограничимся только сканерами, работающими с веб-приложениями методом черного ящика: т.е. сканер взаимодействует с веб-приложением так же, как и типичный пользователь, через веб-интерфейс по сети по протоколу HTTP(S).</p>
<p><span id="more-838"></span></p>
<p>В целом, если говорить о задаче сравнения сканеров веб-приложений, можно рассмотреть следующие задачи:</p>
<ul>
<li>сравнение функций сканеров;</li>
<li>бенчмарк сканеров с целью определения эффективности их работы на самых различных видах веб-приложений (качество и скорость поиска уязвимостей);</li>
<li>выбор сканера под нужды заданного владельца веб-приложений.</li>
</ul>
<p></p>
<h3><strong>Сравнение функциональных возможностей</strong></h3>
<p></p>
<p>Первую задачу, в целом, понятно как решать. Методика сравнения <strong>функциональных</strong> возможностей сканеров такова: необходимо принять за основу сравнения некоторый контрольный список <a href="#_ftn1" name="_ftnref1">[1]</a> возможностей идеального сканера и оценить пилотируемые инструменты на поддержку этих возможностей. Итогом является таблица, в строках которой перечислены критерии сравнения, в столбцах – инструменты, а в ячейках дана оценка каждому средству по данному критерию.</p>
<p>Сравнение может быть проведено как теоретически, так и практически. В случае теоретического сравнения информация о поддержке средством той или иной возможности берется из его документации или других источников. В случае практического сравнения все выводы делаются на основе опыта работы оператором с пилотируемым средством.</p>
<p></p>
<h3><strong>Бенчмарк эффективности сканеров </strong></h3>
<p></p>
<p>Со второй задачей возникают трудности. Методика сравнения <strong>эффективности</strong> сканеров вообще (без привязке к классу приложений или типам уязвимостей) является предметом споров и разногласий в сообществе и по сей день.</p>
<p>Исторически под эффективностью сканеров уязвимостей понимался вектор из двух компонент – полноты и частоты ложных срабатываний. Полнота определяется как отношение количества обнаруженных уязвимостей к общему количеству уязвимостей в анализируемом приложении. Частота ложных срабатываний определяется как отношение количества неправильно найденных уязвимостей к общему числу сообщенных уязвимостей. Ожидается, что идеальный инструмент продемонстрирует полноту в единицу и частоту ложных срабатываний в ноль.</p>
<p>У описанного подхода есть два недостатка:</p>
<ul>
<li>указанные показатели зависят от тестовой выборки;</li>
<li>такое определение эффективности является бесполезным с <strong>практической</strong> точки зрения.</li>
</ul>
<p>Первый недостаток означает, что показателями эффективности при сравнении инструментов между собой можно манипулировать, включая или исключая из тестовой выборки для бенчмарка те или иные веб-приложения или уязвимости в них. Данное обстоятельство порождает отдельную нетривиальную задачу: как построить и доказать корректность тестовой выборки веб-приложений, чтобы это устроило все стороны сравнительного теста?</p>
<p>Второй недостаток требуется раскрыть подробнее. Рассмотрим в качестве примера следующую ситуацию: пусть сравниваются два сканера – А и Б; у первого сканера показатели эффективности на заданной выборке – (0.65, 0.01), а у второго – (0.35, 0.01). На первый взгляд, сканер А лучше сканера Б. Но на самом деле, без информации о том, как соотносятся множества обнаруженных сканерами уязвимостей, сделать вывод о победителе не представляется возможным. Например, сканер А мог обнаружить в тестовой выборке <strong>все</strong> уязвимости к атакам класса XSS и ни одной уязвимости к атакам других классов, а второй – <strong>все</strong> уязвимости к атакам класса SQL injection и ни одной уязвимости к атакам других классов; при этом 65 и 35 – это количественные характеристики тестовой выборки по классам уязвимостей к атакам XSS и SQL injection соответственно.</p>
<p>Отдельным важным фактором при сравнении эффективности сканеров является оценка эффективности их crawler’ов. Так как у автоматических средств сканирования первым этапом анализа является навигация по веб-приложению и определение точек ввода входных данных (DEP’ов, от “Data Entry Points”), плохие результаты на этом этапе существенно влияют на возможность найти уязвимости при тестировании найденных DEP’ов. Так, например, известны типичные проблемы сканеров при обходе современных веб-приложений класса SPA (Single Page Applications) и приложений, навигация по которым реализована исключительно через JavaScript. Подробнее про эти проблемы можно узнать из доклада на первой встрече <a href="http://www.slideshare.net/OWASP-Russia/14-42442364">OWASP Russia</a> или из нашей <a href="http://www.pvti.ru/data/file/bit/2013/2013_1/part_2.pdf">статьи</a>.</p>
<p></p>
<h3><strong>Выбор сканера для себя</strong></h3>
<p></p>
<p>Понимая особенности решения задач в первой и второй формулировках, стоит обратиться к третьей задаче: «<strong>как выбрать сканер под нужды владельца конкретных веб-приложений</strong>». И тут-то возникает вот это вот: «смотря для каких целей». Так как мы не рассматриваем задачу выбора сканера консалтинговыми компаниями в области ИБ, сосредоточимся на задачах владельцев веб-приложений.</p>
<p>Напомним, что с помощью сканеров веб-приложений можно обнаружить уязвимости следующих категорий:</p>
<ol>
<li>Уязвимости этапа кодирования. Лучше всего среди уязвимостей этого типа обнаруживаются т.н. уязвимости, связанные с некорректной обработкой входных и выходных данных (англ. Injection Flaws, в т.ч. возможность SQL injection, возможность XSS и т.д.), а хуже всего – логические уязвимости.</li>
<li>Уязвимости этапа внедрения и конфигурирования приложения. К этим уязвимостям относятся некорректные настройки окружения веб-приложения: веб-сервера, сервера приложений, SSL/TLS, фреймворка, сторонних компонент, наличие DEBUG-режима и т.п.</li>
<li>Уязвимости этапа эксплуатации приложения. К этим уязвимостям относятся использование устаревшего ПО (не обновлённого веб-сервера, фреймворка, сторонних библиотек и т.п.), простых паролей, хранение архивных копий на веб-сервере в общем доступе, наличие в общем доступе служебных модулей (phpinfo) и т.п.</li>
</ol>
<p>Задача поиска уязвимостей второго и третьего типов автоматизируется довольно неплохо (особенно, если преднастроить сканер на технологии приложения и его окружения). Задача поиска уязвимостей этапа разработки намного успешнее решается при применении сканера в ручном режиме, а не автоматическом.</p>
<hr />
<p style="padding-left:30px;">В <strong>ручном</strong> режиме оператор работает с анализируемым приложением через веб-браузер, который подключен к приложению через сканер как через промежуточный прокси-сервер. При этом оператор наблюдает все HTTP-запросы и HTTP-ответы в сканере и по своему выбору может на их основе составить и отправить необходимые тестовые запросы. При работе со сканером в таком режиме имеются следующие особенности: во-первых, предъявляются повышенные требования к квалификации оператора, во-вторых, оператору важно получить от сканера максимум удобных инструментов для автоматизации создания и отправки тестовых запросов и анализа ответов приложения на них. Типичными представителями указанного класса сканеров являются Burp Suite и ZAP Proxy.</p>
<p style="padding-left:30px;">В <strong>автоматическом</strong> режиме работы от оператора требуется только сконфигурировать параметры запуска сканера: указать URL приложения и логин/пароль пользователя (при тестировании закрытой части). Типичными представителями указанного класса являются инструменты HP WebInspect, Acunetix и т.п.</p>
<p style="padding-left:30px;">Важно отметить, что большинство современных сканеров могут работать в любом режиме по выбору оператора.</p>
<hr />
<p>Рассмотрим типичные сценарии использования сканеров:</p>
<ol>
<li>Запуск в процессе тестирования веб-приложения в тестовом окружении для обнаружения уязвимостей этапа кодирования. Варианты:
<ol>
<li>запускается службой ИБ при приемке веб-приложения, разработанного на заказ сторонним подрядчиком;</li>
<li>запускается службой ИБ после прохождения очередного релиза приложения, разрабатываемого внутри компании, всех тестовых процедур;</li>
<li>запускается тестировщиками веб-приложения во время тестовых процедур;</li>
<li>запускается службой ИБ по инициативе (тикету) разработчиков (например, после добавления новых элементов в графический интерфейс).</li>
</ol>
</li>
<li>Запуск после разворачивания новой версии веб-приложения в продукционной среде для обнаружения уязвимостей этапа конфигурации. Варианты:
<ol>
<li>запускается службой ИБ перед подписанием бумажки а-ля «ввод в эксплуатацию разрешаю»;</li>
<li>запускается службой эксплуатации (администраторами/девопсами) в рамках соблюдения регламента по безопасному вводу в эксплуатацию новых релизов/приложений.</li>
</ol>
</li>
<li>Периодическое сканирование веб-приложения в продукционной среде для обнаружения уязвимостей этапа эксплуатации. Обычно запускается на периодической основе службой ИБ для внутреннего контроля соблюдения политик администрирования ИТ-ресурсов.</li>
</ol>
<p>Зачем были перечислены эти сценарии? Каждый сканер (и режим работы) предъявляет определенные требования к оператору. Квалификация важна при выборе режима работы сканера, при конфигурировании запусков сканера, при интерпретации результатов (ложное или неложное срабатывание, критичность неложного срабатывания).</p>
<p>Кроме того, в контексте использования веб-сканера в рамках процесса собственной разработки ПО важно отметить следующие аспекты:</p>
<ol>
<li>Автоматизируемость запуска (например, наличие интерфейса командной строки или API) и возможность внедрения в процесс непрерывной интеграции (CI).</li>
<li>Воспроизводимость результатов сканирования: на одной и той же сборке анализируемого приложения прогон средства должен давать стабильные результаты.</li>
<li>Удобство перепроверки: сканер должен предоставлять возможность проверить, была ли исправлена известная уязвимость в новом релизе (желательно без полноценного прогона), а также классифицировать найденные уязвимости на новые или вновь открывшиеся старые.</li>
</ol>
<p></p>
<h3><strong>Резюме</strong></h3>
<p></p>
<p>Резюмируя заметку, можно сделать следующие выводы:</p>
<ol>
<li>Функциональное сравнение сканеров сделать методически несложно. Имея список функциональных критериев, можно сравнительно недорого получить оценку соответствия этим критериям для каждого инструмента из списка на выбор.</li>
<li>Бенчмарк сканеров – это не то, на что следует ориентироваться при выборе средств. Признанных бенчмарков нет.</li>
<li>Важными шагами при выборе сканера для себя будут:
<ol>
<li>определение сценария использования сканера и оценка требуемой квалификации оператора;</li>
<li>определение существенных функциональных требований к сканеру и сравнение инструментов по существенным критериям (примеры таких критериев – возможность запуска через CLI, возможность интеграции с такими-то ИТ-системами, поддержка многопользовательского режима работы и т.п.);</li>
<li>оценка поддержки сканером веб-технологии вашего приложения; примеры веб-технологий, где это будет иметь значение:
<ol>
<li>GWT и прочие технологии с нетривиальным способом передачи параметров серверу или менеджментом сессий;</li>
<li>RIA и SPA-приложения, а также веб-приложения, интерфейс которых существенно динамический (т.е. его нельзя обойти, статически анализируя код веб-страниц);</li>
<li>приложения, требующие реализации на клиенте нестандартных криптографических примитивов (см. системы класса ДБО).</li>
</ol>
</li>
<li>наличие специальных профилей сканирования под различные веб-технологии (т.е. фаззинг GWT надо проводить по одной стратегии, а приложения на ASP.NET Web Forms – по другой).</li>
</ol>
</li>
</ol>
<p>&nbsp;</p>
<p>p.s. Спасибо за фидбек по заметке Денису Колегову, Алексею Синцову, Георгию Носеевичу и Сергею Герасимову.</p>
<p>&nbsp;</p>
<p><a href="#_ftnref1" name="_ftn1">[1]</a> Список, например, составляется на основе комбинации критериев, перечисленных в проектах «Web Application Security Scanner Evaluation Criteria» и «OWASP Web Application Scanner Specification Project».</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2015/06/24/%d0%ba%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b1%d1%80%d0%b0%d1%82%d1%8c-%d1%81%d0%ba%d0%b0%d0%bd%d0%b5%d1%80-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b5%d0%b9/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">838</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>Первый школьный CTF @ МГУ</title>
		<link>https://andrepetukhov.wordpress.com/2014/10/29/%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b9-%d1%88%d0%ba%d0%be%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-ctf-%d0%bc%d0%b3%d1%83/</link>
					<comments>https://andrepetukhov.wordpress.com/2014/10/29/%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b9-%d1%88%d0%ba%d0%be%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-ctf-%d0%bc%d0%b3%d1%83/#respond</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Wed, 29 Oct 2014 15:15:32 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=831</guid>

					<description><![CDATA[Ну конечно, это &#8212; реклама! Факультет ВМК МГУ имени М.В. Ломоносова в рамках XXIV Международной конференции-выставки «Информационные технологии в образовании» («ИТО-2014») приглашает учащихся 7-11 классов школ Москвы и Московской области принять участие в MOSCOW CTF 2014. Мероприятие пройдёт на факультете ВМК. Для участия необходимо пройти процедуру регистрации на сайте http://ctf.cs.msu.su/. Задания ориентированы на школьников 7-11 классов. Количество участников в команде: [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ну конечно, это &#8212; реклама!</p>
<p>Факультет ВМК МГУ имени М.В. Ломоносова в рамках XXIV Международной конференции-выставки «Информационные технологии в образовании» («ИТО-2014») приглашает учащихся 7-11 классов школ Москвы и Московской области принять участие в <strong>MOSCOW CTF 2014</strong>.</p>
<p>Мероприятие пройдёт на факультете ВМК. Для участия необходимо пройти процедуру регистрации на сайте <a href="http://ctf.cs.msu.su/" rel="nofollow">http://ctf.cs.msu.su/</a>. Задания ориентированы на школьников 7-11 классов. Количество участников в команде: 3-5 человек. Наличие у участников собственных ноутбуков приветствуется, но не является обязательным.</p>
<p><strong>Подробности:</strong><br />
Дата: 9 ноября 2014 года.<br />
Место: 2-ой учебный корпус МГУ.<br />
Адрес:г. Москва, Ленинские горы, д. 1, стр. 52.<br />
Продолжительность олимпиады: 5 (пять) астрономических часов.</p>
<p>Предварительное расписание и другую информацию можно найти на сайте: <a href="http://ctf.cs.msu.su/" rel="nofollow">http://ctf.cs.msu.su/</a> и страничке ВКонтакте: https://vk.com/mskctfschool2014</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2014/10/29/%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b9-%d1%88%d0%ba%d0%be%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-ctf-%d0%bc%d0%b3%d1%83/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">831</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>Совместный удаленный доступ к ДБО</title>
		<link>https://andrepetukhov.wordpress.com/2014/08/07/shared-remote-access-internet-banking/</link>
					<comments>https://andrepetukhov.wordpress.com/2014/08/07/shared-remote-access-internet-banking/#comments</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Thu, 07 Aug 2014 10:43:31 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[инструменты]]></category>
		<category><![CDATA[копилка]]></category>
		<category><![CDATA[обучение]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=824</guid>

					<description><![CDATA[Решил поделиться решением задачи по совместному удаленному доступу к ДБО, вдруг кому-то будет полезно. Итак, дано: Есть доступ в систему ДБО. Логин-пароль, вход подтверждается по SMS, вход возможен только при наличии eToken&#8217;а класса Aladdin Pro. Подпись документов, отправляемых в банк, происходит тоже с помощью ключей. Требуется: Организовать возможность доступа в систему ДБО в общем случае [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Решил поделиться решением задачи по совместному удаленному доступу к ДБО, вдруг кому-то будет полезно.</p>
<p>Итак, <strong>дано</strong>:<br />
Есть доступ в систему ДБО. Логин-пароль, вход подтверждается по SMS, вход возможен только при наличии eToken&#8217;а класса Aladdin Pro. Подпись документов, отправляемых в банк, происходит тоже с помощью ключей.</p>
<p><strong>Требуется</strong>:<br />
Организовать возможность доступа в систему ДБО в общем случае N удаленных людей.</p>
<p><strong>Решение</strong>:<br />
Вся инфраструктура в нашей локальной сети доступна удаленным пользователям через OpenVPN. В локальной сети поднимается виртуальная машина, в хост в USB вставляется eToken и подключается к виртуальной машине. На виртуальную машину устанавливается ПО <a href="http://www.usb-over-network.com/usb-over-network-download.html" target="_blank">USB over Network</a>, которое позволяет подключить удаленное USB-устройство к локальной машине так же, как если бы оно было вставлено в локальный USB-порт. Далее eToken расшаривается для удаленного доступа, конечно с паролем.</p>
<p>Теперь SMS. Берется любой планшет или телефон на Android, ставится программа SMS Forwarder, в которой задается правило: все смс с такого-то номера отправлять на такие-то почтовые адреса. Android-устройство подключатся к WiFi-сети нашей инфраструктуры. Очевидно, в устройстве должна стоять та SIM-карта, на которую приходят одноразовые пароли.</p>
<p>Works like Charm. </p>
<p>p.s. Чего-то мне кажется, что всякие банковские трояны используют эту схему уже давно. Полагаю, спецы подтвердят.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2014/08/07/shared-remote-access-internet-banking/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">824</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>Как быстро искать научные статьи</title>
		<link>https://andrepetukhov.wordpress.com/2014/04/29/%d0%ba%d0%b0%d0%ba-%d0%b1%d1%8b%d1%81%d1%82%d1%80%d0%be-%d0%b8%d1%81%d0%ba%d0%b0%d1%82%d1%8c-%d0%bd%d0%b0%d1%83%d1%87%d0%bd%d1%8b%d0%b5-%d1%81%d1%82%d0%b0%d1%82%d1%8c%d0%b8/</link>
					<comments>https://andrepetukhov.wordpress.com/2014/04/29/%d0%ba%d0%b0%d0%ba-%d0%b1%d1%8b%d1%81%d1%82%d1%80%d0%be-%d0%b8%d1%81%d0%ba%d0%b0%d1%82%d1%8c-%d0%bd%d0%b0%d1%83%d1%87%d0%bd%d1%8b%d0%b5-%d1%81%d1%82%d0%b0%d1%82%d1%8c%d0%b8/#comments</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Tue, 29 Apr 2014 14:17:52 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[обучение]]></category>
		<category><![CDATA[просто о сложном]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=815</guid>

					<description><![CDATA[Думаю, многим любителям академических работ будет полезно. Не претендуя на полноту, решил описать свой способ поиска новых статей в своей предметной области (web &#38; application security). Шаг 1. Берем статью 2010-2011 года близкой нам тематики из любого источника из списка ниже: &#8212; https://seclab.cs.ucsb.edu/academic/publishing/ &#8212; http://www.iseclab.org/publications.html &#8212; http://www.ieee-security.org/TC/SP-Index.html &#8212; https://www.usenix.org/publications/proceedings Пусть, например, мы выбрали статью про [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Думаю, многим любителям академических работ будет полезно. Не претендуя на полноту, решил описать свой способ поиска новых статей в своей предметной области (web &amp; application security).</p>
<p><strong>Шаг 1</strong>. Берем статью 2010-2011 года близкой нам тематики из любого источника из списка ниже:<br />
 &#8212; <a href="https://seclab.cs.ucsb.edu/academic/publishing/" rel="nofollow">https://seclab.cs.ucsb.edu/academic/publishing/</a><br />
 &#8212; <a href="http://www.iseclab.org/publications.html" rel="nofollow">http://www.iseclab.org/publications.html</a><br />
 &#8212; <a href="http://www.ieee-security.org/TC/SP-Index.html" rel="nofollow">http://www.ieee-security.org/TC/SP-Index.html</a><br />
 &#8212; <a href="https://www.usenix.org/publications/proceedings" rel="nofollow">https://www.usenix.org/publications/proceedings</a><br />
Пусть, например, мы выбрали статью про создание black-box сканера уязвимостей, который учитывает состояние веб-приложения: &#171;Enemy of the State: A State-Aware Black-Box Web Vulnerability Scanner&#187;.</p>
<p><strong>Шаг 2</strong>. Берем интересные нам статьи и ищем, кто за последние годы на них ссылался. Делается это так:<br />
 &#8212; либо ищем название статьи в Google Scholar и кликаем в выдаче &#171;Cited By&#187;; в нашем случае будет выдано 17 статей &#8212; <a href="http://scholar.google.com/scholar?cites=15644735933810005707" rel="nofollow">http://scholar.google.com/scholar?cites=15644735933810005707</a><br />
 &#8212; либо ищем название статьи в portal.acm.org и переходим во вкладку &#171;Cited By&#187;; в нашем случае будет выдано 4 статьи &#8212; <a href="http://dl.acm.org/citation.cfm?id=2362793.2362819" rel="nofollow">http://dl.acm.org/citation.cfm?id=2362793.2362819</a>.</p>
<p><strong>Шаг 3</strong>. Для каждой новой заинтересовавшей нас статьи из ссылающихся на исходную повторяем Шаг 2. Обычно рекурсия не заходит глубже второго уровня.</p>
<p><strong>Шаг 4</strong>. Качаем выбранные статьи и читаем. Для тех, кто не в курсе, платные статьи можно скачать через <a href="http://sci-hub.org/" rel="nofollow">http://sci-hub.org/</a>.</p>
<p>Удачной охоты!</p>
<p>p.s. Буду благодарен за related типсы и триксы, если кто знает.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2014/04/29/%d0%ba%d0%b0%d0%ba-%d0%b1%d1%8b%d1%81%d1%82%d1%80%d0%be-%d0%b8%d1%81%d0%ba%d0%b0%d1%82%d1%8c-%d0%bd%d0%b0%d1%83%d1%87%d0%bd%d1%8b%d0%b5-%d1%81%d1%82%d0%b0%d1%82%d1%8c%d0%b8/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">815</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>Налетай, не скупись, засылай рукопись!</title>
		<link>https://andrepetukhov.wordpress.com/2013/12/11/%d0%bd%d0%b0%d0%bb%d0%b5%d1%82%d0%b0%d0%b9-%d0%bd%d0%b5-%d1%81%d0%ba%d1%83%d0%bf%d0%b8%d1%81%d1%8c-%d0%b7%d0%b0%d1%81%d1%8b%d0%bb%d0%b0%d0%b9-%d1%80%d1%83%d0%ba%d0%be%d0%bf%d0%b8%d1%81%d1%8c/</link>
					<comments>https://andrepetukhov.wordpress.com/2013/12/11/%d0%bd%d0%b0%d0%bb%d0%b5%d1%82%d0%b0%d0%b9-%d0%bd%d0%b5-%d1%81%d0%ba%d1%83%d0%bf%d0%b8%d1%81%d1%8c-%d0%b7%d0%b0%d1%81%d1%8b%d0%bb%d0%b0%d0%b9-%d1%80%d1%83%d0%ba%d0%be%d0%bf%d0%b8%d1%81%d1%8c/#respond</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Wed, 11 Dec 2013 16:15:51 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[конференции]]></category>
		<category><![CDATA[обучение]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=807</guid>

					<description><![CDATA[Плохо иметь системное критическое мышление. Вместо того, чтобы радостно писать &#171;новые&#187; тулзы и каждый день придумывать инновационные методы, приходится маленькими шажками через reject&#8217;ы, скепсис коллег и неудачные гипотезы продвигаться вперед в любимой предметной области. Труден и тернист путь самурая от академии, ибо ждут его не только неудачи, но и искушения: высокие зарплаты в индустрии, удаленная [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Плохо иметь системное критическое мышление. Вместо того, чтобы радостно писать &#171;новые&#187; тулзы и каждый день придумывать инновационные методы, приходится маленькими шажками через reject&#8217;ы, скепсис коллег и неудачные гипотезы продвигаться вперед в любимой предметной области. Труден и тернист путь самурая от академии, ибо ждут его не только неудачи, но и искушения: высокие зарплаты в индустрии, удаленная работа фрилансером из Тайланда и (не к ночи будь помянуты) стартапы.</p>
<p>Но viam supervadet vadens. Любой же путь хорош привалами, на которых можно оглянуться назад, прикинуть, что впереди, поделиться с соратниками впечатлениями, послушать советов, пристроить путевые заметки в публикацию&#8230;</p>
<p>Вот уже в третий раз на форуме Positive Hack Days состоится огонёк для молодых ученых, Young School. Информацию по первому Young School можно найти вот <a href="https://andrepetukhov.wordpress.com/2013/02/22/phd-young-school-2013/" target="_blank">тут</a>, а по второму &#8212; вот <a href="http://blog.phdays.ru/2013/06/phdays-iii-young-school.html" target="_blank">тут</a>. </p>
<p>В моем понимании, основной профит от участия в CFP, подобных нашему (т.е. с перекрестным анонимным рецензированием) &#8212; это _бесплатное_ получение квалифицированных рецензий на свою работу. Поверьте, чем раньше исследование попадает на оценку к непричастному человеку, тем лучше. </p>
<p>В качестве побочного эффекта от получения положительных рецензий на свои работы у авторов появится возможность побывать и выступить на самом форуме, при этом их расходы за проезд и проживание будут полностью компенсированы организаторами мероприятия (Positive Technologies). Кстати, такого нет ни на одной известной мне академической конференции.</p>
<p>И еще кое-что немаловажное. В этом году мы также принимаем тезисы на английском языке. Приглашения уже разосланы нашим друзьям за океан, в свободную Европу и тоталитарный Китай. Вот и посмотрим, где сильнее  Свободный Академический ДухЪ.</p>
<p>Правила конкурса опубликованы на <a href="http://phdays.ru/press/news/35898/" target="_blank">офисайте</a> форума. По всем вопросам можно смело писать на секретный ящик youngschool@phdays.com или задавать тут.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2013/12/11/%d0%bd%d0%b0%d0%bb%d0%b5%d1%82%d0%b0%d0%b9-%d0%bd%d0%b5-%d1%81%d0%ba%d1%83%d0%bf%d0%b8%d1%81%d1%8c-%d0%b7%d0%b0%d1%81%d1%8b%d0%bb%d0%b0%d0%b9-%d1%80%d1%83%d0%ba%d0%be%d0%bf%d0%b8%d1%81%d1%8c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">807</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>Размышления на тему &#171;русского BlackHat&#8217;а&#187;</title>
		<link>https://andrepetukhov.wordpress.com/2013/11/09/%d1%80%d0%b0%d0%b7%d0%bc%d1%8b%d1%88%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bd%d0%b0-%d1%82%d0%b5%d0%bc%d1%83-%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%be%d0%b3%d0%be-blackhat/</link>
					<comments>https://andrepetukhov.wordpress.com/2013/11/09/%d1%80%d0%b0%d0%b7%d0%bc%d1%8b%d1%88%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bd%d0%b0-%d1%82%d0%b5%d0%bc%d1%83-%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%be%d0%b3%d0%be-blackhat/#comments</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Sat, 09 Nov 2013 08:16:19 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[конференции]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=798</guid>

					<description><![CDATA[Сразу оговорюсь, я не буду тут рассуждать на тему сверх-мажорных и форс-естественных обстоятельств, которые могут возникнуть при планировании мероприятия для большого количества человек. Для этого, думаю, нужен отдельный пост. Хочу написать, почему сам я бы никогда не взялся сделать конфу, которая будет позиционироваться, как мега-хардкорная техническая конфа, русский BlackHat. TL;DR &#8212; я вижу неустранимое противоречие [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Сразу оговорюсь, я не буду тут рассуждать на тему сверх-мажорных и форс-естественных обстоятельств, которые могут возникнуть при планировании мероприятия для большого количества человек. Для этого, думаю, нужен отдельный пост.</p>
<p>Хочу написать, почему сам я бы никогда не взялся сделать конфу, которая будет позиционироваться, как мега-хардкорная техническая конфа, русский BlackHat.<br />
TL;DR &#8212; я вижу неустранимое противоречие в позиционировании и тактике формирования программной сетки.</p>
<p>Все остальное &#8212; мое мнение, которое, скорее всего, не будет совпадать с вашим на 100% =)</p>
<p><strong>Что такое хардкорная техническая конфа с точки зрения активностей?</strong></p>
<p>Хардкорные воркшопы, конкурсы с высоким уровнем вхождения участников, зона с недоступными в повседневной жизни девайсами (банкоматы, hardware village, lockpicking zone, etc.), секции с докладами. Все остальное (бар, Mortal Kombat и Atari, ток-шоу, ключевые докладчики) &#8212; важные атрибуты, но не вносящие вклад в слово &#171;хардкорная&#187;.<br />
Так вот, при вменяемом подходе (и мы это видели), у организаторов мероприятий в России нет никаких проблем с воркшопами, конкурсами и hack-зонами с мега-девайсами. </p>
<p>А вот как построить хардкорную секцию с докладами &#8212; непонятно.<br />
Для меня критерий хардкорности секции &#8212; это т.н. премиум контент, который доносит докладчик. У премиум контента есть важное свойство: он является премиум только в процессе своего первого донесения до аудитории. После публикации/рассказа &#8212; это уже просто полезный справочный материал, который должен быть изучен любым экспертом из соответствующей предметной области.<br />
Получается, что хардкорная конфа случится, если докладчики выдают свой качественный контент впервые.<br />
Рассмотрим вопросы:<br />
 &#8212; если у российского исследователя есть премиум контент, какое CFP он предпочтет &#8212; российского мероприятия или западного?<br />
 &#8212; если у иностранного исследователя есть премиум контент, есть ли варианты, при которых он предпочтет CFP российского мероприятия?<br />
Почему-то мне кажется, что мат ожидание ответа на первый вопрос будет &#171;западного&#187;, а на второй &#8212; &#171;только если ему уже дали reject&#8217;ы на других CFP&#187;. Причин тому масса, и виза &#8212; не последняя.</p>
<p>Выходит, при честном CFP вероятность роста числа заявок докладов с премиум-контентом от западных исследователей практически нулевая. </p>
<p>Как же тогда набирать программу?<br />
Есть вариант обращаться к знакомым топовым исследователям и просить подготовить новый доклад к конференции за деньги, выступить опять же за деньги.<br />
Второй вариант, который мы видели на ZN и PHD &#8212; приглашать с уже готовыми докладами, которые презентовались elsewhere. </p>
<p>Получается замкнутый круг:<br />
1. Чтобы на CFP откликнулись ведущие исследователи с новыми темами, для них cost-benefit анализ должен завершаться в пользу российского мероприятия.<br />
2. Для этого для иностранных исследователей плюсы должны превышать как минимум проблемы с визой и плюсы других аналогичных западных мероприятий. Если это не получаемое вознаграждение, а именно статусность мероприятия, то получаем п.3.<br />
3. Как повышать статусность мероприятия при отсутствии денег (аудитория идет только на статусные мероприятия, спонсоры идут на массовые мероприятия), если для создания этой статусности не приезжают ведущие докладчики?</p>
<p>Как вариант, сделать действительно русский BlackHat, ориентированный только на русскую аудиторию и приглашающий русских докладчиков, которые не могут в силу языка или невыездности (труЪ хакеры) ездить по западным конфам. </p>
<p>Т.е., резюмируя, как сделать реально хардкорную международную техническую конференцию в России &#8212; хрен его знает. Такие вот мысли.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2013/11/09/%d1%80%d0%b0%d0%b7%d0%bc%d1%8b%d1%88%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bd%d0%b0-%d1%82%d0%b5%d0%bc%d1%83-%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%be%d0%b3%d0%be-blackhat/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">798</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>Маркетинг @ Анализаторы исходного кода</title>
		<link>https://andrepetukhov.wordpress.com/2013/08/07/common-bullshit-about-static-analysers/</link>
					<comments>https://andrepetukhov.wordpress.com/2013/08/07/common-bullshit-about-static-analysers/#comments</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Tue, 06 Aug 2013 20:25:45 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[просто о сложном]]></category>
		<category><![CDATA[статический анализ]]></category>
		<category><![CDATA[scanners]]></category>
		<category><![CDATA[taint analysis]]></category>
		<category><![CDATA[taint propagation]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=784</guid>

					<description><![CDATA[По роду своей деятельности в последнее время сталкиваюсь с различными текстами, в которых прямо или с намеками обсуждаются преимущества тех или иных продуктов или подходов над другими. Речь идет о задаче статического анализа исходного кода с целью поиска недостатков, снижающих защищенность программного продукта (т.е. речь не идет о недостатках качества кода в общем смысле слова). [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>По роду своей деятельности в последнее время сталкиваюсь с различными текстами, в которых прямо или с намеками обсуждаются преимущества тех или иных продуктов или подходов над другими. Речь идет о задаче статического анализа исходного кода с целью поиска недостатков, снижающих защищенность программного продукта (т.е. речь не идет о недостатках качества кода в общем смысле слова).</p>
<p>Так как я человек впечатлительный и легко поддающийся на троллинг, решил написать своё ответное мнение в серии постов на тему &#171;Типичный булшит в якобы аналитических заметках про технологии анализа исходного кода&#187;. </p>
<p>Итак, сегодня &#8212; первая серия, и поговорим мы вот про какие заявления (встречаются в произвольной комбинации): &#171;сигнатурный анализ не может обеспечить полноту&#187;, &#171;сигнатурный анализ дает много ложных срабатываний&#187;, &#171;сигнатурный анализ хуже, чем анализ потоков данных&#187;, &#171;анализ потоков данных дает офигительную полноту при низком числе ложных срабатываний&#187;, &#171;о какой полноте может идти речь при наличии в базе N сигнатур&#187; и вот это вот всё.</p>
<p>Для тех, кто испугался объема, сразу выводы:</p>
<p>1. Все применяемые сейчас вида анализа кода &#8212; сигнатурные (в т.ч. taint анализ на основе потоков данных).</p>
<p>2. В свете п.1. сравнивать подходы и продукты по количеству сигнатур &#8212; нонсенс. Сигнатура может описывать как целый класс недостатков (например, input validation), так и один-единственный экземпляр (unserialize($_GET[.*])).</p>
<p>3. Про полноту и точность можно говорить только после фиксирования класса недостатков (например, input validation). Полноты &#171;вообще&#187; &#8212; не существует. В свете разговора про каждый класс недостатков на первое место выходит формальная модель описания недостатка. По факту, сейчас почти всегда используется модель невмешательства (aka taint). Данная модель описывает только уязвимости класса input validation. Она бесполезна для недостатков авторизации. Полнота, говорите?</p>
<p>4. Даже в рамках одного класса недостатков, например, input validation, существующая модель невмешательства не может обеспечить не только полноту, но и даже приемлемую точность. Ограничения модели невмешательства расписаны вот <a href="http://andrewpetukhov.blogspot.ru/2010/04/limitations-of-taint-propagation.html" target="_blank">тут</a> (англ).</p>
<p><span id="more-784"></span><br />
Итак, начнем. </p>
<p>В задаче анализа исходного кода просто необходимо выделять существенные составляющие.<br />
Первая ключевая составляющая &#8212; это представление программы, на котором происходит анализ. Типичные представления будут такими: текст программы, поток лексем, дерево синтаксического разбора (AST), граф потоков управления (CFG), графы зависимостей по данным (SDG, PDG), набор состояний (например, значений переменных) в каждой точке, собранный бинарник.</p>
<p>Вторая ключевая составляющая &#8212; модель недостатка или то, как формулируется искомое свойство в терминах выбранного представления программы. Кому интересно, может почитать подробнее про это вот <a href="https://andrepetukhov.wordpress.com/2010/04/23/%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d0%b8-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b5%d0%b9-%d0%b2-%d0%b2%d0%b5%d0%b1-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f%d1%85/" title="Модели уязвимостей, используемые в статическом и динамическом анализе" target="_blank">тут</a>.</p>
<p>Первый вывод: статический анализ на основе потоков данных &#8212; тоже сигнатурный (упс!!!). Действительно, для поиска недостатка необходимо специфицировать, какой подграф в графе программы надо найти. Для модели Non Interference (aka taint) это будет граф зависимости вида &lt;получение данных от пользователя&gt; -&gt; &lt;использование в критичной функции без предварительной обработки&gt;. Но это же сигнатура!</p>
<p>Второй вывод: &#171;о какой полноте может идти речь при наличии в базе N сигнатур&#187; &#8212; бред с той точки зрения, что одна сигнатура может описывать как целый класс недостатков, так и вполне конкретный экземпляр недостатка. Соответственно, сравнение (и характеристика) подходов и продуктов по количеству сигнатур &#8212; нонсенс. </p>
<p>На этом месте справедливо было бы поставить такой вопрос: хорошо, но может представление прямо или косвенно влияет на выразительную силу сигнатур, которые для него создаются? Т.е., например, в представлении потока лексем нет понятия &#171;зависимость&#187;, а следовательно нельзя формулировать и правила в терминах зависимостей; напротив, понятие &#171;зависимость&#187; &#8212; основа для представлений класса System или Program Dependence Graph, и там правила, использующие это понятие, будут работать. </p>
<p>В итоге, логично предположить, что доступные концепты для формулирования недостатков повлияют на полноту анализа. И, что характерно, все так и есть. Однако, многие забывают о важнейшем факте: при построении представления более высокого уровня абстракции делаются некоторые предположения и обобщения, которые прямо влияют на точность описания свойств программы в этом самом представлении. Т.е. свойства для поиска еще не сформулированы, анализ еще не начат, а точность уже потерялась.</p>
<p>Теперь давайте разберем этап формулирования искомых свойств. Логично, что недостатки объединяются в классы по схожести их проявления в коде. Соответственно, для класса схожих недостатков формулируется его модельное описание. Напомню, что про модели недостатков написано вот <a href="https://andrepetukhov.wordpress.com/2010/04/23/%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d0%b8-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b5%d0%b9-%d0%b2-%d0%b2%d0%b5%d0%b1-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f%d1%85/" title="Модели уязвимостей, используемые в статическом и динамическом анализе" target="_blank">тут</a>. Перейдем к рассуждения про полноту и точность.</p>
<p>[Manipulation mode on]<br />
Любому здравомыслящему человеку должно быть очевидно, что полнота поиска уязвимостей вообще &#8212; бесполезнейшая характеристика, которую к тому же невозможно измерить. [Manipulation mode off]</p>
<p>В общем, меряться полнотой и точностью можно только в рамках зафиксированного класса недостатков. Например, в рамках класса input validation, или более гранулярного &#8212; sql injection, или класса другой категории &#8212; authorization flaws или memory leakage в контексте DoS. Давайте же зафиксируем класс и померяемся полнотой и точностью. </p>
<p>В посыле поста звучало про анализ потоков данных (&#171;анализ потоков данных дает офигительную полноту при низком числе ложных срабатываний&#187;). Хорошо, зафиксируем класс недостатков input validation. Учитывая, что для описания этого класса используется модель невмешательства (aka taint), которая сформулирована в терминах зависимостей по данным, то недостатки этого класса просто созданы для анализа потоков данных! Ура! Полнота! Точность! Да, но нет. </p>
<p>Убыль в точности я отметил уже на этапе построения представления. Другая убыль в точности &#8212; это ограничения модели невмешателсьтва (подробности <a href="http://andrewpetukhov.blogspot.ru/2010/04/limitations-of-taint-propagation.html" target="_blank">тут</a>). Плюс, не забываем про убыль в полноте за счет невоможности поиска межмодульных уязвимостей (stored XSS, second order sql injection). Конечно, всегда, можно скатиться в 100% полноту, пометив все строчки недостатками, но этот вариант мы не рассматриваем.</p>
<p>В отличие от ортодоксального научного подхода к поиску недостатков класса input validation, есть еще рабоче-крестьянский, который практикуют многие аудиторы кода &#8212; регулярные выражения и grep. Тут кто-то должен сказать про работу из коробки vs необходимость эксперта. Да, но это уже тема совершенно другого поста. Если же говорить про сравнение по точности, регулярные выражения и grep очевидно способны зарулить подход на основе модели невмешательства и анализа потоков данных. В общем, как говорят у нас в МГИМО &#8212; for whom how.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2013/08/07/common-bullshit-about-static-analysers/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">784</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>[Константин Безносов @ МГУ] Вопросы безопасности и конфиденциальности в современных социальных сетях</title>
		<link>https://andrepetukhov.wordpress.com/2013/06/16/security-and-privacy-in-social-networks/</link>
					<comments>https://andrepetukhov.wordpress.com/2013/06/16/security-and-privacy-in-social-networks/#comments</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Sun, 16 Jun 2013 12:26:30 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[обучение]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=779</guid>

					<description><![CDATA[Приглашаем всех желающих посетить лекцию Константина Безносова из Университета Британской Колумбии по теме &#171;Security and Privacy in Online Social Networks&#187;, которая состоится на факультете ВМК МГУ 25 июня в 12:00. Аннотация. Каждый месяц Фейсбуком пользуются больше людей чем жителей любой страны мира, за исключением Китая и Индии. Более того, эти пользователи проводят там порядка получаса [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Приглашаем всех желающих посетить лекцию Константина Безносова из Университета Британской Колумбии по теме &#171;Security and Privacy in Online Social Networks&#187;, которая состоится на факультете ВМК МГУ 25 июня в 12:00.</p>
<p><strong>Аннотация.</strong> Каждый месяц Фейсбуком пользуются больше людей чем жителей любой страны мира, за исключением Китая и Индии. Более того, эти пользователи проводят там порядка получаса каждый день, просматривая чужие или обновляя свои статусы, или просто &#171;тусясь&#187;. Поэтому не удивительно, что социальные сети привлекают огромное внимание широкой и разносортной публики. К примеру, в 2011 активисты &#171;Арабской весны&#187; использовали социальные сети как средство коммуникаций, а в 2012 году американский президент Обама во время перевыборных собрал $690 миллионов через социальные сети. Не обошли стороной социальные сети и разного рода организации (коммерческие и правовые), которые, законно и не очень &#171;проталкивают&#187; свои услуги и товары, или собирают информацию по интересующих им пользователям. Такое множество заинтересованных лиц остро ставит интригующий и спорный вопрос безопасности и конфиденциальности в современных социальных сетях. В данной лекции будет проведён обзор международных исследований по этому вопросу, опубликованных за последние 5 лет. Материал лекции предназначен для широкой аудитории. Лекция будет на английском языке, вопросы и ответы <em>могут быть</em> на русском.</p>
<p><strong>О лекторе: </strong><br />
<a href="http://www.ece.ubc.ca/~beznosov" target="_blank">Konstantin Beznosov</a>, Associate Professor in <a href="http://lersse.ece.ubc.ca" target="_blank">Laboratory for Education and Research in Secure Systems Engineering</a>, Department of Electrical and Computer Engineering, University of British Columbia </p>
<p>Био: <a href="http://konstantin.beznosov.net/professional/bio" rel="nofollow">http://konstantin.beznosov.net/professional/bio</a></p>
<p>Как обычно, для прохода в МГУ понадобится пропуск МГУ, либо можно пройти по паспорту, прислав предварительно мне (petandr на gmail.com) или Денису Гамаюнову (gamajun на cs.msu.su) полные фамилию, имя и отчество.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2013/06/16/security-and-privacy-in-social-networks/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">779</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>Наука, инновации, статический анализ и РусКрипто 2013</title>
		<link>https://andrepetukhov.wordpress.com/2013/03/22/%d1%80%d1%83%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82%d0%be-2013/</link>
					<comments>https://andrepetukhov.wordpress.com/2013/03/22/%d1%80%d1%83%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82%d0%be-2013/#comments</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Thu, 21 Mar 2013 21:00:41 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[конференции]]></category>
		<category><![CDATA[статический анализ]]></category>
		<category><![CDATA[scanners]]></category>
		<category><![CDATA[taint analysis]]></category>
		<category><![CDATA[taint propagation]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=770</guid>

					<description><![CDATA[В этом году на горячо любимой мной конференции РусКрипто впервые за ее историю состоится отдельная секция по анализу кода &#8212; «Анализ кода и технологии защиты: динамический и статистический анализ, виртуализация кода, исследование на недекларированные возможности». Судя по аннотациям докладов, ожидаются как выступления с научными результатами, так и с передачей опыта или суммы знаний по конкретным [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>В этом году на горячо любимой мной <a href="http://ruscrypto.org/conference/program/" target="_blank">конференции РусКрипто</a> впервые за ее историю состоится отдельная секция по анализу кода &#8212; <a href="http://ruscrypto.org/conference/program/protection-technologies/" target="_blank">«Анализ кода и технологии защиты: динамический и статистический анализ, виртуализация кода, исследование на недекларированные возможности»</a>.</p>
<p>Судя по аннотациям докладов, ожидаются как выступления с научными результатами, так и с передачей опыта или суммы знаний по конкретным задачам предметной области (мои любимые типы докладов).</p>
<p>А вот и расширенная аннотация моего доклада. <span id="more-770"></span></p>
<p><strong>Обнаружение уязвимостей логики приложений методом статического анализа: где правда, где реклама?</strong></p>
<p>Недостатки, влияющие на качество (и безопасность) приложений, можно условно поделить на две группы: типичные недостатки и специфичные недостатки (англ. application specific). Далее речь пойдет исключительно о недостатках, влияющих на безопасность приложения.</p>
<p>К типичным недостаткам относятся недостатки, возникающие вследствие некорректного использование какого-либо известного API, функций стандартной библиотеки, конструкций языка и т.д. Примерами типичных недостатков являются различные переполнения, уязвимости форматной строки, разыменование нулевого указателя, возможность внедрения операторов SQL (SQL injection), возможность внедрения кода на языке Javascript (XSS) и т.п. Для обнаружения подобных недостатков подходят известные модели, основанные на потоках данных (например, модель non-interference, которая после была адаптирована в т.н. taint analysis), или классические задачи статического анализа (например, анализ возможных значений переменных).</p>
<p>К специфичным недостаткам принято относить все недостатки в реализации логики приложения. Другими словами, если для описания недостатка словами используются термины из предметной области приложения, то такой недостаток является специфичным.<br />
Примерами таких недостатков являются в первую уязвимости контроля доступа, уязвимости, связанные с недостаточным контролем последовательности шагов в сценариях использования (Insufficient Process Validation), а также логические бомбы с другими НДВ.</p>
<p>Основная проблема поиска специфичных ошибок статически &#8212; невозможность построить общую формальную модель для данного типа недостатков, применимую не только для конкретного приложения, но хотя бы для некоторых других. Построение формальной модели для конкретного приложения сводит решение рассматриваемой задачи поиска специфичных недостатков к верификации приложения, что зачастую неоправданно дорого. </p>
<p>С методической точки зрения задачу поиска специфичных уязвимостей на западе решают в научных кругах (по крайней мере, для веб-приложения) с 2008 года. Достаточно привести в пример такие работы, как <a href="http://www.usenix.org/event/sec10/tech/full_papers/Felmetsger.pdf" target="_blank">&#171;Toward automated detection of logic vulnerabilities in web applications&#187;</a>, <a href="http://rap.dsi.unifi.it/sensoria/files/BodeiBB09.pdf" target="_blank">&#171;Static detection of logic flaws in service-oriented applications&#187;</a>, <a href="http://static.usenix.org/event/sec11/tech/full_papers/Sun.pdf" target="_blank">&#171;Static detection of access control vulnerabilities in web applications&#187;</a> и др. С практической же точки зрения дела обстоят намного интереснее: многие автоматизированные средства (статические анализаторы) поиска недостатков безопасности в коде заявляют, что умеют находить в приложениях не только типичные недостатки, но и специфичные. </p>
<p>В докладе будут кратко рассмотрены типы существующих статических анализаторов (сигнатурные/основанные на потоковых моделях/основанные на абстрактной интерпретации и др.) и представления программ, на которых они работают (текст/набор лексем/AST/граф потоков управления/граф зависимостей по данным/автоматы состояний приложения и др.). После этого будет проведена подробная аргументированная оценка справедливости их высказываний о своих возможностях по поиску специфичных недостатков безопасности в приложениях. Если кратко, то ни одно автоматизированное средство не может находить специфичные недостатки безопасности хоть со сколь-нибудь приемлемым качеством без серьезного участия оператора (например, аннотирования). </p>
<p>В продолжение анализа будет описана роль человека и ручного анализа в задачах а) <strong>дешевого</strong> поиска специфичных уязвимостей; б) максимально <strong>полного</strong> поиска специфичных уязвимостей. Здесь же будет представлена наша методика поиска подобных ошибок на примере поиска ошибок контроля доступа: задача будет декомпозирована на шаги, для каждого из которых будет указано, что можно сделать автоматически и как, а что &#8212; только вручную.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2013/03/22/%d1%80%d1%83%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82%d0%be-2013/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">770</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
		<item>
		<title>PHDays Young School 2013</title>
		<link>https://andrepetukhov.wordpress.com/2013/02/22/phd-young-school-2013/</link>
					<comments>https://andrepetukhov.wordpress.com/2013/02/22/phd-young-school-2013/#comments</comments>
		
		<dc:creator><![CDATA[Andrew Petukhov]]></dc:creator>
		<pubDate>Fri, 22 Feb 2013 08:06:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[конференции]]></category>
		<guid isPermaLink="false">http://andrepetukhov.wordpress.com/?p=762</guid>

					<description><![CDATA[Аналитическое мышление лучше отсутствия мышления наличием мышления. Еще великий Цицерон в первом веке до нашей эры сказал &#171;Times are bad. Children no longer obey their parents, and everyone is writing a book&#187;, что можно перевести примерно так: &#171;Лихие времена настали: дети перестали слушаться отцов; каждый строчит статьи в Интернет&#187;. В целом же, у молодого исследователя [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Аналитическое мышление лучше отсутствия мышления наличием мышления. Еще великий Цицерон в первом веке до нашей эры сказал &#171;Times are bad. Children no longer obey their parents, and everyone is writing a book&#187;, что можно перевести примерно так: &#171;Лихие времена настали: дети перестали слушаться отцов; каждый строчит статьи в Интернет&#187;. В целом же, у молодого исследователя есть выбор &#8212; либо, выражаясь сленгом автомобилистов, &#171;не смотреть в зеркала&#187;, сделать кучу &#171;открытий&#187;, стать Звездой списков рассылок и написать свою серию статей &#171;Откровения&#187;, либо же провести маленькое, но полезное исследование, выбрав себе задачу, решение которой даст миру еще один шанс.</p>
<p>В 2012 года в рамках форума Positive Hack Days 2012 состаялась <a href="http://2012.phdays.ru/program/ys/" target="_blank">первая версия конкурса Young School</a>. Небезынтересная статистика следует ниже.</p>
<p>Всего на конкурс поступило 19 заявок от резидентов следующих стран (порядок перечисления соответствует количеству заявок): Россия, Казахстан.</p>
<p>География заявителей по городам: Новосибирск, Санкт-Петербург, Москва, Красноярск, Таганрог, Костанай, Самара.</p>
<p>География заявителей по организациям: Новосибирский Государственный Университет, Московский государственный горный университет, Сибирский Государственный Аэрокосмический Университет им. М.Ф. Решетнева (СибГАУ), МИФИ, Таганрогский технологический институт Южного Федерального Университета, МГУ имени М.В.Ломоносова, Костанайский государственный университет имени Ахмета Байтурсынова, Самарский государственный аэрокосмический университет имени академика С.П. Королёв, Департамент информационных технологий ФГУП «ЦНИИ ЭИСУ» Министерства обороны РФ Москва, СПИИРАН.</p>
<p>Направления исследований, по которым пришли заявки:<br />
 &#8212; борьба с почтовым спамом;<br />
 &#8212; криптография;<br />
 &#8212; моделирование;<br />
 &#8212; обнаружение атак;<br />
 &#8212; поиск уязвимостей и анализ защищенности;<br />
 &#8212; управление информационной безопасностью;<br />
 &#8212; обратная инженерия в задачах информационной безопасности.</p>
<p><a href="http://2012.phdays.ru/program/ys/finalists/" target="_blank">В финал</a> вышли 4 работы в конкурсной сетке и 4 интересные работы вне конкурса. Эти работы были представлены непосредственно на форуме. Кроме того, один из членов программного комитета, Павел Ласков из Дармштадского Технического Университета (Германия), выступил с результатами своего исследования по обнаружению вредоносных PDF-документов.</p>
<p><a href="http://2012.phdays.ru/program/ys/winners/" target="_blank">Победителями были признаны</a> две работы (если кому интересно ознакомиться с этими работами, пишите &#8212; пришлю):<br />
 &#8212; работа Дарьи Кавчук (Таганрогский технологический институт ЮФУ) на тему «Метод оптимизации автоматической проверки уязвимостей удаленных информационных систем»;<br />
 &#8212; и работа Анастасии Щербининой (факультет ВМК МГУ) на тему «Обнаружение полиморфного шелл-кода на основе подобия».</p>
<p>Теперь коротко об удачах и неудачах (куда без них) первой версии.</p>
<p>Неудачи: неразбериха с объявлением победителей и вручением призов на церемонии закрытия форума; переносы сроков публикаций тезисов. </p>
<p>Удачи:<br />
 &#8212; высокое качество исcледований, представленных на форуме;<br />
 &#8212; успешное решение логистических и финансовых вопросов по доставке заявителей, их научных руководителей и рецензентов в Москву и на форум (это полностью заслуга Positive Technologies, которые сработали отлично);<br />
 &#8212; принятие ВСЕХ восьми отобранных работ к публикации в ВАКовском журнале &#171;БИТ&#187; (было повторное рецензирование ред. коллегией); это значит, что программный комитет также сработал на отлично; по словам редакции, тезисы будут опубликованы в первом номере 2013 года.</p>
<p>И вот теперь 2013 год и <a href="http://phdays.ru/program/ys/" target="_blank">вторая серия конкурса Young School</a>. Постараемся устранить все неудачи прошлого года, а также расширить и углубить прошлогодний список бонусов и плюшек.</p>
<p>Еще не поздно прислать нам заявку! Большая просьба к уважаемым читателям распространить данное приглашение к конкурсу среди заинтересованных лиц. Большое человеческое спасибо!</p>
<p>p.s. Ходят слухи, что как и во всех академических CFP, дедлайн подачи заявок в самый последний момент отодвинут на две недели&#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andrepetukhov.wordpress.com/2013/02/22/phd-young-school-2013/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">762</post-id>
		<media:content url="https://0.gravatar.com/avatar/3900009b9e4d4541ce1a19c25c4fc6b10a23213e5e478eac5afb2445c77ebea0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">andrewpetukhov</media:title>
		</media:content>
	</item>
	</channel>
</rss>
