SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Deploying trusted
developer sandboxes in
Amazon’s cloud

Jason Brazile, Remi Locherer, and
Ronnie Brunner
This talk… potential cases for…
• cloud storage & remote dev/test
• automated read-only system images
• not-too-inconvenient encryption everywhere
Not a takeaway…
• Pre-Snowden, but complies w/ 4 of 5 Schneier’s tips
http://www.theguardian.com/world/2013/sep/05/nsa-how-to-remain-secure-surveillance

|
Background:
ESA Study: 2009-2011
potential use-cases:
• …
• Cloud for free* data
access
• Cloud for remote
development
• …
(*)https://www.google.com/?q=ESA+Earth+Observation+Data+Policy

|

ESRIN/Contract Nr. 227700/09/I-SB final report (245 pages)
The CIOP case
• Big, free-ish, Data
• Distinct, proprietary,
software devs
• Slow test data
distribution to code
developers
• Devs nervous about
code leaking

Proprietary Algorithm A dev’d by X

Instead, lead the
users to the data
(in the cloud)

|

Proprietary Algorithm B dev’d by Y
But… Security…
• ESA less concerned about
hacking science data than
their end–users’ algorithms
and brand damage
• Data = not really sensitive
• Code = sensitive
• Soln can’t be too inconvenient
|
The Cloud Sandbox Prototype
NFS

user a

/home/a

X.509 derived
ssh key

/home/b

ldap

portal

catalog

/home/c
ESA/CIOP DMZ

/data

sandbox a
user b

Existing X.509 certs

nfs mount of encfs
encrypted /home/a

encfs sshd

ESA private net

sandbox b
encfs sshd

sandbox c
encfs sshd
user c

|

sandbox images
basically read-only
ldap config limits
user c to sandbox c

Admin
First Time Usage

ssh identity
automatically
derived from
user’s existing
X.509 certificate

|

Single encfs
passphrase can
decrypt both
1. user’s /home and
2. shared /validate
Daily Usage

ssh identity
automatically
derived from
user’s existing
X.509 certificate

ldap directory
centralized access
control to machines
and nfs mounts

|

Single encfs
passphrase can
decrypt both
1. user’s /home and
2. shared /validate
Encrypted
File system
choices SL6

|
Details: just the OS...
name: fedora-xfce
summary: Fedora with xfce
os:
The only change needed:
name: fedora
name: sl
version: 16
version: 6
hardware:
partitions:
"/":
size: 5
packages:
- @base
- @base-x
- @fonts
- @xfce-desktop
- @critical-path-xfce
access_key:
yourawsaccesskey
secret_access_key: youawssecretkey
account_number:
youramazonaccountnumber
cert_file:
/root/.ec2/yourcertificate.pem
key_file:
/root/.ec2/yourprivatekey.pem

Note: boxgrinder is
“sleeping”. Now we
use appliance-creator

|
Details: server customization (~500 lines)
# ldap configuration
yum install -y openldap-clients openldap-servers nss-pam-ldapd
# prepare ldap cert
cd /etc/openldap/cacerts
openssl genrsa -out cert.key 2048
…
openssl req -new -key cert.key -out cert.csr -subj 
"/C=IT/L=Default City/O=Default Company Ltd/CN=192.168.11.10"
…
/usr/sbin/cacertdir_rehash /export/certs/
cat <<EOF> /etc/openldap/slapd.d/cn=config.ldif
…
cat <<EOF> /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
…
cat <<EOF> /etc/openldap/slapd.d/cn=config/cn=schema/cn={12}autofs.ldif
…
cat <<EOF> /etc/openldap/slapd.d/cn=config/cn=schema/cn={14}ldappubkey.ldif
…
cat <<EOF> /etc/openldap/g-pod.ldif
…
slapadd -l /etc/openldap/g-pod.ldif

•
•
•
•
•

Firewall
Nfs/autofs
Certificates
Ldap
Syslog

|

# local firewall rules for inbound traffic
lokkit --nostart --enabled 
--service=ssh 
--port=111:tcp 
--port=111:udp 
TODO:
--port=514:tcp 
rsyslog à TLS
--port=636:tcp 
--port=662:tcp 
--port=662:udp 
--port=2049:tcp 
--port=2049:udp 
--port=32803:tcp 
--port=32769:udp
# 111 rpc (for nfs)
# ldap-ssl (port 636)
# 514 rsyslog
# 662 statd (for nfs)
# 2049 nfs4
# 32803,32769 lockd (for nfs)

rsyslog
Details: sandbox customization (~250 lines)
# encrypt temporary filesystems
yum install -y cryptsetup-luks
# swap space
# (use "cryptsetup status /dev/mapper/swap" after reboot)
echo 'swap /dev/mapper/VolGroup-lv_swap /dev/urandom 
cipher=aes-cbc-essiv:sha256,size=128,swap' > /etc/crypttab
sed -i 's/.*swap.*//dev/mapper/swap swap swap defaults 0 0/' /etc/fstab
# temporary file systems
echo 'none /tmp tmpfs defaults,size=64m 0 0' >> /etc/fstab
echo 'none /var/tmp tmpfs defaults,size=128m 0 0' >> /etc/fstab

…
chmod +x /etc/profile.d/encfs.sh

# load fuse kernel module at boot
cat <<EOF> /etc/sysconfig/modules/encfs.modules
#!/bin/bash
exec /sbin/modprobe fuse >/dev/null 2>&1
EOF
chmod +x /etc/sysconfig/modules/encfs.modules

[…]
yum install -y openssh-ldap
echo 'AuthorizedKeysCommand 
# home directory encryption
# fuse-2.8.3-1.el6 works, fuse-2.8.3-3.el6_1 "fusermount -u" does not work. /usr/libexec/openssh/ssh-ldap-wrapper' >> /etc/ssh/sshd_config
yum install -y 
fuse-2.8.3-1.el6 
# for ssh-ldap-helper
fuse-encfs-1.7.4-1.el6.i686 
ln -s /etc/openldap/ldap.conf /etc/ssh/ldap.conf
pwgen

•
•
•
•
•

Firewall
Nfs/autofs/fuse-encfs
Crytpsetup-luks
Openssh-ldap
Syslog

|
Takeaways… potential cases made for…
• cloud storage (test data) & remote dev access
• automated read-only system images (server & client)
• not-too-inconvenient encryption everywhere
github.com/netceteragroup/esa-ciop-sandbox-image-proto

Weitere ähnliche Inhalte

Mehr von jazoon13

JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software DevelopmentJAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Developmentjazoon13
 
JAZOON'13 - Nikita Salnikov-Tarnovski - Multiplatform Java application develo...
JAZOON'13 - Nikita Salnikov-Tarnovski - Multiplatform Java application develo...JAZOON'13 - Nikita Salnikov-Tarnovski - Multiplatform Java application develo...
JAZOON'13 - Nikita Salnikov-Tarnovski - Multiplatform Java application develo...jazoon13
 
JAZOON'13 - Pawel Wrzeszcz - Visibility Shift In Distributed Teams
JAZOON'13 - Pawel Wrzeszcz - Visibility Shift In Distributed TeamsJAZOON'13 - Pawel Wrzeszcz - Visibility Shift In Distributed Teams
JAZOON'13 - Pawel Wrzeszcz - Visibility Shift In Distributed Teamsjazoon13
 
JAZOON'13 - Kai Waehner - Hadoop Integration
JAZOON'13 - Kai Waehner - Hadoop IntegrationJAZOON'13 - Kai Waehner - Hadoop Integration
JAZOON'13 - Kai Waehner - Hadoop Integrationjazoon13
 
JAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next Generation
JAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next GenerationJAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next Generation
JAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next Generationjazoon13
 
JAZOON'13 - Guide Schmutz - Kafka and Strom Event Processing In Realtime
JAZOON'13 - Guide Schmutz - Kafka and Strom Event Processing In RealtimeJAZOON'13 - Guide Schmutz - Kafka and Strom Event Processing In Realtime
JAZOON'13 - Guide Schmutz - Kafka and Strom Event Processing In Realtimejazoon13
 
JAZOON'13 - Andrej Vckovski - Go synchronized
JAZOON'13 - Andrej Vckovski - Go synchronizedJAZOON'13 - Andrej Vckovski - Go synchronized
JAZOON'13 - Andrej Vckovski - Go synchronizedjazoon13
 
JAZOON'13 - Paul Brauner - A backend developer meets the web: my Dart experience
JAZOON'13 - Paul Brauner - A backend developer meets the web: my Dart experienceJAZOON'13 - Paul Brauner - A backend developer meets the web: my Dart experience
JAZOON'13 - Paul Brauner - A backend developer meets the web: my Dart experiencejazoon13
 
JAZOON'13 - Anatole Tresch - Go for the money (JSR 354) !
JAZOON'13 - Anatole Tresch - Go for the money (JSR 354) !JAZOON'13 - Anatole Tresch - Go for the money (JSR 354) !
JAZOON'13 - Anatole Tresch - Go for the money (JSR 354) !jazoon13
 
JAZOON'13 - Abdelmonaim Remani - The Economies of Scaling Software
JAZOON'13 - Abdelmonaim Remani - The Economies of Scaling SoftwareJAZOON'13 - Abdelmonaim Remani - The Economies of Scaling Software
JAZOON'13 - Abdelmonaim Remani - The Economies of Scaling Softwarejazoon13
 
JAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great MigrationJAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great Migrationjazoon13
 
JAZOON'13 - Stefan Saasen - Real World Git Workflows
JAZOON'13 - Stefan Saasen - Real World Git WorkflowsJAZOON'13 - Stefan Saasen - Real World Git Workflows
JAZOON'13 - Stefan Saasen - Real World Git Workflowsjazoon13
 

Mehr von jazoon13 (12)

JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software DevelopmentJAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
 
JAZOON'13 - Nikita Salnikov-Tarnovski - Multiplatform Java application develo...
JAZOON'13 - Nikita Salnikov-Tarnovski - Multiplatform Java application develo...JAZOON'13 - Nikita Salnikov-Tarnovski - Multiplatform Java application develo...
JAZOON'13 - Nikita Salnikov-Tarnovski - Multiplatform Java application develo...
 
JAZOON'13 - Pawel Wrzeszcz - Visibility Shift In Distributed Teams
JAZOON'13 - Pawel Wrzeszcz - Visibility Shift In Distributed TeamsJAZOON'13 - Pawel Wrzeszcz - Visibility Shift In Distributed Teams
JAZOON'13 - Pawel Wrzeszcz - Visibility Shift In Distributed Teams
 
JAZOON'13 - Kai Waehner - Hadoop Integration
JAZOON'13 - Kai Waehner - Hadoop IntegrationJAZOON'13 - Kai Waehner - Hadoop Integration
JAZOON'13 - Kai Waehner - Hadoop Integration
 
JAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next Generation
JAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next GenerationJAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next Generation
JAZOON'13 - Sam Brannen - Spring Framework 4.0 - The Next Generation
 
JAZOON'13 - Guide Schmutz - Kafka and Strom Event Processing In Realtime
JAZOON'13 - Guide Schmutz - Kafka and Strom Event Processing In RealtimeJAZOON'13 - Guide Schmutz - Kafka and Strom Event Processing In Realtime
JAZOON'13 - Guide Schmutz - Kafka and Strom Event Processing In Realtime
 
JAZOON'13 - Andrej Vckovski - Go synchronized
JAZOON'13 - Andrej Vckovski - Go synchronizedJAZOON'13 - Andrej Vckovski - Go synchronized
JAZOON'13 - Andrej Vckovski - Go synchronized
 
JAZOON'13 - Paul Brauner - A backend developer meets the web: my Dart experience
JAZOON'13 - Paul Brauner - A backend developer meets the web: my Dart experienceJAZOON'13 - Paul Brauner - A backend developer meets the web: my Dart experience
JAZOON'13 - Paul Brauner - A backend developer meets the web: my Dart experience
 
JAZOON'13 - Anatole Tresch - Go for the money (JSR 354) !
JAZOON'13 - Anatole Tresch - Go for the money (JSR 354) !JAZOON'13 - Anatole Tresch - Go for the money (JSR 354) !
JAZOON'13 - Anatole Tresch - Go for the money (JSR 354) !
 
JAZOON'13 - Abdelmonaim Remani - The Economies of Scaling Software
JAZOON'13 - Abdelmonaim Remani - The Economies of Scaling SoftwareJAZOON'13 - Abdelmonaim Remani - The Economies of Scaling Software
JAZOON'13 - Abdelmonaim Remani - The Economies of Scaling Software
 
JAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great MigrationJAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great Migration
 
JAZOON'13 - Stefan Saasen - Real World Git Workflows
JAZOON'13 - Stefan Saasen - Real World Git WorkflowsJAZOON'13 - Stefan Saasen - Real World Git Workflows
JAZOON'13 - Stefan Saasen - Real World Git Workflows
 

Kürzlich hochgeladen

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Kürzlich hochgeladen (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

JAZOON'13 - Jason Brazile - Deploying trusted developer sandboxes in Amazon's cloud

  • 1. Deploying trusted developer sandboxes in Amazon’s cloud Jason Brazile, Remi Locherer, and Ronnie Brunner
  • 2. This talk… potential cases for… • cloud storage & remote dev/test • automated read-only system images • not-too-inconvenient encryption everywhere Not a takeaway… • Pre-Snowden, but complies w/ 4 of 5 Schneier’s tips http://www.theguardian.com/world/2013/sep/05/nsa-how-to-remain-secure-surveillance |
  • 3. Background: ESA Study: 2009-2011 potential use-cases: • … • Cloud for free* data access • Cloud for remote development • … (*)https://www.google.com/?q=ESA+Earth+Observation+Data+Policy | ESRIN/Contract Nr. 227700/09/I-SB final report (245 pages)
  • 4. The CIOP case • Big, free-ish, Data • Distinct, proprietary, software devs • Slow test data distribution to code developers • Devs nervous about code leaking Proprietary Algorithm A dev’d by X Instead, lead the users to the data (in the cloud) | Proprietary Algorithm B dev’d by Y
  • 5. But… Security… • ESA less concerned about hacking science data than their end–users’ algorithms and brand damage • Data = not really sensitive • Code = sensitive • Soln can’t be too inconvenient |
  • 6. The Cloud Sandbox Prototype NFS user a /home/a X.509 derived ssh key /home/b ldap portal catalog /home/c ESA/CIOP DMZ /data sandbox a user b Existing X.509 certs nfs mount of encfs encrypted /home/a encfs sshd ESA private net sandbox b encfs sshd sandbox c encfs sshd user c | sandbox images basically read-only ldap config limits user c to sandbox c Admin
  • 7. First Time Usage ssh identity automatically derived from user’s existing X.509 certificate | Single encfs passphrase can decrypt both 1. user’s /home and 2. shared /validate
  • 8. Daily Usage ssh identity automatically derived from user’s existing X.509 certificate ldap directory centralized access control to machines and nfs mounts | Single encfs passphrase can decrypt both 1. user’s /home and 2. shared /validate
  • 10. Details: just the OS... name: fedora-xfce summary: Fedora with xfce os: The only change needed: name: fedora name: sl version: 16 version: 6 hardware: partitions: "/": size: 5 packages: - @base - @base-x - @fonts - @xfce-desktop - @critical-path-xfce access_key: yourawsaccesskey secret_access_key: youawssecretkey account_number: youramazonaccountnumber cert_file: /root/.ec2/yourcertificate.pem key_file: /root/.ec2/yourprivatekey.pem Note: boxgrinder is “sleeping”. Now we use appliance-creator |
  • 11. Details: server customization (~500 lines) # ldap configuration yum install -y openldap-clients openldap-servers nss-pam-ldapd # prepare ldap cert cd /etc/openldap/cacerts openssl genrsa -out cert.key 2048 … openssl req -new -key cert.key -out cert.csr -subj "/C=IT/L=Default City/O=Default Company Ltd/CN=192.168.11.10" … /usr/sbin/cacertdir_rehash /export/certs/ cat <<EOF> /etc/openldap/slapd.d/cn=config.ldif … cat <<EOF> /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif … cat <<EOF> /etc/openldap/slapd.d/cn=config/cn=schema/cn={12}autofs.ldif … cat <<EOF> /etc/openldap/slapd.d/cn=config/cn=schema/cn={14}ldappubkey.ldif … cat <<EOF> /etc/openldap/g-pod.ldif … slapadd -l /etc/openldap/g-pod.ldif • • • • • Firewall Nfs/autofs Certificates Ldap Syslog | # local firewall rules for inbound traffic lokkit --nostart --enabled --service=ssh --port=111:tcp --port=111:udp TODO: --port=514:tcp rsyslog à TLS --port=636:tcp --port=662:tcp --port=662:udp --port=2049:tcp --port=2049:udp --port=32803:tcp --port=32769:udp # 111 rpc (for nfs) # ldap-ssl (port 636) # 514 rsyslog # 662 statd (for nfs) # 2049 nfs4 # 32803,32769 lockd (for nfs) rsyslog
  • 12. Details: sandbox customization (~250 lines) # encrypt temporary filesystems yum install -y cryptsetup-luks # swap space # (use "cryptsetup status /dev/mapper/swap" after reboot) echo 'swap /dev/mapper/VolGroup-lv_swap /dev/urandom cipher=aes-cbc-essiv:sha256,size=128,swap' > /etc/crypttab sed -i 's/.*swap.*//dev/mapper/swap swap swap defaults 0 0/' /etc/fstab # temporary file systems echo 'none /tmp tmpfs defaults,size=64m 0 0' >> /etc/fstab echo 'none /var/tmp tmpfs defaults,size=128m 0 0' >> /etc/fstab … chmod +x /etc/profile.d/encfs.sh # load fuse kernel module at boot cat <<EOF> /etc/sysconfig/modules/encfs.modules #!/bin/bash exec /sbin/modprobe fuse >/dev/null 2>&1 EOF chmod +x /etc/sysconfig/modules/encfs.modules […] yum install -y openssh-ldap echo 'AuthorizedKeysCommand # home directory encryption # fuse-2.8.3-1.el6 works, fuse-2.8.3-3.el6_1 "fusermount -u" does not work. /usr/libexec/openssh/ssh-ldap-wrapper' >> /etc/ssh/sshd_config yum install -y fuse-2.8.3-1.el6 # for ssh-ldap-helper fuse-encfs-1.7.4-1.el6.i686 ln -s /etc/openldap/ldap.conf /etc/ssh/ldap.conf pwgen • • • • • Firewall Nfs/autofs/fuse-encfs Crytpsetup-luks Openssh-ldap Syslog |
  • 13. Takeaways… potential cases made for… • cloud storage (test data) & remote dev access • automated read-only system images (server & client) • not-too-inconvenient encryption everywhere github.com/netceteragroup/esa-ciop-sandbox-image-proto