# Security ## Definitions (not important) ### Computer security - CIA triangle ### Cloud secirity - large scale, and complex ### Other areas - OS - Updates - Unix access control (protect paths) - VM - insecure VM - tampered VM - Application layer ## Security attacks ### Types of attacks in cloud computing - Eavesdropping - Direct access - Cross site attack - Denial of service - Upgrader attack - Intrusion ### Common examples - Distributed Denial of Service attack: prevent legitimate cloud users from accessing cloud services - SQL Injection - Cross site scripting - Hijacking of account or services ## Enforcing Security ### Types of mitigations - Preventive: Before attack - Detective: When attacked - Corrective: After attacked ### Mitigations #### Subscriber level - Access Control list: Deny unauthorized access - Secure by design - Firewalls: Web Application Firewall #### Service level - CSP (Cloud Service Handler) securely handle sensitive data and its Liabilities - Rules on governing the ownership of data - Geographical regions, where data will be stored ## Implementing Cloud security and trust policies ### Fancy words - Audit trails: monitor the users - Trace changes, by using software like AIDE(File changes) and AWS CloudTrail(User and API activity) - Logs - Physical security: HW, SW, db should not be physically accessible to unauthorized persons - Application security: Cloud service should be secure - Identity management: use ACL and SSO to control identity - Privacy, confidentiality and security: legal obligation - Data integrity - Data confidentiality ### Servlet security #### Definition - Address the following(CIA) - Confidentiality - Integrity - Authentication and authorization #### Realm - Definition: complete file and path, that stores authentication information in servlet - Usually stored in `conf`, named `tomcat-users.xml` - Example: ```xml ``` #### Authentication - Using password protection in apache servlet: - example `login-config`: ```xml BASIC ``` - possible values: - BASIC: plaintext is used and sent, base64 encoded, least secure - DIGEST: more secure, still not encrypted - CLIENT-CERT: secure, use public key infrastructures(PKI), and encrypted - FORM: customized authentication based on vendor, opt in encryption - The first three use standard browser pop up for authentication - FORM need to be implemented manually #### Confidentiality and Integrity - Using deployment descriptor, which protects data in transit: - example `deployment descriptor`: ```xml CONFIDENTIAL>/transport- guarantee> ``` - Possible values: - NON: default, plain text, insecure - INTEGRAL: Can't be changed - CONFIDENTIAL: won't be seen by anyone on the net - The last two use SSL(Secure Socket Layer) to implement it ## AWS Security ### Stupid fancy words: - AWS Day One Best Practice - AWS security and compliance programs - AWS Shared Responsibility Model - AWS Identity and Access Management (IAM) - AWS Trusted Advisor - AWS CloudTrail - AWS Config - AWS Shield - AWS WAF (Web Application Firewall) - Constant patching, updates (browsers, antiviruses, etc) and monitoring ### Responsibility - AWS: Security of the cloud - Customers: Security in the cloud ### IAM: Identity and Access Management - Definition: web service that helps you securely control access to AWS resources - Use it to control who can sign in(authentication) and is authorized to use stuff - AWS account root user: - When user first sign in to AWS, they have full control over every service - Best practice: - Use it to create IAM user - Lock away the root user credentials - Use root only to perform few account and service management services ### IAM MFA - Definition: Multi factor authentication - Adds extra security - Forms: - SMS based: send a 6 digit code to user's phone, and user is required to type the code #### Security and trust - Legal bindings - SLA - Data sharing, and location - Hypervisor: created by 3rd party - Middleware: Security features - relation: - Security is the key to mutual trust ### Trust #### Conditions for trust - Risk: because there would be loss, which is important - Interdependence: The client and provider rely on each other #### Phases - Build phase - Stability phase - Dissolution phase ## Cryptography ### Pub-key cryptography - use key pairs, a private key and a public key, asymmetric encryption - private key is kept safely ### Envelope encryption - Multi layer encryption - encrypting plaintext data with data key, then encrypting data key under another key - Can have multiple layers of encryption - AWS KMS (Key management service) uses this to encrypt user data - Use KMS to encrypt the key for other encryption, and store the encrypted key ### AWS Security services #### Encrypting stuff - KMS: Key management, use HSM(Hardware Security Modules), and integrated to CloudTrail to track key usage - Cloud HSM: Cloud Hardware Security Module - To generate, manage and use your own encryption keys. - Standard compiant: Can be integrated to JCE, and CryptoNG libraries #### Managing SSL/TLS certificates - Certificate manager: deploy, manage and renew SSL/TLS certificates, for AWS services or your own - Simplify the process of managing the certificates, which is used for web traffic #### DDoS attacks - AWS Shield to mitigate against it