SlideShare une entreprise Scribd logo
1  sur  20
Sandboxing & Signed Software Paul Krzyzanowski [email_address] [email_address] Distributed Systems Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
Trusted software ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Motivation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Microsoft Authenticode ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Microsoft Vista code integrity checks ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java applets ,[object Object],[object Object],[object Object]
Java security model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The sandbox ,[object Object],[object Object],[object Object],[object Object],sand•box , ’san(d)-"bäks,  noun.  Date: 1688 : a box or receptacle containing loose sand: as  a:  a shaker for sprinkling sand on wet ink  b:   a box that contains sand for children to play in Public domain image from http://en.wikipedia.org/wiki/Image:Sandpit.jpg
Byte-code verifier ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Byte-code verifier + JVM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Class loader ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Separate namespaces ,[object Object],[object Object],[object Object],[object Object],[object Object]
Security manager ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java sandbox summary local Java source code Java compiler trusted byte code byte code verifier untrusted byte code applet class loader JDK byte code class loader security manager JVM operating platform
JavaSecurity API ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Trusted source ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],server client server middlman client data data modified data
Digital signatures and JAR files ,[object Object],[object Object],[object Object],[object Object],[object Object]
Original Java sandbox restrictions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Enhancements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The end.

Contenu connexe

Tendances

Configuring kerberos based sso in weblogic
Configuring kerberos based sso in weblogicConfiguring kerberos based sso in weblogic
Configuring kerberos based sso in weblogicHarihara sarma
 
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSEWEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSEAjith Kp
 
Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsPositive Hack Days
 
Metricon 6 That's So Meta
Metricon 6 That's So MetaMetricon 6 That's So Meta
Metricon 6 That's So MetaEd Bellis
 
Advanced Malware Analysis Training Session 7 - Malware Memory Forensics
Advanced Malware Analysis Training Session 7  - Malware Memory ForensicsAdvanced Malware Analysis Training Session 7  - Malware Memory Forensics
Advanced Malware Analysis Training Session 7 - Malware Memory Forensicssecurityxploded
 
Container security
Container securityContainer security
Container securityAnthony Chow
 
Making Sense of Selenium
Making Sense of SeleniumMaking Sense of Selenium
Making Sense of SeleniumSmartBear
 
SecTor - The Search For Intelligent Life
SecTor - The Search For Intelligent LifeSecTor - The Search For Intelligent Life
SecTor - The Search For Intelligent LifeEd Bellis
 
Os Command Injection Attack
Os Command Injection AttackOs Command Injection Attack
Os Command Injection AttackRaghav Bisht
 
V brownbag sept-14-2016
V brownbag sept-14-2016V brownbag sept-14-2016
V brownbag sept-14-2016Anthony Chow
 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java DevelopersMike Wolfson
 
Containers for Lawyers Richard Fontana
Containers for Lawyers  Richard FontanaContainers for Lawyers  Richard Fontana
Containers for Lawyers Richard FontanaBlack Duck by Synopsys
 
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...Michael Noel
 
Containers and Virtualisation for Continuous Testing
Containers and Virtualisation for Continuous Testing   Containers and Virtualisation for Continuous Testing
Containers and Virtualisation for Continuous Testing sbbabu
 
Platform Security IRL: Busting Buzzwords & Building Better
Platform Security IRL:  Busting Buzzwords & Building BetterPlatform Security IRL:  Busting Buzzwords & Building Better
Platform Security IRL: Busting Buzzwords & Building BetterEqual Experts
 

Tendances (20)

Configuring kerberos based sso in weblogic
Configuring kerberos based sso in weblogicConfiguring kerberos based sso in weblogic
Configuring kerberos based sso in weblogic
 
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSEWEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android Applications
 
Metricon 6 That's So Meta
Metricon 6 That's So MetaMetricon 6 That's So Meta
Metricon 6 That's So Meta
 
Advanced Malware Analysis Training Session 7 - Malware Memory Forensics
Advanced Malware Analysis Training Session 7  - Malware Memory ForensicsAdvanced Malware Analysis Training Session 7  - Malware Memory Forensics
Advanced Malware Analysis Training Session 7 - Malware Memory Forensics
 
Container security
Container securityContainer security
Container security
 
Making Sense of Selenium
Making Sense of SeleniumMaking Sense of Selenium
Making Sense of Selenium
 
SecTor - The Search For Intelligent Life
SecTor - The Search For Intelligent LifeSecTor - The Search For Intelligent Life
SecTor - The Search For Intelligent Life
 
Os Command Injection Attack
Os Command Injection AttackOs Command Injection Attack
Os Command Injection Attack
 
Cc4201519521
Cc4201519521Cc4201519521
Cc4201519521
 
V brownbag sept-14-2016
V brownbag sept-14-2016V brownbag sept-14-2016
V brownbag sept-14-2016
 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java Developers
 
Containers for Lawyers Richard Fontana
Containers for Lawyers  Richard FontanaContainers for Lawyers  Richard Fontana
Containers for Lawyers Richard Fontana
 
Hafnium attack
Hafnium attackHafnium attack
Hafnium attack
 
Dominique
DominiqueDominique
Dominique
 
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
 
Selenium
SeleniumSelenium
Selenium
 
Containers and Virtualisation for Continuous Testing
Containers and Virtualisation for Continuous Testing   Containers and Virtualisation for Continuous Testing
Containers and Virtualisation for Continuous Testing
 
Platform Security IRL: Busting Buzzwords & Building Better
Platform Security IRL:  Busting Buzzwords & Building BetterPlatform Security IRL:  Busting Buzzwords & Building Better
Platform Security IRL: Busting Buzzwords & Building Better
 

En vedette

Clusters (Distributed computing)
Clusters (Distributed computing)Clusters (Distributed computing)
Clusters (Distributed computing)Sri Prasanna
 
Locks (Concurrency)
Locks (Concurrency)Locks (Concurrency)
Locks (Concurrency)Sri Prasanna
 
Introduction to Concurrency
Introduction to ConcurrencyIntroduction to Concurrency
Introduction to ConcurrencySri Prasanna
 
Authentication (Distributed computing)
Authentication (Distributed computing)Authentication (Distributed computing)
Authentication (Distributed computing)Sri Prasanna
 
Introduction & Parellelization on large scale clusters
Introduction & Parellelization on large scale clustersIntroduction & Parellelization on large scale clusters
Introduction & Parellelization on large scale clustersSri Prasanna
 
Distributed file systems
Distributed file systemsDistributed file systems
Distributed file systemsSri Prasanna
 
Mapreduce: Theory and implementation
Mapreduce: Theory and implementationMapreduce: Theory and implementation
Mapreduce: Theory and implementationSri Prasanna
 
Secure Communication (Distributed computing)
Secure Communication (Distributed computing)Secure Communication (Distributed computing)
Secure Communication (Distributed computing)Sri Prasanna
 
Other distributed systems
Other distributed systemsOther distributed systems
Other distributed systemsSri Prasanna
 

En vedette (9)

Clusters (Distributed computing)
Clusters (Distributed computing)Clusters (Distributed computing)
Clusters (Distributed computing)
 
Locks (Concurrency)
Locks (Concurrency)Locks (Concurrency)
Locks (Concurrency)
 
Introduction to Concurrency
Introduction to ConcurrencyIntroduction to Concurrency
Introduction to Concurrency
 
Authentication (Distributed computing)
Authentication (Distributed computing)Authentication (Distributed computing)
Authentication (Distributed computing)
 
Introduction & Parellelization on large scale clusters
Introduction & Parellelization on large scale clustersIntroduction & Parellelization on large scale clusters
Introduction & Parellelization on large scale clusters
 
Distributed file systems
Distributed file systemsDistributed file systems
Distributed file systems
 
Mapreduce: Theory and implementation
Mapreduce: Theory and implementationMapreduce: Theory and implementation
Mapreduce: Theory and implementation
 
Secure Communication (Distributed computing)
Secure Communication (Distributed computing)Secure Communication (Distributed computing)
Secure Communication (Distributed computing)
 
Other distributed systems
Other distributed systemsOther distributed systems
Other distributed systems
 

Similaire à Sandboxing (Distributed computing)

Chapter three Java_security.ppt
Chapter three Java_security.pptChapter three Java_security.ppt
Chapter three Java_security.pptHaymanotTadese
 
Java & The Android Stack: A Security Analysis
Java & The Android Stack: A Security AnalysisJava & The Android Stack: A Security Analysis
Java & The Android Stack: A Security AnalysisPragati Rai
 
From java to android a security analysis
From java to android  a security analysisFrom java to android  a security analysis
From java to android a security analysisPragati Rai
 
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)Martin Toshev
 
Security Аrchitecture of Тhe Java Platform
Security Аrchitecture of Тhe Java PlatformSecurity Аrchitecture of Тhe Java Platform
Security Аrchitecture of Тhe Java PlatformMartin Toshev
 
VAPT PRESENTATION full.pptx
VAPT PRESENTATION full.pptxVAPT PRESENTATION full.pptx
VAPT PRESENTATION full.pptxDARSHANBHAVSAR14
 
Unit8 security (2) java
Unit8 security (2) javaUnit8 security (2) java
Unit8 security (2) javaSharafat Husen
 
Creating Secure Applications
Creating Secure Applications Creating Secure Applications
Creating Secure Applications guest879f38
 
Auscert 2022 - log4shell and history of Java deserialisation RCE
Auscert 2022 - log4shell and history of Java deserialisation RCEAuscert 2022 - log4shell and history of Java deserialisation RCE
Auscert 2022 - log4shell and history of Java deserialisation RCEDavid Jorm
 
Martin Toshev - Java Security Architecture - Codemotion Rome 2019
Martin Toshev - Java Security Architecture - Codemotion Rome 2019Martin Toshev - Java Security Architecture - Codemotion Rome 2019
Martin Toshev - Java Security Architecture - Codemotion Rome 2019Codemotion
 
Tollas Ferenc - Java security
Tollas Ferenc - Java securityTollas Ferenc - Java security
Tollas Ferenc - Java securityveszpremimeetup
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep diveAnimesh Singh
 
Workshop on BackTrack live CD
Workshop on BackTrack live CDWorkshop on BackTrack live CD
Workshop on BackTrack live CDamiable_indian
 
Kunal - Introduction to BackTrack - ClubHack2008
Kunal - Introduction to BackTrack - ClubHack2008Kunal - Introduction to BackTrack - ClubHack2008
Kunal - Introduction to BackTrack - ClubHack2008ClubHack
 
Kunal - Introduction to backtrack - ClubHack2008
Kunal - Introduction to backtrack - ClubHack2008Kunal - Introduction to backtrack - ClubHack2008
Kunal - Introduction to backtrack - ClubHack2008ClubHack
 

Similaire à Sandboxing (Distributed computing) (20)

Advanced Java
Advanced JavaAdvanced Java
Advanced Java
 
Chapter three Java_security.ppt
Chapter three Java_security.pptChapter three Java_security.ppt
Chapter three Java_security.ppt
 
Java & The Android Stack: A Security Analysis
Java & The Android Stack: A Security AnalysisJava & The Android Stack: A Security Analysis
Java & The Android Stack: A Security Analysis
 
From java to android a security analysis
From java to android  a security analysisFrom java to android  a security analysis
From java to android a security analysis
 
Class loaders
Class loadersClass loaders
Class loaders
 
Java Security
Java SecurityJava Security
Java Security
 
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
 
Security Аrchitecture of Тhe Java Platform
Security Аrchitecture of Тhe Java PlatformSecurity Аrchitecture of Тhe Java Platform
Security Аrchitecture of Тhe Java Platform
 
VAPT PRESENTATION full.pptx
VAPT PRESENTATION full.pptxVAPT PRESENTATION full.pptx
VAPT PRESENTATION full.pptx
 
Security in Java
Security in JavaSecurity in Java
Security in Java
 
Unit8 security (2) java
Unit8 security (2) javaUnit8 security (2) java
Unit8 security (2) java
 
Creating Secure Applications
Creating Secure Applications Creating Secure Applications
Creating Secure Applications
 
Auscert 2022 - log4shell and history of Java deserialisation RCE
Auscert 2022 - log4shell and history of Java deserialisation RCEAuscert 2022 - log4shell and history of Java deserialisation RCE
Auscert 2022 - log4shell and history of Java deserialisation RCE
 
Martin Toshev - Java Security Architecture - Codemotion Rome 2019
Martin Toshev - Java Security Architecture - Codemotion Rome 2019Martin Toshev - Java Security Architecture - Codemotion Rome 2019
Martin Toshev - Java Security Architecture - Codemotion Rome 2019
 
Tollas Ferenc - Java security
Tollas Ferenc - Java securityTollas Ferenc - Java security
Tollas Ferenc - Java security
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
 
Javantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin ToshevJavantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin Toshev
 
Workshop on BackTrack live CD
Workshop on BackTrack live CDWorkshop on BackTrack live CD
Workshop on BackTrack live CD
 
Kunal - Introduction to BackTrack - ClubHack2008
Kunal - Introduction to BackTrack - ClubHack2008Kunal - Introduction to BackTrack - ClubHack2008
Kunal - Introduction to BackTrack - ClubHack2008
 
Kunal - Introduction to backtrack - ClubHack2008
Kunal - Introduction to backtrack - ClubHack2008Kunal - Introduction to backtrack - ClubHack2008
Kunal - Introduction to backtrack - ClubHack2008
 

Plus de Sri Prasanna

Plus de Sri Prasanna (20)

Qr codes para tech radar
Qr codes para tech radarQr codes para tech radar
Qr codes para tech radar
 
Qr codes para tech radar 2
Qr codes para tech radar 2Qr codes para tech radar 2
Qr codes para tech radar 2
 
Test
TestTest
Test
 
Test
TestTest
Test
 
assds
assdsassds
assds
 
assds
assdsassds
assds
 
asdsa
asdsaasdsa
asdsa
 
dsd
dsddsd
dsd
 
About stacks
About stacksAbout stacks
About stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About StacksAbout Stacks
About Stacks
 
About Stacks
About StacksAbout Stacks
About Stacks
 
Network and distributed systems
Network and distributed systemsNetwork and distributed systems
Network and distributed systems
 
Introduction to Cluster Computing and Map Reduce (from Google)
Introduction to Cluster Computing and Map Reduce  (from Google)Introduction to Cluster Computing and Map Reduce  (from Google)
Introduction to Cluster Computing and Map Reduce (from Google)
 
Map reduce (from Google)
Map reduce (from Google)Map reduce (from Google)
Map reduce (from Google)
 
Distributed file systems (from Google)
Distributed file systems (from Google)Distributed file systems (from Google)
Distributed file systems (from Google)
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Dernier (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Sandboxing (Distributed computing)

  • 1. Sandboxing & Signed Software Paul Krzyzanowski [email_address] [email_address] Distributed Systems Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Java sandbox summary local Java source code Java compiler trusted byte code byte code verifier untrusted byte code applet class loader JDK byte code class loader security manager JVM operating platform
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

Notes de l'éditeur

  1. One problem that is not addressed by firewalls, secure communications, and by the operating system itself is: what safeguards can we impose when we want to run someone else’s software? The general model today is that of trust: you trust the software that you install. If you get it from a store, you trust the vendor not to do anything malicious and trust the integrity of the package because it is shrink wrapped. If you get the software from the web, you trust it because you downloaded it from a web site that you authenticated (with an X.509 digital certificate provided by the site during the SSL handshake). You may rely on limiting the damage that a program can do by relying on the operating system to run it under a particular user ID (yours, most often) and having the operating system have appropriate access permissions set for the various resources it offers. This is particularly ineffective on most Microsoft Windows installations where users generally give themselves administartive privileges. You may also choose to run a virus scan on the software to see if it has been modified with one of many known viruses. This, of course, does not ensure that the software doesn’t contain new viruses or that it contains defects or malicious code that can impact your system or the integrity of its resources. These days, this often isn’t good enough. We would like to have software where we can validate that it was not tampered with and we may like to have certain software run in a more restrictive environment - so it cannot access certain resources. Java is the first widely-used programming language/operating environment (we need both) to offer support for executing trusted and untrusted software, so we’ll look at that as a case study. --
  2. One motivation for having trusted code is that software development has migrated to a distributed development environment. Applications are divided into pieces (components). These components may exist in different locations and code may be downloaded from these remote machines, often during run-time. With binary code (compiled machine code), it is generally rather difficult to inspect or restrict operations as in an interpreted language like Java. The host can exercise only limited control on binary modules. Most operating systems only support the concept of software running with the permissions of a particular “user” rather than a broader model where you can have “sub-users” with permissions more restricted than those of the main user. Moreover, most operating systems will run the entire program with one set of permissions - dynamically linked libraries from different sources and the user’s code are executed alike and have the same access to system resources. --
  3. Microsoft’s Authenticode technology is simply a specification for affixing a digital signature to a block of code (that is typically downloaded over a network). The signature validates that the code was not modified since the signature was affixed and that it came from the signatory. Authenticode works on various binary formats, such as dll, exe, cab, ocx, and class files. The steps in creating a signed file are: Generate a public/private key pair (this is something the organization does once) Get a digital certificate. A digital certificate is just a public key + identification credentials, signed (has the data and encrypt it with a private key) by a trusted party. In this case, the trusted party is VeriSign - a class 3 Commercial Software Publisher’s certificate (again, this is done once by the organization). Generate a hash of the code to create a fixed-length digest. Encrypt the digest with the private key. Combine the encrypted digest with the certificate into a structure known as the Signature block. Embed this in the executable. The recipient (client side) can call the Win32 function called WinVerifyTrust to validate the signature. This validates the certificate, decrypts the digest using the public key in the certificate and compares it with the hash of the downloaded code.
  4. Refresher: Java applets are (generally small) executable programs embedded in Java-aware web pages. They are downloaded and executed locally by the browser. This allows web publishers to provide applications as part of their web pages. Java applets have been a major motivating factor for the early popularity of Java. They are also a key area where you want to have code security: just by connecting to a web site, you may end up executing code on your machine! --
  5. Java security is provided through a technique called “sandboxing” (we’ll get to that in the next slide). The main components of the Java sandbox are: - class loader - this fetches and instantiates classes from remote systems - byte-code verifier - this tries to validate the code to see that it conforms to the “rules of Java” - security manager - this is the run-time component that validates access to system resources --
  6. Webster’s defines a sandbox as a box that contains sand for children to play in . In operating systems, a sandbox is a “box” where code can play in. A sandbox is a mechanism for providing restrictions on what software can and cannot do in terms of accessing memory, programs, threads, files, and other operating system resources. Users can download and execute untrusted applications in a sandbox, limiting their risk since the sandbox will impose restrictions on what the application can do. The sandbox allows us to bring untrusted applications into a trusted environment without compromising the environment. --
  7. Java source code is compiled into platform-independent byte-codes which are interpreted by the Java Virtual Machine (JVM) (instead of compiling to the machine’s native instructions where they can be executed directly by the system processor). The byte-code verifier is the first line of defense in the Java security model. Before a class loader allows any applet to execute, the code is first verified by a byte-code verifier . It: - ensures that the code adheres to the rules of the language - for example: only valid JVM opcodes are used with only the allowed arguments - applies a built-in theorem prover against the code. This tries to predict code execution paths and ensures that the software does not: forge pointers circumvent access restrictions access objects through illegal casting --
  8. Between the byte-code verifier and the features built into the JVM interpreter, the system tries to ensure that: - compiled code is in the right format and adheres to the language specification - internal stacks will not overflow/underflow - no illegal data conversions will occur (e.g., integers cannot serve as pointers) -- it ensures that variables cannot access restricted memory areas. - byte-code instructions will have parameters of the right type - all class member accesses are legal - private data remains private --
  9. To load an applet, the browser invokes the Java Applet Class Loader. It determines how and when applets can load classes. Its major functions are: - it fetches an applet’s code from the remote machine - it creates and enforces a namespace (more on this later) for each applet - it prevents applets from invoking methods that are part of the system’s class loader (you don’t want applets loading other applets) --
  10. The Applet Class Loader creates a new namespace for each applet. Hence, applets can access only their own classes and the standard Java library API. They cannot access any classes belonging to other applets. The advantages of this are: - separate namespaces make it difficult for applets to pool their resources to form a concerted attack. - applet developers need not be concerned about name collisions --
  11. The security manager is responsible for run-time verification of “dangerous methods” - methods that request file I/O, network access, or defining a new class loader. It keeps track of who is allowed to do which dangerous operations. A security manager can choose what accesses are permitted and generate a SecurityException for those that it decides should not be permitted (look through the JDK API -- any methods that can throw a SecurityException are those where the Security Manager intervenes). In general, the Security Manager can be a replaceable component that can be as complex as the authors want it to be. Code in the Java library consults a security manager when a potentially dangerous operation is attempted. Security checking code examines the run-time stack for frames executing untrusted code (each thread has its own stack). This process is known as stack inspection . All major Java vendors have adopted stack inspection. The stack frames are searched from newest to oldest. If an untrusted one is encountered, the security manager defaults to that level of trust (untrust). --
  12. This summarizes the operations in the Java sandbox. User-compiled code is considered “trusted code”. By default, remote code is considered “untrusted”. All Java byte code, except that from the JDK libraries is verified with the byte-code verifier. The class loader than allows the namespace of the class to be instantiated and for the class to be executable. At that time the security manager takes over for run-time intervention on operations that the code wants to perform. --
  13. Since JDK 1.1, Java added a JavaSecurity API. This provides a broad set of methods for digital signatures message digests key management (support for X.509 digital certificates) access control lists --
  14. When we download software from a trusted source, we need to ensure that it has not been modified by some interceptor. Such a modification is called a “man-in-the-middle” attack. This middleman manages to get in the communication path and simply forwards data between client and server and vice versa. At times, however, he may choose to modify the data. In downloading code, the client may successfully authenticate with the server, even with a middleman, but the downloaded code may still be corrupted. --
  15. To guard against this man-in-the-middle attack, digital signatures can be used. Java code and any related files can be bundled into a JAR (Java archive format). This resultant applet (jar file) is then digitally signed: - add a hash encrypted by the supplier’s private key - add identification information about the supplier The client can verify the authenticity of the code by using the supplier’s digital certificate (it contains the public key that may be used to decrypt the hash and validate it). Since Java 1.1, a signed applet can be considered “trusted” and be given access to more resources (on a per-supplier basis). For example, you may choose to trust all applets from the Microsoft corporation. --
  16. The original Java sandbox (the only one available before Java 1.1, and still the default for untrusted code) imposed a lot of restrictions on executing software: untrusted applets cannot read/write from/to the local disk. All standalone windows created by applets are labeled as such so that users are aware of this when entering data (an applet cannot disguise itself as a terminal window, for example). An applet was not allowed to establish network connections to any system other than the originating host. Much more …. See the slide --
  17. This complete sandbox proved to be too restrictive for some applications. With Java 1.1, the JavaSecurity API was provided to allow one to create and authenticate signed classes. A user can designate trusted parties. Classes that are signed and loaded from any of these trusted parties will become trusted (just as a user’s own code). The model is still one of complete trust or complete mistrust. With Java 2, a multi-tiered approach to security was adopted where users can create and manage security policies and treat programs according to their trust level. Some examples of items that can be controlled are: - restricted access to file systems and network - restricted access to browser internals - use the byte-code verifier Digitally signed classes can therefore be considered “partially trusted” (under user control). Privileges can be granted when they’re needed. At other times, the code can operate with the minimum necessary privileges (“ principle of least privilege ”). Summary Sandboxing proved to be a more elusive problem than originally anticipated. The Java sandbox was not (and is not) foolproof and countless attacks were found to penetrate it. It has been improved over time, but run-time security remains a problematic issue. --