SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
Общая модель аутентификации
HTTP-сообщений на основе хэш-
функций в веб-приложениях
Денис Колегов, Николай Ткаченко
Кафедра защиты информации и криптографии
Томский государственный университет
Positive Hack Days IV
21 – 22 мая 2014
Актуальность работы
• Протокол HTTP не имеет встроенных механизмов
аутентификации сообщений
• Аутентификация HTTP-сообщений
– Аутентичность источника запроса
– Целостность имен и значений параметров
• OWASP TOP 10 2013
– A4 – Insecure Direct Object Reference
– A7 – Missing Function Level Access Control
– A8 – Cross-Site Request Forgery (CSRF)
• Дополнительные возможности
– Уменьшение поверхности атак на приложение
– Противодействие средствам автоматизации 2
Пример 1
3
Пример 2
• Атака <BASE> jumping
<base href='http://evil.com/'> ← HTML-инъекция
<form action=‘create_folder.php'>
<input type=“hidden" name=“csrf_token“ value=“21312”>…
</form>
• Выполняется запрос
http://evil.com/create_folder.php?csrf_token=21312
• Использование полученного токена в другом
контексте
http://example.com/admin/delete_account.php?csrf_token=21312
4
Известные механизмы
• «Подписи запросов» API
– Yahoo, Amazon S3, Facebook
• WAF
– Trustwave ModSecurity: HMAC Token Protection
– F5 Networks ASM: Dynamic Content Value
• ASP.NET
– Event Validation
– View State MAC
5
Научная новизна
• Разработана модель аутентификации HTTP-сообщений в
рамках модели ABAC
• Предложен общий метод аутентификации сообщений,
позволяющий контролировать и валидировать данные,
генерируемые на клиентской стороне
• Построен протокол аутентификации сообщений,
адаптированный для применения в веб-приложениях
– Хранение данных в сессии
– Хранение данных на стороне клиента
6
Аутентификатор
• Аутентификатор – это строка, вычисленная по атрибутам
объекта доступа в соответствии с политикой безопасности
• Auth = {упорядоченный список имен параметров} ||
{cписок (имя параметра = значение) ||
список (имя параметра = #)} ||
идентификатор пользователя ||
идентификатор ресурса ||
операция
• Атрибут объекта mac = h(kr, auth, time)
7
Метод построения
1. Построить список L параметров запроса к объекту O
2. Если параметры из списка L являются контролируемыми по
имени, то положить auth = auth || i1 ||… || im, где {i1, …, im} –
упорядоченное множество имен параметров
3. Для каждого контролируемого по значению параметру lL
положить auth = auth || l || Permit_Value(O, l) и удалить его из L
4. Для каждого валидируемого параметра lL положить auth = auth
|| l || ([Permit_Value(O, l)] / Permit_Alphabet) и удалить его из L
5. Положить auth = auth || IDs || IDr || op
8
• Элементы модели
– Операции – методы GET, POST, PUT, DELETE
– Объекты – URI
– Атрибуты объектов – параметры доступа к объекту
– Субъект-сессии – HTTP-запросы к объектам
– Атрибуты субъектов – параметры и заголовки запроса
• Предикат доступа
– Доступ субъект-сессии к объекту разрешен, если и только
если аутентификатор, построенный по атрибутам объекта,
равен аутентификатору, построенному по атрибутам
субъект-сессии
Модель ABAC
9
Протокол
• Параметры протокола
– k – долговременный ключ сервера
– kr – одноразовый случайный ключ сервера
– IDr – идентификатор защищаемого ресурса
– IDs – идентификатор пользователя
– LP – политика безопасности
– time – текущее значение времени
• Действия протокола (IDs, IDr)
– Client → Server: начальный запрос с IDs к ресурсу
– Client ← Server: описание объекта O с атрибутами mac = h(kr,
auth, time), Ek(LP , time, kr)
– Client → Server: запрос с IDs’ к IDr’, mac, Ek(LP, time, kr)
10
Возможности
• Контроль целостности имен и значений параметров
• Базовая валидация значений параметров в заданном алфавите
• Базовая авторизация пользователей
• Независимость от устойчивых и разделяемых сессий
• Защита от атак класса CSRF
• Защита CSRF-токенов
– время жизни – защита от атак повтора
– рандомизация – защита от атак BREACH
– контекст – защита от атак утечки 11
Proof of concept
• Django
• Механизм защиты веб-форм
• Предположения
– Использование метода POST для отправки формы
– Защита только критичных веб-форм
• Режимы
– Stateless
– Stateful
• Адрес проекта
– https://github.com/tsu-iscd/django-HTTPauth 12
Схема взаимодействия
13
Описание политики
auth_policy = {
“object”: “регулярное выражение”,
“subject”: “имя идентификатора пользователя”,
“name_protection”: True | False,
“replay_protection”: {
“enable”: True | False,
“interval”: “значение”},
“parameter_protection”: {
“имя параметра”: {
“value”: “значение” | “регулярное выражение”,
“action”: “control” | “validate”}, … }
} 14
Пример политики
class ClientForm(forms.Form):
product = forms.CharField(initial='Test')
price = forms.IntegerField()
policy = {'object':'http://127.0.0.1:8000/add/',
'name_protection' : False,
'replay_protection': {
'enable':True,
'interval':'30' },
'parameter_protection': {
‘product': {
'action':'validate',
'value':'[A-Za-z]+'},
'price': {
'action':'control',
'value' : '200' }}}
15
Пример формы
16
Заключение
• Построена модель аутентификации HTTP-сообщений в
рамках модели ABAC
• Предложен общий метод аутентификации сообщений,
позволяющий контролировать и валидировать данные,
генерируемые на клиентской стороне
• Реализован прототип механизма защиты веб-форм в
Django
– Контроль целостности имен и значений параметров, а также их
валидация в заданном алфавите
– Базовая авторизация пользователей
– Независимость от устойчивых и разделяемых сессий
– Защита от атак класса CSRF
17
Благодарю за внимание!
Вопросы?
Колегов Денис
Доцент кафедры защиты информации и криптографии
Томский государственный университет
E-mail: dnkolegov@gmail.com
Николай Ткаченко
Аспирант кафедры защиты информации и криптографии
Томский государственный университет
E-mail: notkachenko@gmail.com
18

Contenu connexe

En vedette

Медиавозможности HTML5. WebRTC
Медиавозможности HTML5. WebRTCМедиавозможности HTML5. WebRTC
Медиавозможности HTML5. WebRTCoelifantiev
 
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...Denis Kolegov
 
О построении иерархического ролевого управления доступом (SibeCrypt 2012)
О построении иерархического ролевого управления доступом (SibeCrypt 2012)О построении иерархического ролевого управления доступом (SibeCrypt 2012)
О построении иерархического ролевого управления доступом (SibeCrypt 2012)Denis Kolegov
 
Общая модель аутентификации HTTP-сообщений на основе хэш- функций в веб-прил...
Общая модель аутентификации  HTTP-сообщений на основе хэш- функций в веб-прил...Общая модель аутентификации  HTTP-сообщений на основе хэш- функций в веб-прил...
Общая модель аутентификации HTTP-сообщений на основе хэш- функций в веб-прил...Positive Hack Days
 
Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...oelifantiev
 
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...Denis Kolegov
 
Нетривиальная обработка ошибок
Нетривиальная обработка ошибокНетривиальная обработка ошибок
Нетривиальная обработка ошибокoelifantiev
 
ES6. Генераторы
ES6. ГенераторыES6. Генераторы
ES6. Генераторыoelifantiev
 
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузереВозможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузереPositive Hack Days
 
Модель распространения прав доступа Take-Grant
Модель распространения прав доступа Take-GrantМодель распространения прав доступа Take-Grant
Модель распространения прав доступа Take-Grantkzissu
 
Метод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных именМетод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных именPositive Hack Days
 
Yarfrontend #2. Useful services
Yarfrontend #2. Useful servicesYarfrontend #2. Useful services
Yarfrontend #2. Useful servicesoelifantiev
 
Пишем Google Extensions. Начальный уровень
Пишем Google Extensions. Начальный уровеньПишем Google Extensions. Начальный уровень
Пишем Google Extensions. Начальный уровеньoelifantiev
 
General Method of HTTP Messages Authentication Based on Hash Functions in Web...
General Method of HTTP Messages Authentication Based on Hash Functions in Web...General Method of HTTP Messages Authentication Based on Hash Functions in Web...
General Method of HTTP Messages Authentication Based on Hash Functions in Web...Denis Kolegov
 
Tessel. JavaScript на реальных устройствах.
Tessel. JavaScript на реальных устройствах. Tessel. JavaScript на реальных устройствах.
Tessel. JavaScript на реальных устройствах. oelifantiev
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
Development and Implementation of Mandatory Access Control Policy for RDBMS M...
Development and Implementation of Mandatory Access Control Policy for RDBMS M...Development and Implementation of Mandatory Access Control Policy for RDBMS M...
Development and Implementation of Mandatory Access Control Policy for RDBMS M...Denis Kolegov
 
Covert Timing Channels using HTTP Cache Headers
Covert Timing Channels using HTTP Cache HeadersCovert Timing Channels using HTTP Cache Headers
Covert Timing Channels using HTTP Cache HeadersDenis Kolegov
 
SibirCTF 2016. Практические методы защиты веб-приложений
SibirCTF 2016. Практические методы защиты веб-приложенийSibirCTF 2016. Практические методы защиты веб-приложений
SibirCTF 2016. Практические методы защиты веб-приложенийDenis Kolegov
 

En vedette (20)

ZN27112015
ZN27112015ZN27112015
ZN27112015
 
Медиавозможности HTML5. WebRTC
Медиавозможности HTML5. WebRTCМедиавозможности HTML5. WebRTC
Медиавозможности HTML5. WebRTC
 
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
 
О построении иерархического ролевого управления доступом (SibeCrypt 2012)
О построении иерархического ролевого управления доступом (SibeCrypt 2012)О построении иерархического ролевого управления доступом (SibeCrypt 2012)
О построении иерархического ролевого управления доступом (SibeCrypt 2012)
 
Общая модель аутентификации HTTP-сообщений на основе хэш- функций в веб-прил...
Общая модель аутентификации  HTTP-сообщений на основе хэш- функций в веб-прил...Общая модель аутентификации  HTTP-сообщений на основе хэш- функций в веб-прил...
Общая модель аутентификации HTTP-сообщений на основе хэш- функций в веб-прил...
 
Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...
 
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
 
Нетривиальная обработка ошибок
Нетривиальная обработка ошибокНетривиальная обработка ошибок
Нетривиальная обработка ошибок
 
ES6. Генераторы
ES6. ГенераторыES6. Генераторы
ES6. Генераторы
 
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузереВозможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
 
Модель распространения прав доступа Take-Grant
Модель распространения прав доступа Take-GrantМодель распространения прав доступа Take-Grant
Модель распространения прав доступа Take-Grant
 
Метод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных именМетод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных имен
 
Yarfrontend #2. Useful services
Yarfrontend #2. Useful servicesYarfrontend #2. Useful services
Yarfrontend #2. Useful services
 
Пишем Google Extensions. Начальный уровень
Пишем Google Extensions. Начальный уровеньПишем Google Extensions. Начальный уровень
Пишем Google Extensions. Начальный уровень
 
General Method of HTTP Messages Authentication Based on Hash Functions in Web...
General Method of HTTP Messages Authentication Based on Hash Functions in Web...General Method of HTTP Messages Authentication Based on Hash Functions in Web...
General Method of HTTP Messages Authentication Based on Hash Functions in Web...
 
Tessel. JavaScript на реальных устройствах.
Tessel. JavaScript на реальных устройствах. Tessel. JavaScript на реальных устройствах.
Tessel. JavaScript на реальных устройствах.
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
Development and Implementation of Mandatory Access Control Policy for RDBMS M...
Development and Implementation of Mandatory Access Control Policy for RDBMS M...Development and Implementation of Mandatory Access Control Policy for RDBMS M...
Development and Implementation of Mandatory Access Control Policy for RDBMS M...
 
Covert Timing Channels using HTTP Cache Headers
Covert Timing Channels using HTTP Cache HeadersCovert Timing Channels using HTTP Cache Headers
Covert Timing Channels using HTTP Cache Headers
 
SibirCTF 2016. Практические методы защиты веб-приложений
SibirCTF 2016. Практические методы защиты веб-приложенийSibirCTF 2016. Практические методы защиты веб-приложений
SibirCTF 2016. Практические методы защиты веб-приложений
 

Similaire à Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-приложениях

Владимир Кочетков "OWASP TOP 10 для.NET"
Владимир Кочетков  "OWASP TOP 10 для.NET"Владимир Кочетков  "OWASP TOP 10 для.NET"
Владимир Кочетков "OWASP TOP 10 для.NET"MskDotNet Community
 
Blackbox-тестирование веб-приложений
Blackbox-тестирование веб-приложенийBlackbox-тестирование веб-приложений
Blackbox-тестирование веб-приложенийbeched
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложенияMaxim Krentovskiy
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Ontico
 
Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Positive Hack Days
 
Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Denis Kolegov
 
OAuthоризация и API социальных сетей
OAuthоризация и API социальных сетейOAuthоризация и API социальных сетей
OAuthоризация и API социальных сетейАртём Курапов
 
Web весна 2012 лекция 11
Web весна 2012 лекция 11Web весна 2012 лекция 11
Web весна 2012 лекция 11Technopark
 
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеАлександр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеKaspersky
 
Dv w2k-sec-concepts
Dv w2k-sec-conceptsDv w2k-sec-concepts
Dv w2k-sec-conceptstrenders
 
OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.EatDog
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?phpdevby
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptPositive Hack Days
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. ОсновыPositive Hack Days
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 
Виталий Каторгин, Wamba
Виталий Каторгин, WambaВиталий Каторгин, Wamba
Виталий Каторгин, WambaOntico
 
Сетевая безопасность в электронном обучении. Опыт Казанского федерального ун...
 Сетевая безопасность в электронном обучении. Опыт Казанского федерального ун... Сетевая безопасность в электронном обучении. Опыт Казанского федерального ун...
Сетевая безопасность в электронном обучении. Опыт Казанского федерального ун...Ramil Valitov
 

Similaire à Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-приложениях (20)

Владимир Кочетков "OWASP TOP 10 для.NET"
Владимир Кочетков  "OWASP TOP 10 для.NET"Владимир Кочетков  "OWASP TOP 10 для.NET"
Владимир Кочетков "OWASP TOP 10 для.NET"
 
Blackbox-тестирование веб-приложений
Blackbox-тестирование веб-приложенийBlackbox-тестирование веб-приложений
Blackbox-тестирование веб-приложений
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
 
Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...
 
Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...
 
Sphinx
SphinxSphinx
Sphinx
 
OAuthоризация и API социальных сетей
OAuthоризация и API социальных сетейOAuthоризация и API социальных сетей
OAuthоризация и API социальных сетей
 
BPMonline OData
BPMonline ODataBPMonline OData
BPMonline OData
 
Web весна 2012 лекция 11
Web весна 2012 лекция 11Web весна 2012 лекция 11
Web весна 2012 лекция 11
 
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеАлександр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
 
Dv w2k-sec-concepts
Dv w2k-sec-conceptsDv w2k-sec-concepts
Dv w2k-sec-concepts
 
OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. Основы
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
Виталий Каторгин, Wamba
Виталий Каторгин, WambaВиталий Каторгин, Wamba
Виталий Каторгин, Wamba
 
Сетевая безопасность в электронном обучении. Опыт Казанского федерального ун...
 Сетевая безопасность в электронном обучении. Опыт Казанского федерального ун... Сетевая безопасность в электронном обучении. Опыт Казанского федерального ун...
Сетевая безопасность в электронном обучении. Опыт Казанского федерального ун...
 
SSO & MFA
SSO & MFASSO & MFA
SSO & MFA
 

Plus de Denis Kolegov

Database Firewall from Scratch
Database Firewall from ScratchDatabase Firewall from Scratch
Database Firewall from ScratchDenis Kolegov
 
F5 BIG-IP Misconfigurations
F5 BIG-IP MisconfigurationsF5 BIG-IP Misconfigurations
F5 BIG-IP MisconfigurationsDenis Kolegov
 
SibeCrypt 2016. Практические методы защиты веб-приложений
SibeCrypt 2016. Практические методы защиты веб-приложенийSibeCrypt 2016. Практические методы защиты веб-приложений
SibeCrypt 2016. Практические методы защиты веб-приложенийDenis Kolegov
 
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...Denis Kolegov
 
Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 1...
Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 1...Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 1...
Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 1...Denis Kolegov
 
Covert Timing Channels using HTTP Cache Headers
Covert Timing Channels using HTTP Cache HeadersCovert Timing Channels using HTTP Cache Headers
Covert Timing Channels using HTTP Cache HeadersDenis Kolegov
 

Plus de Denis Kolegov (7)

Database Firewall from Scratch
Database Firewall from ScratchDatabase Firewall from Scratch
Database Firewall from Scratch
 
F5 BIG-IP Misconfigurations
F5 BIG-IP MisconfigurationsF5 BIG-IP Misconfigurations
F5 BIG-IP Misconfigurations
 
SibeCrypt 2016. Практические методы защиты веб-приложений
SibeCrypt 2016. Практические методы защиты веб-приложенийSibeCrypt 2016. Практические методы защиты веб-приложений
SibeCrypt 2016. Практические методы защиты веб-приложений
 
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
 
Codefest2015
Codefest2015Codefest2015
Codefest2015
 
Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 1...
Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 1...Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 1...
Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 1...
 
Covert Timing Channels using HTTP Cache Headers
Covert Timing Channels using HTTP Cache HeadersCovert Timing Channels using HTTP Cache Headers
Covert Timing Channels using HTTP Cache Headers
 

Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-приложениях

  • 1. Общая модель аутентификации HTTP-сообщений на основе хэш- функций в веб-приложениях Денис Колегов, Николай Ткаченко Кафедра защиты информации и криптографии Томский государственный университет Positive Hack Days IV 21 – 22 мая 2014
  • 2. Актуальность работы • Протокол HTTP не имеет встроенных механизмов аутентификации сообщений • Аутентификация HTTP-сообщений – Аутентичность источника запроса – Целостность имен и значений параметров • OWASP TOP 10 2013 – A4 – Insecure Direct Object Reference – A7 – Missing Function Level Access Control – A8 – Cross-Site Request Forgery (CSRF) • Дополнительные возможности – Уменьшение поверхности атак на приложение – Противодействие средствам автоматизации 2
  • 4. Пример 2 • Атака <BASE> jumping <base href='http://evil.com/'> ← HTML-инъекция <form action=‘create_folder.php'> <input type=“hidden" name=“csrf_token“ value=“21312”>… </form> • Выполняется запрос http://evil.com/create_folder.php?csrf_token=21312 • Использование полученного токена в другом контексте http://example.com/admin/delete_account.php?csrf_token=21312 4
  • 5. Известные механизмы • «Подписи запросов» API – Yahoo, Amazon S3, Facebook • WAF – Trustwave ModSecurity: HMAC Token Protection – F5 Networks ASM: Dynamic Content Value • ASP.NET – Event Validation – View State MAC 5
  • 6. Научная новизна • Разработана модель аутентификации HTTP-сообщений в рамках модели ABAC • Предложен общий метод аутентификации сообщений, позволяющий контролировать и валидировать данные, генерируемые на клиентской стороне • Построен протокол аутентификации сообщений, адаптированный для применения в веб-приложениях – Хранение данных в сессии – Хранение данных на стороне клиента 6
  • 7. Аутентификатор • Аутентификатор – это строка, вычисленная по атрибутам объекта доступа в соответствии с политикой безопасности • Auth = {упорядоченный список имен параметров} || {cписок (имя параметра = значение) || список (имя параметра = #)} || идентификатор пользователя || идентификатор ресурса || операция • Атрибут объекта mac = h(kr, auth, time) 7
  • 8. Метод построения 1. Построить список L параметров запроса к объекту O 2. Если параметры из списка L являются контролируемыми по имени, то положить auth = auth || i1 ||… || im, где {i1, …, im} – упорядоченное множество имен параметров 3. Для каждого контролируемого по значению параметру lL положить auth = auth || l || Permit_Value(O, l) и удалить его из L 4. Для каждого валидируемого параметра lL положить auth = auth || l || ([Permit_Value(O, l)] / Permit_Alphabet) и удалить его из L 5. Положить auth = auth || IDs || IDr || op 8
  • 9. • Элементы модели – Операции – методы GET, POST, PUT, DELETE – Объекты – URI – Атрибуты объектов – параметры доступа к объекту – Субъект-сессии – HTTP-запросы к объектам – Атрибуты субъектов – параметры и заголовки запроса • Предикат доступа – Доступ субъект-сессии к объекту разрешен, если и только если аутентификатор, построенный по атрибутам объекта, равен аутентификатору, построенному по атрибутам субъект-сессии Модель ABAC 9
  • 10. Протокол • Параметры протокола – k – долговременный ключ сервера – kr – одноразовый случайный ключ сервера – IDr – идентификатор защищаемого ресурса – IDs – идентификатор пользователя – LP – политика безопасности – time – текущее значение времени • Действия протокола (IDs, IDr) – Client → Server: начальный запрос с IDs к ресурсу – Client ← Server: описание объекта O с атрибутами mac = h(kr, auth, time), Ek(LP , time, kr) – Client → Server: запрос с IDs’ к IDr’, mac, Ek(LP, time, kr) 10
  • 11. Возможности • Контроль целостности имен и значений параметров • Базовая валидация значений параметров в заданном алфавите • Базовая авторизация пользователей • Независимость от устойчивых и разделяемых сессий • Защита от атак класса CSRF • Защита CSRF-токенов – время жизни – защита от атак повтора – рандомизация – защита от атак BREACH – контекст – защита от атак утечки 11
  • 12. Proof of concept • Django • Механизм защиты веб-форм • Предположения – Использование метода POST для отправки формы – Защита только критичных веб-форм • Режимы – Stateless – Stateful • Адрес проекта – https://github.com/tsu-iscd/django-HTTPauth 12
  • 14. Описание политики auth_policy = { “object”: “регулярное выражение”, “subject”: “имя идентификатора пользователя”, “name_protection”: True | False, “replay_protection”: { “enable”: True | False, “interval”: “значение”}, “parameter_protection”: { “имя параметра”: { “value”: “значение” | “регулярное выражение”, “action”: “control” | “validate”}, … } } 14
  • 15. Пример политики class ClientForm(forms.Form): product = forms.CharField(initial='Test') price = forms.IntegerField() policy = {'object':'http://127.0.0.1:8000/add/', 'name_protection' : False, 'replay_protection': { 'enable':True, 'interval':'30' }, 'parameter_protection': { ‘product': { 'action':'validate', 'value':'[A-Za-z]+'}, 'price': { 'action':'control', 'value' : '200' }}} 15
  • 17. Заключение • Построена модель аутентификации HTTP-сообщений в рамках модели ABAC • Предложен общий метод аутентификации сообщений, позволяющий контролировать и валидировать данные, генерируемые на клиентской стороне • Реализован прототип механизма защиты веб-форм в Django – Контроль целостности имен и значений параметров, а также их валидация в заданном алфавите – Базовая авторизация пользователей – Независимость от устойчивых и разделяемых сессий – Защита от атак класса CSRF 17
  • 18. Благодарю за внимание! Вопросы? Колегов Денис Доцент кафедры защиты информации и криптографии Томский государственный университет E-mail: dnkolegov@gmail.com Николай Ткаченко Аспирант кафедры защиты информации и криптографии Томский государственный университет E-mail: notkachenko@gmail.com 18