SECURITY STANDARDS
RAID.Cloud is ASVS Level 2 Certified, this means it adequately defends against most of the risks associated with software today. In addition to penetration testing, level 2 requires at least some access to developers, documentation, code, and authenticated access to the system.
Level 2 is appropriate for applications that handle significant business-to-business transactions, including those that process sensitive information, implement business-critical or sensitive functions, or process other sensitive assets.
Threats to Level 2 applications will typically be skilled and motivated attackers focusing on specific targets using tools and techniques that are highly practiced and effective at discovering and exploiting weaknesses within applications.
- - All components are identified
- - All components are identified
- - All dependencies are identified
- - A high-level architecture as been defined
- - Components are segregated
- - Clear separation between data, controller and display
- - Client side logic does not contain secrets
- - Principle of complete mediation
- - Password fields
- - Server side enforcement
- - Fails securely
- - Allows for strong passwords
- - All account identity authentication functions are secure
- - All credential changes are secure
- - All authentication decisions are logged
- - Account passwords are salted properly
- - Strongly encrypted transport
- - No clear text passwords
- - No username enumeration
- - No default passwords
- - Protects against brute force attacks
- - External service credentials are encrypted and protected
- - Password recovery is well implemented
- - Password recovery can not be used to lock out users
- - No “secret” questions
- - Supports configuration to disallow previous passwords
- - Sensitive operations are sufficiently protected
- - Block common or weak passwords / passphrases
- - Use a proven secure authentication mechanism
- - Protects against username & password disclosure
- - Admin is not accessible for untrusted parties
- - Uses default session management
- - Sessions are invalidated on user log out
- - Session times out after inactivity
- - Shows logout link
- - Does not disclose session id
- - Session id is changed on login
- - Session ids may only come from framework
- - Session tokens are sufficiently long and random
- - Session cookies have appropriately restricted paths
- - Does not permit duplicate concurrent user sessions from different machines
- - User can see and terminate all his sessions
- - User is prompted for session termination on password change
- - Authorisation of functions and services
- - Authorisation of direct object references
- - Disabled directory browsing
- - Access controls fail securely
- - Access control rules are enfoced server side
- - User and data attributes and policy information cannot be manipulated unauthorized
- - Has centralized mechanism for access to protected resources
- - Protects against CSRF
- - Access control decisions and failed decisions are logged
- - Protects against fraud
- - Protects against parameter tampering
- - Buffer overflows
- - Rejects invalid input
- - Input validation or encoding is performed and enforced on the server side
- - SQL Injection
- - LDAP Injection
- - OS Command Injection
- - XXE
- - XML Injection
- - TODO
- - HTML escaping
- - Protected against malicious automatic binding
- - Defends against HTTP parameter pollution attacks
- - Output encoding/escaping has a single security control per type
- - Structured data is strongly typed and validated with a schema
- - Unstructured data is sanitized
- - Untrusted HTML is sanitized
- - Auto escaping technology always applies HTML sanitization
- - DOM writes use safe JavaScript methods
- - JSON is properly parsed by browser
- - Data is cleared from client storage on session termination
- - Crypto fails securely
- - Random numbers, file names, GUIDs and strings are sufficiently random
- - Crypto modules have been validated against FIPS 140-2 or equivalent
- - Policy for cryptographic key management exists and is enforced
- - PII is encrypted at rest and protected during communication
- - Keys and secrets are zeroed when destroyed
- - Secrets are replaceable and placed at installation
- - Information leakage
- - Error handling is performed on trusted devices
- - Logging controls are implemented on the server
- - Error handling logic denies access by default
- - Log events are complete
- - Events that include untrusted data will not be executed
- - Application log does not include sensitive data
- - Sensitive data does not get cached
- - Sensitive data does not get sent in the URL
- - Temporary client caches of sensitive data are properly cleaned up
- - Temporary server caches of sensitive data are properly cleaned up
- - Minimal parameters are sent to untrusted systems
- - Client side storage does not contain secrets
- - Accessing sensitive data is logged
- - Sensitive data is rapidly sanitized from memory
- - TLS chain is valid
- - TLS is used for all relevant connections
- - Connections to relevant external systems are authenticated
- - Strict Transport Security is used correctly
- - Forward secrecy ciphers are used
- - Certification revocation is enabled and configured
- - Strong certificate hierarchy
- - TLS settings are current
- - Only defined HTTP Request methods are accepted
- - Every HTTP Response contains a Content-Type header with safe character set
- - Trusted HTTP headers are authenticated
- - X-Frame-Options is used correctly
- - X-Content-Type-Options is used correctly
- - HTTP headers in Requests and Responses contain only printable ASCII
- - Content-Security-Policy is used correctly
- - X-XSS-Protection is used correctly
- - Appropriately uses a trusted environment
- - Does not allow spoofed high value transactions
- - Safe from unsafe redirects
- - Safe from path traversal
- - Anti-virus scanning
- - Safe from local file inclusion attacks
- - Safe from remote file inclusion attacks
- - Resource sharing
- - Untrusted files are stored outside the webroot
- - Deny access to resources or systems outside web or app server
- - Does not execute uploaded data from untrusted sources
- - App verifies SSL certificates
- - App does not use UDID values as security controls
- - App protects sensitive data
- - App does not use SQLite for sensitive data
- - App does not have Secret credentials hard-coded in executable
- - App protects against auto-snapshot information leakage
- - App cannot be run on a jailbroken or rooted device
- - App requires appropriate permissions and resources
- - App binary has been obfuscated
- - Web Service client and server use same encoding
- - Web Service admin is limited to admins
- - XML or JSON schemas are used properly
- - Input is size limited
- - SOAP services comply to WS-I Basic Profile
- - Session based authentication and authorization is used
- - REST service is not vulnerable to CSRF
- - REST service verifies Content-Type
- - Message payload is signed
- - No alternative (insecure) access paths
- - Components are stripped, up-to-date and securely configured
- - Communication between components is encrypted
- - Communication between components is authenticated with least privileges
- - Deployments are adequately sandboxed, containerized or isolated
- - Deployment processes are secure