IM8 Reform

2024/05/29

GitHubで見る 出版元ページを開く

メタデータ

uuid dfad1a6f-1aae-43e6-8fc6-10f1771d6dbc
title Instruction Manual 8 Reform
last-modified 2024-05-29T10:17:03.320504+08:00
version 2024.05.30-2

コントロール

as Application Security

as-1 Input Validationrisk-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+0800
statement

Validate all application inputs to ensure that they match the expected type, structure, or format.

guidance

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 Interfacesrisk-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+0800
statement

Use parameterised interfaces for database queries or system commands.

guidance

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 Sanitisationrisk-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+0800
statement

Sanitise all application outputs that will be used to render a HTML document.

guidance

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-Limitingrisk-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+0800
statement

Apply rate-limiting on all authentication mechanisms to deter brute-force attacks.

guidance

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 Requirementsrisk-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+0800
statement

Where 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 }}.

guidance

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 Hashingrisk-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+0800
statement

Store 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:

item

Generated using a cryptographically secure pseudo-random number generator in accordance with industry standards;

item

At least 32 bits long; and

item

Randomly generated for each account.

guidance

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 Enforcementrisk-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+0800
statement

Perform access control checks on all authenticated requests.

guidance

Utilise authorisation filters or middleware to force all authenticated requests to undergo access control checks.

as-8 Application Secrets Managementrisk-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+0800
statement

Encrypt and store application secrets in a secret management solution with appropriate access controls and do not hard-code secrets in source code.

guidance

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+0800
statement

Set minimally permissive CSP response headers to mitigate cross-site scripting attacks.

guidance

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+0800
statement

Set HTTP Strict Transport Security (HSTS) response headers with a maximum age value of at least 1 year (31536000 seconds) to mitigate protocol downgrade attacks.

guidance

Refer to the [OWASP Secure Headers Project](#3101b27c-d39c-49fc-b227-e77df8c5e358) Best Practices for recommended header values.

as-11 Session Managementrisk-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+0800
statement

Require users to re-authenticate after their session exceeds {{ insert: param, as-11_prm_1 }} hour(s) or terminate the session.

guidance

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 Filesrisk-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+0000
statement

Scan file uploads for malware before further processing by the system or users.

guidance

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 Repositoryrisk-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+0800
statement

Manage the codebase in a central code repository with version control.

guidance

Use common platforms such as SHIP-HATS 2.0 GitLab or equivalents.

sc-2 Commit Signingrisk-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+0800
statement

Configure the code repository to reject unsigned commits.

guidance

Use GitLab's push rules, GitHub's branch protection rules or similar code repository controls to reject unsigned commits on push.

sc-3 Peer Reviewrisk-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+0800
statement

Require peer review and approval by a designated reviewer before merging into the default branch.

guidance

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 Pinningrisk-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+0800
statement

Pin direct and transitive dependency versions in the application's dependency manifest.

guidance

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 Deployrisk-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+0800
statement

Provision and operate systems in a consistent manner using automation.

guidance

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 Deploymentrisk-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+0800
statement

When installing dependencies during deployment, only install pinned versions in the manifest.

guidance

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 Signingrisk-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+0800
statement

Sign software artefacts such as code and container images using a trusted source during build.

guidance

Use tools or services like Cosign or AWS Signer to sign and verify code.

sc-8 Software Artefact Signature Verificationrisk-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+0800
statement

Verify the signatures of code and artefacts before deployment or runtime.

guidance

Implement a signature verification step such as a pipeline stage or Kubernetes Admission Controller.

sc-9 Internal Code Collaboration and Sharingrisk-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+0800
statement

Share source code within Government to enhance code quality, accelerate innovation, and improve problem-solving efficiency.

guidance

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 Assessmentrisk-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+0800
statement

Run regular {{ insert: param, st-1_prm_1 }} vulnerability assessment scans for eligible hosts.

guidance

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 Managementrisk-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+0800
statement

Set up cloud security posture management that performs continuous configuration scans on cloud assets.

guidance

Use cloud security posture management tools such as CloudSCAPE, AWS Security Hub, and Datadog Cloud Security Posture Management.

st-3 Vulnerability Disclosure Programmerisk-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+0800
statement

Display a way to responsibly disclose vulnerabilities via the Government Vulnerability Disclosure Programme.

guidance

Add a link to https://go.gov.sg/report-vulnerability on all pages, such as in the footer.

st-4 Penetration Testingrisk-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+0800
statement

Conduct and document a penetration test by internal teams or independent external parties every {{ insert: param, st-4_prm_1 }} day(s).

guidance

A white-box penetration test should be performed to effectively test the application.

st-5 Vulnerability Managementrisk-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+0800
statement

Triage and then remediate or risk accept all true positive vulnerability findings discovered through security testing within the following timeframe based on severity:

item

Critical: {{ insert: param, st-5_prm_1 }} day(s)

item

High: {{ insert: param, st-5_prm_2 }} day(s)

item

Medium: {{ insert: param, st-5_prm_3 }} day(s)

item

Low: {{ insert: param, st-5_prm_4 }} day(s)

guidance

Seek approval from the appropriate approving authority for risk acceptance.

ns Network Security

ns-1 Public and Private Subnet Segmentationrisk-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+0800
statement

Place private resources (e.g., databases) in private subnets and public resources (e.g., reverse proxies, web servers) in public subnets within a virtual network.

guidance

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 Networkrisk-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+0800
statement

Restrict access to CSP resources outside of a virtual network (e.g., Lambda, DynamoDb, API Gateways, S3, CloudFront) using access controls or application layer authorisation.

guidance

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 Exceptionrisk-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+0800
statement

Deny network communications traffic by default and allow network communications traffic by exception at managed interfaces.

guidance

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 Connectivityrisk-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+0800
statement

Route network traffic between private networks without going through the internet.

guidance

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 Filteringrisk-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+0800
statement

Filter direct traffic from the internet to protect against network and application layer attacks.

guidance

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 Certificatesrisk-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+0800
statement

Ensure that deployed SSL/TLS certificates are:

item

signed by a trusted root Certificate Authority;

item

match the domain name of the service they are issued for;

item

not expired; and

item

not revoked.

guidance

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 Communicationrisk-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+0800
statement

Ensure communications between services are secure by making them authenticated, authorised and encrypted.

guidance

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) connectivityrisk-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+0800
statement

Route network traffic between on-premises systems and GCC systems through a secure intermediary.

guidance

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+0800
statement

Set up and configure an Intrusion Prevention System (IPS)/Intrusion Detection System (IDS) in the network.

guidance

Configure network or host IPS/IDS to detect malicious traffic to/from public or untrusted networks.

ns-10 Private Network Connectivityrisk-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+0800
statement

Implement strong access controls, encryption, and logging for remote developer, maintainer, or administrator access to private network resources.

guidance

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 Changesrisk-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+0800
statement

Generate alerts to inform appointed administrators on changes to firewall rules, including the enabling or disabling of rules.

guidance

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 Backuprisk-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+0800
statement

Regularly backup all important data and systems, and store backups in a secure and separate location.

guidance

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 Testingrisk-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+0800
statement

Conduct regular testing of recovery processes to ensure their effectiveness.

guidance

Ensure each test verifies the system's ability to fully restore all data and services.

br-3 Backup Retentionrisk-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+0800
statement

Prevent 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.

guidance

Use S3 Object Lock or immutable storage for Azure Blob Storage to enforce time-based retention policies.

dp Data Protection

dp-1 Data Residencyrisk-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+0800
statement

Enforce data residency of primary data in Singapore.

guidance

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 Encryptionrisk-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+0800
statement

Encrypt data at rest.

guidance

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 Encryptionrisk-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+0800
statement

Encrypt data in transit.

guidance

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+0800
statement

Host systems classified as CONFIDENTIAL (CLOUD-ELIGIBLE), RESTRICTED, or OFFICIAL-CLOSED on Commercial Cloud hosting environments in GCC.

guidance

GCC allows oversight to be maintained at the Whole-of-Government level and implements several controls by default.

dp-5 Sanitisationrisk-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+0800
statement

Sanitise all hardware that stores data at rest. Shred or incinerate data storage meant for retirement.

guidance

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 Devicesrisk-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+0800
statement

Witness the sanitisation and destruction process to ensure data is removed from storage.

guidance

Establish a SOP to ensure sanitisation and destruction are witnessed by an agency staff.

lm Logging and Monitoring

lm-1 Separate Log Storagerisk-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+0800
statement

Store logs in a repository that is part of a different system or system component than the system or component being audited.

guidance

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 Storagerisk-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+0800
statement

Protect logs from unauthorised access, modification, and deletion.

guidance

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 Loggingrisk-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+0800
statement

Log network traffic going to and from network interfaces.

guidance

Enable VPC Flow Logs for AWS or its equivalents.

lm-4 Cloud Management Event Loggingrisk-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+0800
statement

Log management and audit events on cloud resources.

guidance

Configure CloudTrail for AWS or its equivalents to log management and audit events such as changes to IAM policies and resources.

lm-5 Database Loggingrisk-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+0800
statement

Log database audit events.

guidance

Enable RDS logging for AWS or its equivalents.

lm-6 Access Loggingrisk-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+0800
statement

Log access requests sent to web application firewalls, load balancers, proxies or web servers.

guidance

Enable AWS WAF logging, Application Load Balancer logging, API Gateways, or their equivalents.

lm-7 Security Event Loggingrisk-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+0800
statement

Log security events on hosts and other cloud resources.

guidance

Security events include operating system security events, authentication and audit logs, and endpoint detection and response alerts.

lm-8 Security Log Retentionrisk-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+0800
statement

Retain security logs for at least {{ insert: param, lm-8_prm_1 }} day(s).

guidance

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 Alertingrisk-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+0800
statement

Configure security monitoring to identify potential security violations or breaches and send automated alerts.

guidance

Enable Amazon GuardDuty, Microsoft Azure Security Center, or their equivalents.

lm-10 Resource Usage Monitoring and Alertingrisk-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+0800
statement

Configure resource usage monitoring to identify abnormal usage and send automated alerts.

guidance

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 Alertingrisk-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+0800
statement

Monitor, maintain and alert on service level objectives (SLOs) and indicators (SLIs) to ensure consistent service performance, availability and reliability.

guidance

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 Monitoringrisk-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+0800
statement

Centralise security log management and monitoring with {{ insert: param, lm-12_prm_1 }}.

guidance

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 Monitoringrisk-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+0800
statement

Monitor database activities for anomalous behaviour.

guidance

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 Monitoringrisk-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+0800
statement

Plan for and implement measures to detect and recover from web defacements.

guidance

The Government Cyber Security Operations Centre (GCSOC) offers centralised monitoring of web defacements of internet-facing systems.

lm-15 Structured Log Formattingrisk-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+0800
statement

Publish logs in a consistent, structured format that aligns with industry standards for easy parsing and analysis.

guidance

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 Monitoringrisk-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+0800
statement

Monitor key user-facing signals to maintain robust service health and performance.

guidance

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 monitoringrisk-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+0800
statement

Measure and analyse software delivery performance to optimise development velocity and operational efficiency.

guidance

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 Privilegerisk-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+0800
statement

Deny access by default and grant only the minimum permissions required for authorised accounts or processes to perform a specific function.

guidance

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+0800
statement

Require MFA for remote developer, maintainer, or administrator access at login.

guidance

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 Accountsrisk-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+0800
statement

Disable 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).

guidance

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 Reviewrisk-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+0800
statement

Perform 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).

guidance

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 Hardeningrisk-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+0800
statement

Require hardened endpoint devices for remote developer, maintainer, or administrator access.

guidance

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 Credentialsrisk-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+0800
statement

Change default credentials prior to first use.

guidance

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 Usersrisk-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+0800
statement

Use SingPass or CorpPass MFA for digital services that require high level of identity assurance for external users.

guidance

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 provisioningrisk-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+0800
statement

Implement automation of cloud and application account provisioning and deprovisioning using an account management tool.

guidance

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 Managementrisk-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+0800
statement

Implement and maintain an endpoint device management solution to ensure the security and integrity of endpoint devices used within the organisation.

guidance

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 Controlrisk-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+0000
statement

Adopt Identity and Device-Based Access Control for secure and context-aware connectivity to private organisational resources.

guidance

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 Endpointsrisk-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+0000
statement

Assign each endpoint device to a single designated primary user and enforce the assignment to ensure accountability and enhance security monitoring.

guidance

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 Usersrisk-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+0800
statement

Use Single Sign-On (SSO) for internal users and services.

guidance

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 Tagsrisk-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+0800
statement

Use unique base container image tags instead of rolling tags.

guidance

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 Imagesrisk-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+0800
statement

Build container images with minimal base images.

guidance

Use minimal container images such as alpine, scratch, wolfi, and distroless images as the base image to reduce attack surface.

cs-3 Runtime Container Secretsrisk-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+0800
statement

Provide secrets and sensitive data to the container at runtime instead of image build time.

guidance

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 Userrisk-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+0800
statement

Create a non-root user and set it as the default user in the container image build instructions.

guidance

Ensure the non-root user has the minimal set of permissions required to run the container.

cs-5 Dockerfile Lintingrisk-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+0800
statement

Lint Dockerfiles before building container images.

guidance

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 Filesystemrisk-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+0800
statement

Configure the container filesystem to be read-only.

guidance

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 Scanningrisk-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+0800
statement

Scan container images in the {{ insert: param, cs-7_prm_1 }} for known vulnerabilities.

guidance

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 Registriesrisk-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+0800
statement

Host built container images in private container registries.

guidance

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 Controlrisk-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+0800
statement

Disable public access to Container Orchestrator API endpoints from the internet.

guidance

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 Segmentationrisk-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+0800
statement

Segregate container workloads to help contain attacks through isolation.

guidance

Create Kubernetes namespaces or similar container segmentation controls to isolate different workloads, services or projects.

cs-11 Container Runtime Securityrisk-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+0800
statement

Detect and remediate changes to running containers with container runtime protection tools.

guidance

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 Planrisk-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+0800
statement

Develop, document, and disseminate an agency-level cybersecurity incident management plan to respond to cybersecurity incidents.

guidance

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 Assessmentrisk-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+0800
statement

Develop and document a project-level cybersecurity risk assessment prior to initial full release that includes:

item

Risk scenario;

item

Likelihood (from 1-5);

item

Impact (from 1-5);

item

Risk Level (Likelihood * Impact; 1-4: Low, 5-9: Medium, 10-14: Medium High, 15-19: High, 20-25: Critical)

item

Mitigating Measures

guidance

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) Developmentrisk-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+0800
statement

Develop 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.

guidance

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 Deviationsrisk-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+0800
statement

Get 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.

guidance

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+0800
statement

Submit approved SSPs centrally to maintain a unified and up-to-date repository of security plans and practices.

guidance

Reference the IM8 Portal for submitting all approved SSPs.

pm-6 System Documentationrisk-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+0800
statement

Maintain detailed, up-to-date documentation of all system information and architecture.

guidance

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 Certificationrisk-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+0800
statement

Ensure that the Software as a Service (SaaS) provider is certified with {{ insert: param, pm-7_prm_1 }}.

guidance

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 Agreementrisk-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+0800
statement

Obtain a service level agreement with the Software as a Service (SaaS) provider that covers uptime, response times, downtime notifications, support avenues, and support content.

guidance

Ensure that the service level agreement is regularly checked for compliance.

is Infrastructure Security

is-1 Management Agentsrisk-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+0800
statement

Install CSP management agents on hosts to remotely and securely manage their configurations.

guidance

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 Managementrisk-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+0800
statement

Automate patching of operating systems and applications.

guidance

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 Privilegesrisk-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+0800
statement

Restrict administrator privileges by disabling remote login for the root/administrator user and restricting sudo/administrators group access for other users.

guidance

Further reduce the attack surface by running common services such as the web server or database without root/administrator/system privileges.

is-4 Least Functionalityrisk-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+0800
statement

Disable or remove unnecessary functions, system ports, protocols, software, and services on the host.

guidance

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 Hardeningrisk-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+0800
statement

Harden the host configuration with reference to industry standards.

guidance

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 Administrationrisk-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+0800
statement

Use remote administration tools instead of direct SSH or RDP.

guidance

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 Protectionrisk-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+0800
statement

Detect and quarantine malware on hosts with anti-malware tools.

guidance

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+0800
statement

Monitor security threats on hosts with an EDR tool.

guidance

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) Assetsrisk-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+0800
statement

Ensure 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.

guidance

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 clocksrisk-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+0800
statement

Synchronise internal clocks to a common reference time source.

guidance

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 Registrationrisk-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+0800
statement

Register .gov.sg and .edu.sg domain names with GovTech as the sole registrar.

guidance

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+0800
statement

Implement DNS Security Extensions (DNSSEC) for public DNS records and servers.

guidance

DNS services such as WOG DNS, Amazon Route 53 and Cloudflare support DNSSEC configuration.

is-13 Defensive Domain Name Registrationrisk-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+0800
statement

Register second (.sg) and third (.com.sg, .org.sg, .net.sg, .edu.sg) level domain name variants of the system's primary domain name.

guidance

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 Registrationrisk-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+0800
statement

Register and use whitelisted SMS Sender IDs with the Singapore SMS Sender ID Registry for sending SMSes.

guidance

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 Secretsrisk-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+0800
statement

Configure the code repository to prevent secrets from being pushed to the repository.

guidance

Use GitLab's push rules or GitHub's push protection to reject secrets on push.

sd-2 Default Branch Push Permissionsrisk-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+0800
statement

Configure the code repository to prevent pushes (including force pushes) to the default branch.

guidance

Use GitLab's protected branch and merge request settings or GitHub's branch protection settings to enforce this.

sd-3 Continuous Integration (CI) Testsrisk-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+0800
statement

Require Continuous Integration (CI) tests to pass before merging into the default branch.

guidance

Use GitLab's protected branch and merge request settings or GitHub's branch protection settings to enforce this.

sd-4 Static Analysisrisk-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+0800
statement

Set 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.

guidance

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 Scanningrisk-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+0800
statement

Schedule 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.

guidance

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 Detectionrisk-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+0800
statement

Set up secret detection in the {{ insert: param, sd-6_prm_1 }} and remediate true positives within {{ insert: param, sd-6_prm_2 }} day(s).

guidance

Ensure that the exposed secret is revoked and purged from the Git history.

sd-7 CI Environment Variable Secrets Managementrisk-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+0800
statement

Protect environment variable secrets used in CI jobs by limiting them to protected pipelines and masking them in job logs.

guidance

Use GitLab's CI/CD variable security settings or GitHub's encrypted secrets with the add-mask workflow command.

sd-8 Deployment Environment Segregationrisk-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+0800
statement

Segregate production and non-production environments including applications, services, data, secrets, roles, and networks.

guidance

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 hostingrisk-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+0800
statement

Physically separate Government resources from non-Government resources.

guidance

For on-premise environments, ensure government resources are physically stored and secured separately from non-government resources.

dc-2 Physical Access Controlsrisk-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+0800
statement

Implement physical access controls to prohibit unauthorised access to the hosting environment or network rooms.

guidance

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.