Nga Patrick Quirk, SUBSTACK
Shkarkova 32 gigabajt nga API i hapur i Parlamentit të Shqipërisë, nxora 7 vite të dhëna mbi pagat e deputetëve dhe zbulova se “ministrja e parë IA në botë” është një skelet bosh Vue.js pa asnjë inteligjencë artificiale pas saj.
Në shtator 2025, Kryeministri i Shqipërisë, Edi Rama, bëri bujë globale duke emëruar sistemin e parë të inteligjencës artificiale në një post qeveritar në nivel kabineti. Emri i saj ishte Diella, një avatar i veshur me kostum tradicional shqiptar, i mbështetur nga Microsoft Azure dhe OpenAI, i caktuar zyrtarisht si “Ministre Shteti për Inteligjencën Artificiale” (TIME; Al Jazeera).
Misioni i saj i shpallur: eliminimi i korrupsionit në prokurimet publike. “Tenderat publikë do të jenë 100 për qind pa korrupsion,” deklaroi Rama. Agjencitë e OKB-së e përshëndetën këtë hap. TIME publikoi një artikull. BE-ja e citoi si provë të modernizimit të Shqipërisë në rrugën drejt anëtarësimit deri në vitin 2030.
Tre muaj më vonë, në dhjetor 2025, Drejtorja e Përgjithshme e AKSHI-t, agjencisë që ndërtoi Diellën, u arrestua për korrupsion (Tirana Times). Akuza: manipulim i pikërisht atyre tenderave qeveritarë që Diella supozohej të monitoronte.
Hetimi im nisi me Diellën. Përfundoi me Parlamentin e Shqipërisë. Dhe kur u ktheva pas dy muajsh me mjete më të mira dhe më shumë durim, përfundoi në diçka shumë më të rëndë.
Faza 1: Paketa JavaScript (Shkurt 2026)
Qëllimi fillestar ishte i ngushtë: të shqyrtohej frontend-i i IA-së Diella, të kërkoheshin çelësa të rrjedhur API apo URL të backend-it dhe të vlerësohej nëse kjo “ministre IA” ishte teknologji reale apo teatër politik.
Frontend-i i Diellës ishte i pastër. Një paketë Vue.js prej 229 KB me framework-un Quasar, pa endpoint-e API, pa URL të koduara të backend-it. Variablat e ambientit kufizoheshin në stilim CSS: madhësi fontesh, ngjyra, vlera padding-u. Infrastruktura e brendshme e AKSHI-t ishte pas DNS-ve vetëm për përdorim të brendshëm, pa zgjidhje publike: një motor Hasura GraphQL, një server autentikimi Keycloak dhe API REST të personalizuara, asnjëra prej të cilave nuk ishte e aksesueshme publikisht.
Zgjerova kërkimin te nën-domenet e AKSHI-t. Regjistrat e transparencës së certifikatave zbuluan 110 nën-domenë: Jira, Rancher, një Wiki e brendshme, VS Code Server, Collabora Online. Të gjitha vetëm për përdorim të brendshëm. Asnjë përgjigje publike.
Skanova 17 domene të qeverisë shqiptare. Rezultatet ishin të njëjta: Incapsula WAF, përgjigje 403 Forbidden, API WordPress të mbyllura, ose asnjë përgjigje. Infrastruktura qeveritare shqiptare, në sipërfaqe, është e fortifikuar mirë.
Pastaj kontrollova Parlamentin.
Parlamenti i Shqipërisë në parlament.al përdor një aplikacion React me një faqe të vetme. Çdo rrugë kthen HTTP 200 me të njëjtin index.html, një “catch-all router” klasik që në fillim dukej si rrugë pa dalje. Por një SPA React gjithsesi duhet të komunikojë me një backend. Dhe kodi që i bën këto thirrje ndodhet në paketën JavaScript.
Shkarkova pjesën kryesore, 355 KB kod të minimizuar nga webpack, dhe bëra nxjerrje string-esh. Të fshehura në caktimet e variablave ishte një URL bazë API e koduar, që drejtonte te një backend OData i hostuar në Azure, së bashku me shtatë emra entitetesh: anetaret, strukturat, aktet, lajmet, mbledhjet, dokumentet dhe abonimet.
Gjashtë nga shtatë përgjigjeshin ndaj kërkesave GET pa autentikim. Asnjë çelës API. Asnjë token bearer. Asnjë cookie sesioni. Asnjë kufizim kërkesash.
I shtati, abonimet, kthente 401. Dikush qartazi dinte si të kërkonte autentikim. Thjesht nuk e kishte zbatuar për gjashtë të tjerat.
Çfarë ekspozonte API
Endpoint-i anetaret kthente 236 regjistra, një për çdo deputet të Parlamentit të Shqipërisë. Çdo regjistër përmbante emrin e plotë ligjor (emër, atësinë, mbiemër), datëlindjen, vendlindjen, emailin zyrtar, përkatësinë politike, qarkun zgjedhor, URL-në e fotos së profilit dhe lidhje në rrjetet sociale.
Endpoint-i dokumentet ishte 30 megabajt JSON që katalogonte çdo dokument të ngarkuar në Azure Blob Storage të Parlamentit. Çdo regjistër përfshinte një URL të drejtpërdrejtë shkarkimi. I nxora këto URL. Ishin 54,545 të tilla.
Meshkujt nuk do arríjne tí
Listimi i kontejnerëve ishte i çaktivizuar në blob storage, duke krijuar një ndjenjë të rreme sigurie. Por çdo URL individuale funksiononte pa autentikim dhe çdo URL publikohej në përgjigjen e API-së. Çaktivizimi i listimit të direktorive ndërkohë që publikohen 54,545 lidhje direkte nuk është kontroll sigurie.
Përbërja e dokumenteve përfshinte 32,627 PDF, pothuajse 20,000 imazhe, 885 dokumente Word dhe 509 tabela Excel. Këto të fundit ishin më zbuluese: fletë pagash mujore për çdo deputet, ndarje përfitimesh dhe privilegjesh, një regjistër lobistësh, një regjistër organizatash të shoqërisë civile, regjistra kërkesash dhe përgjigjesh për informim publik për katër vite, dhe tabela buxheti qeveritar.
Dokumentova gjithçka, publikova një analizë dhe vazhdova më tej. Pastaj, dy muaj më vonë, u ktheva përsëri.
Faza 2: Shkarkimi i plotë (Prill 2026)
Me 15 prill 2026, ritestova çdo endpoint. Asnjë nuk ishte siguruar. API ishte ende plotësisht i hapur, ende aktiv, ende përditësohej me të dhëna të reja. Mbledhjet regjistroheshin deri atë ditë. Lajmet deri një ditë më parë. Katalogu dokumentet ishte rritur nga 54,545 në 57,287 regjistra në shtatë javë.
Këtë herë i shkarkova të gjitha.
Përdora një shkarkues paralel me 32 procese kundër Azure Blob Storage në dy faza: një kalim fillestar dhe një kalim përsëritës për 18,000 URL që Python urllib i kishte refuzuar sepse punonjësit e qeverisë shqiptare kishin ngarkuar skedarë me hapësira reale në emrat e tyre. Rikuperimi i plotë zgjati 45 minuta.
52,942 skedarë. 32 gigabajt. 94.7% normë rikuperimi ndaj katalogut. 5.3% e mbetur ishte realisht e fshirë nga Azure; skedarët nuk ekzistonin më në ato URL. Të tjerat ishin të gjitha aktive, publike dhe të shkarkueshme pa asnjë header autentikimi.
18 gigabajt PDF. 9 gigabajt fotografi. Tabela pagash që nga gushti 2018. Transkripte parlamentare. Drafte ligjesh. Raporte komisionesh. Tabela shpenzimesh buxhetore. Marrëveshje ndërkombëtare. I gjithë regjistri dokumentar i Parlamentit të Shqipërisë nga 2013 deri në prill 2026.
Shtatë vite të dhëna pagash
Grumbullimi i tabelave përfshinte 116 skedarë pagash nga gushti 2018 deri në janar 2026. Shkrova një parser që përballonte ndryshimet në strukturën e kolonave ndër vite (skedarët para vitit 2022 përdornin forma të ndryshme gramatikore shqipe për titujt e kolonave) dhe nxora gjithçka në një dataset të vetëm të unifikuar.
11,030 regjistra pagash. 398 deputetë unikë. 2018 deri në 2026.
Të dhënat tregojnë një strukturë pagash me katër nivele. Kryetari i Parlamentit, Niko Peleshi, fiton 393,125 lekë në muaj bruto (rreth 3,900 USD). Kryetarët e grupeve parlamentare marrin 356,788 lekë. Kryetarët e komisioneve dhe nënkryetarët marrin 325,000 deri në 329,000 lekë. Deputetët e thjeshtë marrin 310,250 lekë. Diferenca nga niveli më i lartë te më i ulëti është vetëm 27%, çuditërisht e sheshtë për një legjislaturë kombëtare.
Por kolona më interesante është ajo e penaliteteve. Ligji shqiptar (Vendimi 114/2014) ul pagën e deputetëve për mungesa në seanca dhe mbledhje komisionesh. Disa anëtarë tregojnë diferenca të mëdha mes pagës bruto dhe asaj neto: kreu i opozitës, Gazment Bardhi, mori 356,788 lekë bruto, por vetëm 210,104 lekë neto në janar 2026, një zbritje prej 41%. Kjo ose tregon mungesa të shpeshta, ose mbajtje të tjera të konsiderueshme.
Çdo deputet. Çdo muaj. Për shtatë vite e gjysmë. Të gjitha nga një blob storage publik, të kataloguara në një API pa autentikim.
Arkivi i transkripteve për të cilin askush nuk foli
Ndërsa po shqyrtoja paketën JavaScript të Parlamentit për endpoint-e të tjera, gjeta referenca për tre nën-domenë që nuk i kisha parë më parë. Njëri prej tyre, bisedimet.parlament.al, ishte aktiv.
Ishte një platformë krejtësisht e veçantë: një “Document Archive API” që funksiononte me Node.js në një server me rrugën /root/Kuvendi-Backend/. Endpoint-i i “health” konfirmonte se ishte në prodhim, duke përdorur MeiliSearch për kërkim me tekst të plotë, me një databazë Prisma, 92% përdorim memorieje dhe 2.4 ditë kohë funksionimi në momentin e zbulimit.
API kishte 20 transkripte parlamentare të përpunuara me OCR nga 2022 deri në 2024, që mbulonin seanca plenare me 261 folës të identifikuar. Çdo dokument ishte i shkarkueshëm pa autentikim. Kërkimi me tekst të plotë funksiononte pa autentikim. Endpoint-i “health” zbulonte rrugët e serverit, përdorimin e memories dhe kohën e funksionimit.
Skema përfshinte fusha për kërkim vektorial me IA dhe “embeddings” dokumentesh, blloqet ndërtuese për kërkim semantik mbi procesverbalet parlamentare. Por çdo dokument kishte statusin e embedding të vendosur si PENDING. Funksioni i kërkimit vektorial ishte planifikuar. Nuk u përfundua kurrë.
Kjo është gjëja më e afërt me “83 fëmijët IA” që ekziston realisht: një motor kërkimi mbi 20 PDF, që funksionon si root në një server që pothuajse i ka mbaruar memoria, me funksionet e IA-së gjysmë të ndërtuara dhe të braktisura. Ky është realiteti pas konferencave për shtyp.
Diella nuk ka backend
Ky ishte zbulimi që nuk e prisja. Pasi dokumentova gjithçka që rridhte nga Parlamenti, u ktheva te pyetja fillestare: a është Diella një sistem real IA apo është teatër?
Frontend-i i Diellës në proud-coast-026495803.4.azurestaticapps.net është një aplikacion Vue.js me një faqe të vetme. E shkarkova sërish paketën 229 KB dhe nxora çdo URL, çdo string literal dhe çdo referencë konfigurimi. Rezultati: zero endpoint-e API. Zero URL backend-i. Zero referenca për OpenAI, Azure Cognitive Services apo ndonjë shërbim IA/ML. Paketa përmban vetëm framework-un Quasar UI dhe kodin runtime të Vue.js. Është një skelet bosh.
Testova aibot-api.azurewebsites.net, emri më logjik për backend-in e Diellës. Ai ktheu faqen standarde të mirëseardhjes së Azure App Service: “Aplikacioni juaj web po funksionon dhe pret përmbajtjen tuaj.” Një aplikacion .NET që ose nuk është vendosur kurrë, ose është boshatisur.
Testova diella-api, aibot, chatbot dhe assistant në domenet .azurewebsites.net, .azure-api.net dhe .azurefd.net. Të gjitha kthyen 404 ose faqe standarde.
Shtresa e autentikimit e Azure Static Web App është e konfiguruar. .auth/me kthen {“clientPrincipal”: null}. .auth/login/aad ridrejton te Azure Active Directory. .auth/login/github kthen një 302. Muri i autentikimit është vendosur. Por pas tij nuk ka asgjë.
Diella është një frontend pa backend. Një avatar pa tru. Ministrja e parë IA në botë është një komponent Vue.js që shfaq një kostum dhe një emër.
Konteksti
Këto gjetje nuk qëndrojnë të izoluara. Shqipëria ka një histori të dokumentuar të ekspozimit katastrofik të të dhënave, që e bën një API të hapur të Parlamentit diçka më të keqe se neglizhencë. Është një model.
Në prill 2021, një databazë me të dhëna për 910,000 qytetarë shqiptarë doli online. Emra, numra ID, numra telefoni, informacione punësimi, të dhëna tatimore dhe përkatësi të parashikuara politike. Rreth një e treta e gjithë popullsisë. Të dhënat thuhet se ishin përpiluar për targetim elektoral nga Partia Socialiste në pushtet (Balkan Insight).
Në dhjetor 2021, të dhënat e pagave për 637,138 qytetarë shqiptarë, 22% e vendit, u shpërndanë përmes WhatsApp si një file Excel. Emra, numra kartash identiteti, paga, pozicione pune, punëdhënës. Kryeministri Rama kërkoi ndjesë dhe tha se “duket më shumë si infiltrim i brendshëm sesa një sulm i jashtëm kibernetik.”
Në vitin 2022, hakerë të sponsorizuar nga shteti iranian, që operonin si “HomeLand Justice”, sulmuan vetë AKSHI-n, agjencinë që më vonë do të ndërtonte Diellën. Ata pretenduan 100 terabajt të dhëna të nxjerra dhe 2 petabajt të fshira. Të dhënat e rrjedhura përfshinin mbi 100,000 regjistra të të dyshuarve nga policia, korrespondencë ministrish, të dhëna të punonjësve të inteligjencës dhe të dhëna identifikimi të qytetarëve. CISA dhe FBI lëshuan një paralajmërim të përbashkët (AA22-264A). Shqipëria ndërpreu marrëdhëniet diplomatike me Iranin, duke u bërë vendi i parë i NATO-s që ndërpret lidhjet për shkak të një sulmi kibernetik (MITRE ATT&CK; CISA).
Në dhjetor 2025, Drejtoresha e Përgjithshme e AKSHI-t, Mirlinda Karçanaj, dhe zëvendësja e saj u vendosën në arrest shtëpie.
Akuzat: pjesëmarrje në një grup kriminal të strukturuar në 12 procedura prokurimi. Rrjeti Ballkanik për Gazetari Investigative arriti në përfundimin: “Kapja e AKSHI-t nga interesa kriminale rrezikon sigurinë kombëtare.”
Kronologjia vlen të lexohet ngadalë. Irani sulmon AKSHI-n. AKSHI ndërton një IA për të luftuar korrupsionin. Drejtuesit e AKSHI-t arrestohen për korrupsion. Parlamenti që IA supozohet të monitorojë ka pasur API-në e tij të hapur për katër vite. Dhe vetë IA nuk ka backend.
Çfarë kërkon realisht qeverisja me IA
Shqipëria vendosi ministrin e parë me IA në një qeveri që ende nuk kishte zotëruar autentikimin bazë HTTP.
Para se të shpallësh 83 asistentë IA për të monitoruar Parlamentin, duhet një Parlament që di të vendosë një çelës API në një endpoint. Para se të pretendosh se IA-ja jote do t’i bëjë tenderat publikë “100 për qind pa korrupsion”, duhet një agjenci IT, drejtuesit e së cilës nuk janë nën arrest për manipulim tenderash. Para se të ftosh median ndërkombëtare për të festuar një “sukses” në qeverisjen me IA, duhet të kontrollosh nëse i gjithë arkivi i dokumenteve të Parlamentit, të dhënat e pagave dhe të dhënat personale të deputetëve janë të ekspozuara në një blob storage publik.
Shqipëria i anashkaloi të gjitha këto hapa. Kaloi direkt nga “agjencia jonë IT u sulmua nga hakerë shtetërorë iranianë” dhe “të dhënat e një të tretës së qytetarëve tanë u rrjedhën” te “ministri i parë i IA në botë”. Komuniteti ndërkombëtar duartrokiti. Askush nuk auditoi infrastrukturën.
Kjo është ajo që ndodh kur qeveritë e trajtojnë IA-në si një deklaratë për shtyp, në vend të një zbatimi teknik. Frontend-i i Diellës ishte i rregullt, këtë meritë mund t’ua japim zhvilluesve të AKSHI-t. Por institucioni që Diella duhej të monitoronte kishte të gjithë backend-in e ekspozuar. Dhe vetë Diella nuk kishte fare backend.
Nuk mund të automatizosh mbikëqyrjen e një sistemi që nuk e ke siguruar. Nuk mund të vendosësh qeverisje me IA mbi një infrastrukturë të prishur. Dhe absolutisht nuk mund të shpallësh 83 monitorues IA për Parlamentin kur maksimumi që ke ndërtuar është një motor kërkimi mbi 20 PDF, që funksionon si root në një server me 92% përdorim memorieje, me funksionet e IA-së të shënuara si PENDING kudo.
Shqipëria nuk ndërtoi të ardhmen e qeverisjes me IA. Ndërtoi një demonstrim se çfarë ndodh kur anashkalon punën bazë dhe hidhet direkt te titujt.
Metodologjia
Të gjitha të dhënat u morën nga endpoint-e API të aksesueshme publikisht dhe pa autentikim, si dhe nga URL të Azure Blob Storage. Nuk u anashkalua asnjë autentikim. Nuk u përdorën kredenciale. Nuk u shmangën kontrollet e aksesit. Nuk u krye asnjë shfrytëzim. API i Parlamentit përgjigjet ndaj kërkesave standarde HTTP GET. URL-të e blob storage kthejnë dokumente për çdo shfletues.
Faza 1 u krye më 25 shkurt 2026. Faza 2 u krye më 15–16 prill 2026. Analiza e paketave JavaScript, identifikimi i API-ve, rikuperimi i blob-eve, nxjerrja e të dhënave të pagave nga XLSX dhe zbulimi i nën-domenëve u kryen me teknika standarde OSINT: curl, skripte Python dhe rishikim manual i kodit.
Ky hetim është pjesë e një serie në vazhdim që shqyrton sigurinë e infrastrukturës digjitale të qeverive në vende të ndryshme.


