Analiza malware, cybersecurity - jak zacząć

0

Od pewnego czasu zastanawiam się nad zmianą ścieżki kariery. Do tej pory pracowałem i pracuje jako programista, przy aplikacjach webowych, systemach mocno backendowych oraz bazach danych. Jednak chciałbym zająć się czymś innym, nowym i ciekawszym.

Bezpieczeństwo komputerowe oraz tematy powiązane z wirusami, jak działają, jak je "rozszyfrować" interesowały mnie już na studiach, jednak nigdy nie miałem praktycznej wiedzy na ten temat. Chciałbym na początek podszkolić się we własnym zakresie z analizy malware, zabezpieczeń komputerów czy sieci.
Podstawową wiedzę z security posiadam, nie raz zetknąłem się z nią czy to na studiach, w pracy, czy ogólnie w internecie. Chodzi mi teraz o to, żeby całkowicie zająć się tą tematyką.

Znam dość dobrze C/C++ oraz mam jakieś podstawy assemblera. Znalazłem też kilka kursów i stron w internecie, które dość fajnie pokazują jak zacząć.
Jednak chciałbym dowiedzieć się więcej, w szczególności o tym jak zacząć naukę analizy malware'u - jakie narzędzia, kursy, książki ogarnąć na początek, żeby potem móc to w jakiś sposób praktykować.
Macie jakieś sprawdzone porady?

2

Nieskromnie:

Szeroki przegląd narzędzi do reverse engineeringu
https://www.pelock.com/pl/artykuly/przeglad-narzedzi-do-reverse-engineeringu

Techniki wykorzystywane przez malware do ochrony przed antywirusami
https://www.pelock.com/pl/artykuly/anti-reverse-engineering-wirusy-kontra-antywirusy

Przykładowa analiza techniczna malware:
https://www.pelock.com/pl/artykuly/kod-zniszczenia-analiza-malware

Darmowa książka o reverse engineeringu, bardzo ciekawie i dobrze napisana:
https://beginners.re/

Ostatnio na ZaufanejTrzeciejStronie można znaleźć ciekawe analizy malware.

https://zaufanatrzeciastrona.pl/post/rozmowy-z-botnetem-czyli-analiza-zagrozenia-krok-po-kroku/

2
  1. Jest sporo serwisów w internecie z crackme i zadaniami z zakresu RE
  2. Klikać CTFy -> ctftime.org tylko na samym tutejszym forum udzielają się członkowie 3 różnych drużyn. Może Raccoons cię przygarną? @big_y @WhiteLightning @stawrocek @damonsson
0

@Shalom - taki mam właśnie zamiar. Na początek zaznajomić się z RE, nauczyć się w odpowiednim stopni asm i podszkolić z c++. Następnie wziąć jakieś proste programiki i je deasemblować. Myślę, że na początek będzie to ok.
Co do CTF' ów - wydaje mi się, że muszę jeszcze pogłębić wiedzę z pewnych zakresów, żeby wziąć w tym udział :).

@Bartosz Wójcik - Dzięki, przeglądnę :).

@Rev - dzięki bardzo za propozycję. Może kiedyś będę myślał bardziej o pracy pod tym względem, jednak najpierw jakieś umiejętności :). Z ciekawości - jak jest w tej "działce" z doświadczeniem? Warto już mieć coś wcześniej czy po prostu trzeba opanować pewne bardziej niskopoziomowe zagadnienia i można szukać pracy?

1

Zacząłem naukę od analizy teoretycznych rzeczy, z tych stron:
https://digital-forensics.sans.org/blog/2010/11/12/get-started-with-malware-analysis/
https://blog.malwarebytes.com/security-world/2012/09/so-you-want-to-be-a-malware-analyst/

Pytanie odnośnie środowiska do RE oraz analizy. Czy maszyny wirtualne są konieczne? Posiadam stary komputer, który do niczgo mi nie służy, a który ma na tyle wystarczające parametry, zeby służyć jako laboratorium. Wtedy jedyny sens zastosowania VM widzę po to, żeby postawić na nich różne systemy operacyjne (linux, inne windowsy, mac, etc.) i sprawdzić jak dane programy zachowują się pod nimi. Dobry trop?

Postanowiłem też na początek bardziej zagłębić RE i tym się zająć. Głównie napisać jakieś proste programy, a potem je zdekompilować.

0

Nie no odpalanie malware/nieznanego softu do reversowania pod nie-vmką to szaleństwo trochę. Jak ci ten malware/binarka namiesza w systemie to co? VMkę możesz mieć skopiowaną, albo mieć snapshoty i w 5 sekund sobie postawisz nową, a nie będziesz instalował systemu od nowa. Gorzej jeszcze jak wirus robi hardkor który może uszkodzić sprzęt, wtedy w ogóle komputer pójdzie do piachu.

0
Shalom napisał(a):

Nie no odpalanie malware/nieznanego softu do reversowania pod nie-vmką to szaleństwo trochę. Jak ci ten malware/binarka namiesza w systemie to co? VMkę możesz mieć skopiowaną, albo mieć snapshoty i w 5 sekund sobie postawisz nową, a nie będziesz instalował systemu od nowa. Gorzej jeszcze jak wirus robi hardkor który może uszkodzić sprzęt, wtedy w ogóle komputer pójdzie do piachu.

Czyli najlepiej osobny komp i na nim jeszcze wirtualki do zabawy? W sumie masz racje, nie przemyślałem sensu do końca :P.

0

Nie no o ile vmki mają bezpieczny sandbox to wystarczą, chociaż zdarza sie czasem jakiś exploit pozwalajacy uciec z sandboxa vmki na host system :)

0
Shalom napisał(a):

Nie no o ile vmki mają bezpieczny sandbox to wystarczą, chociaż zdarza sie czasem jakiś exploit pozwalajacy uciec z sandboxa vmki na host system :)

Też właśnie o tym myślę, ze jakby się zdarzyła jakaś binarka, któa wie, ze siedzi w VM'ce to zdycyduje sie uciec :P.
Dlatego z tego względu trochę bym się cykał na normalnym kompie się w to bawić. Wolałbym na początek trochę odseperować środowiska.
Ale to raczej melodia na potem, bo do zwykłego RE znanych programów/swoich nie trzeba mi VM'ki ;).

2

Zainstaluj sobie Sandboxie na początek.

2

Raccoons przygarną jak będziesz miał ochotę/czas/wiarę w siebie ;)

1

Ja radzę pisać własne programy w C, C++ i próbować je debugować - śledzić krok po kroku.
Do tego czytanie dobrej książki na temat asemblera(Asembler - Sztuka Programowania).

Super tutorial:
https://beginners.re/RE4B-EN.pdf

IMHO - z czasem Windows zostanie wyparty przez Linuxa więc i zagrożeń będzie mniej. Co więcej nowe zagrożenia będą wykrywane przez automaty z mocnym AI.....

0

@wielki Terrorysta - nie zgodzę się w kwestii Linuxa. Co do reszty wydaje mi się to też niewykonalne na ten moment, ale tu nie posiadam szerszej wiedzy, więc chętnie doczytam.

@Rev i @Świetny Mleczarz1 - dzięki za linki.

Obecnie zająłem się RE i analizą własnego kodu, używania odpowiednich narzędzi i poznawania wszystkiego. Póki co "na sucho", bez żadnego laba. Ale wkrótce zamierzam wdrożyć i to :).

0

Jeżeli mogę podpiąć się nieco pod temat: jak wygląda rynek pracy w tym kierunku? W sumie jeszcze nigdy nie spotkałem oferty pracy dla programisty od security. Czy przydaje się tu znajomość języków wysokopoziomowych (Java, C#), czy raczej nie są one używane w tym obszarze?

1

Skończysz tak jak @Rev w CERTcie jakimś albo w ESECie w Krakowie, dostaniesz ciepłą fuchę, kartę multisport i licencję na IDA ;), no chyba że będziesz miał więcej ambicji i pomysłów niż robienie analiz durnych botów i malware przez kolejnych 20 lat i założysz swój interes, co jednak bardzo rzadko się zdarza, bo zwykle jak ktoś wyląduje na ciepłej posadce to na tym kończą osobiste ambicje, przynajmniej w branży security.

Większość ludzi których kiedyś znałem i którzy zajmowali się reversingiem zupełnie porzuciła temat lub skończyła w firmach antywirusowych, od tego czasu ani żadnych publikacji nie robią, nie piszą żadnych książek, nikt z nich nie wydał żadnych znaczących narzędzi związanych z ich pracą (ReWolf DirtyJoe i to chyba koniec), biorą srebrniki i pracują na sukces zagranicznej firmy, od czasu do czasu na konferencję ich wyślą i tak wygląda kariera większości polskich specjalistów od security. Przykre ale prawdziwe. Ja zawsze myślałem, że Ci ludzie zostaną jakimiś pionierami technologicznymi, że założą swoje firmy (choćby antywirusowe), stworzą jakieś rewolucyjne narzędzia. Jeśli poznasz kilku ludzi zajmujących się security zrozumiesz również, że często mają oni sporo problemów psychicznych, emocjonalnych, dużo z nich to introwertycy, genialni często w tym co robią, ale zupełnie nieprzystosowani do prawdziwego świata i być może to jest przyczyna dlaczego wolą zaszyć się w boksie w jakiejś firmie i nie podejmować niepotrzebnego ryzyka.

6

@Bartosz Wójcik nie widzę specjalnie różnicy w porównaniu do 99% programistów. Większość ludzi po prostu traktuje pracę jako pracę, a w ramach hobby rozwija inne zainteresowania. Prowadzenie firmy czy pisanie własnego produktu często oznacza niestety ze prowadzenie firmy staje się twoim hobby bo na inne nie ma już czasu. Z kasą też różnie wtedy bywa. Fajna opcja jeśli masz ciekawy pomysł i zero zobowiązań, ale jak masz rodzinę, 3 dzieci i kredyt na dom to nagle przestaje to wyglądać tak różowo :) A jednak dla wielu ludzi sukces w życiu to właśnie ten dom i gromadka dzieci, a nie fakt że twój program kupił ktoś w Chinach.
Swoja drogą uważam za smiesznie stwierdzenie skończysz jak... i podanie za przykład kogoś kto ma 25 czy 26 lat :D faktycznie skończył, nie ma co! :D

Z tego co zresztą pamiętam to ty sam chciałeś w CERT pracować, tylko że cię nie chcieli, tak przynajmniej pisałeś na blogu. Więc nie pracujesz bo miałeś więcej ambicji i pomysłów niż robienie analiz durnych botów i malware przez kolejnych 20 lat czy może jednak po prostu brakło skilla? ;)

Jeśli chodzi o publikacje i ksiażki to twoich nie kojarze, a takie od @Gynvael Coldwind czy j00ru już tak ;)

0

@Bartosz Wójcik W komentarzu pod poprzednim się nie mieszczę, więc...

Zakładanie firmy z samym pomysłem to kiepska sprawa, jak Shalom napisał. Z kolei zakładanie firmy z budżetem od kogoś to też strzał w stopę, bo prędzej czy później to się obraca przeciwko. Swoją drogą - co jest złego w sprzedaży "jedynie do Chin"? Chińczycy teraz to potężna gospodarka z miliardami do wydania, więc nie rozumiem co to miało znaczyć. Branża antywirusowa nie jest prosta - sukces firmy warunkują kontakty i budżet, a nie to czy ktoś umie robić dobrą analizę malware czy RE (bo jak wszędzie - pomysł i umiejętności to często zbyt mało i brakuje cebulionów żeby się rozwinąć).

Zakładanie własnego interesu to też nic przyjemnego - byłem i troszkę nadal jestem w inkubatorze. Tyle papierów ile trzeba było wypełnić odnośnie "wynalazku" i ochrony własności intelektualnej to głowa mała (a i tak robiąc w takim programie jest prościej niż normalnie). Zakupy sprzętu, szukanie firmy, która będzie chciała współpracować żeby coś wypuścić - to wszystko jest czasochłonne i odbiega od technicznego clue sprawy.

Dlatego te "ciepłe posadki" jak to nazwałeś są dużo atrakcyjniejsze. A niektóre takie nawet dużo bardziej rozwojowe niż własny produkt. I częściej pracując w R&D powstają jakieś publikacje niż mając własną firmę.

@Shalom przez Twoje "generatory czarnych dziur" ludzie na ulicach później protestują i chcą Cern zamykać, bo gdzieś tu Shiva stoi, który czarnymi dziurami rozedrze świat ;)

0

@Bartosz Wójcik - taka sama filozofia jest w pracy programisty w każdej większej firmie czy korporacji. To, że ktoś pracuje w takim miejscu nie czyni go od razu kimś bez ambicji, bez pomysłu na siebie i życie, i zwykłym przegrywem. Wręcz przeciwnie. Pracowałem w kilku różnych miejscach, sam obecnie siedzę w korporacji i jakoś nie twierdzę, że brak mi ambicji i dbam o swoją ciepłą posadkę. Owszem jest fajnie, miło i przyjemnie, ale to wszystko po jakimś czasie się po prostu nudzi. Człowiek chce wyjść z jakiejś monotonii i poznać coś nowego, dowiedzieć się. Stąd ten temat.
Oczywiście nie twierdzę, że 99% ludzi w korpo to osoby, którym nie wyszło dlatego teraz grzeją dupcie w pewnym miejscu, w którym będą tak długo dopóki ktoś ich nie wywali. Po prostu dla niektórych, na pewnym etapie życia pojawiają się inne kwestie, gdzie "ja" już niekoniecznie jestem na pierwszym miejscu. @Shalom o tym napisał i bardzo dobrze to podsumował.
Co do racji tego, to najlepiej podyskutować z psychologami czy ludzi od socjalizacji, a nie z programistami :).
To czy ktoś jest ambitny i ma pomysł na siebie na pewno nie świadczy to gdzie pracuje. Mam w swojej pracy ludzi bardzo rozwiniętych, doświadczonych i pasjonatów. Ale też podkreślają, że każde miejsce pracy jest po prostu miejscem pracy i jak chcesz robić coś innego to się wynosisz.

Moim zdaniem niepotrzebnie zaczynasz flame, który koniec końców do niczego odkrywczego nie prowadzi. Dla jednego praca w AV jest wystarczająca, dla drugiego prowadzenie własnej firmy. Osobiście pisanie książek zostawiam pisarzom, a pisanie kodu programistom. Dlatego trochę nie widzę związku, oprócz niepotrzebnej spiny. Każdy robi co lubi ;).

Wracając do tematu - czy polecacie jakieś książki odnośnie analizy malware'u? Natknąłem się na taką - https://www.amazon.com/Practical-Malware-Analysis-Hands-Dissecting/dp/1593272901 i jest wszędzie jest dość polecana. Czy ktoś z Was ją posiada i może coś więcej powiedzieć - warto/nie warto ? :)

0

Hej Cyber świry, czy są jakieś nowe metody pozyskiwania wiedzy w tym temacie ?
jakieś polskie ?
rozumie, że angielskich jest mnóstwo... ;)
ktoś coś?

1 użytkowników online, w tym zalogowanych: 0, gości: 1