Medior gebruik 2 fa en testautomation

9 sep. 2023 | by Ralph Van Der Horst

Medior: Gebruik 2FA en testautomation

Veilige Omgaan met 2FA(2 factor authenticatie) tijdens UI Geautomatiseerde Tests

Tijdgebaseerde eenmalige wachtwoorden (Time-Based One-Time Passwords, TOTP) zijn een essentieel onderdeel van moderne beveiligingsmaatregelen, vooral wanneer tweefactorauthenticatie (2FA) wordt toegepast. Dit systeem genereert een tijdelijke code die binnen een korte periode moet worden ingevoerd, naast het gewone wachtwoord, om een loginpoging te valideren. Hoewel dit de beveiliging sterk verbetert, kan het ook uitdagingen opleveren voor geautomatiseerde testomgevingen waarin inlogprocessen moeten worden gesimuleerd.

Veiligheidsrisico’s van TOTP in Testomgevingen

Als je overweegt TOTP te gebruiken in een geautomatiseerd testscenario, is het essentieel om de veiligheidsrisico’s te begrijpen:

  1. Persoonlijke Accounts: Gebruik nooit je eigen persoonlijke TOTP-sleutel of account in een testomgeving. Als deze sleutel op enigerlei wijze wordt blootgesteld, kan een kwaadwillende toegang krijgen tot je echte account.

  2. Opslag van Secrets: De geheime sleutel die wordt gebruikt om de TOTP te genereren, moet altijd veilig worden opgeslagen. Het hardcoderen van deze sleutels in de code of het opslaan ervan in leesbare configuratiebestanden is riskant en kan leiden tot ongeoorloofde toegang als ze in verkeerde handen vallen.

Best Practices

Om de bovengenoemde risico’s te mitigeren, zijn hier enkele best practices:

  1. Service Accounts: Overweeg het gebruik van serviceaccounts specifiek voor testdoeleinden. Deze accounts moeten beperkte rechten hebben en mogen nooit toegang hebben tot productie- of gevoelige gegevens.

  2. Geheim Opslag: Maak gebruik van veilige secret management oplossingen, zoals AWS Secrets Manager of vergelijkbare platformen, om geheime sleutels veilig op te slaan. Deze diensten zorgen ervoor dat de geheime sleutels versleuteld worden opgeslagen en alleen toegankelijk zijn voor geautoriseerde personen of diensten.

Conclusie

Het automatiseren van tests waarbij TOTP vereist is, kan een noodzaak zijn, maar het is cruciaal om dit op een veilige manier te doen. Door rekening te houden met de bovengenoemde best practices en altijd een veiligheidsgerichte mentaliteit te hanteren, kun je zowel de beveiliging als de functionaliteit van je systemen waarborgen.

Voorbeeld in Javascript met Cypress en TOTP-generator

Hier is een voorbeeld van hoe je de TOTP-generator kunt gebruiken in een Cypress-testscenario:

Allereerst moet je voor je applicatie de secret key verkrijgen(dus de secret opslaan, en niet met je telefoon scannen, in dit voorbeeld LNUI4IEWHCHIFTRA, die niet meer bestaat), en dan kan je vervolgens makkelijk je code verkrijgen.

const totp = require("totp-generator");

describe('Login with TOTP', () => {
    it('should login successfully using TOTP', () => {
        const secret = "YOUR_SECRET_KEY_FROM_AWS_OR_SIMILAR"; // Haal de echte sleutel op van een veilige locatie, in het voorbeeld de niet meer bestaande LNUI4IEWHCHIFTRA
        const token = totp(secret);

        cy.visit('https://your-login-page.com');
        cy.get('#username').type('yourServiceAccountUsername');
        cy.get('#password').type('yourServiceAccountPassword');
        cy.get('#totpToken').type(token);
        cy.get('#loginButton').click();

        // Voeg hier verdere assertions toe om een succesvolle login te verifiëren.
    });
});

Let op: De YOUR_SECRET_KEY_FROM_AWS_OR_SIMILAR is slechts een placeholder. Zorg ervoor dat je geheime sleutels altijd veilig opslaat en nooit hardcode in je tests.

Follow me on LinkedIn: www.linkedin.com/comm/mynetwork/discovery-see-all?usecase=PEOPLE_FOLLOWS&followMember=ralphvanderhorst

by Ralph Van Der Horst

arrow right
back to blog

share this article

Relevant articles

Locators vinden (dutch tutorial)

1 sep. 2023

Locators vinden (dutch tutorial)