secure architecture principles - columbia...

66
Secure Architecture Principles Isola3on and Least Privilege Access Control Concepts Opera3ng Systems Browser Isola3on and Least Privilege Original slides were created by Prof. John Mitchel

Upload: others

Post on 12-Mar-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

SecureArchitecturePrinciples

•  Isola3onandLeastPrivilege•  AccessControlConcepts•  Opera3ngSystems•  BrowserIsola3onandLeastPrivilege

OriginalslideswerecreatedbyProf.JohnMitchel

Page 2: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

SecureArchitecturePrinciples

Isola3onandLeastPrivilege

Page 3: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

PrinciplesofSecureDesign•  Compartmentaliza3on

–  Isola3on–  Principleofleastprivilege

•  Defenseindepth–  Usemorethanonesecuritymechanism–  Securetheweakestlink–  Failsecurely

•  Keepitsimple

Page 4: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

PrincipleofLeastPrivilege•  What’saprivilege?

–  Abilitytoaccessormodifyaresource•  Assumecompartmentaliza3onandisola3on

–  Separatethesystemintoisolatedcompartments–  Limitinterac3onbetweencompartments

•  PrincipleofLeastPrivilege–  Asystemmoduleshouldonlyhavetheminimalprivilegesneededforitsintendedpurposes

Page 5: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Monolithicdesign

System

Network

Userinput

Filesystem

Network

Userdevice

Filesystem

Page 6: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Monolithicdesign

System

Network

Userinput

Filesystem

Network

Userdevice

Filesystem

Page 7: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Monolithicdesign

System

Network

Userinput

Filesystem

Network

Userdisplay

Filesystem

Page 8: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Componentdesign

Network

Userinput

Filesystem

Network

Userdisplay

Filesystem

Page 9: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Componentdesign

Network

Userinput

Filesystem

Network

Userdevice

Filesystem

Page 10: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Componentdesign

Network

Userinput

Filesystem

Network

Userdevice

Filesystem

Page 11: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

PrincipleofLeastPrivilege•  What’saprivilege?

–  Abilitytoaccessormodifyaresource•  Assumecompartmentaliza3onandisola3on

–  Separatethesystemintoisolatedcompartments–  Limitinterac3onbetweencompartments

•  PrincipleofLeastPrivilege–  Asystemmoduleshouldonlyhavetheminimalprivilegesneededforitsintendedpurposes

Page 12: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Example:MailAgent•  Requirements

–  Receiveandsendemailoverexternalnetwork–  Placeincomingemailintolocaluserinboxfiles

•  Sendmail–  Tradi3onalUnix– Monolithicdesign–  Historicalsourceofmanyvulnerabili3es

•  Qmail–  Compartmentalizeddesign

Page 13: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

OSBasics(beforeexamples)

•  Isola3onbetweenprocesses–  EachprocesshasaUID

•  TwoprocesseswithsameUIDhavesamepermissions–  Aprocessmayaccessfiles,networksockets,….

•  PermissiongrantedaccordingtoUID•  Rela3ontopreviousterminology

–  CompartmentdefinedbyUID–  Privilegesdefinedbyac3onsallowedonsystemresources

Page 14: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Qmaildesign•  Isola3onbasedonOSisola3on

–  Separatemodulesrunasseparate“users”–  Eachuseronlyhasaccesstospecificresources

•  Leastprivilege– MinimalprivilegesforeachUID–  Onlyone“setuid”program

•  setuidallowsaprogramtorunasdifferentusers–  Onlyone“root”program

•  rootprogramhasallprivileges

Page 15: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Structureofqmail

qmail-smtpd

qmail-localqmail-remote

qmail-lspawnqmail-rspawn

qmail-send

qmail-inject

qmail-queue

Incoming external mail Incoming internal mail

Page 16: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Isola3onbyUnixUIDs

qmail-smtpd

qmail-localqmail-remote

qmail-lspawnqmail-rspawn

qmail-send

qmail-inject

qmail-queue

qmaild user

qmailq

qmails qmailr

qmailr

root

user setuid user

qmailq – user who is allowed to read/write mail queue

Page 17: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Structureofqmail

qmail-smtpd

qmail-localqmail-remote

qmail-lspawnqmail-rspawn

qmail-send

qmail-inject

qmail-queueReadsincomingmaildirectoriesSplitsmessageintoheader,bodySignalsqmail-send

Page 18: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Structureofqmail

qmail-smtpd

qmail-localqmail-remote

qmail-lspawnqmail-rspawn

qmail-send

qmail-inject

qmail-queueqmail-sendsignals

•  qmail-lspawniflocal•  qmail-remoteifremote

Page 19: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Structureofqmail

qmail-smtpd

qmail-local

qmail-lspawn

qmail-send

qmail-inject

qmail-queue

qmail-lspawn•  Spawnsqmail-local•  qmail-localrunswithIDofuserreceivinglocalmail

Page 20: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Structureofqmail

qmail-smtpd

qmail-local

qmail-lspawn

qmail-send

qmail-inject

qmail-queue

qmail-local•  Handlesaliasexpansion•  Deliverslocalmail•  Callsqmail-queueifneeded

Page 21: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Structureofqmail

qmail-smtpd

qmail-remote

qmail-rspawn

qmail-send

qmail-inject

qmail-queue

qmail-remote•  DeliversmessagetoremoteMTA

Page 22: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

root

Isola3onbyUnixUIDs

qmail-smtpd

qmail-localqmail-remote

qmail-lspawnqmail-rspawn

qmail-send

qmail-inject

qmail-queue

qmaild user

qmailq

qmails qmailr

qmailr user setuid user

qmailq – user who is allowed to read/write mail queue

setuid

root

Page 23: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Leastprivilege

qmail-smtpd

qmail-localqmail-remote

qmail-lspawnqmail-rspawn

qmail-send

qmail-inject

qmail-queue

root

setuid

Page 24: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Androidprocessisola3on

•  Androidapplica3onsandbox–  Isola3on:Eachapplica3onrunswithitsownUIDinownVM

•  Providesmemoryprotec3on•  Communica3onlimitedtousingUnixdomainsockets•  Onlyping,zygote(spawnanotherprocess)runasroot

–  Interac3on:referencemonitorcheckspermissionsoninter-componentcommunica3on

–  LeastPrivilege:Applica3onsannouncespermission•  Usergrantsaccessatinstall3me

Page 25: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component
Page 26: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component
Page 27: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

SecureArchitecturePrinciples

AccessControlConcepts

Page 28: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Accesscontrol•  Assump3ons

–  Systemknowswhotheuseris•  Authen3ca3onvianameandpassword,othercreden3al

–  Accessrequestspassthroughgatekeeper(referencemonitor)•  Systemmustnotallowmonitortobebypassed

ResourceUserprocess

Referencemonitor

accessrequest

policy

?

Page 29: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Accesscontrolmatrix[Lampson]

File 1 File 2 File 3 … File n

User 1 read write - - read

User 2 write write write - -

User 3 - - - read read

User m read write read write read

Subjects

Objects

Page 30: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Implementa3onconcepts•  Accesscontrollist(ACL)

–  Storecolumnofmatrixwiththeresource

•  Capability–  Userholdsa“3cket”foreachresource–  Twovaria3ons

•  storerowofmatrixwithuser,underOScontrol•  unforgeable3cketinuserspace

File 1 File 2 …

User 1 read write -

User 2 write write -

User 3 - - read

User m Read write write

Accesscontrollistsarewidelyused,ocenwithgroupsSomeaspectsofcapabilityconceptareusedinmanysystems

Page 31: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

ACLvsCapabili3es•  Accesscontrollist

–  Associatelistwitheachobject–  Checkuser/groupagainstlist–  Reliesonauthen3ca3on:needtoknowuser

•  Capabili3es–  Capabilityisunforgeable3cket

•  Randombitsequence,ormanagedbyOS•  Canbepassedfromoneprocesstoanother

–  Referencemonitorchecks3cket•  Doesnotneedtoknowiden3fyofuser/process

Page 32: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

ACLvsCapabili3es

ProcessPUserU

ProcessQUserU

ProcessRUserU

ProcessPCapabiltyc,d,e

ProcessQ

ProcessRCapabiltyc

Capabiltyc,e

Page 33: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

ACLvsCapabili3es•  Delega3on

–  Cap:Processcanpasscapabilityatrun3me–  ACL:Trytogetownertoaddpermissiontolist?

•  Morecommon:letotherprocessactundercurrentuser•  Revoca3on

–  ACL:Removeuserorgroupfromlist–  Cap:Trytogetcapabilitybackfromprocess?

•  Possibleinsomesystemsifappropriatebookkeeping–  OSknowswhichdataiscapability–  Ifcapabilityisusedformul3pleresources,havetorevokeallornone…

•  Indirec3on:capabilitypointstopointertoresource–  IfC→P→R,thenrevokecapabilityCbyseengP=0

Page 34: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Roles(akaGroups)•  Role=setofusers

–  Administrator,PowerUser,User,Guest–  Assignpermissionstoroles;eachusergetspermission

•  Rolehierarchy–  Par3alorderofroles–  Eachrolegetspermissionsofrolesbelow

–  Listonlynewpermissionsgiventoeachrole

Administrator

Guest

PowerUser

User

Page 35: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Role-BasedAccessControlIndividuals Roles Resources

engineering

marke3ng

humanres

Server1

Server3

Server2

Advantage:userschangemorefrequentlythanroles

Page 36: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Accesscontrolsummary•  Accesscontrolinvolvesreferencemonitor

–  Checkpermissions:〈userinfo,ac3on〉→yes/no–  Important:nowayaroundthischeck

•  Accesscontrolmatrix–  Accesscontrollistsvscapabili3es–  Advantagesanddisadvantagesofeach

•  Role-basedaccesscontrol–  Usegroupas“userinfo”;usegrouphierarchies

Page 37: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

SecureArchitecturePrinciples

Opera3ngSystems

Page 38: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Unixaccesscontrol

•  Processhasuserid–  Inheritfromcrea3ngprocess–  Processcanchangeid

•  Restrictedsetofop3ons–  Special“root”id

•  Allaccessallowed•  Filehasaccesscontrollist(ACL)

–  Grantspermissiontouserids–  Owner,group,other

File 1 File 2 …

User 1 read write -

User 2 write write -

User 3 - - read

User m Read write write

Page 39: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Unixfileaccesscontrollist•  Eachfilehasownerandgroup•  Permissionssetbyowner

–  Read,write,execute–  Owner,group,other–  Representedbyvectoroffouroctalvalues

•  Onlyowner,rootcanchangepermissions–  Thisprivilegecannotbedelegatedorshared

•  Se3dbits–Discussinafewslides

rwx rwxrwx-ownr grp othr

se3d

Page 40: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Ques3on•  Ownercanhavefewerprivilegesthanother

–  Whathappens?•  Ownergetsaccess?•  Ownerdoesnot?

Priori3zedresolu3onofdifferencesifuser=ownerthenownerpermissionelseifuseringroupthengrouppermissionelseotherpermission

Page 41: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Processeffec3veuserid(EUID)•  EachprocesshasthreeIds(+moreunderLinux)

–  RealuserID(RUID)•  sameastheuserIDofparent(unlesschanged)•  usedtodeterminewhichuserstartedtheprocess

–  Effec3veuserID(EUID)•  fromsetuserIDbitonthefilebeingexecuted,orsyscall•  determinesthepermissionsforprocess

–  fileaccessandportbinding–  SaveduserID(SUID)

•  SopreviousEUIDcanberestored

•  RealgroupID,effec3vegroupID,usedsimilarly

Page 42: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

ProcessOpera3onsandIDs•  Root

–  ID=0forsuperuserroot;canaccessanyfile•  ForkandExec

–  InheritthreeIDs,exceptexecoffilewithsetuidbit•  Setuidsystemcall

–  seteuid(newid)cansetEUIDto•  RealIDorsavedID,regardlessofcurrentEUID•  AnyID,ifEUID=0

•  Detailsareactuallymorecomplicated–  Severaldifferentcalls:setuid,seteuid,setreuid

Page 43: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Se3dbitsonexecutableUnixfile•  Threese3dbits

–  Setuid–setEUIDofprocesstoIDoffileowner–  Setgid–setEGIDofprocesstoGIDoffile–  S3cky

•  Off:ifuserhaswritepermissionondirectory,canrenameorremovefiles,evenifnotowner

•  On:onlyfileowner,directoryowner,androotcanrenameorremovefileinthedirectory

Page 44: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Example

…;…;exec();

RUID25 SetUID

program

…;…;i=getruid()setuid(i);…;…;

RUID25EUID18

RUID25EUID25

-rw-r--r--file

-rw-r--r--file

Owner18

Owner25

read/write

read/write

Owner18

Page 45: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Unixsummary•  Goodthings

–  Someprotec3onfrommostusers–  Flexibleenoughtomakethingspossible

•  Mainlimita3on–  Tootemp3ngtouserootprivileges–  Nowaytoassumesomerootprivilegeswithoutallrootprivileges

Page 46: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Weaknessinisola3on,privileges•  Network-facingDaemons

–  Rootprocesseswithnetworkportsopentoallremotepar3es,e.g.,sshd,cpd,sendmail,…

•  Rootkits–  Systemextensionviadynamicallyloadedkernelmodules

•  EnvironmentVariables–  SystemvariablessuchasLIBPATHthataresharedstateacross

applica3ons.AnaqackercanchangeLIBPATHtoloadanaqacker-providedfileasadynamiclibrary

Page 47: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Weaknessinisola3on,privileges•  SharedResources

–  Sinceanyprocesscancreatefilesin/tmpdirectory,anuntrustedprocessmaycreatefilesthatareusedbyarbitrarysystemprocesses

•  Time-of-Check-to-Time-of-Use(TOCTTOU)–  Typically,arootprocessusessystemcalltodetermineifini3a3nguser

haspermissiontoapar3cularfile,e.g./tmp/X.–  Aceraccessisauthorizedandbeforethefileopen,usermaychange

thefile/tmp/Xtoasymboliclinktoatargetfile/etc/shadow.

Page 48: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

AccesscontrolinWindows•  Somebasicfunc3onalitysimilartoUnix

–  Specifyaccessforgroupsandusers•  Read,modify,changeowner,delete

•  Someaddi3onalconcepts–  Tokens–  Securityaqributes

•  Generally – MoreflexiblethanUnix

•  Candefinenewpermissions•  Cangivesomebutnotalladministratorprivileges

Page 49: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component
Page 50: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Iden3fysubjectusingSID•  SecurityID(SID)

–  Iden3ty(replacesUID)•  SIDrevisionnumber•  48-bitauthorityvalue•  variablenumberofRela3veIden3fiers(RIDs),foruniqueness

–  Users,groups,computers,domains,domainmembersallhaveSIDs

Page 51: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Processhassetoftokens•  Securitycontext

–  Privileges,accounts,andgroupsassociatedwiththeprocessorthread

–  Presentedassetoftokens•  Impersona3ontoken

–  Usedtemporarilytoadoptadifferentsecuritycontext,usuallyofanotheruser

•  SecurityReferenceMonitor–  Usestokenstoiden3fythesecuritycontextofaprocessorthread

Page 52: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Objecthassecuritydescriptor•  Securitydescriptorassociatedwithanobject

–  Specifieswhocanperformwhatac3onsontheobject•  Severalfields

–  Header•  Descriptorrevisionnumber•  Controlflags,aqributesofthedescriptor

–  E.g.,memorylayoutofthedescriptor–  SIDoftheobject'sowner–  SIDoftheprimarygroupoftheobject–  Twoaqachedop3onallists:

•  Discre3onaryAccessControlList(DACL)–users,groups,…•  SystemAccessControlList(SACL)–systemlogs,..

Page 53: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Exampleaccessrequest

Group1:AdministratorsGroup2:Writers

Controlflags

GroupSIDDACLPointerSACLPointerDenyWritersRead,WriteAllowMarkRead,Write

OwnerSID

RevisionNumber

Accesstoken

Securitydescriptor

Accessrequest:writeAc3on:denied

•  User Mark requests write permission •  Descriptor denies permission to group •  Reference Monitor denies request (DACL for access, SACL for audit and logging)

Priority:ExplicitDenyExplicitAllowInheritedDenyInheritedAllow

User:Mark

Page 54: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component
Page 55: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Impersona3onTokens(comparetosetuid)

•  Processadoptssecurityaqributesofanother–  Clientpassesimpersona3ontokentoserver

•  Clientspecifiesimpersona3onlevelofserver–  Anonymous

•  Tokenhasnoinforma3onabouttheclient–  Iden3fica3on

•  ObtaintheSIDsofclientandclient'sprivileges,butservercannotimpersonatetheclient

–  Impersona3on•  Impersonatetheclient

–  Delega3on•  Letsserverimpersonateclientonlocal,remotesystems

Page 56: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Weaknessinisola3on,privileges•  SimilarproblemstoUnix

–  E.g.,Rootkitsleveragingdynamicallyloadedkernelmodules•  WindowsRegistry

–  Globalhierarchicaldatabasetostoredataforallprograms–  Registryentrycanbeassociatedwithasecuritycontextthatlimitsaccess;commontobeabletowritesensi3veentry

•  EnabledByDefault–  Historically,manyWindowsdeploymentsalsocamewithfullpermissionsandfunc3onalityenabled

Page 57: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

SecureArchitecturePrinciples

BrowserIsola3onandLeastPrivilege

Page 58: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Webbrowser:ananalogy

Opera&ngsystem•  Subject:Processes

–  HasUserID(UID,SID)–  Discre3onaryaccesscontrol

•  Objects–  File–  Network–  …

•  Vulnerabili3es–  Untrustedprograms–  Bufferoverflow–  …

Webbrowser•  Subject:webcontent(JavaScript)

–  Has“Origin”–  Mandatoryaccesscontrol

•  Objects–  Documentobjectmodel–  Frames–  Cookies/localStorage

•  Vulnerabili3es–  Cross-sitescrip3ng–  Implementa3onbugs–  …

Thewebbrowserenforcesitsowninternalpolicy.Ifthebrowserimplementa3oniscorrupted,thismechanismbecomesunreliable.

Page 59: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Componentsofsecuritypolicy•  Frame-Framerela3onships

–  canScript(A,B)•  CanFrameAexecuteascriptthatmanipulatesarbitrary/nontrivialDOMelementsofFrameB?

–  canNavigate(A,B)•  CanFrameAchangetheoriginofcontentforFrameB?

•  Frame-principalrela3onships–  readCookie(A,S),writeCookie(A,S)

•  CanFrameAread/writecookiesfromsiteS?

Page 60: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

ChromiumSecurityArchitecture

•  Browser("kernel")–  Fullprivileges(filesystem,networking)

•  Renderingengine–  Upto20processes–  Sandboxed

•  Oneprocessperplugin–  Fullprivilegesofbrowser

Page 61: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Chromium

Communica3ngsandboxedcomponents

See:hqp://dev.chromium.org/developers/design-documents/sandbox/

Page 62: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

DesignDecisions•  Compa3bility

–  Sitesrelyontheexis3ngbrowsersecuritypolicy–  Browserisonlyasusefulasthesitesitcanrender–  Rulesoutmore“cleanslate”approaches

•  BlackBox–  OnlyrenderermayparseHTML,JavaScript,etc.–  Kernelenforcescoarse-grainedsecuritypolicy–  Renderertoenforcesfiner-grainedpolicydecisions

•  MinimizeUserDecisions

Page 63: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

TaskAlloca3on

Page 64: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

LeverageOSIsola3on•  SandboxbasedonfourOSmechanisms

–  Arestrictedtoken–  TheWindowsjobobject–  TheWindowsdesktopobject–  WindowsVistaonly:integritylevels

•  Specifically,therenderingengine–  adjustssecuritytokenbyconver3ngSIDStoDENY_ONLY,adding

restrictedSID,andcallingAdjustTokenPrivileges–  runsinaWindowsJobObject,restric3ngabilitytocreatenew

processes,readorwriteclipboard,..–  runsonaseparatedesktop,mi3ga3nglaxsecuritycheckingofsome

WindowsAPIsSee:hqp://dev.chromium.org/developers/design-documents/sandbox/

Page 65: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Evalua3on:CVEcount

•  TotalCVEs:

•  Arbitrarycodeexecu3onvulnerabili3es:

Page 66: Secure Architecture Principles - Columbia Universitysuman/6183_slides/secure-architecture.pdfComponent design Network User input File system Network User device File system Component

Summary•  Securityprinciples

–  Isola3on–  PrincipleofLeastPrivilege–  Qmailexample

•  AccessControlConcepts–  Matrix,ACL,Capabili3es

•  OSMechanisms–  Unix

•  Filesystem,Setuid–  Windows

•  Filesystem,Tokens,EFS•  Browsersecurityarchitecture

–  Isola3onandleastprivilegeexample