Big Data w Cyberbezpieczeństwie
Streszczenie odcinka:
⚫️ Przedstaw się proszę i powiedz parę słów o sobie.
⚫️ Co robi żołnierz w Data Science?
⚫️ Jaka była Twoja droga zawodowa?
⚫️ Jak Big Data może pomóc w analizie bezpieczeństwa?
⚫️ Czy w sieci rozgrywa się cały czas “wojna”, której przeciętny człowiek nie widzi?
⚫️ Jakie techniki są najczęściej stosowane?
⚫️ Czym różni się praca w obszarze bezpieczeństwa narodowego od pracy w firmie?
⚫️ Dlaczego tworzysz bloga?
Materiały powiązane z odcinkiem:
Wiadro Danych
Kurs Elastic Stack
Portal Cyber.Mil
Transkrypcja odcinka:
Cześć, witam Was w kolejnym odcinku podcastu Stacja IT. Dzisiaj naszym gościem jest Maciej Szymczyk. Temat dosyć niestandardowy, bo powiemy o cyberbezpieczeństwie, a Maciek jest żołnierzem.
Cześć, Maciej!
Cześć.
Na początek uchyl nieco rąbka tajemnicy i powiedz więcej o sobie. Jak to się stało, że jesteś żołnierzem i pracujesz w cyberbezpieczeństwie?
Jako studia wybrałem Wojskową Akademię Techniczną, kierunek wojskowy. Obecnie jestem oficerem wojska polskiego w stopniu kapitana i służę w Narodowym Centrum Bezpieczeństwa Cyberprzestrzeni. Nazywam siebie również programistą, a od jakiegoś czasu inżynierem danych, bo zajmuję się big data. Poza godzinami służby prowadzę bloga wiadrodanych.pl. Zdarza mi się prowadzić zajęcia w Wojskowej Akademii Technicznej, byłem tam doktorantem, prowadziłem również szkolenia z Elastic Stacka. Po godzinach pomagam w firmie Senuto. Generalnie mam dużo roboty i mało czasu.
Czy z góry wiedziałeś, że chcesz skończyć WAT? Interesowały cię kwestie wojskowe czy był zbieg okoliczności?
WAT wybrałem w związku z tym, że mój tata był wojskowym. Raz, że lubiłem informatykę, dwa – przyzwyczaiłem się do widoku żołnierza i też chciałem spróbować, a że miałem niedaleko, to wybrałem WAT. Jeśli chodzi o dalszy przebieg służby, to wyglądało to tak, że po skończeniu WAT rozpoczynają się przydziały. I w zależności od tego, jakie miało się oceny i jak wyglądał przebieg studiów, przydzielają daną osobę do odpowiedniej jednostki. Czasami jest to bardziej szczęśliwy traf, czasami mniej. Jeśli ktoś robi w konkretnej działce albo miał praktyki w konkretnym miejscu, to można wnioskować o takiego podchorążego, żeby potem przyszedł do pracy do konkretnej instytucji. Mi akurat udało się dostać na początku do Narodowego Centrum Kryptologii, które potem zmieniło nazwę na Narodowe Centrum Bezpieczeństwa Cyberprzestrzeni.
Czym się zajmuje Narodowe Centrum Bezpieczeństwa Cyberprzestrzeni?
Narodowe Centrum Bezpieczeństwa Cyberprzestrzeni, jak sama nazwa wskazuje, zajmuje się bezpieczeństwem w kontekście cyber, oczywiście jest to tylko jeden z takich punktów, którymi się zajmujemy, ponieważ w związku z poprzednią nazwą też poruszamy kwestie kryptologii, ogólnie są związane z IT i z zarządzaniem IT, bezpieczeństwem usług, co tak naprawdę wywiera później wpływ na kwestie bardziej strategiczne, ponieważ w dzisiejszych czasach mogą wyciec jakieś informacje albo ktoś zrobi jakieś akcje, żeby zarobić pieniądze, robiąc ransomware itp., ale w przypadku sektora publicznego, w szczególności wojska, są to też rzeczy związane z informacjami. Zatem niezapewnienie tej luki, jaką jest bezpieczeństwo w IT, może mieć bardzo duże konsekwencje.
Czy w kontekście zapewniania bezpieczeństwa w IT zajmujecie się tylko kwestiami wojskowymi czy też instytucjami publicznymi, czy w ogóle bezpieczeństwem w polskim internecie, uwzględniając w tym również prywatne firmy i inne instytucje?
My zajmujemy się głównie rzeczami wojskowymi, z tym że do rzeczy wojskowych uwzględnić należy rzeczy okołowojskowe, ponieważ Wojskowa Akademia Techniczna czy inne uczelnie poniekąd są też w tym sektorze związanym z wojskiem. Polska Grupa Zbrojeniowa, mimo że jest poza wojskiem, jest z nim niejako związana, więc też de facto jest pod tym parasolem. Ale nie jesteśmy jedynym CSIRT-em w kraju, bo istnieje jeszcze NASK, są także CSIRT-y firmy telekomunikacyjne, więc nie jesteśmy sami. Zdajemy sobie sprawę z obecności innych służb, takich jak choćby Służba Kontrwywiadu Wojskowego, Agencja Wywiadu czy ABW – oni też tak naprawdę mają swój „tort”, na który muszą patrzeć i którego muszą pilnować. Więc to nie jest tak, że my robimy wszystko.
Wytłumacz laikowi w prosty sposób, jak wygląda ten kawałek tortu, którym się zajmujecie? Sam wspomniałeś o innych służbach, takich jak ABW itd., więc czy zajmujecie się bezpieczeństwem w tym sensie, żeby jakieś dane wrażliwe nie wypłynęły? Jak to należy rozumieć?
Należy to rozumieć, po pierwsze, jako monitorowanie sieci, a po drugie – wydawanie różnych wytycznych, pilnowaniem tego. W przypadku kryptologii są to implementacje różnych protokołów, szyfrów, współpraca z państwami natowskimi. Tak naprawdę ciężko jest to zebrać w jedną całość i o tym opowiedzieć, ale ja jestem w tej części bardziej związanej z monitoringiem sieci, z pracą takiego CSIRT-u, czyli z reagowaniem na incydenty komputerowe.
Jakie technologie potrzebne są na twoim stanowisku? Czy musisz mieć wiedzę bardziej sieciową czy bardziej związaną z analizą danych? Czy jest to jeszcze inny obszar specjalizacji?
Tak naprawdę specjalistów jest wielu. Jeśli mamy jakąś organizację – to wcale nie musi być wojsko – to mamy sieci, komputery, czyli musimy mieć administratorów. Potrzebujemy też osób dedykowanych do SOC (Security Operations Center), do monitorowania tych usług, żeby logi z tych usług dopłynęły do SOC-u, więc potrzebne są osoby techniczne, które będą tym administrować, wytwarzać nowe oprogramowanie, wykorzystywać już istniejące oprogramowanie, łączyć je. Potrzebny jest zatem szereg specjalistów, wliczając w to analityków, już takich pod cyber, czyli osoby, które wiedzą, co się dzieje.
Jak popatrzymy na SOC, to są tam różne poziomy wsparcia. Pierwszy z nich reaguje na incydenty, zarządza nim. Na kolejnych poziomach mamy już jakiś incydent, musimy zobaczyć, co się stało, jak bardzo jest poważny, aby następnie przejść do analizy malware’u, czyli załóżmy znaleźliśmy jakiś podejrzany plik i musimy zobaczyć, co on chce tak naprawdę zrobić w sieci. Więc jest wiele takich poziomów, które trzeba zapełnić, w związku z czym potrzeba wielu ludzi. Ja tu akurat z tą moją wiedzą o big data starałem się wspierać te wszystkie procesy. Czyli mamy jakieś pliki, logi, urządzenia bezpieczeństwa, IDS-y, logi z końcówek, logi z jakichś serwerów – serwerów poczty, serwerów WWW – i te pliki, te logi czy jakiekolwiek inne informacje z jakichś czujek musimy zabrać w jedno miejsce, żeby to wszystko zobaczyć i mieć w zasięgu ręki. Więc najpierw trzeba pomyśleć, jak to zebrać, potem jak to dostarczyć oraz jak monitorować to dostarczanie. Czyli tu wchodzą takie elementy devopsowe, dataopsowe. Te pojęcia jak big data czy DevOps są tak naprawdę bardzo szerokie i ciężko tu wskazać konkretną osobę, która zajmuje się dokładnie tym i tylko tym. Więc od kwestii związanych z pobieraniem różnych danych, wykrywaniem tego po kwestie związane z magazynowaniem, czyli tutaj widzimy w takim świecie powiedzmy bigdatowym jakieś data lake, wykorzystujemy jakąś architekturę hot and cold, żeby dane najmłodsze, najbardziej pożądane i najczęściej wyszukiwane były np. na szybkich zasobach, a te starsze, do audytu – na wolniejszych i tańszych, ale w większej ilości.
I jest też możliwość wykonywania pewnych czynności analitycznych, czyli co z tego, że mamy te dane na dyskach, ale musimy je jakoś przejrzeć. Jeśli zobaczymy, że adres IP jest podejrzany, to musimy sprawdzić, czy kiedyś mieliśmy z nim styczność, co się na nim działo. Z drugiej strony jest też kwestia przetwarzania strumieniowego polegająca na tym, że my musimy aktywnie sprawdzać, co się dzieje. Są pewne wektory ataku, pewne reguły i charakterystyczne zachowania, które pozwalają nam podejrzewać, że coś się dzieje. Więc nie chcemy zobaczyć, że tydzień temu ktoś nam walnął konto, tylko chcemy wiedzieć od razu, że jakiś użytkownik uruchomił proces, który jest nietypowy dla tego rodzaju użytkowników, np. księgowa czy sekretarka raczej nie odpala powershella i okna komend, nie jedzie sieci wokoło, byłoby to co najmniej podejrzane i trzeba by było to sprawdzić.
Kiedy już mamy te dane na jakichś zasobach, czy to będzie jakaś baza czy inne rozwiązanie, bo tych rozwiązań jest sporo, to musimy pomyśleć, jak do tego podejść analitycznie, jak udostępnić pewne narzędzia analitykom czy ludziom w SOC-u, które pozwolą im obsługiwać te zdarzenia, incydenty. A potem można zastanowić się, jak wykorzystać różne inne analityczne, szersze elementy, czyli sztuczną inteligencję, machine learning, do wykrywania tych podejrzanych rzeczy, anomalii, albo wręcz jest takie popularne rozwiązanie HELK, czyli Elasticsearch połączony ze Sparkiem, do tworzenia modelów grafowych, i nawet sama wizualizacja jakiegoś fragmentu sieci dużo nam powie.
Czyli wykorzystujesz narzędzia big data do tego, żeby dostarczać bardziej zagregowane informacje i sygnały do innych działów, które później analizują je dokładniej? Do tego takie profilowanie nietypowych zachowań może się przydać. Jak rozumiem, wchodzą tutaj też jakieś narzędzia związane z uczeniem maszynowym, jakieś modele.
Tak, tylko ja jestem bardziej data inżynierem, w tym sensie, że kojarzę te elementy związane z tą działką data scientistów, ale przez to, że jeszcze nie miałem okazji jakoś specjalnie wchodzić w te tematy, to nie mogę za dużo o tym powiedzieć.
Czyli zajmujesz się tym stosem analizy dużych danych?
Tak.
Jakie tu narzędzia najbardziej się przydają? Czy jest to Elasticsearch, narzędzia z okolic Sparka czy Hadoopa?
W naszym przypadku takim narzędziem jest Elasticsearch, czyli cały stack od Elastic Stack, czyli Elasticsearch, Logstash, Kibana i Beats. Ale tak naprawdę, tak jak w szkoleniach saasowych to pokazują, jest wiele rodzajów tych SIEM-ów, bo wtedy wykorzystujemy całe narzędzie, tę całą platformę jako SIEM, czyli taki mechanizm do zarządzania informacjami bezpieczeństwa. I są różne SIEM-y, bo można mieć SIEM-a opartego o Splunka, o Elasticsearcha czy jakieś komercyjne innych firm, np. McAfee – ja jestem bardziej biegły w Elasticu, ale znam też inne narzędzia. Jeśli mamy bardzo dużo danych, to w pewnym momencie, wolumen tych danych, tych logów przewyższa wolumen tych danych operacyjnych – danych jest tak dużo, że musimy je w jakichś sposób przetransportować w jedno miejsce. I tutaj przydają się różne narzędzi kolejkowe, czyli Apache Kafka itp., żeby w jakiś sposób buforować te dane, bo wiadomo, wszyscy zakładają, że sieć jest niezawodna, ale bywa różnie, więc musimy wykorzystywać różne narzędzia, które daje nam m.in. big data. Niektórzy używają Logstasha do parsowania danych – wiadomo, logi to mogą być dane ustrukturyzowane i nieustrukturyzowane, więc niektórzy przetwarzają to w Logstashu, a ci, którzy preferują rozwiązania związane z rodziną Hadoopa, będą preferować Apache NiFi.
I tutaj ciekawe jest rozwiązanie, które kiedyś miałem na to do liście, i tak ta to do lista się wydłuża, więc ciężko do tego dojść, ale jest to rozwiązanie Apache Metron. Można zobaczyć sobie w internecie, jak ogólnie wygląda jego schemat działania, wygląda to mniej więcej tak: są jakieś źródła danych, telemetria, one lądują właśnie przez kolejki do Apache NiFi, czyli te wszystkie dane są przetwarzane, indeksowane, lądują w jakimś narzędziu do przetwarzania strumieniowego, potem w data lake’u. I na podstawie tego generowane są różne alerty oraz inne metryki, do tego podłączone są narzędzia analityczne, które ad hoc pozwolą nam wykonywać pewne analizy. Więc tych narzędzi jest bardzo dużo, każde z nich ma swoje plusy i minusy. Tak naprawdę wybierając jakiekolwiek, robimy dobrą decyzję, ponieważ musimy i tak to narzędzie poznać, więc ciężko znać wszystko naraz i jeszcze wszystko naraz stosować.
Czy zauważasz jakieś różnice w aplikowaniu tych narzędzi w tej domenie instytucji wojskowych czy w ogóle zastosowań wojskowych w porównaniu do innych zastosowań takiej analizy bezpieczeństwa? Jeśli ktoś robi analizę bezpieczeństwa i serwerów w firmach i tam analizuje logi, a tutaj mamy do czynienia z wojskiem, to czy jest tu jakaś różnica, specyfika, na którą trzeba szczególnie zwrócić uwagę?
Na pewno w tych systemach wojskowych bezpieczeństwo jest na pierwszym miejscu, więc czasami i ja się irytuję, gdy chcę coś zrobić, ale najpierw kilka osób musi to zaakceptować, wpuścić to na firewallu i dopiero wtedy mam do czegoś dostęp. Sieci wojskowe z definicji nie mają dostępu do internetu, takie produkcyjne, bo to w cywilu wygląda różnie, więc jest taka upierdliwość związana z tym bezpieczeństwem, bo i przeszkadzamy potencjalnemu przeciwnikowi, i sobie, ale jest coś za coś. Pracuję też na rynku cywilnym i z moich obserwacji wynika, że te kwestie związane z bezpieczeństwem są drugorzędne. Ta praca jest zwinniejsza, ale z drugiej strony nie wszyscy zdają sobie sprawę z tego, co się może stać.
Tak, bo w zastosowaniach wojskowych trudniej się podnieść z jakichś ewentualnych pomyłek niż w firmie.
Wspomniałeś również o potencjalnym wrogu. Powiedz o tym coś więcej, tak żeby uświadomić zwykłemu człowiekowi, niewojskowemu, niezajmującemu się cyberbezpieczeństwem, kto tak naprawdę jest tym wrogiem. Czy chodzi tu o zagrożenia wewnątrzkrajowe, np. hakerskie, czy też o zagrożeniach z zewnątrz? Jak rozumieć waszą rolę w zakresie cyberbezpieczeństwa? Jaka wojna rozgrywa się w tej cyberprzestrzeni i kto z kim walczy?
Ciężko wskazać konkretną stronę. Prosty przykład: ostatnio przygotowywałem wpis na blogu o Elastic SIEM-ie i utworzyłem wirtualkę na Azurze, udostępniłem porty dla swojego komputera. Potem pomyślałem sobie: A, udostępnię porty SSH dla wszystkich. Już wcześniej uruchomiłem Elasticsearcha i patrzyłem, co się dzieje. Okazuje się, że ta maszyna była bombardowana przez różne boty próbujące dostać się do niej po SSH. I tak naprawdę ciężko określić jakiegoś konkretnego wroga. Możemy jedynie domyślać się, jakie są przyczyny, dla których atakuje. Jeśli mamy firmę, to co tak naprawdę możemy stracić? Albo dane, albo możemy paść ofiarą podmiany jakieś faktury lub numeru konta bankowego i wtedy powiedzmy pani Jadzia z sekretariatu czy z innego biura wyśle przelew na nie ten adres, co trzeba.
W przypadku wojska te zagrożenia są troszeczkę inne. Owszem, również występuje element finansowy, ponieważ są różne przetargi, płatności, więc tutaj też można spróbować zaczepić. Można spróbować puścić ransomware czy coś zaszyfrować, ale prawdopodobieństwo tego jest mniejsze. Według mnie w przypadku wojska ważniejszy jest ten element informacyjny, czyli wyobraźmy sobie, że nagle jakaś strona zostaje przejęta przez jakiegoś hakera i on sobie czeka. Czeka, czeka, nic się nie dzieje, my nic nie wiemy, bo on nie wykonuje żadnych podejrzanych ruchów, potem przychodzą wybory albo pandemia i w najmniej spodziewanym momencie pojawia się jakiś fake news albo spreparowany fragment na stronie internetowej, i nagle zaczynają robić się jakieś podejrzane ruchy, ludzie zaczynają panikować, albo jeśli są to sytuacje międzynarodowe, to jeśli będą jakieś fałszywe informacje, np. że my już szykujemy wojska na wschodniej granicy – jednym słowem, musimy zastanowić się, czego taki adwersarz oczekiwałby w naszej sieci. Z uwagi na to, że ten nasz poziom jest bardziej strategiczny, musimy podchodzić do tego o wiele poważniej.
Czy uważasz, że warto byłoby przenieść te doświadczenia wojskowe na grunt cywilny? Wspomniałeś, że bezpieczeństwo jest tam zwykle na drugim planie, więc czy dobrze by było, żeby pewne procedury używane w wojsku były też stosowane na podobnym poziomie również w biznesie?
Wydaje mi się, że najlepszym wyborem jest złoty środek, czyli z jednej strony zdawać sobie z czegoś sprawę, przygotować, mieć to z tyłu głowy. Z mojej perspektywy, czyli osoby, która nie zarządza ludźmi, nie ma własnej firmy, firma cywilna przede wszystkim musi utrzymać się na rynku, więc nie może poświęcić się i wydawać pieniędzy na bardzo drogie narzędzia związane z bezpieczeństwem, jeśli miałaby zaraz paść, bo ona musi mieć obrót, ten cel biznesowy jest inny. Ale z drugiej strony, szczególnie w dzisiejszym świecie, w którym obowiązuje RODO, gdzie widzimy te wszystkie zagrożenia oraz obserwujemy firmy, które już padły ofiarą, trzeba się zastanowić, czy mamy budżet na zapłacenie kary albo budżet na zaszyfrowanie naszych danych. Jakiś czas temu Garmin padł ofiarą i oni mieli zaszyfrowane dane. To spłynęło po nich jak po kaczce, nawet im akcje jakoś specjalnie nie spadły, więc oni mogli sobie na to pozwolić. To wszystko zależy.
Więc jako pracownik agencji wojskowej i pracownik sektora prywatnego powiedz, czy zauważasz jakieś różnice w sposobie pracy, czy jest jakaś specyfika tego, że pracujesz w tych zastosowaniach wojskowych?
Dla mnie jako żołnierza różnica polega na tym, że ja nie pracuję, tylko ja służę. Więc jeśli trzeba zostać później, to ja zostaję później. Nie mam w umowie, że pracuję od 8 do 16 i o 16 nie zamykam drzwi na klucz, aby wrócić do domu. Tym różni się praca od służby. W dzisiejszych czasach widać to po tym, że część osób pracujących zdalnie musi sobie jakoś dostosować do tego mieszkanie, bo dzieciaki biegają. Ja cały czas chodzę do pracy normalnie. Kolejna różnica polega na tym, że praca w wojsku czy w sektorze publicznym, w jakiejś agencji czy w innej służbie mundurowej ma swoją konkretną, specyficzną biurokrację, bo to także dotyka sektora publicznego, są też kwestie związane z przetargami. Nie ma czegoś takiego, że jak dzisiaj potrzebuję całą farmę serwerów, to ja już następnego dnia albo za pół godziny mam na AWS-ie ileś tam maszyn i mogę działać dalej, tylko niestety taki drift jest tu dość spory. Muszą zostać podjęte pewne decyzje. Zanim one zostaną zaimplementowane, troszeczkę czasu upływa.
Kolejna kwestia to ochrona informacji niejawnych, czyli w firmie cywilnej wszystko jest bardziej dostępne, tutaj niestety są różne sieci, jedne są bardziej zamknięte, inne jeszcze bardziej zamknięte. I jeśli nie mam dostępu do internetu, a wszystkie tutoriale zakładają, że masz internet albo że jest dostępne repozytorium, to tutaj trzeba już tak od strony technicznej się do tego przygotować, zrobić sobie lokalne repozytoria. Przygotowanie takiego swojego warsztatu też trochę czasu zajmuje. Jest także różnica jeśli chodzi o pieniądze. Jednak pomimo tego, że pojawiają się różne dodatki, to jednak sektor publiczny, przynajmniej z tego, co ja widzę na rynku, nie może zaproponować takich samych pieniędzy jak firmy prywatne. Co prawda ma pewne benefity, m.in. firma może istnieć, może nie, ciężko, żeby wojsko czy jakaś inna służba publiczna się zwinęli, co nie zmienia faktu, że też jest atrakcyjnym kandydatem na rynku, szczególnie dla osób niedoświadczonych, kończących uczelnie, które są zainteresowane jakimiś tematami, a niektóre tematy tak na serio można rozwiązywać tylko w wojsku i w innych służbach, szczególnie gdy ktoś zajmuje się specjalistycznie kryptologią czy pentestami, z mojej perspektywy mało jest takich firm zajmujących się tym na takim poziomie jak my. Zresztą jak wejdzie się na cyber.mil.pl, to tam jest właśnie dużo ofert pracy, np. kojarzę taki spór reklamowy agencji wywiadu. Jest bardzo dużo instytucji, które potrzebują analityków, programistów czy administratorów. I tak naprawdę ta praca tam leży, czeka i jest równie ciekawa, co praca w cywilu. Ale niektóre osoby nawet nie zdają sobie sprawy z tego, że taka praca jest możliwa, więc może za pomocą tego podcastu się dowiedzą.
Zaciekawił mnie wątek edukacji, tego, jak właśnie sama praca w tym miejscu pozwala dotykać pewnych problemów, które trudno jest dotknąć w tej skali gdzieś indziej, więc to jest samo w sobie rozwijające. Ale mówiłeś też o braku dostępu do internetu w kontekście tutoriali. Zastanawiam się, czy sama edukacja i rozwój osób, które pracują w tych zastosowaniach wojskowych, są jakoś inaczej zorganizowane albo jak to wyglądało przynajmniej z twojej strony, jak doszedłeś do tych umiejętności związanych z big data, które teraz wykorzystujesz?
Może zostałem źle zrozumiany, bo w tych produkcyjnych środowiskach nie ma internetu, ale to nie zmienia faktu, że możemy mieć jakiś pojedynczy komputer czy środowisko laboratoryjne, które ten dostęp do internetu ma, więc nie ma czegoś takiego, że jesteśmy w ogóle zamknięci, siedzimy w piwnicy i nie mamy dostępu do świata. Ale jeśli chodzi o naukę rzeczy związanych z big data, to ona troszeczkę wynikła ze studiów doktoranckich, na jakich byłem w Wojskowej Akademii Technicznej, ponieważ byłem tam na studiach inżynierskich, magisterskich, potem przez rok pracowałem w NCK i stwierdziłem, że spróbuję swoich sił w doktoracie. Ja na inżynierskich, na magisterce zajmowałem się tematem symulacji wirtualnej. Jeśli ktoś grał w Operation Flashpoint albo w Armę, to właśnie jest to taka wojskowa forma tego symulatora VBS (teraz jest VBS3 i wkrótce ukaże się VBS4). Jest to powiedzmy taka „strzelanka”, która jest symulatorem wojskowym. Ja pisałem tam różne skrypty, sztuczne inteligencje itd. Na studiach doktoranckich chciałem pójść w stronę rozproszonej symulacji wirtualnej i w związku z tym, że rozproszonej, to spotkałem się z rzeczami związanymi z big data, z rozproszonym przetwarzaniem danych, z różnymi bazami, które skalują się wszerz: horyzontalnie, nie tylko wertykalnie, i to mnie zainteresowało.
Po pewnym czasie stwierdziłem, że studia doktoranckie trochę mi przeszkadzają, ponieważ mam dużo więcej obowiązków, jak np. prowadzenie zajęć ze studentami czy zaliczenie egzaminów, a nie miałem za bardzo okazji tak produkcyjnie zajmować się symulatorami, bo ja wtedy jako developer, robiłem w C Sharpie webapki i ciężko mi było jednocześnie być developerem webowym w C Sharpie i zajmować się rozproszoną symulacją wirtualną, więc postanowiłem to przerwać. Wybrałem podyplomówkę z big data na politechnice, bo chciałem zająć się tym tematem, a patrząc na ogrom tych technologii, stwierdziłem, że będzie to jeden z kroków w ten temat, żeby ktoś mnie w ten temat wprowadził. Ponieważ na początku było to bardzo ciężkie – ciężko tak naprawdę wybrać, czym się zająć – to wybrałem te studia. Poza tym podyplomówka potrzebna jest do tego, żeby mieć majora, więc od razu dwa w jednym.
I jak skończyłem tę podyplomówkę, to już widziałem, jak to wygląda i z czym to się je, niedługo potem założyłem bloga, który stał się moim motorem napędowym. Mam to do listę, która pozwala rozpoznawać pewne rzeczy i pewnie niejedna osoba taką to do listę ma. Więc jak już jakiś temat poznam, to po prostu go opisuję. Robię to na zasadzie dokumentacji tego, czego się właśnie dowiedziałem. Mam w zwyczaju do tych swoich wpisów wracać: a to miałem kawałek skryptu, kawałek konfiguracji, kawałek kodu albo w GitHubie trochę tych repozytoriów. Jeśli chciałbym np. zrobić teraz jakiś program w Kafka Streams, to po prostu ściągam swoje repo i mam już taką bazę, coś, od czego mogę zacząć.
Blog jest metodą zapisywania twoich wcześniejszych doświadczeń i tworzenia bazy wiedzy. A dodatkowo, jak rozumiem, masz też czytelników, którzy z tego korzystają.
Tak. Kilka razy zdarzyło mi się, że na konferencjach czy meetupach ktoś mnie poznał, fajnie było porozmawiać, pogadać, albo słyszałem, jak na przerwie ktoś wspominał o Wiadrze Danych, więc też miło. Okazało się, że to jest dobra metoda na markę osobistą, bo dzięki temu dostałem możliwość uczestniczenia w fajnych projektach, prowadzenia szkoleń. Gdyby nie blog, dzisiaj nie rozmawialibyśmy ze sobą.
Blog nazywa się wiadrodanych.pl – warto o nim wspomnieć. Czyli oprócz działań w Narodowym Centrum Bezpieczeństwa, też budujesz markę osobistą. Czy to przydaje się w doskonaleniu umiejętności, w lepszym wykonywaniu pracy czy robisz to po to, żeby zdobywać nowe znajomości i dzięki temu mieć szerszą sieć kontaktów? Gdzie widzisz największą wartość budowania własnego wizerunku?
Ciężko stwierdzić, że jest gdzieś największa wartość, ponieważ wartości jest wiele, od rzeczy związanych z tym, że jest to mój motor napędowy, po te związane z sytuacją na rynku, wizerunkiem eksperta, aż po te związane z samokształceniem. Od jakiegoś czasu tłumaczę swoje artykuły i wrzucam na mój profil na Medium, potem tam to wrzucam na Reddita i mam bardzo duży feedback. Czyli jeśli coś zrobiłem, to widzę, czy idę w dobrym kierunku. Na przykład była taka sytuacja, w której pisałem o Cassandrze i Sparku, wrzuciłem to na LinkedIna na różne grupy. I architekt z Data Stax, który stoi za Cassandrą, odpowiedział na moje pytanie zawierające pewną moją wątpliwość i mnie poprawił. Pomyślałem sobie, ile normalnie kosztuje zatrudnienie go jako konsultanta, pewnie nie byłyby to małe pieniądze. A tak to ja dzielę się pełną wiedzą, która w pewien sposób wraca do mnie. Więc jak ktoś komentuje moje wpisy, to ja nie boję się krytyki, ponieważ lubię, jak ktoś naprowadzi mnie na dobre tory, jeśli się mylę. Dopóki nie upublicznię wyników mojej pracy, to równie dobrze mógłbym schować je do szuflady i nigdy nikomu nie pokazywać, ale jaki byłby wtedy tego sens? Więc takie są właśnie zalety. I przy okazji mam też okazję poznać wiele ciekawych osób. To wszystko prowadzi do zawierania relacji, a potem ewentualnie do wspólnych projektów. I to jest samonakręcające się, bo znów poznajemy jakąś ciekawą treść, informacje, następnie znów możemy się tym podzielić – i tak w kółko.
Czy pisząc bloga, musisz uważać na to, żeby nie dzielić się zbyt dużą ilością informacji, w szczególności tajemnic wojskowych, czy to nie stanowiło nigdy problemu?
Raczej nie miałem z tym problemu, szczególnie że piszę bardzo technicznie, więc ciężko, żebym stosował przykłady, które mamy u siebie, raczej pokazuję mechanizmy. I nawet jeśli mamy jakieś dane, to są one dostępne publicznie w internecie albo gdzieś tam zeskrapowane, czyli też dostępne publicznie w internecie albo wygenerowane sztucznie. Raczej ciężko, żebym coś udostępnił. Zresztą jesteśmy przeszkoleni do tego, żeby jednak nie udostępniać informacji wrażliwych – inaczej bym już tam po prostu już nie pracował.
Wróćmy jeszcze do tych spraw merytorycznych, bo weszliśmy na poziom specyfiki pracy, bloga i innych działań. Czy możesz powiedzieć coś jeszcze o współpracy z innymi osobami w kontekście wykrywania zagrożeń, bo jak wspomnieliśmy, robisz tu część związaną z wykrywaniem anomalii, zbieraniem danych z wielu źródeł, zajmujesz się tą całą otoczką techniczną, żeby być w stanie wykryć to w tej dużej ilości informacji. Jakie inne role potrzebne są do tego, żeby ten proces był kompletny? Bo powiedzieliśmy trochę o rzeczach związanych z machine learningiem, z tym, żeby mieć te metody dalszej, dokładniejszej analizy. Jak powinien wyglądać taki cały ekosystem, żeby proces tej analizy cyberbezpieczeństwa był kompletny?
Na pewno jest to praca zespołowa, więc ciężko żeby jedna osoba wszystko załatwiła, szczególnie że czasami są to tak naprawdę sieci niewewnętrzne, w tym sensie, że są różne jednostki, różne komórki i to nie jest tak, że my tam wchodzimy z buta i coś tam robimy. Ważna jest też komunikacja, żeby dogadać się, jak chcemy dostarczać logi, co chcemy monitorować, ustalić wspólny tego plan i koncepcję. Na pewno są dyżurni, którzy siedzą w SOC-u i monitorują wszystko, są analitycy, którzy pracują tam na drugiej, trzeciej linii wsparcia i wspierają te wszystkie incydenty. Czasami trzeba pojechać i zabezpieczyć kilka dysków, żeby je potem przeanalizować albo zrobić jakieś zrzuty pamięci. Do tego potrzebni są ludzie. Dochodzą tu także kwestie administracyjne, utrzymaniowe, bo z perspektywy programisty wszystko wydaje się takie fajne i proste, ponieważ mamy swoją maszynę, łączymy się z jakimś serwerem albo z wirtualką. Kiedy zejdzie się do serwerowni sprawa się bardzo komplikuje, ponieważ mamy serwery, musimy mieć odpowiednio klimatyzowane miejsce, musi być tam odpowiednie zasilanie, do tego odpowiednia sieciówka. Bo jak popatrzy się na to z tej strony, to jest to szereg specjalistów, którzy pracują po to, żeby wykonywać jakiś proces i cel biznesowy. Więc na pewno są to osoby związane z administracją, programiści czy inżynierowie danych, którzy będą implementować konkretne procesy, czy to będzie w formie jakiegoś zadania sparkowego czy fileplanu w Logstashu, czy po prostu samej obsługi jakichś narzędzi. Tak naprawdę same narzędzia nic nie dają, musimy je dopiero skalibrować, skonfigurować, znaleźć odpowiednie parametry, logi, odpowiednio je sparsować. Tych ról jest tyle, że tak naprawdę ciężko konkretnie na to pytanie odpowiedzieć. I jak wspomniałeś, właśnie ci analitycy dużo dalszego planu, którzy przygotowują modele, mają czas i warunki do tego, żeby przejrzeć te dane i coś zaproponować.
Co jest takim największym wyzwaniem w tej działce, którą się zajmujesz? Czy to jest właśnie zbieranie tych danych z tak wielu różnych źródeł czy kwestia tego, żeby zapewnić ich przetwarzanie w odpowiedniej szybkości, czy jakieś jeszcze inne kwestie, które były jakimś większym problemem w tym, co robiłeś, i wymagały więcej pracy?
Ciężko jednoznacznie odpowiedzieć na to pytanie. Tych rzeczy jest tak wiele. To jest problem wielowymiarowy. W szczególności że to są takie dość specyficzne sieci i specyficzne narzędzia, jakieś diody danych. Wspomniałeś o zbieraniu logów chociażby, więc czasami są to zwykłe windowsy, które mają mechanizmy do pobierania tych logów. Czasami są to jakieś narzędzia czy aplikacje, które też nie są do tego za bardzo przystosowane, ale można to obejść. Ale jeśli mamy różne strefy, musimy łączyć różne sieci, to ten problem staje się o wiele bardziej skomplikowany i musimy do tego podejść indywidualnie. A potem te dalsze kwestie też w pewnym momencie uderzają, ponieważ kiedy tych logów jest bardzo dużo, to już nie możemy po prostu ich wysyłac przez sieć, ponieważ ją zabijemy. Jeśli mamy jakiś full paket capture, to też pojawiają się kwestie, jak zarządzać naszymi zasobami, ponieważ dyski szybko się zapełnią albo nie będą zbyt szybkie i też musimy wykorzystywać różne mechanizmy, stawiać jakieś klastry, wykorzystywać czy to wirtualizację, czy konteneryzację, czy jakiś Kubernetes – tak naprawdę to jest wielokryterialny problem. Ciężko wskazać konkretne miejsce, wszędzie jest ciężko, ale tutaj jest najciężej.
Czy to jest tak, że pracujecie projektowo, czyli jest konkretny projekt, którym trzeba się w tej chwili zająć, i stąd fokusujemy się na jakichś logach stron internetowych, a inny projekt polega na czymś zupełnie innym, że analizujemy zachowania księgowej w Windowsach, czy zasadniczo analizujemy wszystko naraz i szukamy tych anomalii w całym dostępnym nam zbiorze danych?
Na pewno nie da rady patrzeć na wszystko naraz, więc musimy ustawiać pewne priorytety. Wiadomo, że w każdej organizacji tak naprawdę są pewne usługi kluczowe, krytyczne i mniej krytyczne. Jeśli ktoś opiera swoją firmę o Exchange’a i o SharePointa, to jeśli ten SharePoint nie działa, to generalnie cała firma stoi. Więc należy podejść w taki sposób: mierzyć siły na zamiary. Nie możemy zrobić wszystkiego naraz, szczególnie że są pewne ograniczenia personalne, sprzętowe i formalne – musimy szyć z tego, co mamy, i tak naprawdę skupiać się na kluczowych kwestiach. I tak jak zasugerowałeś, to de facto jest podejście projektowe, czyli mamy konkretny case, chcemy połączyć jedno z drugim albo powstaje konkretna aplikacja i trzeba rozpoznać, jakie są w niej zasoby, z czego korzysta, kto się z kim kontaktuje, komunikuje, gdzie są słabe strony tego rozwiązania, na których zasobach nam konkretnie zależy oraz co chcemy zrobić, żeby tak naprawdę zareagować, bo to, że zbieramy dane, to fajnie, ale musimy mieć też jakieś wytyczne, koncepcje tego, co chcemy zrobić, a nie że: no fajnie, atakują nas, albo np. leci Brute Force: no to fajnie, będziemy patrzeć w dashboard. Trzeba się do tego przygotować, ustalić plan, koncepcję działania, konkretnego celu. Ponieważ jeśli mamy sieć wojskową, to co robimy? Tego będzie za dużo i tak naprawdę monitorując wszystko, nie będziemy monitorować niczego.
Wojsko kojarzy mi się z procedurami. Jest tam jakieś zdarzenie X, więc trzeba wyciągnąć odpowiednią teczkę oznaczoną „problem X” i przeczytać, co tam jest do zrobienia. Czy macie takie gotowe procedury na to, co w przypadku danego zagrożenia należy zrobić, czy przygotowujecie takie procedury i to też jest jedno z waszych zadań?
Nie jest to bezpośrednio związane ze mną, ale są takie playbooki, z których dyżurni dowiadują się, co mają robić, tylko akurat ja nie jestem dyżurnym, nie siedzę tam i nie znam tej części działki.
Takie procedury kojarzą mi się z czymś, co też w firmie cywilnej jest potrzebne, czyli co zrobić w sytuacji cyberzagrożenia czy jakiegoś innego problemu. Stąd ciekaw byłem doświadczeń.
Maciej, czy coś jeszcze chcesz przekazać naszym słuchaczom, pewnie w większości niewojskowym?
Jedyne, co mogę powiedzieć, to zachęcić: jeśli ktoś akurat szuka pracy albo jest ciekaw, czym się zajmujemy, to można wejść na stronę cyber.mil.pl i zobaczyć, jakie mamy oferty, co u nas można robić. Nie jesteśmy jedyną firmą publiczną, która potrzebuje specjalistów czy to właśnie do big data, czy analityków, administratorów, specjalistów od kryptologii, revers engineering, pentest itd. Jeśli ktoś się tym zajmuje albo jest tego ciekawy, to można wejść, zobaczyć i zaaplikować.
Dzięki, Maciej, za rozmowę. To było bardzo ciekawe, mam nadzieję, że też dla naszych słuchaczy. Dzięki jeszcze raz i do usłyszenia.
Dzięki, hej.