Od jakich projektów zacząć naukę cybersecurity?

0

chce uczyć się cyberbezpieczeństwa ale wiadomo, że bez umiejętności programowania będą z tego nici. Więc chciałbym uczyć się praktyki bezpieczeństwa w pythonie. Macie może jakieś pomysły jakie projekty zrobić w pythonie i dotyczą cyberbezpieczeństwa? Z góry dzięki

4

Zacznij od kryptografii i napisz sobie program do szyfrowania i deszyfrowania wiadomości np. za pomocą jakichś bibliotek AES, DSA lub RSA. Spróbuj też sam zaimplementować taki algorytm.

1

Może coś prostszego, zrób program który będzie brał plik i robił z niego obraz BMP a potem konwertował znowu do oryginalnego formatu. Proste i przyjemne mi się wydaje.

5

czym właściwie jest cybersecurity, bo dla mnie to zawsze brzmi jak wiele różnych ścieżek

6

Najprostsze cybersecurity z udziałem Pythona to jego deinstalacja :]

2
kedrus napisał(a):

chce uczyć się cyberbezpieczeństwa ale wiadomo, że bez umiejętności programowania będą z tego nici.

To nie tak. Cyberbezpieczeństwo ma wiele twarzy. Owszem możesz się zająć bezpieczeństwem aplikacji i tam programowanie jak najbardziej, ale możesz też zajmować się bezpieczeństwem sieci komputerowych czy rozwiązań opartych o chmurę. Możesz być konsultantem i zajmować się systemami SIEM/SOAR. Możesz też zajmować się bezpieczeństwem na poziomie organizacji, czyli procesy przetwarzania danych, użytkowników, sposoby reakcji i opracowywanie procedur obsługi incydentów bezpieczeństwa - wycieki dancyh, kampanie phishingowe, malware itd. Tutaj nikt programowania od Ciebie nie będzie wymagał.

Dlatego najpierw zdecyduj czym się tak naprawdę w ramach cyberbezpieczeństwa chcesz zajmować i dobierz sobie odpowiednio tok nauki. Możesz też napisać tutaj to spróbuję doradzić.

1

Najpierw musisz odpowiedzieć sobie na jedno ważne pytanie: która działka cybersecurity Cię interesuje?

1

@markone_dev

robiąc niezależnie jakie security raczej umiejętność tworzenia narzędzi dla siebie jest na plus, lol.

2
1a2b3c4d5e napisał(a):

@markone_dev

robiąc niezależnie jakie security raczej umiejętność tworzenia narzędzi dla siebie jest na plus, lol.

Ja tam się nie znam, ale wydaje mi się, że testowanie podatności aplikacji webowych nie wymaga znajomości programowania w ogóle, jeśli by się uprzeć, choć pewnie byłoby na plus :)

2
1a2b3c4d5e napisał(a):

@markone_dev

robiąc niezależnie jakie security raczej umiejętność tworzenia narzędzi dla siebie jest na plus, lol.

Nie kazdy ekspert od cyberbezpieczenstwa musi znac sie na programowaniu. To jest oczywiste i nie ma co tu dyskutować. . A czy komuś bronie robić narzędzia dla siebie? Poza tym co to znaczy narzędzie dla siebie? W codziennej pracy poza skrajnymi przypadkami i tak korzysta się z gotowych narzędzi i nie ma tu miejsca na wymyślanie swoich własnych.

2

@markone_dev:

Nie kazdy ekspert od cyberbezpieczenstwa musi znac sie na programowaniu

Kim zatem jest i co robi ten ekspert od cyberbezpieczeństwa?

To jest autentyczne pytanie - czy chodzi o osobę od checklisty i wymuszania zmiany hasła w windowsie raz w miesiącu?

Naprawdę koncept bronienia systemów IT bez świadomości jak się je tworzy jest dla mnie co najmniej podejrzany.

Ludzie od security od zawsze kojarzą mi się z biegłością w praktyce oraz solidną znajomością teorii, ale może to bardziej przydatne z perspektywy atakującego?

1
1a2b3c4d5e napisał(a):

Ludzie od security od zawsze kojarzą mi się z biegłością w praktyce oraz solidną znajomością teorii, ale może to bardziej przydatne z perspektywy atakującego?

Ktoś musi beknąć po włamaniu na serwer :]

Zawodowy kozioł ofiarny.

1

@1a2b3c4d5e:

Kim zatem jest i co robi ten ekspert od cyberbezpieczeństwa?

Na przykład analizuje raporty, monitoruje infrastrukturę i reaguje na incydenty, poczytaj czym zajmują się SOC-i (Security Operations Center). Napisałem też wyżej w pierwszej odpowiedzi, że cyberbezpieczenstwo to też projektowanie i tworzenie procedur bezpieczeństwa dla firm, urzędów, różnorakie audyty.

1

Pod tym pojęciem kryje się masa różnych profesji, pewnie od security infrastruktury, analizy malware, bug hunting i pewnie wiele więcej.

Nie wiem czym dla ciebie jest wiedza, np. poznać jakiś ciekawy bug w przeglądarce analizując malware, które wywołuje jakiś błąd.
Przy okazji trzeba jeszcze poradzić sobie z obfuskacją.

Wiele można się nauczyć z czytania książek o bezpieczeństwie i programowaniu, rozwiązywania zadań CTF'ach, nawet tam wiele różnych umiejętności można rozwijać od kryptografii, reverse engineeringu, binary exploitation itp.

Różne języki ci się przydadzą, język to i tak tylko narzędzie.
Javascript, bo w końcu każda strona z niego korzysta, np. jakieś błędy xss, komunikacja z serwerem.
Python, też dobry do tworzenia narzędzi, jakoś musimy z różnych protokołów korzystać.
C/C++/Rust programowanie niskopoziomowe, kernel.
Assembler, bo w końcu wszystko wykonuje się na procesorze.

Protokoły też trzeba ogarniać, http, rest, graphql, trpc, grpc, tcp, udp.

Technologie też warto ogarniać, jak się tworzy rest api np. w różnych, takich jak spring, django itp.
Wiedząc jak by się stworzyło coś w danym środowisku i czego tam brakuje, można się domyślić co ktoś musiał ręcznie zaprogramować,
co może mieć leaky abstraction, tworząc nowe funkcjonalności często się nie wie jak działa reszta, którą ktoś inny stworzył.

Książki do security się mega ciekawie czyta i przyjemnie, łatwo od tego zacząć i trochę poszerzają horyzonty, chodź wypada umieć już programować na tym etapie.
Inaczej nie będziemy mieli żadnego odniesienia do własnej wiedzy czyli za wiele nie zrozumiemy i nie zapamiętamy tym samym.

Dużo też da replikowanie exploitów, nawet jak nie podołamy można trochę poczytać jak ktoś inny to rozwiązał, zawsze można się czegoś nauczyć.

0
1a2b3c4d5e napisał(a):

@markone_dev:

Nie kazdy ekspert od cyberbezpieczenstwa musi znac sie na programowaniu

Kim zatem jest i co robi ten ekspert od cyberbezpieczeństwa?
To jest autentyczne pytanie - czy chodzi o osobę od checklisty i wymuszania zmiany hasła w windowsie raz w miesiącu?
Naprawdę koncept bronienia systemów IT bez świadomości jak się je tworzy jest dla mnie co najmniej podejrzany.

No tak, tylko co tutaj rozumiemy przez system IT i brak świadomości jak się go tworzy?
Jak sam zauważyłeś wcześniej, w zależności od interpretacji cybersecurity będzie znaczyło bezpieczeństwo na kompletnie różnych poziomach i to raczej nie jest jedno stanowisko.

Ja się zgadzam z @markone_dev, że ekspert od cyberbezpieczeństwa nie musi znać się na programowaniu, bo to zależy od poziomu na jakim się poruszamy.

Czy ktoś kto dba o bezpieczeństwo warstwy sieciowej w ramach serwerowni (odpowiednia segmentacja sieci, ACL, filtrowanie przez firewalle, inspekcja ruchu, dozwolone algorytmy szyfrowania in-transit, mTLS) musi znać się na programowaniu (szczególnie ww. Python, Javascript, czy coś niskopoziomowego)?
Czy ktoś kto dba o bezpieczeństwo pod kątem IAM (uprawnienia dla użytkowników/grup, wymagalność MFA dla odpowiednich kont/grup/przy dostępie do konkretnych elementów infrastruktury, dbanie o polityki rotowania haseł) musi znać się na programowaniu?
A co z kimś kto zajmuje się enterprise'owym ekosystemem PKI, kluczami i mechanizmami fizycznie szyfrującymi dane at-rest, rotowaniem kluczy szyfrujących i certyfikatów?

Każda z tych osób odpowiada za cybersecurity i ma świadomość jak się tworzy systemy IT, tyle że każda na innym poziomie. Śmiem twierdzić, że żadna z ww. osób nie musi znać się na programowaniu i może być ekspertem od cybersecurity.

A te osoby które wymieniłem to i tak już takie dość techniczne role :)

Ludzie od security od zawsze kojarzą mi się z biegłością w praktyce oraz solidną znajomością teorii, ale może to bardziej przydatne z perspektywy atakującego?

Z biegłością w praktyce na jakim poziomie? ;)

0

@some_ONE:

No ok, cieszę się że wymieniłeś te stanowiska i opisałeś co robią.

Ludzie od security od zawsze kojarzą mi się z biegłością w praktyce oraz solidną znajomością teorii, ale może to bardziej przydatne z perspektywy atakującego?

Z biegłością w praktyce na jakim poziomie? ;)

ogromną, ale może moja percepcja to skrzywienie wynikające z siedzenia na 4p, gdzie jest trochę tych osób od security typu @Shalom, @Gynvael Coldwind czy @msm.

0

Zakladajac prace w red teamie mysle, ze programowanie byloby jak najbardziej pozadane, ale to nadal nie jest chyba istota takich stanowisk. Ciezko mi wyobrazic sobie kogos, kto ma sprawdzic podatnosci aplikacji webowych nie rozumiejac przy tym podstaw sieci czy wykorzystywanych protokolow. W zasadzie niczego nie jestes w stanie wtedy zbadac samemu, a jedynie odtworczo przechodzic przez kolejne kroki jak tresowana malpa.

Ilustrujac to przykladem: nie musze byc specjalista od SQLa zeby zrozumiec czym jest sql injection, natomiast jezeli w zyciu nie mialem z nim (SQLem) do czynienia to:

  1. nie bede wiedzial, w ktorych miejscach taki atak ma w ogole racje bytu
  2. moje ataki sprowadza sie do przeklejenia typowych sql injection z neta najprawdopodobniej odnoszac przy tym porazke

edit:
Mysle tez, ze dobrym argumentem sa tutaj CTFy - bardzo czesto nie wymagaja programowania albo na naprawde niskim poziomie, mimo to uzyskanie flagi bywa niesamowicie ciezkie.

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