Korištenje AST-a u tijeku rada i sigurnosnom kodiranju

Zadnje ažuriranje: 7 travnja 2026
  • Korištenje apstraktnih sintaktičkih stabala omogućuje modeliranje i vizualizaciju softverskih radnih procesa, olakšavajući njihovu validaciju, prenosivost i automatiziranu analizu.
  • Rješenja za testiranje sigurnosti aplikacija (SAST, DAST, IAST, MAST, SCA, RASP i ASTO) pokrivaju različite faze životnog ciklusa aplikacije kako bi otkrila i ublažila ranjivosti.
  • Statička analiza koda i napredne tehnike protoka informacija zahtijevaju internalizaciju koda u kvalitetnom AST-u, prevladavajući sintaktičke i semantičke dvosmislenosti.
  • Paralelno s tim, automatizacija procesa s RPA i analizom sigurnosti na radu primjenjuje istu filozofiju raščlanjivanja tokova kako bi se poboljšala sigurnost, učinkovitost i kontrola.

Korištenje AST-a u kodu tijeka rada

Kada govorimo o AST-u u kodu tijeka rada , zapravo spajamo nekoliko svjetova koji su, iako naizgled različiti, sve više međusobno povezani: tradicionalni softverski inženjering , sigurnost aplikacija, automatizacija procesa s RPA, generiranje koda s umjetnom inteligencijom i, zanimljivo, čak i prevencija profesionalnih rizika. Sve se vrti oko toga kako modeliramo, analiziramo, automatiziramo i osiguravamo tijekove rada koji upravljaju složenim sustavima.

Apstraktna sintaksna stabla (AST) postala su ključni alat za razumijevanje i transformaciju koda, automatizaciju revizija, generiranje testova, jačanje sigurnosti, pa čak i grafičko predstavljanje poslovnih tijekova rada. Istovremeno, akronim AST obuhvaća koncepte poput testiranja sigurnosti aplikacija i analize sigurnosti posla, koji ukazuju na drugu temeljnu ideju: uzimanje tijekova rada (softverskih ili ljudskih) i podvrgavanje istih sustavnoj analizi kako bi se otkrili nedostaci, rizici i prilike za poboljšanje.

AST kao apstraktno sintaktičko stablo u tijekovima rada i generiranju koda

U razvoju prilagođenog softvera, korištenje apstraktnih sintaktičkih stabala (AST) omogućuje vam prelazak s neprozirnog koda na vizualne i razumljive strukture koje točno opisuju logiku tijeka rada. AST rastavlja program na čvorove koji predstavljaju operacije, kontrolne strukture, pozive funkcija, podatke i odnose među njima, tako da logika prestaje biti "labavi redovi koda" i postaje navigacijski graf.

Ovaj prikaz je posebno koristan pri upravljanju agentima umjetne inteligencije ili distribuiranim arhitekturama, gdje su tijekovi rada složeni i teško ih je mentalno pratiti. Transformacijom koda tijeka rada u AST (Automatska analiza softvera) moguće je generirati dijagrame koji intuitivno prikazuju grane odlučivanja, ovisnosti komponenti, redoslijed izvršavanja i kritične točke procesa, olakšavajući razvoj, pregled i donošenje tehničkih odluka.

Tvrtke specijalizirane za prilagođeni softver, poput Q2BSTUDIO , koriste ova sintaksna stabla kako bi transformirale složene tijekove rada u pristupačne, vizualno jasne i, prije svega, funkcionalno korisne dijagrame. Ne radi se samo o "crtanju okvira", već o strukturiranom modelu koji se može koristiti za poboljšanje algoritama, identificiranje uskih grla, lociranje logičkih pogrešaka i postavljanje temelja za buduće optimizacije.

Velika prednost AST-a u ovom kontekstu je što je neovisan o konačnom programskom jeziku . Iz istog stabla, tok se može kompajlirati ili transformirati u različite jezike ili platforme (na primjer, različita okruženja za izvršavanje u oblaku poput AWS-a ili Azurea), uz održavanje dosljedne poslovne logike. To omogućuje fleksibilnije, prenosivije i održivije arhitekture, gdje je jezgra procesa definirana apstraktno, a izvršni kod je kontrolirana derivacija.

Druga ključna točka je ponovna upotreba čvorova unutar AST-a . Moguće je definirati logičke blokove (na primjer, validacije unosa, obrasce pristupa podacima ili mehanizme revizije) koji se ponovno koriste kao sigurne i već validirane komponente. Ako su ti čvorovi poznati i umjetnoj inteligenciji koja generira kod, ona ih može referencirati umjesto da ih izmišlja od nule, što uvelike povećava sigurnost i konzistentnost generiranog softvera.

AST i generiranje značajki uz pomoć umjetne inteligencije: sigurnost, valjanost i povjerenje

Pojava AI modela koji generiraju kod otvorila je novo područje : kako možemo vjerovati funkcijama koje je napisala AI bez ručnog pregledavanja svakog retka? Dobro rješenje nije izravno zahtijevati "izvršni kod", već strukturirani prikaz logike pomoću AST-a (Automatic Support Tool), koji se zatim validira i pretvara u kod pomoću pouzdanog alata.

Radom s AST-ovima umjesto s običnim kodom , umjetna inteligencija generira čvorove, operacije, kontrolne strukture i tokove podataka koji se mogu automatski analizirati: tipovi, putovi izvršavanja, konzistentnost parametara, rukovanje pogreškama, granični uvjeti i druga svojstva provjeravaju se prije nego što dođu do kompajlera ili interpretera. Ovaj filter drastično smanjuje rizik izvršavanja zlonamjernog ili jednostavno netočnog koda.

Q2BSTUDIO i druge organizacije koje istražuju ove tehnike stavljaju poseban naglasak na osiguravanje da se logika generirana umjetnom inteligencijom može pratiti i provjeriti. AST (Automated System Analysis - Automatizirana analiza sustava) postaje "posredna istina" na koju se primjenjuju sigurnosna pravila, standardi kvalitete, interne politike i analize utjecaja. Dakle, svaka generirana funkcija uklapa se u biblioteku sigurnih čvorova, koristeći prethodno revidirane elemente.

Ovaj pristup također otvara vrata višenamjenskim izradama : iz istog AST-a može se generirati kod u različitim jezicima (na primjer, Python za mikroservise, C# za interne servise ili specijalizirani skripti za orkestratore u oblaku). Za tvrtke koje rade u hibridnim ili višeoblačnim okruženjima ovo je posebno atraktivno jer osigurava da je poslovni tok konzistentan bez obzira na konačni stog.

Konačno, korištenje višekratno upotrebljivih čvorova unutar AST-a omogućuje izgradnju certificiranih „logičkih biblioteka“. Umjesto izmišljanja obrazaca pristupa bazi podataka, sigurnosnih validacija ili tragova zapisivanja, umjetna inteligencija ih konstruira od tih gradivnih blokova, poboljšavajući i sigurnost i performanse te olakšavajući naknadnu analitiku u alatima poput Power BI-a ili drugih platformi za poslovnu inteligenciju.

AST primijenjen na inteligentno testiranje u Pythonu i maksimalnu pokrivenost koda

AST je također osnova naprednih automatiziranih rješenja za testiranje , kao što su određeni alati otvorenog koda za Python koji koriste strukturu koda za generiranje testnih paketa s puno većom pokrivenošću nego što se obično postiže ručnim pisanjem.

Ova vrsta alata kombinira tri glavne mogućnosti : automatsko generiranje jediničnih testova za određenu Python datoteku, vođeno fuzziranje za podvrgavanje kritičnih funkcija ekstremnim i deformiranim ulazima te generiranje testova orijentirano na pokrivenost, gdje se AST temeljito analizira kako bi se locirale sve moguće grane, petlje, uvjeti i putovi iznimaka.

Ključno je da alat gradi AST (Analog Test Asset) Python koda i iz njega identificira putove izvršavanja koji još nisu pokriveni testovima. S tim informacijama, zadaje AI modelu (na primjer, Gemini) stvaranje testnih slučajeva posebno dizajniranih za aktiviranje svakog puta. Zatim izvršava testove i mjeri pokrivenost alatima poput coverage.py, čime se zatvara automatizirani ciklus kontinuiranog poboljšanja.

  JetBrains Junie: Pomoćnik za kodiranje koji pokreće AI

Ovaj pristup ne generira samo početnu seriju testova ; omogućuje iteraciju i poboljšanje. Ako nakon prvog kruga još uvijek postoje rute koje nisu testirane, one se ponovno ispituju pomoću AST-a (Napredni testni test) i od umjetne inteligencije se traže novi slučajevi. To čini proces prilagodljivim i novom kodu i naslijeđenim kodnim bazama s malo ili bez prethodnog testiranja.

Projekt je postavljen kao MCP (Model Context Protocol) poslužitelj , pa funkcionira kao lokalna usluga koja se može pozvati iz editora ili naredbenog retka. Korištenje BAML-a osigurava da generirani testni kod pridržava preciznog formata, da ga je lako analizirati i da ne prekida alate za kontinuiranu integraciju koji ga koriste.

AST kao analiza sigurnosti na radu: sigurni tokovi u radnom okruženju

Pod istim akronimom AST nalazimo još jedan široko korišten koncept u prevenciji rizika na radu: Analiza sigurnosti na radu. Iako djeluje na drugačijoj razini od koda, dijeli s apstraktnim sintaktičkim stablima ideju raščlanjivanja toka (u ovom slučaju ljudskih zadataka) u faze, identificiranja rizika i definiranja kontrola prije izvršenja.

Analiza sigurnosti na radu je preventivni proces koji se primjenjuje prvenstveno na aktivnosti visokog rizika, kao što su rad na visini, upravljanje složenim strojevima ili rukovanje opasnim tvarima. Tijek rada podijeljen je u korake, a za svaki korak identificiraju se specifične opasnosti, procjenjuje se razina rizika i određuju se kontrolne mjere (OZO, signalizacija, upute za hitne slučajeve itd.).

Ključne prednosti procjena sigurnosti na radnom mjestu uključuju smanjenje broja nesreća, poboljšanu usklađenost s propisima, povećanu operativnu učinkovitost i ojačanu sigurnosnu kulturu. Jasna raščlamba poslova smanjuje improvizaciju, sprječava prekide zbog incidenata i smanjuje troškove povezane s ozljedama, kaznama ili prekidima proizvodnje.

Tipičan postupak provođenja JSA u radnom okruženju uključuje: točno definiranje zadatka i njegovog konteksta (okoliš, oprema, materijali), podjelu na faze, identificiranje opasnosti i rizika u svakoj fazi (padovi, izloženost kemikalijama, zarobljavanja, kvarovi opreme), uspostavljanje specifičnih kontrolnih mjera, komunikaciju i obuku uključenih radnika te provođenje kontinuiranog praćenja i praćenja radi prilagodbe analize ako se uvjeti promijene.

Da bi ova analiza bila uistinu učinkovita, preporučljivo je koristiti matrice rizika, kontrolne liste i, sve više, digitalne alate koji olakšavaju dokumentiranje, praćenje i sljedivost poduzetih mjera. Konzultantske tvrtke poput GMS Consultinga integriraju ove Analize sigurnosti na radu (JSA) u sustave upravljanja kao što je ISO 45001, pomažući organizacijama da prođu interne i eksterne revizije i održe ciklus kontinuiranog poboljšanja sigurnosti i zdravlja na radu.

Testiranje sigurnosti aplikacija (AST): SAST, DAST, IAST, MAST i više

U području kibernetičke sigurnosti, AST se obično odnosi na testiranje sigurnosti aplikacija (Application Security Testing) , odnosno skup tehnika i alata usmjerenih na otkrivanje ranjivosti u modernim aplikacijama, prilagođavajući se agilnim metodologijama i rastućoj složenosti softvera.

AST rješenja su temelj svakog robusnog AppSec programa jer su ručni pregledi koda i tradicionalni planovi testiranja spori i ne prilagođavaju se dobro stalnoj pojavi novih ranjivosti. Nadalje, brojni propisi i regulatorni okviri (kao što je PCI-DSS, između ostalog) izričito nalažu korištenje takvih alata.

Unutar testiranja sigurnosti aplikacija danas možemo razlikovati nekoliko glavnih kategorija : statičku analizu (SAST), dinamičku analizu (DAST), interaktivne i hibridne tehnike (IAST), testiranje specifično za mobilne aplikacije (MAST) i druge komplementarne usluge kao što su SCA, RASP, otkrivanje aplikacija, testiranje kao usluga ili alati za korelaciju i pokrivenost.

Statička AST (SAST) tehnologija analizira kod u stanju mirovanja (izvorni kod, bajtkod ili binarni kod) tijekom faza programiranja i testiranja životnog ciklusa razvoja softvera. Smatra se testom "bijele kutije" jer analitičar ima pristup i kodu i dizajnu aplikacije. Ovi alati traže slabosti poput numeričkih pogrešaka, problema s validacijom ulaza, uvjeta utrke, nesigurnih referenci, prelijevanja i tako dalje.

S druge strane, dinamička AST (DAST) tehnologija fokusira se na pokrenutu aplikaciju , obično u kontroliranim testnim ili produkcijskim okruženjima. Simulirani napadi pokreću se izvana kako bi se otkrili problemi poput injekcija, neuspjeha autentifikacije, lošeg upravljanja sesijama, pogrešaka sučelja ili problema s rukovanjem odgovorima. To je pristup "crne kutije", gdje se ne pretpostavlja poznavanje internog koda.

IAST tehnologije kombiniraju najbolje od SAST-a i DAST-a . Aplikacija je instrumentalizirana (na primjer, s agentom u JVM-u ili .NET CLR-u) kako bi se promatralo njezino ponašanje iznutra dok se izvode dinamički testovi. To omogućuje korelaciju tokova podataka i izvršavanja, razumijevanje je li teorijska ranjivost zapravo iskoristiva i smanjenje lažno pozitivnih rezultata provjerom nalaza u hodu.

MAST, ili testiranje sigurnosti mobilnih aplikacija , primjenjuje kombinaciju statičke, dinamičke i forenzičke analize posebno na iOS i Android aplikacije, uključujući njihove pozadinske komponente. Ova rješenja posvećuju posebnu pozornost scenarijima kao što su rootani ili otključani uređaji, lažne Wi-Fi mreže, nepravilno upravljanje certifikatima, curenje osjetljivih podataka i druge karakteristike mobilnog okruženja.

Dodatne usluge: SCA, RASP, otkrivanje, baze podataka i orkestracija ASTO-a

Mnogi pružatelji AST usluga proširili su svoju ponudu ključnim komplementarnim uslugama kako bi pokrili cijeli ekosustav sigurnosti aplikacija i upravljanja rizicima kibernetičke sigurnosti , od sastavljanja softvera do baze podataka i orkestracije svih alata.

Analiza sastava softvera (SCA) usredotočuje se na identificiranje komponenti trećih strana i komponenti otvorenog koda uključenih u aplikaciju i njihovu usporedbu s poznatim bazama podataka o ranjivostima kao što su NIST NVD, CVE i komercijalni repozitoriji poput VulnDB-a. Ovi alati mogu otkriti zastarjele verzije ili one s čekajućim sigurnosnim zakrpama, ali obično ne identificiraju ranjivosti u vlastitom kodu aplikacije.

RASP (Runtime Application Self-Protection - Samozaštita aplikacije za vrijeme izvršavanja) ide korak dalje s instrumentacijom, koristeći tehnike slične IAST-u za praćenje pokrenute aplikacije i blokiranje napada u stvarnom vremenu, na neki način konkurirajući tradicionalnim WAF-ovima. Mnogi timovi počinju aktiviranjem instrumentacije samo u dijagnostičke svrhe (IAST način rada) i, nakon što su sigurni u rezultate, prelaze na RASP način rada s učinkovitim blokiranjem napada.

  End-to-end enkripcija u Gmailu: cjelovit i praktičan vodič

Također je relevantna mogućnost otkrivanja aplikacija , koja analizira web ekosustav organizacije i locira sve izložene stranice i usluge, uključujući one koje su zaboravljene, ali ostaju potencijalna ulazna točka.

Na razini podatkovnog sloja , alati za analizu sigurnosti baze podataka pregledavaju verzije, zakrpe, konfiguracije, lozinke, pravila pristupa i druge ranjivosti, kako za podatke u mirovanju, tako i, u nekim proizvodima, za podatke u tranzitu. To je ključno jer mnoge ranjivosti koje se mogu iskoristiti proizlaze iz lošeg upravljanja bazom podataka, a ne iz nedostataka u kodu aplikacije.

Model ASTaaS (Application Security Testing as a Service) prepušta dio ili cijeli proces sigurnosnog testiranja specijaliziranom pružatelju usluga, kombinirajući statičku i dinamičku analizu, testiranje penetracije, evaluaciju API-ja i analizu rizika. Posebno je atraktivan u cloud okruženjima, gdje je postavljanje i skaliranje testnih okruženja jednostavnije.

Kako bi se nosili s poplavom nalaza iz više alata, pojavila su se rješenja za korelaciju rezultata i analizatori pokrivenosti. Prvi ujedinjuju i daju prioritet ranjivostima otkrivenim različitim rješenjima kao što su SAST, DAST, IAST, MAST itd., dok drugi mjere koji je postotak koda ili logičkih grana zapravo testiran, pomažući u uspostavljanju prihvatljivih pragova kvalitete i otkrivanju koda koji se ne može testirati.

Konačno, Orkestracija testiranja sigurnosti aplikacija (ASTO) predlaže integriranje svih ovih alata na koordiniran način unutar životnog ciklusa razvoja softvera (SDLC) i CI/CD cjevovoda, s centraliziranim upravljanjem politikama, izvršavanjima i izvještavanjem. Iako je još uvijek područje u razvoju, ono se bavi potrebom za automatizacijom sigurnosnog testiranja koliko god je to moguće bez usporavanja tempa isporuke.

Sigurnosno orijentirana statička analiza izvornog koda: standardi, tehnike i izazovi

Statička analiza izvornog koda s fokusom na sigurnost sve je veći zahtjev za organizacije koje žele uskladiti se sa standardima sigurnog razvoja i najboljim praksama. Okviri poput CLASP-a, OpenSAMM-a, Touchpointsa i Microsoft SDL-a eksplicitno integriraju ovu fazu u životni ciklus razvoja, pojačavajući koncept "sigurnosti po dizajnu".

Metodologije poput OWASP-a i sigurnih SDLC okvira pružaju konkretne smjernice za provođenje statičke analize, definiranje kriterija pregleda, iskorištavanje rezultata i mapiranje nalaza u odnosu na mjerila poput OWASP Top 10 (XSS, SQL Injection, File Inclusion itd.). Postojeći SAST alati - i komercijalni i otvorenog koda - uvelike se oslanjaju na teoriju kompajlera, AST i analizu toka informacija kako bi iz koda izvukli korisno znanje.

Među osnovnim tehnikama možemo spomenuti napredni grep (traženje uzoraka i mogućih tajni u običnom tekstu), provjeru uvlačenja i strukture, analizu toka podataka za praćenje životnog vijeka varijable od njezine definicije do njezine upotrebe, propagaciju konstanti za procjenu utjecaja nepromjenjivih vrijednosti i analizu pseudonima ili pokazivača za razumijevanje neizravnih referenci u jezicima niske razine.

Na razini klasifikacije nalaza , korisno je razlikovati greške (odstupanja između onoga što je programer namjeravao i onoga što softver zapravo radi), kršenja najboljih praksi ili jezičnih pravila (neidealan kod) i ranjivosti, shvaćene kao podskup problema s utjecajem na sigurnost. Dio koda može biti i greška i kršenje, a ipak se ne može iskoristiti zbog dodatnih sigurnosnih slojeva.

Glavni izazov je taj što su mnogi popularni SAST alati (kao što su PMD, SonarQube ili FindBugs) više usmjereni na kvalitetu koda nego na čistu sigurnost, a njihov puni potencijal se ostvaruje kada se integriraju od samog početka projekta, što se ne događa uvijek. U okruženjima gdje se revidira postojeći kod - često napisan od strane trećih strana - ovi alati mogu zakazati, što čini nužnim izradu prilagođenih analizatora prilagođenih potrebama tima.

Proces izgradnje statičkog analizatora obično je organiziran kao cjevovod: počevši s izvornim kodom (generirani kod, binarne datoteke ili strojni kod nisu uključeni u ovu kategoriju), provodi se proces internalizacije kako bi se stvorio apstraktni model vjeran izvornom kodu (obično obogaćeni AST), izvode se modeli entiteta i izvršenja, primjenjuju se tehnike analize i konačno se generiraju izvješća. Kvaliteta cijelog procesa kritično ovisi o fazi internalizacije.

Internalizacija i generiranje AST-a: frontendi, gramatike i dvosmislenosti

Faza internalizacije ima za cilj prevesti izvorni kod u strukturu kojom parser može upravljati, obično AST ili sličan graf. To se može postići korištenjem frontendova postojećih kompajlera (kao što su GCC za C, Mono za .NET ili Eclipse JDT za Javu), koji pružaju provjerene i učinkovite strukture.

Međutim, oslanjanje na ove frontendove ima nedostatke . Mnogi su dizajnirani za integraciju s IDE-om, zahtijevaju stvaranje dodatnih projekata i konfiguracija te generiraju modele usmjerene na interakciju s korisnikom, a ne na analizu velikih razmjera. Nadalje, često rade na prethodno obrađenom kodu (na primjer, C s riješenim makroima), što može uzrokovati odstupanja od izvornog koda prilikom prijavljivanja pogrešaka.

Kada ove opcije nisu dovoljne , postaje nužno pribjeći klasičnim tehnikama teorije kompajlera: konstruiranju gramatika, definiranju parsera alatima poput ANTLR-a, Bisona ili Flexa, ili čak programiranju kombinatora parsera ili rješenja temeljenih na PEG-u. To zahtijeva duboko razumijevanje sintakse i semantike jezika koji se obrađuje.

Uobičajeni problemi u ovoj fazi uključuju sintaktičke dvosmislenosti (izraze koje gramatika može interpretirati na nekoliko valjanih načina), kontekstualno ovisne ili semantičke dvosmislenosti (npr. razlikovanje predstavlja li fragment deklaraciju množenja ili pokazivača) i razlučivanje referenci (znanje u svakoj upotrebi koja se varijabla, tip ili član zapravo referencira).

U složenim jezicima poput C++ ili u mješovitim okruženjima - na primjer, ASPX s C#, Android s Javom/Dalvikom - ove se dvosmislenosti množe. Čak i napredni IDE-ovi pokazuju pogreške u bojanju ili prepoznavanju simbola u teškim fragmentima, što ilustrira razinu teškoće za one koji grade vlastite alate za analizu.

Zaključak je da ne postoje čarobna rješenja : potrebno je savladati gramatiku, semantiku, memorijski model jezika, pravila razlučivanja imena i imati vrlo jasan cilj analize, jer se lako izgubiti u detaljima implementacije koji ne dodaju vrijednost reviziji ili slučaju upotrebe koji se provodi.

Napredne tehnike analize: tokovi informacija i modeli izvršenja

Nakon što su postavljeni robusni interni modeli (AST, memorijski i modeli izvršavanja) , započinje stvarna faza analize. Ovdje je ključna analiza toka podataka, proučavajući kako se informacije šire kroz aplikaciju od nepouzdanih izvora (korisnički unosi, datoteke, utičnice itd.) do potencijalno opasnih odvoda ( SQL upiti , sistemske naredbe, nepristupačno HTML renderiranje itd.).

  Što je RootkitRevealer: Kako radi, kako ga koristiti i znakovi rootkitova

Analiza toka omogućuje proučavanje svih mogućih putova izvršenja koji povezuju ulaz s ranjivom točkom, i naprijed i natrag, što je bitno za tehnike analize oštećenja. Zahtijeva precizno razumijevanje memorijskog modela jezika i implicitnih mehanizama propagacije (prenošenje po vrijednosti ili referenci, zatvaranja, nepromjenjivi objekti, niti itd.).

Također je potrebno modelirati ili uključiti ponašanje biblioteka trećih strana , budući da se veliki dio poslovne logike i ulaznih/izlaznih točaka nalazi u njima. Ako se to ne uzme u obzir, analize mogu generirati veliki broj lažno pozitivnih ili, još gore, lažno negativnih rezultata koji ostaju nezapaženi.

Ilustrativan primjer je analiza aplikacije ranjive na SQL injection : kod se može činiti jednostavnim, ali analizom inserata može se vidjeti kako se parametar kojim upravlja korisnik širi kroz nekoliko funkcija dok ne dođe do konstrukcije upita, koja se izvršava bez odgovarajuće parametrizacije. Bez detaljnog modela toka i memorije, te je ovisnosti teško automatski otkriti.

Drugi, složeniji slučaj uključuje dijeljene statičke varijable, povratne pozive ili događaje , gdje vrijednost koja doseže odvod ovisi o prethodnim izvršavanjima ili manje očitim putovima. Ovdje nam model izvršavanja - koji predstavlja stanja, prijelaze i kontekste - u kombinaciji s AST-om omogućuje da sastavimo slagalicu i izvučemo pouzdane zaključke o sigurnosti koda.

Iako ove tehnike uvode dodatne izazove , poput međujezične analize ili točne procjene izraza u vrlo dinamičnim okruženjima, one donose izvrsnu kvalitetu rezultatu: manje pogrešaka u interpretaciji, brže procese nakon što je infrastruktura izgrađena i standardizirani okvir koji se može prilagoditi različitim projektima i tehnologijama.

Automatizacija radnih procesa s RPA u AST-u (Aragonske telematske usluge)

Osim analize koda, tijekovi rada optimiziraju se i u javnoj upravi putem tehnologija robotske automatizacije procesa (RPA). Ilustrativan primjer je Aragonesa de Servicios Telemáticos (AST), javni subjekt koji pruža ICT usluge vladi Aragona i djeluje kao telekomunikacijski operater za autonomnu zajednicu.

AST upravlja širokim katalogom digitalnih usluga - upravljanjem dokumentima, elektroničkim potpisom, platnim sustavima, poslovnom inteligencijom, infrastrukturom prostornih podataka, hostingom aplikacija, radnim stanicama, povezivošću i uslugama s dodanom vrijednošću - te se susreo s kritičnim uskim grlom: ručnim procesom izrade računa, koji je trošio veliku količinu vremena i resursa u vrlo koncentriranim razdobljima.

Kako bi se riješio ovaj izazov, angažiran je Hiberus , koji je predložio rješenje temeljeno na RPA-u koristeći UiPath. Pristup je slijedio strukturirani slijed: stvaranje specijaliziranog agilnog centra (RPA konzultanti, arhitekti, programeri, testeri), savjetovanje o procesima za identifikaciju automatiziranih podataka, sustava i tijekova rada, razvoj PDD dokumenta s funkcionalnom definicijom, te odatle, izgradnja okruženja i razvoj rješenja.

Automatizacija je uključivala integraciju s korporativnom platformom za digitalni potpis , ključnim sustavom za potpisivanje računa, pa čak i dodavanje sustava upozorenja koji je nedostajao izvornom alatu. Implementirana su razvojna i produkcijska okruženja, a proveden je i specifičan plan testiranja usmjeren na predprodukcijske sustave, što je AST-u omogućilo validaciju robota bez utjecaja na njegove svakodnevne operacije.

Nakon validacije, rješenje je implementirano u produkciju , iskorištavajući prednosti UiPath-ovih prednosti: sposobnost automatizacije složenih i procesa velikog obujma, niske zahtjeve za programiranjem, jednostavnost horizontalnog skaliranja, brzinu razvoja, ugrađeni sustav obavještavanja i mogućnost zaustavljanja izvršavanja ako se otkriju bilo kakvi problemi.

Projekt je završen detaljnom obukom za AST osoblje , zajednički pripremljenim korisničkim priručnicima i praktičnim vježbama kako bi se osiguralo da menadžeri mogu samostalno upravljati alatom, prilagođavati postavke i razumjeti rezultate bez stalnog oslanjanja na dobavljača.

Kvantitativni rezultati bili su vrlo značajni : u dvomjesečnom razdoblju generirano je preko 500 računa, 60% više nego prethodne godine, a vrijeme po računu palo je s 10 minuta na približno 2, što predstavlja smanjenje prosječnog vremena obrade od 80%. Srednjoročno se predviđaju uštede stotina sati ručnog rada, uz kvalitativne koristi poput uklanjanja ljudskih pogrešaka, veće agilnosti u ponovnom slanju računa, povećane produktivnosti i boljeg usklađivanja s ciljevima naplate.

Sa strateškog gledišta , ovaj pilotni RPA projekt usklađen je s AST-ovim planom uvođenja robotske automatizacije procesa i automatiziranih administrativnih postupaka unutar aragonske uprave. Nadalje, poslužio je za pregled i pojašnjenje poslovnih pravila u procesu fakturiranja, poboljšanje razmjene informacija među dionicima i identificiranje novih procesa koji bi se mogli automatizirati u sljedećim fazama.

Uzevši sve u obzir, cijela ova slika pokazuje kako je koncept AST-a , u svojim različitim značenjima, u središtu poboljšanja tijeka rada: modeliranje programske logike korištenjem apstraktnih sintaktičkih stabala za inteligentan razvoj i testiranje, ispitivanje sigurnosti aplikacija specijaliziranim alatima, raščlanjivanje radnih zadataka radi uklanjanja rizika ili orkestriranje robota koji se brinu o repetitivnim zadacima kako bi se ljudi mogli usredotočiti na aktivnosti veće vrijednosti.

razvoj sigurnosti
Povezani članak:
Sigurnost u razvoju softvera i DevSecOps