Top 10 ranjivosti LCNC aplikacija

Top 10 ranjivosti LCNC aplikacija

Top 10 ranjivosti low-code/no-code  aplikacija

Popularne low-code/no-code platforme na kojima i oni bez tehničkog zaleđa mogu razviti aplikacije imaju mnogo prednosti, ali i mnogo sigurnosnih zamki. Donosimo vam deset najčešćih ranjivosti tih aplikacija. 

Zašto biste htjeli koristiti takve aplikacije? Zato jer omogućuju izradu poslovnih aplikacija bez znanja programiranja, pružaju okolinu za izuzetno brzu izradu aplikacija te pokrivaju raznoliko područje primjene, omogućuju spajanje s raznim izvorima podataka kao što su Excel datoteke, baze podataka te prezentaciju putem web aplikacija na mobitelu ili tabletu kroz nekoliko klikova.

Kako bismo vam dočarali što su to LCNC aplikacije i zašto su korisne, idemo u izradu jedne na platformi Microsoft Power Apps.

 

Microsoft Power Apps

1. Kako bismo krenuli s izradom, potrebno je odraditi proces prijave ili registracije preko Microsoft Power Appsa. Nakon što se uspješno prijavite, trebali biste dobiti ekran kao na slici 1.

 

owaspSlika1.jpg

Slika 1. Početni ekran

 

2. Na odabiru nam je kako ćemo krenuti u izradu aplikacije. Brzim izborom na glavnom ekranu možemo odabrati početi s podacima (broj 1), dizajnom (broj 2), ili predloškom (broj 3). Detaljan izbor vidimo na lijevoj strani slike 2 u crvenom pravokutniku ili možemo iskoristiti umjetnu inteligenciju (Artificial Intelligence, AI).

Naš zadatak je izraditi LCNC aplikaciju koja prikazuje izvještaj troškova u organizaciji uz pomoć AI-ja. Krenimo redom! U polje na slici 1 pod brojem 4 upisujemo „Trebam aplikaciju koja prati troškove!“. Kako bismo pokrenuli proces izrade aplikacije, stisnemo na strelicu desno od broja 4, pričekamo koji trenutak, pa nam se prikaže prijedlog tablice s podacima koje ćemo unositi, a to vidimo na slici 3 unutar crvenog pravokutnika. Inicijalni prijedlog tablice nam nije odgovarao, pa smo tražili pomoć AI-ja. AI nam je kroz chat preimenovao prvi stupac (broj 1 na slici 2), dodao novi stupac sa statusom u kojem se trošak nalazi (broj 2) te popunio statuse (broj 3) kako ne bismo morali ručno. Kada smo zadovoljni s podacima, u donjem desnom kutu na slici 2 kliknemo Create app.

 

owaspSlika2.jpg

Slika 2. Tablica za aplikaciju

 

3. Pričekamo par trenutaka, pa će nam se prikazati sučelje kao na slici 3 gdje možemo vidjeti kako će aplikacija izgledati u produkcijskom radu. Na sučelju postoji mogućnost uređivanja, dodavanja i uklanjanja različitih polja za unos, kao i izgleda i povezivanja s drugim izvorima podataka. Ako smo zadovoljni s izgledom i svim ostalim postavkama aplikacije, možemo je isporučiti u produkcijski rad, a to radimo pritiskom na gumb koji pokazuje broj 1 na slici 3.

 

owaspSlika3.jpg

Slika 3. Izgled aplikacije

 

4. Bravo! Naša aplikacija je u produkcijskom radu i možete je vidjeti na slici 4. Zabavno i lagano, zar ne? Odmah su omogućeni unosi novih troškova što vidimo na broju 1. Na broju 2 vidimo odabir i prikaz detalja troška, pod brojem 3 uređivanje trenutno odabranog troška, a pod brojem 4 vidimo gumb za brisanje troška.

Vjerojatno ste jako uzbuđeni jer ste upravo izgradili aplikaciju za praćenje troškova bez znanja programiranja i to u vrlo kratkom roku - pet minuta! Dodali ste poslovnu vrijednost organizaciji, imali minimalne troškove i izuzetno kratak time-to-market, a uz to niste morali čekati procedure dodjela ljudi na svoj projekt te razna dopuštenja za korisničke račune i izvore podataka.

No svaka medalja ima dvije strane, a sada idemo vidjeti onu malo manje sjajnu. U nastavku ćemo proći kroz najčešće propuste kod izrada takvih aplikacija, a tu će nam pomoći organizacija OWASP (Open Worldwide Application Security Project) koja vodi popis deset najčešćih ranjivosti u LCNC aplikacijama.

 

owaspSlika4.jpg

Slika 4. Aplikacija u produkcijskom radu

 

LCNC-SEC-01:
Account Impersonation

U prvoj ranjivosti se pretvaramo da smo netko drugi. LCNC aplikacije često imaju ugrađene račune s višom razinom ovlasti (npr. creator). Zašto imaju ugrađene račune? Jer tako mogu donijeti poslovnu vrijednost brže nego da se uključuju pravi programeri i traže odgovarajuće razine ovlasti. Na slici

5 možemo vidjeti kako u LCNC aplikacijama poslovna osoba ugrađuje svoje korisničko ime i lozinku. Sve je u redu dok ta ista osoba i koristi tu aplikaciju, a problem nastaje kada tu aplikaciju poželi podijeliti s drugim kolegama. Izvana će sve izgledati dobro, aplikacija će tražiti korisničko ime i lozinku kolege kojem ste dali aplikaciju na korištenje, kolega će se uspješno prijaviti, no u pozadini će se koristiti vjerodajnice kreatora.

Sigurno se pitate se u čemu je problem? Kolega će zasigurno koristiti aplikaciju za svoj dio posla. Nažalost, ovdje ima više problema jer u svakoj organizaciji, a osobito većoj, postoje odjeli za sigurnost koji prate aktivnost nad raznom IT imovinom, npr. prate upite nad bazama podataka, pristupe raznim aplikacijama, servisima itd. Sada kad ste već podijelili aplikaciju s nekoliko osoba u organizaciji, odjel za sigurnost odjednom vidi da se vaš korisnički račun spaja više puta na dan/tjedan na neke baze podataka i aplikacije te pristupate podacima za koje nemate poslovno opravdanje. Stvari postaju sumnjive, a odjel za sigurnost počinje svoje istraživanje jer sumnjaju da je netko ukrao vaše vjerodajnice.

Zamislite iduću situaciju. Radite u prodaji i varijabilne plaće ovisi o realizaciji poslovnih prilika. Razumijete se u tehniku i pročitali ste o LCNC aplikacijama te ste željeli ubrzati neke procese. Podijelili ste aplikaciju s kolegama, a oni su oduševljeni jer vrijeme koje inače moraju utrošiti na prepisivanje s papira su preusmjerili na prodaju. Svi su sretni, prodaja raste. Na kraju mjeseca vi dobijete deset puta veću plaću dok ostali kolege minimum, jer nisu ostvarili ciljanu prodaju. Što se dogodilo? Sve prodaje su zapisane za identitet kreatora, odnosno na ugrađeni račun u LCNC aplikaciji.

Također, prisjetite se LCNC aplikacije s početka teksta - što mislite, kome će se bilježiti svi uneseni troškovi?

  • Kako se zaštititi?  Potrebno je pažljivo pročitati kako upravljati LCNC aplikacijama. Većina njih ima mogućnost konfiguriranja raznih načina rada kako bi izbjegle ugrađene korisničke račune.

 

owaspSlika5.jpg

Slika 5. Razmjene podataka i ugrađeni računi

 

LCNC-SEC-02:
Authorization Misuse

LCNC aplikacije se temelje na ugrađenim računima, a loša autorizacija se prirodno naslanja na njih te donosi nove probleme. U ovom slučaju račun je ugrađen, a problematika je u ovlastima koji taj korisnički račun ima. Primjera radi, neki administrator može kreirati LCNC aplikaciju za pregled plaća.

Inače svatko ima pravo na pregled svoje plaće, dok administrator može vidjeti sve, a s pomoću autorizacije ugrađenog računa sada svatko ima pravo vidjeti sve plaće. Zgodno, zar ne? Vratimo se i na primjer aplikacije koju smo izradili, tko sve može vidjeti troškove? U ovom slučaju, svi kojima ste podijelili poveznicu.

  • Kako se zaštititi? Proučavanjem dokumentacije za LCNC aplikacije, isključiti onaj odabir u checkboxu koji vas pita „Želite li ugrađeni račun?“. Postavljanjem minimalnih prava koja su potrebna za odrađivanje nekog zadataka, odnosno tzv. least privilege, kao i podizanjem svijesti o sigurnosti i mogućnostima LCNC aplikacija.

LCNC-SEC-03: Data Leakage
and Unexpected Consequences

Kao što i samo ime kaže, ovdje se radi o gubitku podataka. Suština ove ranjivosti je zaobilaženje organizacijskih kontrola koje sprečavaju gubitak podataka. Organizacija nije svjesna procesa u LCNC aplikacijama, pa se niti od njih ne može braniti.

Jednostavni primjer je aplikacija koju smo izradili, osoba koja se domogne poveznice i ima bilo koji Microsoft korisnički račun može vidjeti troškove koje organizacija ima. Već je i to dovoljno opasno, a zamislite da su neki povjerljiviji podaci.

Gubitak podataka je ozbiljan propust koji može imati ozbiljne posljedice – od financijskih do reputacijskih. U EU je i zakonski reguliran GDPR-om. U RH smo u svibnju 2024. bili svjedoci kako se dogodio gubitak od skoro dva i pol milijuna osobnih podataka (imena, adresa, OIB-ova) iz registra vlasnika automobila.

  • Kako se zaštititi? Educirati korisnike i nadzirati LCNC aplikacije i podatke koje one razmjenjuju te ih ograničavati po broju integracija.

LCNC-SEC-04:
Authentication and Secure Communication Failures

U ovom slučaju povezujemo se na treće strane, ali se povezujemo nesigurno. Umjesto sigurno s HTTPS-om (s je za secure odnosno enkripciju podataka u prijenosu) koristimo HTTP, umjesto SFTP (opet, s je za secure) koristimo FTP za prijenos podataka. Kada ne koristimo sigurne veze kao što su HTTPS ili SFTP, bilo koji napadač ili malo napredniji računalni korisnik (čitajte – zna koristiti Google ili ChatGPT) može pročitati podatke koje razmjenjujete, a sad zamislite da je treća strana portal za plaćanje odnosno Internet Payment Gateway (dalje IPG) na koje prosljeđujete brojeve kartice? Nije više toliko zabavno, zar ne?

  • Kako se zaštititi? Detaljno čitajte upute za korištenje takvih platformi, unutar organizacije pitajte za savjet svoj odjel za IT.

LCNC-SEC-05: Security Misconfiguration

Volite li dijeliti svoje lozinke javno? Naravno da ne, a tada nemojte ostavljati pretpostavljene konfiguracije u svojim aplikacijama. Identificirajte osjetljive podatke (adrese, bankovne kartice…), pa pažljivo pročitajte upute u LCNC aplikacijama kako kriptirati takve podatke u prijenosu i pohrani sa ciljem maksimalnog smanjenja rizika gubitka podataka. Poznat je slučaj gdje se nije ispravno dodala autentifikacija, pa je omogućeno anonimnim korisnicima pristup milijunima osobnih podataka (https://www.upguard.com/breaches/power-apps).

  • Kako se zaštititi? Čitati dokumentaciju i zatražiti pomoć stručne osobe ako niste sigurni kako će se aplikacija ponašati.

LCNC-SEC-06: Injection Handling Failures

Sjećate li se teksta iz VIDI br. 332 gdje smo obrađivali OWASP Top 10 ranjivosti? Zašto uopće pitam, naravno da se sjećate (ako se ne sjećate, brzo u svoje arhive, izvucite broj i osvježite znanje). Oni koji nažalost nisu stigli kupiti jer je časopis bio rasprodan, sada će dobiti jako kratki podsjetnik.

Uglavnom, to je ranjivost OWASP A03:2021 Injection primijenjena u LCNC aplikacijama.

Npr. aplikacija preuzima tekst koji potom sprema u bazu podataka bez provjere. Zlonamjerni korisnik u taj tekst može spremiti naredbu za SQL programski jezik koji tada može obrisati ili promijeniti podatke ili obrisati bazu podataka.

  • Kako se zaštititi? Ograničavati i provjeravati svaki ulazni parametar od krajnjeg korisnika u obliku strogo definiranih oblika unosa, npr. na stranici nuditi datum i brojeve umjesto slobodnog teksta ili s ponudom unaprijed definiranih vrijednosti - umjesto da se krajnjem korisniku daje unos u tekstualno polje, ponudite mu izbor u obliku padajućeg izbornika (slika 6). Edukacija zaposlenika se već podrazumijeva.

 

owaspSlika6.jpg

Slika 6. Moguća obrana od SQL injekcije

 

LCNC-SEC-07: Vulnerable and Untrusted Components

Ovdje se vraćamo na OWASP Top 10 A06:2021 - ranjive i stare komponente. Jedna od svrha programiranja jest da „ne izmišljate toplu vodu“, odnosno ako je netko već napisao kod, vi ćete taj kod ponovo upotrijebiti u obliku biblioteke. U LCNC aplikacijama je netko već napravio (ranjivu) komponentu te je podijelio sa cijelom zajednicom developera. Zamislite da imate integraciju s IPG-om iz prethodnih primjera i zaštitili ste podatke u prijenosu HTTPS vezom, ali uvođenjem ranjive komponente podaci o kreditnim karticama vaših klijenata se šalju trećoj strani.

  • Kako se zaštititi? Provjeravati i skenirati komponente koje uvodite. Na slici 10 možete vidjeti kako pomoću Solution checkera (SC) možemo provjeriti aplikaciju Troškovi. SC radi sigurnosne provjere, provjerava kvalitetu koda, mogućnost gubitka podataka, performanse i konfiguraciju aplikacije.

LCNC-SEC-08: Data and Secret Handling Failures

U razvoju aplikaciju postoji puno tajnih podataka ugrađenih u kod - od vjerodajnica za pristup bazama podataka ili tokena za pristup servisima trećih strana. Tajnim podacima se treba upravljati na odgovarajući i siguran način, a postoje i standardi i zakoni (npr. GDPR) koji traže da na odgovarajući način njima upravljate. Primjeri osjetljivih podataka su lozinke, imena, adrese, financijski ili medicinski podaci, a njih zovemo podacima koji mogu identificirati osobu odnosno personal identifiable information (PII).

U razvoju LCNC aplikacija, citizen developer često sprema lozinke u baze podataka nekriptirano, čime omogućava pregled lozinka svih korisnika (detaljnije: https://www.darkreading.com/cyber-risk/3-ways-no-code-developers-can-shoot-themselves-in-the-foot).

  • Kako se zaštititi? Edukacija korisnika o tome kako upravljati podacima u prijenosu i mirovanju, osvještavanje korisnika da postoje zakoni kojih se moraju držati prilikom razvoja. Na slici 7 možemo vidjeti kako pokrenuti analizu aplikacije pomoću SC-a kako bi se maksimalno osigurali od gubitka podataka.

LCNC-SEC-09: Asset Management Failures

U većini zrelih IT organizacija postoji popis informacijske imovine koji je temelj za upravljanje i brigu o sigurnosti. Kada se informacijska imovina popisuje, definira se tko je njen vlasnik, njena kritičnost i može li narušiti kontinuitet poslovanja. Ako može, potrebno je definirati kako će se organizacija oporaviti (tzv. Business Continuity Plan).

Npr. poslovni korisnik razvije LCNC aplikaciju koja prenosi informacije o narudžbi u podsustav za financije. Korisnik ode iz organizacije, a u međuvremenu je došlo do promjene u modelu podataka te integracija više ne radi. Kako aplikacija ne postoji u inventaru, ne može je se pronaći i popraviti, pa ljudi troše stotine sati kako bi ručno prenijeli podatke.

  • Kako se zaštititi? Edukacija, a u ovom slučaju o potrebi upisivanja imovine u inventar IT imovine.

 

owaspSlika7.jpg

Slika 7. Provjera aplikacije

 

LCNC-SEC-10: Security Logging and Monitoring Failures

Bitna aktivnost u redovnom praćenju rada IT sustava je bilježenje dnevničkih zapisa. Bilježenje dnevničkih zapisa je standard u razvoju jer se na taj način upravlja IT sustavom, rješavaju greške i ostavlja revizorski trag (tko je bio prijavljen i koje je aktivnosti u sustavu poduzimao). U praksi, svi dnevnički zapisi se prikupljaju na zajedničku platformu gdje se automatizirano obrađuju i po potrebi ručno pregledavaju.

LCNC aplikacije često ne prikupljaju takve zapise ili zapisi nemaju dovoljnu količinu informacija, a tada se takvim sustavima ne može upravljati. Npr. kada se u aplikaciju pokušava prijaviti netko tko nema prava ili ako korisnik koji inače ima prava prouzroči neku grešku – sigurnosni tim to ne zna.

Opet, s druge strane, poslovni korisnik uključi prikupljanje dnevničkih zapisa jer je naučio da je to dobra praksa, ali nije čuo za GDPR regulativu, pa u svojoj aplikaciji traži broj kreditne kartice i to se zapiše u dnevničke zapise koji su sada dostupni svim sustavima koji agregiraju i analiziraju takve podatke.

Na slici 10 vidimo primjer Power Appsa gdje postoji centralno mjesto za pregled dnevničkih zapisa u stvarnom vremenu, a moguće ga je i spojiti na Azure Application Insights gdje uz dnevničke zapise možemo promatrati i performanse aplikacije (opterećenje CPU-a, RAM, postotak slobodnog diska…).

  • Kako se zaštititi? Zabraniti aplikativni pristup izvan organizacije, educirati korisnike o važnosti bilježenja dnevničkih zapisa, osvijestiti ih o PII podacima.

 

owaspSlika8.jpg

Slika 8. Nadzor dnevničkih zapisa

 

LCNC – da ili ne?

Neupitno je da LCNC aplikacije dodaju puno vrijednosti - smanjuju time-to-market, donose poslovnu vrijednost ranije, omogućavaju osobama koje nisu iz IT-a izradu aplikacija. S druge strane, IT vidi samo rizike - one narušavaju pažljivo kreirane sigurnosne, tehnološke, procesne i organizacijske mjere koje organizacije moraju poštivati da bi osigurale zahtjeve na sigurnost, a i uskladile se s raznim standardima i zakonima. Opet, neupitan je rast korištenja LCNC aplikacija u svijetu. Gartner predviđa da će 2026. godine 80% ljudi koji nisu iz IT-a u nekom dijelu sudjelovati u izradi LCNC aplikacija. Uzimajući to u obzir, organizacije trebaju kreirati sigurnosne politike imajući na umu LCNC aplikacije, a u prvom redu educirati ljude o načinu i posljedicama korištenja takvih aplikacija i podizati svijest o tome da je IT uvijek tu kao podrška i savjet poslovanju.

Popularne platforme za izradu LCNC aplikacija
Ako želite istražiti i druge LCNC platforme, u nastavku slijedi popis četiri najpopularnijih prema Gartneru:

  • Microsoft Power Apps
  • OutSystems
  • Appian
  • SalesForce Platform
Ocijeni sadržaj
(0 glasova)

// možda će vas zanimati

Newsletter prijava


Kako izgleda naš posljednji newsletter pogledajte na ovom linku.

Copyright © by: VIDI-TO d.o.o. Sva prava pridržana.