5 osnovnih programskih jezika za profesionalce u sajber bezbednosti

Baby Yoda

Contributor
Poruka
21.755
Profesionalci u cyber bezbednosti koji prvi put žele da nauče kodiranje suočavaju se sa pomalo zastrašujućim pitanjem: Koji jezik treba da uče? Danas se koriste desetine popularnih programskih jezika, a odabir polazne tačke može biti ogroman zadatak. Pet ih smatram važnim elementima modernog alata za kibernetičku sigurnost:

sap_article_009.jpg

  • Python
  • Shell scripting
  • HTML
  • JavaScript
  • SQL
1. Python
Zašto ti treba
. Python je savremeni "radni konj" programskih jezika. Kao član grupe jezika poznatih kao jezici opšte namene, otkrićete da u Python-u možete izvršiti gotovo bilo koji zadatak razvoja softvera, i iz tog razloga je neverovatno popularan. Ako ćete učiti samo jedan jezik, ovo je definitivno mesto za početak. Python-ov kod leži ispod površine mnogih popularnih alata za cyber bezbednost i lako je koristiti Python za automatizaciju većeg dela vašeg rada.

Kako to naučiti. Najbolji način za učenje Python-a je kombinacija vodiča i primera. Preporučio bih da započnete sa osnovnim vodičem za Python, poput onih dostupnih na learnpython.org ili CodeAcademy. Odatle počnite da gledate neki Python kod koji su napisali drugi. Možda postoje primeri u vašem radnom okruženju ili možete pokušati da napišete Python skriptu koja radi sa uobičajenim alatom za cyber-sigurnost, kao što je Nmap.

2. Shell scripting
Zašto ti treba. Shell skriptiranje koristi mnoge iste naredbe koje možda već koristite u terminalskim sesijama na odabranom operativnom sistemu i omogućava programerima da napišu automatizovane skripte kako bi izvršili mnoge rutinske zadatke. Treba vam brz način da obezbedite račune i odobrite odgovarajući pristup? Tražite način za brzu automatizaciju sigurnosnog zaključavanja konfiguracije sistema? Shell skripte je mesto za traženje. Ako koristite Linuk ili Mac OS, želećete da naučite jedan od Linuk skriptnih jezika ljuske, kao što je Bash. Ako ste Windows pro, zaronite u PoverShell skriptovanje.

Kako to naučiti. Ako ste spremni da naučite skriptiranje ljuske, prvo što morate učiniti je da se zadovoljite osnovnim alatima komandne linije dostupnim za vaš OS. Odatle možete započeti nizanje nekih osnovnih skripti prateći primere u uobičajenim vodičima o Linuk skriptama ljuske ili PoverShell-u.

3. HTML
Zašto ti treba
. Ovde sam malo prevario. HyperText Markup Langugage (HTML) nije strogo programski jezik. Tehnički gledano, to je markup jezik. Ali to je jezik koji se koristi za stvaranje web stranica širom Interneta. HTML je osnovna veština za profesionalce u kiberbezbednosti, jer se toliko vrsta napada vrti oko HTML koda. Ako napadači žele da napišu SQL injekcijski napad ili ugrade zlonamernu skriptu u web lokaciju, to će učiniti pomoću HTML-a. Ako želite da budete u mogućnosti da analizirate te napade, moraćete da razumete HTML.

Kako to naučiti. Srećom, HTML je prilično jednostavan jezik za učenje, a osnove možete pokupiti za nekoliko sati. Razlog tome je što HTML kao jezik za označavanje započinje običnim tekstom, a zatim koristi niz elemenata koda poznatih kao oznake za formatiranje tog teksta i uključivanje ostalih elemenata web stranice, kao što su slike i ugrađeni video. W3Schools nudi besplatni HTML vodič koji će vas začas pokrenuti i pokrenuti. Odatle učite na primeru. Posetite stranice širom Weba i pogledajte njihov izvorni HTML kod. Možete da ispitate rad veštih veb programera i naučite kako su napravili vaše omiljene lokacije u HTML-u.

4. JavaScript
Zašto ti treba
. Iako HTML čini osnovu web stranica, JavaScript im pruža njihovu snagu. JavaScript kod se široko koristi za uključivanje spoljnih elemenata, praćenje aktivnosti korisnika i izvršavanje mnogih drugih veb zadataka. To je takođe jezik koji se koristi u mnogim napadima na aplikacije zasnovane na Internetu, poput skriptiranja na više lokacija. Ako želite da postanete analitičar upada, definitivno ćete morati imati malo JavaScript iskustva.

Kako to naučiti. Kao i kod ostalih kodirajućih jezika, neke osnovne JavaScript možete pokupiti u vodičima dostupnim sa bilo koje stranice, poput onih na W3Schools . Od tada, odličan način da počnete da učite kako se to koristi u praksi je da jednostavno pogledate JavaScript koji se koristi na bilo kojoj veb lokaciji koju posetite. Pogledajte izvor web stranice i potražite JavaScript kod, pokušavajući da utvrdite svrhu i nameru koda. To je potpuno ista veština koju profesionalci za sajber bezbednost koriste kada žele da izvrše reverzni inženjering JavaScript-a u divljini.

5. SQL
Zašto ti treba
. Strukturirani jezik upita (SQL) je jezik relacionih baza podataka. Administratori baze podataka, programeri i krajnji korisnici pišu upite u SQL-u za preuzimanje, umetanje, ažuriranje i brisanje podataka uskladištenih u tabelama baze podataka. Napadači takođe koriste ovaj jezik za krađu osetljivih informacija, ometanje skladišta podataka i preduzimanje niza napada zasnovanih na mreži. Ako želite da razumete aktivnosti napadača i sprečite SQL ubrizgavanje i druge napade povezane sa bazom podataka, trebat će vam barem osnovno razumevanje SQL-a.

Kako to naučiti. Srećom, nije previše teško naučiti SQL. Ako na poslu imate pristup relacionoj bazi podataka, njegovo istraživanje je odličan način za početak. Ako nemate pristup, mnogi vodiči zasnovani na Internetu pružaju vam mogućnost praktičnog iskustva. Preporučujem kurseve dostupne na LinkedIn Learning i DataCamp.

Izvor: https://searchsecurity.techtarget.com/tip/5-essential-programming-languages-for-cybersecurity-pros
 
Zahvaljujem :D
Pa sad sto se C, C++ tice, vecno se vrti prica kako nesto drugo pokusava da ga zameni. Onda se vrti prica kako je stvari koje su do sada radjene u C bolje raditi u nekim drugim jezicima. Na kraju se sve svede na to da je C i dalje tu, gomila hardvera iz raznih oblasti koristi C, i mislim da ucenje C jezika nikad nije greska. Moj favorit je oduvek bio Python, u njemu sam poceo da radim i definitvno je odlican jezik. C mi je vise za automatiku, dok je Python za hakovanje. Ruby se ovde ne spopminje, ali najbolji hakerski programi su pisani u Python-u ili Ruby-u. Tako je metasploit napisan u ruby-ju, hakerski alat broj 1, wp-scan takodje, on pronalazi nepravilnosti na wordpress sajtu, zbog toga sam prestao da koristim PHP :D Sto se tice JavaScript, za onog ko pise malwere je nezaobilazni alat, preko web-a je nemoguce drugacije isporuciti malwer. Zato je JavaScript odlican u tom smislu da mozes svasta uraditi u njemu, dok se sa druge strane ne koristi na sajtovima koji zahtevaju maksimalnu bezbednost. Dakle moj spisak bi bio ovako nekako:

1. Python - svemoguc jezik, od elektronike, preko hakovanja do web-a (django)
2. Ruby - lak za pocetnike, odlican za hakere i web-development (rails je veoma siguran framework)
3. JavaScript - web-development, graficki interfejs
4. PHP - web development, treba znati raditi da izbegnes kriticni bag
5. GO - web i aplikacije
6. HTML - obavezno poznavanje makar osnova, realno lak je
7. C - aplikacije, dobar za mrezno programiranje npr (routing protokoli)

Redosled nije bitan, redjao sam kako mi je padalo na pamet. Ostali jezici su tu, ali bi ih preporucio nakon sto se savlada neki od gore navedenih. Ko zna da radi u C lako ce nauciti Ruby. Takodje ko zna Javu isto ce ga lako nauciti. Python je svemocan jezik realno, po mom misljenju mozda i najkompletniji, samo sto sam se ja opredelio za Ruby i radim samo njega, ostalo po potrebi. Nekako sam ljubitelj cistog koda, ruby kad citas kod je kao da citas knjigu, to je razlog zasto ne radim JavaScript i front-end :)

edit: kada je u pitanju bezbednost, izbacio bih PHP, jer jako puno bagova ima, osim ako zaista znate dobro da radite i konstantno nadogradjujete svoj sajt. U protivnom sql inekcije i XSS su veliki problem. Od najsigurnijih jezika bih izdvojio Python i GO, za web-dev Ruby on Rails.
 
edit: kada je u pitanju bezbednost, izbacio bih PHP, jer jako puno bagova ima, osim ako zaista znate dobro da radite i konstantno nadogradjujete svoj sajt. U protivnom sql inekcije i XSS su veliki problem. Od najsigurnijih jezika bih izdvojio Python i GO, za web-dev Ruby on Rails.
SQL inekcije su zbog toga sto se upucava sql upit direktno iz *web* querija, ne zbog PHP-a ;)
One su language agnostik ;)
 
Poslednja izmena:
Ovo je samo jedan artikl blogera. Postoje i drugi jezici poput PHP-a koji naveden, a ne razumem zašto. Naravno C i C++ su na top listi. Ali svako koga to zanima naučiće. S obzirom da imamo forumaša koji zna mnogo o ovome, pozvaću ga da nam se pridruži. @lnxdr
To su jezici koji su verovatno najinteresantniji za hakovanje sajtova ;)
 
Bio sam u zurbi pa nisam ocigledno dobro napisao sve. Linux mora da se zna, bez linuxa nema programiranja, bilo kog. Svakog ko koristi windows za nesto sto nisu igrice, pitao bih zasto zaboga :D Bash sam takodje preskocio, a bez bash-scripti nema linuxa. Sto se tice sql inekcija, jesu language agnostic, ali se zbog samog nacina rada u PHP-u, najvise dogadjaju na PHP sajtovima. Ruby on Rails je po default-u uradjen kao siguran od toga i XSS.
 
Zasto mislim da je Ruby najopasniji hakerski alat danas (ne mogu da izbacim Python, on je uvek vrh...):
Npr hoces da zalepis malware uz exe file, napises ruby kod i uz gem "ocra" dobijes exe file. Ili napravis ovakav malware i prilepis za uz neki exe da se zalepi uz svchost:

Svatam zasto je izmenjeno, ali ovaj kod ne moze da se iskoristi ni za sta. Mora mnogo da se preradi, a POC se koristi da razvijes zastitu, zato je ovo i napisano. Ali postujem odluku, samo da napomenem da nisam black-hat :D
 
Poslednja izmena:
Rade razvoj na Windows-u iz razloga zato što firme već imaju instaliran Windows i prinuđeni su. Kada sam radio u jednoj firmi OS je bio stvar izbora. Tada sam koristio Linux Fedora.
Firme su drugo, mislio sam kada licno imas izbor, pa izabares Windows. Zato uvek na pitanje koji je najbolji Anti-Virus ja odgovorim sa Linux.
Takodje, nasim malim preduzecima u zadnjih godinu dana radim besplatnu instalaciju linuxa i kurs za radnike, samo da prestanu placaju licencu windowsu a koriste samo excel.
:)
 
Svatam zasto je izmenjeno, ali ovaj kod ne moze da se iskoristi ni za sta. Mora mnogo da se preradi, a POC se koristi da razvijes zastitu, zato je ovo i napisano. Ali postujem odluku, samo da napomenem da nisam black-hat :D
Sve je okej dok se priča o cyber sigurnosti i govorimo koji se jezici koriste. Međutim, ako pređemo tu liniju i počnemo deliti sajtove koji podučavaju druge hakovanju, onda je to kršenje pravilnika. Možemo pričati o SQL Injection sve dok ne govorimo kako haker izvodi to. Ili ti da ne pokazujemo proceduru (koja je inače prosta i postoje alati za to).
 
Jasno, moja greska, zaboravih da ovo nije forum koji inace koristim, i da nisu svi kao ja znatizeljni da samo vide kako program radi. Ali kad smo kod sigurnosti, evo nekih stvari koje bih naveo, ali ovo je iz mog posta za penetration-testere:

  • Siguran OS - [Tails, Whonix, Qubes, Kali, Debian, Ubuntu…] - ili MAC
  • Sigurna VPN konekcija - [OpenVPN] - sopstveni VPN na VPS-u
  • Tor Project - [depend on your country, use bridges] - Proveris kako radi web sa raznih IP adresa
  • Proxy Software - [Proxychains] - za one programe koji ne podrzavaju proksi
  • Menjanje MAC adrese - [Macchanger] - obavezno u penetration testu
  • Image Metadata Remove - [MAT] - ja ne verujem nikom :)
  • OTR u porukama
  • RSA kljucevi 4096 bit

Sve ovo daje maksimalnu bezbednost, ali ljudski faktor je sklon greskama, tako da ostajem pri svome da je jedini siguran uredjaj onaj bez interneta.
 
Jasno, moja greska, zaboravih da ovo nije forum koji inace koristim, i da nisu svi kao ja znatizeljni da samo vide kako program radi. Ali kad smo kod sigurnosti, evo nekih stvari koje bih naveo, ali ovo je iz mog posta za penetration-testere:

  • Siguran OS - [Tails, Whonix, Qubes, Kali, Debian, Ubuntu…] - ili MAC
  • Sigurna VPN konekcija - [OpenVPN] - sopstveni VPN na VPS-u
  • Tor Project - [depend on your country, use bridges] - Proveris kako radi web sa raznih IP adresa
  • Proxy Software - [Proxychains] - za one programe koji ne podrzavaju proksi
  • Menjanje MAC adrese - [Macchanger] - obavezno u penetration testu
  • Image Metadata Remove - [MAT] - ja ne verujem nikom :)
  • OTR u porukama
  • RSA kljucevi 4096 bit

Sve ovo daje maksimalnu bezbednost, ali ljudski faktor je sklon greskama, tako da ostajem pri svome da je jedini siguran uredjaj onaj bez interneta.
Otvaraj teme i malo detaljnije o ovim stvarima. Pošto bi sigurno koristilo ljudima da nauče nešto više o sigurnosti na netu. :zimag:
 
Jasno, moja greska, zaboravih da ovo nije forum koji inace koristim, i da nisu svi kao ja znatizeljni da samo vide kako program radi. Ali kad smo kod sigurnosti, evo nekih stvari koje bih naveo, ali ovo je iz mog posta za penetration-testere:

  • Siguran OS - [Tails, Whonix, Qubes, Kali, Debian, Ubuntu…] - ili MAC
  • Sigurna VPN konekcija - [OpenVPN] - sopstveni VPN na VPS-u
  • Tor Project - [depend on your country, use bridges] - Proveris kako radi web sa raznih IP adresa
  • Proxy Software - [Proxychains] - za one programe koji ne podrzavaju proksi
  • Menjanje MAC adrese - [Macchanger] - obavezno u penetration testu
  • Image Metadata Remove - [MAT] - ja ne verujem nikom :)
  • OTR u porukama
  • RSA kljucevi 4096 bit

Sve ovo daje maksimalnu bezbednost, ali ljudski faktor je sklon greskama, tako da ostajem pri svome da je jedini siguran uredjaj onaj bez interneta.
Ako si stavio Mac po primeru sigurnosti onda si me razocarao ;)
Mac vole najvise da hakuju jer ljudi neiskusno nemaju nikakvu zastitu ;)
Windows ti je bezbedniji od Maca ;)
 

Back
Top