The S-Unit

The S-Unit Top 10

TSU-07: Insecure custom authentication

TSU-07: Insecure custom authentication

TSU-07 gaat over beveiligingsproblemen die ontstaan door zelfgebouwde (maatwerk) authenticatie in Mendix-applicaties. Mendix biedt standaard authenticatie met gebruikersnaam/wachtwoord en sessies. In de praktijk is dit vaak niet voldoende. Applicaties hebben bijvoorbeeld extra vormen van authenticatie nodig, zoals:

  • Single Sign-On (SSO)
  • authenticatie via externe systemen zonder gebruikersnaam/wachtwoord
  • extra beveiliging zoals multi-factor authenticatie (MFA)

Verkeerd ingerichte custom authenticatie? Dit zijn de gevolgen

Mendix biedt verschillende manieren om zulke custom authenticatie te implementeren, onder andere via:

  • de “Custom”-optie bij gepubliceerde integraties
  • het vervangen van de standaard LoginAction listener
  • Java-code in custom request handlers
  • extra authenticatielogica in microflows

 

Authenticatie is complex. Als deze maatwerk-authenticatie onjuist wordt geïmplementeerd, kan dit leiden tot ongeautoriseerde toegang tot de applicatie, integraties of request handlers. De veiligheid van een mechanisme (zoals JWT of SAML) hangt sterk af van:

  • een correcte implementatie van het mechanisme en de gebruikte algoritmes
  • juist gebruik van het mechanisme
  • veilige configuratie en generatie van geheimen (secrets)

 

Hoe meer maatwerk er nodig is op deze punten, hoe groter de kans op fouten en dus op beveiligingslekken.

Best practices voor veilige custom authenticatie in Mendix

Bij het toevoegen van custom authenticatie aan een Mendix-applicatie is het belangrijk om maatwerk zoveel mogelijk te beperken. Waar maatwerk nodig is, moet je de best practices van het gebruikte mechanisme goed kennen en toepassen.

De volgende richtlijnen helpen daarbij:

1. Kies voor standaarden, niet voor eigen oplossingen

  • Ontwerp geen eigen authenticatieprotocollen.
    Gebruik bij voorkeur een gestandaardiseerd mechanisme dat goed onderzocht is en past bij de functionele en beveiligingseisen van je applicatie.
  • Bouw geen eigen implementaties van bestaande standaarden.
    Gebruik bestaande, goed onderhouden en geteste oplossingen, bijvoorbeeld via een Marketplace-module of een standaard Java-library.

2. Correct aanpassen van het loginproces

  • Bij het aanpassen van het loginproces:
    • zorg dat alle authenticatiestappen zijn afgerond vóórdat er een gebruikerssessie wordt aangemaakt
    • implementeer authenticatie zonder actieve Mendix-sessie of binnen een anonieme sessie
    • voer authenticatie niet uit in een navigatie-microflow
  • Zorg dat aangepast login-gedrag niet kan worden omzeild via de standaard Mendix-login.
    Vervang hiervoor de standaard LoginAction listener door een versie die het gewenste gedrag afdwingt.

3. Veilig gebruik van claims-based authenticatie (JWT, SAML)

  • Bij claims-based authenticatie (zoals JWT of SAML):
    • valideer alle relevante claims, niet alleen de identiteit
      (zoals vervaldatum, issuer, audience, enz.)
    • gebruik alleen claims voor gebruikerskoppeling die niet door de gebruiker zelf te wijzigen zijn
    • zorg dat digitale handtekeningen altijd verplicht zijn, correct worden gevalideerd en dat fouten altijd leiden tot mislukte authenticatie

4. Bescherming tegen brute-force-aanvallen

  • Bij authenticatie die gevoelig is voor brute-force-aanvallen (zoals wachtwoorden of eenmalige codes):
    • implementeer detectie en bescherming tegen brute-force, bijvoorbeeld tijdelijke accountblokkades

5. Veilig beheer van geheimen (secrets)

  • Bij authenticatie op basis van geheimen (zoals encryptiesleutels, signing keys of API-keys):
    • gebruik cryptografisch sterke en voldoende lange sleutels
    • gebruik geen door mensen bedachte geheimen
    • zorg dat geheimen uniek zijn per omgeving (dev, test, acceptatie, productie)

Kwetsbaarheden binnen TSU-07

Dit zijn de meest voorkomende risico’s bij onveilige custom authenticatie.

  • Omzeilen van MFA doordat een sessie al actief is vóór MFA-validatie
  • Omzeilen van MFA via de ingebouwde Mendix-authenticatie
  • Ontbrekende brute-force-bescherming bij OTP-validatie
  • Ontbrekende brute-force-bescherming bij maatwerk-wachtwoorden
  • Authenticatie-bypass door ontbrekende validatie van digitale handtekeningen
  • Authenticatie-bypass door ontbrekende bescherming tegen replay-aanvallen
  • Authenticatie-bypass door ontbrekende claim-validatie
  • Identiteitsvervalsing door gebruik van wijzigbare identity-claims
  • Authenticatie-bypass door onveilige generatie van geheimen

Train je Mendix security skills

Herkennen en vroegtijdig voorkomen van kwetsbaarheden in Mendix? Bekijk onze vernieuwde Mendix-securitytrainingen gebaseerd op The S-Unit Top 10.

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. Lees meer over onze samenwerking met Omnext en de Mendix specifieke SAST-module.