メタデータ
コントロール
as Application Security
as-1 Input Validation
risk-statement Without input validation, there's a heightened risk of injection attacks, data manipulation, or system crashes due to unexpected input, potentially leading to unauthorised access or disruption of services. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T01:04:05+0800Validate all application inputs to ensure that they match the expected type, structure, or format.
Strictly validating inputs against a comprehensive schema prevents injection attacks caused by inserting special characters or content that would cause the application to perform incorrect operations.
as-2 Parameterised Interfaces
risk-statement Failure to use parameterised interfaces increases the vulnerability to SQL injection or command injection attacks, posing a significant risk of unauthorised access, data manipulation, or even potential system compromise. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T01:04:05+0800Use parameterised interfaces for database queries or system commands.
Parameterised interfaces such Object-Relational Mapping (ORM) libraries ensure that parameters used in database queries or system commands are properly sanitised and prevent injection attacks.
as-3 Output Sanitisation
risk-statement Lack of sanitisation for application outputs used in rendering HTML documents exposes the system to the risk of cross-site scripting (XSS) attacks, allowing malicious code execution in users' browsers. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T01:04:05+0800Sanitise all application outputs that will be used to render a HTML document.
Any application outputs that are returned to the requester and used to render a HTML document can lead to cross-site scripting (XSS) attacks if they contain special characters that change the rendering of the HTML document by the browser.
as-4 Authentication Mechanism Rate-Limiting
risk-statement Without rate-limiting, there's an increased risk of unauthorised access as attackers may exploit weak credentials through repeated login attempts. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T01:04:05+0800Apply rate-limiting on all authentication mechanisms to deter brute-force attacks.
Consider rate-limiting to a maximum of 3 consecutive failed authentication attempts within 15 minutes. Time delays between log-on attempts reduce the risk of successful brute-forcing attacks. Bot mitigation tools such as CAPTCHA can further reduce this risk.
as-5 Password Requirements
risk-statement Short or commonly used passwords increase the vulnerability to unauthorised access, potentially leading to compromised accounts and unauthorised activities on the system. published 2023-08-01T01:03:42+0800 last-modified 2024-02-09T22:54:15+0800Where SSO or passwordless is not supported, verify that user-defined passwords are at least {{ insert: param, as-5_prm_1 }} characters in length and {{ insert: param, as-5_prm_2 }}.
Latest NIST [SP 800-63B](#e59c5a7c-8b1f-49ca-8de0-6ee0882180ce) guidelines found that password length is a primary factor in determining the strength of a password while composition and complexity rules provide marginal security benefits.
as-6 Password Salting and Hashing
risk-statement Without salting and hashing, in case of a data breach, exposed passwords can be easily extracted, leading to potential compromise of user accounts and sensitive information. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T01:04:05+0800Store passwords as salted hashes using a password hashing scheme that is resistant to offline attacks such as those described in NIST [SP 800-63b](#e59c5a7c-8b1f-49ca-8de0-6ee0882180ce). The salt should be:
Generated using a cryptographically secure pseudo-random number generator in accordance with industry standards;
At least 32 bits long; and
Randomly generated for each account.
Refer to NIST [SP 800-90Ar1](#64357b22-9868-4453-9b9e-36c2665d12b3) for suitable pseudo-random number generators. Refer to NIST [SP 800-63b](#e59c5a7c-8b1f-49ca-8de0-6ee0882180ce) Memorized Secret Verifiers section for suitable hashing schemes, including Argon2, scrypt, and PBKDF2. For application source code, use a cryptographically secure pseudo-random number generator function instead of an insecure one, such as crypto.randomBytes instead of Math.random in Node.js and java.security.SecureRandom.nextBytes instead of java.util.Random in Java.
as-7 Access Control Check Enforcement
risk-statement Failure to perform access control checks on authenticated requests increases the risk of unauthorised access to sensitive data or functionalities, potentially leading to data breaches and misuse of system resources. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T00:47:04+0800Perform access control checks on all authenticated requests.
Utilise authorisation filters or middleware to force all authenticated requests to undergo access control checks.
as-8 Application Secrets Management
risk-statement Exposure of sensitive information and unauthorised access to system credentials may occur if application secrets are stored without encryption or if hard-coded in source code. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T01:04:05+0800Encrypt and store application secrets in a secret management solution with appropriate access controls and do not hard-code secrets in source code.
Secret management solutions include cloud solutions like AWS Secrets Manager and Azure Key Vault as well as cloud-agnostic solutions like HashiCorp Vault and CyberArk Conjur.
as-9 Content Security Policy (CSP)
risk-statement Without minimally permissive Content Security Policy (CSP) headers, the risk of cross-site scripting attacks, leading to unauthorised script execution and potential data theft, is increased. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T00:47:04+0800Set minimally permissive CSP response headers to mitigate cross-site scripting attacks.
Utilise the relevant fetch directives such as `default-src`, `script-src`, `style-src`, `connect-src`, `img-src`, `media-src` and `object-src` to prevent loading of scripts from malicious sources. Refer to the [OWASP Secure Headers Project](#3101b27c-d39c-49fc-b227-e77df8c5e358) Best Practices for recommended header values.
as-10 HTTP Strict Transport Security (HSTS)
risk-statement Failure to implement HTTP Strict Transport Security (HSTS) with a sufficient maximum age may expose the system to protocol downgrade attacks, compromising the security of communication channels. published 2023-10-24T13:54:12+0800 last-modified 2024-02-06T00:47:04+0800Set HTTP Strict Transport Security (HSTS) response headers with a maximum age value of at least 1 year (31536000 seconds) to mitigate protocol downgrade attacks.
Refer to the [OWASP Secure Headers Project](#3101b27c-d39c-49fc-b227-e77df8c5e358) Best Practices for recommended header values.
as-11 Session Management
risk-statement Not verifying a user regularly and at suitable checkpoints could allow someone who has access to the user's account to carry out unauthorised actions. published 2024-01-02T16:00:00+0000 last-modified 2024-02-09T22:54:15+0800Require users to re-authenticate after their session exceeds {{ insert: param, as-11_prm_1 }} hour(s) or terminate the session.
NIST SP 800-63B recommends re-authentication once per 30 days for Authenticator Assurance Level 1, 12 hours or 30 minutes inactivity for Authenticator Assurance Level 2, and 12 hours or 15 minutes inactivity for Authenticator Assurance Level 3. In addition to time period, system can consider re-authentication when roles, authenticators or credentials change or when the execution of privileged functions occurs.
as-12 Malware Scanning of Uploaded Files
risk-statement Without scanning uploaded files for malware, there's an increased risk of exploits or infection for consumers of the files. published 2024-04-16T16:00:00+0000 last-modified 2024-04-16T16:00:00+0000Scan file uploads for malware before further processing by the system or users.
Consider uploading the files to temporary storage for malware scanning on ephemeral compute like serverless functions before moving safe files to another storage for further processing or unsafe files to quarantine storage.
sc Software Supply Chain
sc-1 Code Repository
risk-statement Absence of centralised code repository and version control increases the risk of code inconsistencies, loss of code history, and difficulties in collaboration, potentially leading to errors and security vulnerabilities. published 2023-08-01T01:03:42+0800 last-modified 2024-02-06T01:04:05+0800Manage the codebase in a central code repository with version control.
Use common platforms such as SHIP-HATS 2.0 GitLab or equivalents.
sc-2 Commit Signing
risk-statement Allowing unsigned commits in the code repository introduces the risk of unauthorised or malicious code changes, compromising the integrity and security of the software development process. published 2023-08-01T01:03:42+0800 last-modified 2023-09-04T21:33:34+0800Configure the code repository to reject unsigned commits.
Use GitLab's push rules, GitHub's branch protection rules or similar code repository controls to reject unsigned commits on push.
sc-3 Peer Review
risk-statement Without peer review and approval before merging, there is an increased risk of introducing undetected coding errors, security vulnerabilities, and maintaining codebase consistency may become challenging. published 2023-08-02T11:48:56+0800 last-modified 2024-02-06T01:04:05+0800Require peer review and approval by a designated reviewer before merging into the default branch.
Use GitLab's protected branch and merge request settings, GitHub's branch protection settings or similar code repository controls to enforce this.
sc-4 Dependency Manifest Version Pinning
risk-statement Failure to pin direct and transitive dependency versions in the application's manifest may lead to version drift, introducing compatibility issues, security vulnerabilities, and unpredictability in the software environment. published 2023-08-02T11:48:56+0800 last-modified 2024-02-06T01:04:05+0800Pin direct and transitive dependency versions in the application's dependency manifest.
Dependency manifests such as package-lock.json for npm and Pipfile.lock for pipenv allow you to pin dependency versions.
sc-5 Automated Build and Deploy
risk-statement Inconsistent system provisioning and operation, without automation, may lead to configuration drift, increased likelihood of errors, and heightened vulnerability to security breaches due to manual misconfigurations. published 2023-08-02T11:48:56+0800 last-modified 2024-02-16T01:34:37+0800Provision and operate systems in a consistent manner using automation.
Deploy and maintain Infrastructure and Applications with automated and repeatable tools such as CI/CD Pipelines, Infrastructure as Code (IaC) and other scripts. Automated build and deploy pipelines allow for signing and validation of build artefacts. Do not make manual changes directly into production systems.
sc-6 Dependency Installation during Deployment
risk-statement Failure to install only pinned versions of dependencies during deployment increases the risk of introducing unforeseen changes, compatibility issues, and potential security vulnerabilities into the deployed environment. published 2023-08-02T11:48:56+0800 last-modified 2024-03-31T23:54:33+0800When installing dependencies during deployment, only install pinned versions in the manifest.
Use package manager commands such as npm ci for npm and pipenv sync for pipenv that ensure only versions specified in the manifest are installed rather than the latest version.
sc-7 Software Artefact Signing
risk-statement Unsigned code and container images pose a risk of tampering, impersonation, and the injection of malicious code during the build process, compromising the integrity and security of the deployed software. published 2023-08-02T11:48:56+0800 last-modified 2024-03-31T23:54:39+0800Sign software artefacts such as code and container images using a trusted source during build.
Use tools or services like Cosign or AWS Signer to sign and verify code.
sc-8 Software Artefact Signature Verification
risk-statement Without verifying the signatures of code and artefacts before deployment or runtime, there's an increased risk of deploying tampered or malicious software, compromising the integrity and security of the system. published 2023-08-02T11:48:56+0800 last-modified 2024-03-31T23:54:45+0800Verify the signatures of code and artefacts before deployment or runtime.
Implement a signature verification step such as a pipeline stage or Kubernetes Admission Controller.
sc-9 Internal Code Collaboration and Sharing
risk-statement Restricting code repositories to closed source can result in duplicated efforts, hinder collaborative learning, and lead to missed bugs or vulnerabilities. published 2024-01-25T00:00:00+0800 last-modified 2024-03-31T23:54:54+0800Share source code within Government to enhance code quality, accelerate innovation, and improve problem-solving efficiency.
Adopt Innersource practices for internal collaboration, utilizing platforms like SHIP-HATS GitLab to manage and share code repositories in Government. Source code should be evaluated for suitability for innersourcing, such as the use of confidential algorithms or embedded sensitive data. The Innersource guidelines published in Developers Portal provide a useful framework for code sharing.
st Security Testing
st-1 Vulnerability Assessment
risk-statement Without regular vulnerability assessment scans, hosts remain exposed to undetected security vulnerabilities or misconfigurations, increasing the risk of exploitation and unauthorised access to critical systems. published 2023-08-02T10:22:32+0800 last-modified 2024-05-10T01:26:00+0800Run regular {{ insert: param, st-1_prm_1 }} vulnerability assessment scans for eligible hosts.
Select agent-based or network-based scans as necessary. Implement authenticated scans where possible for greater coverage. Use scanners such as Amazon Inspector or Microsoft Defender for Cloud for continuous scanning of cloud systems. For on-premises systems or systems that require periodic scans, subscribe to Vulnerability Management System (VMS).
st-2 Cloud Security Posture Management
risk-statement Lack of continuous configuration scans through cloud security posture management increases the risk of misconfigurations in cloud assets, leading to security vulnerabilities, data breaches, and unauthorised access. published 2023-08-02T10:22:32+0800 last-modified 2024-02-06T00:47:04+0800Set up cloud security posture management that performs continuous configuration scans on cloud assets.
Use cloud security posture management tools such as CloudSCAPE, AWS Security Hub, and Datadog Cloud Security Posture Management.
st-3 Vulnerability Disclosure Programme
risk-statement Publicly disclosing vulnerabilities without following a responsible disclosure process increases the risk of malicious exploitation; responsible disclosure via the Government Vulnerability Disclosure Programme ensures a coordinated and secure approach to addressing vulnerabilities. published 2023-08-02T10:22:32+0800 last-modified 2024-02-06T01:04:05+0800Display a way to responsibly disclose vulnerabilities via the Government Vulnerability Disclosure Programme.
Add a link to https://go.gov.sg/report-vulnerability on all pages, such as in the footer.
st-4 Penetration Testing
risk-statement Without conducting and documenting penetration tests, there's an increased risk of undetected security weaknesses, leaving the application susceptible to exploitation, data breaches, and unauthorised access. published 2023-08-02T10:22:32+0800 last-modified 2024-02-09T22:54:15+0800Conduct and document a penetration test by internal teams or independent external parties every {{ insert: param, st-4_prm_1 }} day(s).
A white-box penetration test should be performed to effectively test the application.
st-5 Vulnerability Management
risk-statement Failure to promptly remediate vulnerabilities increases the risk of potential exploits, security breaches, and prolonged exposure to known vulnerabilities in the system. published 2023-08-02T10:22:32+0800 last-modified 2024-02-09T22:54:15+0800Triage and then remediate or risk accept all true positive vulnerability findings discovered through security testing within the following timeframe based on severity:
Critical: {{ insert: param, st-5_prm_1 }} day(s)
High: {{ insert: param, st-5_prm_2 }} day(s)
Medium: {{ insert: param, st-5_prm_3 }} day(s)
Low: {{ insert: param, st-5_prm_4 }} day(s)
Seek approval from the appropriate approving authority for risk acceptance.
ns Network Security
ns-1 Public and Private Subnet Segmentation
risk-statement Failure to segregate private and public resources within distinct subnets in a virtual network increases the risk of unauthorised access to sensitive data, as private resources may be exposed to the public internet, compromising the overall security of the infrastructure. published 2023-08-02T14:26:27+0800 last-modified 2024-02-06T01:04:05+0800Place private resources (e.g., databases) in private subnets and public resources (e.g., reverse proxies, web servers) in public subnets within a virtual network.
This control does not apply to serverless resources (API Gateways), static sites or assets fronted by CDNs (e.g., CloudFlare, CloudFront) which are located outside of the virtual network. Private subnets do not allow direct connections from the internet while public subnets do. However, resources in private segments can connect to the internet via NAT Gateways in public subnets in the same virtual network.
ns-2 Access Restrictions on CSP Resources Outside Virtual Network
risk-statement Lack of access restrictions raises the risk of unauthorised access, data exposure, and potential misuse of critical services, compromising the overall security posture. published 2023-08-02T14:26:27+0800 last-modified 2024-02-06T00:47:04+0800Restrict access to CSP resources outside of a virtual network (e.g., Lambda, DynamoDb, API Gateways, S3, CloudFront) using access controls or application layer authorisation.
Apply access restrictions appropriate to the resource type. Access through interface VPC endpoints is only required if the client is hosted in a private subnet. For example:
* Restrict access to DynamoDB with IAM policies.
* Restrict access to API Gateway with Lambda Authorizers or authorisation middlewares at the application layer. If the API Gateway is exposed to private subnets, create a [private API](#38e183ce-b5ab-420a-b910-94c444e878f3).
* Restrict access to S3 Buckets with IAM policies and block public access from the internet.
ns-3 Deny by Default - Allow by Exception
risk-statement Without network access controls, there's an increased risk of unauthorised or malicious network access, leading to potential security breaches and compromise of system integrity. published 2023-08-11T22:26:01+0800 last-modified 2024-02-09T22:54:15+0800Deny network communications traffic by default and allow network communications traffic by exception at managed interfaces.
Configure network access control lists and security groups to deny all traffic by default. Only allow traffic to and from specific hosts and ports by exception. For egress traffic to the internet, consider whitelisting domains at the application layer or DNS resolver rather than just hosts or ports at the transport layer.
ns-4 Inter-Private Network Connectivity
risk-statement When routing through the internet, there's an increased risk of man-in-the-middle and spoofing attacks. Allowing bidirectional access between networks without fine-grained access controls increases the risk of unauthorized access, potential data exfiltration, and compromise of network security compared to unidirectional access to specific resources. published 2023-08-11T22:26:01+0800 last-modified 2024-02-06T00:47:04+0800Route network traffic between private networks without going through the internet.
Use CSP Private endpoint services (e.g., AWS PrivateLink with VPC endpoints) when you want to allow one or more consumer VPCs unidirectional access to a specific service or set of instances in the service provider VPC. Otherwise, use VPC peering and Transit Gateway when you want to enable layer-3 IP connectivity between VPCs. Refer to the [Multi-VPC AWS Network Infrastructure Whitepaper](#9022563f-00b5-48d1-99a6-187503e7f869) for further guidance.
ns-5 Network and Application Layer Filtering
risk-statement Lack of filtering for direct traffic from the internet exposes the system to the risk of network and application layer attacks, increasing the likelihood of unauthorised access, denial-of-service incidents, and compromise of sensitive data. published 2023-08-11T22:26:01+0800 last-modified 2024-02-06T01:04:05+0800Filter direct traffic from the internet to protect against network and application layer attacks.
Deploy the following as required:
* Web Application Firewall
* Distributed Denial of Service Protection (e.g., AWS Shield)
* Content Delivery Network (e.g., CloudFront)
ns-6 Valid and Trusted SSL/TLS Certificates
risk-statement Using invalid SSL/TLS certificates introduces the risk of compromised encryption, man-in-the-middle attacks, and potential unauthorised access to sensitive information. published 2023-08-11T22:26:01+0800 last-modified 2024-02-09T23:02:51+0800Ensure that deployed SSL/TLS certificates are:
signed by a trusted root Certificate Authority;
match the domain name of the service they are issued for;
not expired; and
not revoked.
Configure a certificate manager that auto-renews certificates and sends alerts before expiry (e.g., AWS Certificate Manager). Otherwise, automate these functions separately.
ns-7 Secure Inter-Service Communication
risk-statement Failure to ensure secure communications between services increases the risk of unauthorised access, data breaches, and potential manipulation of sensitive information during transit. published 2023-08-11T22:26:01+0800 last-modified 2024-01-19T17:00:00+0800Ensure communications between services are secure by making them authenticated, authorised and encrypted.
Design and build inter-service communications (e.g., databases, microservices) to be authenticated, authorised and encrypted (e.g., via API gateways, proxies, private endpoint services, message queues, or service meshes). It is recommended to log communication (such as access logs, transaction logs or payloads) between services for detection, monitoring and investigation of incidents.
ns-8 Secure Government Enterprise Network (GEN) connectivity
risk-statement Routing network traffic through a secure intermediary mitigates the risk of unauthorised access and cross-network compromise in the case of bridging or direct connectivity. published 2023-08-23T23:58:33+0800 last-modified 2023-09-18T16:12:40+0800Route network traffic between on-premises systems and GCC systems through a secure intermediary.
Design and build secure communications to or from on-premises systems (e.g. Government Enterprise Network (GEN)) through a Gateway rather than direct connectivity (e.g. via API gateways, Application proxies or private endpoint services).
ns-9 Intrusion Prevention System (IPS)/Intrusion Detection System (IDS)
risk-statement Absence of network or host IPS or IDS in the network increases the likelihood of undetected intrusions, putting sensitive data and system integrity at risk. published 2023-10-27T16:02:27+0800 last-modified 2024-02-06T01:04:05+0800Set up and configure an Intrusion Prevention System (IPS)/Intrusion Detection System (IDS) in the network.
Configure network or host IPS/IDS to detect malicious traffic to/from public or untrusted networks.
ns-10 Private Network Connectivity
risk-statement Weak private network security may expose our network to malicious activities, jeopardizing the confidentiality, integrity, and availability of critical resources. published 2023-10-27T16:06:38+0800 last-modified 2024-02-09T22:54:15+0800Implement strong access controls, encryption, and logging for remote developer, maintainer, or administrator access to private network resources.
Use strong authentication and MFA (except for mobile GFE). Layered security mechanisms and controls include:
Inspect traffic from gateway to private network;
Terminate all remote access connections in a dedicated network segment within the network and restrict access to only systems and services allowed by the Agencies; Implement strong encryption for remote access into school staff network; Only authorised Government Furnished Equipment (GFE) shall be used for remote access connection to SSN; Make sure that remote access connections are not perpetual or to re-authenticate remote users to the VPN gateway on a periodic basis (such as every four hours); Set the maximum number of consecutive failed authentication attempts before account lockout for remote access into SSN; and Make sure that split tunnelling is not implemented.
ns-11 Alerts on Firewall Configuration Changes
risk-statement Any unintended changes to firewall rules can significantly lower the perimeter defence of a network. published 2024-02-29T16:06:38+0800 last-modified 2024-02-06T01:04:05+0800Generate alerts to inform appointed administrators on changes to firewall rules, including the enabling or disabling of rules.
Implement real time alerts to inform administrators of creation, deletion, modification, enabling and disabling of firewall rules. Also alert administrators when unusual or sudden spike/drop in utilisation of firewall's system resources.
br Backup and Recovery
br-1 Backup
risk-statement Without regular backups stored in a secure and separate location, there is an increased risk of data loss, system failures, and extended downtime in the event of accidental deletion, hardware failures, or malicious attacks. published 2023-08-10T18:00:44+0800 last-modified 2024-02-06T01:04:05+0800Regularly backup all important data and systems, and store backups in a secure and separate location.
Use default CSP-managed backup services (e.g., AWS Backup, Azure Backup, GCP Backup and DR Service). Consider alternative backup services only when default CSP services cannot be used. Store backups and snapshots separately to primary data storage with data encrypted-at-rest.
br-2 Recovery Testing
risk-statement Failure to regularly test recovery processes may result in ineffective response during actual incidents, increasing the risk of prolonged downtime, data loss, and compromised business continuity in the event of a disaster or system failure. published 2023-08-10T18:00:44+0800 last-modified 2024-02-06T01:04:05+0800Conduct regular testing of recovery processes to ensure their effectiveness.
Ensure each test verifies the system's ability to fully restore all data and services.
br-3 Backup Retention
risk-statement Lack of prevention measures against the modification or deletion of backups for the specified duration increases the risk of data loss, unauthorised alterations, and potential inability to recover from incidents, compromising the integrity and availability of critical information. published 2023-08-28T17:32:36+0800 last-modified 2024-02-09T22:54:15+0800Prevent backups from being modified or deleted for {{ insert: param, br-3_prm_1 }} day(s) or as stipulated in the agency's data retention policies.
Use S3 Object Lock or immutable storage for Azure Blob Storage to enforce time-based retention policies.
dp Data Protection
dp-1 Data Residency
risk-statement Failure to enforce data residency of primary data in Singapore may lead to legal and regulatory compliance issues, privacy concerns, and potential unauthorised access or storage of sensitive data outside the jurisdiction, increasing the risk of legal consequences and data breaches. published 2023-08-10T23:29:40+0800 last-modified 2024-02-06T01:04:05+0800Enforce data residency of primary data in Singapore.
Use the Singapore region of cloud service providers for compute and storage of primary data, such as ap-southeast-1 for AWS.
dp-2 Data at Rest Encryption
risk-statement Without encrypting data at rest, there's an increased risk of unauthorised access and data exposure in the event of physical theft, unauthorised access to storage media, or compromised security controls, compromising the confidentiality of stored information. published 2023-08-10T23:29:40+0800 last-modified 2024-02-06T01:04:05+0800Encrypt data at rest.
Many CSP services encrypt data at rest by default but this should be confirmed and validated depending on service usage.
dp-3 Data in Transit Encryption
risk-statement Failure to encrypt data in transit increases the risk of unauthorised interception and eavesdropping, potentially leading to data breaches, unauthorised access, and compromise of sensitive information during transmission. published 2023-08-10T23:29:40+0800 last-modified 2024-02-06T01:04:05+0800Encrypt data in transit.
While some CSP services transparently encrypt data in transit at the network layer, data at the application layer should be encrypted using protocols such as Transport Layer Security (TLS).
dp-4 Government on Commercial Cloud (GCC)
risk-statement Hosting higher-sensitivity systems in Government on Commercial Cloud (GCC) ensures compliance with security classifications, reducing the risk of unauthorised access and maintaining data confidentiality according to government security standards. published 2023-08-18T12:51:56+0800 last-modified 2024-02-06T00:47:04+0800Host systems classified as CONFIDENTIAL (CLOUD-ELIGIBLE), RESTRICTED, or OFFICIAL-CLOSED on Commercial Cloud hosting environments in GCC.
GCC allows oversight to be maintained at the Whole-of-Government level and implements several controls by default.
dp-5 Sanitisation
risk-statement Violating this control can expose government data to unauthorised users. published 2023-10-27T16:50:47+0800 last-modified 2024-02-06T01:04:05+0800Sanitise all hardware that stores data at rest. Shred or incinerate data storage meant for retirement.
Use industry standards such as
a) Peter Gutmann Secure Deletion;
b) Bruce Schneier Algorithm
c) US Department of Defence's Standards (DoD 5220.22-M).
dp-6 Witness Sanitisation and Destruction of Storage Devices
risk-statement Ensuring storage devices are sanitised or destroyed will eliminate the possibility of unauthorised or unintended data retention. published 2024-02-29T16:50:47+0800 last-modified 2024-02-06T01:04:05+0800Witness the sanitisation and destruction process to ensure data is removed from storage.
Establish a SOP to ensure sanitisation and destruction are witnessed by an agency staff.
lm Logging and Monitoring
lm-1 Separate Log Storage
risk-statement Storing logs in a repository separate from the audited system or component enhances security by reducing the risk of tampering, unauthorised access, and manipulation of audit trails, ensuring the integrity and reliability of log data for forensic analysis and compliance purposes. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T01:04:05+0800Store logs in a repository that is part of a different system or system component than the system or component being audited.
Send logs to the separate storage as soon as possible after the logged event. For cloud audit logs, store them in a separate service or account (such as AWS Organisation Cloudtrail in GCC). Sending logs to the Government Cyber Security Operations Centre (GCSOC) or the central Government Commercial Cloud (GCC) log bucket can also satisfy this control.
lm-2 Tamper-Resistant Log Storage
risk-statement Without protection measures, logs are susceptible to unauthorised access, modification, or deletion, leading to the risk of tampering, loss of crucial audit information, and compromised forensic analysis capabilities during security incidents. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T01:04:05+0800Protect logs from unauthorised access, modification, and deletion.
Apply access control policies to logs based on the principle of least privilege. As far as possible, only read access should be granted. Logs sent to GCC Central Logs are tamper-resistant.
lm-3 Network Flow Logging
risk-statement Failing to log network traffic going to and from network interfaces increases the risk of overlooking suspicious activities, potential security breaches, and the inability to trace and investigate network-related incidents effectively. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T00:47:04+0800Log network traffic going to and from network interfaces.
Enable VPC Flow Logs for AWS or its equivalents.
lm-4 Cloud Management Event Logging
risk-statement Neglecting to log and manage audit events on cloud resources increases the risk of undetected security incidents, compromises visibility into system activities, and hinders effective forensic analysis and compliance monitoring in cloud environments. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T00:47:04+0800Log management and audit events on cloud resources.
Configure CloudTrail for AWS or its equivalents to log management and audit events such as changes to IAM policies and resources.
lm-5 Database Logging
risk-statement Neglecting to log database audit events raises the risk of overlooking unauthorised activities, compromises in data security, and hinders the ability to track and investigate security incidents or compliance violations within the database environment. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T00:47:04+0800Log database audit events.
Enable RDS logging for AWS or its equivalents.
lm-6 Access Logging
risk-statement Failure to log access requests sent to web application firewalls, load balancers, proxies, or web servers increases the risk of overlooking potential security threats, unauthorised access attempts, and compromises visibility into the traffic that could lead to security incidents. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T01:04:05+0800Log access requests sent to web application firewalls, load balancers, proxies or web servers.
Enable AWS WAF logging, Application Load Balancer logging, API Gateways, or their equivalents.
lm-7 Security Event Logging
risk-statement Neglecting to log security events on hosts and other cloud resources increases the risk of undetected security incidents, compromises incident response capabilities, and hinders forensic analysis, limiting the ability to identify and mitigate potential threats. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T00:47:04+0800Log security events on hosts and other cloud resources.
Security events include operating system security events, authentication and audit logs, and endpoint detection and response alerts.
lm-8 Security Log Retention
risk-statement Failure to retain security logs increases the risk of losing crucial historical data, hindering investigations, compliance audits, and the ability to identify and respond to security incidents that occurred beyond a limited timeframe. published 2023-08-16T12:41:27+0800 last-modified 2024-02-09T22:54:15+0800Retain security logs for at least {{ insert: param, lm-8_prm_1 }} day(s).
Security logs include network flow logs, cloud management logs, access logs, database logs and host logs. Retain non-security logs (e.g. application, operations and performance logs) as long as needed for incident resolution and debugging. Consider log lifecycle management automation, such as Amazon S3 Lifecycle configurations.
lm-9 Security Monitoring and Alerting
risk-statement Without configuring security monitoring to identify potential security violations or breaches and send automated alerts, there's an increased risk of delayed or unnoticed security incidents, hindering timely response and mitigation efforts to protect the system from further compromise. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T01:04:05+0800Configure security monitoring to identify potential security violations or breaches and send automated alerts.
Enable Amazon GuardDuty, Microsoft Azure Security Center, or their equivalents.
lm-10 Resource Usage Monitoring and Alerting
risk-statement Lack of resource usage monitoring with automated alerts increases the risk of overlooking abnormal usage patterns, potential resource abuse, and compromises in system performance, hindering the ability to proactively address issues and prevent service disruptions. published 2023-08-16T12:41:27+0800 last-modified 2024-02-06T00:47:04+0800Configure resource usage monitoring to identify abnormal usage and send automated alerts.
Configure Amazon CloudWatch alarms, Azure Monitor alerts, or their equivalents to identify abnormal usage such as spike in usage, access to resources during expected hours, and excessive charges.
lm-11 Service Level Monitoring and Alerting
risk-statement Without effective service level monitoring to identify potential application or service degradation and send automated alerts, there is a risk of failing to meet service availability standards, which could result in user dissatisfaction and reduced reliability. published 2024-01-04T15:30:00+0800 last-modified 2024-02-06T01:04:05+0800Monitor, maintain and alert on service level objectives (SLOs) and indicators (SLIs) to ensure consistent service performance, availability and reliability.
Implement a comprehensive monitoring system that tracks key SLIs and evaluates them against defined SLOs. This will help in identifying potential service level breaches early and take proactive measures to maintain service quality. Examples include Cloudwatch metrics and alerts, Amazon Route 53 health checks, Azure Monitor Application Insights, or their equivalents.
lm-12 Central Security Log Management and Monitoring
risk-statement Lack of central security log management and monitoring increases the risk of delayed or unnoticed security incidents, hindering effective response, and compromising the overall cybersecurity posture. published 2023-10-10T18:06:24+0800 last-modified 2024-05-29T21:17:04+0800Centralise security log management and monitoring with {{ insert: param, lm-12_prm_1 }}.
Tenants on Government Commercial Cloud (GCC) already have Cloud Service Provider (CSP) tenant security logs stored centrally and available for forwarding to Government Cyber Security Operations Centre (GCSOC). Contact GCSOC for subscription and additional services.
lm-13 Database Activity Monitoring
risk-statement Neglecting to monitor database activities for anomalous behaviour increases the risk of undetected security threats, unauthorised access, and compromises in data integrity, hindering the ability to identify and respond to potential database-related incidents. published 2023-10-10T18:06:24+0800 last-modified 2023-10-10T18:06:24+0800Monitor database activities for anomalous behaviour.
Config RDS Activity Streams and logs with alerts or Database Activity Monitoring (DAM) tools to detect unusual authentication, reads or writes to a database.
lm-14 Web Defacement Monitoring
risk-statement Failure to detect and respond to web defacement promptly will lead to prolonged disruption to services. published 2023-10-27T16:50:47+0800 last-modified 2024-05-29T21:20:05+0800Plan for and implement measures to detect and recover from web defacements.
The Government Cyber Security Operations Centre (GCSOC) offers centralised monitoring of web defacements of internet-facing systems.
lm-15 Structured Log Formatting
risk-statement Inconsistent or unstructured log formatting can lead to difficulties in log analysis and monitoring, potentially resulting in missed critical events or delayed response to system anomalies. published 2023-12-20T01:03:42+0800 last-modified 2024-01-04T00:00:00+0800Publish logs in a consistent, structured format that aligns with industry standards for easy parsing and analysis.
For security logs, implement or transform to OCSF (Open Cybersecurity Schema Framework), ECS (Elastic Common Schema) or similar schemas to standardize log formats for better threat detection and analysis. For operational logs, adopt OpenTelemetry or structured JSON formats to facilitate clear, structured, and efficient log analysis for system performance and diagnostics. Consistent log formatting aids in automated parsing and helps in integrating logs from various sources.
lm-16 Key Signals Monitoring
risk-statement Inadequate monitoring of key user-facing signals such as latency, traffic, errors, and saturation can lead to suboptimal service performance, adversely impacting user experience, system efficiency, and increasing the likelihood of system failures. This oversight can significantly detract from service reliability and user satisfaction. published 2024-01-04T15:30:00+0800 last-modified 2024-01-04T15:30:00+0800Monitor key user-facing signals to maintain robust service health and performance.
Implement monitoring of key signals such as latency, traffic, errors, and saturation (the 4 Golden Signals). Regularly track and analyse these indicators for proactive issue detection and resolution. Use this data to identify trends and areas for system improvement, ensuring continuous enhancement in service quality and reliability.
lm-17 Software delivery performance monitoring
risk-statement Failing to measure and improve the software delivery performance can lead to inefficient development processes, reduced software quality and longer recovery times. published 2024-01-04T15:30:00+0800 last-modified 2024-01-04T15:30:00+0800Measure and analyse software delivery performance to optimise development velocity and operational efficiency.
Implement tools and processes to track Deployment Frequency, Lead Time for Changes, Change Failure Rate, and Time to Restore Service (the DORA 4 Key metrics). Use these metrics as benchmarks to drive continuous improvement in the software development and deployment process, enhancing agility, reliability, and responsiveness to changes.
ac Access Control
ac-1 Principle of Least Privilege
risk-statement Violating the principle of least privileges increases the risk of unauthorised access, privilege escalation, and potential security breaches due to unnecessary permissions, compromising the overall security posture. published 2023-08-17T14:31:33+0800 last-modified 2024-02-06T00:47:04+0800Deny access by default and grant only the minimum permissions required for authorised accounts or processes to perform a specific function.
Consider attribute- or feature-based access control for greater customisability and granularity.
ac-2 Multi-Factor Authentication (MFA)
risk-statement Without requiring phishing-resistant Multi-Factor Authentication (MFA) for remote access, there is an increased risk of unauthorised access, credential theft, and potential compromise of sensitive systems, especially for users with elevated privileges. published 2023-08-17T14:31:33+0800 last-modified 2024-02-06T01:04:05+0800Require MFA for remote developer, maintainer, or administrator access at login.
Ensure that the authentication factors are different and independent of the accessing device. For additional security, consider MFA for privileged actions at the application level (such as step-up MFA challenges via PIM tools).
ac-3 Inactive and Expired Accounts
risk-statement Failure to disable or remove unused accounts or credentials with elevated access increases the risk of unauthorised access, as dormant accounts may become targets for exploitation, compromising the security of the system. published 2023-08-17T14:31:33+0800 last-modified 2024-02-09T23:02:29+0800Disable or remove accounts with privileged access within {{ insert: param, ac-3_prm_1 }} day(s) from last day of authorised use or have not been used for {{ insert: param, ac-3_prm_2 }} day(s).
Use automated checks to identify accounts and credentials that should be disabled. For privileged user accounts in applications, consider using automated workflows such as System for Cross-domain Identity Management (SCIM) or identity lifecycle management tools. For cloud service provider accounts, use tools such as AWS Config iam-user-unused-credentials-check to manage Identity and Access Management (IAM) users.
ac-4 Access Review
risk-statement Without regular access reviews and prompt removal of unauthorised or unintended access rights, there is an increased risk of lingering access, potential misuse of privileges, and compromised security, impacting the confidentiality and integrity of sensitive data. published 2023-08-17T14:31:33+0800 last-modified 2024-02-09T22:54:15+0800Perform an access review every {{ insert: param, ac-4_prm_1 }} day(s) and remove unauthorised or unintended privileged access rights within {{ insert: param, ac-4_prm_2 }} day(s).
For privileged user accounts in applications, implement automated review workflows or reports. For cloud service provider accounts and roles, use tools such as AWS IAM Access Advisor or Azure AD Access Review to facilitate and manage access reviews.
ac-5 Endpoint Device Hardening
risk-statement Without requiring hardened endpoint devices for remote access, there's an increased risk of compromised endpoints, potential malware infections, and security breaches, which could lead to unauthorised access and compromise the integrity of systems. published 2023-08-17T14:31:33+0800 last-modified 2024-02-06T01:04:05+0800Require hardened endpoint devices for remote developer, maintainer, or administrator access.
Use Endpoint Management platfoms to continuously check and enforce device security posture and deny access if the hardening requirements are not met. Hardened devices include Government Standard Image Build (GSIB) and Security Suite for Engineering Endpoint Devices (SEED).
ac-6 Default Credentials
risk-statement Failure to change default credentials prior to first use increases the risk of unauthorised access, as default credentials are often well-known and targeted by attackers, compromising the security of the system or device. published 2023-10-02T10:34:05+0800 last-modified 2024-02-06T01:04:05+0800Change default credentials prior to first use.
Identify any default credentials used in any system components before deploying and change them. Configure end-user systems to prompt for password change on first login after account creation or reset.
ac-7 SingPass/CorpPass for External Users
risk-statement Leverage on SingPass or CorpPass to reduce duplication of effort and provide consistent end user experience. published 2023-10-27T16:50:47+0800 last-modified 2024-02-06T01:04:05+0800Use SingPass or CorpPass MFA for digital services that require high level of identity assurance for external users.
For high impact or high risk transactions, use SingPass/CorpPass to identify external users (e.g. citizens). Internal users should use Government managed Single Sign-on (SSO) solutions (such as WOG AAD).
ac-8 Automate account provisioning
risk-statement Manual account and access provisioning can introduce errors and weaknesses, thus making access control measures ineffective and unreliable. published 2023-10-27T15:51:13+0800 last-modified 2024-02-06T01:04:05+0800Implement automation of cloud and application account provisioning and deprovisioning using an account management tool.
Adopt Single Sign-On (SSO) with just-in-time provisioning or account lifecycle management tools (such as SCIM or CAM) to assist with account management. For systems unable to use SSO, it is recommended to leverage account management lifecycle tools with HR records (such as CAM) to automatically provision and de-provision accounts.
ac-9 Endpoint Device Management
risk-statement Unmanaged endpoint devices increase the risk of unauthorized access and potential loss of sensitive information due to the compromise of devices. published 2023-11-29T18:00:00+0000 last-modified 2024-01-19T17:00:00+0800Implement and maintain an endpoint device management solution to ensure the security and integrity of endpoint devices used within the organisation.
Mobile Device Management (MDM) platforms enable management, monitoring, and secure configuration of endpoint devices. This includes enforcing disk encryption, managing configuration, ensuring regular updates, and providing the ability to remotely wipe data in case of device loss or theft.
ac-10 Identity and Device-Based Access Control
risk-statement Relying on direct connections or traditional VPNs for remote access can lead to vulnerabilities, as they do not always incorporate strong identity and device-based security measures. This increases the risk of unauthorized access and potential data breaches. published 2023-11-29T18:00:00+0000 last-modified 2023-11-29T18:00:00+0000Adopt Identity and Device-Based Access Control for secure and context-aware connectivity to private organisational resources.
Use solutions such as Secure Service Edge (SSE), Identity Aware Proxies (IAP) or other Zero Trust services (Entra ID Conditional Access, Okta Device Trust, etc) that integrate identity and device management systems to provide granular access control to resources based on user identity and device posture. For example, Security Suite for Engineering Endpoint Devices (SEED).
ac-11 Single User Endpoints
risk-statement Allowing multiple users to access a single endpoint device can lead to security risks such as data leakage, difficulty in tracking user activities, and increased vulnerability to insider threats. published 2023-12-07T08:00:00+0000 last-modified 2023-12-07T16:00:00+0000Assign each endpoint device to a single designated primary user and enforce the assignment to ensure accountability and enhance security monitoring.
Implement measures such as user authentication and endpoint management with device enrollment to enforce the single primary user per endpoint. If secondary accounts for local device support or maintenance activities consider securing with endpoint privilege management tools.
ac-12 Single Sign-On (SSO) for Internal Users
risk-statement Without Single Sign-On (SSO), there is an increased risk of unauthorized access and compromised user credentials, as users may resort to using weak passwords or reusing credentials across multiple systems, thereby exposing sensitive information to potential security breaches. published 2023-12-07T08:00:00+0000 last-modified 2024-02-06T00:47:04+0800Use Single Sign-On (SSO) for internal users and services.
Configure multi-factor authentication (MFA) at the Single-Sign On (SSO) identity provider (IdP) and ensure that access to the system is only granted after the IdP authenticates the user. WOG AAD is recommended for public officers and TechPass AAD for developers.
cs Container Security
cs-1 Unique Base Container Image Tags
risk-statement Using unique base container image tags instead of rolling tags reduces the risk of unintentional updates, inconsistencies, and potential security vulnerabilities in containerised environments, ensuring a more stable and secure deployment process. published 2023-08-23T23:58:33+0800 last-modified 2024-02-06T01:04:05+0800Use unique base container image tags instead of rolling tags.
Avoid the `latest` tag or other common rolling tags for base images to minimise unintended changes during subsequent builds using the same instruction. A digest SHA can provide a unique identifier for the image if no tag is assigned during build time.
cs-2 Minimal Base Container Images
risk-statement Building container images with minimal base images reduces the attack surface, potential vulnerabilities, and resource overhead, minimising the risk of security exploits and enhancing the overall security posture of the containerised environment. published 2023-08-23T23:58:33+0800 last-modified 2024-02-06T01:04:05+0800Build container images with minimal base images.
Use minimal container images such as alpine, scratch, wolfi, and distroless images as the base image to reduce attack surface.
cs-3 Runtime Container Secrets
risk-statement Providing secrets and sensitive data to the container at runtime instead of image build time reduces the risk of exposing sensitive information in the image and enhances security by ensuring that secrets are managed and updated independently, minimising the risk of unauthorised access or data compromise. published 2023-08-23T23:58:33+0800 last-modified 2024-02-06T01:04:05+0800Provide secrets and sensitive data to the container at runtime instead of image build time.
Ensure no secrets (e.g., TLS certificate keys, cloud provider credentials, SSH private keys, database passwords) are embedded in the container image by using dedicated features like Docker secrets or `podman-secret-create`.
cs-4 Non-Privileged Container User
risk-statement Failure to create a non-root user and set it as the default user in container image build instructions increases the risk of security vulnerabilities, as running containers with root privileges may lead to potential exploitation and compromise of the host system. published 2023-08-23T23:58:33+0800 last-modified 2024-02-06T01:04:05+0800Create a non-root user and set it as the default user in the container image build instructions.
Ensure the non-root user has the minimal set of permissions required to run the container.
cs-5 Dockerfile Linting
risk-statement Without linting Dockerfiles before building container images, there's an increased risk of syntax errors, misconfigurations, and potential security vulnerabilities, compromising the reliability and security of the resulting containerised applications. published 2023-08-23T23:58:33+0800 last-modified 2024-02-06T01:04:05+0800Lint Dockerfiles before building container images.
Use linters such as Hadolint to check the Dockerfile (or similar build file) instructions and flag any issues that contravene best practices. Ensure Dockerfile linting stage is run as part of the Continuous Integration (CI) pipelines.
cs-6 Read-Only Container Root Filesystem
risk-statement Failure to configure the container filesystem as read-only increases the risk of unauthorised modifications, potential tampering, and compromise of containerised applications, as attackers may exploit write access to alter the container's state and integrity. published 2023-08-23T23:58:33+0800 last-modified 2024-01-19T14:00:00+0800Configure the container filesystem to be read-only.
Use security policies (e.g., `readonlyRootFilesystem` for Kubernetes) to prevent any direct writes to the container's root filesystem during runtime and ensure immutable infrastructure. Do not directly apply patches or alter running containers as the containers are ephemeral and patches will disappear upon redeploy. Apply patches by rebuilding and redeploying container images.
cs-7 Container Image Scanning
risk-statement Failure to scan container images increases the risk of deploying insecure images, potentially exposing the infrastructure to known exploits and compromising the security of the containerised applications during runtime. published 2023-08-23T23:58:33+0800 last-modified 2024-03-31T23:50:41+0800Scan container images in the {{ insert: param, cs-7_prm_1 }} for known vulnerabilities.
Container image scanning tools (e.g., Amazon Inspector, Trivy, Grype) scan the contents of a container image for known vulnerabilities. Configure scans to run automatically and continuously, as well as enable scanning of image on push. Block deployment of container images with HIGH CVE being detected during scan (e.g., using Amazon ECR with Security Hub).
cs-8 Private Container Image Registries
risk-statement Hosting built container images in private registries enhances security by reducing the exposure of sensitive images, minimising the risk of unauthorised access, and maintaining control over image distribution, ensuring a more secure and controlled container deployment process. published 2023-08-23T23:58:33+0800 last-modified 2024-03-31T23:39:47+0800Host built container images in private container registries.
Use only private container registries (e.g., Amazon ECR private registry) to host container images built by the organisation as images may contain proprietary code or sensitive information.
cs-9 Container Orchestrator API Access Control
risk-statement Failure to disable public access to Container Orchestrator API endpoints from the internet increases the risk of unauthorised access, potential exploitation, and security breaches, as exposing these endpoints publicly may lead to unauthorised control and compromise of the container infrastructure. published 2023-08-23T23:58:33+0800 last-modified 2024-03-31T23:39:54+0800Disable public access to Container Orchestrator API endpoints from the internet.
Restrict access to the Container Orchestrator API endpoints (such as the Kubernetes API Server) to specific address ranges or use CSP provided features such as disabling Endpoint public access and Private Clusters to disable public access.
cs-10 Container Workload Segmentation
risk-statement Without separating container workloads into namespaces, there's an increased risk of lateral movement and potential compromise. published 2023-08-23T23:58:33+0800 last-modified 2024-03-31T23:40:00+0800Segregate container workloads to help contain attacks through isolation.
Create Kubernetes namespaces or similar container segmentation controls to isolate different workloads, services or projects.
cs-11 Container Runtime Security
risk-statement Failure to detect and remediate changes to running containers using container runtime protection tools increases the risk of unnoticed compromises, potential exploitation, and unauthorised alterations to containerised applications, compromising the security and integrity of the runtime environment. published 2023-08-23T23:58:33+0800 last-modified 2024-03-31T23:40:06+0800Detect and remediate changes to running containers with container runtime protection tools.
Runtime protection tools, such as AWS EKS Protection, Microsoft Defender for Containers, or Falco, monitor threats and changes to running containers. Vulnerable container instances should be isolated for investigation and replaced with rebuilt and patched images. To avoid persistence if patches do not exist, the container instance should be replaced frequently with an un-compromised image until a patch released. These tools replace Malware Protection (IS-7) and EDR (IS-8) in container environments.
pm Security Programme Management
pm-1 Cybersecurity Incident Management Plan
risk-statement Lack of a cybersecurity incident management plan increases the risk of ineffective response to cybersecurity incidents, hindering the ability to contain, mitigate, and recover from security breaches, potentially leading to extended downtime and data compromise. published 2023-08-18T12:51:56+0800 last-modified 2024-05-15T23:50:24+0800Develop, document, and disseminate an agency-level cybersecurity incident management plan to respond to cybersecurity incidents.
Refer to the Government Incident Reporting and Operations Centre (GIROC) ICT and Data Incident Reporting Resources for an incident management plan and best practices template.
pm-2 Project Cybersecurity Risk Assessment
risk-statement Without developing and documenting a project-level cybersecurity risk assessment before the initial full release, there's an increased risk of overlooking potential security threats, vulnerabilities, and regulatory compliance issues, compromising the overall security posture of the project. published 2023-08-18T12:51:56+0800 last-modified 2024-05-15T23:54:27+0800Develop and document a project-level cybersecurity risk assessment prior to initial full release that includes:
Risk scenario;
Likelihood (from 1-5);
Impact (from 1-5);
Risk Level (Likelihood * Impact; 1-4: Low, 5-9: Medium, 10-14: Medium High, 15-19: High, 20-25: Critical)
Mitigating Measures
Refer to the Cyber Security Agency of Singapore's Cybersecurity Toolkit for IT Teams for an example of a risk assessment template and modify accordingly.
pm-3 System Security Plan (SSP) Development
risk-statement Failure to develop a comprehensive SSP can result in inadequate documentation and security controls, leading to increased vulnerability to cyber threats and non-compliance with regulatory requirements. published 2023-10-05T09:00:00+0800 last-modified 2023-10-10T16:00:00+0800Develop and maintain a comprehensive System Security Plan (SSP) that accurately reflects the system characteristics and security controls in place for the organisation's systems and environments.
The SSP should be detailed, covering all aspects of security controls, roles, responsibilities, and operational processes. Regular updates are necessary to reflect changes in the security landscape and system evolution.
pm-4 Approval of Policy Deviations
risk-statement Unauthorised deviations from the policy can lead to an increased risk of security vulnerabilities and other compliance issues. published 2023-10-12T11:45:00+0800 last-modified 2024-05-12T23:15:32+0800Get approval of deviations from applicable Level 1 profile controls in the default System Security Plans (SSPs) from the agency's ICT and Digitalisation Steering Committee (IDSC) and document these deviations in the customised SSP.
Agencies should seek approval for deviation from their IDSC or delegated approval authority. Controls that are not applicable to the system do not need approval for deviations but the reasons why they are not applicable must be documented in the customised SSP.
pm-5 Central Submission of Approved System Security Plan (SSP)
risk-statement Inconsistent or decentralised submission of the SSP can lead to decreased visibility of security and compliance adoption across Government. published 2023-10-20T08:30:00+0800 last-modified 2023-10-25T14:00:00+0800Submit approved SSPs centrally to maintain a unified and up-to-date repository of security plans and practices.
Reference the IM8 Portal for submitting all approved SSPs.
pm-6 System Documentation
risk-statement Comprehensive documentation of system architecture, components, configurations, and dependencies is essential for effective management, troubleshooting, and security auditing. published 2023-12-20T10:10:10+0800 last-modified 2023-01-10T0:00:00+0800Maintain detailed, up-to-date documentation of all system information and architecture.
Example system documentation includes architecture and network diagrams, architecture decision records, hardware and software inventories, data flows, and configurations. This documentation should be regularly reviewed and updated to reflect changes in the environment. Documentation should be accessible to relevant personnel while ensuring sensitive information is protected. Adopt documentation-as-code practices and machine-readable formats (such as Markdown, JSON, YAML, etc), to facilitate version control, collaboration, and automation in maintaining documentation.
pm-7 Certification
risk-statement Third-party certification provides assurance that security controls have been properly implemented in the Software as a Service (SaaS) provider. published 2024-01-14T01:35:16+0800 last-modified 2024-02-09T22:54:15+0800Ensure that the Software as a Service (SaaS) provider is certified with {{ insert: param, pm-7_prm_1 }}.
Ensure that the certification is up-to-date. Avoid certifications that are only attestations without a pass/fail element.
pm-8 Software as a Service (SaaS) Service Level Agreement
risk-statement Without a service level agreement the availability of the Software as a Service (SaaS) system may be poorly maintained by the provider. published 2024-01-14T02:04:59+0800 last-modified 2024-01-14T02:06:19+0800Obtain a service level agreement with the Software as a Service (SaaS) provider that covers uptime, response times, downtime notifications, support avenues, and support content.
Ensure that the service level agreement is regularly checked for compliance.
is Infrastructure Security
is-1 Management Agents
risk-statement Without installing management agents on hosts, there is an increased risk of manual misconfigurations, difficulty in maintaining consistent configurations, and potential security vulnerabilities due to reduced visibility and ability to manage hosts effectively. published 2023-09-01T16:44:29+0800 last-modified 2024-02-06T00:47:04+0800Install CSP management agents on hosts to remotely and securely manage their configurations.
Most CSP compute instances preinstall management agents (e.g., AWS Systems Manager Agent, Azure Windows VM Agent) by default. If the image does not come with the preinstalled agent, install manually.
is-2 Automated Patch Management
risk-statement Failure to automate patching of operating systems and applications increases the risk of delayed or missed security updates, leaving systems vulnerable to known exploits and potential security breaches, compromising the overall security of the environment. published 2023-09-01T16:44:29+0800 last-modified 2024-02-06T00:47:04+0800Automate patching of operating systems and applications.
Apply patch baselines via the CSP node management service, unless the patch management process is automated as part of the build and deploy phase. For on-premise systems, use tools like Azure Update Manager to schedule and automatically deploy patches to Windows and Linux OS.
is-3 Restricted Administrator Privileges
risk-statement Without restricting administrator privileges, there is an increased risk of unauthorised access, privilege escalation, and potential security breaches, compromising the integrity and security of the system. published 2023-09-01T16:44:29+0800 last-modified 2024-02-06T01:04:05+0800Restrict administrator privileges by disabling remote login for the root/administrator user and restricting sudo/administrators group access for other users.
Further reduce the attack surface by running common services such as the web server or database without root/administrator/system privileges.
is-4 Least Functionality
risk-statement Failure to disable or remove unnecessary functions, system ports, protocols, software, and services on the host increases the attack surface, potential vulnerabilities, and the risk of exploitation, compromising the overall security and performance of the system. published 2023-09-01T16:44:29+0800 last-modified 2024-02-06T01:04:05+0800Disable or remove unnecessary functions, system ports, protocols, software, and services on the host.
Follow the principle of least functionality to configure the host to carry out only its intended purpose. CSP node management services can provide an inventory of software and services (e.g., AWS Systems Manager Inventory). Vulnerability assessment scanners (e.g., AWS Inspector) can also identify software vulnerabilities and network exposure.
is-5 Host System Hardening
risk-statement Without hardening the operating system configuration according to industry standards, there's an increased risk of security vulnerabilities, unauthorised access, and potential exploitation, compromising the overall security posture and resilience of the operating system. published 2023-09-01T16:44:29+0800 last-modified 2024-02-06T01:04:05+0800Harden the host configuration with reference to industry standards.
Select the appropriate benchmark for the host such as from the [NIST National Checklist Program](#521952dd-5c57-4277-a069-4dae6bc0c28d) or [CIS Benchmarks](#09ba067b-8923-4f22-bb31-b8619edcaa07). Automate the configuration process or use hardened images instead of manually configuring.
is-6 Remote Administration
risk-statement Using remote administration tools enhances security by providing controlled and audited access, reducing the risk of unauthorised activities, and improving overall management of privileged identities. published 2023-09-01T16:44:29+0800 last-modified 2024-02-06T00:47:04+0800Use remote administration tools instead of direct SSH or RDP.
In production environments, use remote administration (e.g., AWS Systems Manager Session Manager, AWS Systems Manager Fleet Manager, GCC Privileged Identity Management) only for break glass scenarios where remote monitoring and automation is not available. Document and remediate gaps in monitoring and automation to minimise the need for remote administration. If SSH is still required and remote administration tools are not available, only use it within a private non-production environment such as an encrypted tunnel and authenticate with short-lived certificates.
is-7 Malware Protection
risk-statement Without malware protection, there's an increased risk of undetected malicious activities, potential data breaches, and compromise of host systems, highlighting the importance of proactive measures to ensure the security and integrity of the environment. published 2023-09-20T11:06:17+0800 last-modified 2024-02-06T00:47:04+0800Detect and quarantine malware on hosts with anti-malware tools.
Configure anti-malware tools for all compute hosts (e.g. AWS Guardduty Malware Protection, Azure Antimalware, Trend Micro CloudOne). These tools should be kept up-to-date with the latest malware signatures. Regular scans should be scheduled to detect and quarantine potential threats.
is-8 Endpoint Detection and Response (EDR)
risk-statement Failure to monitor security threats on hosts with an Endpoint Detection and Response (EDR) tool increases the risk of undetected advanced threats, compromises in host security, and delayed response to potential security incidents, highlighting the need for continuous monitoring and proactive threat detection. published 2023-09-20T11:06:17+0800 last-modified 2024-02-06T00:47:04+0800Monitor security threats on hosts with an EDR tool.
Implement EDR tools for all compute hosts. Security incident response should be planned and documented for the tool. EDR tools with built-in malware protection should be favoured to reduce additional agents.
is-9 End-of-Support (EOS) Assets
risk-statement EOS assets can introduce security vulnerabilities as the assets are no longer provided with security fixes. published 2023-10-27T15:48:25+0800 last-modified 2024-05-15T23:39:47+0800Ensure deployed {{ insert: param, is-9_prm_1 }} assets have not reached end-of-support (EOS). Use of EOS assets will require risk acceptance by approved authority.
Identify, track and replace EOS assets in a timely manner. Regularly review assets to identify upcoming EOS timeframe and replace them ahead of EOS date.
is-10 Synchronise time clocks
risk-statement The lack of synchronised clocks introduces significant risks, including increased security vulnerabilities, data integrity issues, and challenges in troubleshooting. published 2024-02-27T15:48:25+0800 last-modified 2024-02-06T01:04:05+0800Synchronise internal clocks to a common reference time source.
Use common time source such as Network Time Protocol (NTP). In the cloud, it is recommended to use the default time sources provided by the CSPs.
is-11 Central Domain Name Registration
risk-statement Improper management of domain names increase the risk of phishing attacks or domain takeovers. published 2024-03-18T01:21:38+0800 last-modified 2024-05-21T00:56:33+0800Register .gov.sg and .edu.sg domain names with GovTech as the sole registrar.
Use the Whole of Government Domain Name Server (DNS) portal on the IT Service Management (ITSM) portal to register domain names.
is-12 DNS Security Extensions (DNSSEC)
risk-statement Insecure domain name resolution can lead to man-in-the-middle attacks caused by DNS spoofing or DNS cache poisoning. published 2024-03-18T01:17:33+0800 last-modified 2024-03-18T01:17:33+0800Implement DNS Security Extensions (DNSSEC) for public DNS records and servers.
DNS services such as WOG DNS, Amazon Route 53 and Cloudflare support DNSSEC configuration.
is-13 Defensive Domain Name Registration
risk-statement Malicious use of domain names similar to actual Government domain names increases the risk of phishing and spoofing. published 2024-05-21T01:14:44+0800 last-modified 2024-05-21T01:14:44+0800Register second (.sg) and third (.com.sg, .org.sg, .net.sg, .edu.sg) level domain name variants of the system's primary domain name.
Consider defensive registration of domain names with typographical variants of the system's primary domain name. The Whole of Government Domain Name Server (DNS) portal on the IT Service Management (ITSM) portal automatically includes the second and third level domain names.
is-14 Singapore SMS Sender ID Registry Registration
risk-statement Lack of Sender ID registration allows malicious entities to spoof legitimate Government SMSes. published 2024-05-21T02:15:22+0800 last-modified 2024-05-21T02:15:22+0800Register and use whitelisted SMS Sender IDs with the Singapore SMS Sender ID Registry for sending SMSes.
Agencies must use the "gov.sg" Sender ID via the Postman tool to send SMSes to members of public unless exempted. Whitelist Sender IDs used to send SMSes and blacklist Sender IDs which are variants of the whitelisted Sender IDs, agency names, or names of services.
sd Secure Development
sd-1 Push Protection for Secrets
risk-statement Failure to configure the code repository to prevent secrets from being pushed introduces the risk of inadvertent exposure, unauthorised access, and potential misuse of sensitive information, compromising the security of the codebase and associated systems. published 2023-09-04T21:33:34+0800 last-modified 2024-02-06T01:04:05+0800Configure the code repository to prevent secrets from being pushed to the repository.
Use GitLab's push rules or GitHub's push protection to reject secrets on push.
sd-2 Default Branch Push Permissions
risk-statement Without configuring the code repository to prevent pushes, including force pushes, to the default branch, there's an increased risk of unintentional or malicious changes, potential loss of code history, and compromised version control, impacting the integrity and reliability of the software development process. published 2023-09-04T21:33:34+0800 last-modified 2023-09-07T09:39:34+0800Configure the code repository to prevent pushes (including force pushes) to the default branch.
Use GitLab's protected branch and merge request settings or GitHub's branch protection settings to enforce this.
sd-3 Continuous Integration (CI) Tests
risk-statement Failing to require passing Continuous Integration (CI) tests before merging into the default branch increases the risk of introducing faulty code, potential regressions, and compromise of code quality. published 2023-09-04T21:33:34+0800 last-modified 2023-09-04T21:33:34+0800Require Continuous Integration (CI) tests to pass before merging into the default branch.
Use GitLab's protected branch and merge request settings or GitHub's branch protection settings to enforce this.
sd-4 Static Analysis
risk-statement Without setting up static analysis in the CI/CD pipeline for each merge request and addressing true positive vulnerability findings, there is an increased risk of deploying insecure code to the production branch, potentially leading to security breaches and compromise of the overall system. published 2023-09-04T21:33:34+0800 last-modified 2024-02-06T01:04:05+0800Set up a static analysis job in the {{ insert: param, sd-4_prm_1 }}, and remediate or risk accept true positive vulnerability findings before deploying to production.
Static analysis tools (such as SAST or IaC security scanners) check source code for common vulnerabilities and misconfigurations. By running static analysis tools earlier in the DevSecOps cycle, vulnerabilities can be detected and prevented from being deployed to production.
sd-5 Dependency Scanning
risk-statement Failing to schedule regular dependency scanning to identify vulnerable software libraries and address findings in a timely manner increases the risk of deploying applications with known vulnerabilities, potentially exposing the system to security exploits and compromise. published 2023-09-04T21:33:34+0800 last-modified 2024-03-31T23:51:28+0800Schedule a scan at least every {{ insert: param, sd-5_prm_1 }} day(s) in the {{ insert: param, sd-5_prm_2 }} to identify the use of vulnerable software libraries.
Dependency scanning checks the source code for dependencies with known vulnerabilities. By running scans regularly using bots or software composition analysis (SCA) tools, vulnerabilities arising from outdated dependencies can be quickly detected and patched. Software composition analysis can be performed using tools such as Gitlab, Nexus IQ, or their equivalent, with output in a common SBOM format such as SPDX or CycloneDX.
sd-6 Secret Detection
risk-statement Without setting up secret detection and addressing true positive findings promptly, there's an increased risk of exposing sensitive information, potential unauthorised access, and compromised security. published 2023-09-04T21:33:34+0800 last-modified 2024-02-09T22:54:15+0800Set up secret detection in the {{ insert: param, sd-6_prm_1 }} and remediate true positives within {{ insert: param, sd-6_prm_2 }} day(s).
Ensure that the exposed secret is revoked and purged from the Git history.
sd-7 CI Environment Variable Secrets Management
risk-statement Failing to protect environment variable secrets in CI jobs by limiting them to protected pipelines and masking them in job logs increases the risk of unauthorized access and exposure of sensitive information. published 2023-09-04T21:33:34+0800 last-modified 2023-09-04T21:33:34+0800Protect environment variable secrets used in CI jobs by limiting them to protected pipelines and masking them in job logs.
Use GitLab's CI/CD variable security settings or GitHub's encrypted secrets with the add-mask workflow command.
sd-8 Deployment Environment Segregation
risk-statement Failure to segregate production and non-production environments increases the risk of unauthorized access, data leaks, and denial of service attacks, as compromises in non-production environments may lead to cascading impacts on production systems. published 2023-09-04T21:33:34+0800 last-modified 2024-02-06T00:47:04+0800Segregate production and non-production environments including applications, services, data, secrets, roles, and networks.
Achieve segregation using separate Government on Commercial Cloud (GCC) accounts for environments such as production, development, test, and staging. Account segregation enhances security by limiting exposure, simplifies resource and cost management, maintains configuration integrity, facilitates compliance and auditing and streamlines operational tasks. Deploy and operate environments as similarly as possible to enhance debugging and time-to-market.
dc Datacentre
dc-1 Separate hosting
risk-statement Violating this control can subject government data and systems to access risks leading to compromised systems and data. published 2023-10-27T16:50:47+0800 last-modified 2024-02-06T01:04:05+0800Physically separate Government resources from non-Government resources.
For on-premise environments, ensure government resources are physically stored and secured separately from non-government resources.
dc-2 Physical Access Controls
risk-statement Violating this control can subject government data and systems to access risks leading to compromised systems and data. published 2023-10-27T16:50:47+0800 last-modified 2024-02-06T01:04:05+0800Implement physical access controls to prohibit unauthorised access to the hosting environment or network rooms.
Measures to consider include:
a) personnel security clearance and checks
b) Continuous monitoring
c) Immediate security response
d) Strong authentication card access system to regulate and log access of employees, visitors and contractors to the facility;
e) Guards deployed to guard the facility 24/7;
f) Restrict items (such as unauthorised computing devices) to be brought into the facility;
g) Intrusion Detection System installed to detect unauthorised access;
h) CCTV installed to monitor the facility.