Google Chrome Security d0c_s4vage
Sandbox -user-mode sandbox -has at least two parts: a privileged controller or  broker One or more sandboxed processes ( targets )
broker - The  broker  is always the browser process - responsibilities Specify policy for each process Spawn  target  processes Host sandbox policy engine service Host sandbox interception manager Host sandbox IPC service Perform policy-allowed actions on behalf of the  target
Broker
broker - The IPC service is used to “ forward certain windows API calls from the target to the broker ” - Calls are evaluated against the policy - If all is good, calls are then executed by the  broker , and results are returned over the same IPC - The  interception manager should patch windows API calls that should be forwarded from the IPC to the  broker
target - Renderers are  always  target processes
target
target - interceptions == hooks, how windows API calls are forwarded to the  broker  via IPC -  broker  chooses to run the calls or fail them - **NOTE** “ The interception + IPC mechanism does not provide security; it is designed to provide compatibility when code inside the sandbox cannot be modified to cope with sandbox restrictions.”
 
Sandbox Security - restricted token - windows job object - windows desktop object - integrity levels (Vista only [ and Windows 7?])
Sandbox Security - token - The renderer runs with this token: Regular Groups Logon SID : mandatory All other SIDs : deny only, mandatory Restricted Groups S-1-0-0 : mandatory Privileges None - Nearly all resources the renderer uses were acquired by the  broker /browser and duplicated into the renderer process
Sandbox Security – token - Mounted FAT or FAT32 volumes “ The security descriptor on them is effectively null. Malware running in the target can read and write to these volumes as long it can guess or deduce their paths.” - TCP/IP “ The security of TCP/IP sockets in Windows 2000 and Windows XP (but not in Vista) is effectively null. It might be possible for malicious code in the target to send and receive network packets to any host.”
Sandbox Security – Job object - Forbid using SystemParametersInfo() - Forbid the creation or switch of Desktops - Forbid changes to the per-user display configuration - No read or write to the clipboard - Forbid Windows message broadcasts - Forbid using SetWindowsHookEx() - Forbid access to the global atoms table - Forbid access to USER handles created outside the Job object - One active process limit (disallows creating child processes)
Sandbox Security - desktop - processes with the same token and same job object are effectively in the same security context - BUT, programs that have windows in the same desktop are also in the same security context - WHY? Sending + receiving windows messages in the same desktop is not subject to security checks
Sandbox - desktop - Default windows XP has 2 desktops: logon screen and regular desktop - Sandbox creates another desktop for all of the  target  processes, so they can't snoop on what the user is doing elsewhere
Chrome Sandbox
Chrome Sandbox
Other Attack Surfaces - All network-related IO functions run on a separate thread in the main browser process (no sandbox) - recent DoS PoC via malformed ftp responses on exploit-db ( http://www.exploit-db.com/exploits/12011 ) - Issue where IO thread got hosed, crashed entire browser  http://code.google.com/p/chromium/issues/detail?id=42267
Debugging Google Chrome Startup Options - --no-sandbox --single-process --wait-for-debugger-children --wait-for-debugger --js-flags=”--trace-exception --heap-stats” --js-flags="--h" --safe-plugins Chrome has its own symbol server:   http://build.chromium.org/buildbot/symsrv
Google Chrome Security Issues - Chromium Security Bugs (not always latest) http://www.chromium.org/Home/chromium-security/chromium-security-bugs - Severity ratings  http://sites.google.com/a/chromium.org/dev/developers/severity-guidelines - Security Issues by Rating - Critical: http://www.google.com/search?q=SecSeverity-Critical+inurl:chromium+inurl:issues+site:code.google.com - High: http://www.google.com/search?q=SecSeverity-High+inurl:chromium+inurl:issues+site:code.google.com - Medium: http://www.google.com/search?q=SecSeverity-Medium+inurl:chromium+inurl:issues+site:code.google.com - Low: http://www.google.com/search?q=SecSeverity-Low+inurl:chromium+inurl:issues+site:code.google.com
Ideas - Under Windows, there is no practical way to prevent code in the sandbox from calling a system service - Since use of Windows TCP/IP sockets (XP) isn't restricted, download exe, guess USB path ( F:\ ,  G:\ ,  H:\ , etc. on Windows), save to USB, create autorun.inf on USB - Find vulnerabilities in valid messages the renderer  can  pass to the  broker  ( check out this issue: http://code.google.com/p/chromium/issues/detail?id=29828)
Ideas - Insert hooks into UI events and snoop on whatever the user does in the same tab, even on different sites? - Could upload/download files to/from USB - Could be used as a pivot point (or a proxy) to be able to gain access into a network, since TCP/IP security “ is effectively null”
References Google Chrome Sandbox http://www.chromium.org/developers/design-documents/sandbox Windows Tokens http://msdn.microsoft.com/en-us/library/aa374909(VS.85).aspx What is a Token http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/WhatIsAToken.htm Windows Jobs http://www.microsoft.com/msj/0399/jobkernelobj/jobkernelobj.aspx

More Related Content

PDF
PDF
Presentatie LSV Joeri van Steenhoven
ODP
Matei elena 2009-10_ esercizio 3
PPT
Data 3
PDF
PPTX
What Works in B2B Marketing
PPT
Thomas hobbes
Presentatie LSV Joeri van Steenhoven
Matei elena 2009-10_ esercizio 3
Data 3
What Works in B2B Marketing
Thomas hobbes

Similar to Google chrome sandbox (20)

PDF
Derbycon Bromium Labs: Sandboxes
PPT
Aci dp
DOCX
Lab-10 Malware Creation and Denial of Service (DoS) In t.docx
PDF
CI / CD / CS - Continuous Security in Kubernetes
PPTX
Buffer overflows
PDF
Security in serverless world
PDF
Window Shopping Browser - Bug Hunting in 2012
PDF
"Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R...
PDF
Serverless security: defence against the dark arts
PDF
I got 99 trends and a # is all of them
PDF
Serverless security: defense against the dark arts
PDF
They Ought to Know Better: Exploiting Security Gateways via Their Web Interfaces
DOCX
Project Malware AnalysisCS 6262 Project 3Agenda.docx
PPTX
Learn Electron for Web Developers
PDF
1.3. (In)security Software
PDF
Security in serverless world
PDF
DevSecCon London 2018: Security in the serverless world
PPS
Workshop on BackTrack live CD
PPT
Kunal - Introduction to backtrack - ClubHack2008
PPT
Kunal - Introduction to BackTrack - ClubHack2008
Derbycon Bromium Labs: Sandboxes
Aci dp
Lab-10 Malware Creation and Denial of Service (DoS) In t.docx
CI / CD / CS - Continuous Security in Kubernetes
Buffer overflows
Security in serverless world
Window Shopping Browser - Bug Hunting in 2012
"Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R...
Serverless security: defence against the dark arts
I got 99 trends and a # is all of them
Serverless security: defense against the dark arts
They Ought to Know Better: Exploiting Security Gateways via Their Web Interfaces
Project Malware AnalysisCS 6262 Project 3Agenda.docx
Learn Electron for Web Developers
1.3. (In)security Software
Security in serverless world
DevSecCon London 2018: Security in the serverless world
Workshop on BackTrack live CD
Kunal - Introduction to backtrack - ClubHack2008
Kunal - Introduction to BackTrack - ClubHack2008
Ad

Recently uploaded (20)

PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
DOCX
search engine optimization ppt fir known well about this
PPT
Geologic Time for studying geology for geologist
PPT
What is a Computer? Input Devices /output devices
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
The various Industrial Revolutions .pptx
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Zenith AI: Advanced Artificial Intelligence
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
Flame analysis and combustion estimation using large language and vision assi...
PPTX
Modernising the Digital Integration Hub
Taming the Chaos: How to Turn Unstructured Data into Decisions
1 - Historical Antecedents, Social Consideration.pdf
UiPath Agentic Automation session 1: RPA to Agents
Improvisation in detection of pomegranate leaf disease using transfer learni...
search engine optimization ppt fir known well about this
Geologic Time for studying geology for geologist
What is a Computer? Input Devices /output devices
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
The various Industrial Revolutions .pptx
Developing a website for English-speaking practice to English as a foreign la...
Zenith AI: Advanced Artificial Intelligence
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
NewMind AI Weekly Chronicles – August ’25 Week III
sbt 2.0: go big (Scala Days 2025 edition)
A contest of sentiment analysis: k-nearest neighbor versus neural network
Credit Without Borders: AI and Financial Inclusion in Bangladesh
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Consumable AI The What, Why & How for Small Teams.pdf
Flame analysis and combustion estimation using large language and vision assi...
Modernising the Digital Integration Hub
Ad

Google chrome sandbox

  • 2. Sandbox -user-mode sandbox -has at least two parts: a privileged controller or broker One or more sandboxed processes ( targets )
  • 3. broker - The broker is always the browser process - responsibilities Specify policy for each process Spawn target processes Host sandbox policy engine service Host sandbox interception manager Host sandbox IPC service Perform policy-allowed actions on behalf of the target
  • 5. broker - The IPC service is used to “ forward certain windows API calls from the target to the broker ” - Calls are evaluated against the policy - If all is good, calls are then executed by the broker , and results are returned over the same IPC - The interception manager should patch windows API calls that should be forwarded from the IPC to the broker
  • 6. target - Renderers are always target processes
  • 8. target - interceptions == hooks, how windows API calls are forwarded to the broker via IPC - broker chooses to run the calls or fail them - **NOTE** “ The interception + IPC mechanism does not provide security; it is designed to provide compatibility when code inside the sandbox cannot be modified to cope with sandbox restrictions.”
  • 9.  
  • 10. Sandbox Security - restricted token - windows job object - windows desktop object - integrity levels (Vista only [ and Windows 7?])
  • 11. Sandbox Security - token - The renderer runs with this token: Regular Groups Logon SID : mandatory All other SIDs : deny only, mandatory Restricted Groups S-1-0-0 : mandatory Privileges None - Nearly all resources the renderer uses were acquired by the broker /browser and duplicated into the renderer process
  • 12. Sandbox Security – token - Mounted FAT or FAT32 volumes “ The security descriptor on them is effectively null. Malware running in the target can read and write to these volumes as long it can guess or deduce their paths.” - TCP/IP “ The security of TCP/IP sockets in Windows 2000 and Windows XP (but not in Vista) is effectively null. It might be possible for malicious code in the target to send and receive network packets to any host.”
  • 13. Sandbox Security – Job object - Forbid using SystemParametersInfo() - Forbid the creation or switch of Desktops - Forbid changes to the per-user display configuration - No read or write to the clipboard - Forbid Windows message broadcasts - Forbid using SetWindowsHookEx() - Forbid access to the global atoms table - Forbid access to USER handles created outside the Job object - One active process limit (disallows creating child processes)
  • 14. Sandbox Security - desktop - processes with the same token and same job object are effectively in the same security context - BUT, programs that have windows in the same desktop are also in the same security context - WHY? Sending + receiving windows messages in the same desktop is not subject to security checks
  • 15. Sandbox - desktop - Default windows XP has 2 desktops: logon screen and regular desktop - Sandbox creates another desktop for all of the target processes, so they can't snoop on what the user is doing elsewhere
  • 18. Other Attack Surfaces - All network-related IO functions run on a separate thread in the main browser process (no sandbox) - recent DoS PoC via malformed ftp responses on exploit-db ( http://www.exploit-db.com/exploits/12011 ) - Issue where IO thread got hosed, crashed entire browser http://code.google.com/p/chromium/issues/detail?id=42267
  • 19. Debugging Google Chrome Startup Options - --no-sandbox --single-process --wait-for-debugger-children --wait-for-debugger --js-flags=”--trace-exception --heap-stats” --js-flags="--h" --safe-plugins Chrome has its own symbol server: http://build.chromium.org/buildbot/symsrv
  • 20. Google Chrome Security Issues - Chromium Security Bugs (not always latest) http://www.chromium.org/Home/chromium-security/chromium-security-bugs - Severity ratings http://sites.google.com/a/chromium.org/dev/developers/severity-guidelines - Security Issues by Rating - Critical: http://www.google.com/search?q=SecSeverity-Critical+inurl:chromium+inurl:issues+site:code.google.com - High: http://www.google.com/search?q=SecSeverity-High+inurl:chromium+inurl:issues+site:code.google.com - Medium: http://www.google.com/search?q=SecSeverity-Medium+inurl:chromium+inurl:issues+site:code.google.com - Low: http://www.google.com/search?q=SecSeverity-Low+inurl:chromium+inurl:issues+site:code.google.com
  • 21. Ideas - Under Windows, there is no practical way to prevent code in the sandbox from calling a system service - Since use of Windows TCP/IP sockets (XP) isn't restricted, download exe, guess USB path ( F:\ , G:\ , H:\ , etc. on Windows), save to USB, create autorun.inf on USB - Find vulnerabilities in valid messages the renderer can pass to the broker ( check out this issue: http://code.google.com/p/chromium/issues/detail?id=29828)
  • 22. Ideas - Insert hooks into UI events and snoop on whatever the user does in the same tab, even on different sites? - Could upload/download files to/from USB - Could be used as a pivot point (or a proxy) to be able to gain access into a network, since TCP/IP security “ is effectively null”
  • 23. References Google Chrome Sandbox http://www.chromium.org/developers/design-documents/sandbox Windows Tokens http://msdn.microsoft.com/en-us/library/aa374909(VS.85).aspx What is a Token http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/WhatIsAToken.htm Windows Jobs http://www.microsoft.com/msj/0399/jobkernelobj/jobkernelobj.aspx