SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Ihor Bliumental
OWASP Kyiv Chapter Lead
ihor.bliumental@owasp.org
Unsafe Cross Origin Resource
Sharing
Same Origin Policy (SOP)
• Origin: https://example.com:8433
• http://example.com:8443
• https://www.example.com:8443
• https://example.com:443
• https://www.example.org:8443
Репозиторий и ссылки
• https://goo.gl/63ZGwt
Cross Origin Access
• Запись. Обычно разрешена (ссылки, перенаправления,
формы).
• Встраивание. Обычно разрешено:
• JS <script src="..."></script>
• CSS <style rel="stylesheet" href="..."> (требуют верного
Content-type)
• Картинки и медиа <img>, <video>, <audio>
• Плагины <embed>, <object>, <applet>
• Шрифты @font-face
• Фреймы <iframe>, <frame>
• Чтение. Обычно не разрешено
JSONP (XSSI)
• JSON with padding, Cross site script
include
• X-Content-Type-Options: nosniff
Flash and MS Silverlight
• crossdomain.xml и clientaccesspolicy.xml
• *, *.example.com
Modern CORS
Same Origin Policy для XMLHttpRequest
Origin: https://site1.com
Web-

APP
Server – site1.com
Server – site2.com
Browser
https://site1.com
XMLHttp
Modern CORS
• Запросы
• Origin: (https?|ftp)://example.com|null
• Access-Control-Request-Method: <method>
• Access-Control-Request-Headers: <field-name> ...
• Ответы
• Access-Control-Allow-Origin: <origin> | *
• Access-Control-Allow-Credentials: true
• Access-Control-Allow-Methods: <method> ...
• Access-Control-Allow-Headers: <field-name> ....
• Access-Control-Expose-Headers: X-Custom-Header
• Access-Control-Max-Age: <delta-seconds>
WebSockets
• Не проверяется Origin по-умолчанию
postMessage
• Проверка Origin на разработчике
• Уязвимый сайт в <iframe> — защита X-
Frame-Options
• Уязвимый сайт в поп-апе (window.open) —
предупреждения от браузера
• Можно использовать расширения хрома —
OWASP London, доклад Арсения Реутова
(https://raz0r.name/) https://goo.gl/MGrhN9
Спасибо за внимание
«В обратную сторону»
• Заголовок Access-Control-Allow-Origin: *
позволяет злоумышленнику встраивать
содержимое

Contenu connexe

Tendances

Кухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановки
Кухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановкиКухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановки
Кухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановки
NaZapad
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
А.Могильников "Специализированные облака", DUMP-2014
А.Могильников "Специализированные облака", DUMP-2014А.Могильников "Специализированные облака", DUMP-2014
А.Могильников "Специализированные облака", DUMP-2014
it-people
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
Yandex
 
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
Sergey Xek
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxss
yaevents
 
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
 

Tendances (19)

Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Кухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановки
Кухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановкиКухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановки
Кухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановки
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
А.Могильников "Специализированные облака", DUMP-2014
А.Могильников "Специализированные облака", DUMP-2014А.Могильников "Специализированные облака", DUMP-2014
А.Могильников "Специализированные облака", DUMP-2014
 
Securing Rails Applications
Securing Rails ApplicationsSecuring Rails Applications
Securing Rails Applications
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
 
SEO-Friendly Websites
SEO-Friendly WebsitesSEO-Friendly Websites
SEO-Friendly Websites
 
Скорость работы интернет магазина
Скорость работы интернет магазинаСкорость работы интернет магазина
Скорость работы интернет магазина
 
Svyatoslav Login
Svyatoslav LoginSvyatoslav Login
Svyatoslav Login
 
SQADays19 - 50 Слайдов для повышения безопасности вашего сервиса
SQADays19 - 50 Слайдов для повышения безопасности вашего сервисаSQADays19 - 50 Слайдов для повышения безопасности вашего сервиса
SQADays19 - 50 Слайдов для повышения безопасности вашего сервиса
 
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
 
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxss
 
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"
 

Plus de OWASP Kyiv

Software Supply Chain Security та компоненти з відомими вразливостями
Software Supply Chain Security та компоненти з відомими вразливостямиSoftware Supply Chain Security та компоненти з відомими вразливостями
Software Supply Chain Security та компоненти з відомими вразливостями
OWASP Kyiv
 
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteCloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
OWASP Kyiv
 

Plus de OWASP Kyiv (20)

Is there a penetration testing within PCI DSS certification? (Dmytro Diordiyc...
Is there a penetration testing within PCI DSS certification? (Dmytro Diordiyc...Is there a penetration testing within PCI DSS certification? (Dmytro Diordiyc...
Is there a penetration testing within PCI DSS certification? (Dmytro Diordiyc...
 
Software Supply Chain Security та компоненти з відомими вразливостями
Software Supply Chain Security та компоненти з відомими вразливостямиSoftware Supply Chain Security та компоненти з відомими вразливостями
Software Supply Chain Security та компоненти з відомими вразливостями
 
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteCloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
 
Threat Modeling with OWASP Threat Dragon
Threat Modeling with OWASP Threat DragonThreat Modeling with OWASP Threat Dragon
Threat Modeling with OWASP Threat Dragon
 
Anastasia Vixentael - Don't Waste Time on Learning Cryptography: Better Use I...
Anastasia Vixentael - Don't Waste Time on Learning Cryptography: Better Use I...Anastasia Vixentael - Don't Waste Time on Learning Cryptography: Better Use I...
Anastasia Vixentael - Don't Waste Time on Learning Cryptography: Better Use I...
 
Vlad Styran - Cyber Security Economics 101
Vlad Styran - Cyber Security Economics 101Vlad Styran - Cyber Security Economics 101
Vlad Styran - Cyber Security Economics 101
 
Pavlo Radchuk - OWASP SAMM: Understanding Agile in Security
Pavlo Radchuk - OWASP SAMM: Understanding Agile in SecurityPavlo Radchuk - OWASP SAMM: Understanding Agile in Security
Pavlo Radchuk - OWASP SAMM: Understanding Agile in Security
 
Ivan Vyshnevskyi - Not So Quiet Git Push
Ivan Vyshnevskyi - Not So Quiet Git PushIvan Vyshnevskyi - Not So Quiet Git Push
Ivan Vyshnevskyi - Not So Quiet Git Push
 
Dima Kovalenko - Modern SSL Pinning
Dima Kovalenko - Modern SSL PinningDima Kovalenko - Modern SSL Pinning
Dima Kovalenko - Modern SSL Pinning
 
Yevhen Teleshyk - OAuth Phishing
Yevhen Teleshyk - OAuth PhishingYevhen Teleshyk - OAuth Phishing
Yevhen Teleshyk - OAuth Phishing
 
Vlada Kulish - Why So Serial?
Vlada Kulish - Why So Serial?Vlada Kulish - Why So Serial?
Vlada Kulish - Why So Serial?
 
Vlad Styran - OWASP Kyiv 2017 Report and 2018 Plans
Vlad Styran - OWASP Kyiv 2017 Report and 2018 PlansVlad Styran - OWASP Kyiv 2017 Report and 2018 Plans
Vlad Styran - OWASP Kyiv 2017 Report and 2018 Plans
 
Roman Borodin - ISC2 & ISACA Certification Programs First-hand Experience
Roman Borodin - ISC2 & ISACA Certification Programs First-hand ExperienceRoman Borodin - ISC2 & ISACA Certification Programs First-hand Experience
Roman Borodin - ISC2 & ISACA Certification Programs First-hand Experience
 
Ihor Bliumental - WebSockets
Ihor Bliumental - WebSocketsIhor Bliumental - WebSockets
Ihor Bliumental - WebSockets
 
Serhiy Korolenko - The Strength of Ukrainian Users’ P@ssw0rds2017
Serhiy Korolenko - The Strength of Ukrainian Users’ P@ssw0rds2017Serhiy Korolenko - The Strength of Ukrainian Users’ P@ssw0rds2017
Serhiy Korolenko - The Strength of Ukrainian Users’ P@ssw0rds2017
 
Viktor Zhora - Cyber and Geopolitics: Ukrainian factor
Viktor Zhora - Cyber and Geopolitics: Ukrainian factorViktor Zhora - Cyber and Geopolitics: Ukrainian factor
Viktor Zhora - Cyber and Geopolitics: Ukrainian factor
 
Andriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tipsAndriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tips
 
Vlad Styran - "Hidden" Features of the Tools We All Love
Vlad Styran - "Hidden" Features of the Tools We All LoveVlad Styran - "Hidden" Features of the Tools We All Love
Vlad Styran - "Hidden" Features of the Tools We All Love
 
Volodymyr Ilibman - Close Look at Nyetya Investigation
Volodymyr Ilibman - Close Look at Nyetya InvestigationVolodymyr Ilibman - Close Look at Nyetya Investigation
Volodymyr Ilibman - Close Look at Nyetya Investigation
 
Lidiia 'Alice' Skalytska - Security Checklist for Web Developers
Lidiia 'Alice' Skalytska - Security Checklist for Web DevelopersLidiia 'Alice' Skalytska - Security Checklist for Web Developers
Lidiia 'Alice' Skalytska - Security Checklist for Web Developers
 

Ihor Bliumental - Collision CORS

  • 1. Ihor Bliumental OWASP Kyiv Chapter Lead ihor.bliumental@owasp.org Unsafe Cross Origin Resource Sharing
  • 2. Same Origin Policy (SOP) • Origin: https://example.com:8433 • http://example.com:8443 • https://www.example.com:8443 • https://example.com:443 • https://www.example.org:8443
  • 4. Cross Origin Access • Запись. Обычно разрешена (ссылки, перенаправления, формы). • Встраивание. Обычно разрешено: • JS <script src="..."></script> • CSS <style rel="stylesheet" href="..."> (требуют верного Content-type) • Картинки и медиа <img>, <video>, <audio> • Плагины <embed>, <object>, <applet> • Шрифты @font-face • Фреймы <iframe>, <frame> • Чтение. Обычно не разрешено
  • 5. JSONP (XSSI) • JSON with padding, Cross site script include • X-Content-Type-Options: nosniff
  • 6. Flash and MS Silverlight • crossdomain.xml и clientaccesspolicy.xml • *, *.example.com
  • 7. Modern CORS Same Origin Policy для XMLHttpRequest Origin: https://site1.com Web-
 APP Server – site1.com Server – site2.com Browser https://site1.com XMLHttp
  • 8. Modern CORS • Запросы • Origin: (https?|ftp)://example.com|null • Access-Control-Request-Method: <method> • Access-Control-Request-Headers: <field-name> ... • Ответы • Access-Control-Allow-Origin: <origin> | * • Access-Control-Allow-Credentials: true • Access-Control-Allow-Methods: <method> ... • Access-Control-Allow-Headers: <field-name> .... • Access-Control-Expose-Headers: X-Custom-Header • Access-Control-Max-Age: <delta-seconds>
  • 9. WebSockets • Не проверяется Origin по-умолчанию
  • 10. postMessage • Проверка Origin на разработчике • Уязвимый сайт в <iframe> — защита X- Frame-Options • Уязвимый сайт в поп-апе (window.open) — предупреждения от браузера • Можно использовать расширения хрома — OWASP London, доклад Арсения Реутова (https://raz0r.name/) https://goo.gl/MGrhN9
  • 12. «В обратную сторону» • Заголовок Access-Control-Allow-Origin: * позволяет злоумышленнику встраивать содержимое