Информационная безопасность и web-приложения
-
Upload
maxim-krentovskiy -
Category
Technology
-
view
2.624 -
download
1
description
Transcript of Информационная безопасность и web-приложения
![Page 1: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/1.jpg)
Информационная безопасность и
web-приложения
![Page 2: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/2.jpg)
У нас опять есть план! 1. Что такое инфобез и с чем его едят• Аутентификация, авторизация и
аккаунтинг• Основные типы атак на web и как с
ними бороться
![Page 3: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/3.jpg)
Информационная безопасность
![Page 4: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/4.jpg)
Цель
Абсолютно защитить информацию от несанкционированного доступа -
сказок не бывает.
Защитить информацию так, чтобы получение доступа к ней стоило на порядки больше той ценности, которую
эта информация имеет.
![Page 5: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/5.jpg)
Парадокс Черной* королевы
* - но мы-то знаем, что королева на самом деле
красная
![Page 6: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/6.jpg)
Если вас еще не взломали - это не ваша заслуга, а чья-то недоработка
Паранойя - не профессиональная болезнь, а естественное состояние организма
![Page 7: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/7.jpg)
Проблема чаще всего расположена между компьютером и стулом
![Page 8: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/8.jpg)
НИКОМУ НЕЛЬЗЯ ВЕРИТЬ!Даже себе. Мне - можно.
![Page 9: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/9.jpg)
Методы работы инфобезовцев
1. создание формального описания системы; 2. построение модели угроз;3. классификация и оценка рисков;4. выбор и установка средств технической защиты;5. разработка регламентов и административных правил по
защите;6. контроль выполнения регламентов, корректировки
согласно новым требованиями и изменениям в законодательстве, аудит безопасности.
Защищают не отдельные приложения или аспекты, а информационные системы в целом.
![Page 10: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/10.jpg)
Аутентификация, авторизация и аккаунтинг
AAA
![Page 11: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/11.jpg)
Пароли - плохо, очень плохо
![Page 12: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/12.jpg)
Байка
![Page 13: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/13.jpg)
Данные с потолка
• 95% пользователей имеет два, максимум - три пароля на все;
• генерация паролей на каждый ресурс - удел истинных параноиков;
• пароли чаще всего содержат номера телефонов и даты рождения;
• показатель защищенности пароля - бесполезный и раздражающий элемент;
• хранить пароли в едином хранилище (пусть даже защищенном) - все равно, что класть все ключи от разных мест в одну банку;
• хешированные пароли - иллюзия защищенности.
![Page 14: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/14.jpg)
И если все-таки пароли
• не давайте пользователю вводить пароль, генерируйте его принудительно, максимум - смена;
• сброс пароля - двушаговый (сначала ссылка-подтверждение, затем генерация нового пароля);
• запоминать - ни в коем случае не сам пароль или хэш от него, лучше отдельный токен (и периодически менять) или пароль + "соль";
• учет входов и последующий анализ - если пользователь зашел с иного (необычного для него) сегмента сети или из другой страны (параноики из i2p и tor будут недовольны);
• дополнительные средства защиты offline - например, через мобильный телефон.
![Page 15: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/15.jpg)
Альтернативы
OpenID, OAuth, PKI
![Page 16: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/16.jpg)
![Page 17: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/17.jpg)
![Page 18: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/18.jpg)
OAuth
![Page 19: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/19.jpg)
![Page 20: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/20.jpg)
![Page 21: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/21.jpg)
Public Key Infrastructure
![Page 22: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/22.jpg)
Не реклама
![Page 23: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/23.jpg)
Задача на 1М$ Крипторалгоритмы:• RSA - факторизация• DSA - логарифмы на
конечных полях• ECDSA - DSA на группе
точек эллиптической кривой
Хеши:(однозначное необратимое преобразование)• MD5 (самый популярный из MD*)• SHA-1 и SHA-2• ГОСТ Р 34.11-94
![Page 24: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/24.jpg)
Шифрование
![Page 25: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/25.jpg)
Подпись
![Page 26: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/26.jpg)
Применение
• Аутентификация и авторизацияo HTTPSo SSHo VPN (IPSec)
• Проверка целостности и надежностиo данных (юридически значимых документов)o программного кода (Java Applets, .NET,
мобильные приложения Android и iOS)
![Page 27: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/27.jpg)
Получение сертификата
![Page 28: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/28.jpg)
Как сделать авторизацию по HTTPS через nginx
Создадим пару ключей и сертификат CAopenssl genrsa -des3 -out ca.key 4096openssl req -new -x509 -days 365 -key ca.key -out ca.crt
Далее создадим сертификат сервераopenssl genrsa -out server.key 1024openssl req -new -key server.key -out server.csropenssl x509 -req -days 365 -in server.csr -CA ca.crt \ -CAkey ca.key -set_serial 01 -out server.crt
![Page 29: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/29.jpg)
.. и клиентаopenssl genrsa -out с.key 1024openssl req -new -key с.key -out с.csropenssl x509 -req -days 365 -in с.csr -CA ca.crt \ -CAkey ca.key -set_serial 02 -out с.crtopenssl pkcs12 -export -out с.pfx -inkey с.key \-in с.crt -certfile ca.crt
Сконфигурируем сервер
server { listen 443; ssl on; server_name example.com;
ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; ssl_client_certificate /etc/nginx/certs/ca.crt; ssl_verify_client on;}
![Page 30: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/30.jpg)
...и попробуем авторизоваться, предварительно добавив сертификат в браузер
Сертификат можно хранить не только в хранилище браузера (в некоторых системах - централизованно), но и на специальных устройствах:
![Page 31: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/31.jpg)
Применимость различных методов аутентификации
небольшие web-системы, CMS
публичные массовые web-приложения
финансовые системы
системы, содержащие коммерческую или государственную тайну
Пароли
PKI
OAuthOpenID
![Page 32: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/32.jpg)
Основные типы атак на web
Да-да, те самые страшные аббревиатуры
![Page 33: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/33.jpg)
Классификация
По назначению:• получение доступа к
системе;• повышение уровня
привилегий;• приведение в
неработоспособное состояние;
• разрушение системы или отдельных элементов;
• похищение информации и персональных данных;
• использование системы для совершения атак или анонимизации.
По механизму:• переполнение буфера;• подмена указателя;• SQL-инъекции;• инъекции кода;• перехват трафика;• просмотр директорий• крос-сайтовое исполнение
сценариев• инъекции HTTP-заголовков;• заделение HTTP-ответа• организации гонок;• подделка межсайтовых
запросов• подстановка невидимых
элементов других сайтов;• фишинг.
![Page 34: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/34.jpg)
SQL инъекции
![Page 35: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/35.jpg)
Пример
statement = "SELECT * FROM users WHERE name = '" + userName + "';"
куда легко можно подкинуть:
' or '1'='1' or '1'='1' -- '' or '1'='1' ({ '' or '1'='1' /* 'a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't
![Page 36: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/36.jpg)
Способы защиты
• экранирование входных данных;• проверка входных данных регулярными
выражениями;• параметризованный запрос:
java.sql.PreparedStatement stmt = connection.prepareStatement("SELECT * FROM users WHERE USERNAME = ? AND PASSWORD = ?");stmt.setString(1, username);stmt.setString(2, password);stmt.executeQuery();
• ORM;• использование средств защиты (mod_security); • ограничение прав доступа к БД;• использование NoSQL. :)
![Page 37: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/37.jpg)
Крос-сайтовое исполнение сценариев (XSS)
и немного про C/XSRF
![Page 38: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/38.jpg)
Clickjacking
Cross-site request forgery<img src="http://bank.example.com/withdraw?account=bob&amount=1000000&for=Fred">
Внедрение JS:• компрометация пользователя
(перехват cookies и сессии);• повышение привилегий с
последующим выполнением неавторизованных действий.
![Page 39: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/39.jpg)
Способы защиты
• экранирование, экранирование и экранирование - желательно перед тем, как положить в базу;
• фильтрация HTML-тегов (если ввод их предполагает);
• токены на CRUD-операции; • понадеяться на средства технической
защиты в браузерах (NoScript, Mozilla's Content Security Policy).
![Page 40: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/40.jpg)
Отказ в обслуживании DoS и DDoS
![Page 41: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/41.jpg)
Методки
• флуд;• генерация большого
числа запросов(например, через ботнет);
• "тяжелые" запросы;• эксплуатация ошибок в
ПО.
![Page 42: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/42.jpg)
Способы защиты
• закрыться от атаки сетью VDS с фильтрами (например, по geoip), особыми настройками TCP/IP и traffic shaping;
• воспользоваться antiDDoS-сервисом (например, QRator);
• изначально проектировать в расчете на нагрузку, на два порядка превышающую предполагаемую;
• оптимизировать тяжелые запросы;• не впадать в излишества (где достаточно
статического HTML - там должен быть статический HTML);
• использовать ресурсы тех, кто постоянно под DDoS; • кеширование, кеширование, кеширование (и не
забудьте запихнуть в сервера максимум RAM); • позвонить провайдеру. :)
![Page 43: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/43.jpg)
Общие рекомендации по безопасности web систем
![Page 44: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/44.jpg)
1. нельзя никому верить;2. пользователям - в первую очередь;3. разработчикам и тестерам - вообще нельзя;4. администраторам - совсем;5. подписка на списки рассылки по уязвимостям и security
бюллетени для используемой ОС;6. постоянные обновления (используйте LTS);7. использование средств обнаружения и защиты от атак
(IDS); 8. постоянный анализ событий и действий пользователей; 9. периодический аудит инфраструктуры приглашенными
специалистами;10.защиты никогда не бывает мало (если есть
возможность сделать DMZ - не стесняйтесь); 11.если вы что-то не понимаете - это скорее всего
небезопасно и приведет к компрометации систем.
![Page 45: Информационная безопасность и web-приложения](https://reader035.fdocument.pub/reader035/viewer/2022062614/54621b02af79597f198b6bac/html5/thumbnails/45.jpg)
???Это не кодировка побилась, а
предложение задать докладчику вопросы :)