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

Od jakich projektów zacząć naukę cybersecurity?
kedrus
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:3
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

edytowany 1x, ostatnio: Riddle
TS
  • Rejestracja:ponad 5 lat
  • Ostatnio:4 minuty
  • Postów:853
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.

IN
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:60
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.

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 4 godziny
  • Postów:5108
5

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

WA
czym właściwie jest cybersecurity - taki nowy blockchain, tamten już nie jest modny :)
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:minuta
  • Postów:6633
6

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


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
markone_dev
  • Rejestracja:około 3 lata
  • Ostatnio:około 6 godzin
  • Postów:812
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ć.


Programujący korpo architekt chmurowy.
Udzielam konsultacji i szkoleń w obszarze szeroko pojętego cloud computingu (Azure, AWS) i architektury systemów IT. Dla firm i prywatnie.
DevOps to proces nie stanowisko.
edytowany 2x, ostatnio: markone_dev
bakunet
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Polska
  • Postów:1596
1

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

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 4 godziny
  • Postów:5108
1

@markone_dev

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

bakunet
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Polska
  • Postów:1596
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 :)

enedil
Trzeba umieć, coraz więcej ataków wymaga umieć odrobinę skryptować, chociażby moc postawić jakiś serwer co będzie złośliwe dane zwracał. Albo np DNS rebinding
markone_dev
  • Rejestracja:około 3 lata
  • Ostatnio:około 6 godzin
  • Postów:812
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.


Programujący korpo architekt chmurowy.
Udzielam konsultacji i szkoleń w obszarze szeroko pojętego cloud computingu (Azure, AWS) i architektury systemów IT. Dla firm i prywatnie.
DevOps to proces nie stanowisko.
enedil
Co jest w tym oczywistego?
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 4 godziny
  • Postów:5108
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?

edytowany 3x, ostatnio: WeiXiao
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:minuta
  • Postów:6633
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.


🕹️⌨️🖥️🖱️🎮
markone_dev
  • Rejestracja:około 3 lata
  • Ostatnio:około 6 godzin
  • Postów:812
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.


Programujący korpo architekt chmurowy.
Udzielam konsultacji i szkoleń w obszarze szeroko pojętego cloud computingu (Azure, AWS) i architektury systemów IT. Dla firm i prywatnie.
DevOps to proces nie stanowisko.
CP
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:103
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ć.


Bierzcie i pożywajcie się wiedzą
SO
  • Rejestracja:ponad 10 lat
  • Ostatnio:12 miesięcy
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? ;)

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 4 godziny
  • Postów:5108
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.

edytowany 2x, ostatnio: WeiXiao
SO
W pytaniu o poziom nie chodziło mi o umiejętności tylko o warstwę w której się poruszamy. Osoby które wymieniłeś to raczej bezpieczeństwo niskopoziomowe (analiza exploitow, malware, bezpieczeństwo aplikacyjne itp.).
SE
  • Rejestracja:prawie 6 lat
  • Ostatnio:12 dni
  • Postów:321
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.

edytowany 3x, ostatnio: Seken
WeiXiao
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. ciekawa opinia, zważywszy na to że ludzie którzy je wygrywają (ctftime) mają dość dużo związku z programowaniem ;)
SE
@1a2b3c4d5e: no ale właśnie czy to dzięki programowaniu je wygrywają? Ja skłaniałbym się ku stwierdzeniu, że są to raczej wszechstronnie wykształceni wymiatacze z długim stażem, więc siła rzeczy z programowaniem też mieli/mają styczność.
WeiXiao
imo to napisałeś to w taki sposób że można odnieść wrażenie że bez programowania też mógłbyś robić te ctfy
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)