ITU-studerende scrapede åbne statsdata med python-script - og fik sin IP-adresse blokeret

Statens ambition om gennemsigtighed har langt fra fundet vej til it-systemerne, beretter studerende hvis datascraper blev forvekslet med et DDoS-angreb hos Moderniseringsstyrelsen.

At skabe gennemsigtighed i den offentlige sektor er en af ambitionerne med den relativt nye Moderniseringsstyrelse. Af samme grund har styrelsen lagt en lang række bevillinger og statsregnskaber frem til skue på internettet - til frit brug for nysgerrige borgere, medier og de offentlige institutioner.

Så langt så godt.

Hvis man har planer om at sætte dataen i system og bruge den i praksis, kan man dog hurtigt løbe ind i problemer, viser en beretning fra Jesper Henrichsen, der er i gang med sin kandidat i Software Engineering på ITU.

I december satte han sig for at lave en visualisering af indtægter og udgifter i finanslovens budget for 2017. Og det var lettere sagt end gjort:

'Desværre er siden lavet sådan, at når man ønsker at downloade dataen via "Download" knappen, så får man kun en csv fil med den aktuelle rapportstruktur og filtrering. Eftersom der, for hver finanslov, er godt 30 paragraffer på det øverste niveau og 6 niveauer i alt, så er det en yderst omstændig opgave at trække al data ud manuelt med denne metode,' forklarer Jesper Henrichsen i en mailkorrespondance med Version2.

Som det hører sig til for en datalog tyede den ITU-studerende i stedet til et python-script, der scraper dataen - et engangsudtræk, der ikke belaster styrelsen servere vedvarende, forsikrer Jesper Henrichsen.

Derfor blev han også forundret, da hans IP-adresse prompte blev blokeret.

Det samme skete med en server med egen IP-adresse og fra ITU. Begge gange blev scriptet blokeret inden det havde kørt færdigt.

'I sidste ende lykkedes det, ved at oprette en virtuel instans hos Amazon, at scrape finanslovsdata for perioden 2003 til 2017,' skriver Jesper Henrichsen og uddyber:

'Optimalt havde det været muligt blot at hente data med en enkelt forespørgsel. I stedet har jeg brugt en masse tid på at lave et script som laver ca. 6 forespørgsler for hver linie i mit endelige udtræk - altså en unødig belastning af systemet med ca 672.000 forespørgsler.'

Lignede et DDoS

Få kilometer fra ITU ligger Moderniseringsstyrelsen i Indre By i København. Her bliver databasen med finanslove tilgået i snit ca. 10.000 gange om måneden.

'Den 11. december 2016 konstaterer vores driftsovervågning en meget kraftig vækst i trafikken til finanslovsdatabasen fra tre specifikke ip-adresser,' bekræfter styrelsen.

'Vi beslutter derfor, af sikkerhedsmæssige årsager, at blokere trafikken fra de tre adresser, idet det konstaterede trafikmønster indikerer et begyndende Denial-of-Service angreb på vores systemer, hvorefter trafikmængden faldt til det normale niveau,' fortsætter styrelsens forklaring.

Moderniseringsstyrelsen oplyser også, at blokeringen af de tre ip-adresser nu er ophævet. Det var den ikke, da Jesper Henrichsen tog kontakt til Version2.

Styrelsen kan da også oplyse, at rå-data til bevillingslove og statsregnskaber bedst lader sig hente på adressen http://www.oes-cs.dk/bevillingslove/data/ - en adresse, der i skrivende stund ikke giver noget resultat.

Med tippet lykkedes det dog Jesper Henrichsen at finde frem til den rigtige adresse (http://www.oes-cs.dk/bevillingslove/data.html) - som han blankt erkender, at han ikke kendte noget til.

'Når det er sagt så synes jeg ikke at det gør det mere transparent, dels fordi det er meget svært at finde, både fra google og fra deres egen side,' forklarer han til Version2.

Døde links

Version2 har også besøgt den famøse portal til indsigt i statens finanser.

På siden http://www.oes-cs.dk/bevillingslove/ kan man læse sig til, at Bevillingslovpublikationerne kan skaffes på fire forskellige måder - herunder som trykt bog. Siden henviser behjælpeligt også til Finansministeriets Finanslovsdatabase, som dog er en blank side.

Det samme gælder linket til de detaljerede regnskabstal via Finansministeriets Regnskabsdatabase.

Hvorom alting er kan denne journalist godt forstå, hvorfor Jesper Henrichsen undrer sig over den såkaldte gennemsigtighed:

'Min undren er, at den data, som Moderniseringsstyrelsen ellers har gjort tilgængelig i form af finanslovsdatabasen, stadig kræver så meget teknisk kunnen før den reelt er tilgængelig. Altså i et format der kan bearbejdes og analyseres uden at være datalog.'

Selv med den nye information om tilgængelig rådata, vurderer Jesper Henrichsen, at det har været nemmere at scrape Moderniseringsstyrelsen side med et hjemmelavet script, end det ville have været for mig at finde og arbejde med den udgivne data.

'Formatet flytter bare kompleksiteten over i at samle de underliggende kontotekster ud fra det udgivne format, førend det kan give nogen form for indsigt,' konstaterer han.

'Man har glemt, hvorfor man lagde data ud'

Projektet lykkedes - Jesper Henrichsens vellykkede visualisering kan ses her, og koden bag kan ses på GitHub. Det samme kan Python-scraperen og de scrapede data.

Helt tilfreds er den ITU-studerende dog ikke:

'Jeg sidder tilbage med en fornemmelse af, at man har glemt hvorfor man overhovedet har brugt tid og penge i at lægge data tilgængeligt til at begynde med,' bemærker han.

'Det undrer mig især eftersom Moderniseringsstyrelsens egen vision bl.a. er at skabe gennemsigtighed og levere effektiv systemunderstøttelse, men når det er nødvendigt at lave en scraper for at få fat i informationen så er det både en dårlig løsning for mig og for dem.'