Your SlideShare is downloading. ×
Информационная безопасность и web-приложения
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Информационная безопасность и web-приложения

2,429
views

Published on

Встреча группы GetDev.net от 17 марта 2012 года.

Встреча группы GetDev.net от 17 марта 2012 года.

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,429
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
29
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Межконтинентальная баллистическая ракета LGM-30 Minuteman - единственная американская МБР наземного (шахтного) базирования. Все пуски ракет, которые вы видите в фильмах в фильмах - "Минитмены". И они же в нас полетят, если что. Кроме собственно пусков ракет в фильмах любят показывать сложные шаманские танцы вокруг пуска. Офицер связи при получении приказа на пуск достаёт из сейфа конверт, код оттуда посимвольно зачитывается и вводится в пульт. Потом синхронно два офицера поворачивают два ключа... Весь этот балет придумал Роберт Стрэйндж Макнамара - человек, которого Кеннеди переманил в министры обороны из президентов "Форда". Идея была очень разумная - не упускать из рук политиков управление ядерным арсеналом страны и не допустить самовольных или случайных пусков. Военные тоже были люди разуминые. Они провели несколько учений и поняли, что шаманские танцы вокруг ввода кода задерживают запуск. В худшем случае офицеры в состоянии стресса умудрялись даже делать ошибку в коде. Поскольку помимо учений межконтинентальные баллистические ракеты с ядерными боеголовкамии ещё и стоят наготове для оперативного отражения удара противника, Стратегическое командование ВВС США (в Штатах МБР шахтного базирования - это ВВС) приказало установить все предохранительные коды на всех пультах всех "Минитменов" в 00000000. Сия нехитрая рационализация резко повысила шансы Соединённых Штатов Америки успеть ответить ударом на удар. Макнамара узнал обо всём этом только полвека спустя. Случайно. Ему бывший ракетчик рассказал. Сейчас, естественно, там уже не нули.
  • Transcript

    • 1. Информационная безопасность иweb-приложения
    • 2. У нас опять есть план!1. Что такое инфобез и с чем его едят• Аутентификация, авторизация и аккаунтинг• Основные типы атак на web и как с ними бороться
    • 3. Информационная безопасность
    • 4. Цель Абсолютно защитить информацию от несанкционированного доступа - сказок не бывает.Защитить информацию так, чтобы получение доступа к ней стоило на порядки больше той ценности, которую эта информация имеет.
    • 5. Парадокс Черной* королевы* - но мы-то знаем, что королева на самом делекрасная
    • 6. Если вас еще не взломали -это не ваша заслуга, а чья-тонедоработкаПаранойя - не профессиональная болезнь, аестественное состояние организма
    • 7. Проблема чаще всегорасположена междукомпьютером и стулом
    • 8. НИКОМУ НЕЛЬЗЯ ВЕРИТЬ!Даже себе. Мне - можно.
    • 9. Методы работы инфобезовцев1. создание формального описания системы;2. построение модели угроз;3. классификация и оценка рисков;4. выбор и установка средств технической защиты;5. разработка регламентов и административных правил по защите;– контроль выполнения регламентов, корректировки согласно новым требованиями и изменениям в законодательстве, аудит безопасности. Защищают не отдельные приложения или аспекты, а информационные системы в целом.
    • 10. Аутентификация,авторизация и аккаунтинг AAA
    • 11. Пароли - плохо, очень плохо
    • 12. Байка
    • 13. Данные с потолка• 95% пользователей имеет два, максимум - три пароля на все;• генерация паролей на каждый ресурс - удел истинных параноиков;• пароли чаще всего содержат номера телефонов и даты рождения;• показатель защищенности пароля - бесполезный и раздражающий элемент;• хранить пароли в едином хранилище (пусть даже защищенном) - все равно, что класть все ключи от разных мест в одну банку;• хешированные пароли - иллюзия защищенности.
    • 14. И если все-таки пароли• не давайте пользователю вводить пароль, генерируйте его принудительно, максимум - смена;• сброс пароля - двушаговый (сначала ссылка- подтверждение, затем генерация нового пароля);• запоминать - ни в коем случае не сам пароль или хэш от него, лучше отдельный токен (и периодически менять) или пароль + "соль";• учет входов и последующий анализ - если пользователь зашел с иного (необычного для него) сегмента сети или из другой страны (параноики из i2p и tor будут недовольны);• дополнительные средства защиты offline - например, через мобильный телефон.
    • 15. АльтернативыOpenID, OAuth, PKI
    • 16. OAuth
    • 17. Public Key Infrastructure
    • 18. Не реклама
    • 19. Задача на 1М$ Крипторалгоритмы: • RSA - факторизация • DSA - логарифмы на конечных полях • ECDSA - DSA на группе точек эллиптической кривой Хеши: (однозначное необратимое преобразование) • MD5 (самый популярный из MD*) • SHA-1 и SHA-2 • ГОСТ Р 34.11-94
    • 20. Шифрование
    • 21. Подпись
    • 22. Применение • Аутентификация и авторизация o HTTPS o SSH o VPN (IPSec) • Проверка целостности и надежности o данных (юридически значимых документов) o программного кода (Java Applets, .NET, мобильные приложения Android и iOS)
    • 23. Получение сертификата
    • 24. Как сделать авторизацию по 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
    • 25. .. и клиента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; }
    • 26. ...и попробуем авторизоваться, предварительнодобавив сертификат в браузер Сертификат можно хранить не только в хранилище браузера (в некоторых системах - централизованно), но и на специальных устройствах:
    • 27. Применимость различных методоваутентификациинебольшие web-системы,CMS Паролипубличные массовые web- OAuthприложения OpenIDфинансовые системысистемы, содержащие PKIкоммерческую илигосударственную тайну
    • 28. Основные типы атак на web Да-да, те самые страшные аббревиатуры
    • 29. КлассификацияПо назначению: По механизму: • переполнение буфера;• получение доступа к • подмена указателя; системе; • SQL-инъекции;• повышение уровня • инъекции кода; привилегий; • перехват трафика;• приведение в • просмотр директорий неработоспособное • крос-сайтовое исполнение состояние; сценариев • инъекции HTTP-заголовков;• разрушение системы или • заделение HTTP-ответа отдельных элементов; • организации гонок;• похищение информации и • подделка межсайтовых персональных данных; запросов• использование системы • подстановка невидимых для совершения атак или элементов других сайтов; анонимизации. • фишинг.
    • 30. SQL инъекции
    • 31. Пример 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
    • 32. Способы защиты• экранирование входных данных;• проверка входных данных регулярными выражениями;• параметризованный запрос: 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. :)
    • 33. Крос-сайтовое исполнение сценариев (XSS) и немного про C/XSRF
    • 34. Внедрение JS: Cross-site request forgery• компрометация пользователя <img (перехват cookies и сессии); src="http://bank.example.com• повышение привилегий с /withdraw? последующим выполнением account=bob&amount=1000000&f неавторизованных действий. or=Fred"> Clickjacking
    • 35. Способы защиты • экранирование, экранирование и экранирование - желательно перед тем, как положить в базу; • фильтрация HTML-тегов (если ввод их предполагает); • токены на CRUD-операции; • понадеяться на средства технической защиты в браузерах (NoScript, Mozillas Content Security Policy).
    • 36. Отказ в обслуживании DoS и DDoS
    • 37. Методки• флуд;• генерация большого числа запросов (например, через ботнет);• "тяжелые" запросы;• эксплуатация ошибок в ПО.
    • 38. Способы защиты • закрыться от атаки сетью VDS с фильтрами (например, по geoip), особыми настройками TCP/IP и traffic shaping; • воспользоваться antiDDoS-сервисом (например, QRator); • изначально проектировать в расчете на нагрузку, на два порядка превышающую предполагаемую; • оптимизировать тяжелые запросы; • не впадать в излишества (где достаточно статического HTML - там должен быть статический HTML); • использовать ресурсы тех, кто постоянно под DDoS; • кеширование, кеширование, кеширование (и не забудьте запихнуть в сервера максимум RAM); • позвонить провайдеру. :)
    • 39. Общие рекомендации побезопасности web систем
    • 40. – нельзя никому верить;2. пользователям - в первую очередь;3. разработчикам и тестерам - вообще нельзя;4. администраторам - совсем;5. подписка на списки рассылки по уязвимостям и security бюллетени для используемой ОС;6. постоянные обновления (используйте LTS);7. использование средств обнаружения и защиты от атак (IDS);8. постоянный анализ событий и действий пользователей;9. периодический аудит инфраструктуры приглашенными специалистами;10.защиты никогда не бывает мало (если есть возможность сделать DMZ - не стесняйтесь);11.если вы что-то не понимаете - это скорее всего небезопасно и приведет к компрометации систем.
    • 41. ??? Это не кодировка побилась, апредложение задать докладчику вопросы :)