Authenti-cation and Authori-zation

Einleitung

Übersicht

  • Bestandteil der meisten Apps, insbesondere bei Verbindung zu Remote-Services
  • Bieten zusätzliche Sicherheitsebene und verhindern unbefugten Zugriff
  • Durchsetzung muss am Remote-Endpunkt erfolgen, aber App muss Best Practices für sichere Protokollnutzung befolgen
  • Authentifizierungsformen: Biometrie, PIN oder Multi-Faktor-Authentifizierung
  • Korrekte Implementierung ist entscheidend für Wirksamkeit gegen unbefugten Zugriff

Verification Controls

MASVS-AUTH-1

The app uses secure authentication and authorization protocols and follows the relevant best practices.

MASVS-AUTH-2

The app performs local authentication securely according to the platform best practices.

MASVS-AUTH-3

The app secures sensitive operations with additional authentication.

Weakness Enumeration

MASVS-AUTH-1

L1, P

  • MASWE-0005: API Keys Hardcoded in the App Package
  • MASWE-0036: Authentication Material Stored Unencrypted on the Device
  • MASWE-0037: Authentication Material Sent over Insecure Connections
  • MASWE-0038: Authentication Tokens Not Validated
  • MASWE-0040: Insecure Authentication in WebViews

L2

  • MASWE-0032: Platform-provided Authentication APIs Not Used
  • MASWE-0033: Authentication or Authorization Protocol Security Best Practices Not Followed
  • MASWE-0035: Passwordless Authentication Not Implemented
  • MASWE-0039: Shared Web Credentials and Website-association Not Implemented

MASVS-AUTH-2

L1, P

  • MASWE-0041: Authentication Enforced Only Locally Instead of on the Server-side
  • MASWE-0042: Authorization Enforced Only Locally Instead of on the Server-side

L2

  • MASWE-0043: App Custom PIN Not Bound to Platform KeyStore
  • MASWE-0044: Biometric Authentication Can Be Bypassed
  • MASWE-0045: Fallback to Non-biometric Credentials Allowed for Sensitive Transactions
  • MASWE-0046: Crypto Keys Not Invalidated on New Biometric Enrollment

MASVS-AUTH-3

L2

  • MASWE-0028: MFA Implementation Best Practices Not Followed
  • MASWE-0029: Step-Up Authentication Not Implemented After Login
  • MASWE-0030: Re-Authenticates Not Triggered On Contextual State Changes
  • MASWE-0031: Insecure use of Android Protected Confirmation

Testing Guide

MASVS-AUTH-1


MASVS-AUTH-2

MASVS-AUTH-3

Anmerkungen

Tests

  • MAS definiert hier nur wenige Tests
  • Die definierten Tests fallen überwiegend in Kategorie L2
  • Warum ist das so?

Storage

  • Viele Sicherheitsrisiken im Client beruhen auf unsicherer Speicherung
  • Dies ist Teil von STORAGE
  • Priorität bei der Absicherung in diesem Bereich hat ansonsten vor allem Server-Side Validation
  • Bei Vertiefungsinteresse: Authentication and Authorization in Flutter