Revert "[Windows] Remove old sandbox Sid class."

This reverts commit 44f1184597a11b68b7658b5c2fb6d783b50b5590.

Reason for revert:
https://ci.chromium.org/ui/p/chromium/builders/ci/win-archive-rel/28039/overview

[29284/93077] CXX obj/sandbox/win/sandbox_poc/main_ui_window.obj
FAILED: obj/sandbox/win/sandbox_poc/main_ui_window.obj
C:\b\s\w\ir\cache\goma\client\gomacc.exe ..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.e...(too long)
../../sandbox/win/sandbox_poc/main_ui_window.cc(550,10): error: no matching function for call to 'AddKnownSidToObject'
if (!sandbox::AddKnownSidToObject(pipe_handle_, SE_KERNEL_OBJECT,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../..\sandbox/win/src/acl.h(55,6): note: candidate function not viable: no known conversion from 'WELL_KNOWN_SID_TYPE' to 'base::win::WellKnownSid' for 3rd argument
bool AddKnownSidToObject(HANDLE object,
^

Original change's description:
> [Windows] Remove old sandbox Sid class.
>
> This CL removes the old sandbox Sid class and moves all users to the
> new class in base.
>
> Bug: 1266853
> Change-Id: I572027bd5e846f71e8caa5849401fdef895d56f0
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3273701
> Commit-Queue: James Forshaw <forshaw@chromium.org>
> Reviewed-by: Will Harris <wfh@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#941001}

TBR=forshaw@chromium.org,wfh@chromium.org,chromium-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I1585407774baaebe126ff1c789764ee29bff3712
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1266853
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3277253
Reviewed-by: Johann Koenig <johannkoenig@google.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Owners-Override: Johann Koenig <johannkoenig@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Johann Koenig <johannkoenig@google.com>
Cr-Commit-Position: refs/heads/main@{#941018}
NOKEYCHECK=True
GitOrigin-RevId: 64ab92c2fe3611010e8badb0641e56938d574fc8
31 files changed
tree: e515e3f0ed3bdda8cfd61146764245859090b492
  1. linux/
  2. mac/
  3. policy/
  4. win/
  5. BUILD.gn
  6. COMMON_METADATA
  7. constants.h
  8. DEPS
  9. DIR_METADATA
  10. features.gni
  11. ipc.dict
  12. OWNERS
  13. README.md
  14. sandbox_export.h
README.md

Sandbox Library

This directory contains platform-specific sandboxing libraries. Sandboxing is a technique that can improve the security of an application by separating untrustworthy code (or code that handles untrustworthy data) and restricting its privileges and capabilities.

Each platform relies on the operating system's process primitive to isolate code into distinct security principals, and platform-specific technologies are used to implement the privilege reduction. At a high-level:

  • mac/ uses the Seatbelt sandbox. See the detailed design for more.
  • linux/ uses namespaces and Seccomp-BPF. See the detailed design for more.
  • win/ uses a combination of restricted tokens, distinct job objects, alternate desktops, and integrity levels. See the detailed design for more.

Built on top of the low-level sandboxing library is the //sandbox/policy component, which provides concrete policies and helper utilities for sandboxing specific Chromium processes and services. The core sandbox library cannot depend on the policy component.