@@ -353,3 +353,244 @@ controls:
353353 - reference-id : IAM-08
354354 remarks : User Access Review
355355 strength : 2 # Reducing IAM nuance and exceptions helps streamline reviews
356+
357+
358+ - id : CCC.ObjStor.CN08
359+ group : Access
360+ title : Enforce Constraints on Pre-Signed URL Generation
361+ objective : |
362+ Ensure that pre-signed URLs are generated with minimum necessary
363+ permissions, limited expiry durations, and auditable generation
364+ events to prevent unauthorized access through leaked or overly
365+ permissive URLs.
366+ assessment-requirements :
367+ - id : CCC.ObjStor.CN08.AR01
368+ text : |
369+ When a pre-signed URL is generated, the service MUST enforce a
370+ maximum expiry duration that does not exceed an
371+ organization-defined threshold.
372+ applicability :
373+ - tlp-clear
374+ - tlp-green
375+ - tlp-amber
376+ - tlp-red
377+ recommendation : |
378+ Configure a maximum TTL policy for pre-signed URLs. For sensitive
379+ data, consider expiry durations of 15 minutes or less. Review and
380+ adjust thresholds based on operational requirements.
381+ - id : CCC.ObjStor.CN08.AR02
382+ text : |
383+ When a pre-signed URL is generated, the service MUST restrict
384+ the URL scope to a single object and a single operation (read or
385+ write), preventing broad access grants.
386+ applicability :
387+ - tlp-green
388+ - tlp-amber
389+ - tlp-red
390+ recommendation : |
391+ Ensure application logic generates URLs scoped to individual
392+ objects. Avoid wildcard or prefix-based URL generation that could
393+ expose multiple objects.
394+ - id : CCC.ObjStor.CN08.AR03
395+ text : |
396+ When a pre-signed URL is generated, the service MUST publish an
397+ auditable log entry that includes the generating identity, the
398+ target resource, the granted permissions, and the expiry time.
399+ applicability :
400+ - tlp-green
401+ - tlp-amber
402+ - tlp-red
403+ recommendation : |
404+ Enable logging for all pre-signed URL generation events. Integrate
405+ these logs with existing SIEM or monitoring systems for anomaly
406+ detection.
407+ - id : CCC.ObjStor.CN08.AR04
408+ text : |
409+ When a pre-signed URL is generated, the service MUST restrict
410+ generation to identities that have explicit permission to create
411+ pre-signed URLs, separate from their permission to access the
412+ underlying object.
413+ applicability :
414+ - tlp-amber
415+ - tlp-red
416+ recommendation : |
417+ Implement a dedicated IAM permission for pre-signed URL generation
418+ rather than implicitly granting this capability to all entities
419+ with object-level access.
420+ threats :
421+ - reference-id : CCC.ObjStor
422+ entries :
423+ - reference-id : CCC.ObjStor.TH02
424+ remarks : Pre-Signed URL Abuse
425+ strength : 9
426+ - reference-id : CCC
427+ entries :
428+ - reference-id : CCC.Core.TH01
429+ remarks : Access is Granted to Unauthorized Users
430+ strength : 4
431+ guidelines :
432+ - reference-id : CCM
433+ entries :
434+ - reference-id : IAM-01
435+ remarks : IAM Policy and Procedures
436+ strength : 5
437+ - reference-id : DSP-17
438+ remarks : Sensitive Data Protection
439+ strength : 3
440+ - reference-id : LOG-08
441+ remarks : Log Records
442+ strength : 5
443+
444+ - id : CCC.ObjStor.CN09
445+ group : Access
446+ title : Block Public Access by Default
447+ objective : |
448+ Ensure that all buckets and objects are protected from public
449+ (unauthenticated or anonymous) access by default, requiring explicit
450+ and auditable action to override.
451+ assessment-requirements :
452+ - id : CCC.ObjStor.CN09.AR01
453+ text : |
454+ When a bucket is created, the service MUST enable a public access
455+ block that prevents any policy or ACL from granting public access
456+ to the bucket or its objects.
457+ applicability :
458+ - tlp-clear
459+ - tlp-green
460+ - tlp-amber
461+ - tlp-red
462+ recommendation : |
463+ Enable account-level or organization-level public access block
464+ settings to ensure all new buckets inherit this protection by
465+ default.
466+ - id : CCC.ObjStor.CN09.AR02
467+ text : |
468+ When an attempt is made to modify a bucket policy or ACL to grant
469+ public access, the service MUST deny the modification unless the
470+ public access block has been explicitly disabled.
471+ applicability :
472+ - tlp-clear
473+ - tlp-green
474+ - tlp-amber
475+ - tlp-red
476+ recommendation : |
477+ Configure preventative controls at the organization level so that
478+ individual bucket owners cannot bypass the public access block
479+ without elevated approval.
480+ - id : CCC.ObjStor.CN09.AR03
481+ text : |
482+ When an attempt is made to disable the public access block, the
483+ service MUST require explicit approval from an identity with
484+ elevated privileges and MUST publish an auditable event to a
485+ monitored channel.
486+ applicability :
487+ - tlp-green
488+ - tlp-amber
489+ - tlp-red
490+ recommendation : |
491+ Implement an approval workflow or secondary authorization
492+ requirement for disabling public access blocks. Ensure all
493+ changes are logged and trigger alerts.
494+ - id : CCC.ObjStor.CN09.AR04
495+ text : |
496+ When the public access block is disabled, the service MUST NOT
497+ permit disabling for any bucket containing objects classified at
498+ TLP:AMBER or TLP:RED.
499+ applicability :
500+ - tlp-amber
501+ - tlp-red
502+ recommendation : |
503+ Use service control policies or organization-level guardrails to
504+ permanently enforce public access blocks on buckets containing
505+ sensitive data.
506+ threats :
507+ - reference-id : CCC
508+ entries :
509+ - reference-id : CCC.Core.TH01
510+ remarks : Access is Granted to Unauthorized Users
511+ strength : 9
512+ guidelines :
513+ - reference-id : CCM
514+ entries :
515+ - reference-id : DSP-07
516+ remarks : Data Protection by Design and Default
517+ strength : 9
518+ - reference-id : DSP-17
519+ remarks : Sensitive Data Protection
520+ strength : 7
521+ - reference-id : IAM-01
522+ remarks : IAM Policy and Procedures
523+ strength : 4
524+
525+ - id : CCC.ObjStor.CN10
526+ group : Data
527+ title : Restrict Storage Class Transitions to Approved Tiers
528+ objective : |
529+ Ensure that objects cannot be transitioned to storage classes with
530+ lower durability or availability guarantees without explicit
531+ authorization, preventing degradation of data resilience through
532+ misconfigured lifecycle policies or unauthorized actions.
533+ assessment-requirements :
534+ - id : CCC.ObjStor.CN10.AR01
535+ text : |
536+ When a lifecycle policy is configured to transition objects to a
537+ different storage class, the service MUST prevent transitions to
538+ any storage class not included in an organization-defined list of
539+ approved tiers.
540+ applicability :
541+ - tlp-green
542+ - tlp-amber
543+ - tlp-red
544+ recommendation : |
545+ Maintain a list of approved storage classes based on durability
546+ and availability requirements. Configure service-level policies
547+ to reject lifecycle rules targeting unapproved classes.
548+ - id : CCC.ObjStor.CN10.AR02
549+ text : |
550+ When a manual request is made to change an object's storage class
551+ to a tier with lower durability or availability, the service MUST
552+ require explicit approval from an identity with elevated
553+ privileges.
554+ applicability :
555+ - tlp-amber
556+ - tlp-red
557+ recommendation : |
558+ Implement IAM policies that separate storage class modification
559+ permissions from general object write permissions. Require
560+ secondary authorization for downgrades.
561+ - id : CCC.ObjStor.CN10.AR03
562+ text : |
563+ When a storage class transition occurs, the service MUST publish
564+ an auditable log entry including the identity that initiated the
565+ transition, the source and destination classes, and the affected
566+ objects.
567+ applicability :
568+ - tlp-green
569+ - tlp-amber
570+ - tlp-red
571+ recommendation : |
572+ Enable logging for all storage class transitions and integrate
573+ with monitoring systems to detect unexpected tier changes.
574+ threats :
575+ - reference-id : CCC.ObjStor
576+ entries :
577+ - reference-id : CCC.ObjStor.TH03
578+ remarks : Storage Class Downgrade Leading to Durability or Availability Loss
579+ strength : 9
580+ - reference-id : CCC
581+ entries :
582+ - reference-id : CCC.Core.TH06
583+ remarks : Data is Lost or Corrupted
584+ strength : 4
585+ guidelines :
586+ - reference-id : CCM
587+ entries :
588+ - reference-id : DSP-16
589+ remarks : Data Retention and Deletion
590+ strength : 6
591+ - reference-id : DSP-17
592+ remarks : Sensitive Data Protection
593+ strength : 4
594+ - reference-id : LOG-08
595+ remarks : Log Records
596+ strength : 5
0 commit comments