← All talks

Hacking OAuth 2.0

BSides Warsaw · 201941:40268 viewsPublished 2019-10Watch on YouTube ↗
Speakers
Tags
About this talk
Marcin Hoppe Programista z zawodu i powołania, pasjonat tworzenia softu odpornego na ataki. Na co dzień odpowiada za bezpieczeństwo produktu w Auth0. W wolnych chwilach realizuje się jako społecznik-bezpiecznik w Node.js Foundation. W ramach OWASP współprowadzi projekt Serverless Top 10. Twitter: https://twitter.com/marcin_hoppe GitHub: https://github.com/marcinhoppe LinkedIn: https://www.linkedin.com/in/marcinhoppe W tym roku po raz kolejny mieliśmy okazję spotkać się wspólnie na #BSidesWarsaw. Ale czym dokładnie jest BSides? Polska edycja powstała w 2011 roku i jest częścią międzynarodowego wydarzenia z serii Security BSides. Marka ta na całym świecie znana jest jako impreza o charakterze silnie społecznym i wyjątkowym. Te same idee przyświecają nam podczas organizacji polskiej wersji BSides. Chcemy utrzymywać wartości zapoczątkowane przez pierwotnych organizatorów i tworzymy wydarzenie non-profit, prowadzone przez społeczność i dla społeczności. Oddajemy się całej sprawie w 200%, działając przy organizacji wydarzenia w ramach wolontariatu, aby z #BSidesWarsaw stworzyć platformę dla wszystkich. Środowisko, w którym każdy od początkujących do doświadczonych profesjonalistów ma szansę do zaprezentowania swojej pracy w przyjaznym i otwartym otoczeniu. BSides nie konkuruje z żadnym innym wydarzeniem. Celem jest i zawsze będzie poszerzanie spektrum rozmów, prowadzenie dialogu oraz stworzenie platformy dla wszystkich zainteresowanych bezpieczeństwem.
Show transcript [pl]

kamera masz tutaj zakres masz tak dobra albo nie ewentualnie możemy zrobić tak żeby powstaje to dalej byśmy całą scenę jak

pierwszy pierwsza prezentacja problemem bo maka nieważne koniec końców to nie przyciąga no bo czas mija marcin wiesz co masz robić nie dobra dzięki widzę że jeszcze jeszcze przychodzicie tylko powiem że rano zerknąłem na twittera gdzie niech to jest operatorem wózka widłowego twittera napisał że była jakaś natężenie byłem także cieszę się że wy jesteście pomimo tych wydarzeń jest bardzo miło bo jestem na islandii drugi raz byłem tutaj w zeszłym roku czy ktoś może po mojej prezentacji w zeszłym roku niestety nie byli to fajne to znaczy że się że ludzie zmieniają ta prezentacja będzie o czymś innym niż rok temu i to co ja wam dzisiaj opowiem to jest to co mój zespół zespół zajmuje opowiem wam opowiem wam zaraz opowiem wam jakby

o tym co robiliśmy kiedyś o tym co robimy teraz i też o tym co będziemy robić w przyszłości natomiast taki dopisek jest tylko nasze doświadczenie i niekoniecznie musi się przekładać to co będziecie robić pracy ale myślę że jest to jakaś perspektywa którą warto którą warto powiedzieć ja pracuję w firmie od 0 czy ktoś zna outro o jakieś jakaś jedna ręka się podniosła otóż o to jest dostarczany z usługi i polityka serwis nasz produkt umożliwia programistom dodanie zarządzania tożsamością swojej aplikacji w sposób łatwy lekki przyjemny i co się za tym kryje się za tym też umożliwia nam dodanie do własnych aplikacji taki funkcjonalność logowania reset hasła rejestracje nowych użytkowników zarządzanie tymi użytkownikami amunicji factory settings i szyn federacja

tożsamości zewnętrznymi i dostarczycielem i i żeby to zrobić implementujemy szereg protokołu zarządzaj tożsamością których opowiem jeszcze troszeczkę troszeczkę za chwilę natomiast mój zespół konkretnie zajmuje się bezpieczeństwem produktów zobaczymy nie tyle tworzymy sam produkt zajmujemy się pomaganiem innym zespołom które odpowiadają za poszczególne filmy żeby złoty topór dziękuję i z pomagamy tym osobom które odpowiadają za poszczególne litery żeby to co oni robią to było maksymalnie bezpieczne i i w miarę odporne na ewentualne ataki w warstwie aplikacji jakieś tam protokoły wspieramy z ze starych czasów zakładnik wybieramy takie rzeczy jak sam w expedition z nowszych rzeczy o których będę mówił dzisiaj i takie takie protokoły jak opublikowane kto oddał wszystko to jest połączone z kilkoma innymi standardami rekomendacjami takimi

jak jack i dla urządzeń mobilnych z mamy sobie takie wzory protokołu związanych z uwierzytelnianiem autoryzacją i mi się staramy te protokoły testować pod kątem pod kątem bezpieczeństwa żeby troszkę wprowadzić temat pokażę wam jak działa z grubsza protokół o 20 mamy trzy osoby dramatu to tam się nazywa i to jest tak zwany user id to jest człowiek z przeglądarką mamy trzy aplikacje to jest z reguły aplikacja napisana przez któregoś z naszych klientów i jest coś co jest na rysunku oznaczone jako i to jest identyfikowany lider i to jesteśmy my to jesteśmy my zaczyna się w momencie w którym użytkownik chce zalogować się do aplikacji więc bierzesz swoją przeglądarkę czyli do swojego konta i i na stronę aplikacji klika chciałbym się

zalogować w tym momencie i to pewnie znacie z swojej praktyki używanie różnych aplikacji w internecie przeglądarka jest przekierowywane na do it provider a może być to bóg może być to facebook i w zależności od tego gdzie się kierujecie profilem zaufanym mogą was przez jakieś inne miejsca i tam następnie tak zwana magia czyli o której opowiem później kiedy provider was uwierzytelniania i wydajecie zgodę na to żeby aplikacja wystąpiła jakieś informacje z naszego profilu w tym identyfikować leżę i to co wraca do przeglądarki to jest smutne i to jest smutne i to jest ciąg znaków który reprezentuje tą rozpoczną transakcję uwierzytelniania natomiast sam siebie bez dodatkowego uwierzytelnienia samej aplikacji nie jest do niczego nie można niczego wykorzystać teraz ten kod z

powrotem wraca do aplikacji aplikacja gdzieś tam przejmuję w tej czy innej formie może wrócić w celu gdzieś tam kirsty może być wysłany w formularzu jest kilka różnych kilka różnych technik i teraz aplikacja już całkowicie w agendzie wysyła 4k hdr high dynamic range pro gdzie wysyła swoje informacje którymi uwierzytelnia się identyfikować z i wysyła ten kod co jest dosyć ważne i w zamian dostaje to czego potrzebowała czyli token którą informacje o profilu użytkownika albo jest to która umożliwia jej wykonanie jakiejś takiej operacji w zewnętrznym serwisie tak naprawdę chodzi tak to ten odcień zielony token którego nie widzicie o tym zielony tokens natomiast całe cała ta zabawa z pomarańczowym kolorem jest tylko po to żeby ten pokój nigdy nie występował w

przeglądarce tak z punktu widzenia protokołu w większości wypadków przeglądarka jest uznawana za środowisko nie zaufane i chcemy się przed tym bronić no i teraz powstaje powstaje pytanie i jak takie protestować pod kątem bezpieczeństwa w w rzeczywistej rzeczywiste implementacji pytanie jest takie czy to są jakieś czy są jakieś istniejące ze sobą okazuje się że tak to jest to co mój zespół od to jest to czego doszliśmy do protokołu specyfikacji dokumenty r-e-s-p-e-c-t sock it to me sock it to me sock it to me sock it to me sock it to me sock it to me będziecie wiedzieli że on ma i musi mieć seks czy któraś z tych akurat protokołach te sekcje i configuration są dosyć dobrze zrobione są dosyć dokładnie

natomiast w momencie w którym ten dokument powstawały a to powstawanie w rzeczywistości prezentacji ludzie którzy nawet ludzie którzy to tworzyli nie mieli doświadczeń z rzeczywistymi atakami ani nie mieli też że doświadczeń z pogrubioną analizą wobec czego z z upływem czasu powstało więcej dokumentów które będą układały dodatkowe analizy tylko pod kątem bezpieczeństwa i na przykład owca powstał osobna ale właściwie tak samo grubej grubsze i jak podstawowa specyfikacje które mówi o modelu zagrożeń tego tego protokołu i nawet ten dokument został i do tego w tej chwili są dokładne nowy dokument dokumenty które są określane mianem b w społeczności które są produkowane zajmuje tak to mniej więcej tyle takie jest nasze najlepsze rozumiem jak to bezpieczne zaimplementować i te

specyfikację istnieją i są można z nich można z nich skorzystać i co ciekawe protokoły widzieli na warsztat ludzie z doktorami stworzyć formalną modele bezpieczeństwa które mogli przeanalizować się w swoich pracach artykułach i doktorat co ciekawe wyszło z tego kilka rzeczy których w niektórych nie złapały osoby pracujące w poprzednim dokumentami więc to też dokłada się do do tej dość grube już niektóre którą ktoś jak bóg cię zainteresować się od strony bezpieczeństwo musi musi poświęcić wszystko brali próbowaliśmy zastosować to do testowania naszego systemu i czy to było wystarczające i pomocne no i niekoniecznie albo na pewno dobrym punktem wyjścia problem który się pojawił się taki że w większości są to dokumenty skupiają się na komplementy osobami prezentujących

protokół różnego rodzaju roli tak więc na tym diagramie był aplikacja była i był budynek związku z tym każdy każda z tych ról w nie dostała dostała gdzieś tam swoje cząstkę w tym w tym dokumencie to był uwagi które były skierowane do osób i prezentujących nie było tam ani słowa na temat tego jak to jak to testować i zagraliśmy trochę rozwiązanie tego problemu stworzyliśmy coś co znaczy zaczęliśmy tworzyć zorientowaliście wcześniejszym narzekaniu ale tak jest dokumentach to jest to dosyć duży projekt długi proces zaczęliśmy coś co zaczęliśmy tworzyć coś co i i postanowiliśmy ustrukturyzowany sposób dokumenty udokumentować rzeczy które są w tych dokumentach akcji w tych modelach tych formalnych akademickich analizach zawarte natomiast staraliśmy się udokumentować taki sposób

żeby one były przydatne dla ludzi którzy są wściekli i tak czyli ludzie którzy się tym zajmują się marketingiem backhand zależy czy też w inny sposób zajmująca się testowaniem testowaniem bezpieczeństwo implementacji tych protokołów żeby oni mogli wziąć i spróbować przeprowadzić różnego rodzaju ataki w sposób trochę bardziej zorganizowana niż zrobienie rekonesansu i zobaczymy czy coś tu się czy też coś tu się nie zgadza albo i to jest dla większości implementacji dobre miejsce żeby zacząć albo popatrzeć sobie na przykład na publikację różnych źródeł na ekranie na bakterie spróbuję zrobić to samo zadziała w niestety przerażający liczbie przypadków co z tego wyszło jest że wiele z tych wczesnych latach udało nam się z automatyzować postaci skryptów więc musisz zawsze przeprowadzać inżynier

mamy tu trochę skryptów it to me niektóre parametr i próbujemy próbujemy dałem ataki powtarzać sposób zautomatyzowane tych którym się nie udało zautomatyzować i wsadziliśmy taką strukturę dosyć ustrukturyzowany mną jeżeli komuś to przypomina metra tak to dokładnie taki był cel chcieliśmy mieć my teraz tak dla auta i w naszym zespole to jest taki niekończący się w niekończącym się projekt niekończące się proces w tym sensie że jest to bardzo bardzo dużo a jak będziemy to mielić jakiejś takiej formie w miarę skończonej jest dużo osób w państwie które nie były zainteresowane opublikowaniem tego i na pewno będziemy to będziemy chcieli to otworzyć idziemy poderwać społeczności natomiast co się okazuje w rzeczywistości plantacjach byli testowani tych rzeczy tylko które które są opisane w

protokołach wiele nie ma tam wiele na temat tego co nazwałem to następuje magię użytkownik się uwierzytelnić coś tam robi te rzeczy są pominięte są to kwestie inflacyjne przeznaczone do samodzielnego wykonania przez identyfikator gier a i problem polega na tym że w większości te rzeczy opierają się przekierowania https no i jak sobie poczytacie o albo patrzycie właśnie na różne rzeczy które mogą pójść nie tak w na przykład zarządzaniem stanami sesją przygotowaniach to się okazuje że jest to bardzo żyzne pola dla pudełek na półkach żeby ją później albo atakujący albo security albo w najgorszym razie nasi klienci a co też niestety się zdarza że przychodzi klient mówi to chyba nie powinno tak być no faktycznie przepraszamy problem który tutaj się pojawia i to

jeszcze za chwilę pokaże jest to że to przeglądarka terminologia ona co chwilę jest na systemie nie ma ona jest w nas coś się dzieje przeskakuje do aplikacji wszystkie do kilku może przeskakiwać z kilku innych systemów to też wam za chwilę pokaże i to z punktu widzenia jest bezpieczeństwo jest problematyczne bo otwiera drogę do kilku dobrze znanych podatności takich jak science-fiction a e i o u y a e i o u y to są w ogóle niestety w takim chlebem powszednim pojawiają się za chwilę i to czego doszliśmy do jest to że to istniejące istniejące zasoby są fajne ale opisują ogólnoświatową i nie dają nam nie czegoś co moglibyśmy wykorzystać do konkretnych do testowania tej konkretnej

implementacji teraz pokażę różnorodność zachować naszego systemu z którymi może się z nią spotkać użytkownik w którym momencie w którym ma nastąpić magia i ona się uwierzytelnić najprostszym najgorszą rzeczą która się zdarza jest to że użytkownik przechodzi się zalogować prosimy go o podanie i maila i hasła już się robi i jest pięknie to jest tak zwany najprostszy kanonicznym przypadek teraz może być tak że w aplikacji nie tylko prosi o dane profilowe użytkownika ale prosi o tokeny za pomocą którego będzie mógł na przykład w menu użytkownika wysłać coś na slacka no i to jest wszystko fajnie możliwe do zrobienia nawet dosyć łatwo użytkownika trzeba poprosić o zgodę na to należało by było miło w stosunku do użytkownika żeby poprosić żeby się

zgodził żeby aplikacja x na przykład stronę pisać nie mogłem napisać na w imieniu użytkownika wysłać coś na fraga tutaj mamy już dwa ekrany przejście pomiędzy nimi to są dwa różne zestawy itp co chodzi nam tutaj zarządzanie zarządzanie czasem pomiędzy nimi zanim użytkownik zostanie uwierzytelniony tak się pojawia się jakiś jakiś prezencik to wszystko działo się przy założeniu że użytkownik naszym systemie zarejestrowany wiele aplikacji i w momencie w zalogowania się w momencie w którym wymaga logowania pozwala się nowym użytkownikom zarejestrować się w systemie i tutaj znowu dochodzimy do takiego momentu w którym mamy kilka niezwiązanych ze sobą i prostu faceta który trzeba w jaki sposób możemy się sesji które nie jest to ostateczny sesji użytkownika a jak on już się jak już się zaloguje

to cały czas mieliśmy taki przykład gdzie użytkownik ma login i hasło a co się dzieje z login i hasło ludzie zapominają tak więc częstokroć jest tak że przychodzi na myśl aplikacji której nie widział przez rok po roku jest drugiej stronie to samo kilka takich aplikacji moich logowania do tych aplikacji wygląda nawet nie próbuję sobie przypomnieć hasła oraz hasła i tutaj w ogóle zaczynają się pojawiać cuda wianki nie związane ze sobą rzeczy czyli jakieś tam dobra się zresetować swoje hasło aplikacja wysyłam ci coś na maila więc muszę iść do swojego klienta poczty który może być przeglądarce tej samej tak że siedzę na swoim laptopie i korzystać z poczty za pomocą interfejsu bojowego ale jeżeli korzystasz z klienta

poczty albo rzecz dzieje się na aplikacji mobilnej to to przeskakuje nie tyle do jakiejś innej strony w tym samym przeglądarce to wszystko byłoby do innej aplikacji z i tam klikamy sobie ten magiczny link znowu wracam do przeglądarki fajnie że to jest ta sama przeglądarka ale na urządzeniach mobilnych często nie na przykład urządzenia firmy starają się trochę potrzebuję często ale często robią tak że nawet jak macie ten problem zainstalowanego i przyjdzie wam do aplikacji pocztowej link hasło i klikacie otwiera się safari tak jeżeli to wszystko w miarę dobrze poinformowany i na całe szczęście jest i nie ma dostępu do elektryczności w związku z tym nie ma jak tych dwóch sesji ze sobą połączeni teraz ktoś resetuj hasło

w safari ale chciałbyś zalogowana w chrome tak nic o tym nie wie ale pojawiają się pojawiają się niedogodności fajnie czasami firmy nam dają możliwość zalogowania się tożsamością z jakiegoś innego serwisu na przykład społecznościowego i w tym momencie przychodzicie się zalogować gdzieś tam zostaniecie przekierowani na stronę i na twittera klikacie chciałbym się zalogować się za pomocą konta google jesteście przekierowani na stronę googla tam się loguje się tam być może znowu musicie zrobić coś jeszcze to na przykład wyrazić zgodę na coś tam jesteście przekierowywanie z powrotem do domu i potem się przekierowywanie z powrotem do aplikacji są 3 różne domeny które biorą udział w jednej transakcji które dzielą między sobą cząsteczek zarządzanie sesją jest to że tak powiem

troszkę trochę karkołomne czy ktoś z was próbował się do aplikacji na nie wiem telewizorze i bok się albo czymś takim jak to jeden z dwóch kolegów i w niedawno w takim dominującym sposobem zrobienia ponieważ te urządzenia z reguły mają taką niepełnosprawną przeglądarkę internetową żeby poprawić user experience użytkownika powstał nowy produkt który się nazywa się bodajże 12 lis 2014 adres nakładką na auta które umożliwia zrobienie następującego tylko wchodzicie na się zalogować do aplikacji na telewizorze telewizor pokazuje wam kod widzieć na swoim urządzeniu na przykład na telefonie albo na laptopie na odpowiednią stronę która też jest gdzieś tutaj pokazane na telewizor telewizor i wpisz ten kod więc dzieci pod tym numerem wpisujecie ten kod tam z kolei

aplikację każe się uwierzytelnić może być także podać login i hasło i to wszystko może być także podać login i hasło musi się na to zgodzić może być także przekieruje was w piątek kieruję do google musi wyrazić na to zgodę no i ten flow się wydłuża wydłuża się komplikuje i koniec końców klikacie kończy są transakcję w telefonie albo na laptopie i dzieje się magia to nagle gdzieś tam pod spodem transakcja synchronizowane z waszymi z boksem albo albo telewizorem i tam się tam zostaje zalogowani więc nie tylko mamy wiele aplikacji wiele domem na jednym urządzeniu w tym momencie mamy już do do czynienia z wieloma urządzeniami które uczestniczą w jednej transakcji oczywiście każdy kto się interesuje bezpieczeństwie że modlitwa którą z tych

rzeczy nie jest dobra i tu mamy tę samą historię ktoś chce się uwierzytelnić wpisujemy login i hasło albo jest wysyłane jest puszcza telefon albo trzeba wpisać kod który został wysłany do aplikacji albo sms-em więc znowu otwieramy albo maila na przykład ten otwieram jakieś inne urządzenie przepisujemy kod coś tam klikamy to jest cały czas jedna transakcja a niech was z przeproszeniem bóg broni jak nie mieliście skonfigurowanego tego a jak chcecie się zalogować po raz pierwszy i musisz skonfigurować sobie aplikacje do one potworów i niestety taki niski graficzne moje ani na ekranie miejsce nie pozwolił mi zobrazować w którym czujecie się zarejestrować skonfigurować aplikację do a potem się zalogować jak widzicie jest tu strasznie dużo rzeczy które

protokoły tak jak o it easy app 3d i connect zamykają jednym użytkowniku uwierzytelniania natomiast rzeczywiste produkty rzeczywisty identyfikować jak widzicie ma dużo większą dużo większy problem do rozwiązania a teraz mój zespół zaczęliśmy się zastanawiać jak sobie z tym poradzić jak zacząć testować była kombinacją do przetestowania jest możliwy problemów do wystąpienia trochę nas przyprawić o ból głowy i na szczęście sobie przypomniał że kiedyś pracowałem w innej firmie która implementowane protokoły sieciowe i tam pracowaliśmy z takim modelem że każdy protokół to jest de facto maszyna stanów tak jak sobie popatrzeć na to co i klient i serwer podczas ustawiania połączenia defacto przechodzą przechodzą jakoś tam maszynę stanów stwierdziliśmy że być może spróbujemy sobie poradzić w ten sam w ten sposób

więc każdy z tych produktów które mamy prąd to jest albo użytkownik odwiedza nas jakiś remont albo wyświetlany mu prośbą o zalogowanie się prostsze wpisanie kodu jednorazowego przy przenoszeniu albo problem dla nas na przykład od wysłania użytkownika do zewnętrznego systemu takiego jak google i w momencie w którym on wraca do nas jakiś problem bo użytkownik coś przeprowadzając interakcje z naszym systemem i teraz chcieliśmy to zamodelować w taki sposób że każdy prądu nas stan w maszynie stanów i w tym zaczęliśmy myśleć to w konkretnych i prezentacjach nie wszystkie przejścia pomiędzy stanami są dozwolone tak to znaczy nie jeżeli na przykład transakcji jest wymagane zgody przez użytkownika tak zwany konsensusu nie możemy przejść od początku flow po zalogowaniu się na

swoje konto było ominięcie stanu i dane konkretnej maszynie stanów takie przejście powinno być zabronione co więcej do niektórych stanów i przejść możemy chcieć wycofać dodatkowe gwarancje bezpieczeństwa tak niektórych przypadkach chcielibyśmy żeby zawsze była to ta sama seria przeglądarki w innych przypadkach możemy poczuć z takiego założenia że na przykład jest to aplikacji mobilnych i wiemy że może się zdarzyć tak że to zawsze będzie kontynuowana w przeglądarce i tego typu rzeczy maszynę znaną też pozwalają nam zamodelować także to możemy sobie pozwolić na przykład na to żeby wysłać jakiś czas temu i spodziewać się w innym przejść do samo ciasteczko będzie innych w innych przypadkach nie no i teraz pojawia się taki problem i jak generować takie maszyny stanowią

i tutaj moje naiwne i nieco optymistyczna doświadczenia z przeszłości gdzie pracowaliśmy z dużo bardziej ustrukturyzowane języki programowania jeszcze o tym za chwilę powiem pozwalały nam próbować generować takie maszyny stanowią w spokoju źródłowego tak to się jakoś tam dawał aczkolwiek było trudne my pracujemy z taką technologię która jest to absolutnie niemożliwe więc drugim drugą opcją którą mamy generowanie tych maszyn stanów w trakcie przeprowadzania testów tak mamy baterię testów automatycznych i w trakcie tych testów generujemy maszyny stanów które testy które testy wyzwalają jeśli powiesz to w domu to są fajne narzędzie taki język do który umożliwia tekstowy opis grafu jest taki zestaw nowych aplikacji w którym wam wygeneruje z tego ładny obraz w którym będziecie mogli sobie będziecie mogli sobie

analizować i teraz trochę zaczął narzekać na nasz sposób technologiczny a mianowicie nasza główna aplikacja i implementacja

oznacza że programujemy to wszystko dla was crito z tego punktu widzenia w ogóle nieśmieszne nasz wszystko to jest oparty o taką nową piosenkę express który umożliwia jakby komponowanie programu z setki milionów dolarów w ciągu funkcji które są wywoływane 120 hp używamy do uwierzytelniania biblioteki paszport i do tego jeszcze na całe szczęście ten maszyny stanów nas w i u nas w aplikacji są jakby takim typem który tam istnieje tak mam taką bibliotekę open source sobą wykorzystano które się nazywa flow state i ona umożliwia nam konfigurowanie tych maszyn stanów i że nie ze sobą różnych przejść więc ja pracuję w ten sposób że wydajemy jakąś tam instrumentacji podczas testów do do tych maszyn stanów i je sobie

generujemy tak żeby wam pokazać taką prostą taką prostą maszynę stanów cała zabawa zaczyna się użytkownik przychodzi do domu i potem jest przekierowywany do ekranu logowania i teraz użytkownik ma dwie opcje tak żeby pamiętać hasło może sobie się zalogować i zostałem poproszony o zostają wysłane kod jest jednorazowy on gdzieś tam podaje ten problem a i potem przechodzi do ostatniego punktu wagon sen który umożliwia mu wyrażenie zgody na to co aplikacja i w proszku i 1 purified water i jak użytkownik nie pamięta co jeszcze po drodze można odwiedzić jeszcze jeden bronzerem zresetowania hasła i razem z tym efektem przejść no i teraz popatrzymy sobie na taki na taką maszynę stanów i zadajemy sobie pytanie czy dałoby się ominąć cały ten

cyrk i przejść od razu od autora zapominać logowanie pominąć się z hasłem i od razu przejść do konsumenta w imieniu jakiegoś tam użytkownika gdyby tak udało się zrobić pamiętajcie że to wszystko jest w oparciu o to co protokół ftp w związku z czym każdy z nas do każdego z tych punktów można się dostać po prostu wysyłając request tak więc jeżeli zarządzania stanem transakcji pomiędzy tymi punktami jest zaimplementowane poprawnie to być może uda się wykonać jakiś sposób takie przejście i to byłby to byłby udany atak jest natomiast jak już nawet sobie po generujemy takich maszyn stanów trochę pojawia się takie pytanie w jaki sposób je w jaki sposób i analizować no tutaj ta maszyna jest dosyć prosta i możemy

sobie będzie ok spróbujmy pominąć krok 1 drugi ale tak naprawdę będzie nam po chwili tych kombinacji będzie bardzo dużo jedno podejście które można zastosować to stosować podejście znane z modelowaniem zagrożeń tak potraktować taką maszynę znaną jako diagram przepływu danych i zastosować na przykład frajda do wszystkich przejść i próbować analizować zagrożenia w opisie ponumerować i spróbować spróbować przetestować to trochę czy to działa ale znowusz jest bardzo bardzo kłopotliwe tak naprawdę dużo bardzo dużo problemów wynika z tego że udaje się obejść różne stany w związku z tym od tego należałoby zacząć czy jest jakiś stan w którym można można to atakujący mógłby mógł przeskoczyć tak i ostatni taki aspekt który my analizujemy zazwyczaj ręcznej na szybko to jest

zarządzanie czasem tak czy tam gdzie się spodziewamy się użytkownika zostanie utrzymana mamy odpowiednie kontrolki po stronie serwera żeby zlikwidować tę sesję i tak dalej i tak dalej no i teraz jeżeli byście chcieli zapamiętać tej prezentacji trzy rzeczy to są to postępujące że testowanie protokołów tak naprawdę jest jest dosyć trudne i jeżeli nie musicie tego robić tego po prostu nie róbcie tego to i prezentację która została przetestowana wobec sobą albo komercyjne znajdzie się w sytuacjach takich jak wy musicie protokoły w jaki sposób testować dobrze jest zacząć od tego co inni już tej już w tej w przestrzeni zrobili a natomiast jeżeli macie bardzo konkretny produkt który jesteście odpowiedzialni on jest bardzo skomplikowany i to jest wasza i nasza

praca żeby przetestować albo jest to wasza praca żeby go zaatakować różnie bywa różnie bywa to maszyny stanów są zdecydowanie zdecydowanie narzędziem które powinniście spojrzeć to wszystko z mojej strony znaczy to jest to jest prawie wszystko z mojej strony ja się nazywam się marcin pracuję w audi roku oprócz tego mam przyjemność być członkiem sea org grubszy not just one direction i prowadzę też jest śmieszne projektu ustawy i jeszcze w związku z tym w przejdę jakbyście chcieli coś mi się przypomniało byście chcieli o coś zapytać to są moje dane kontaktowe zawsze chętnie odpowiem na wszystkie maile ewentualnie nie zatrzymał zaczerpnięty w związku z tym z tym tematem dla was taki mały dinger a mianowicie gdyby to jednak była wasza praca i

musielibyście na przykład zaimplementować aplikację która korzysta z auta i integruje się z prowadzeniem samochodu osobowego projektu oraz przycisk zaczęliśmy pracę nad czy trzy tam i najprawdopodobniej wieloma opisujący mikołajowi korekta i one dadzą wam taki prosty przepis na jak ominąć wiele pułapek z którym się spotykam na co dzień zarówno w naszej pracy nad naszym produktem jaki widzimy w tym jak klienci reagują naszym naszym produktem jak wszystko łatwiej jest to darmowe i ogarnięte przez community i i nacisk tutaj jest na to żeby dać deweloperom proste narzędzie do tego aby budować bezpieczną aplikacje integrujące się z autem i teraz to już naprawdę wszystko dzięki

a teraz jest propozycja z mojej strony ja mam jedno pytanie więc zacznę ewentualne pytania ale też ja mam propozycję boicie marcina połączyć w kuluarach i wyciągnąć wszystkie te informacje na temat tej prezentacji z tego czym autoryzuje swojego maca tak będę to kręcił czy czy wolicie go podłączyć teraz na streamie gdzie możecie mi powiedzieć co jeszcze mamy chwilę czasu chyba tak jasny napis mam nadzieję że to było takie moje pierwsze pytanie moje cześć piotrek

mówisz coś co może być z tobą trochę ale przekierowania mogę wyrzucić mu latarkę i skupił na przykład dobra dobra czy prezentacja była taka z mojego punktu widzenia odrobinkę reklamowe jedna rzecz jaką można było zmienić to że świetne rzeczy robić a że warto warto kupić je od was coś konkretnego i żeby można było się dowiedzieć bardziej takiego technicznego jakiś kawałek mięsa jakaś jakaś jakieś co znaleźliście albo albo jakieś jakieś jakieś jakieś techniczne rzeczy na które poza operation warto zwrócić uwagę coś takiego merytorycznego byłoby fajne na tego typu konferencji tak rozumiem że to żeby żeby to nie był tylko prezentacja nie ma takiego czysto reklamowego charakteru i to znaczy tak trochę celowo nie mówimy o rzeczach które znaleźliśmy

natomiast tak jak mówię o y to są takie rzeczy które akurat są dosyć popularne ale wyszły z tych naszych pierwszych testów gdzie faktycznie jest w tych wszystkich modelach zagrożeń i wersji jest napisane żeby uważać na efekty google na przykład miało bardzo duży wpływ na związany z dyrektorami tak żeby to pomimo tego że wiedzieliśmy o tym i testowaliśmy to raz czy drugi zdarzyło nam się w różnych miejscach jakiegokolwiek ta mieć w miejscach na przykład to się w ogóle nie spodziewaliśmy bo najczęstsze najczęstsze miejsce w którym komponent y można popełnić to są to przekierowanie między przychodzicie do aplikacji aplikacja wysyła do it potem siebie i to co was do aplikacji to jest miejscem w którym najczęściej ceneo.pl i direct

wyskakuje na zewnątrz na przykład się okay gdy w parlamencie tak długo się zastanawiali się czy problemem ale wyszło nam że jednak [Muzyka] aplikacje integrują się nie tylko użytkownika natomiast gdzieś tylko są ukryte w aplikacji i użytkownik może zostać tam odesłany że gdzieś ten ruch jest gdzieś tam przejęte powiedzmy taki mniej ciekawy przypadek a na czymś mniej częsty przypadek na przykład mailingowe z linkami które prowadzą do buntu i tego maila derek ta to jest to jest większy problem czy zdarzyło wam się coś innego z tych rzeczy tak naprawdę te nasze zabawy z maszynami stanów jest coś co nas zaczęliśmy robić nie mam jeszcze jakiegoś takiego nie mamy jeszcze dużo rzeczy które byśmy znaleźli w sensie bagów ale jest to

znakomite narzędzie do tego żeby zweryfikować czy wszystkie kontrolki bezpieczeństwa po stronie produktu zerowego zaimplementowane tak jesteśmy w stanie popatrzeć na okej tutaj powinno być zweryfikowanie na przykład sesji możemy sprawdzić czy odpowiednimi w ekspresie jest jest dodany i to jest i to jest fajne narzędzie wyszły dobrze czy fajne związane z tym etapie gry w momencie w którym zrobiliśmy automatyzacji część z tych testów no to faktycznie znaleźliśmy znaleźliśmy buggy natomiast nie było bardzo ciekawe po stronie naszego serwera i natomiast były to banki po stronie naszych bibliotek klienckich tak czyli dajemy naszym klientom z do które mogą sobie wykorzystać swoich własnych aplikacjach i i przez to że ta aplikacja miały banki które wykryliśmy tam a mogą one zostać

przeniesione prosto do aplikacji naszych klientów tak więc zdecydowanie się to to zdecydowanie się to przydało jeszcze jakieś pytanie aby pół godziny nie martw się nie martw

wspomniałeś tutaj o tym o was przydziale ponieważ nie wiem w jakim jest stanie aktualnie to pozwolę sobie zapytać jakieś takie top gear i problemów w momencie jak ludzie się integrują z wami to ta prezentacja była ta która z perspektywy właśnie tak dalej ten provider natomiast jak to się z wami integruje gdzie są najczęstsze stopy to znaczy zależy jak to robić ludzie którzy korzystają z istniejących biblioteki wavin z naszych żeby się zintegrować z jakimkolwiek na przykład programowi korekta wiele rzeczy jest załatwione zanim tak tam są na przykład są chłopaki które są dwa parametry które trzeba ustawić na jakieś losowe nosy i potem trzeba zweryfikować że te same włosy wracają jak ktoś już biblioteki większych bibliotek załatwi za nich jest

kupa kupa deweloperów którzy mnie adam biblioteka będę używał sam to zrobię wszystko tylko są 2 y t tak no i co się okazuje że często albo tych nocach nie wiedzą albo zapominają albo nie weryfikuję ich poprawnie czy weryfikują i rzucił jakiś nosa czy to jest z tej samej sesji która została wysłana to już jest trochę cięższe do ciszy do weryfikacji jest też tak że trzeba i to akurat mówiłem o tym roku mu to co wraca do nas tutaj wykonać na przykład informacje na temat użytkownika i jego danych profilowych wracając do pytania ten czas weryfikować i wychodzisz z trochę trudniejsze niż niż większość ludzi w sądzie tak znowusz jest to proste jeśli korzystasz z gotowego rozwiązania które nie wie jakie

są na przykład ataki na wie że trzeba programistę poprosić o to wprost żeby zweryfikować na przykład dla kogo jest ten wystawionych przez kogo bo jeśli tego nie zrobisz to użytkownika a dobra a ten to chyba poprosiłem i może w ten sposób ponieważ wszystko to co dzieję się znowu tak jak powiedziałem przez direct ty to może być najlepszym atakiem ale chicago w którym w celu jest zawarte taki token taki może prowadzić do powstrzymania się od albo a potem użytkownika albo w drugą stronę może prowadzić do tego że atakujący w stanie pożyczyć twój token użytkownikowi ofierze i wtedy ofiara porusza się w z uprawnieniami atakującego może się wydawać że to jest bez sensu natomiast w innych systemach może to prowadzić do

wycieku informacji tak go dotknąć później w stanie się zalogować na normalnym swoimi login i hasło do konta i widzisz wszystko co użytkownik zrobił nieświadomie do końca tak więc jeżeli użytkownik nie połamałbyś się w czasie że znajduje się na swoim koncie mógł zrobić rzeczy które które powodowały niego jakiś tam ciekawych informacji tak czyli z takich rzeczy o których często rozmawiam z klientami to jest zarządzanie tymi dwoma głosami które są potrzebne w różnych miejscach pewno poprawne weryfikacja tokenów które wracają i teraz wiele z tych tokenów który wraca to jest całkiem z danymi projektowymi on z reguły jest mniej wrażliwy bo on nie powinien nie daje albo nie powinien dawać uprawnień dlatego że na przykład w imieniu użytkownicy aplikacji mogą

zrobić w jakimś innym systemie często wracają też do aplikacji tokeny takie właśnie dostępowe i teraz jest taki problem powstaje gdzie tokeny przechowywać tak generalnie odpowiedź byłaby taka że nie w przeglądarce i to jest najlepsza odpowiedź tam gdzie możemy to pokazać w jaki sposób chroni czyli po stronie serwera naszej aplikacji natomiast nie we wszystkich przypadkach zawsze możliwe na przykład kilka naszym przypadku są aplikacje mobilne tak często takiego tokenu potrzebują gdzieś tam u siebie akcja będzie takie trzy rzeczy te nosy weryfikacja tokenów i przechowywanie tokenów aplikacji ktoś coś czego brakowało dobra panowie a także jakby ktoś jeszcze chciał o coś zapytać to zadanie marcin zapisał się na obiad na obiad będzie na lunch w razie czego także to