
od wieków temu w dowolnym byłeś jeszcze miałem ciebie zapytać nakazali że wróciłeś witajcie w tym roku w tym roku a mikrofon gdzie masz w legendzie nauczmy czy zwykły wesołych i
cześć
ale zobacz masz swój rola tam stoi dnia fajnie włączyć mikrofon elo
co mówisz zawodu jesteś cześć bezpieczeństwo it ale o tym będę mówił a to dobrze że nie obawiałbym się wojtek to działa okej to cześć wszystkim witam w tamtym roku tutaj też napisać wprowadziłem taką prezentację o open testach aplikacji i osobowych bez j k no i nie chciałem żeby ten motocykl prezentacyjnych był taki można powiedzieć nie konstruktywne że pokazuje tylko to ofensywną stronę działanie aplikacji atakować nie chciałem tylko pokazać że się śmiejemy względów bezpieczeństwa w tych aplikacjach dlatego w tym roku zdecydowałem że przedstawię wam prezentację potem budowanie ich zachowanie nowoczesnych aplikacji ios gdzie przede wszystkim skupiajmy się na tym jak faktycznie te aplikacje budować gdzie te błędy są ale to jest taką pierwotną przyczyną tych błędów
a także tutaj już wkrótce został przedstawiony ale ja nazywam się wojciech rudzki jestem starszym specjalistą do spraw bezpieczeństwa it w ringu a gdzie zajmuję się głównie właśnie bezpieczeństwem aplikacji na ios sie w wolnym czasie prowadzę bloga właśnie o tematyce a typowo aplikacyjnej ale głównie na ios i i też makowej no i też ktoś może mnie kojarzyć co was tu gdzie kontynuowałem do projektu security network okej no tak że ja się nie przedstawiłem teraz chciałbym dowiedzieć się czegoś o was także ręce w górę ci którzy kiedykolwiek programowali cokolwiek na ios aby mieć jakąkolwiek inną platformę handlową w roku mojemu zdziwieniu jest na całkiem sporo dobrze a jak to jest z działów bezpieczeństwa okej czyli większość a programiści
dobra to teraz najtrudniejsze pytanie kto kiedykolwiek was oprogramowania coś na isa-3 zajmował się zabezpieczeniem i usa po prostu kurczę myślałem że nie podniesie ani jedna ręka tutaj naprawdę dziwko dobra no to super no to w takim razie do was głównie będzie ta prezentacja także powiemy sobie o tych najczęściej występujących błędach na i okresie ale oczywiście nie mamy czasu powiedzieć o wszystkim tak że ja staram się wybrać te najciekawsze inaczej najczęściej występujące podatności a przez całą prezentację kontakt do mnie będzie wyświetlana u góry tak że gdyby ktoś chciał się skontaktować ze mną nie bezpośrednio po prezentacji tylko gdzieś tam dalej na social media no to oczywiście zapraszam dobra no to agenda na początku obalimy sobie parę mitów związanych z ios i bo
mam wrażenie że dużo takich na rozwój chciałbym tutaj parę rzeczy jednoznacznie zdemontować następnie przejdziemy przez wybrane problemy ale też pokażę jest taki szczęśliwy mamy rozwiązania tych problemów no i co roku jest zorganizowana taka konferencja w usa gdzie aby wprowadzić dla developerów warsztaty z tego co się stało w tamtym roku jak mają wdrażać te nowe ćwiczenie które stworzyli więc my sobie przejdziemy przez te 4 security głównie z 2018 roku a to z tego względu że w tym roku raczej ale skupiono się na bezpieczeństwie maxa na tablicy więc najwięcej tych czarów a jednak jest roku 2018 następnie pokażę wam trochę przedpremierową moją nową bibliotekę itunes dlatego teraz nie będę tolerował powiedzmy sobie jak faktycznie te rzeczy o których będę mówił rozłożyć gdzieś tam
dalej wschodzie który może być implementować w tej prezentacji okej no to jesteśmy w tej części pierwszej pierwszym it czyli przegląd kodu html jest w stu procentach miarodajny i słuchajcie to jest taka naprawdę bardzo ciekawa historia jako pierwszy raz zobaczyłem to naprawdę nie mogłem w to uwierzyć a nie czytali ten kolor to też nie ma sensu ale zwróćcie uwagę tutaj na metodę która się nazywa i w cupertino to była to jest aplikacja która został wychwycony już w app storze czyli już faktycznie ale przeszło ten aplikacja przeszła już richard proszę znaleźć to myślę że z gardła i firewall to prawdziwa aplikacja i teraz jak się pewnie nie spodziewacie i cupertino odpowiada na pytanie czy aplikacja została uruchomiona w cupertino ale
dlaczego z punktu widzenia aplikacji która była złośliwa jest to ważna informacja otóż ale główną siedzibę właśnie w cupertino więc ta aplikacja złośliwa sprawdza podczas uruchomienia podczas tego ni z owego czy ona faktycznie znajduje się w cupertino jeśli tak jest jestem w cupertino to znaczy że zrobili ktoś zapyta więc schowam te wszystkie złośliwe funkcjonalności i tak przeszła także to jest bardzo ciekawy a drugim miejscu w którym gdzie się spotykamy w rozmowach z programistami też z naszymi klientami słuchaj do już nie ma sensu tego isa-3 a generalnie analizować tych aplikacji nie ma sensu jechać na tyle pieniędzy no bo przecież i tak najnowsza wersja jest nie ma już jailbreak a my w zasadzie jak dostać się do tych aplikacji no nie za
bardzo się nie da no ja pokazywałem w tamtym roku prezentacjach to zrobić ale tam też miałem kilka założeń na przykład takie że muszę mieć w tą paczkę aplikacji wersji odszyfrowane i to jest ciężkie do zrealizowania w początkowym stadium raka ale to też jest nic już aktualnie powstał a to nawet open source nowy nazywa się endless i muzyka githubie jak ktoś chce to proszę bardzo można sobie go pobrać a jak widzicie ten jailbreak jest już wersji 12.4 czyli w zasadzie prawie najnowsze ios to jest który był to dwa miesiące tam coś takiego najnowszy także no tutaj już naprawdę h mamy patrzy najnowszą wersję a k ale tak naprawdę ten slajd powinienem jeszcze bardziej zaktualizować bo niedawno myślę że dwa tygodnie temu
około a wyszedł taki eksperyment o nazwie się nazywał a i to jest eksport który już faktycznie powoduje że w naszym uderzaj w nowym możemy uruchamiać nie podpisane przez lata od i co ciekawe jest to exploit na komponent iphone'a który jest nienaprawialnej ale nigdy tego nie będziemy w stanie naprawić czyli mamy do iphone'a x a gwarantowane jailbreak już na zawsze tak naprawdę oczywiście tam wygaśnięciu certyfikatu tutaj gdzieś tam ale no to jest 2032 czwarty rok coś w tym stylu a także jak widzicie jailbreak i przez to że możemy podbijać bootloader albo raczej wykonywać tam niepodpisanych od no będą jeszcze nam towarzyszyć przez najbliższe parę lat tak że jest to faktycznie jakieś ryzyko i nic trzeci czyli brak jailbreak
uniemożliwia rysowanie apek no i to też jest taka informacja z tym spotkałem się od jednego z naszych klientów i nawet gdy ten jailbreak zniknie no to okazuje się że już się pojawiło tak a pojawiła się taka platforma o nazwie kolegium że to pytanie kto z was słyszał o kraju obsłudze tak niewiele osób więc nakreślę o co w nim chodzi a w korei to jest pełna wirtualizacja i usa czyli generalnie rejestrujemy się na stronie corel.com a wybieramy sobie którego iphone'a dokładnie chcę może to być x najnowszy z nich to będzie xs wybieramy sobie dokładnie najnowszą wersję i usa klikamy w menedżer tworzy mamy do niego dostęp jak tutaj widzicie a po ssh możemy normalnie podkreślić wagę więc ten iphone zostaną
odblokowane zawsze będzie zweryfikowany bo to jest pełna wirtualizacja urządzenia swoją drogą ale pozwalają kolegium no to że jest to niezgodne z licencją i usa ale zobaczymy co co z tego wyniknie i procesy mogą trwać ileś lat nawet także to też prawdopodobnie umożliwi nam reverse flasha tak przez bardzo długi czas i dobra no to w takim razie przejdźmy do wytwarzania oprogramowania w miarę stałe się zaczynamy jak zawsze od architektury a więc tak zaczął mówić architekturze i lesie no to musimy na początku zdecydować się na języku programowania który w ogóle chcemy gdzieś tam w naszej aplikacji użyć no i tak się składa że na iphonie mamy w zasadzie dwie możliwości mamy albo swoich tam ten nowy język
programowania bądź object types i który tak naprawdę jest tylko wiadrem na c a więc objective widzicie też większość tych płatności charakterystycznych dla c tutaj chciałam porównać w czym swift już aktualnie może być lepszy na przykład spójrzcie jak mamy ingerował flow no object 140 gdzieś tam pod spodem to wszyscy wiemy co się dzieje na świecie mamy na przykład runtime error a chcemy nazw musicie mieć dostęp bezpośrednio do pamięci to generalnie odbywa się skrajni rzadko ale możemy to zrobić to używamy metod o nazwie na przykład francis po internecie i w tamtej chwili już generalnie sugeruje programiści że nie jest to bezpieczne rozwiązanie więc swift umożliwia jednak ten dostęp do pamięci w skrajnych przypadkach ale od razu programista wie
że no na to zwróćcie uwagę bo to nie jest metoda która jest tutaj gdzieś bezpieczna i podatności z serii forma spring no to oczywiście też są nieszkodliwe bo interpolację stringów czyli w zasadzie no ciężko jest to zrobić jakiegoś format stringa ale tutaj względem architektury i w języku programowania na ale też urosło parę mitów i właśnie mieliśmy takiego klienta który powiedział mi wojtek ale zaznaczyć w raporcie że nie zaobserwowaliśmy naszej aplikacji na ios i ale przecież on jest w ciemno i przecież sam pasuje do tego co my mamy zrobić myśleliśmy że to robi faktycznie język a no i tutaj przyznam że trochę mieszało nie powiedział mi wprost że ten swój ale mówi że tam już są w drodze mechanizmy
które utrudniały wersji i tak dalej i tak dalej i to zostało czasami błędy odebrany jak widać jako obserwacja ale nie tutaj nie ma żadnej obserwacji to dementuje to co swojej drogi to jest tak zwana dekoracja nas po polsku podobno się tak nazywa czyli i marketing jak coś programować w c prostu się to prawdopodobnie nie wie o co chodzi ale dla przykładu mamy taki konflikcie a czyli mamy jakąś tam klasę testową która co sekundę wywołuje to generalnie co sekundę jest zwracana liczba powiększone o jeden taki zwykły powiedzmy że zegar a więc mamy klasę jedną zmienną instancji ten konstruktor i nic dwie metody skonfigurujmy teraz sobie ten kod i użyjmy na tym że nie ma i przekręcamy po wystąpieniu właściwego
test klas no i jak widzicie trochę tutaj dziwnych znaczków nam połyskiwał ale też już na pierwszy rzut oka możecie zauważyć że to nie są znaczki które są losowe tam jest jakaś jedna informacja którą można odwrócić no i tak się składa że tutaj po lewej na dole umieściliśmy legendę dzięki której możemy dokładnie odtworzyć co te symbole oznaczają ale mało tego ale samo nawet ostatnio do tego narzędzia bo wystarczy że klikniemy to przez miksera nas zdejmę górę i tutaj mamy bardzo konkretnie informacje no co tutaj faktycznie się dzieje w tym kodzie więc jak widzicie to nie ma żadnej obserwacji i kolejny mit który też gdzieś usłyszałem o tym że metody swoich to wy nie mogą być modyfikowane dynamicznie czyli nie można
robić tak zwanych e-booków no i to też jest oczywiście bo no bo skoro powiedzmy że to jest porównywalny do celów plusa to zawsze możemy złapać przecież symbole a to pytanie dostali kto wie czym jest frajda okej to dla tych którzy nie wiedzą frida jest to narzędzie właśnie do instrumentacji dynamicznej przeznaczona głównie dla developerów tego nie muszą wcale używać pt rzeczy generalnie osoby związane z bezpieczeństwem it ale to też jest bardzo fajne narzędzie do logowania napisanych aplikacji no i jak to działa spróbujmy schować tą metodę krok to co tutaj się dzieje w tym to jest zwykły kod javascript po prostu łapiemy ten symbol i na oliwie czyli w każdym w momencie kiedy funkcja zwraca literę a
tam część się uruchamia w tym przypadku zwracamy podmieniamy wartość która jest zwracana 1337 tak no i zobaczymy czy to faktycznie działa cześć
słuchają słów testera jak widzicie zgodnie z oczekiwaniami co sekundę jest pijana liczba no i teraz możemy użyć chwilę
no i james nie ma i za każdym razem ta liczba będzie 1337 czyli to baliście się mit udało nam się faktycznie to pod podmienić zwracana wartość cześć
ok także wniosków odnośnie architektury to w faktycznie pomaga nam unieszkodliwić te wszystkie binarne podatności charakterystyczne dla c a faktycznie nie mamy tych problemów związanych z bezpośredni dostęp do pamięci aczkolwiek jeśli sami chcemy to możemy sobie wsadzić ich w których i to zrobić ale generalnie w naszym kodzie już to raczej nie powinno występować a no i obserwacji jak już wcześniej wspomniałem nie ma jeśli ktoś z was jest zainteresowany obsługę swojego kodu to co mogę polecić takich też open source nowy projekt o nazwie sweet okej no to przechodzimy płynnie do kategorii czyli do przechowywania danych no i tutaj najczęściej spotykamy się z w ogóle w danym i których nie powinno być absolutnie na urządzeniu bo one tam po prostu nie są
potrzebne i sprawiają no tak nadmiarowe tak no i co to może być to mogą być na przykład etap i gdzieś tam na przykład amazon nowej tak dalej chmury co ciekawe już parokrotnie spotkałem się z kluczami ssh no i ja to teraz nie potrafię sobie odpowiedzieć na pytanie dlaczego w ogóle ktoś w aplikacji i osoby i umieszcza klucz ssh które gdzieś naprawdę a potem były kochane no no ciężko mi sobie odpowiedzieć na to pytanie a no i to też słynnych a z konta testowe kojarzymy tutaj jeden raport bankowy gdzie właśnie przez konta testowe które działały na produkcji atakujący mogą robić różne straszne rzeczy także proszę was konta testowe a szczególnie te które działają na produkcji to nie jest coś co
powinniśmy umieszczać w paczkach z aplikacjami trzeba no ale są takie dane które jednak musimy przechować na urządzeniu mimo tego są poufne na przykład to mogą być jakieś klucze sesji tak on już muszą na tym urządzeniu się znaleźć no i tutaj zaczniemy sobie od końca od ostatniego tego punktu generalnie te małe sekrety powinny być przechowywane w ćwiczenie ale słuchajcie jeśli chcecie przechowywać klucze sa którego w ogóle nie powinno tam być to i tak nie jest dobrym rozwiązaniem tych danych nie powinno tam być więc dlatego byłem nawet w kieszeni jeśli w ogóle nie powinny być na urządzeniu brak ćwiczeń jest bezpiecznym miejscem miejscem przeznaczonym do przechowywania sekretów ale tylko tych które powinny być na urządzeniu as a z miejsc w których te
sekrety nie powinny być przechowywane na to zdarza się ale właśnie w tym kontekście afery z ich sercach mamy też często do czynienia z sekretami w zwykłych replikach a nawet w hartowane po prostu bezpośrednio w tych pracach wykonywanych cześć wam pokazałem będziemy w stanie aplikacje rysować także mamy też dostęp do tych plików a no i ryzyka z tymi danymi a też można powiedzieć że jest często niedoceniane no bo to tak naprawdę może się stać jak ja będę przekazywał na przykład hasło w informowaliście albo jakiś innych no do tego nie wskazanych miejscach mamy takiego researcher a bardzo znanego w środowisku biznesowym a oni uznali go za kłamcę który ale zrobił research odnośnie i wspaniałego na ios i jak
widzicie jest całkiem dużo tego złośliwego oprogramowania które jako input bierze vegas park narodowy no i tutaj się okazuje tam nie bezpiecznie przechowywane właśnie często tego backupu trafiają więc też te złośliwe oprogramowanie potem może do niego uzyskiwać dostęp y no więc zastanówmy się gdzie w ogóle te pliki jak to są pakowane są przechowywane jak widzicie mamy te wszystkie dokumenty library oprócz oczywiście wszystkich plików tymczasowych wszystko trafi nam do okapu i klatkowego tak jak obiecałem że pokażę wam też wieczory z w zus-ie no i tutaj bardzo fajną rzeczą jest reforging extension czyli w naszych natywnych aplikacjach możemy korzystać z pasków o nowych klientów i password tak dalej a żeby to zrobić żeby usprawnić działanie takim trenerzy prowadzą żeby z naszymi
aplikacjami dobrze działa w końcu jesteśmy zajmuje się bezpieczeństwem jak to wyjdzie bo większości podniesionych rąk to powinniśmy jednak promować niebezpieczne zachowania więc spróbujmy te zachowania i stwórzmy nasze aplikacje tak żeby faktycznie te prezenty provider y działały poprawnie z naszymi aplikacjami a żeby to zrobić w zasadzie zmian w kodzie jest bardzo mało więc mamy input tekstowe to musimy im po prostu ustawić odpowiedni kąt ten projekt tutaj właśnie tą metodą i i tak skąd ten type a na przykład na password i wtedy ten kretyn provider wiesz dokładnie hasła do zalogowania tak tutaj nie ma jakichś dziwnych sugerować w aplikacji z w polu w którym nie powinno być hasłem oferuje nam że na przykład ktoś nasze hasło więc wniosków odnośnie drugiego drugiej
kategorii no to zawsze staramy się sprawdzać czy w tych naszych aplikacjach które dekorujemy nie przechowujemy dane które nie powinno tam nie powinno ich tu być a jak zapisujemy sekrety do kina i powiedzmy tworzymy aplikację o wysokim wpływie na ryzyko oglądania dużym dużym ryzyku no to mamy coś takiego co się nazywa a b b e i t czyli nie i tutaj punkt numer dwa nawet nie próbuję tego przeczytać tego tych dwóch treningów a generalnie mamy też poziomy w których te sekrety mają być zachowane czyli możemy sobie ustalić na przykład że ten krótki czas i nigdy nie opuścił tego urządzenia czy nawet z kapłanem iphone'a to nigdzie dalej nie pójdzie ale jeśli mamy większe pliki których nie możemy przechowywać w
różnych względów ćwiczenia muszą być gdzieś tam na urządzeniu zachowane to tutaj jest rozwiązaniem może być dla was i like it a także też możemy ustalić właśnie te między innymi poziomy dostępności a no i oczywiście to co powiedziałem przed chwilą carpe diem provider starajmy się uczyć użytkowników żeby nie używać tego samego hasła właśnie przez to że usprawniamy nasze aplikacje do działania właśnie z tymi afterparty powiedzmy provider a no i kryptografia czyli tutaj kolejny kolejna kategoria to jest trwałe się która u nas też się często pojawiać pojawia no i to jako pierwsze pytanie niebezpieczny generowanie tokenów ico wam przykład pokażę na przykładzie takiej aplikacji br a dla takich wdrożenia was w temat power to jest taki evernote na
[Muzyka] witam czy to środowisko krowy a no i tutaj znalazłem taką metodę nawet nie próbujcie tego czytać ja to sobie odtworzyłem ta metoda generuje token dostępowe do naszych wszystkich notatek no i zobaczmy jak ten token dlaczego ten się składa tutaj tak zobaczmy sobie tylko ogólnie na początku mamy coś tutaj zrobionego z datą branża jest aktualna data tutaj mamy zrobione standard z tej daty np piątkę shawn no i tutaj mamy jakieś dziwne przestawianie bajtów te 15 c no i na końcu mamy gdzieś tam ten token generowany no jak się pewnie domyślacie nie jest to poprawne metoda generowania tak e no bo ciężko powiedzieć o nim że jest losowy no faktycznie gdzieś tam jakaś magia na bitach ale no to nie jest
wystarczająco dobre losowość także ja oczywiście byłem w stanie zaatakować z dowolnej aplikacji akurat na maka bo ta metoda się pojawia zarówno na iphonie jak się nazywają się tak na marginesie to byłem w stanie faktycznie powyciągać te notatki a jeśli ktoś jest zainteresowany jak to dokładnie jest ten proces przeprowadzić od początku do końca tutaj macie linka dam wam chwilę na zrobienie zdjęć kto chce
cześć okej myślę że wszyscy a no i kolejne ćwiczenie z dziedziny kryptografia czyli automatic stron password no i tutaj faktycznie już mamy wejście na tylny mechanizm do generowania haseł zgodnymi z które są zgodne z naszymi politykami haseł a metoda jest bardzo prosta jak widzicie sobie konkretnie z tym definiujemy uszkodzona być wielka litera ma być jakaś mała i tak dalej i tak dalej oczywiście wszystko jest w dokumentacji mailowej także wniosków odnośnie kryptografii słuchajcie ja wiem że jest teraz taka moda na ręcznie robione rzeczy mamy te piwa rzemieślnicze mamy jakieś swetry dziergane i do generalnie jest to modne ale bardzo was proszę niech kryptografia nie będzie jedną z tych rzeczy niech ta gra kryptografia który jest robione
ręcznie no nie powinna być modna na także to z pierwszego wniosku no właśnie wygląda kryptografia tak wszystko w paczce aplikacji powinniśmy uznać jako publiczne tak czy nawet ten nasz kot który wrzucamy jeśli przedstawimy nasze myślenie że on jest publiczny i każdy może go zobaczyć to wtedy prawdopodobnie nie będziemy tam wrzucać sekretów tak postaramy tak przedstawić się sobie nasze myślenie punkt trzeci czyli w końcu fajne sie mamy możliwość natywnego wykorzystywania mechanizmów kryptograficznych bez żadnych dziwnych bibliotek czyli mieszkańcy klientem kryptę tej tam że ta masa używać możemy rasa co ciekawe to jest właśnie filtr który w tym roku został wprowadzony w c mamy nowy framework to krypto zasadzie bardziej rozwinięty stare frameworki ale powiedzmy że zmiany są na tyle
elastyczne że myślę że mogę go nazwać nowym no i faktycznie mamy aktywną politykę haseł jak zawsze zachęcam do używania tych mechanizmów nie wymyślać koła na nowo jeśli mają się jest mechanizm natywnej wejdź w ustawienia na tej polityki haseł to po prostu z niego korzystajmy i kolejna kategoria komunikacja sieciowa czy komunikacja działa to jest coś co jest charakterystyczne dla jezusa jest to temat który wydaje mi się że jest bardzo dobrze opisane w internecie ale cały czas na prawdę i to w nowych aplikacjach pojawiają się u nas na testach bardzo różne w możnaby pomyśleć trywialne problemy no bo mamy 2019 rok a dalej aplikacji używając https do odczytywania naprawdę takich sposobów bym powiedział szczególnie wrażliwych także tego
unikajmy i co ciekawe ios nie pozwoli domyślnie na wykorzystywanie właśnie tego nie szyfrowane go protokołu bo jest coś takiego co się nazywa application transport security podane właśnie w punkcie trzecim który zabronił takich połączeń więc co robi deweloper który chce skorzystać z tego co nam z tego połączenia http musi najpierw pomyśleć ten mechanizm przywrócić konkretnie wyjątki dla transportu security czyli jak widzimy cię to nazwać używanie https tak to i się nie celowym działaniem no bo w momencie kiedy deweloper no korzysta z tego połączenia https no to jeszcze wcześniej zanim to zrobimy musimy faktycznie dodać wyjątki w tym transport security act transport i wbrew pozorom nie jest naszym wrogiem tylko naszym przyjacielem bo one nie tylko dbam o to czy używamy szyfrowane
połączenie ale czy to jest szyfrowane polaczenie spełniasz odpowiednie standardy tak czy na przykład jest wykorzystywany jest l w wersji trzeciej tak to wszystko nam właśnie transport security pomaga zrealizować no i jak już używamy tego https a szczególnie jeśli korzystamy z jakiś dziwnych bibliotek do obsługi tego szyfrowane go ruchu to jest bardzo jedna ważna sprawa która wydaje się że jest oczywista ale naprawdę ona u nas do teraz w testach wychodzi że aplikacje które używają https a nie sprawdzają czas certyfikatu ssl czyli każdy kto jest w stanie zrobić menu to jest w stanie nam faktycznie przedstawić takim certyfikatem który nam który nasza aplikacja zaakceptuje to jest oczywiście niedopuszczalne ale to teraz naprawdę ma miejsce w późniejszych latach powiem o takiej
jednej z podstawowych przyczyn dlaczego tak wogóle się dzieje ale wiem że teraz było dosyć dużo mięsa więc pokażę złoto jest pieniędzmi które często działa rozbudzają co także jak widzicie nawet twitter miał problem z walidacją certyfikatu a i zapłacił za to 2100 dolarów zostało uznane kochaj a no i wysłał trochę naukowy połączenie który nie było weryfikowane w ogóle a my przechodzimy płynnie do komunikacji na ios a tak naprawdę komunikacji między aplikacyjnego ponieważ ta aplikacja też czasami muszę nosić ze sobą nawzajem kontaktować a generalnie dla środowiska pracy mamy parę metrów do realizacji takiego połączenia mamy ich serce a dzięki mamy xp i magnes ale to są mechanizmy które działają bardziej pod spodem pojawia się jako deweloperzy teraz nie mamy dostępu do tych metod i
myślę że dobrze bo one wzbudziły bardzo różne specyficzne problemy ale to może opowiem wam o tym innym razem więcej o jeździe trzy takie mechanizmy które są wykorzystywane to właśnie wirusy airdrop i trzeci ale bardzo was proszę nie będzie przez was używany przez clipboard jest naprawdę taki aplikacje widziałem które schowkiem przesyłamy do siebie naprawdę poufne informacje no i jak wszyscy w to jest taki element czarnej wieży przecież każdy wie o tym że skoro do schowka jedna aplikacja może pisać i czytać to inna aplikacja po drodze może nam zawartość tego po pierwsze odczytać a po drugie zmodyfikować więc no tego w domu używamy więc w zasadzie zostaje nam jurorskim syrop a a człowiek tutaj przyznam że najczęściej widzimy właśnie
te izraelskim psy o których jeszcze zaraz opowiem na początku znowu kasa a z grabie i na androida i ios sie przez podobne właśnie błąd na przez wirusy 7 i pół tysiąca dolarów zostało wypłacone kochaj a tutaj kolejny przykład znowu twitter trochę się trochę pomęczyć litera b znowu jakieś takie jak wyszedł związane z do komunikacji między aplikacyjnym więc jakie mamy wnioski jedna aplikacja mówi do drugiego aplikacji to prawdopodobnie to druga aplikacja zazwyczaj jest kąt powinno nadać to połączenie więc może po prostu sobie zrobić listy aplikacji które powinno się z nią komunikować wydaje się to w miarę proste do tego jako pierwszy punkt umieściłem tutaj zawsze weryfikuj nadawcę jak to połączenie chcieliśmy to może faktycznie w dół i
jesteśmy napisaliśmy i te parametry które spadają no co naszą drugą linią obrony żeby zweryfikować także walidujemy po sprawdzeniu czy to jest właściwe aplikacja co w tym połączeniu się znajduje i taka moja sugestia jeśli ty michael z kim się komunikujemy się z aplikacją i ta te parametry wpadają bezpośrednio do jakiegoś w a to sprawdźcie co to właściwie robi i do czego uprawnień jakie uprawnienia mate bo to często naprawdę skutkuje kolosalnym i problemami w aplikacji ale o tym opowiem więc przechodzimy do kolejnej kategorii masowej czyli do jakości kodu no i tutaj parę punktów a wykorzystywanie i które już znane jako przestarzałe wydaje się to takie przestarzała ale dopóki nie działa no to jest wykorzystujemy ale faktycznie ale
jak już uznaję jako t-t-t-tak na swojej stronie takim ładnym żółtym prostokącik wiem co zazwyczaj ma ku temu konkretny powód który też między innymi zaraz wam pokaże a aplikacjach i osoby często tych nowoczesnych korzystamy z bardzo dużej liczby biblioteki teki biblioteki też oczywiście mogą mieć podatności także tutaj zalecam wdrożenie mechanizmu który też był taki będzie aktualizował bo i zdarzało mi się uczestniczyć w takich projektach których zgłaszałem coś powiedzmy trzy lata temu słuchajcie macie aktualnie biblioteki wersja jest to wojna która jest taka podatność ta podatność ta podatność dima powiedział podnieść imersję bibliotek i gdzieś tam nadchodzi rez certyfikacja tej aplikacji powiedzmy po tych trzech latach no i jak wchodzę antybiotyki znowu są nieaktualne i znowu jakieś płatności w międzyczasie
wyszły na te nowoczesne rozwiązania no i tutaj jakby ewidentnie pokazuje to że w momencie kiedy mamy biblioteki są podnoszone i znowu zapomniane dokąd do kolejnego raportu ale nie chcę żeby tak było chcę żebyście byli świadomi tego że w takich aplikacji należy wdrożyć jakiś mechanizm który będzie to biblioteki systematycznie aktualizował i często tutaj problematyczne jest właśnie to że wykorzystujemy menedżerów patrzą jak na przykład kłopot czy wjeżdża w których mamy statycznie zdefiniowane wersję tak czyli mamy ustawione że to ma być zawsze ta paczka wersji 1.5 na przykład tak bo ze względu na powiedzmy integracji z aplikacją nie chcemy żeby tam coś nam się pracowało i to jest bardzo kontrowersyjne to co teraz powiem ale starajmy się jednak
tego nie robić nie wiem że to jest kontrowersyjny bo często spotykamy w wersji aplikacji mobilnej wersji bibliotek na to zdarzają się jakieś problemy ale z drugiej strony mamy opcje po tym jak trafił tak w ogóle to trzy lata i w między czasie jak wyjdzie jakaś podatność na to nie zauważamy tego w żaden sposób przez te 3 lata na przykład tak więc jest to problem gdzieś do przetrawienia w organizacjach które naprawdę nie jest legalne jest sobie z tego zdajesz sprawę jako przykład podatnik bibliotek żeby to też nie było to jest trochę takie swoje zadanie i z work in w wersji 251 nie sprawdzał w ogóle certyfikatu ssl gdy aplikacja nie korzysta z treningu no popatrzcie mamy aplikację która
wykorzystuje certified trening no i często ten certyfikat to jest certyfikat wygenerowane przez organizację z różnych względów więc podpinamy sobie ten certyfikat ale czy to musi być zawsze certyfikaty zaufania są to jest certyfikat wygenerowany przez naszą organizację no często okazuje się że to nie jest certyfikat który jest certyfikat zaufaniem więc deweloperzy w momencie gdy wdrażające recykling po prostu najczęściej włączają w ogóle weryfikuje realizację tego certyfikatu i pozwalają na to połączenie za pomocą każdego dowolnego no i w momencie kiedy ta biblioteka między innymi odpowiadała za wdrożenie certyfikatu spinningu gdy była wyłączona w ogóle tego nie sprawdzała i stąd ta podatność tutaj są dokładnie znane w kodzie chyba tutaj na projektorze dokładnie nie widać ale ktoś będzie zainteresowany zobaczymy sobie
tej prezentacji później ją oczywiście udostępnij gdzie będzie to oczywiście bardziej widoczne i tutaj opowiem na tym slajdzie o word-u czyli o czymś o faktycznie komponenty i ojca który został uznany jako treat nie bez przyczyny otóż w tej domyślnej konfiguracji i miał dostęp do systemu plików przez taki anderfajer jak czytamy w fakcie na przykład pcv direct2 nam się na ekranie wyświetlił o a co ciekawe ta nowsza wersja zalecana łapki w dół też pozwala na bezpośredni dostęp do systemu plików a plików ale nie jest to już zachowanie domyślne czy musimy sobie włączyć odpowiednią flagę więc raczej jeśli wasza aplikacja wykorzystuje takie wf-u to raczej nie będzie miał dostępu do systemu plików ale ale to też można oczywiście sprawdzić
więc jaki był problem z tym że starzenie y y y parę jakieś parametry kontrolowane przez atakującego były przesyłane do naszej grupy na przykład historii usa a to takim miksem mieliśmy dostęp do systemu plików co pozwalało na przykład na wyciąganie danych w przypadku aplikacji czyli dosyć już poważna sprawa i tutaj przykład a dodatkowo się w tym razem gdy naród złap załatana jakiś czas temu przez apple a tutaj możecie zobaczyć co nawet nawet na to nadało pve polega na tym że w mamy aplikację o nazwie słownik ten słownik jak się można domyślić a tłumacz z jednego języka na drugi ale powiedzmy chcielibyśmy jakiś język tłumaczenie bardzo niestandardowe na przykład śląskiego na kaszubski no i taki język musimy już sobie dobrać albo no raczej
byłoby to niespodziewane żeby taką te kompetencje które wspierało a no i zawartość tego słownika właśnie ładowana do word-u więc to co ja zrobiłem w ramach po co to stworzyłem taki oto złośliwy słownik które wykonywał sobie kod javascript a4 na początku popiera zawartość pliku pdf w d wysłało na kontrolowane przeze mnie serwer pokażę wam demo
a to sobie odpalam po lewej nie trzeba tylko trochę nie widać i wchodzę do jakiejś takiej jakieś jakiegoś tutaj tłumaczenia na moim słowniku i cała zawartość pliku bcf zostaje przesłane na mój serwer jak widzicie faktycznie i było problematyczne i faktycznie jest to podatność teoretyczna tylko wykorzystywana też w praktyce co ciekawe znalazłem też podatność innych komponentach komputerowych i też tutaj to jest taka śmieszna historia ponieważ lubi hard google wie o nas to w bardzo podobnym czasie i ja sobie wyeksportowaną podatność a zaktualizowany system i patrzę ten mój potencjał i tak się zastanawiam dlaczego wszedłem sobie nasa pokazało się właśnie z tym samym czasie ta podatność na las a czymkolwiek ten film nie był do końca kompletne więc jeszcze tam apple
zgłosiłem i tak znowu tam cztery poprawki musieli wdrożyć ale żeby nie mówić tylko aplikacja handlowych to na przykład yahoo zapłacił 3 50 dolarów za x i który skutkował właśnie wyciąganiem na przykład maili z waszego urządzenia ok i przechodzimy płynnie do kolejnej kategorii czyli do odporności na taki a i dlaczego w ogóle jest ta kategoria ja sobie wyróżniłem trzy takie grupy programistów czyli pierwszy są ci którzy po prostu nie chcę żeby ktoś im grzebał w aplikacji druga to jest grupa która rozważa złośliwe oprogramowanie na urządzeniu jako ryzyko tak mam aplikację wysokiego ryzyka to prawdopodobnie jeśli nasza aplikacja miałby być celem to ta ten malware musiałby zweryfikować nasze urządzenie żeby mieć dostęp do naszej aplikacji no bo jak wiemy w znajdującej
się w szkole na androidzie aplikacje są sandboksowa naprawdę wcale nie mogą tak do siebie po prostu trzeba rozmawiać no i trzecia grupa developerów to są ci którzy po prostu muszą być zgodne z was ma swoje serca i właśnie dla takich osób przygotowałem a biblioteka znalazłem i jest taki cud jest taka która jest darmowa open source of a także możecie sobie z niej śmiało korzystać jest napisana w projekcie w polsce czyli tym najnowszym aktualnie i co on robi no wykrywacz ręka za pomocą takich najnowszych wskaźników cech charakterystycznych dla tych nowych budynków ponieważ zauważyłem że te biblioteki a które też było tego co przeznaczone na nie są aktualizowane te nowe tulejki no trochę się różnią od tych starych
więc jak drużynowe wskaźniki a sprawdza czy jest podpięte bo raczej nie jest takie standardowe zachowanie użytkownika że ktoś z naszej aplikacji potwierdziła także też pomoże nam coś sugerować a pokazywałem wam narzędzia o nazwie frida te narzędzia otwieramy sobie przykładowo port na urządzeniu odpowiedniej więc ja sprawdzam czy tak na prawdę nie jest odpalona bo to też można nam pokazywać że nie jest to urządzenie chcemy żeby nasza aplikacja się uruchomiła a no i oczywiście emulator który też nie zaczął takim standardowym [Muzyka] przypadkiem wykorzystanie naszej aplikacji dla zainteresowanych tutaj podaje kurka woda jest to taka trochę to pokaz przedpremierowy muszę przyznać aplikacja jest właśnie ta biblioteka jest trochę na naszym githubie ale jeszcze nie rozpocząłem powiedzmy że kampanii
marketingowej tej biblioteki ponieważ chcę żeby ona została przetestowana więc już bez premium 2 3 miesiące temu do różnych moich znajomych którzy gdzieś tam powtarzali mogę nawet coś pochwalić użyję duży bank w polsce jądrowej także naprawdę jest to zaczyna już w trakcie być wykorzystywana okej więc przechodzimy do podsumowania więc tych podatności które najczęściej występują a na w naszych testach w cudzysłowie no to wszystkie płatności związane z przechowywaniem poufnych danych które są później archiwizowane to jest taki numer jeden klucz i konta w paczkach w paczce aplikacji tyczenie względem linii tutaj druga a punkt trzeci problemy sieciowej to rozumiem to wszystkie braki i https youtu.be śledzenia transport security nie sprawdzanie certyfikatów ssl owych a później mamy jak już wcześniej
wspominałem komunikację między aplikacją która jest zabezpieczona mamy tutaj przykład izraelskim słów ale mamy też przykład keyboard wykorzystywane do tej komunikacji między aplikacyjnej no i ostatni punkt czyli podatne albo wręcz sztywną ustawione biblioteki w tych naszych menedżerów paczek także z moich rekomendacji w taki w najbliższym okresie żebyście zajmowali się bezpieczeństwem i usa i aplikacje i oczywiście to postarajmy się wdrożyć faktycznie auto fill i i a tych kredek ale provider tak żeby one dobrze wiedziały z naszymi aplikacjami a w kontekście tego co mówiłem na początku czyli do powszechnej dostępności jailbreak a no ten and upper limb tak zwany staje się coraz większym ryzykiem ponownie po latach więc jeśli macie aplikację wysokiego ryzyka no to zalecałbym jednak wdrożyć taki mechanizm
obronny a dalej z długoterminowych to oczywiście wrzucamy wszystkich itd itd i tutaj na przykład złe był na rzecz webkit word-u i starajmy się zawsze używać na tych mechanizmów to jako przykład na polityka haseł no i uważam że teraz już powoli jest też dobry moment żeby powiedzieć jeśli ja wiem że to jest ciężki proces starać się przynajmniej pisać nowe moduły w suficie jak mamy stare aplikacje napisane objective to to jest ten moment w którym możemy gdzieś tam w tym języku zapominać okej i z naszego bezpieczeństwa z naszego doświadczenia większość aplikacji które testujemy no jednak te podatności ma i moim zdaniem to tylko moim osobistym prywatnym zdaniem większość z tych podatności mogą wyeliminować świadomi deweloperzy ale to wiadomo że
deweloperzy nie mają tyle czasu żeby zająć się funtime bezpieczeństwem więc no jeśli otworzyć aplikację wysokiego ryzyka no tutaj na pewno zalecałbym testy żeby po prostu specjaliści którzy zajmują się tym a w to cały czas też na to spojrzeli i znaleźć to podatności których d twarzy prawdopodobnie gdzieś tam wszystkich nie wyłapią takich słów jeszcze zanim zakończę powiem tylko jedno słowo że w otwarliśmy biuro w warszawie i rekrutujemy także na stanowiska juniorskiej także którym ktoś jest zainteresowany to zapraszam do kontaktu i ponieważ będę tutaj jeszcze około godzinę a tymczasem dziękuję za uwagę gdyby ktoś ma jakieś pytania to zapraszam teraz bądź tutaj w kuluarach
proszę
rodo aktualizacje bibliotek na praktycznie każdy język programowania są jakieś takie czasowe platformy typek i śnieg gdzie tam python i kofeina czy ta platforma sprawdza czy wymagania dla aplikacji są zawsze aktualne i czy nie mają jakiś wzór czy coś w tym stylu i jeżeli nawet jeśli oznacza to że tak skonfigurować na przykład chyba że on stworzył i ja razem z aktualizacją league of legends i na przykład to nie jest coś takiego na przykład dla leo jest jakaś taka sama platforma która skanuje wymagania wiesz to ja staram się nie spotkałem która by dobrze działa w przypadku biblioteka jest ok bo one też są często właśnie zasysane bezpośrednio z g2a tam różnie bywa z dopasowaniem cv i tak dalej
aczkolwiek to się zmienia bo przy przypominam że github dostał uprawnieni do nadania numerów pve więc teraz ten proces został zrobione i faktycznie można też biblioteki łapać można te podatności łatwiej zgłaszać w tych projektach rozwiązania takiego bardzo prostego jeżeli ktoś korzysta z jakiegoś i cokolwiek jedyne co będzie robił to tylko odpady aktualizacje bibliotek i odpalamy aplikację odpali testy i sprawdzić czy aplikacja działa jeżeli tak to znaczy że nowe aktualizacje działają z aplikacji można po prostu je zrealizować może stworzyć razu wiara żeby zaktualizować więc to jest pół godziny roboty i problem z głowy tak bo chciałbym żeby w moim idealnym świecie tak było ale te testy to różnie z tym bywa można mogę atak i politycznie poprawne z tego
wybrnąć jeżeli są to jest jedno ale to już nie ta aplikacja teoretycznie będzie działało jest takie samo dotyczy wszystkich bibliotek no to na pewno coś nam mówi aczkolwiek z mojego doświadczenia w każdym przypadku dużych organizacji które tych bibliotek korzystały naprawdę bardzo dużego tam bardzo dużej ilości tych bibliotek no to ich podnoszenie zazwyczaj było bardzo bolesne więc to jeszcze jedna rzecz czy coś takiego jest jedna rzecz która bardzo mnie ostatnio pomaga to jest coś takiego tylko mit to jest czas aby dodać dowolny litery sprawdza czy kodu poprawia czy reformator cokolwiek i to pozwala na przykład wychwycenie dużo jakichś problemów że na przykład coś zaimportowałem to jest nieużywany albo z próbuje wykorzystać metodę która nie zaimportowana i tak dalej przed
komputerem po prostu to wystarczy się i nie pozwolą ci dodać komentarza tak więc wydaje mi się że to jest jeszcze prostsze rozwiązanie bo w zespołach się po prostu ponieważ zawsze robić programista zanim cokolwiek to będzie brzmiał przeformatować nawyk od sprawdzony i można dodać jakiś pewnie czekaj bezpieczeństwa że nie korzystaj z word-u takiego albo coś i to może oszczędzić bardzo dużo problemów i to nic nie kosztuje i to dzięki za podzielenie się tą sprawą dzięki to jest tam jeszcze jakieś pytania tam z tyłu
cześć używanie takich frameworków jak jak native poprawy w jakikolwiek sposób bezpieczeństwo pisanych aplikacji czy zasadzie nie wpływa w ogóle na bezpieczeństwo więc może odpowiem na to pytanie bardziej ogólnie sam teraz pojawiają się rozwiązania które mówią że one są bezpieczne by default i to częściowo jest prawda bo pewne klasy podatności na przykład z tych aplikacji natywnych są tutaj unieszkodliwiony tylko tutaj często jest tak że takie rozwiązania budzą w nas takie fałszywe poczucie bezpieczeństwa co powoduje to że nie zwracamy uwagi na podatności które normalnie byśmy zwrócili pisząc aplikacje natywne mam tutaj na myśli przykładowo błędy logiczne które niezależnie od wykorzystywanego rozwiązania na zawsze gdzieś tam będą się w tych aplikacjach pojawiały tak że częściowo te nowe rozwiązania poprawia
bezpieczeństwo ale suma sumarum gdzieś tutaj właśnie na poziomie tych błędów które normalnie byśmy zauważali nad a potem nie zauważamy cześć czy są jeszcze jakieś pytania tutaj kolega
cześć mam takie pytanie na przykład i podatności rom nowa co można w ogóle other jak to się ma do bezpieczeństwa aplikacji dzięki temu możemy wszystko podejrzeć jak nie jest bezpieczny a wtedy to pamiętaj że wykorzystywanie tej podatności z blogerem wymaga podłączenia urządzenia po kablu doczekać to będzie ekscytowała tak no na pewno to z naszej perspektywy badaczy bezpieczeństwa dużo łatwiej ponieważ nawet jeśli wyjdzie powiedzmy i jest 14 za rok no to nadal będziemy w stanie zweryfikować ponieważ na tej warstwie wyżej możemy podmienić wykorzystywana oprogramowanie więc które nie będzie dalej sprawdzone przez apple tak więc w kontekście tego co mówisz tak faktycznie ta podatność umożliwia nam przez parę lat analizowanie na normalnych urządzeniach fizycznych aplikacji aczkolwiek nawet jeśli te
niektóre na które są podatne na ten problem z blenderem zostaną gdzieś tam wyparte już nie będzie się nie pojawia najnowsza wersja ios a to pamiętajmy o tym kolesiem który wam pokazałem wcześniej gdzie mamy wirtualizację ios i tam tak będziemy się prawdopodobnie zawsze mogli dobierać do tych aplikacji no dobra powiem ci jeszcze przez chwilę na pytania to zapraszam w kuluarach albo a potem ale i twittera więc [Aplauz] dzięki wielkie może byś się przedstawił na to ponieważ kolwiek ktoś tutaj wczoraj podkładu bo uruchomił na macu powershell a w tej osoby już nie ma ale wiemy o kim mówisz tak
dokładnie dobra tak pierwsza informacja adam jest ktoś go widział tak to teraz tak dla ludzi na treningu adam w tym roku stwierdził że ponownie szlifujemy