Skip to main content

FINOS CCC Object Storage

Object Storage is a data management architecture that handles data as objects, rather than as files or blocks. Each object contains the stored data, metadata, and a unique identifier, making it ideal for storing large amounts of unstructured data such as multimedia files, backups, and archives. It is highly scalable and often used in cloud environments due to its flexibility and accessibility.

Release Details

Version:
DEV
Assurance Level:
Release Manager:
DB
Development Build

Contributors

DT
Development Team

Change Log

  • Development build - no formal changelog available

Capabilities

IDTitleDescriptionThreat Mappings
CCC.ObjStor.CP01Storage BucketsProvides uniquely identifiable segmentations in which data elements may be stored.
0
CCC.ObjStor.CP02Storage ObjectsSupports storing, accessing, and managing data elements which contain both data and metadata.
0
CCC.ObjStor.CP03Bucket Capacity LimitProvides the ability to set a maximum total capacity for objects within a bucket.
0
CCC.ObjStor.CP04Object Size LimitSupports setting a maximum object size for storing objects.
0
CCC.ObjStor.CP05Store New ObjectsSupports for storing a new object in the bucket.
0
CCC.ObjStor.CP06Replace Stored ObjectsSupports for replacing an object in the bucket with a new object for the same key.
0
CCC.ObjStor.CP07Delete Stored ObjectsSupports for deleting objects from the bucket given the object key.
0
CCC.ObjStor.CP08Lifecycle PoliciesSupports defining policies to automate data management tasks, especially those related to cost management.
1
CCC.ObjStor.CP09Object Modification LocksAllows locking of objects to disable modification and/or deletion of an object for a defined period of time.
0
CCC.ObjStor.CP10Object Level Access ControlSupports controlling access to specific objects within the object store.
0
CCC.ObjStor.CP11QueryingSupports performing simple select queries to retrieve only a subset of objects from the bucket.
0
CCC.ObjStor.CP12Storage ClassesProvides different storage classes for frequently and infrequently accessed objects.
0
CCC.Core.CP01Encryption in Transit Enabled by DefaultThe service automatically encrypts all data using industry-standard cryptographic protocols prior to transmission via a network interface.
0
CCC.Core.CP02Encryption at Rest Enabled by DefaultThe service automatically encrypts all data using industry-standard cryptographic protocols prior to being written to a storage medium.
0
CCC.Core.CP03Access Log PublicationThe service automatically publishes structured, verbose records of activities performed within the scope of the service by external actors.
3
CCC.Core.CP04Transaction Rate LimitsThe service can throttle, delay, or reject excess requests when transactions exceed a user-specified rate limit, and always provides industry-standard throughput up to that limit.
1
CCC.Core.CP05Signed URLsThe service can generate an ad hoc URL containing authentication information to enforce user-configured permissions for accessing a specific component or a child resource.
0
CCC.Core.CP06Access ControlThe service automatically enforces user configurations to restrict or allow access to a specific component or a child resource based on factors such as user identities, roles, groups, or attributes.
1
CCC.Core.CP07Event PublicationThe service automatically publishes a structured state-change record upon creation, deletion, or modification of data, configuration, components, or child resources.
2
CCC.Core.CP08Data ReplicationThe service automatically replicates data across multiple deployments simultaneously with parity, or may be configured to do so.
2
CCC.Core.CP09Metrics PublicationThe service automatically publishes structured, numeric, time-series data points related to the performance, availability, and health of the service or its child resources.
2
CCC.Core.CP14API AccessThe service exposes a port enabling external actors to interact programmatically with the service and its resources using HTTP protocol methods such as GET, POST, PUT, and DELETE.
1
CCC.Core.CP15Cost ManagementThe service monitors data published by child or networked resources to infer usage patterns and generate cost reports for the service.
1
CCC.Core.CP16BudgetingThe service may be configured to take a user-specified action when a spending threshold is met or exceeded on a child or networked resource.
1
CCC.Core.CP18Resource VersioningThe service automatically assigns versions to child resources which can be used to preserve, retrieve, and restore past iterations.
2
CCC.Core.CP20Resource TaggingThe service provides users with the ability to tag a child resource with metadata that can be reviewed or queried.
1
CCC.Core.CP22Location Lock-InThe service may be configured to restrict the deployment of child resources to specific geographic locations.
1
CCC.Core.CP28Command-line InterfaceThe service includes a component that reads and translates text into commands that can be executed by the service.
0
CCC.Core.CP29Active IngestionWhile running, the service can receive inputs, commands, or data streams from external sources such as dedicated APIs, exposed network ports, message queues, and persistent data ingestion channels.
1

Threats

IDTitleDescriptionExternal MappingsCapability MappingsControl Mappings
CCC.Core.TH01Access is Granted to Unauthorized UsersLogic designed to give different permissions to different entities may be misconfigured or manipulated, allowing unauthorized entities to access restricted parts of the service, its data, or its child resources. This could result in a loss of data confidentiality or tolerance of unauthorized actions which impact the integrity and availability of resources and data.
1
1
6
CCC.Core.TH02Data is Intercepted in TransitData transmitted by the service is susceptible to collection by any entity with access to any part of the transmission path. Packet observations can be used to support the planning of attacks by profiling origin points, destinations, and usage patterns. The data may also be vulnerable to interception or modification in transit if not properly encrypted, impacting the confidentiality or integrity of the transmitted data.
1
1
1
CCC.Core.TH03Deployment Region Network is UntrustedSystems are susceptible to unauthorized access or interception by actors with social or physical control over the network in which they are deployed. If the geopolitical status of the deployment network is untrusted, unstable, or insecure, this could result in a loss of confidentiality, integrity, or availability of the service and its data.
1
1
1
CCC.Core.TH04Data is Replicated to Untrusted or External LocationsSystems are susceptible to unauthorized access or interception by actors with political or physical control over the network in which they are deployed. Confidentiality may be impacted if the data is replicated to a network where the geopolitical status is untrusted, unstable, or insecure.
1
1
2
CCC.Core.TH05Interference with Replication ProcessesMisconfigured or manipulated replication processes may lead to data being copied to unintended locations, delayed, modified, or not being copied at all. This could lead to compromised data confidentiality and integrity, potentially also affecting recovery processes and data availability.
1
1
0
CCC.Core.TH06Data is Lost or CorruptedServices that rely on accurate data are susceptible to disruption in the event of data loss or corruption. Any actions that lead to the unintended deletion, alteration, or limited access to data can impact the availability of the service and the system it is part of.
1
1
4
CCC.Core.TH07Logs are Tampered With or DeletedTampering or deletion of service logs will reduce the system's ability to maintain an accurate record of events. Any actions that compromise the integrity of logs could disrupt system availability by disrupting monitoring, hindering forensic investigations, and reducing the accuracy of audit trails.
1
1
2
CCC.Core.TH08Runtime Metrics are ManipulatedManipulation of runtime metrics can lead to inaccurate representations of system performance and resource utilization. This compromised data integrity may also impact system availability through misinformed scaling decisions, budget exhaustion, financial losses, and hindered incident detection.
1
1
0
CCC.Core.TH09Runtime Logs are Read by Unauthorized EntitiesUnauthorized access to logs may expose valuable information about the system's configuration, operations, and security mechanisms. This could jeopardize system availability through the exposure of vulnerabilities and support the planning of attacks on the service, system, or network. If logs are not adequately sanitized, this may also directly impact the confidentiality of sensitive data.
1
1
2
CCC.Core.TH10State-change Events are Read by Unauthorized EntitiesUnauthorized access to state-change events can reveal information about the system's design and usage patterns. This opens the system up to attacks of opportunity and support the planning of attacks on the service, system, or network.
1
1
0
CCC.Core.TH11Publications are Incorrectly TriggeredIncorrectly triggered publications may disseminate inaccurate or misleading information, creating a data integrity risk. Such misinformation can cause unintended operations to be initiated, conceal legitimate issues, and disrupt the availability or reliability of systems and their data.
1
1
0
CCC.Core.TH12Resource Constraints are ExhaustedExceeding the resource constraints through excessive consumption, resource-intensive operations, or lowering of rate-limit thresholds can impact the availability of elements such as memory, CPU, or storage. This may disrupt availability of the service or child resources by denying the associated functionality to users. If the impacted system is not designed to expect such a failure, the effect could also cascade to other services and resources.
1
1
0
CCC.Core.TH13Resource Tags are ManipulatedWhen resource tags are altered, it can lead to misclassification or mismanagement of resources. This can reduce the efficacy of organizational policies, billing rules, or network access rules. Such changes could cause compromised confidentiality, integrity, or availability of the system and its data.
1
1
0
CCC.Core.TH14Older Resource Versions are UsedRunning older versions of child resources can expose the system to known vulnerabilities that have been addressed in more recent versions. If the version identifier is detected by an attacker, it may be possible to exploit these vulnerabilities to compromise the confidentiality, integrity, or availability of the system and its data.
1
1
0
CCC.Core.TH15Automated Enumeration and Reconnaissance by Non-human EntitiesAutomated processes may be used to gather details about service and child resource elements such as APIs, file systems, or directories. This information can reveal vulnerabilities, misconfigurations, and the network topology, which can be used to plan an attack against the system, the service, or its child resources.
1
1
1
CCC.ObjStor.TH01Data Exfiltration via Insecure Lifecycle PoliciesMisconfigured lifecycle policies may unintentionally allow data to be exfiltrated or destroyed prematurely, resulting in a loss of availability and potential exposure of sensitive data.
1
1
0

Controls

IDTitleObjectiveControl FamilyThreat MappingsGuideline MappingsAssessment Requirements
CCC.Core.CN01Encrypt Data for TransmissionEnsure that all communications are encrypted in transit to protect data integrity and confidentiality. Data
1
4
5
CCC.Core.CN02Encrypt Data for StorageEnsure that all data stored is encrypted at rest using strong encryption algorithms. Data
1
4
1
CCC.Core.CN03Implement Multi-factor Authentication (MFA) for AccessEnsure that all sensitive activities require two or more identity factors during authentication to prevent unauthorized access. Identity and Access Management
1
1
4
CCC.Core.CN04Log All Access and ChangesEnsure that all access attempts are logged to maintain a detailed audit trail for security and compliance purposes. Logging & Monitoring
1
1
3
CCC.Core.CN05Prevent Access from Untrusted EntitiesEnsure that secure access controls enforce the principle of least privilege to restrict access to authorized entities from explicitly trusted sources only. Identity and Access Management
1
5
6
CCC.Core.CN06Restrict Deployments to Trust PerimeterEnsure that the service and its child resources are only deployed on infrastructure in locations that are explicitly included within a defined trust perimeter. Data
1
1
2
CCC.Core.CN07Alert on Unusual Enumeration ActivityEnsure that logs and associated alerts are generated when unusual enumeration activity is detected that may indicate reconnaissance activities. Logging & Monitoring
1
2
2
CCC.Core.CN09Ensure Integrity of Access LogsEnsure that access logs are always recorded to an external location that cannot be manipulated from the context of the service(s) it contains logs for. Data
3
3
3
CCC.Core.CN10Restrict Data Replication to Trust PerimeterEnsure that data is only replicated on infrastructure in locations that are explicitly included within a defined trust perimeter. Data
1
2
1
CCC.ObjStor.CN01Prevent Requests to Buckets or Objects with Untrusted KMS KeysPrevent any requests to object storage buckets or objects using untrusted KMS keys to protect against unauthorized data encryption, or sensitive data decryption. Data
2
3
4
CCC.ObjStor.CN02Enforce Uniform Bucket-level Access to Prevent Inconsistent PermissionsEnsure that uniform bucket-level access is enforced across all object storage buckets. This prevents the use of ad-hoc or inconsistent object-level permissions, ensuring centralized, consistent, and secure access management in accordance with the principle of least privilege. Identity and Access Management
1
1
2
CCC.ObjStor.CN03Prevent Bucket Deletion Through Irrevocable Bucket Retention PolicyEnsure that object storage bucket is not deleted after creation, and that the preventative measure cannot be unset. Data
1
2
2
CCC.ObjStor.CN04Objects have an Effective Retention Policy by DefaultEnsure that all objects stored in the object storage system have a retention policy applied by default, preventing premature deletion or modification of objects. Data
2
2
2
CCC.ObjStor.CN05Versioning is Enabled for All Objects in the BucketEnsure that versioning is enabled for all objects stored in the object storage bucket to enable recovery of previous versions of objects in case of loss or corruption. Data
1
2
4
CCC.ObjStor.CN06Access Logs are Stored in a Separate Data StoreEnsure that access logs for object storage buckets are stored in a separate data store to protect against unauthorized access, tampering, or deletion of logs. Buckets used to store logs from other buckets are exempt from the bulk of this control, but must be classified under the highest sensitivity level. Data
2
4
2