Webinar: jak system FUDO PAM chroni biznes przed cyberzagrożeniami?

 

Zapis wideo webinarium, podczas którego wraz z naszym partnerem technologicznym, firmą FUDO, zaprezentowaliśmy jak działa najnowsza wersja platformy FUDO PAM. Jest to narzędzie do zarządzania dostępem uprzywilejowanym, które wspiera biznes przed cyberzagrożeniami, a dzięki wykorzystaniu sztucznej inteligencji, potrafi wykryć nawet najdrobniejsze zmiany w zachowaniu użytkownika i analizować sesje w czasie rzeczywistym.

Jak system FUDO PAM chroni biznes przed cyberzagrożeniami

 

Paweł Deyk – Kierownik Projektu – Zespół Wsparcia Sprzedaży, EXATEL

Rafał Wiosna – Presales Engineer, Fudo Security

Mariusz Wołoszyn – Machine Learning Engineer, Fudo Security

 

Paweł Deyk:

Na dzisiejszym webinarze, na którym są ze mną Rafał Wiosna i Mariusz Wołoszyn z firmy Fudo Security, opowiemy sobie trochę o rozwiązaniu FUDO PAM. Koledzy opowiedzą i pokażą nam jak w praktyce wygląda te rozwiązanie.

EXATEL jest operatorem istniejącym na rynku już od ponad 20 lat. Dotychczas byliśmy kojarzeni przede wszystkim z telekomunikacją, natomiast od kilku lat coraz mocniej angażujemy się również w dział security. Jesteśmy spółką Skarbu Państwa i mamy 100% polskiego kapitału. Jednym z naszych wyróżników jest to, że posiadamy trzy zespoły działające całą dobę przez 365 dni w roku. Jest to zarówno Biuro Obsługi Klienta (BOK), które ma wielu operatorów telekomunikacyjnych, zespół Net Operations Center (NOC), który monitoruje sieć (zarówno szkieletową jak i naszych klientów) i dodatkowo z zespołu NOC wyodrębniliśmy zespół Security Operations Center (SOC), który zajmuje się incydentami bezpieczeństwa.

Aby zespół SOC działał dobrze, musi posiadać odpowiednie narzędzia. Takim narzędziem, które nazywamy sercem zespołu SOC, jest system SIEM, czyli system korelacji zdarzeń i logów. Aby ten system dobrze działał, potrzebujemy dużo dobrej jakości źródeł. Możemy mieć bardzo dużo systemów podłączonych, od firewalli, przez systemy anty-DDoS czy Web Application Firewall. Takim systemem może być również system zarządzania sesjami i użytkownikami uprzywilejowanymi. Nasz zespół SOC korzysta z tych narzędzi również do obsługi incydentów u naszych klientów, w momencie kiedy trzeba nawiązać sesję zdalną. Dzięki temu jesteśmy jako EXATEL bezpieczni, bo możemy udokumentować co zrobiliśmy w danych systemach, jak również klient też może czuć się bezpiecznie, bo widzi co robimy i wie czego się spodziewać.

 

Rafał Wiosna:

Dzień dobry, nazywam się Rafał Wiosna i jestem Inżynierem Sprzedaży w Fudo Security. Najpierw opowiem o samym Fudo, a potem Mariusz opowie Państwu o nowej funkcji, którą mamy w Fudo od wersji 4.0, czyli module sztucznej inteligencji. Na końcu pokażę Państwu demo w którym zademonstruję jak mniej więcej działa Fudo.

Fudo jest na rynku od 2005 roku, natomiast z Fudo PAM jesteśmy od 2012 roku. Główna siedziba naszej firmy znajduje się w Stanach Zjednoczonych, natomiast cały produkt, support i dział sprzedaży na Europę i resztę świata (poza Amerykami), znajduje się tutaj, w Warszawie. Ponad 6 lat rozwoju oprogramowania sprawiło, że jesteśmy w chwili obecnej najbardziej rozbudowanym PAM-em na rynku. Mamy wielu klientów, głównie firmy z branży finansowej i operatorów telekomunikacyjnych. Wszędzie tam gdzie jest potrzeba obejrzenia tego co zewnętrzni wykonawcy robią w sieci (w przypadku operatorów telekomunikacyjnych co robią administratorzy), tam Fudo znajduje swoje zastosowanie. Nasz kolega był ostatnio w banku, diagnozował coś i okazało się, że było ponad 300 sesji nawiązanych przez Fudo, nagrywanych i nadzorowanych przez nasze rozwiązanie.

Głównym celem zainstalowania systemu Fudo, jest monitorowanie tego co robią nasi zewnętrzni wykonawcy i administratorzy (jeżeli jest taka potrzeba, np. w bankach jest to ważne i usankcjonowane rekomendacją KNF). To co jest ważne na tym slajdzie, to żeby informacja co się dzieje w sieci, kto coś popsuł, kto coś sobie wysłał (np. jakąś bazę danych), nie pojawiła się miesiące lub lata po całym incydencie. W Fudo z tym czasem jesteśmy w stanie zejść bez modułu do miesięcy, a może nawet dni. W chwili obecnej jesteśmy w stanie proaktywnie z tym walczyć. Wykrycie, że ktoś używa czyjegoś konta, zgadł hasło (lub zostało mu je przekazane), dzięki modułowi sztucznej inteligencji jest bardzo proste.

Jednym z głównych problemów są wykonawcy zewnętrzni, którzy wjeżdżają gdzieś na nasze systemy, czy po VPN czy IPSec i mają dostęp do systemów zawierających dane wrażliwe. Dane wrażliwe to nie tylko bazy danych, ale także dane naszych klientów. Nie wiemy tak naprawdę co ci zewnętrzni wykonawcy z tymi danymi robią. Mieliśmy przykład klienta, któremu jedna baza danych wyszła z systemu i pojawiła się w Internecie. Ów klient miał Fudo PAM i okazało się, że zewnętrzny wykonawca przegrał sobie po prostu tę bazę i wysłał, a zrobił to dzięki temu, że wyszukał w sesjach mysqldump. Ten zewnętrzny wykonawca, pod przykrywką analizowania zleceń od klienta, wyłuskał sobie te dane dzięki temu, że używał właśnie Fudo PAM. Fudo PAM zarejestruje nam takie działania i zmiany wprowadzone do systemu i co najważniejsze, jest to system z dostępem uprzywilejowanym, czyli nagrywa chociażby sesje RDP i SSH (najczęściej stosowane protokoły) i jest w stanie nagrać sesje obróbki danych. Można to traktować jako urządzenie do audytu dostępu do danych. Jeden z naszych klientów w Niemczech właśnie tak zastosował Fudo, że w razie wizyty audytora w firmie, ma on wszystkie informacje już nagrane.

Fudo w bardzo łatwy sposób pozwala na sprawdzenie czy ktoś nie robi czegoś złego z naszymi systemami. Jest także dobrym sposobem na rejestrowanie dowodów na wykonywanie jakichś działań, które są penalizowane, tak jak wyłuskiwanie danych i wyeksportowanie tego poza firmę. Dzięki temu, że współpracujemy z firmami, które znakują czasowo i ich certyfikaty są uznawane przez sądy, za pomocą Fudo możemy wyeksportować zapis sesji, który stanie się dowodem w sądzie. Są to przypadki ekstremalne, ponieważ zwykle chcemy sprawdzić co nasi wykonawcy albo administratorzy (w przypadku SOC) robią. Sprawdzimy więc kwestię kompetencji, co oni nam tam zmieniają. Fudo pracuje w 100% na warstwie protokołów. Nie jest to żaden agent i nie trzeba niczego instalować w systemie. Mamy możliwość rejestracji wszystkiego tego co się dzieje i co jest wprowadzane do sieci, jakie zmiany są wprowadzane na serwerach. Nic się nie ukryje. Jeden z klientów spytał mnie kiedyś: „Co gdy jakiś użytkownik otworzy okienko i zmieni sobie czcionkę na czarną?” Fudo nadal to zarejestruje, bo będzie coś wprowadzane mimo tego, że inne programy tego typu mogą tego nie widzieć.

Wiele osób myśląc o systemie PAM, myśli tak naprawdę o Password Vault’cie. Jest to pojęcie, które jest utożsamiane z PAM-em, natomiast PAM to coś innego niż Password Vault. Skarbiec haseł, który bardzo często jest instalowany w roli PAM-a, to jedynie umożliwienie dostępu do serwerów. Jest to taki nasz ochroniarz, który daje nam bilet dostępu do serwera i tak naprawdę niewiele więcej jesteśmy w stanie powiedzieć co taki użytkownik robił na serwerze. Nie dość, że Fudo PAM ma taki mały Password Vault w sobie (jesteśmy w stanie w Fudo zarządzać hasłami na serwerach), to jeszcze do tego nagrywa całe sesje. Jest takim odpowiednikiem kamerki telewizyjnej, która rejestruje dokładnie co się dzieje. Bez tego nie jesteśmy w stanie powiedzieć co nasz administrator czy użytkownik zewnętrzny w tych systemach nam robi.

Fudo PAM posiada trzy ważne moduły. Pierwszy to system zarządzania sesjami, który nagrywa sesje protokołowe. Drugi moduł jest takim rdzeniem funkcjonalności Fudo PAM. Jest to Secret Manager, pewien skarbiec haseł, ale troszkę od drugiej strony. Secret Manager pozwala nam zabezpieczać konta na serwerach. Wygląda to tak, że użytkownik loguje się jedną parą poświadczeń (np. z Active Directory), a łączy się z kontem do którego hasło zna tylko i wyłącznie Fudo. Konta serwisowe, konta do urządzeń do których nie chcemy dawać komuś haseł – można to bardzo łatwo zrobić prostą konfiguracją w Fudo. Mamy wbudowane moduły do Cisco, Linuxa, przez WinRM każdym Windowsem, czy przez LDAP całą domeną jesteśmy w stanie przez Fudo zarządzać. Trzeci moduł to fajna rzecz dla osób, które potrzebują zweryfikować za ile my tym wykonawcom płacimy. Jest to moduł analizy wydajności pracy. Fudo rejestruje cały protokół, dzięki któremu w bardzo prosty sposób można policzyć ile czasu spędzili na tych serwerach użytkownicy. Jeżeli na fakturze od firmy mamy 17 godzin, to możemy sprawdzić czy rzeczywiście ta firma 17 godzin coś robiła. Co więcej, możemy sprawdzić czy nie było tak, że zalogowali się, porobili coś 15 minut, a potem tylko oglądali w tle jakiś film na Netflixie, a za ten film my zapłacimy. Jesteśmy w stanie to zweryfikować. Osoba, która zarządza Fudo, ma wgląd w sesję. Fudo w łatwy i prosty sposób oblicza procentowy wskaźnik aktywności w sesji, więc możemy powiedzieć: „Hola panowie, fajnie że mam tu 17 godzin, ale przez trzy godziny była praca, a przez resztę czasu nie i mamy tu dla was ładny raport, który to pokazuje”. Są więc trzy główne moduły Fudo PAM. Najfajniejszą jednak rzeczą, który wprowadziliśmy w wersji 4.0, jest moduł sztucznej inteligencji powiązany z modułem nagrywania sesji.

 

Mariusz Wołoszyn:

Zanim opowiem o module AI, doprecyzuję jeszcze jak działa nagrywanie w Fudo. Otóż nagrywamy protokół z całej sesji dokładnie tak jak ona przebiegała. W związku z tym dla sesji SSH jest to po prostu film z całą zawartością terminala, na którym widać wszystkie wykonywane akcje, zarówno wpisywane polecenia, jak i wygląd tego co się wykonywało. W związku z tym mamy dostęp do wszystkich informacji, które się pojawiały, do wszystkich naciśnięć klawisza, do wszystkich informacji jakie były w strumieniach SSH itd.

Tak samo wygląda to dla RDP. Tam też jest nagrana pełna komunikacja, widać wszystkie rzeczy które się dzieją, zarówno zawartość ekranu jak i ruchy myszką i naciśnięcia klawiszy. To wszystko można sobie odtworzyć właśnie w postaci takiego filmu, gdzie widzimy zarówno obraz jak i wykonywane akcje. Można też poddać to analizie. Dzięki analizie możemy próbować robić różne fajne rzeczy, m.in. wykryć czy osoba która się zalogowała i działa na systemie, to jest osoba która zazwyczaj to robiła – która ma zbudowane jakieś dane historyczne, profil – czy jest to ktoś, kto uzyskał dostęp do tego konta w taki lub inny sposób i próbuje teraz coś na naszym systemie wykonać, może niekoniecznie zgodnie z przeznaczeniem. Do tego celu w Fudo mamy dwa główne typy modeli – pierwszy to modele contentowe, czyli takie, które analizują dokładnie zawartość sesji. Jest to model behawioralny dla protokołu RDP, gdzie analizujemy sposób poruszania myszką i model semantyczny dla protokołu SSH, gdzie analizujemy wprowadzane komendy. Powiem jeszcze dokładnie o tych modelach, jak one działają, dzięki czemu są w stanie wykrywać, natomiast te modele oceniają sesję. Jeżeli mamy w Fudo listę sesji, to na tej liście pojawi się taka analiza, ocena czy model wykonania się. Będzie ona w postaci takiego score’u, który mówi nam czy dana sesja jest podejrzana, czy może system uważa że jest z nią wszystko w porządku. Drugi typ modeli w Fudo, to modele ilościowe. Analizują one rzeczy takie jak ilość połączeń w jednostce czasu (określonym dniu tygodnia, godzinie), dzięki czemu możemy sprawdzać zgodność z historycznym zachowaniem. Jeżeli pracownik łączy się zazwyczaj w weekend do systemu, bo taki ma sposób pracy, to system nie będzie reagował, natomiast jeżeli osoba nie łączy się w weekendy, albo nigdy nie pracuje w godzinach nocnych lub robi to sporadycznie, a nagle jest tych pór więcej, to zostanie to wykryte jako anomalia i zgłoszone w logu jako coś podejrzanego. Nie jest to związane z konkretną sesją, tylko z szerszym aspektem zachowań i jest to też raportowane by SOC mógł podjąć jakąś akcję.

 

Rafał:

Dzieje się to w czasie rzeczywistym, dzięki czemu widać kiedy sesja jest zagrożona.

 

Mariusz:

Zarówno modele contentowe jak i ilościowe działają w czasie rzeczywistym. Oczywiście jakaś ilość danych musi się pojawić, więc dla modeli contentowych będzie to po jakimś krótkim czasie, ale generalnie nie musimy czekać całego dnia, aż to się przeanalizuje.

Mamy obecnie dwa rodzaje modeli: dla SSH i dla RDP. Planujemy też dodawać kolejne, modyfikować itd. W tej chwili są one zaprojektowane dla użytkownika, natomiast w niedalekiej przyszłości będziemy też mogli robić modele dla accountów. Fudo umożliwia logowanie kilku osób na to samo konto w systemie docelowym, czyli np. mamy konto typu Root Administrator albo jakieś serwisowe, nie możemy tego zmodyfikować, ale chcielibyśmy dodać kilku osobom fizycznym dostęp i mieć też pełną rozliczalność tzn. wiedzieć który z naszych administratorów jako ten root pracował i chcemy też dodać możliwość budowania modeli nie tylko dla osób fizycznych, ale też dla tych docelowych, bo jest to też jakaś możliwość dodatkowego przeanalizowania. Dla tych dwóch profili możemy wytrenować model, ale Fudo ma większe możliwości, może też analizować protokoły MySQL, VNC, surowe protokoły TCP. Dla nich model AI  nie działa, tylko model AI działa tylko i wyłącznie dla tych wspieranych protokołów, czyli dla RDP i SSH. Pewnie w niedalekiej przyszłości pojawi się tutaj ICA, VNC, natomiast na ten moment mamy wersję 4.0. Na nasze Fudo dla danego protokołu, model musi być wytrenowany. Wytrenowany model w Fudo może mieć jeżeli ma odpowiednią ilość danych historycznych i dopiero wtedy jest możliwe, czyli jeżeli kupimy produkt, wstawimy go dzisiaj, AI jeszcze nie działa bo nie zna naszych użytkowników, nic się na ten temat się nie nauczyła, musi zebrać informacje i te modele sobie zbudować. Ten proces trwa. Wszystko zależy od tego jak intensywnie nasi użytkownicy pracują i wykorzystują Fudo.

Jak wygląda analiza w czasie rzeczywistym? Otóż żeby dokonać analizy w czasie rzeczywistym, musimy analizować sesje, które nagrywałem po kawałku. Dlatego dane te trzeba przeprocesować i są one cięte na takie kawałki w trakcie nagrywania. W tych odcinkach sesji są określone ilości eventów. Eventy są to rzeczy, które wykonuje użytkownik czyli np. wciśnięcie klawisza albo ruch myszką. W zależności od tego jak intensywnie dana osoba pracuje z systemem, jak dużo rusza myszką, ile komend wpisuje, z jaką prędkością czyta manuala lub jak intensywnie pisze jakiś skrypt, to przekłada się to na czas. Natomiast liczba eventów, to jest to na czym pracuje Fudo i AI. Nie jesteśmy w stanie powiedzieć dokładnie ile to jest minut, natomiast wiemy ile to jest eventów. W związku z tym mamy pewne informacje statystyczne ile to może potrwać dla którego protokołu, natomiast to zależy od specyfiki pracy, bo tak jak Rafał wspominał – to co Efficency Analyzer robi jeżeli ktoś się zaloguje i przez dwie godziny czyta manuala tylko, albo odpalił edytor i w zasadzie nic nie robi, to za dużo się nie nauczy. Eventów nie ma, informacje się nie zbierają, mimo że sesja trwa długo. Nie możemy więc powiedzieć, że po 40 godzinach mamy już model, bo w praktyce może się okazać, że będzie to dużo szybciej jeżeli użytkownicy pracują intensywnie. W innych sytuacjach może być to dużo dłużej. Sesje są  analizowane w czasie rzeczywistym (tak jak się nagrywają), natomiast analiza sesji (w zależności od tego ile mamy sesji jednoczesnych) może się pojawiać z pewnym mniejszym lub większym opóźnieniem. Jest to wszystko tak skonstruowane, że najpóźniej po zakończeniu sesji, wszystkie sesje są zanalizowane. Mówię o tym, ponieważ w sytuacjach brzegowych gdzie nagle zaterminowało nam się tysiąc sesji, to Fudo będzie musiało te tysiąc sesji przeanalizować w tym samym momencie, w związku z czym mogą się w jakiejś kolejności pojawiać dopiero. Scoring też pojawi się w trakcie i może się zmienić na skutek tego, że analizujemy coś w czasie rzeczywistym. Przykładowo: ktoś się połączył i nagle wykonuje jakieś dziwne akcje, może zabrudziła mu się myszka i model wykrywa, że dzieje się tu coś dziwnego, nie jest to normalne zachowanie, ale po chwili wraca do normy bo ktoś już tę myszkę przeczyścił i dalej pracuje normalnie. Więc ten score może się zmienić, tzn. najpierw mamy czerwony, a potem jest zielony i tu jest informacja jak te scory wyglądają. Są one tłumaczone na takie trzy poziomy dla prostszego zwizualizowania. Informacja ta jest prezentowana na widoku sesji wraz z nazwą i wagą tego modelu. Wagi są dobierane na podstawie tego jak model zachowywał się na danych treningowych i są tam jeszcze w postaci wartości numerycznych związanych z konkretnie wykorzystywanym algorytmem. Wszystko to  jest przedstawiane w sposób czytelny dla użytkownika, żeby dało się to łatwo zinterpretować. Modele z wynikiem high można wysyłać do weryfikacji manualnej. To też jest bardzo ważna funkcjonalność, ponieważ możemy zminimalizować ilość danych do przejrzenia. Jeżeli w firmie pracują setki osób i te osoby nagrywają sesje, to niemożliwe jest żeby ktoś to wszystko oglądał. Natomiast jeżeli z tych setek czy tysięcy godzin w miesiącu, będziemy w stanie zaflagować jakiś mniejszy procent, to już można to obejrzeć i faktycznie zweryfikować czy tam coś się działo nieprawidłowego czy nie.

Możemy też to zrobić szybciej. Spotkaliśmy się z tym, że wielu klientów ma tysiące godzin nagranych sesji, ale nie wie co z tym za bardzo zrobić. Nie da się tego przejrzeć, więc moduł pozwala to tutaj jakoś zaadresować. Dla każdego użytkownika jest tworzony tak naprawdę indywidualny model. Wszystkie modele są też indywidualnie kalibrowane, tzn. chodzi o to aby dla danego użytkownika uzyskać jak najlepszą czułość modelu przy jak najmniejszej ilości fałszywych alarmów. Wynika to z faktu, że w zależności od tego jak użytkownicy się zachowują, dla jednych można stworzyć modele które są bardzo czułe i mają niski poziom fałszywych alarmów związanych z tym, że te osoby zazwyczaj pracują w bardzo podobny sposób, z tego samego środowiska i mają niską wariancję tych cech. Inne osoby co chwilę łączą się z innego komputera, robią co innego, czasami przekazują swój komputer i konto innym i niestety dla tych osób możemy uzyskać niską czułość, co wynika z charakterystyki tej osoby, jak ona pracuje, ale dzięki temu że modele są indywidualnie kalibrowane, możemy zachować jak najlepszy balans dla wszystkich. Dla tych osób dla których się da, mamy najlepsze modele, a dla innych troszeczkę gorsze. Całość rozwiązania działa natomiast bardzo dobrze.

Od czego zależy jakość tych modeli? Przede wszystkim jest to jakość danych historycznych. Jeżeli w danych historycznych mamy śmieci, tzn. nasi użytkownicy nie są nauczeni i nie pracują zgodnie z zasadami i na jedno konto użytkownika loguje się wiele osób i wszystkie twierdzą, że są panem Kowalskim – a tak naprawdę różne osoby się łączą i w różny sposób zachowują – to model nauczy się, że pan Kowalski ma schizofrenię i zachowuje się jak wiele różnych osób jednocześnie i nie będzie reagował jak kolejny raz zachowa się w jakiś dziwny sposób, bo będzie to zgodne z tym co model zaobserwował do tej pory. Kolejnym czynnikiem który wpływa na jakość modeli, jest ilość danych historycznych. Staramy się wytrenować modele jak najszybciej, jak tylko mamy minimalną ilość danych, która pozwala coś z tym zrobić, ale wiadomo że im więcej tych danych mamy, tym model będzie lepszy, w związku z czym te modele z czasem (po tym jak powstanie model dla danego użytkownika), będą w stanie się ulepszać o więcej danych. Należy też pamiętać, że jest tam taki parametr, który powoduje to, że modele nie sięgają po dane historyczne starsze niż rok. Wynika to z wielu badań, które mówią że ludzie zmieniają swoje przyzwyczajenia i zachowania i to jak ktoś się zachowywał 2 czy 3 lata temu, może być niekoniecznie dobrym wskaźnikiem dla tego jak zachowuje się dzisiaj. Jeżeli ktoś miał długą przerwę w pracy i nie ma tych danych, to po prostu tego modelu tam może nie być, albo będzie on słabszy. Jest też jeszcze parę parametrów takich, które możemy sobie skonfigurować z panelu, jak długość odcinków o których wcześniej mówiłem. Im dłuższy jest odcinek, tym więcej mamy danych w odcinku i możemy zrobić lepszą analizę. Ale ta analiza też się troszeczkę opóźnia i np. pierwszą analizę zrobi nie po 30 sekundach, a po 2 minutach, po większej ilości ruchu, zebranych danych, ponieważ potrzebowaliśmy zebrać więcej danych na odcinek. Są jeszcze takie cechy, które możemy ustalić dla niektórych modeli, jak ilość analizowanych cech, zwłaszcza przy modelach związanych z ruchem myszki.

Jak działa model SSH? Model SSH działa w ten sposób, że potrzebujemy co najmniej 65 nagranych sesji, gdzie mamy minimum 25 unikalnych komend. Są to pewne warunki brzegowe. Może udać się zrobić model troszeczkę wcześniej, może się udać troszeczkę później, ale taka mniej więcej statystycznie ilość jest potrzebna i potrzebujemy około 300 sesji dla minimum 10 osób. Obróbka działa w ten sposób, że analizujemy eventy w postaci naciśnięcia klawiszy, składamy z tego coś, co można nazwać słowami, komendami i to się nazywa fachowo feature engineering. I robimy z tego dane, które nadają się już do takich odbiorców machine learningowych i tam się odbywa taka „magia”, która jest w stanie coś z tym zrobić. Jak to w praktyce wygląda? Otóż okazuje się, że ludzie zachowują się w charakterystyczny sposób, każdy ma swoje nawyki, te same rzeczy różne osoby lubią robić w różny sposób i jak się tych cech nazbiera odpowiednio dużo i przeanalizuje dane historyczne, to okazuje się, że można wytrenować pewien algorytm, który jest w stanie na podstawie wystąpienia lub niewystąpienia określonych cech, stwierdzić jak bardzo jest prawdopodobne, że to jest właśnie moja sesja, czy też może kogoś innego, bo tych cech charakterystycznych dla mnie nie ma, natomiast jest dużo cech charakterystycznych dla innych osób. To jest oczywiście przekazywane do różnych maszyn machine learningowych. Można wykorzystać zarówno sieci neuronowe, support vector machine, jak i inne rzeczy, natomiast clou problemu jest wyłuskanie tych cech i opracowanie algorytmu, który będzie w sprytny sposób w stanie je odczytać, zakodować i pozwolić modelowi AI zrobić swoją robotę. Mam tu przykład cech dla 5 różnych osób i widać, że osoba pierwsza od lewej nigdy nie używa „less”, bo pewnie woli „more”; bardzo rzadko używa „backspace_key”, bo pewnie kasuje przyciskiem „delete”; nie używa też „ctrl_a”, natomiast chodzi pewnie po jakichś innych rzeczach, np. w vi porusza się góra-dół (poprzez k,j). Osoba numer 2 używa „backspace_key” i używa „ctrl_a” żeby skoczyć na początek linii, ale nie używa np. „delete”. Pierwsza osoba z prawej do wychodzenia z vi używa „zz”, ponieważ „zz” i jest to cecha charakterystyczna dla niej, natomiast nigdy nie używa „vim” i „wq”, bo wychodzi przez „zz”. To jest oczywiście tylko przykład jakiś danych zebranych dla każdego użytkownika. Dla każdej sesji taką ilość cech się ekstrahuje. Widzimy, że cech pozytywnych w zależności od osoby jest między 300 a 700, a cech negatywnych jest więcej – 2500-3000. Dzięki wyłuskaniu tych wszystkich cech i zbudowaniu modelu, możemy z bardzo dużym prawdopodobieństwem i bardzo dużą czułością wykryć, czy jest to ten użytkownik, czy może jednak ktoś tu się zalogował z Chin i zachowuje się w sposób nietypowy, mimo że np. robi zupełnie typowe rzeczy bo odpala edytor i czyta sobie jakieś pliki, tylko że odpala nie ten edytor i nie w ten sposób jak robi to zwykły użytkownik lub jak do tej pory.

 

Rafał:

Fudo w czasie rzeczywistym jest w stanie wykryć to, że ktoś włamał się po prostu na dane konto i będzie to w sesji widoczne.

 

Mariusz:

Ostatnio była nawet taka historia, że firma zorientowała się że ktoś się włamał, jak przepełniły się dyski i serwery stanęły, bo hakerzy przesadzili z ilością zrzucanych danych. Większość incydentów jest faktycznie wykrywana po miesiącach i później, natomiast tu możemy zejść do sekund lub minut, a na pewno nie dłużej niż po zakończeniu sesji.

Dla modeli RDP (myszkowych), sprawa wygląda trochę inaczej, bo inaczej wygląda też charakterystyka pracy i nasze podejście skupiło się na myszce. Otóż okazuje się, że osoby, które pracują myszką, robią to w sposób charakterystyczny, który można porównać trochę do stylu pisma. Każdy ma swój unikalny charakter pisma. Grafolog jest w stanie to rozpoznać, inne osoby w mniejszym zakresie, ale większość z nas jest też w stanie sprawdzić kto to podpisywał. Dla komputera trzeba te cechy odpowiednio zakodować. Wymagamy tu około 5 godzin nagranych sesji dla minimum 10 osób (optymalnie około 30 godzin) i z tych nagranych ruchów myszką, ekstrahujemy odpowiednie cechy numeryczne, które są związane z krzywizną, kątami i jeżeli tych cech się odpowiednio dużo zbierze, to można zbudować taki skumulowany rozkład. Da się zbudować taki algorytm, który będzie w stanie rozróżnić, czy te rozkłady które się nam pojawiają dla danego użytkownika, zgadzają się z tym co mamy w danych historycznych czy też może niekoniecznie i najprawdopodobniej dzieje się tutaj coś podejrzanego. Modele te mają dosyć dużą dokładność, są indywidualnie kalibrowane (jak w przypadku modelu SSH), więc dla niektórych użytkowników mamy bardzo dużą dokładność, dla innych trochę mniejszą. Mamy też takie ciekawe anegdoty, np. jeden z naszych klientów stwierdził, że ma problem z nadgarstkiem i w pracy używa myszki prawą ręką, a w domu lewą. To też może mieć negatywny wpływ na model, bo jak zobaczy dwie osoby, będzie trochę mniej czuły. Rozwiązaniem tego, że ktoś wie, że taka rzecz nastąpiła, jest założenie dwóch kont w Fudo, dla prawej i lewej ręki i uzyskanie dwóch dużo dokładniejszych modeli.

Mamy jeszcze modele ilościowe, które są w stanie wykryć anomalie w czasie i ilości połączeń. Algorytm wygląda na dosyć skomplikowany, ale tak naprawdę jest prosty, bo przewidujemy ile normalnie byśmy się spodziewali w danym momencie zobaczyć sesji i danych historycznych danego użytkownika i potem porównujemy jak ma się to ze stanem faktycznym w danym momencie i jak model radził sobie w historii, czyli o ile się myliliśmy. Jeżeli  ten błąd jest większy, to mamy do czynienia z jakąś anomalią i dzięki temu jesteśmy w stanie zaraportować to jako jakieś wydarzenie wymagające dodatkowej akcji. Na dole widzimy wykres z rozkładem dziennym ilości połączeń dla różnych osób i widzimy, że zazwyczaj ta osoba zaczynała pracę między 7 a 9, ale zdarzało jej się siedzieć nawet do 23. Na to też jesteśmy w stanie zareagować.

 

Rafał:

Dodam że Fudo wykryje jak przyjdzie strzał, np. dwadzieścia połączeń w sobotę o 1 nad ranem. Fudo od razu wykryje, że jest to anomalia.

 

Mariusz:

Te modele dotyczą ilości, ale także czasu połączeń. Jeżeli osoba zwykle łączy się na dłużej, a nagle te połączenia są krótsze, to oczywiście jest tam pełna tolerancja, każdemu może zerwać połączenie bo ma kiepskie łącze lub łączy się z lasu. Albo ktoś nie wie co się dzieje w tym systemie, zalogował się pierwszy raz i się rozgląda, a zazwyczaj użytkownik logował się, robił pracę i rozłączał.

 

Rafał:

Pokażę mniej więcej jak wygląda to AI w akcji. Wiadomo że trudno jest zebrać modele jeżeli się ciągle na Fudo nie pracuje, a ponieważ ja mam ten problem, że ciągle nową wersję instaluję, więc nie bardzo moglibyśmy to wytrenować, ale zrobiliśmy tak, że nagraliśmy jedną sesję i odegraliśmy chyba 100 razy i nauczyliśmy tę instancję Fudo, jak wygląda moja sesja z tym serwerem w chmurze. Tak przy okazji Fudo jest zarówno appliance’m, jak i wirtualką, ale teraz mamy także wersję w chmurze. Akurat ta wersja działa w AWS-ie, ale na wszystkich ważnych chmurach też oferujemy Fudo specjalnie współpracujące z chmurą.

Co się dzieje na ekranie? Po pierwsze widać wcześniejsze sesje (kiedy robiłem demo) i wszystkie one zostały uznane za podejrzane. I tutaj to o czym mówiłeś: model myszki (Mouse_Biometric), waga 0,91, 100% pewności że to nie była ta sesja. Nie była, bo to byłem ja, a nie tester, który korzystał wcześniej z sesji i uczył ten model. I proszę tutaj zwrócić uwagę: na samej górze mamy sesję, która jeszcze się nie zakończyła, a już Fudo kręci nosem, bo według niego ta sesja wygląda inaczej niż te, które sztucznie odegraliśmy. I rzeczywiście, ja jestem tutaj połączony i proszę zwrócić uwagę u góry: to jest najzwyklejszy klient Microsoft Desktop dla Maca. Podłączyłem się do serwera, który też nie ma niczego zainstalowanego na sobie i ta sesja jest widoczna. Pokażę mniej więcej jak to działa, bo to fajnie otwiera oczy jak mniej więcej Fudo potrafi działać i jak nagrywanie sesji wygląda w codziennej pracy. W chwili obecnej Fudo nagrywa dokładnie wszystko, to co ja zrobię tutaj w okienku.

 

Mariusz:

Pewnie pojawia się takie pierwsze pytanie: jak bardzo obciążające jest to AI. Wszyscy słyszeli, że trzeba odpalać karty graficzne GPU i nie wiadomo jakie ilości danych. Otóż okazuje się, że jak budowaliśmy to rozwiązanie, to do analizy online wcale nie trzeba jakichś nie wiadomo jakich zasobów. W praktyce można to robić wydajnie, efektywnie i całkiem szybko, bez jakiegoś widocznego wzrostu zużycia CPU versus nagrywanie sesji. Jedyny moment kiedy troszeczkę więcej tych zasobów jest potrzebne, to jest wytrenowanie modeli, gdzie musimy te wszystkie dane historyczne przeanalizować, zebrać, obrobić i stworzyć taki model. I faktycznie, jeżeli mamy dużo nagranych danych i robimy to po raz pierwszy, to może troszeczkę zasobów zużyć, dlatego ten domyślny scheduler jest na 4:25 nad ranem ustawiony i zawsze można to zmienić, natomiast są tam też te cechy i wszystkie operacje które są możliwe, czyli obliczenia, są cache’owane tak żebyśmy byli w stanie codziennie budować nowe modele, a jednocześnie w jak najmniejszy sposób obciążać pracę naszego komputera. Pewnie zalecane są tu większe modele Fudo, czyli Fudo 3000, a nie ten najmniejszy, ale jeżeli mamy małą liczbę użytkowników, to na tym najmniejszym też powinno działać.

 

Rafał:

Po lewej stronie jest wyrenderowana moja sesja na żywo z protokołu, a po prawej jest mój klient, który nie wie że ktoś tam go obserwuje. Proszę zobaczyć jaki jest lag. Nie wynika on z tego, że produkt jest słaby albo że ja mam problemy ze sobą, tylko wynika z tego że to siedzi w chmurze i ten protokół idzie do serwera przez ten serwer w chmurze, jest to nagrywane i przesyłane w czasie rzeczywistym, ale niestety idzie i wraca tak wolno, że zanim ruszę myszką, mogę wypić kawę żeby to było odwzorowane. W rzeczywistości jeżeli mieliby Państwo ochotę wypróbować produkt, to pełną wersję wysyłamy z licencją ograniczoną czasowo. Działa to naprawdę bardzo szybko. A to co chciałem pokazać, to jest właśnie sposób działania Fudo. Mamy sesję po prawej stronie, na której coś się dzieje i my te sesje możemy obejrzeć, możemy się cofnąć, zobaczyć w czasie rzeczywistym co ten nasz użytkownik zrobił, a w chwili obecnej ze względu na warunki które nam się zrobiły, zrobię to co administratorzy lubią najbardziej, czyli cofnę się do czasu rzeczywistego, pójdę w przód i rozłączę tego użytkownika.

 

Mariusz:

Dodajmy też, że do tej sesji administrator może się dołączyć i np. wpisać hasło do jakiejś aplikacji starożytnej. Inaczej nie można tego zrobić.

 

Rafał:

Do sesji można również dołączyć. Tutaj widzimy sesje, które są archiwalne. Proszę zwrócić uwagę na kolumnę Activity. Fudo wylicza aktywność użytkownika (mamy tutaj sesję użytkownika, która trwała 1 godzinę i 24 minuty). Czyli ten moduł analizy wydajności w pracy też działa. Nie mamy za dużo czasu, a mógłbym jeszcze długo mówić o Fudo. Wspomnę tylko o tym, że produkt jest z nami już ponad 6 lat, mamy wersję czwartą w której dodany został moduł AI i został web recording i myślę że jest tu dobry pomysł na następnego webinara, w którym pokażemy jak ten web recording działa. Bo my jesteśmy w stanie w Fudo nagrać sesję np. do platformy VMware, łącznie z widocznością tego jak człowiek rusza myszką, jak się na tę stronę dostał i co na tej stronie robił. Opracowaliśmy taką technologię przeglądarki w przeglądarce i nagrywamy całą tę przeglądarkę. Zachęcam do kontaktu z koleżankami i kolegami z EXATEL, bo mają już doświadczenie we wdrożeniach Fudo i powiedzą coś więcej. VM-kę możemy praktycznie w każdej chwili dostarczyć z licencją. Jest to proste. Nasi użytkownicy mówią, że jak tylko się złapie o co chodzi, to ta konfiguracja jest prosta. Wiem to z doświadczenia. Interesowałem się Fudo jak byłem jeszcze w firmie, która potrzebowała czegoś takiego. Mój SAPowiec chciał wiedzieć co nam grzebią w tych serwerach i wypróbowaliśmy kilka produktów. To było 5 lat temu i myślę że Fudo nie było tutaj jeszcze znane. Przyszła firma, pokazała produkt polski, wsparcie było super. Przyszedł inżynier, zainstalował i powiedział nawet jak to działa i wszystko wynikło z tego, że co w SAPie grzebią nam zewnętrzni wykonawcy. I to jest tak naprawdę większość scenariuszy wdrożeniowych, czyli firma dorasta do momentu w którym chce wiedzieć co po tym VPN im się tam dzieje na serwerach.

Paweł Deyk
EXATEL
Rafał Wiosna
Pre-Sales Engineer, Fudo Security
Mariusz Wołoszyn
Machine Learning Expert, Fudo Security