73:42 Odcinek 022

Jak zadbać o bezpieczeństwo sklepu internetowego? – Szymon Drosdzol

Kiedy mowa o bezpieczeństwie sklepu internetowego, powiedzenie „lepiej zapobiegać, niż leczyć” jest wyjątkowo na miejscu. I tak naprawdę chodzi tutaj nie tylko o właścicieli sklepów, ale także o klientów. W przypadku włamania potencjalnie tracimy wszyscy. Dane, wizerunek i bardzo często realne pieniądze.

Żebyś mógł lepiej przygotować swój sklep na wszystkie te zagrożenia, zaprosiłem do rozmowy Szymona Drosdzola z TestArmy i poruszyliśmy tematy:

  • kiedy można czuć się bezpiecznym,
  • na jakie ataki jest narażony sklep internetowy,
  • które dane są atrakcyjne dla przestępców,
  • jakie są konsekwencje złamania zabezpieczeń,
  • co to znaczy właściwie „bezpieczny sklep internetowy”,
  • jak wygląda proces zabezpieczania sklepu.
Listen to „022 – Jak zadbać o bezpieczeństwo sklepu internetowego? – Szymon Drosdzol” on Spreaker.

Dodatkowe materiały

Podczas rozmowy Szymon wymienił kilka narzędzi, których można użyć do skanowania bezpieczeństwa systemów:

Jeśli chcesz pozostać z Szymonem w kontakcie, odwiedź jego profil LinkedIn:


Transkrypcja odcinka

Bezpieczeństwo to proces. Tak jednym zdaniem mógłbym podsumować to, o czym za chwilę usłyszysz.

Co to właściwie oznacza?

Tyle że nie da się usiąść do bezpieczeństwa raz i mieć z głowy na zawsze. Kreatywność cyberprzestępców nie zna granic i cały czas pojawiają się nowe zagrożenia.

Do tego odcinka zaprosiłem Szymona Drosdzola, żeby dopytać o to:

  • jakie są te niebezpieczeństwa,
  • co Ci może grozić, jeśli niewystarczająco zabezpieczysz swój sklep,
  • jak zadbać o to, żebyś nie musiał ponosić negatywnych konsekwencji.

Szymon obecnie pracuje w TestArmy na stanowisku pentestera, czyli takiej osoby, której podstawowym zadaniem jest złamanie zabezpieczeń systemu. Robi to po to, żeby wskazać, co należy poprawić, żeby z kolei odpowiednik Szymona o złych zamiarach nie miał już takiej szansy. Po pracy (i mam nadzieję, że w równie bezpieczny sposób) wspina się w Tatrach i planuje zacząć robić to również zimą.

W naszej rozmowie pojawia się dużo konkretnych przykładów, więc mam nadzieję, że dużo z nich wyniesiesz i lepiej zrozumiesz zagadnienia bezpieczeństwa nie tylko jako właściciel sklepu, ale także jako klient. Mam też nadzieję, że po tym odcinku przykrych historii na przykład o wyciekach danych ze sklepów internetowych będzie chociaż trochę mniej i tego nam właściwie wszystkim życzę.

Tyle tytułem wstępu, zapraszam Cię na moją rozmowę z Szymonem o tym, jak zadbać o bezpieczeństwo sklepu internetowego.

Cześć Szymon.

Cześć.

Szymon, masz w stanowisku napisane „pentester”. Ja bym chętnie wytłumaczył słuchaczom na start, czym zajmuje się taka osoba, ale myślę, że ty zrobisz to lepiej swoimi słowami. Czy na początek możesz przybliżyć słuchaczom, czym zajmuje się pentester.

Pentester to jest taki skrót, który się przyjął, od szerszego „tester penetracyjny”. Nasza praca polega na wykonywaniu kontrolowanych ataków hakerskich na wszelakie systemy informatyczne, na przykład na strony internetowe. Celem takich działań jest sprawdzenie stanu zabezpieczeń danego systemu, to, w jaki sposób sklep jest zabezpieczany, czy jest podatny na jakieś ataki. I robimy to po to, żeby znaleźć te podatności, zanim znajdą je przestępcy, żeby uchronić na przykład sklep internetowy, stronę internetową, infrastrukturę firm przed atakami, przed kradzieżą informacji, przed atakami Denial of Service i wieloma innymi zagrożeniami.

Pentesty można podzielić na dwa rodzaje, to znaczy one są albo black box, czyli to jest taka prawdziwa symulacja ataku hakerskiego, to znaczy pentesterzy nie otrzymują żadnych dodatkowych informacji o systemie, który atakują, tylko patrzymy, co się da publicznie znaleźć i na podstawie tych informacji staramy się gdzieś włamać i uzyskać informacje. Eskalujemy atak na podstawie tego, co po prostu znajdziemy.

Na zupełnie drugiej stronie tej osi są testy white box – wtedy my otrzymujemy pełną albo prawie pełną informację na temat systemu atakowanego, dostajemy dostępy administratorskie do serwera, kod źródłowy aplikacji (jeżeli taka występuje) i po prostu oglądamy to od wewnątrz i wskazujemy wszelkie słabości, jakie tylko uda się znaleźć.

Jest jeszcze podejście gray box, które stara się znaleźć kompromis pomiędzy tymi dwoma, bo każde z tych podejść ma swoje wady i zalety.

Black box jest oczywiście fajny, bo jest realistyczny, czyli rzeczywiście jest to symulacja jakiegoś ataku. Z drugiej strony przy black box jest duża szansa, że wiele rzeczy się pominie, bo jeśli te podstawowe zabezpieczenia są w miarę dobre i nam się nie uda nigdzie głębiej wejść, to wszystkie głębsze zabezpieczenia nie zostaną nawet obejrzane i dużo rzeczy się pomija.

Z drugiej strony przy white box jest dużo więcej informacji do przejrzenia i czasem przy dużych systemach jest do nie do zrobienia lub byłoby to bardzo drogie.

Dlatego gray box jest często bardzo fajny, bo łączy te podejścia. Dostajemy na przykład podstawowe dostępy, czyli na przykład konto użytkownika z niskimi uprawnieniami i podstawowe informacje, czym jest system, jakie tam są uruchomione serwisy i wtedy nie tracimy czasu na zbieranie informacji, które i tak są publiczne, tylko od razu je dostajemy i wtedy jest spora szansa, że nazbieramy dużą część problemów, jakie w danym systemie występują.

Czyli taki człowiek, który włamie się na sklep, ale zrobi to w szczytnym celu. I to się dobrze składa, bo dzisiaj chciałem z Tobą właśnie pogadać o czymś takim, jak bezpieczeństwo w kontekście sklepów internetowych. To jest temat, który ma bardzo różne rozumienie na rynku i jest bardzo różna skala uwagi, którą właściciele sklepów w ogóle przykładają do bezpieczeństwa swoich sklepów. I załóżmy, że jestem takim świeżo upieczonym właścicielem sklepu internetowego, czyli przeszedłem przez proces wdrożeniowy: zleciłem firmie wdrożenie takiego sklepu, firma oddaje mi gotowy produkt, umieszcza go w sieci, uruchamia, sklep jest na produkcji, klienci mogą zamawiać. Czy ja mogę się czuć bezpieczny?

To bardzo zależy. Kto robił ten sklep, czy może ta firma, która dla ciebie ta firma wykonała, może ma wewnętrzne, albo zamawia zewnętrzne pentesty. Natomiast generalnie rzecz biorąc, nawet taki zupełnie nowy system, powiedzmy „z pudełka” raczej nie możemy być go stuprocentowo pewni.

U nas generalnie mówi się, że „security is hard”. To jest taki bardzo mocno naduzywany bon mot. Rzecz w tym, że drobne przeoczenia, problemy i błędy mogą skutkować dużymi problemami. Często jest tak, że kilka drobnych rzeczy, z których każda nie skutkuje niczym wielkim, można połączyć kilka drobnych problemów i uzyskać dostęp do czegoś, do czego nie powinniśmy. I to nie oznacza, że zakładamy niekompetencję wdrożeniowców czy programistów, którzy dany system stworzyli, natomiast generalnie potrzebne jest, nawet już na etapie wdrożenia, spojrzenie kogoś z zewnątrz. Kogoś, kto by ten system rzeczywiście przetestował i wypowiedział się, czy na pewno to jest bezpieczne, poszukał ewentualnych problemów.

Najlepiej, żeby to zrobić, zanim pójdziemy live (na produkcję), wykonać taki pentest, usunąć ewentualne problemy i wtedy dopiero pójść live z bezpiecznym spotkaniem i spać spokojnie.

Wiesz co, to brzmi trochę jak z filmów science fiction. No bo jeśli ja jestem właścicielem sklepu, który, powiedzmy sobie, dopiero wystartował i sprzedaje buty, to umówmy się, że to nie są kody do głowic nuklearnych. To nie są też jakieś bardzo wrażliwe dane, typu systemu bankowe. To jest najzwyklejszy w świecie sklep internetowy. Więc właściwie, po co ktoś miałby się do takiego sklepu włamać?

Po pierwsze to dla fejmu. Istnieje taka grupa ludzi, która po prostu włamuje się do wszelakich systemów po to, żeby pokazać sobie albo innym, że potrafią. Ale to szczerze mówiąc, jest już romantyczna przeszłość.

Dzisiaj w Internecie jest sporo pieniędzy. Nie tylko w systemach bankowych, ale w sklepach internetowych, wszelkim handlu, w usługach. Przez Internet przewala się sporo pieniędzy i tak samo, jak tam, gdzie pojawiają się pieniądze, tam pojawiają się złodzieje.

Po co akurat do sklepu internetowego się można włamać?

Na przykład dla mocy obliczeniowej. Można się włamać do sklepu po to samo, po co się włamują na wszelkie inne strony internetowe, żeby przejąć kontrolę nad samym serwerem i jego moc obliczeniową wykorzystać do czegoś. Co to może być to coś? To może być kopanie bitcoinów, to może być wykorzystanie w jakimś botnecie do ataków Denial of Service na inne serwisy, co będzie dla nas bardzo dużym problemem, bo raz, że zarżnie nasze łącze, a dwa – może spowodować, że ten sklep wyląduje na czarnych listach albo wyszukiwarek, albo różnych proxy i za chwilę klienci utracą dostęp do takiego serwera.

Wreszcie dla danych. Nawet taki zwykły sklep z butami zawiera dane osobowe klientów, zawiera faktury i dane dostępowe. I wszystkie te dane mogą być przydatne hakerom do wszelkiego rodzaju przestępstw.

Czy mógłbyś wskazać mniej więcej, po co taki haker w ogóle zbiera takie dane? Powiedziałeś, że dla różnych przestępstw, natomiast to może też być wartościowe dla ludzi, którzy po prostu kupują w sklepie internetowym. Z czym może wiązać się to, że ich dane zostaną w ogóle wykradzione ze sklepu internetowego? Jakie to są dane i po co właściwie się to robi? Co z moimi danymi może się wydarzyć?

Po pierwsze mamy dane logowania. Ludzie mają to do siebie, że bardzo często wykorzystują te same hasła w różnych serwisach. To błąd nota bene, nie róbcie tak, używajcie managerów haseł. Ale rzeczywistość jest taka, że zdecydowana większość ludzi działa dokładnie w ten sposób, czyli jeśli nam się uda z jednego serwisu, na przykład sklepiku z butami, który może być łatwym celem dla hakera, bo przecież nie ma sensu wydawać jakichś tam pieniędzy na cyberochronę. Jeżeli wykradniemy sobie z takiego sklepu internetowego dane dostępowe i wiemy, że marek_kich_at_gmail_com ma hasło „ania123” to możemy wziąć dokładnie te same dane i spróbować zalogować się na jego Facebooka.

Jeśli będziemy zalogowani na Facebooku jako Marek Kich, to możemy zacząć pisać do jego znajomych i spróbować wyłudzić w jego imieniu pieniądze. To, jakie znajomi Marka mają zaufanie do niego jako osoby, jest bardzo dużą wartością dla cyberprzestępców i jest szereg różnych ataków socjotechnicznych, które pozwalają wyciągnąć kolejne dane, loginy albo po prostu pieniądze.

Można wykorzystać dane do dostania się do twojego konta mailowego, jeśli tam też wykorzystałeś to samo hasło. Jak mamy konto mailowe, to możemy się zalogować na dowolny serwis już, gdzie użyłeś tego maila, bo prawdopodobnie będzie się dało wykorzystać mechanizm przypominania hasła i po prostu zmienić hasło. Nawet jeśli na tego samego maila miałeś inne hasło, to nie pomoże, bo sobie przestępca po prostu zresetuje to hasło.

W dzisiejszych czasach na szczęście do banku prawdopodobnie nie uda się tak łatwo włamać, ale może być to też pierwszy krok zbierania informacji o ofierze i uzyskiwania dostępu do takiej ilości danych, która już by wystarczyła, żeby się na jej konto włamać. Na przykład poprzez support i podawanie tam informacji.  Bardzo często można zresetować hasło do banku w taki sposób, że dzwoni się na support i oni zadają różne dziwne pytania: o nazwisko panieńskie matki, PESEL, inny numer dokumentów i tak dalej. Jest całkiem spora szansa, że wszystkie informacje jestem w stanie znaleźć na Gmail przeciętnej osoby.

Więc dane logowania są bardzo dużą wartością.

Kolejną rzeczą są dane osobowe. Jeśli uda się znaleźć imię, nazwisko, adres, jeszcze lepiej PESEL i numery dokumentów, to można wykorzystać takie dane, żeby wziąć w imieniu takiej osoby kredyt. To jest niemal równoznaczne z utratą dowodu osobistego. Niestety w Polsce tak jest, że bardzo łatwo można takich kredytów nabrać na taką osobę i niestety martwi się potem i ścigana jest prawdziwa osoba, na dane której te kredyty zostały wzięte, a pieniądze zniknęły.

No i ostatnią rzeczą też ciekawą są oczywiście dane finansowe: faktury, czasem dane kart płatniczych mogą się znaleźć w takim sklepie. I to wszystko też są cenne dane, z których można próbować uzyskiwać pieniądze.

Niby niewiele tych informacji można zebrać, ale jak ktoś jest odpowiednio kreatywny, no to z tych informacji jest w stanie zrobić dalej duży użytek. Gdybym chciał sobie to zwizualizować albo przynajmniej zinwentaryzować, to na jakie ataki taki sklep internetowy jest narażony? Jak mógłbyś to określić? Mówiłeś, że są testy white box, są testy black box, natomiast one odpowiadają pewnie jakimś rodzajom ataków. Czy możesz przybliżyć, jakie to mogą być ataki?

Po pierwsze, wszelkiej maści wycieki danych nie muszą być związane z jakimś atakiem. To znaczy, zdarza się (i to wcale nie rzadko), że to na skutek błędu po stronie sklepu pewne dane są po prostu dostępne publicznie i wystarczy ich poszukać.

No i oczywiście tu można całą wyliczankę prowadzić, takie rzeczy zdarzają się regularnie.

W sierpniu była wpadka mBanku, gdzie ludzie mieli wgląd w konta innych osób. To było akurat specyficzne (i w ogóle nie atak), bo oni sobie zrobili jakiś problem w bazie danych. W sierpniu wypożyczalnia samochodów 99RENT pozwalała na przejrzenie sobie wszystkich danych wypożyczeń wraz z numerami dokumentów. Tam były dane, kto jaki pojazd wypożyczył, skąd, gdzie go oddał, jego numery dokumentów (bardzo ważne dane).  W lipcu był sklep wersow.com pewnej YouTuberki. Publicznie wisiały faktury, dane dostępowe do bazy, bo zapomnieli schować folder .git. We wrześniu był wyciek danych z sex shopu i można powiedzieć, że niby nic nie wyciekło, bo imię i nazwisko + kupione produkty, ale ze względu na specyfikę sklepu też jest to duży problem i być może dla tych klientów bardzo wstydliwa rzecz i bolesna. Takie rzeczy też się zdarzają i trzeba o tym pamiętać i być na to gotowym.

Więc wycieki danych generalnie mogą się wiązać z jakimś atakiem, że ktoś się gdzieś włamał, ale tak jak mówię, bardzo często są to dane, które ktoś nieumiejętnie schował i były po prostu dostępne publicznie.

Kolejnym atakiem takim dosyć głośnym i modnym ostatnimi czasy są ataki ransomware. Polegają one na tym, że atakujący włamuje się na jakiś serwer albo do infrastruktury i szyfruje, co się da. Szyfruje całe dyski, całe bazy danych i u siebie trzyma klucz, który można użyć do odzyskania tych danych i odszyfrowania ich. Potem żąda od przedsiębiorcy okupu za odszyfrowanie i odzyskanie tych danych. Jest to bardzo skuteczny atak, najwięksi padają ofiarami tego ataku.

Bardzo głośny był atak na Garmin pod koniec lipca. Warto wiedzieć, że zapłacili prawdopodobnie $4 500 000 okupu. Nie było szans, nawet tak duża firma, jak się mleko rozlało i ktoś im zaszyfrował dane, nie wymyśliła lepszego sposobu, niż zapłacenie przestępcom. Na początku sierpnia chilijski bank Banco Estado też miał zaszyfrowane w zasadzie wszystko, to znaczy tam padły wszystkie (albo prawie wszystkie) usługi. Kawał infrastruktury zaszyfrowany. Niestety brak danych, czy zapłacili. W Polsce na przykład SWPS w kwietniu.

Więc znane instytucje padają regularnie ofiarami takich ataków. O drobniejszych pewnie nawet nie słyszymy.

Kolejnym rodzajem ataku może być atak Denial of Service, dużo mniej wyrafinowane niż te potrzebne. To jest typowe niszczenie, używając jakiejś podatności albo wysyłając bardzo duży ruch na daną stronę, można sprawić, że ten ruch legalny i prawdziwi klienci nie będą mieli dostępu do strony. Też są sposoby, jak się przed takimi rzeczami zabezpieczać i warto pamiętać, że też coś takiego nam grozi.

Potem oczywiście jest już cały szereg specjalistycznej wiedzy i lista różnych podatności.

Jest jeszcze nadużycie logiki aplikacji. Może się to wiązać z błędami programistycznymi, które atakujący znajdzie i wykorzysta. To mogą być drobne rzeczy, na przykład naliczenie sobie rabatu, którego ktoś nie powinien mieć. Czasami można mieć kontrolę nad wysokością tego rabatu i naliczyć sobie 99%. Czasami da się w ogóle ominąć płatność i złożyć zamówienie w systemie. Czasami da się podejrzeć dane innego użytkownika, czasami innemu użytkownikowi te dane edytować i tak dalej. To są błędy typowo programistyczne, gdzie atakujący po prostu modyfikując pewne parametry wykorzystywane przez aplikację gdzieś do komunikacji HTTP modyfukuje te parametry i patrzą, czy ktoś nie popełnił gdzieś błędu i czegoś nie dopilnował po stronie kodu.

Potem jest już cała lista brzmiących jak zaklęcia nazw innych podatności typu SQL injection, Cross-Site Scripting, XXE i tak dalej. To są typowe podatności, błędy w konfiguracji, programistyczne, które pozwalają na przykład za pośrednictwem strony wysyłać dodatkowe zapytania do bazy danych, albo te dane tam dodawać, albo odczytywać, albo w imieniu użytkowników wykonywać jakieś akcje na stronie internetowej, albo w skrajnych przypadkach (i takie rzeczy też się zdarzają, nie tak dawno testowaliśmy nawet pewien sklep i udało nam się) uzyskać pełną kontrolę nad serwerem.

Sporo powiedziałeś o tym, jakie są konsekwencje dla klientów takich sklepów internetowych. To jest o tyle wartościowe, że tak naprawdę klientów e-Commerce jest więcej, niż właścicieli. Często w ogóle klienci również są właścicielami, więc to też pokazuje, że o swoje dane trzeba dbać i trzeba też dbać o dane swoich klientów. Natomiast człowiekowi, który jest nastawiony na biznes (czego oczywiście nie popieram), może przyjść do głowy pytanie „właściwie po co ja mam dbać o dane moich klientów, przecież to nie są moje dane, jak komuś coś wycieknie w sieci, to mu wycieknie i to jest jego hasło, jego problem, mógł mieć różne hasła, to nie jest moja wina, że miał jedno wszędzie takie samo”. Swoją drogą ja muszę swoje „ania123” zmienić po nagraniu, bo nie chciałbym, żeby cała Polska się dowiedziała.

Wygadałem się.

Wygadałeś mnie. No ale jakoś to przeżyję. Będę miał „1234” od dzisiaj. Swoją drogą nie mieliśmy chyba w planach o tym dzisiaj rozmawiać, ale skoro mówimy o „ania1234” to ja też może dodam, że warto by było jeszcze pomyśleć nad skomplikowaniem tego hasła, bo generalnie prostota haseł powoduje, że nie trzeba nawet specjalnych umiejętności, żeby pewne rzeczy złamać. Ale wracając do kwestii tych konsekwencji. Wyobrażam sobie takich nie do końca moralnych właścicieli sklepu, którzy mogą powiedzieć, że wyciek danych to nie jest dla nich duży problem. Jakie są tak naprawdę konsekwencje takich ataków? Przy ransomware, o którym mówiłeś, myślę, że one są jasne – $4 500 000, które zapłacił Garmin, wydają się wystarczającym argumentem, żeby takich nieprzyjemnych konsekwencji unikać. Co z pozostałymi atakami? Na jakie konsekwencje taki sklep się naraża?

Właśnie troszkę w odpowiedzi na takich nieuczciwych przedsiębiorców, którzy uznali, że dbanie o bezpieczeństwo danych nie jest do końca ich sprawą, powstało RODO. Między innymi oczywiście, bo to jest duża rzecz. Natomiast weszło takie prawo, o którym wszyscy słyszeli. Na to RODO różni ludzie się powołują, czasem z sensem, częściej bez. Natomiast rzeczywiście jest tak, że mamy teraz obowiązek zgłosić każdy wyciek danych do urzędu ochrony danych osobowych. W przypadku Polski do UODO. I – co więcej – taka firma, która do danego wycieku dopuści, otrzyma karę finansową. Więc zupełnie tak samo, jak w przypadku ransomware, może się to wiązać z konkretnymi karami finansowymi.

Co więcej, mamy obowiązek poinformować nie tylko UODO, ale też naszych klientów, tych, których wyciek dotknął. I chyba nie trzeba tłumaczyć, że pisanie maila w stylu „drodzy państwo, miał miejsce wyciek w naszej firmie, nie do końca wiemy, jakie dane wyciekły, nie wiadomo jak długo (tak często te maile brzmią), prosimy wszystkich o zmianę hasła i zablokowanie kart bankomatowych” i tak dalej – jest to duży cios wizerunkowy. Myślę, że nie buduje zaufania do marki, sklepu i przedsiębiorcy.

Jest oczywiście też zagrożenie wykorzystania podatności w logice systemu albo innych podatności i na przykład podmianę bramki PayPal tak, że płatności, które miały iść do naszego sklepu, będą szły do jakiegoś „słupa” należącego do przestępcy, czy na podobnej zasadzie numeru konta bankowego i wtedy przelewy będą wysyłane do przestępców.

Być może ktoś będzie umiał manipulować cenami w sklepie i po prostu kraść produkty, ustawiając ich cenę na śmiesznie małą kwotę i zamawiając je.

Więc tych zagrożeń jest sporo i wiele z nich wiąże się po prostu z możliwością utraty pieniędzy, także po stronie sklepu.

Wrócę na chwilę do RODO i zgłaszania tych problemów. To jest też trochę szerszy temat, ale przy RODO on ma akurat bardzo szczególne znaczenie, bo powiedziałeś, że każdy taki atak trzeba zgłosić. Czy w takim razie mogę założyć, że taki każdy atak będzie widać? No bo ransomware (będę się trzymał tego przykładu, bo jest wdzięczny) widać od razu, bo sklep przestaje działać. Ale czy każde naruszenie bezpieczeństwa sklepu internetowego widać i czy da się zrobić tak, żeby każde naruszenie bezpieczeństwa było widać?

Części ataków nie będzie widać gołym okiem. Oczywiście ransomware to jest wdzięczny przypadek, bo wtedy wszystko wybucha, nic nie działa i wszyscy wiedzą, że jest atak. Natomiast w przypadku tych wycieków, wiele z nich administratorzy, właściciele sklepów, programiści robią sobie sami nieświadomie.

No właśnie – nieświadomie. Tego nie widać, że ten wyciek jest. Jeśli my aktywnie nie poszukujemy luk w naszych sklepach i jakichś problemów, to ich po prostu nie będzie widać. Dlatego konieczne jest stałe monitorowanie logów tego, jakie żądania przychodzą, jakie akcje w sklepie wykonują klienci, albo generalnie różni aktorzy. I konieczne są regularne pentesty, sprawdzanie, czy nie pojawiły się jakieś dodatkowe rzeczy w systemie, być może jakieś backdoory.

Powiem więcej. Gdybym ja się gdzieś włamywał do sklepu, to zrobiłbym wiele, żeby jak najciszej „się zainstalować” właśnie po to, żeby jak najdłużej utrzymać dostęp do sklepu nieświadomego przedsiębiorcy.

Czyli tak naprawdę trochę trudno żyć bez stałego i regularnego monitorowania bezpieczeństwa sklepu i jednocześnie czuć się bezpiecznie. Zapytam Cię o coś, co jest związane z tym, o czym mówiłem na początku, czyli tym, że jest bardzo różne podejście do kwestii bezpieczeństwa. Zasada „lepiej zapobiegać niż leczyć” bardzo często występuje, ale ona najczęściej występuje u ludzi, którzy już przynajmniej raz „zachorowali”, czyli dopóki komuś nikt się nie włamał, to każdy żyje z takim przeświadczeniem, że „mnie to nie dotyczy, mój sklep sobie gdzieś tam stoi na uboczu i nikogo nie interesuje” pewnie do momentu, aż wydarzy się jedna z tych rzeczy, o których wcześniej powiedziałeś. Wtedy każdy trochę lepiej patrzy na te wszystkie kwestie związane z bezpieczeństwem. Co mogą zrobić ludzie, którym w danym momencie „mleko się rozlało”? Hakerzy wykorzystują podatność mojego sklepu – co ja mogę właściwie zrobić w zależności od tego, jaki to jest rodzaj ataku?

W przypadku ransomware (wdzięczny przypadek na początek wymieniany) niewiele można zrobić. Mleko się rozlało, dane są zaszyfrowane. Były takie przypadki, że udało się dane rozszyfrować bez „pomocy” przestępców, ale wtedy to przestępcy muszą popełnić błąd w implementacji tego algorytmu szyfrującego, który wykorzystali. To się zdarza, ale nie często. Co więcej, to jest oczywiście wyścig zbrojeń. Obecnie ci bardziej profesjonalni cyberprzestępcy, a jest to biznes i to naprawdę są profesjonaliści (niektórzy), sami zabezpieczają się przed takimi pomysłami i instalują dodatkowe bezpieczniki. Jeśli one wykryją próbę takiego „nielegalnego” odszyfrowania danych bez ich pomocy, mogą takie dane po prostu zniszczyć i w ogóle zostaniemy z ręką w nocniku.

Można się pogodzić ze stratą, wyczyścić serwer, postawić go z ostatniego backupu, prawdopodobnie stracimy trochę ostatnich transakcji, ale mamy satysfakcję, że nie zapłaciliśmy przestępcom no i żyjemy dalej. Mam nadzieję, że bezpieczniej.

Można zapłacić okup. Warto wiedzieć, że istnieją firmy, które negocjują okupy w naszym imieniu z cyberprzestępcami, być może to jest też jakiś pomysł na dalsze działanie w takim przypadku.

W przypadku wycieków może się pojawić taka pokusa, żeby to ukryć, bo przecież UODO nie będzie wiedzieć o czymś, o czym im nie powiedzieliśmy. To jest zły pomysł, bo te dane prędzej czy później gdzieś wypłyną. Być może w darknecie albo na forum ktoś wrzuci kawałek naszej bazy. Jak się uda zidentyfikować źródło wycieku, to oczywiście UODO i tak się nami zajmie, tylko kara będzie wyższa, a poza tym jest to też z moralnego punktu widzenia słaba opcja, ponieważ powinniśmy w takim przypadku, jeżeli te dane rzeczywiście wyciekły, poinformować klientów, że te ich dane gdzieś tam latają po Internecie i być może muszą sobie zmienić hasła, zablokować kartę. Być może muszą sprawdzić historię kredytową, czy ktoś na ich pesel nie próbuje się zadłużać. Więc w żadnym wypadku nie należy tego próbować ukrywać i liczyć, że to się rozejdzie po kościach. Nie rozejdzie się – prędzej czy później to wyjdzie.

No i tak naprawdę w przypadku każdego problemu należy się zwrócić do specjalistów i nie próbować tego gdzieś tam samemu łatać, samemu ratować i tak dalej. Zwróćmy się do specjalistów i pozwólmy im działać, zrobić analizę powłamaniową, żeby się nie okazało, że chwilę po sprzątaniu po wycieku czy włamaniu zaraz pojawi się następne, bo gdzieś został backdoor i tak dalej. Pozwólmy specjalistom działać.

Tu jeszcze warto powiedzieć o jednej rzeczy. Ona jest troszeczkę obok pytania, ale myślę, że warto o tym mówić.

Zdarza się, że podatność w sklepie czy stronie internetowej znajduje uczciwy haker albo pentester. Albo bo coś zauważył i trafił przypadkiem, albo w wolnym czasie szukał sobie takich rzeczy. I tacy ludzie bardzo często zupełnie w dobrej wierze po prostu kontaktują się wtedy z administratorami takiego systemu, z właścicielami sklepu i tak dalej, wskazując im taką podatność. Niestety zdarza się, że ci właściciele sklepów reagują bardzo nerwowo na takie rzeczy. Albo próbują ignorować problem, albo odpowiadają w różny, agresywny sposób, łącznie z grożeniem pozwami takim ludziom. To nie jest dobry sposób reagowania. Warto w takich przypadkach jak najszybciej odpowiedzieć, być komunikatywnym w rozmowie z taką osobą, wyciągnąć od niej jak najwięcej informacji i wykorzystać te informacje, żeby uczynić nasz system bezpieczniejszym, a na koniec ładnie podziękować komuś, kto w dobrej wierze nam pokazał problem w naszym własnym systemie. W dobrym tonie byłoby też wypłacić jakieś bug bounty, czyli nagrodę pieniężną za odnalezienie takiej podatności. Nie jest to mus, natomiast podstawą jest reagować spokojnie na takie zgłoszenie i starać się jak najszybciej rozwiązać problem.

Dzisiejszy odcinek chyba będzie sponsorowany przez hasło „ransomware”. Obiecuję, że postaram się tego tematu już trochę bardziej unikać, ale mam jeszcze jedno pytanie. Powiedziałeś, że czasami jedyną możliwością jest zapłacenie okupu. Ataki ransomware mają to do siebie, że są dość głośne i wydaje mi się, że jest duża świadomość, że one są i dużo ludzi, myślę, że wie, że wiążą się z okupem. Natomiast jak wygląda sprawa skuteczności takiego okupu? Bo wiesz, jak ktoś oglądał jakieś filmy, w których pojawia się zagadnienie okupu, to wie, że czasami po opłaceniu okupu pojawia się potrzeba zapłacenia drugiego albo trzeciego okupu, albo wpada się po prostu w spiralę. Jak to wygląda w tym wypadku?

Oczywiście gwarancji nie ma. To nie jest tak, że zawieramy umowę z jakąś firmą, z którą, jeśli ona nie dotrzyma swojej części umowy, będziemy mogli pójść do sądu i uzyskać odszkodowanie. Natomiast praktyka pokazuje, że raczej przestępcy dotrzymują swojej części „umowy”. Z tego prostego powodu, że to jest po prostu dla nich biznes. Jeśli rozejdzie się, że będzie jeden, drugi, trzeci, czwarty przypadek, że jakaś firma opłaciła okup i nie otrzymała tego, co zamówiła, czyli nie udało się odszyfrować danych, to za chwilę nikt nie będzie tych okupów płacił, bo nie ma sensu i te dane należy uznać za utracone i tyle.

Więc w najlepszym interesie przestępców jest generalnie dbać o swoją wątpliwą reputację i po prostu dotrzymywać swojej części umowy. Przy czym tutaj jeszcze jedna uwaga – trzeba pamiętać, że każdy ransomware oznacza także wyciek danych. To, że cyberprzestępcy te dane zaszyfrowali, to oznacza, że mieli pełen dostęp do naszego systemu, mieli pełen dostęp do naszych danych i mogli wykonać także kopie tych danych. I tam będą znowu te cenne dane, o których mówiliśmy wcześniej. Nie ma żadnej gwarancji, że oni te dane usuną po dopełnieniu części umowy na temat odszyfrowania danych. Nie ma żadnej gwarancji, że nie zażądają drugiego okupu za usunięcie tych danych albo że te dane gdzieś po prostu wypłyną za jakiś czas. Więc o tym też trzeba pamiętać.

Przejdźmy do części proaktywnej. Celem tego odcinka jest to, żeby ta kwestia, o której mówiłem wcześniej, czyli „lepiej zapobiegać, niż leczyć” wdrożyć w praktyce, czyli żeby nie było sytuacji, że dopiero o bezpieczeństwo dbają te osoby, którym to bezpieczeństwo przynajmniej raz dało się we znaki. Zacznijmy od tego, że poproszę cię, żebyś zdefiniował, co to według ciebie oznacza właściwie „bezpieczny sklep internetowy”?

O jedną definicję bezpiecznego sklepu internetowego, strony czy systemu trudno. Trzeba pamiętać, że bezpieczeństwo to tak naprawdę jest proces, a nie produkt. To nie jest coś, co możemy raz kupić, czy usługa, którą raz wykupiliśmy, przyszli pentesterzy, potestowali, my (mam nadzieję) wdrożyliśmy ich zalecenia i załatwione.

Bezpieczeństwo to jest proces i tak naprawdę na to składają się wszystkie warstwy, od tego, jak system był tworzony, w jaki sposób go napisano, poprzez to, jak został wdrożony, jak administrowane są te maszyny i serwery, tam, gdzie projekt jest uruchomiony. To, czy one są monitorowane, czyli to, o czym mówiliśmy wcześniej, czy sprawdzamy, co się dzieje w logach.

Kolejną rzeczą, o której trzeba pamiętać, są regularne aktualizacje. Generalnie w oprogramowaniu, czy to w systemach operacyjnych, w windowsie, linuksie, wordpressie czy innych frameworkach webowych są znajdowane dziury i one są publikowane. To znaczy, to jest publicznie wiadome, że w takiej i takiej wersji wordpressa taki skrypt można było wykorzystać, żeby ukraść dane, albo zrobić XSSE czy cokolwiek. Jedynym wyjściem jest regularne aktualizowanie tych systemów, dbanie o to, żebyśmy mieli je w najnowszej wersji, bo na najnowszą wersję najczęściej nie ma znanych powszechnie dziur, które cyberprzestępcy mogą wykorzystywać.

Oczywiście konieczne są regularne backupy. To kolejny bon mot zdecydowanie zbyt często wykorzystywany, że ludzie dzielą się na tych, którzy robią backupy i tych, którzy będą robić backupy. Więc bądźmy ludźmi, którzy robią backupy i nie narażajmy się na utratę tych danych. To się może przydać nie tylko w przypadku ransomware, bo dane można utracić w różny sposób, czasem przez błąd administratora, czasem błąd w oprogramowaniu i tak dalej – backupy są konieczne.

I to, co dochodzi powoli do świadomości w Polsce coraz szerzej, to że potrzebne są regularne pentesty, czyli regularna kontrola przez kogoś z zewnątrz, czy rzeczywiście nie ma żadnych podatności, czy system jest skonfigurowany poprawnie.

Masz do czynienia ze sklepami na co dzień, czy w ogóle z systemami. Czy możesz przybliżyć, jaka tak naprawdę jest skala tego problemu? To, co my tutaj rysujemy, to bardzo negatywne scenariusze, natomiast na początku powiedziałeś, że to zależy i jeśli firma wykonała swoją pracę dobrze, to jest duża szansa, że ten sklep jest bezpieczny przynajmniej przez jakiś czas. W praktyce, gdybyś miał podzielić się swoją opinią, to gdyby przyszedł do Ciebie taki statystyczny właściciel sklepu internetowego i dał Ci taki statystyczny sklep internetowy, chwilowo bez mówienia o technologii i tego kiedy ten sklep powstał i tak dalej – to raczej będzie tak, że ten sklep jest dobrze zabezpieczony, czy raczej będzie tak, że coś się tam znajdzie?

Z doświadczenia z tego, jak testujemy sklepy, to w zasadzie mogę zagwarantować, że znajdziemy jakieś problemy w zdecydowanej większości. Wiadomo, że problemy są duże i małe, nie każdy problem to od razu przejęcie kontroli nad serwerem, natomiast w zdecydowanej większości będą to problemy przynajmniej klasy wysokiej, czyli już da się jakieś operacje zupełnie nieplanowane przez administratorów i programistów wykonać na serwerze.

Wiąże się to z tym, że, tak jak powiedziałem chwilę temu, ta świadomość dopiero się pojawia. I w większości sklepów te pentesty, które my robimy, są wykonywane tam pierwszy raz. I też jest tak, że nawet programiści i administratorzy, którzy od lat coś tam robią, pierwszy raz widzą taką recenzję swojej pracy od tej strony bezpieczeństwa. No i dopiero się uczą tego, że te rzeczy, które robili i to, jak je robili dotychczas, może nie są najbezpieczniejsze i mogą się wiązać z konkretnymi problemami, które wskazujemy. Mamy nadzieję, że programiści, administratorzy i właściciele sklepów z tych naszych pentestów wyciągają lekcje i następne pentesty będą mniej owocne i mniej tam znajdziemy.

Natomiast dzisiaj jest tak, że w zdecydowanej większości sklepów znajdujemy bardzo poważne dziury.

A jak się ma do tego technologia? Na początku ją ominąłem, bo chciałem, żebyśmy zobaczyli ogólny obrazek, ale te sklepy powstają na bardzo różnych technologiach. Kiedyś była taka opinia, że jak coś jest postawione na WordPressie, to prawdopodobnie jest dziurawe. Pewnie za chwilę mi powiesz, czy ta opinia jest dalej aktualna, czy to jest tylko jakaś zaszłość. Tych technologii jest kilkadziesiąt różnych. Czy są jakieś różnice w tym, jak dużo znajdujecie podatności w zależności od tego, która technologia stoi za danym sklepem? Pytam po to, żeby może niektórych właścicieli trochę uspokoić, a niektórych wręcz przeciwnie.

Przewrotna odpowiedź jest taka, że najbezpieczniejsza technologia to taka, którą dobrze znamy my, albo nasi programiści i administratorzy. To znaczy, dobrze administrowany Wodpress będzie bezpieczniejszy, niż sklep postawiony na kiepsko ogarnianym .NET na przykład.

Ja bym unikał określania, że coś jest bardziej bezpieczne, a coś mniej. To nie jest tak. Z tym WordPressem rzeczywiście był jakiś problem przez pewien czas i odkrywano w samym WordPressie bardzo dużo problemów, ale tak, jak mówiłem wcześniej, one były też regularnie łatane. To nie jest tak, że tam wiszą dziury latami. Więc jeśli my też aktualizujemy sobie regularnie ten system, to jest duża szansa, że jesteśmy bezpieczni niezależnie od technologii.

Jeśli miałbym coś poradzić, to należy wybierać technologie dobrze znane, dojrzałe, takie, które już od jakiegoś czasu są na rynku, bo tam te największe problemy i „nisko wiszące owoce” już prawdopodobnie zostały wyłapane i jest duża szansa, że też jest tam albo community, albo jakiś zespół za tym stoi, który regularnie aktualizuje technologie. Jeśli pojawi się znany publicznie problem, to pojawi się szybko łatka, którą my będziemy mogli wdrożyć w naszym sklepie.

Więć nie należy się skupiać na technologii jako takiej, nie będę mówił tutaj, że .NET jest lepszy niż Java, a Java lepsza niż PHP (albo na odwrót), natomiast warto iść w technologie dojrzałe, warto iść w technologie aktywnie rozwijane.

A jeszcze cię dopytam o różnicę pomiędzy gotowym systemem a systemem dedykowanym. Wspomniałeś o tym, że jest jakieś community, które za coś odpowiada. Taki WordPress, Prestashop czy Magento mają to do siebie, że tych instalacji mają w tysiącach czy dziesiątkach tysięcy na rynku, więc jeśli jest jakaś podatność, to ona z jednej strony rozprzestrzenia się szybko, ale z drugiej strony ta reakcja jest odpowiednio szybka. Z drugiej strony mamy jakieś dedykowane rozwiązanie, które robiła firma, no i wiesz – jeśli taki system, który był rozwijany latami przez ogromne firmy, dalej posiada jakieś błędy i podatności, to co można pomyśleć o takim systemie, który był dedykowany i był robiony na zamówienie przez jedną firmę, nie miał szansy się wygrzać, zbudować community. Czy to ma duży wpływ na ryzyko występowania znaczących podatności?

Tak, zdecydowanie tak. Rzeczywiście taki świeżo zrobiony system ma dużo większe szanse, bardzo dużo większe szanse na to, że tych podatności będzie tam ileś i pewnie się pojawią prędzej czy później, szczególnie jeśli jest to zrobione przez małą firmę, są tam niedoświadczeni programiści. Wtedy na pewno tych problemów pojawi się więcej, niż w takim WordPressie, który, jak to ładnie określiłeś, jest już wygrzany (albo Magento).

Z drugiej strony jest też tak, że znalezienie podatności w dedykowanym systemie wymaga więcej pracy, no bo na wykorzystanie jakiejś dziury w WordPressie prawdopodobnie da się znaleźć skrypt w Internecie. Nie trzeba mieć bardzo dużej wiedzy i poświęcać na to specjalnie dużo czasu. Ściągasz sobie skrypt, puszczasz na odpowiednią domenę i on Ci się tam sam włamie za Ciebie właściwie.

Żeby znaleźć coś w jakimś customowym systemie, to trzeba już mieć wiedzę i poświęcić na to czas i po prostu testować, aż natrafimy na jakieś dziury. Więc nie jestem pewien, czy tak można jednoznacznie określić, która z tych opcji jest bardziej bezpieczna. Na pewno konieczne jest wykonanie pentestu systemu niezależnie od tego, czy jest to system na zamówienie, czy to jest to postawione na czymś znanym w branży.

Jak wygląda właściwie taka procedura? Powiedzmy, że chciałbym skorzystać z usług takiej firmy jak wasza, czyli zlecić firmie testy bezpieczeństwa. Jakiego procesu powinienem się spodziewać?

Cały proces zaczyna się tak naprawdę od wyceny, czyli firma pentesterska zajrzy sobie na taką stronę internetową, do systemu, na sklep i nie wykonując zupełnie żadnych ataków po prostu przeklika, co tam jest i co tam widać. Próbujemy ocenić, ile czasu będzie wymagało przetestowanie takiego sklepu. W przypadku sklepów internetowych to jest zwykle kilka dni roboczych, tak 3 do 5 dni. Myślę, że powyżej tygodnia to raczej trudno znaleźć taki sklep internetowy, który by trzeba testować. No i potem są formalności, ustalenie ceny, podpisanie umowy, podpisanie NDA. Trzeba ustali, jakie dostępy otrzymają pentesterzy i ustalić terminy tego, kiedy możemy testować, no bo to nie jest tak, że my możemy sobie po prostu wziąć sklep i zacząć się tam radośnie włamywać, bo jest to przestępstwo według polskiego prawa. Więc my takie ataki wykonujemy tylko w bardzo konkretnych i ustalonych z daną firmą terminach. I tylko wtedy i ustalonym zakresie, to znaczy możemy ustalić, że zakresem jest cały sklep, albo zakresem są też inne porty i usługi uruchomione na całym serwerze, albo wręcz przeciwnie – możemy wskazać tylko fragment sklepu.

Oczywiście im szerszy zakres, tym bardziej to wartościowe, ale też więcej czasu i droższe.

Po tym, jak już dojdzie do samego testowania, to pentesterzy będą robili to, o czym powiedziałem wcześniej, to znaczy będziemy próbowali zalogować się do jakichś usług domyślnymi loginami i hasłami, które są dostępne w Internecie, będziemy próbować jakimiś publicznie znanymi loginami, będziemy próbowali słabych haseł, przeskanujemy pewnie to jakimiś automatycznymi narzędziami, będziemy próbowali znaleźć ukryte katalogi na serwerze, będziemy badać logikę aplikacji, podawać jej dziwne parametry i badać, jak się aplikacja zachowuje.

No i jak tylko zauważymy jakieś zachowanie takie, które się rzuca w oczy, to wtedy drążymy taki przypadek i szukamy, czy da się to wykorzystać w jakiś złośliwy sposób.

Oczywiście w zależności od umowy możemy testować pod konkretne podatności, możemy dokonać przeglądu kodu, możemy dokonać przeglądu serwera, czyli od tej strony przejrzeć system plików i szukać tam podejrzanych rzeczy.

To, co znajdujemy, jest wpisywane do raportu, który na koniec uzupełniamy o zalecenia naprawy. Przy każdej podatności są zalecenia, co zrobić, żeby się tej podatności pozbyć i rozwiązać problem. Taki raport wysyłamy klientowi. Możemy się umówić też, że w przypadku znalezienia krytycznych podatności, czyli właśnie jakieś dane są publiczne, które nie powinny być i tak dalej – możemy je zgłaszać na bieżąco, żeby od razu usunąć problem.

Mamy w naturze to (przynajmniej ja się bardzo często spotykam z takim podejściem w biznesie), że są firmy, które po prostu są trochę chore na outsourcing i wolą robić wszystko same, mają swój dział IT i swoje działy marketingowe, SEO i generalnie nie outsourcują, są takim samowystarczalnym bytem. Powiedzmy, że taka firma uruchamia e-Commerce i postanawia sama dbać o swoje bezpieczeństwo. Czy to wszystko, o czym powiedziałeś, w sensie kompetencji, to jest tak naprawdę jedna osoba czy jest potrzebny cały zespół i jakie te kompetencje są? Jak to się dzieli na różnych ludzi?

Jedna osoba będzie miała raczej trudno ogarnąć to wszystko. To znaczy trudno mi sobie wyobrazić, że ktoś będzie świetnym biznesmenem, świetnym administratorem, świetnym programistą, jak trzeba będzie coś dopisać do systemu i jeszcze do tego wszystkiego będzie specjalistą do spraw bezpieczeństwa.

Każda z tych rzeczy, które wymieniłem, to jest tak naprawdę pełen etat najczęściej, a czasem etat dla kilku osób. Więc nie, raczej jedna osoba nie jest w stanie się tym zająć.

To jest trochę tak (cały czas do tego wracam), że bezpieczeństwo to jest proces. Na bezpieczeństwo rozwiązania, firmy, infrastruktury i wszystkiego innego tak naprawdę składają się wszyscy – programiści, administratorzy, ludzie, którzy zarządzają contentem, wreszcie nawet sekretarka w firmie też za to odpowiada, bo istnieje możliwość ataków socjotechnicznych, żeby na przykład nakłonić sekretarkę, żeby podłączyła pendrive do swojego komputera w wewnętrznej sieci, albo uruchomiła jakiś skrypt, który jej wyślemy, bo ktoś ją namówi. Takie rzeczy też się zdarzają i takie testy też się przeprowadza.

Wszystko do składa się na bezpieczeństwo sklepu. I ważne jest dbanie o kompetencje na każdym z tych etapów, które wymieniłem. Personel nietechniczny trzeba szkolić z tych socjotechnik, z tego, że takie rzeczy się zdarzają, żeby traktować jako podejrzane rzeczy, które przychodzą z zewnątrz – sprzęt czy ludzie przychodzący z dziwnymi prośbami. Trzeba szkolić programistów i adminów z bezpieczeństwa w ich konkretnych działkach. Trzeba też pamiętać o tym, że jeśli mamy przepracowanych ludzi, szczególnie technicznych, oni są na jakichś krótkich deadlinach, a ich się cały czas ściga, to gwarantuję, że pierwszą rzeczą, jaka oberwie w firmie, będzie właśnie bezpieczeństwo, bo zacznie się chodzenie na skróty, czy to w pisaniu kodu, czy to w administrowaniu – będą takie same hasła administratorskie, zwykli użytkownicy będą mieli uprawnienia administratora, bo tam wiecznie szef musiał chodzić i opieprzał tego biednego administratora, więc dla świętego spokoju mu dał admina, żeby nic mu się nigdy nie wywalało. No i oczywiście to gwarantuje, że przy takim podejściu w pewnym momencie to po prostu gdzieś nam się zwali na głowę i będzie problem. Bo tak, jak mówię – pierwsze zawsze traci bezpieczeństwo.

Wrócę jeszcze na chwilę do pytania o kompetencje, bo chciałem coś doprecyzować. Czy ty, będąc na stanowisku pentestera, jesteś w stanie jednoosobowo… mówiłeś o współpracy z taką firmą jak wasza, czy może być tak, że sklep internetowy jako zlecenie trafi tylko do ciebie i jesteś w stanie zaudytować w pełnym zakresie? Pytam o to dlatego, że wiesz – bezpieczeństwo to proces i coś, co dotyczy całej firmy. Ale gdybym chciał rozpocząć ten proces bezpieczeństwa i zatrudnić takie osoby zamiast outsourcingu do takiej firmy, jak wasza, to czy to jest tak naprawdę jedna osoba / stanowisko. Czy byłbyś w stanie, dostając zlecenie na sklep, ten sklep w pełni przetestować, czy Twój zakres kompetencji jest zbyt mały i na przykład przy takim teście sklepu bierze udział trzy, cztery osoby, bo każda ma trochę inną specjalizację?

W przypadku testu normalnego sklepu internetowego zdecydowanie wystarczy jedna osoba. Pentester jest w stanie ogarnąć całość, to jest na tyle wąska działka, że ja jestem w stanie wziąć taki sklep i go dobrze przetestować i znaleźć tam problemy, które tam występują, dobrze je opisać i zalecić naprawę.

Oczywiście zwykle jest tak, że w firmie wykonujemy je w kilka osób, bo jest to taka specyficzna praca, która bardzo mocno opiera się na spostrzegawczości. Więc jak kilka osób spojrzy na stronę, to jest większa szansa, że wyłapiemy po prostu wszystko. Natomiast jeśli chodzi o kompetencje, to zdecydowanie samo przetestowanie takiej aplikacji, to wystarczy jedna osoba.

Ale.

Ale jest takie zatrudnienie takiej osoby, która by się u nas zajmowała bezpieczeństwem, nie rozwiązuje do końca problemu. To znaczy, taka osoba pentestować codziennie tego sklepu nie będzie. Siłą rzeczy będzie się trochę zajmowała czymś innym, siłą rzeczy będzie trochę administrowała ten sklep i w pewnym momencie ta osoba może nie widzieć własnych błędów. Generalnie rzecz biorąc, to jest taka dziedzina, gdzie bardzo często te problemy dostrzegamy, jak już jest za późno i dlatego potrzebne jest spojrzenie kogoś z zewnątrz, po to są audyty zewnętrznych firm.

To do mnie przemawia. Powiedz mi jeszcze, jak często właściwie trzeba ponawiać takie testy i audyty? No bo w końcu (i to też jest obraz bardzo częsty, jeżeli chodzi o polskie e-Commerce, szczególnie te, które dopiero wchodzą na rynki) często sytuacja wygląda tak, że wdrażam sklep, włączamy guzik – działa. Ja tego już nie dotykam, nie rozwijam sklepu i po prostu zajmuję się sprzedażą. Po co właściwie miałbym testować jeszcze raz, skoro nic się nie zmieniło?

No widzisz, ja właśnie miałbym nadzieję, że jednak ten sklep od czasu do czasu dotykasz. Że wykonywane są backupy, że wykonywane są aktualizacje oprogramowania, czyli to, o czym powiedzieliśmy. Jeśli ktoś uruchomi sklep i o nim zapomni w takim sensie przynajmniej technicznym, że on sobie tam po prostu będzie działać, to po roku-dwóch gwarantuję, że znajdziemy tam krytyczne podatności. Całkiem możliwe, że uzyskamy po prostu pełną kontrolę nad takim serwerem.

Trzeba pamiętać o tym, że znajdowane są cały czas nowe luki w istniejącym oprogramowaniu, że te luki stają się znane po prostu publiczne i na te luki są gotowe exploity, które nawet ludzie bez jakiejś bardzo dużej wiedzy są w stanie ściągnąć, odpalić i atakować sklepy. Czasem wręcz da się zrobić tak, że wyszukiwanie podatnych instancji na przykład WordPress, Apache czy innych systemów, można zautomatyzować. To znaczy, ludzie piszą crawlery, które lecą sobie przez Internet i nie za bardzo ich nawet interesuje, że to jest sklep internetowy czy coś, ale identyfikuje podatną wersję tego, czego szuka i ją atakuję, uzyskując uprawnienia albo pobierając dane.

Więc wrócę do tego jeszcze raz – mam nadzieję, że nawet jeżeli tam nie rozwijamy tego programistycznie i nie dodajemy nowych ficzerów, nie instalujemy nowych pluginów i tak dalej, że to jest regularnie dotykane i są regularnie robione backupy i aktualizacje oprogramowania. A w związku z tym siłą rzeczy coś się na tym serwerze dzieje i w związku z tym trzeba mimo wszystko regularnie takie sklepy audytować i nie zapomnieć też o takiej po prostu higienie tego administrowania, czyli kontroli tego, jakim użytkownikom daliśmy dostęp do naszego serwera, jakie mają uprawnienia i monitorowanie logów, żeby wychwycić jak najwcześniej, jeśli tylko dzieje się coś podejrzanego.

Jesteś w stanie podać taką, chociaż przybliżoną częstotliwość? Powiedziałeś chwilę wcześniej, że taki pentester nie będzie wiecznie siedział i pentestował i ja też zakładam, że nowe podatności nie wychodzą codziennie. Biorę oczywiście poprawkę na to, że jeżeli sobie powiemy, nie wiem, na przykład „co tydzień” i ktoś w poniedziałek zrobi mi audyt, a we wtorek wyjdzie podatność, to do następnego poniedziałku jestem w stanie stracić wszystkie swoje dane, bo rozejdzie się fala po Internecie. Natomiast czy tak z punktu widzenia zdrowego rozsądku jest jakiś interwał, który można sobie przyjąć do ponawiania takich testów, czy to znowu też od czegoś będzie zależało?

Oczywiście zależy od wielu rzeczy, to znaczy od tego, jaki ruch mamy na tym sklepie, jak cenne dane mamy i jak często jednak coś tam dłubiemy, bo tak jak mówię – nie przekonasz mnie, że tak całkiem nic tam nie dotykasz.

Natomiast wydaje się, no ale to jest takie bardzo zgrubne i nie trzymajcie mnie za słowo, że raz na rok to jest absolutne minimum.

Wracam na chwilę do współpracy z firmą zewnętrzną. Mnie się tutaj trochę kojarzy taka współpraca ze współpracy z agencją SEO. To znaczy, jeśli pójdę do agencji SEO i moje pojęcie o SEO było zerowe, to jest szansa, że taka agencja przez spory kawałek czasu za niemałe pieniądze będzie poprawiała błędy, które z punktu widzenia całego świata są już oczywiste. Czyli będzie poprawiała moje błędy w sztuce i zdecydowanie ja promuję takie podejście, że zanim pójdzie się do agencji SEO, to fajnie by było mieć przynajmniej posprzątane na podwórku, przynajmniej w tym super podstawowym zakresie, który każdy już powinien znać. A jeżeli nie zna, to poradników super podstawowych jest całe mnóstwo. I wtedy takie agencje SEO dostają do zrobienia te trudne rzeczy, czyli faktycznie walka o pozycje w wyszukiwarce, optymalizacja, wykręcanie wyniku jak tylko się da. Ale nie zajmują się pierdołami. Jak to jest z bezpieczeństwem, czy jest coś, co ja mogę zrobić, co spowoduje, że w momencie, kiedy przyjdę po audyt, to ten audyt nie będzie miał dwustu stron wyników, z czego większość to są tak naprawdę problemy, których uniknąłbym, gdybym poczytał w Internecie i przez to ten audyt nie wykazał takich podatności, które są naprawdę poważne i dopiero, jak się zajrzy głębiej, to zagrażają mojemu sklepowi?

Tak, zdecydowanie są takie rzeczy, które my trochę czasem przewracamy oczami, jak musimy kolejnym razem pokazywać palcem te oczywiste rzeczy, o których przecież wszyscy wiedzą.

Jak miałbym wymienić takich kilka rzeczy, które warto zrobić, zanim się wpuści specjalistów, no to na pewno zrobić przegląd plików na serwerze, czyli rzeczywiście popatrzeć w ten folder, który jest publiczny i zobaczyć, co my tam właściwie publikujemy, co mamy publicznie. Jeżeli tam jest cokolwiek, cokolwiek, co nie powinno być publiczne z naszego punktu widzenia, to należy to stamtąd po prostu usunąć.

Zrobić przegląd oprogramowania to jest to, o czym wspomniałem i trzeba to powtarzać. Czyli zaktualizować wszelkiej maści oprogramowanie od najnowszych wersji. Zadbać o to, żeby to było aktualne, żebyśmy nie musieli wpisać błędów krytycznych, które ktoś już dawno znalazł w serwerze, w WordPressie, Magento, a my po prostu tylko wygooglaliśmy wersję i listę podatności. Szkoda naszego czasu, szkoda nam płacić za coś takiego.

Zrobić przegląd użytkowników i ich uprawnień, szczególnie jeżeli mówimy tu o testach infrastruktury, tej części serwerowej. Czyli popatrzmy, jakich mamy użytkowników, ilu mamy administratorów, czy my w zasadzie wiemy, kim są ci wszyscy użytkownicy, którzy tam są pododawani. To wcale nie jest takie oczywiste w niektórych przypadkach.

To jest podstawa i to warto zrobić, bo tak jak mówię, wydaje się, że wynajmowanie firmy pentesterskiej, żeby ona takie rzeczy znajdowała, to jest po prostu trochę strata pieniędzy, bo to naprawdę ogarnięty zespół techniczny powinien po prostu i tak robić regularnie.

Kolejną rzeczą, która jest już trochę opcjonalna, to można spróbować sobie przeskanować swoje konkretne rozwiązania jakimś automatycznym narzędziem. Jest narzędzie WPScan, jest Magento Security Scan Tool, są też bardziej ogólne, jak Nexus czy SonarQube. SonarQube to jest bardziej od strony backendowej, czyli on dokonuje analizy kodu. Oczywiście narzędzia automatyczne mają swoje ograniczenia, to znaczy one wiele rzeczy przegapiają, wiele mają tak zwanych false positive, czyli pokazują problemy tam, gdzie ich nie ma, albo je błędnie wyceniają, czyli pokazują, że coś jest krytyczne, podczas gdy jest w sumie niewielkim problemem, albo odwrotnie – w dziale info znajdują się rzeczy, które mogą prowadzić do groźnych konsekwencji. Musi na to popatrzeć specjalista, więc jeżeli nie czujemy się na siłach, żeby takie rzeczy robić, to już będzie strata czasu.

Warto zrobić przegląd wtyczek w WordPress, zadbać i pousuwać te niepotrzebne. W ogóle warto nie instalować zbyt wielu wtyczek w WordPress, bo o ile sam WordPress jest całkiem ogarnięty, jeśli mamy go aktualnego, to z wtyczkami bywa różnie. Czasem we wtyczkach znane podatności wiszą miesiącami, a czasem latami. Więc warto o tym też pamiętać.

Trzymajmy taką podstawową higienę i tej higieny dokonajmy, zanim zamówimy pentest.

Czyli jeśli ktoś przychodzi do was i hasło do panelu administracyjnego to „dupadupa” to jest bardzo duża szansa, że zostanie memem i wszyscy w firmie będą się śmiali, więc dobrze by było najpierw to hasło sobie zmienić.

Tak, dokładnie. My sobie czasem potem wewnętrznie, jak znajdziemy takie rzeczy, to nam zawsze to trochę dzień umila, bo się trochę ponabijamy, ale nikt nie chce być pewnie obiektem żartów.

Przy czym warto pamiętać, że generalnie staramy się w ten sposób na to nie patrzeć. To nie jest tak, że przyszli teraz elitarni pentesterzy i tu pokażą tym programistom i administratorom, gdzie jest ich miejsce. Sam byłem programistą przez siedem lat i wiem, jak to wygląda od drugiej strony. Bezpieczeństwo składa się z dziesiątek – setek rzeczy i naturalne jest to, że ludzie zapominają o czymś, albo z powodu braku czasu, albo z nieuwagi czy zmęczenia. I te dziury się gdzieś tam pojawiają. Ludzie po prostu popełniają błędy i to nie jest żaden wstyd, że te błędy są. Dobrze, że znaleźliśmy je my, a nie przestępcy.

Zanim przejdę do części inspiracyjno – hasłowej, zadam ci jeszcze ostatnie pytanie. Zakładam, że ten odcinek ma moc. To znaczy, że rzeczywiście w trakcie słuchania tego odcinka może się tak zdarzyć, że ktoś ze słuchaczy będzie czuł, że mu trochę rośnie temperatura i ten niepokój związany z bezpieczeństwem swojego sklepu też będzie szedł do góry. Czy jest jakaś szybka ścieżka, nazwijmy to – autodiagnozy, którą słuchacz mógłby wykonać zaraz po tym, jak przesłucha ten odcinek? Wyobraźmy sobie, że jest godzina 22:00 i trzeba zrobić coś na szybko, bo wiadomo, że sklep, który był niebezpieczny przez półtorej roku czy nawet więcej, to następnych paru godzin może nie wytrzymać. Trzeba się autodiagnozować. Co właściwie można zrobić?

Zależnie od stopnia zaawansowania technicznego, można zrobić różne rzeczy, albo nie robić nic.

To znaczy, można zrobić to, co powiedziałem wyżej. Ta lista przygotowania się do pentestu jest całkiem niezłym sposobem na autodiagnozę, to znaczy popatrzmy, czy mamy w ogóle aktualne oprogramowanie, popatrzmy, czy nie mamy poinstalowanego jakiegoś oprogramowania, którego nie rozpoznajemy, zajrzyjmy w foldery publiczne, które są serwowane przez serwery, czy tam się nie walają jakieś rzeczy, o których myśmy zapomnieli, może jakieś stare systemy.

Kolejna rzecz to zajrzeć do logów serwerów i zobaczyć, czy tam nie ma śladów jakichś prób masowego pobierania rekordów, czy jakichś takich przedziwnych zapytań, zawierających coś, co nie wygląda na normalny ruch w sklepie, czyli jakieś dziwne znaki w parametrach, czy czasy odpowiedzi na niektóre requesty nie są dłuższe niż na inne. To są takie rzeczy, które się powinny rzucać w oczy, które mogą (ale to nie znaczy od razu, że to jest włam) świadczyć o tym, że gdzieś tam coś się dzieje. Być może to jest tylko próba włamania, a może to jest realny problem.

Natomiast powiedziałbym tak – nie traćmy czasu. To jest tak jak z lekarzem – nie traćmy czasu na autodiagnozę i doktora Google. Jeżeli tylko nas coś martwi i rzeczywiście mamy jakiekolwiek objawy, zgłośmy się do specjalisty jak najszybciej.

Szymon to była godzina naprawdę merytorycznych wskazówek dla w tym wypadku wszystkich właścicieli e-Commerce, bo różne odcinku podcastu często są dedykowane troszeczkę różnym branżom czy różnemu stopnia zaawansowania sklepu, czy segmentowi, w którym ten sklep operuje. Natomiast bezpieczeństwo jest dla wszystkich, także dzięki śliczne za tę godzinę. Zanim pójdziemy, zadam ci ostatnie pytanie. Gdybyś miał zostawić słuchaczy z taką jedną myślą, apelem, hasłem, czyli czymś takim, co każdy słuchacz powinien zapamiętać, poza tym, żeby nie ustawiać hasła „dupadupa”, to co by to było?

Do mnie trafia taka analogia do sklepu stacjonarnego.

To jest to, o czym trochę wspomniałeś, że to bezpieczeństwo e-Commerce czy w ogóle szerzej stron internetowych jakoś tak cały czas nie trafiło do naszej świadomości. Cały czas jest spychane gdzieś tam na koniec, na bok. Ja na to patrzę jak na sklep stacjonarny. Wszyscy wiedzą, że do sklepu stacjonarnego trzeba kupić porządny zamek, trzeba kupić rolety antywłamaniowe i wynająć jakąś firmę ochroniarską. No bo po prostu, jeśli o to nie zadbamy, to ktoś nam ten sklep okradnie i to nieważne, czy sprzedajemy diamenty, czy buty.

Dokładnie tak samo jest w przypadku sklepów internetowych. Ci złodzieje tam są, oni krążą i będą próbować się do nas włamać najprawdopodobniej. To do nas należy po prostu obronienie się przed tym. I tak samo, jak musimy pamiętać o tym, żeby zamknąć drzwi do naszego sklepu stacjonarnego, tak samo musimy zadbać o nasze konto w sklepie internetowym.

Super. Dzięki śliczne, Szymon, trzymaj się.

Dzięki.