Commit 7d18f5b1 authored by Sam Drew's avatar Sam Drew
Browse files

Adds assessment processes for storage requirements

parent 570a3251
Loading
Loading
Loading
Loading
+271 −3
Original line number Diff line number Diff line
@@ -567,7 +567,7 @@ This clause addresses the requirements in the CRA [\[i.1\]](#_ref_i.1) Annex 1 P

<mark>Editor's note: Need conclusion wrt this being about page state such as scroll position, form data or storage or unspecific or more specific.</mark>

**[REQ-STORE-AVA-1]** The product shall retain data stored to disk in case of a crash and make it available upon browser restart.
**[REQ-STORE-AP-1]** The product shall retain data stored to disk in case of a crash and make it available upon browser restart.

## 5.10 Impact Minimisation

@@ -646,7 +646,7 @@ This clause addresses the requirements in the CRA [\[i.1\]](#_ref_i.1) Annex 1 P

**[REQ-EXT-LOG-1]**: The product shall provide the user the ability to identify running extensions, and to observe their activity.

**[REQ-STORE-LOG-1]** The product shall provide an interface for viewing information about stored data at a granularity of site or narrower (e.g., origin).
**[REQ-STORE-LOG-1]** The product shall provide an interface for viewing information about stored data at a granularity of site or narrower (e.g. origin).

## 5.14 Data Removal and Transparency
Proposed ESR code: DRT
@@ -663,7 +663,7 @@ Applicability: Web browsers which allow changing TLS-related settings.

**[REQ-STORE-DRT-2]** The product shall provide reset functionality that removes all stored data across all sites and browser profiles.

**[REQ-STORE-DRT-3]** The product shall have an interface for deleting storage at a granularity of site or narrower (e.g., origin).
**[REQ-STORE-DRT-3]** The product shall have a user interface for deleting storage at a granularity of site or narrower (e.g. origin).

## 5.15 Vulnerability Handling

@@ -767,16 +767,163 @@ Proposed ESR code SBD

Proposed ESR code: SU

### Assessment of [REQ-STORE-SU-1]

The product shall maintain the validity of data stored to disk across updates.

- **Assessment Objective:** Assess whether the product maintains the validity of data stored to disk across updates.
- **Assessment Preparation:**
    - Reset browser to factory default settings.
    - Prepare tooling to initiate an update.
    - Prepare tooling that will provide visibility into data stored in the browser.
    - Load data into browser to cover available storage mechanisms, including LocalStorage, Cookie storage and IndexedDB.
- **Assessment Activities:**
    - Making use of tooling, verify the data that has been added to storage.
    - Perform the update of the browser.
    - Verify the data the data available in storage after the update.
- **Assignment of Verdict:** 
    - The data is available prior to browser update.
    - The data available subsequent to browser update is identical.
- **Supporting Evidence**: 
    - Screenshot or log output from tooling at showing the data loaded prior to update.
    - Screenshot or log output from tooling at showing the data loaded subsequent to update.

### Assessment of [REQ-STORE-SU-2]

- **Assessment Objective:** Assess whether the product updates the public suffix list regularly.
- **Assessment Preparation:**
    - Technical documentation containing public suffix list update policy.
    - Browser with out-of-date public suffix list, with known missing suffix.
    - Identify methodology or tooling to test Public Suffix List entries, e.g.
      - Set a cookie at the PSL level, or
      - Tooling to inspect and output PSL.
- **Assessment Activities:**
    - Verify state of the missing PSL suffix.
    - Await update according to policy.
    - Verify the updated state of the missing PSL suffix.
- **Assignment of Verdict:** 
    - Testing initially shows known-missing entry as not present in internal list of eTLDs.
    - After update period, testing shows known-missing entry is present in internal list of eTLDs.
- **Supporting Evidence**: 
    - Screenshot or log output from test at each stage.


## 6.5 Authentication and Access Control

Proposed ESR code: AAC

### Assessment of [REQ-STORE-ACC-1] 

- **Assessment Objective:** Assess whether the product presents stores and enforces access according to Same Origin Policy.
- **Assessment Preparation:**
    - Identify two relevant websites for test hosted at different origins, that will generate storage data.
      - ***TODO***: Storage varieties; Storage contexts/keys;
    - Prepare tooling that will provide visibility into data available for a given context.
    - Clear all browser storage.
- **Assessment Activities:**
    - Navigate to the first of the websites identified.
    - Making use of tooling, verify the data is added to storage, and is available in the context.
    - Navigate to the second website.
    - Verify that the data set when accessing the first site is unavailable in the new context. 
    - Verify that the data set when accessing the second site is available in the new context.
    - Navigate back to the first website.
    - Verify that the data set by the site is still available.
- **Assignment of Verdict:** 
    - When site adds data to storage it is available.
    - When the site looks for data, it does not see data from the other origin
    - When the second site sets data it is also available.
    - When navigating back to the first site, the data set when visiting initially will still be available.
- **Supporting Evidence**: 
    - Screenshot or log output from tooling to demonstrate

### Assessment of [REQ-STORE-ACC-2]

- **Assessment Objective:** Assess whether the product enforces Same Origin Policy access outside the rendering process.
- **Assessment Preparation:**
    - Access to product source code.
    - Access to technical design documentation.
- **Assessment Activities:**
    - Identify APIs for retrieval of origin-bound data. 
    - Identify all access control policy enforcement point(s) for each API.
    - Review security boundaries against technical design documentation, to identify location of policy enforcement points.
- **Assignment of Verdict:** 
    - For each API, at least one access control policy enforcement point should be outside the rendering process boundary.
- **Supporting Evidence**: 
    - Enumerated list of data retrieval APIs.
    - Identified enforcement points.


## 6.6 Confidentiality

Proposed ESR code: CON

In this clause, reference can be made to the Annex K (normative), specifying State Of The Art Cryptography assessment criteria.

### Assessment of [REQ-STORE-CON-1]

- **Assessment Objective:** Assess that third-party cookies are not sent by default. 
- **Assessment Preparation:**
    - Reset browser to factory default settings.
    - Prepare tooling to view browser http requests.
    - Prepare tooling to view stored cookies.
    - Website hosted on site A, that provides cookies.
    - Website hosted on site B, with :
      - embedded resources from site A,
      - iframe from site A that sets a `Partitioned` cookie, and
      - iframe from site A that sets a cookie without the `Partitioned` keyword.
- **Assessment Activities:**
    - Visit website on site A, and verify the cookies that have been set.
    - Visit website on site B, and verify whether the cookies are sent to site A when loading resources.
    - Verify whether either of the cookies from site A iframes embedded on site B are stored.
    - Reload website on site B, and verify the cookies sent to site A when loading resources.
    - Visit website on site A, and verify whether the cookies sent.
- **Assignment of Verdict:** 
    - The cookies are set successfully for site A.
    - The cookies are not sent to site A, when loading site B.
    - The cookie set within an iframe without a `Partitioned` keyword is not stored.
    - The cookie set within an iframe with a `Partitioned` keyword can be stored.
    - On reloading the site, cookies from site A are not sent to site B.
    - If the `Partitioned` keyword cookie was stored, it can be sent to the site A iframes and resources within site B.
    - When re-visiting the website on site A, the cookies only cookies sent are those set directly visiting that site.
- **Supporting Evidence**: 
    - Screenshot or log output from tooling at each step to show request data.
    - Screenshot or log output from tooling at each step to show cookie storage state.

### Assessment of [REQ-STORE-CON-2]

- **Assessment Objective:** Assess that OS access control, encryption methods and other mechanisims are used to ensure confidentiality of disk-stored data. 
- **Assessment Preparation:**
    - Access to product source code.
    - Access to OS documentation.
- **Assessment Activities:**
    - Identify available access control methods for OS.
    - Identify data written to disk by product.
    - Verify that the data stored uses appropriate access control mechanisms.
- **Assignment of Verdict:** 
    - Each instance of data written to disk is using appropriate access control.
- **Supporting Evidence**: 
    - List of disk-stored data from product.
    - Corresponding list of OS access control mechanisms used and justification for why each is appropriate.

### Assessment of [REQ-STORE-CON-3]

- **Assessment Objective:** Assess that browser storage cache data is keyed to both top-level site and resource. 
- **Assessment Preparation:**
    - Website hosted on site A, including resource A from site C.
    - Website hosted on site B, including resource A from site C.
    - Tooling to inspect browser cache.
    - Tooling to inspect request data.
    - Reset browser to factory default settings.
- **Assessment Activities:**
    - Visit the website hosted on site A and inspect browser cache.
    - Visit the website hosted on site B, verify request data and inspect browser cache.
- **Assignment of Verdict:** 
    - If resource A from site C is stored in browser cache, it should keyed to site A.
    - Request data from site B should include resource A from site C. It should not have been retrieved from cache.
    - If resource A from site C is stored in browser cache, it may be stored twice, and can be keyed against both site A and site B.
- **Supporting Evidence**: 
    - Screenshot or log output from tooling showing browser cache content at each step.
    - Screenshot or log output from tooling showing request and response for resource A, when visiting site B.

## 6.7 Integrity

@@ -790,6 +937,26 @@ Proposed ESR code: DM

Proposed ESR code: AP

### Assessment of [REQ-STORE-AP-1]

The product shall retain data stored to disk in case of a crash and make it available upon browser restart.

- **Assessment Objective:** Assess that in the case of a crash the data stored to disk is made available upon browser restart.
- **Assessment Preparation:**
    - Prepare a method to induce crash
    - Prepare tooling to inspect the data stored within the browser.
    - Website that will store data 
- **Assessment Activities:**
    - Visit website and verify it has set data.
    - Follow steps to induce crash
    - Restart browser
    - Verify data exists in browser.
    - Visit website and verify that the data is available to it.
- **Assignment of Verdict:** 
    - Data set by the website during the first step is presented back to site during final step.
- **Supporting Evidence**: 
    - Screenshot or log output from tooling at each step to show data.

## 6.10 Impact Minimisation

Proposed ESR code: IM
@@ -806,10 +973,111 @@ Proposed ESR code: EMM

Proposed ESR code: LOG

### Assessment of [REQ-STORE-LOG-1]

- **Assessment Objective:** Assess that the product provides an interface for viewing information about stored data at a granularity of site or narrower.
- **Assessment Preparation:**
    - Prepare tooling to inspect the data stored within the browser.
    - User documentation describing process for deleting data.
    - Website on site A that will store data, including:
      - cookie data
      - LocalStorage
      - IndexedDB storage
    - Website on site B that will store data, including:
      - cookie data
      - LocalStorage
      - IndexedDB storage
- **Assessment Activities:**
    - Visit website on site A, and verify it has set data.
    - Visit website on site B, and verify it has set data.
    - Follow user documentation for deleting data against site A.
    - Verify whether data for site A has been removed.
    - Verify whether data for site B has been removed.
- **Assignment of Verdict:** 
    - Data is set successfully during website vists.
    - User documentation provides clear steps for removing data at a site level.
    - Data is successfully removed from site A.
    - Data is not removed from site B.
- **Supporting Evidence**: 
    - Screenshot or log output from tooling at each step to show data.
    - User documentation providing instructions for data removal.

## 6.14 Data Removal and Transparency

Proposed ESR code: DRT

### Assessment of [REQ-STORE-DRT-1]

- **Assessment Objective:** Assess that in cases of storage data deletion, the data is effectively deleted.
- **Assessment Preparation:**
    - Access to product source code.
    - Access to integration API documentation.
    - Any required test tooling for verification of memory.
- **Assessment Activities:**
    - Identify internal APIs that provide for the deletion of storage data.
    - Identify all implementations of the APIs.
    - Identify underlying system APIs used for data management, and their accompanying documentation.
- **Assignment of Verdict:** 
    - For each storage deletion API implementaiton, each has either
      - System vendor documentation for the system API, providing guarantee of deletion, or
      - Test that upon calling API, underlying memory is deleted.
- **Supporting Evidence**: 
    - List of internal APIs implementations providing storage deletion.
    - Corresponding list of underlying system APIs, and documentation their references.
    - Screenshot of log output from test tooling in the case of manual test verification.

### Assessment of [REQ-STORE-DRT-2]

- **Assessment Objective:** Assess that the reset functionality removes all stored data across all sites and browser profiles.
- **Assessment Preparation:**
    - Prepare tooling to inspect browser profiles and data stored within browser.
    - Website that will store instances of all data supported by the browser.
    - Browser in factory default state.
    - User documentation for performing browser reset.
    - List of browser profile capabilities.
- **Assessment Activities:**
    - Verify with tooling only default browser profile exists, and no data is stored.
    - Create an instance of each supported browser profile.
    - Verify with tooling that each profile exists, and no data is stored.
    - With each profile, visit the website to set data.
    - Verify with tooling that each profile still exists, and has data stored.
    - Follow user documentation for performing reset.
    - Verify with tooling only default browser profile exists, and no data is stored.
- **Assignment of Verdict:** 
    - At each verification step, the expected profiles and data are present.
- **Supporting Evidence**: 
    - Screenshot or log output from tooling at each step to show data.
    - User documentation for performing reset.

### Assessment of [REQ-STORE-DRT-3]

- **Assessment Objective:** Assess that the product provides an interface for users to delete storage at a granularity of site or narrower.
- **Assessment Preparation:**
    - Prepare tooling to inspect the data stored within the browser.
    - User documentation describing process for deleting data.
    - Website on site A that will store data, including
      - cookie data,
      - LocalStorage, and
      - IndexedDB storage.
    - Website on site B that will store data, including
      - cookie data,
      - LocalStorage, and
      - IndexedDB storage.
- **Assessment Activities:**
    - Visit website on site A, and verify it has set data.
    - Visit website on site B, and verify it has set data.
    - Follow user documentation for deleting data against site A.
    - Verify whether data for site A has been removed.
    - Verify whether data for site B has been removed.
- **Assignment of Verdict:** 
    - Data is set successfully during website vists.
    - User documentation provides clear steps for removing data at a site level.
    - Data is successfully removed from site A.
    - Data is not removed from site B.
- **Supporting Evidence**: 
    - Screenshot or log output from tooling at each step to show data.
    - User documentation providing instructions for data removal.

## 6.15 Vulnerability Handling

The assessment criteria specified in CEN/CLC JT013090:2026 (CEN/CLC prEN 40000-1-3) [\[2\]](#_ref_2) shall be met for the product