Code Repository Security: All code is securely stored on GitLab, ensuring controlled access and version control.
Input Validation: Inputs are meticulously validated to uphold data integrity, mitigating potential vulnerabilities.
XSS Attack Prevention: User inputs are HTML encoded to thwart Cross-Site Scripting (XSS) attacks, leveraging web framework tools.
Zero Code Warnings: Striving for code excellence, Callpilot maintains a zero-tolerance policy towards code warnings.
Configuration Management: Configuration, secrets, and passwords are segregated per environment, enhancing security.
Secret Management: Secret information is securely stored on Azure Key Vault with restricted access, accessible only through Managed Identities for passwordless authentication.
Data Protection: Sensitive data is encrypted using RSA keys with a size of 2048 bits, ensuring confidentiality.
Authorization Policies: Access to resources is regulated through authorization access policies, controlling permissions.
Role-Based Access Control (RBAC): Azure resource access is restricted using RBAC, limiting privileges based on roles.
Code Review Process: All new code additions undergo a stringent review process, requiring at least one other developer's approval via pull request before merging.
Deployment Security Practices:
Limited Administrator Access: Only a restricted subset of employees are designated as administrators, minimizing potential security risks.
Sandbox Environment: Isolated testing environments, mirroring production but with redacted values, are utilized for rigorous testing.
Staging Slots: Staging slots are employed during deployment to minimize downtime and ensure smooth transitions.
Deployment Approval: Deployment to higher environments necessitates approval, maintaining control over system changes.
Azure Deployment Pipeline: Code deployments are managed through an Azure Deployment pipeline, with restricted access to authorized personnel.
Automated Secrets Management: Passwords and secrets are managed through automated processes wherever necessary, reducing manual errors and enhancing security.
Patch Management: Platform-as-a-Service (PAAS) services are utilized to promptly apply security patches, mitigating vulnerabilities.
Package Verification: External packages undergo thorough verification before integration, mitigating risks associated with third-party dependencies.
Static Code Analysis: Tools like CodeSonar are planned to be employed for static analysis, identifying and mitigating known security risks in code and external packages.
Multitenancy
Tenant-Specific Data Organization: User data is logically organized by Tenant ID, with all queries automatically including this identifier using our custom framework, eliminating reliance on developers to include it.
Tenant-Specific Containerization: Survey videos are stored in separate containers for each tenant, ensuring data isolation and security between tenants.