The S-Unit

The S-Unit Top 10

TSu-03: insecure microflows

TSU-03: Insecure Microflows

TSU-03 draait om onveilige configuratie of implementatie van microflows, een cruciaal onderdeel van Mendix-beveiliging.
Door microflows zorgvuldig te ontwerpen, autorisaties strikt te beheren en validaties structureel in te bouwen, voorkom je dat gevoelige logica of data onbedoeld wordt blootgesteld.

Onjuiste microflow-instellingen kunnen beveiliging ondermijnen

Microflows vormen de kern van backend-validaties en gevoelige functies binnen een Mendix-app. Ze draaien vaak met verhoogde rechten en verwerken regelmatig invoer van gebruikers.

Mendix blokkeert standaard de toegang tot microflows. Ontwikkelaars bepalen zelf welke module roles ze mogen uitvoeren. Een te ruime configuratie of gebrekkige validatie kan leiden tot ongeautoriseerde toegang of datamanipulatie of zelfs omzeiling van beveiligingsmechanismen.

Beperk risico’s door microflows slim en veilig in te richten

Om TSU-03-kwetsbaarheden te voorkomen, denk bij elke microflow na over wie deze mag aanroepen en welke validaties nodig zijn. Volg deze best practices.

  • Gebruik een duidelijke naamgeving voor microflows. Vermeld of ze door de gebruikersinterface mogen worden aangeroepen en door welke module roles.
  • Houd bij welke acties binnen een microflow een gebruiker normaal niet zou kunnen uitvoeren (bijvoorbeeld vanwege ontbrekende rechten of backend-interacties) en beschouw deze acties als gevoelig.
  • Bevat de microflow geen gevoelige acties? Zet deze om in een nanoflow.
  • Breng in kaart welke data in de microflow afkomstig is van gebruikers. Behandel deze waarden als user input en valideer ze altijd.
  • Zorg dat elke microflow die door gebruikers kan worden aangeroepen, autorisatie- en validatieregels bevat vóórdat gevoelige acties worden uitgevoerd.
  • Ga er niet van uit dat alleen een “Commit”-actie gevoelige wijzigingen uitvoert. Elke wijziging aan een attribuut kan worden opgeslagen, dus pas dezelfde controles toe — met of zonder commit.
  • Vermijd microflows die alleen bestaan uit valideren-en-opslaan. Deze kunnen volledig worden omzeild. Voeg altijd een stap toe die de gebruiker niet zelf kan uitvoeren, bijvoorbeeld:
  • Het wijzigen van een read-only attribuut na validatie (zoals Status → Approved), gecombineerd met een statusafhankelijke XPath-constraint.
  • Het aanmaken van een read-only persistent object na validatie van invoer.
  • Houd er rekening mee dat alle entiteiten die in een microflow worden aangemaakt of gewijzigd, zichtbaar kunnen worden voor de gebruiker. Dit geldt ook voor niet-persistente entiteiten en onopgeslagen wijzigingen.
  • Verwijder tijdelijke objecten zodra ze niet meer nodig zijn, vooral in sub-microflows.

Kwetsbaarheden binnen TSU-03

De volgende kwetsbaarheden komen vaak voor bij onveilig ingerichte microflows en laten zien waar het in de praktijk misgaat.

  • Ontbrekende autorisatie bij delete-microflows: gebruikers kunnen records verwijderen zonder de juiste rechten.
  • Ontbrekende autorisatie bij data-inzending: onbevoegde gebruikers kunnen gevoelige data toevoegen of wijzigen.
  • Geen validatie van objectparameters: ongeldige of ongeautoriseerde objecten kunnen worden verwerkt.
  • Geen validatie van niet-objectparameters (zoals strings of integers): kan leiden tot injectie of verkeerde verwerking.
  • Ontbrekende validatie na database-opvraging: gewijzigde of malafide data kan worden doorgezet.
  • Validaties alleen in nanoflows: zonder bijbehorende controle in de backend-microflow kunnen ze eenvoudig worden omzeild.
  • Datavalidatie omzeild door onopgeslagen wijzigingen: gebruikers zien of wijzigen data die nog niet gevalideerd is.
  • Gevoelige data blootgesteld via tijdelijke niet-persistente entiteiten: vertrouwelijke informatie kan zichtbaar worden.
  • Omzeiling van beveiliging via directe toegang tot sub-microflows: subflows zonder toegangscontrole zijn direct aan te roepen.
  • Omzeiling via directe toegang tot administratieve microflows: gebruikers krijgen toegang tot beheerfuncties zonder juiste rechten.

Integreer The S-Unit Top 10 in je CI/CD-pijplijn

Wil je weten hoe jouw Mendix applicatie scoort op The S-Unit Top 10?
In samenwerking met Omnext hebben we een Mendix-specifieke SAST-oplossing gemaakt die continu en automatisch scant op kwetsbaarheden. Door de integratie van de The S-Unit Top 10 in de CI/CD-pijplijn worden risico’s vroegtijdig opgespoord en direct inzichtelijk gemaakt. Wil je meer informatie? Contact ons.