Kurs Web Cryptography and Security

Kriptografija ili šifrovanje predstavlja nauku koja se bavi transformacijom podataka u obično neprepoznatljiv oblik, uz mogućnost vraćanja u početni primenom različitih matematičkih operacija. Kada se lične, finansijske, vojne ili druge informacije od velike važnosti prenose putem interneta, one postaju meta zloupotreba. U takvim situacijama kriptovanje, ili šifrovanje, određene informacije čini nedostupnim neželjenoj strani.

Pojam kriptografije prvi put se javio još pre 3.000 godina kada su stari Egipćani i Indijci koristili primitivne oblike šifrovanja poruka korišćenjem metoda alternativnih jezika, poznatog samo malom broju ljudi.

Kriptografske nauke se razvijaju zajedno sa kompjuterima i direktno zavise od njihove brzine. Povećanjem brzine kompjutera, moguće je koristiti sve kompleksnije i sigurnije algoritme šifrovanja. Kao negativan efekat, povećava se i brzina razbijanja ključeva tzv. Brute force metodom, tako da se u poslednje vreme neophodna dužina ključeva povećava zajedno sa povećanjem same brzine kompjutera.

Danas kriptografija predstavlja jednu od osnovnih tehnologija koja se koristi za zaštitu informacija koje kruže internetom. Enkripcija se svakodnevno koristi kako bi zaštitila sadržaj na webu koji se razmenjuje između korisnika. Brojni kompleksni kriptografski sistemi omogućavaju kontrolu pristupa računarskim sistemima i razmenu digitalnog novca. Sve veća uloga kriptografije na webu učinila je ovu nauku veoma važnim delom IT sveta, pa ćete iz tog razloga na ovom kursu i imati priliku da steknete veštine koje se tiču šifrovanja podataka na internetu.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: PHP Web Development Program.

Opis i cilj kursa Web Cryptography and Security

Kurs analizira sigurnosne propuste na osnovnom i naprednom nivou, te pokazuje načine njihovog pronalaženja i rešavanja, kao i samo testiranje kreiranih rešenja kako bismo bili sigurni da je rešenje potpuno. U dva modula, unutar kursa se bavimo web sigurnošću, kao i web kriptografijom – što su dva važna aspekta kvalitetno kreiranog i sigurnog sajta. U sklopu web sigurnosti, obrađujemo teme koje se odnose na access control (pristup podacima, nivoi pristupa, sigurnost lozinki), code injection (napadi koji podrazumevaju ugrađivanje tuđeg koda unutar web stranice, poput SQL injection i cross-site scripting napada), data breach i data integrity opasnosti (očuvanje integriteta podataka prilikom rada sa njima, transporta, ali i samog čuvanja podataka), malware napade (napadi koji se odlikuju korišćenjem virusa, malwarea, ransomwarea), denial-of-service napade (koji se odlikuju zagušivanjem pristupa web stranici i onemogućavanjem njenog normalnog funkcionisanja), kao i sigurnost samih CMS sistema (na primeru WordPressa). 

Uz to, u sklopu web kriptografije obrađujemo same kriptografske tehnike i načine rada sa njima, pokazujući ih na primerima unutar PHP i JavaScript tehnologija, te se bavimo SSL/TLS kriptografijom, koja se tiče različitih aspekata web sigurnosti. 

Cilj ovog kursa jeste, pre svega, upoznati polaznike i polaznice sa tim šta je web sigurnost, koji su osnovni principi web sigurnosti, dokle se ona prostire (da li se odnosi samo na web i tehnologiju ili je fleksibilnija od toga), a zatim i sa samim konkretnim vrstama napada i načinima njihovog pronalaženja, rešavanja i testiranja unutar web stranice. Takođe, cilj je da se obrade glavne i najčešće sigurnosne teme kao što su access control (pristup podacima, nivoi pristupa korisnika sistema, lozinke, two-factor autentifikacija), code injection (ugrađivanje tuđeg koda unutar web stranice, SQL injection, cross-site scripting napadi), data breach i data integrity opasnosti (kako očuvati sam integritet podataka prilikom čuvanja, rada i transporta; blockchain primeri), malware napadi (virusi, malware, ransomware), denial-of-service (DoS) napadi (botnet mreže, pojedinačni i grupni napadi), kao i sigurnost unutar CMS sistema (na primeru WordPress CMS-a). 

Naučićete da obradite kriptografiju, što će vam ukazati na bitnost korištenja ovakvih sistema, koji su laki za korišćenje, a doprinose jako mnogo. Razumećete ovu problematiku i njenu važnost, kao i važnost ugradnje sigurnosnih mehanizama unutar sistema (pored dizajna i funkcionalnosti). Na kraju, cilj kursa jeste da se uvidi odnos dizajna, funkcionalnosti i sigurnosti, te kako balansirati sva ova tri aspekta web aplikacije.

Kurs Web Security and Cryptography će vam odgovoriti na pitanja:

1. Koji su to osnovni pojmovi koji se odnose na sigurnost na webu?

Neka od osnovnih pitanja na koja je potrebno odgovoriti da bismo generalno razumeli sigurnost u najopštijem smislu i sigurnost na webu jesu – šta je to zapravo sigurnost, šta je rizik, a šta napad? 

Sigurnost predstavlja zaštitu podataka i sistema od bilo koje neovlašćene, neautorizovane upotrebe, i to tako da sigurnost praktično bude „nevidljiva” za krajnjeg korisnika i da ga ne ometa u svakodnevnom korišćenju informacionog sistema. Rizik predstavlja veličinu (npr. procentualnu) mogućnosti da nastane neko oštećenje, tj. problem u informacionom sistemu. 

Suštinski, procenom rizika dobijamo sliku o tome koja je šansa da sistem bude kompromitovan; ova procena se vrši tako što ćemo uvideti koje pretnje postoje po sistem (pretnja – ko je protivnik sistema), koje su ranjivosti samog sistema (slabosti sistema) i sama vrednost sistema (koliko je sistem bitan, ali i, vrlo često, novčano vredan kao resurs). Napad predstavlja neku vrstu procesa, akcije, čiji je cilj da ugrozi sigurnost informacionog sistema kroz neku od njegovih komponenata.

2. Šta je access control i kako se manifestuje?

Prilikom planiranja izrade samog informacionog sistema, ali i samog procesa izrade informacionog sistema, potrebno je voditi računa o bitnoj stavci: ko ima pristup sistemu? Ovo pitanje se dalje grana na pitanja kao što su: Ko ima pristup kojem delu sistema? Kako se pristupa samom sistemu? Odakle se može pristupiti samom sistemu? i slično. Očigledno je da odgovori na ova pitanja definišu, u stvari, kakva je naša access control politika i kako ćemo to implementirati u našem sistemu. Najčešće, access control politika treba da bude takva da korisnici samog sistema imaju pristup samo onim delovima sistema (zajedno sa podacima, informacijama i znanjima) za koje su autorizovani.

3. Koje sve vrste napada postoje?

Napad predstavlja neku vrstu procesa, tj. akcije koja za cilj ima da ugrozi sigurnost informacionog sistema kroz neku od njegovih komponenata. Iako je ovo generička definicija, ona nam daje uvid u suštinu svakog napada. Konkretni napad, odnosno grupa napada koji se dešavaju na webu, zavisiće od kategorije napada. 

Gledajući po kategorijama, napade delimo na napade prekidanjem (za cilj ima da onemogući funkcionisanje konkretnog informacionog sistema – to je u suštini napad na raspoloživost usluge), presretanjem (vrsta napada u kojem se komunikacija između korisnika i samog sistema pokušava presresti kako bi se kasnije eksploatisala), izmenom (predstavlja vrstu napada čiji je cilj stvarna izmena podataka i oponašanje legitimnog korisnika kako bi se dobio pristup sistemu) i napad fabrikacijom (kreiranje i generisanje lažnih podataka i informacija ima za cilj komunikaciju sa sistemom i ubacivanje podataka u njega kroz neautorizovanog korisnika kao da je validan korisnik.)

Kurs Web cryptography and security

4. Šta je code injection i kako se manifestuje?

Jedan od vrlo čestih problema koje možemo sresti unutar uvezanih, web informacionih sistema jeste nedovoljna sigurnost i otpornost u odnosu na problem code injectiona, odnosno ubacivanja malicioznog koda unutar same aplikacije kroz legitimne načine, forme i elemente za unos. Ovaj problem se vrlo često ogleda u tome da developeri, ali i sami inženjeri ne vode dovoljno računa o samoj sigurnosti formi na webu koje su praktično glavni i osnovni (a suštinski i jedini) ulaz u samu aplikaciju što se tiče korisnika. 

Vrlo često se zaboravlja da korisniku nikada ne treba verovati. Iako ovo zvuči brutalno, svaka sigurnosna strategija se zasniva na tome da se nikome i ničemu ne veruje – odnosno, da ništa ne sme i ne treba biti prepušteno slučaju. U ovom kursu ćemo videti načine kako da saniramo manifestacije ovog problema kao što su SQL injection i cross-site scripting napadi, odnosno kako da uklonimo mogućnost da se oni dese.

5. Kako očuvati integritet podataka prilikom unosa, rada, transporta i čuvanja u bazi podataka?

Čuvanje integriteta podataka prilikom unosa, obrade, transporta i čuvanja samih podataka ogleda se u zaštiti svih nivoa zajedno. Sve počinje od mesta gde se podaci unose, a završava na mestu gde se podaci čuvaju, što u suštini znači da, ako je jedna karika slaba, sistem vrlo verovatno poseduje neki propust koji je moguće eksploatisati. Generalno se prilikom unosa i rada od SQL injection napada, tj. XSS napada, štitimo belim i crnim listama, kontrolom korisnika i njihovog pristupa sistemu, kao i kontrolom samih prava na sistemu. 

Prilikom transporta, zaštita se ogleda u zaštiti komunikacije između dva subjekta koji komuniciraju (uglavnom klijent i server), što se praktično ogleda u industrijskom standardu zaštite putem SSL/TLS tehnologija koje aktiviraju HTTPS i kriptuju svu komunikaciju uz korišćenje digitalnih sertifikata izdatih od treće strane kao potvrda sigurnosti komunikacije. Samo čuvanje podataka se ponovo ogleda u korišćenju korisničkih uloga i definisanju kojim podacima korisnici imaju pristup, dizanju rada sa podacima na nivo aplikacije – bez direktnog pristupa, te korišćenjem backupa kao metode za duplikaciju podataka na neko sigurno eksterno mesto.

6. Šta su DDoS napadi i kako se zaštititi?

DoS napadi, odnosno denial-of-service napadi, spadaju u grupu napada kojima je cilj da odbiju dalje pružanje usluge regularnim korisnicima. U suštini, to su napadi na samu raspoloživost (availability) sistema. U svakom obliku ovog napada suština je da napadač šalje ogroman broj legitimnih zahteva samom serveru, čime ga zagušuje i onemogućava mu normalan rad i funkcionisanje.  

U većini slučajeva, ovakav napad izvršava jedna osoba sa jednog uređaja (IP adrese). Međutim, postoji i podvarijanta ovih napada, a to je distributed denial-of-service napad (DDoS), koji praktično radi isto – šalje ogroman broj legitimnih zahteva sa mnogo više uređaja, čime napad postaje dosta opasniji i znatno teži za prevenciju. 

Kako su DoS napadi praktično brute force napadi, neki delovi zaštite sistema na aplikacionom sloju predstavljaju donekle jednostavnu zaštitu samih formi, odnosno mesta ulaza u aplikaciju (login, registracija, zaboravljena lozinka) jednostavnim sistemima kao što su captcha sistemi. Takođe, zaštita je moguća i korišćenjem eksternih sistema kao što je Cloudflare. Cloudflare predstavlja online informacioni sistem koji korisnicima omogućava korišćenje CDN mreže (Content Delivery Network), zaštitu od DDoS napada, internet sigurnost i slično. Velika prednost Cloudflarea jeste to što se konfiguriše jednostavno, tako da se u mreži stavlja između samog korisnika i servera, te se tako onemogućava veliki broj napada i sigurnosnih pretnji.

7. Kakva je sigurnost unutar CMS sistema?

Content management system ili CMS predstavlja ideju kompletnog sistema za kreiranje i menadžment sadržaja (contenta) na webu. Praktično, sami napadi na sisteme koji nisu CMS su identične vrste napada koje se dešavaju i unutar ovih sistema. Najčešći napadi koji se dešavaju unutar CMS sistema su uglavnom napadi na njihove teme i plugine koji proširuju mogućnosti za stilizaciju i same funkcionalnosti.

Unutar CMS sistema postoji i jedna vrsta sigurnosnog rizika koja uglavnom ne postoji kada je reč o informacionim sistemima kreirani od nule, tj. ručno, custom. Takve napade zovemo usputnim napadima, odnosno napadima koji imaju za cilj da eksploatišu poznate sigurnosne propuste na svim web stranicama koje sadržavaju takav propust unutar tema i plugina. 

Načini zaštite su uglavnom zaštita od samih SQL Injection i XSS napada, kontrola korisničkih naloga i pravilno postavljene korisničke uloge, kao i pravovremeno ažuriranje samog jezgra CMS sistema, tema i plugina na njihove najnovije verzije. 

Takođe, moguće je zaštititi se i koristeći plugine kao što su Hide My WP i Wordfence unutar WordPress CMS sistema, koji nam omogućavaju skrivanje opštepoznatih putanja, firewall, skeniranje sistema za propustima, dvoslojnu autentifikaciju i slično.

Plan i program predavanja:

1. Web Security

  • Uvod u security i web security
  • Access control problematika
  • Code injection
  • Data breach i data integrity opasnosti
  • Malware napadi
  • Denial-of-service napadi
  • Sigurnost unutar CMS-a

2. Cryptography

  • Uvod u kriptografiju i tehnike kriptografije
  • Hash algoritmi i enkripcija unutar PHP i JavaScript tehnologija
  • SSL/TLS kriptografija 

Polaznici kursa web cryptography and security

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok je otvoren!

Da saznate sve o upisu, kliknite ovde