OWASP top 10

NovuDialog en belangrijke security risico's

De OWASP top 10 is een internationaal erkende lijst, die de grootste bedreigingen en risico's binnen webapplicatie security bevat. Tijdens de configuratie van de NovuDialog applicatie en infrastructuur houden we rekening met de OWASP top 10:

  1. Injection: SQL injection kan plaatsvinden wanneer vijandelijke of onbetrouwbare gebruikersdata in een command of query wordt meegestuurd. Dit kan er bijvoorbeeld toe leiden dat iemand toegang krijgt tot bepaalde data, zonder daartoe autorisatie te hebben.
    SQL injectie is niet mogelijk in de NovuDialog applicatie, omdat er in NovuDialog nooit gebruikersinvoer wordt meegestuurd in SQL tekst opdrachten. Als er wel een SQL tekst opdracht wordt gebruikt, zonder gebruikersinvoer, dan wordt deze altijd opgebouwd met parameters welke alleen de letterlijke waarden accepteren.
  2. Broken authentication: Als functies betreffende authenticatie en sessie management verkeerd zijn geïmplementeerd in een applicatie, bestaat er een risico dat vijandige gebruikers kunnen inloggen met de identiteit van andere gebruikers.
    Door middel van code reviews, unit testen, PEN testen en het gebruik van standaard componenten (bijvoorbeeld Identity Server) doen we er alles aan om broken authentication te voorkomen.
  3. Sensitive Data Exposure: In de NovuDialog applicatie wordt data transportversleuteling afgedwongen, door middel van HTTPS. Standaard wordt gebruikersdata niet opgeslagen in de NovuDialog applicatie. Als de wens er is om data wel op te slaan dan gebruiken we Azure SQL Database encryption en Azure Storage service encryption. Dit alles om ervoor te zorgen dat vertrouwelijke data beschermd blijft. In NovuDialog kan er ook voor worden gekozen om gebruikersdata altijd op de server, in een ecrypted model, te houden en nooit zichtbaar te maken op de client.
  4. XML External Entities (XXE): Binnen het NovuDialog framework wordt er geen gebruik gemaakt van XML voor communicatie naar en vanaf de client. Alle communicatie wordt in plaats daarvan gedaan in het JSON format. Voor externe koppelingen wordt er soms wel XML gebruikt. Mede doordat we met .NET Core werken is het gebruik van XMLDocument standaard veilig. Hierdoor blijft het risico op XML External Entities attacks zeer beperkt.
  5. Broken Access Control: Het risico dat een gebruiker bij data kan die eigenlijk buiten bereik zou moeten zijn, is zeer klein in NovuDialog platform.
    Door middel van code reviews, unit testen, PEN testen en het gebruik van standaard componenten (bijvoorbeeld Identity Server) doen we er alles aan om broken access control te voorkomen.
  6. Security Misconfiguration: Slechte beveiliging komt vaak voor doordat standaard beveiligingsconfiguraties niet goed zijn ingesteld of niet de meest veilige zijn.
    In de NovuDialog applicatie worden daarom de meest veilige instellingen als de standaard instellingen genomen. Voor een optimale beveiliging voeren we ook regelmatig PEN testen uit, doen we automatische deployments en volgen we actief security aanbevelingen vanuit Azure op.
  7. Cross-Site Scripting (XSS): Cross-site scripting (XSS) is een fout in de beveiliging van een applicatie waardoor gebruikersinvoer niet juist wordt verwerkt. Hierdoor kunnen vijandige gebruikers scripts uitvoeren in de browser van andere gebruikers.
    In NovuDialog wordt XSS onder andere voorkomen door op alle invoervelden alleen karakters toe te staan die je zou verwachten in dat type invoerveld. Daarnaast wordt de data in NovuDialog, als placeholders door gebruikers worden vervangen met tekst, altijd juist escaped. Op deze manier is tekst altijd letterlijk tekst en kan het niet als script worden uitgevoerd.
  8. Insecure Deserialization: Fouten in deserialisatie kunnen ertoe leiden dat aanvallers van buitenaf code kunnen manipuleren. Om dit te voorkomen staan we geen geserialiseerde objecten toe van onbetrouwbare bronnen en deserialiseren we naar objecten met strikte data types. Mocht er toch iets mis gaan met deserialiseren dan wordt dit gelogged.
  9. Using components with known vulnerabilities: Ieder component in het NovuDialog platform wordt voor gebruik geëvalueerd op mogelijke beveiligingsrisico’s. Met elke nieuwe release van de NovuDialog applicatie worden de componenten bijgewerkt naar de laatste versie.
  10. Insufficient Logging & Monitoring: De NovuDialog applicatie gebruikt Application Insights monitoring om afwijkingen te detecteren. Bij elke afwijking worden waarschuwingen geactiveerd, die Novusoft in realtime op de hoogte brengen.