Cyberbezpieczeństwo

Odpowiedz Nowy wątek
2017-09-28 19:53
1

Witam wszystkich

Prosiłbym Was o pomoc w kwestii kolejności nauki tematów, które są niezbędne do pracy jako specjalista do spraw cyberbezpieczeństwa. Tematem interesuję się w zasadzie od niedawna, ale praktycznie każdą wolną chwilę staram się przeznaczyć na poszerzenie wiedzy w tej kwestii. Z tego co udało mi się dowiedzieć, aby zostać specjalistą od cyberbezpieczeństwa powinienem nauczyć się poniższych tematów (kolejność jest przypadkowa, nie miałem na myśli posortowania od najważniejszego punktu do najmniej ważnego):

  • nauka systemu operacyjnego Linux
  • programowanie, mam tutaj na myśli głównie język Python, mniej PHP
  • SQL i bazy danych (rzecz jasna ten temat musiałbym umieć bardzo dobrze)
  • bardziej szczegółowe działanie Windowsa
  • sieci komputerowe
  • inżynieria wsteczna
  • kryptografia
  • poznanie technologii serwerów (Windows Server i tym podobne)

Jak widać jest tych punktów dość dużo i być może jest ich jeszcze więcej. Dlatego mam prośbę do wszystkich, którzy mają styczność w pracy
z cyberbezpieczeństwem lub siedzą w tym temacie dość długo, aby pomogli mi w jakiej kolejności uczyć się wszystkich tych rzeczy. Chodzi mi
o uporządkowanie nauki tych tematów.
Na ten moment poznaję komendy Linuxa, czyli po prostu uczę się obsługi powłoki bash. (bez wchodzenia w programy służące do pentestów, bo na to jeszcze za wcześnie) Dodatkowo znam C++ i JS na poziomie podstawowym. Dodam jeszcze, że cyberbezpieczeństwo to nie jest jakiś mój "wymysł", a marzenie
i dążę do jego spełnienia. Potrzebuję tylko pomocy, żeby poukładać sobie kolejność nauki wyżej wymienionych tematów (które są bardziej ważne, a które mniej) Z góry dziękuję za każdą wartościową odpowiedź.

Pozdrawiam


edytowany 1x, ostatnio: Shizzer, 2017-09-28 19:54

Pozostało 580 znaków

2017-09-28 20:09
2

Moim zdaniem jesteś za mało specyficzny, cyberbezpieczeńswo to szeroka dziedzina.
Co dokładnie chciałbyś robić?
Na szybko mogę wymyślić przynajmniej kilka ścieżek związanych z cyberbezpieczeństwem, a jednak kompletnie od siebie różnych.

  • Administracja sieci - głównie znajomość systemów i sieci, więc tutaj Twoja lista jest w miarę ok.
  • Szukanie dziur w oprogramowaniu - przede wszystkim programowanie niskopoziomowe + poprzedni punkt
  • Pisanie programów antywirusowych - programowanie nisko lub wysokopoziomowe, w zależności od konkretnego profilu.
  • Praca przy algorytmach szyfrujących - zapewne głównie matematyka.

Pozostało 580 znaków

2017-09-28 20:16
0

Myślałem nad administracją sieci. To znaczy wyobrażałem sobie, że praca specjalisty od cyberbezpieczeństwa polega na zarządzaniu sieciami, a dodatkowo dochodzi do tego tzw. "legalny włam". Chodzi tutaj o zlecenie na mocy, którego można sprawdzić podatność aplikacji na ataki przestępców. Myślę jednak, że bliżej jest mi do administracji sieci.

Nie można połączyć w jedno np. dwóch ścieżek, które wymieniłeś powyżej? Np. administrację sieci z szukaniem luk w oprogramowaniu?


Pozostało 580 znaków

2017-09-28 20:28
1

Ogólnie dobrze kombinujesz, ale SQL specjalnie nie jest potrzebny, a kryptologia to do nauczenia się, tylko na studiach.
Na początek administrowanie linuxem, sieci i python.

Polecam ci książkę Praktyczna analiza pakietów.

edytowany 2x, ostatnio: sqlka, 2017-09-28 20:45

Pozostało 580 znaków

2017-09-28 20:33
3

@rev @msm @Gynvael Coldwind


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2017-09-28 20:49
0
sqlka napisał(a):

Ogólnie dobrze kombinujesz, ale SQL specjalnie nie jest potrzebny, a kryptologia to tylko na studiach.
Na początek administrowanie linuxem, sieci i python.

Polecam ci książkę Praktyczna analiza pakietów.

Dziękuję za odpowiedź.

Co do książek na razie przeczytałem jedynie "Sztukę Podstępu", która oczywiście wprowadza w świat socjotechniki. Aktualnie przerabiam książkę związaną z bashem.
Po nauce basha planowałem zakupić tę książkę: https://helion.pl/ksiazki/cis[...]ci-michal-zalewski,bekomp.htm

Miałem też w planach naukę Pythona z darmowego PDFa: https://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie (chodzi głównie o to, żeby nie wydawać tak dużo pieniędzy na książki)

Co do porównania obu książek tej, o której napisałeś/aś i tej, którą ja planowałem zakupić do zagłębienia się w tajniki sieciowe. Która będzie lepszym rozwiązaniem pod względem efektywności edukacji?


Jak rozumiem @Shalom: zawołał bardziej doświadczonych, to może któryś się niech lepiej wypowie. Mnie też interesuje cyberbezpieczeństwo ale też dopiero się uczę. - sqlka 2017-09-28 20:54

Pozostało 580 znaków

2017-09-28 22:03
3
  1. @sqlka racji nie ma, (no)SQLinjection to jest dość popularny błąd i jeśli ktoś chce sie bawić w pentesting to trzeba to trochę ogarniać
  2. Kryptografia tak samo -> błędów związanych z niepoprawnym użyciem krypto jest cała masa.
    Ja zamiast czytania książek zalecałbym jednak praktykę. Klepanie zadań z jakiegoś root-me.org czy podobnej strony (można ich sporo znaleźć na wechall), granie w CTFy itd. A skille będziesz nabierać niejako "przy okazji".

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
Masz rację, ale w toku administracji linuxem zawsze trochę człowiek ma pewne doświadczenia z sql(wymagane na wszystkich egzaminach certyfikacyjnych), ale nie wydaje mi się, że to jest umiejętność, którą nabywa się w pierwszej kolejności. O to mi chodziło. - sqlka 2017-09-28 23:24

Pozostało 580 znaków

2017-09-28 22:13
0
Shalom napisał(a):
  1. @sqlka racji nie ma, (no)SQLinjection to jest dość popularny błąd i jeśli ktoś chce sie bawić w pentesting to trzeba to trochę ogarniać
  2. Kryptografia tak samo -> błędów związanych z niepoprawnym użyciem krypto jest cała masa.
    Ja zamiast czytania książek zalecałbym jednak praktykę. Klepanie zadań z jakiegoś root-me.org czy podobnej strony (można ich sporo znaleźć na wechall), granie w CTFy itd. A skille będziesz nabierać niejako "przy okazji".

Co do książki, którą przytoczyłem we wcześniejszym poście to służyłaby mi ona jako poszerzenie wiedzy na temat sieci i zaspokojenie własnej ciekawości.

Praktyka oczywiście będzie wdrożona jeśli chodzi o rozwiązywanie problemów CTF-ów.

Ale zawsze mnie ciekawiło jak to jest np. z językiem programowania jeśli chodzi o praktykę. Mam takie podejście, że obawiam się pisać programy nie znając podstaw języka. Tzn chciałbym się nauczyć Pythona i większość doświadczonych programistów radzi, żebym pisał kod, ale nie znając podstaw jak się za to zabrać? Według mnie książka jest pomocna. Traktuję ją jako pomoc naukową przy rozwiązywaniu danego logicznego problemu, czyli jak zaimplementować dany kod. Książki są stworzone po to żeby pomagały właśnie w takich sytuacjach dlatego wydaję mi się, że lepiej ją mieć niż nie mieć. Dlaczego więc niektórzy odradzają książki do programowania?


Pozostało 580 znaków

2017-09-28 23:06
msm
15

Lista kroków do nauki cyberbezpieczeństwo:

  1. Przestać używać słowa cyber. Większość (wszyscy?) technicznych ludzi od IT security używa go najwyżej ironicznie. Poważnie, to bardzo głupio brzmi :P.

Alternatywy: bezpieczeństwo IT, bezpieczeństwo oprogramowania, bezpieczeństwo teleinformatyczne, bezpieczeństwo sieciowe i inne (lepiej brzmią po angielsku though).

  1. Zdecydowanie się co konkretnie w security chce się robić - albo chociaż byciem świadomym alternatyw.

To szeroka branża i z osób w moim pokoju można spokojnie zebrac 4 osoby z których każda ma zupełnie inne skille i robi zupełnie co innego, a wszystkie technicznie pracują w bezpieczeństwie.

To znaczy wyobrażałem sobie, że praca specjalisty od cyberbezpieczeństwa polega na zarządzaniu sieciami, a dodatkowo dochodzi do tego tzw. "legalny włam"

Przykładowo, największa sieć którą zarządzałem to mój domowy router :P. (ok, na takim 4p jest wirtualna sieć /16, ale to sie nie liczy)

Z ważniejszych nurtów:

  • Reverse Engineering - niskopoziomowa analiza programów binarnych. Najważniejsza: znajomość asemblera, niskopoziomowych języków typu c, obsługi debuggerów/disasemblerów, działania systemu operacyjnego.
  • Binary Exploitation - niskopoziomowe szukanie dziur w programach. Najważniejsze: wszystko to co na Reverse Engineering, plus fuzzowanie i inna automatyzacja, plus techniki exploitacji podatności.
  • Bezpieczeństwo aplikacji webowych - włamywanie się/naprawianie luk na stronach. Najważniejsze: znajomość protokołów sieciowych (głownie HTTP), javascriptu, modelu bezpieczeństwa web, najlepiej PHP, SQL i całej rodziny.
  • Bezpieczeństwo sieci - fancy nazwa na admina mającego pojęcie że jest coś takiego jak security :P. Najważniejsze: bycie adminem, plus dobra znajomość linuxa i jego hardeningu (i ratowania systemu w razie ataku)
  • Audyty kodu źródłowego - przeglądanie kodu źródłowego, często też ustalanie procedur/procesów/norm/takich tam. Najważniejsze: wysokopoziomowe rozumienie jak powstają błędy, dobra znajomość swojego języka, znajomość klas podatnośći i jak powstają błędy
  • Forensics - informatyka śledcza. Najważniejsze: znajomość formatów plików, orientowanie sie co może się znajdować w RAM/HDD i gdzie (najlepiej: internalsy systemu) no i procedur do obsługiwania się z nimi (typu: obsługa blokera).
  • Kryptografia - pominę bo nie o to Ci chodzi pewnie :P

I pewnie jeszcze parę rzeczy by sie dało wyróżnić. Każda z tych to spokojnie może być ścieżka kariery i nie da rady się w całości jej nauczyć.

Oczywiście nie trzeba robić jednej (/me by się podpisał pod kilkoma, bo wszystko ciekawe ;], ale nie da się robić wszystkiego.

  1. Rozpoczęcie nauki

Odnosząc moje specjalizacje do Twoich punktów:

  • nauka systemu operacyjnego Linux - tylko dla admina w zasadzie ściśle potrzebne. Ale dobra znajomość obsługi linuxa z punktu widzenia użytkownika to coś jak umiejętność czytania bez mówienia na głos u dorosłego - da się jakoś żyć bez, ale bardzo głupio to wygląda. Szczególnie że to nic trudnego ;].

  • programowanie, mam tutaj na myśli głównie język Python, mniej PHP - umiejętnośc skryptowania w czymś się przydaje w zasadzie zawsze. No i python to dobry wybór niezależnie czy dla programisty czy do security. Polecam niezależnie od wyboru drogi ;].

  • SQL i bazy danych (rzecz jasna ten temat musiałbym umieć bardzo dobrze) - z tym bardzo dobrze to bym nie przesadzał. Naprawdę ważne tylko dla ludzi od web security (i trochę dla admina ofc).

  • Bardziej szczegółowe działanie Windowsa - niewiele mówiący punkt ;]. Zupełnie inne rzeczy są ciekawe z punktu widzenia forensics, a inne dla reverse engineera, a inne dla admina. O ile nie planujesz pisać własnego rootkita (spoiler: obecnie bardzo trudne, oraz i tak nie warto) to raczej nie szedłbym w to na początku. Oczywiście podstawy jak procesy, wątki, pamięc wirtualna to podstawa, ale no.

  • sieci komputerowe - dobrze wiedzieć jak działają sieci, ale nie przesadzałbym na razie. Przy web app security to jest zbyt niskopoziomowe, a przy RE zazwyczaj nieważne.

  • inżynieria wsteczna - tylko dla inżyniera wstecznego

  • kryptografia - tylko dla kryptografa

  • poznanie technologii serwerów (Windows Server i tym podobne) - po co O_o. Chyba że chesz być adminem Windows Serverów, ale nie polecam.

(podaj która specjalizacja Cię interesuje to napiszę więcej)

edytowany 1x, ostatnio: msm, 2017-09-28 23:08
Pominąć krypto?! To chyba koniec naszej znajomości... :P - Shalom 2017-09-28 23:28
Super odpowiedź :) - sqlka 2017-09-28 23:31

Pozostało 580 znaków

2017-09-29 00:23
3

1) "Cyberbezpieczeństwo" to taki popularny, trochę marketingowy, termin przydatny dla użytkowników portali społecznościowych.
Można to postudiować w różnym zakresie i niektórzy nawet na tym zarabiają. No w sumie też ciekawy, ale chyba nie tego chcesz się uczyć.

Wg mnie obejmuje:

  • kontrolę prywatności (transmisji, publikacji)
  • phishing
  • ochronę antywirusową
  • ochronę dostępu (np. 2-krokową)
  • ochronę tożsamości
  • ransomware

Można o tym pisać i się doktoryzować. Ale wg mnie mało ambitne - przynajmniej w zakresie popularnonaukowym.

2) Kolejny obszar to bezpieczeństwo aplikacji. Tutaj potrzebna jest umiejętność programowania:

  • inżynieria wsteczna
  • exploity
  • bezpieczeństwo aplikacji webowych
  • itd - to wszystko co powinno interesować programistę przynajmniej na poziomie podstawowym

3) Kolejny obszar to bezpieczeństwo systemów informatycznych w firmie. Zakres dla "security officer'a".

  • kontrola dostępu, autoryzacje, uwierzytelnianie
  • fizyczne sposoby kontroli dostępu (karty, tokeny, klucze, zamki czasowe itd)
  • gwarancja dostępności systemów - kopie zapasowe, high-availability
  • monitoring, hardening, strategia aktualizacji i śledzenia błędów bezpieczeństwa
  • logowanie: rotacja, archiwizacja, kontrola dokładności
  • pod-systemy prewencyjne: śledzenie integralności systemu, auto-lockouty
  • ogólnie bezpieczeństwo: aplikacji, systemu operacyjnego, sieci

4) (ew.) podstawy teoretyczne: algorytmy i protokoły, kryptografia, teoria liczb, algebra itd.

Tu masz przykładowy link do studiów podyplomowych: http://www.agh.edu.pl/ksztalc[...]zkolenia/cyberbezpieczenstwo/
Kiedyś u klienta spotkałem gościa z zakresu (3). Dla mnie trochę taki BHP-owiec po właśnie takim rocznym kursie. Może wiedział więcej, może mniej.
Programowanie to zależy który z tych zakresów Cię interesuje. Python przyda się w (2) i (4). W (1) i (3) wg mnie nie musisz umieć programować.


Szacuje się, że w Polsce brakuje 50 tys. programistów

Pozostało 580 znaków

2017-09-29 13:06
0

Dziękuję obu panom za obszerne odpowiedzi.

Widzę, że powtarza się temat wyboru specjalizacji. Przemyślałem sprawę i wybrałem, że moim celem byłoby opanowanie nurtu, który zwie się Binary exploatation. Dodam, że wybór tej specjalizacji nie przyszedł od tak. Zawsze chciałem zgłębiać tajniki systemów operacyjnych i interesowała mnie analiza plików pod kątem niskopoziomowym, nie wiedziałem tylko jak nazwać taką specjalizację spod szerokiej gamy nurtów wywodzących się z jak się dowiedziałem "ogólnej nazwy" ITSecurity.

Niskopoziomowe sprawy interesują chyba większość osób, które zdecydowały się na łączenie swojego życia zawodowego z informatyką. Ja mam jednak ten problem, że lekko obawiam się "wejścia" w naukę tych języków niskopoziomowych. Słyszałem, że są dość trudne do opanowania i tutaj mam prośbę do @msm, abyś bardziej szczegółowo opisał temat Binary exploatation. Zależy mi szczególnie na tym jak zacząć uczyć się tego niełatwego i dość obszernego tematu tak żeby mieć "dobry start". Jeśli dostanę pomoc odnośnie nauki tegoż tematu zacznę działać. Dodam, że mam problem z tym 'jak zacząć naukę', a nie
z tym, że 'mam się uczyć', żeby nikt tego nie zrozumiał źle. :)


edytowany 1x, ostatnio: Shizzer, 2017-09-29 18:42

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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