SlideShare a Scribd company logo
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.

More Related Content

What's hot

Configuring kerberos based sso in weblogic
Configuring kerberos based sso in weblogicConfiguring kerberos based sso in weblogic
Configuring kerberos based sso in weblogic
Harihara 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 DEFENSE
Ajith Kp
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
haochenglee
 
Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android Applications
Positive Hack Days
 
Metricon 6 That's So Meta
Metricon 6 That's So MetaMetricon 6 That's So Meta
Metricon 6 That's So Meta
Ed 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 Forensics
securityxploded
 
Container security
Container securityContainer security
Container security
Anthony Chow
 
Making Sense of Selenium
Making Sense of SeleniumMaking Sense of Selenium
Making Sense of Selenium
SmartBear
 
SecTor - The Search For Intelligent Life
SecTor - The Search For Intelligent LifeSecTor - The Search For Intelligent Life
SecTor - The Search For Intelligent Life
Ed Bellis
 
Os Command Injection Attack
Os Command Injection AttackOs Command Injection Attack
Os Command Injection Attack
Raghav Bisht
 
Cc4201519521
Cc4201519521Cc4201519521
Cc4201519521
IJERA Editor
 
V brownbag sept-14-2016
V brownbag sept-14-2016V brownbag sept-14-2016
V brownbag sept-14-2016
Anthony Chow
 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java Developers
Mike Wolfson
 
Containers for Lawyers Richard Fontana
Containers for Lawyers  Richard FontanaContainers for Lawyers  Richard Fontana
Containers for Lawyers Richard Fontana
Black Duck by Synopsys
 
Hafnium attack
Hafnium attackHafnium attack
Dominique
DominiqueDominique
Dominique
Shmulik Avidan
 
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
 
Selenium
SeleniumSelenium
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 Better
Equal Experts
 

What's hot (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
 

Viewers also liked

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 Concurrency
Sri 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 clusters
Sri Prasanna
 
Distributed file systems
Distributed file systemsDistributed file systems
Distributed file systems
Sri Prasanna
 
Mapreduce: Theory and implementation
Mapreduce: Theory and implementationMapreduce: Theory and implementation
Mapreduce: Theory and implementation
Sri 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 systems
Sri Prasanna
 

Viewers also liked (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
 

Similar to Sandboxing (Distributed computing)

Advanced Java
Advanced JavaAdvanced Java
Advanced Java
Hossein Mobasher
 
Chapter three Java_security.ppt
Chapter three Java_security.pptChapter three Java_security.ppt
Chapter three Java_security.ppt
HaymanotTadese
 
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
Pragati 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 analysis
Pragati Rai
 
Class loaders
Class loadersClass loaders
Java Security
Java SecurityJava Security
Java Security
elliando dias
 
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 Platform
Martin Toshev
 
VAPT PRESENTATION full.pptx
VAPT PRESENTATION full.pptxVAPT PRESENTATION full.pptx
VAPT PRESENTATION full.pptx
DARSHANBHAVSAR14
 
Security in Java
Security in JavaSecurity in Java
Security in Java
Siddharth Coontoor
 
Unit8 security (2) java
Unit8 security (2) javaUnit8 security (2) java
Unit8 security (2) java
Sharafat 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 RCE
David 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 2019
Codemotion
 
Tollas Ferenc - Java security
Tollas Ferenc - Java securityTollas Ferenc - Java security
Tollas Ferenc - Java security
veszpremimeetup
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
Animesh Singh
 
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
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Kunal - Introduction to BackTrack - ClubHack2008
Kunal - Introduction to BackTrack - ClubHack2008Kunal - Introduction to BackTrack - ClubHack2008
Kunal - Introduction to BackTrack - ClubHack2008
ClubHack
 
Kunal - Introduction to backtrack - ClubHack2008
Kunal - Introduction to backtrack - ClubHack2008Kunal - Introduction to backtrack - ClubHack2008
Kunal - Introduction to backtrack - ClubHack2008
ClubHack
 
Workshop on BackTrack live CD
Workshop on BackTrack live CDWorkshop on BackTrack live CD
Workshop on BackTrack live CD
amiable_indian
 

Similar to 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
 
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
 
Workshop on BackTrack live CD
Workshop on BackTrack live CDWorkshop on BackTrack live CD
Workshop on BackTrack live CD
 

More from Sri Prasanna

Qr codes para tech radar
Qr codes para tech radarQr codes para tech radar
Qr codes para tech radar
Sri Prasanna
 
Qr codes para tech radar 2
Qr codes para tech radar 2Qr codes para tech radar 2
Qr codes para tech radar 2
Sri Prasanna
 
Test
TestTest
Test
TestTest
assds
assdsassds
assds
assdsassds
asdsa
asdsaasdsa
dsd
dsddsd
About stacks
About stacksAbout stacks
About stacks
Sri Prasanna
 
About Stacks
About  StacksAbout  Stacks
About Stacks
Sri Prasanna
 
About Stacks
About  StacksAbout  Stacks
About Stacks
Sri Prasanna
 
About Stacks
About  StacksAbout  Stacks
About Stacks
Sri Prasanna
 
About Stacks
About  StacksAbout  Stacks
About Stacks
Sri Prasanna
 
About Stacks
About  StacksAbout  Stacks
About Stacks
Sri Prasanna
 
About Stacks
About StacksAbout Stacks
About Stacks
Sri Prasanna
 
About Stacks
About StacksAbout Stacks
About Stacks
Sri Prasanna
 
Network and distributed systems
Network and distributed systemsNetwork and distributed systems
Network and distributed systems
Sri Prasanna
 
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)
Sri Prasanna
 
Map reduce (from Google)
Map reduce (from Google)Map reduce (from Google)
Map reduce (from Google)
Sri Prasanna
 
Distributed file systems (from Google)
Distributed file systems (from Google)Distributed file systems (from Google)
Distributed file systems (from Google)
Sri Prasanna
 

More from 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)
 

Recently uploaded

WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

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.

Editor's Notes

  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. --