Extracting Database Access-Control Policies From Web Applications
Dit artikel introduceert Ote, een tool die concolic execution gebruikt om automatisch toegangscontrolebeleid te extraheren en samen te vatten uit Ruby on Rails webapplicaties, waarmee de foutgevoelige aard van impliciete, ad hoc beveiligingsimplementaties wordt aangepakt en de detectie van beleidsfouten mogelijk wordt gemaakt.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
De Geheime Kaart van de Digitale Jungle
Stel je het internet voor als een enorme, bruisende stad waar elke website een gebouw is vol kamers, bestanden en geheimen. In deze stad zijn databases de gigantische kluizen waar alle belangrijke gegevens—zoals cijfers, privéberichten of medische dossiers—worden opgeslagen. Om deze kluizen veilig te houden, heeft elk gebouw een beveiliger nodig (een toegangscontrolebeleid) die bepaalt wie welke kamer in mag lopen en waar zij naar mogen kijken.
Meestal worden deze beveiligers geschreven door menselijke ontwikkelaars. Zij verstoppen de regels binnen de blauwdrukken van het gebouw (de code) op een rommelige, verspreide manier. Ze plaatsen misschien een "Niet Betreden"-bord op één deur, een "Alleen Personeel"-notitie op een raam, en een complex raadsel op een muur in de gang. Dit wordt een impliciet beleid genoemd. Het probleem is dat deze verspreide aanwijzingen gemakkelijk over het hoofd worden gezien, gemakkelijk fout gaan en bijna onmogelijk te begrijpen zijn voor anderen. Als een ontwikkelaar het team verlaat, weet niemand meer precies wat de regels zijn. Het is alsof je probeert de regels van een spel te begrijpen door simpelweg mensen te zien spelen, zonder ooit het regelboek te hebben gezien. Dit artikel behandelt de moeilijke taak om dat verborgen regelboek te vinden, op te schonen en op te schrijven, zodat iedereen precies kan zien wat de computer daadwerkelijk mag doen.
De Detective-Bot die de Gedachten van de Code Leest
Maak kennis met Ote, een nieuwe digitale detective die ontworpen is om het mysterie van deze verborgen beveiligingsregels op te lossen. De onderzoekers achter Ote, een team van UC Berkeley en NYU, realiseerden zich dat proberen de rommelige code van oude webapplicaties te lezen om de regels te vinden, lijkt op het zoeken naar een speld in een hooiberg terwijl je een blinddoek draagt. In plaats van de code regel voor regel te lezen, besluit Ote het spel te spelen.
Ote gebruikt een techniek genaamd concolic execution. Beschouw dit als een superkrachtige videogame-bot die het spel niet slechts één keer speelt, maar het miljoenen keren speelt, waarbij elke mogelijke combinatie van invoer wordt geprobeerd. Het is als een detective die door een gebouw loopt, elke deur probeert, elk raam controleert en precies opschrijft wat er gebeurt als ze een specifieke knop indrukken. Als de bot op een knop drukt en een geheim bestand opent, schrijft de bot op: "Knop A indrukken opent Bestand B." Als de bot op Knop A drukt en er gebeurt niets, noteert de bot dat ook.
Maar hier komt het lastige deel bij: echte websites zijn enorm. Als Ote elk enkel pad zou proberen te controleren, zou het eeuwig duren—misschien wel jaren! Om dit op te lossen, merkte het team iets interessants op over hoe deze websites werken. Ze ontdekten dat het deel van de code dat daadwerkelijk beslist welke data wordt opgehaald, meestal heel eenvoudig is, zoals een korte lijst met "als dit, dan dat"-regels. De rest van de code is slechts fancy decoratie (zoals het mooi maken van de pagina). Daarom negeert Ote de decoratie en focust zich alleen op de eenvoudige logica.
Nog beter: Ote heeft een slimme assistent (een AI-taalmodel) die fungeert als een beoordelaar van relevantie. Wanneer de bot een vreemde vertakking in de code tegenkomt, vraagt de assistent: "Doet dit ertoe voor de beveiliging?" Als de vertakking alleen gaat over het veranderen van de kleur van een lettertype of het tonen van een "Niet-officieel"-label, zegt de assistent: "Negeer dat!" Dit bespaart Ote de tijd die anders verloren zou gaan aan doodlopende wegen, waardoor een taak die dagen zou duren, wordt omgezet in een taak van slechts enkele uren.
Wat Ote Vond: De "Aha!" Momenten
Het team testte Ote op drie echte applicaties: diaspora (een sociaal netwerk), Autolab (een hulpmiddel voor schoolopdrachten) en The Odin Project (een website voor een programmeerschool). Ze wilden niet alleen zien of Ote kon werken; ze wilden zien of het fouten kon vinden die mensen over het hoofd hadden gezien.
De resultaten waren verrassend. Toen het team de door Ote geëxtraheerde regels vergeleken met de regels die zij jaren geleden met de hand hadden geschreven, vond Ote verschillende foutjes:
- De Overdreven Toegankelijke Bewaker: In het Autolab-systeem lieten de door mensen geschreven regels per ongeluk "cursusassistenten" toegang tot gevoelige gegevens in cursussen die bedoeld waren als "uitgeschakeld". Alleen de instructeurs zouden die gegevens moeten kunnen inzien. Ote spitte dit lek direct eruit.
- De Ontbrekende Sleutel: In het sociale netwerk diaspora vergaten de door mensen geschreven regels de toegang tot bepaalde meldingen en profieldetails toe te staan die de app eigenlijk nodig had om te functionechten. Als de oude regels waren afgedwongen, zou de app voor echte gebruikers kapot zijn gegaan.
- De Stille Bug: De meest opwindende vondst was een subtiele bug in de Autolab-code zelf. Jaren geleden had een ontwikkelaar per ongeluk een kolomnaam verkeerd getypt bij het instellen van een beveiligingscontrole. De code leek te controleren of een student toestemming had om een examen te zien, maar door een typefout deed de controle in werkelijkheid niets. Het door Ote geëxtraheerde beleid liet zien dat er geen controle plaatsvond, wat het team ertoe leidde de typefout te vinden en te herstellen.
Het Oordeel: Een Betere Manier om het Regelboek te Schrijven
Ote is geen toverstaf die perfecte beveiliging garandeert. Het geeft toe dat het enkele zeer zeldzame paden kan missen of moeite kan hebben met extreem complexe code die geen eenvoudige regels volgt. Echter, de experimenten toonden aan dat Ote voor real-world applicaties ongelooflijk nuttig is. Het kan een duidelijke, leesbare lijst met beveiligingsregels extraheren (geschreven in een taal genaamd SQL) in minder dan vijf uur.
Het artikel suggereert dat het gebruiken van Ote is als het hebben van een tweede paar ogen dat nooit moe wordt. Het helpt ontwikkelaars te begrijpen wat hun code daadwerkelijk doet, in plaats van wat ze denken dat het doet. Door rommelige, verborgen logica om te zetten in een schoon, expliciet regelboek, helpt Ote teams om beveiligingslekken te vangen voordat ze rampzalig worden. Het vervangt de menselijke ontwikkelaar niet, maar geeft hen een krachtig hulpmiddel om ervoor te zorgen dat de digitale kluizen stevig op slot blijven.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.