Top Banner
QUALITY. PRODUCTIVITY. INNOVATION. endava.com Common Web Security Threats … and what to do about them Eoin Woods Endava
44

Common WebApp Vulnerabilities and What to Do About Them

Apr 12, 2017

Download

Software

Eoin Woods
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Common WebApp Vulnerabilities and What to Do About Them

QUALITY. PRODUCTIVITY. INNOVATION.

endava.com

CommonWebSecurityThreats…and whattodoaboutthem

EoinWoodsEndava

Page 2: Common WebApp Vulnerabilities and What to Do About Them

3

3

Introductions

EoinWoods• CTOatEndava• Careerhasspannedproductsandapplications• Architecture andsoftware engineering• Bull,Sybase,InterTrust• BGI(Barclays)andUBS

• Longtimesecuritydabbler• Increasinglyconcernedatcyberthreatfor“normal”systems

Page 3: Common WebApp Vulnerabilities and What to Do About Them

4

4

Content

IntroducingWebSecurityThreatsTheOWASPWebVulnerabilitiesListUsefulToolstoKnowAboutReviewingDefencesSummary

Page 4: Common WebApp Vulnerabilities and What to Do About Them

IntroducingWebSecurityThreats

Page 5: Common WebApp Vulnerabilities and What to Do About Them

6

6

WebSecurityThreats

Weneedsystemsthataredependableinthefaceof• Malice• Error• Mischance

Peoplearesometimesbad,stupid orjustunlucky

Systemsecurityaimstomitigatethesesituations

Page 6: Common WebApp Vulnerabilities and What to Do About Them

7

7

WebSecurityThreats

Systemthreatsaresimilartoreal-worldthreats:• Theft• Fraud• Destruction• Disruption

Anythingofvalue mayattractunwelcomeattention

“Irobbanksbecausethat’swherethemoneyis”–WillieSutton

Page 7: Common WebApp Vulnerabilities and What to Do About Them

8

8

WebSecurityThreats

Whydowecareaboutthesethreats?• Athreatisariskofaloss ofsomesort

Commontypesoflossare:• Time• Money• Privacy• Reputation• Advantage

Page 8: Common WebApp Vulnerabilities and What to Do About Them

9

WebSecurityThreats

Securitytodaymitigatestomorrow’sthreat

Digitalchannelsdemandwebsecurity• SysteminterfacesontheInternet• IntrospectionofAPIs• Attacksbeing“weaponised”• Today’sinternalappis

tomorrow’s“digitalchannel”

Page 9: Common WebApp Vulnerabilities and What to Do About Them

10

10

WhoareOWASP?

TheOpenWebApplicationSecurityProject• Largelyvolunteerorganisation,largelyonlineExiststoimprovethestateofsoftwaresecurity• Research,tools,guidance,standards• Runslocalchaptersforfacetofacemeetings(UKhas10+)“OWASPTop10”projectliststopapplicationsecurityrisks• ReferencedwidelybyMITRE,PCIDSSandsimilar• Updatedeveryfewyears(2003,2004,2007,2010,2013)

Page 10: Common WebApp Vulnerabilities and What to Do About Them

11

11

OtherSelectedSecurityOrganisations

MITRECorporation• CommonVulnerabilitiesandExposures(CVE)• CommonWeaknessesEnumeration(CWE)

SAFECode• FundamentalPracticesforSecureSoftwareDevelopment• Training

Therearealotofotherstoo(CPNI,CERT,CIS,ISSA,…)

Page 11: Common WebApp Vulnerabilities and What to Do About Them

OWASPWebVulnerabilitiesList

Page 12: Common WebApp Vulnerabilities and What to Do About Them

13

13

OWASPTop10- 2013

#1InjectionAttacks#2AuthenticationandSessionManagement#3CrossSiteScripting(XSS)#4DirectObjectReference#5SecurityMisconfiguration#6SensitiveDataExposure#7FunctionLevelAccessControl#8CrossSiteRequestForgery(CSRF)#9ComponentVulnerabilities#10UnvalidatedRedirectsandForwards

Thesemaylook“obvious”butappearonthelistyearafteryear,basedonreal vulnerabilitydatabases!

Page 13: Common WebApp Vulnerabilities and What to Do About Them

14

14

#1InjectionAttacks

Unvalidated inputpassedtoaninterpreter• OperatingsystemandSQLaremostcommon

Defencesinclude“escaping”inputs,bindvariables,usingwhitelists,…

SELECT * from table1 where name = ’%1’

Set‘%1’to‘OR1=1-- …thisresults inthisquery:

SELECT * FROM table1 WHERE name = ’’ OR 1=1 --

Page 14: Common WebApp Vulnerabilities and What to Do About Them

15

15

#2BrokenAuthenticationorSessionManagement

• HTTPisstateless- somesortofcredentialsenteverytime• Credentialonnon-TLSconnectioncanbetamperedwith• SessionIDoftendisplayedbutcanbeusedaslogindetails• Defencesarestrongauthenticationandsession

managementcontrols

a5f3dd56ff32 a5f3dd56ee33

Page 15: Common WebApp Vulnerabilities and What to Do About Them

16

16

#3CrossSiteScripting

• Occurswhenscriptisinjectedintoauser’swebpage• Reflected attack– crafted linkinemail…• Persistent attack- database records, sitepostings,activitylistings

• Allowsredirection,sessiondatastealing,pagecorruption,…• Defencesincludevalidationandescapingontheserver-side

http://www.veracode.com/security/xss

Page 16: Common WebApp Vulnerabilities and What to Do About Them

17

17

#4InsecureDirectObjectRefs

Directlyreferencingfilenames,IDsandsimilarinrequests• Notauthenticatingaccesstoeachontheserver• e.g.relyingonlimitedlistofoptionsreturnedtoclient• Clientcanmodifyrequestandgainaccesstootherobjects

Defencesincludeusingpseudoreferencesonclientandauthenticatingallobjectaccesses

http://mysite.com/view?id=file1.txt

…howabout:http://mysite.com/view?id=../robots.txt ??

Page 17: Common WebApp Vulnerabilities and What to Do About Them

18

18

#5SecurityMisconfiguration

Securityconfigurationisoftencomplicated• Manydifferentplacestoputit,complexsemantics• LayersfromOStoapplicationallneedtobeconsistent

Itiseasytoaccidentallymissanimportantpart• OSfilepermissions?• .htaccess files?• Sharedcredentialsintestandproduction?Allowsaccidentalaccesstoresourcesorevensitemodification

Mitigationviascanning,standardisation,simplicityandautomation

Page 18: Common WebApp Vulnerabilities and What to Do About Them

19

19

#6SensitiveDataExposure

Issensitivedatasecuredintransit?• TLS,messageencryptionIssensitivedatasecuredatrest?• Encryption,tokenisation,separationRisksincludelossofdataorspoofingattacksMitigationviathreatanalysis,limitingscope,standardisation

https://askleo.com

Page 19: Common WebApp Vulnerabilities and What to Do About Them

20

20

#7FunctionLevelAccessControl

Relyingoninformationsenttotheclientforaccesscontrol• e.g.pagemenuomitting“update”and“delete”optionforarecord

• Notcheckingtheaction(function)beingperformedontheserverClientcanguesstherightrequestformfortheotheractions• Bypassedsecuritymodel- alsosee#4InsecureObjectReferences

Nevertrusttheclient- checkauthorisationforeveryrequest

http://www.example.com/gettxn?txnid=4567

à http://www.example.com/updttxn?tid=4567&value=100.00

Page 20: Common WebApp Vulnerabilities and What to Do About Them

21

21

#8CrossSiteRequestForgery

Usertriggersmaliciouscodethatsubmitsfraudulentrequestusingbrowsersecuritycontext• e.g.clickalink=>runJavaScript=>changeGithub password

Varioussubtlevariationsonthismakedefencequitedifficult• Howyoudoyouknowitistheuser?

Primarydefenceisthe“challengevalue”inpages• Checkforthelatestchallengevalueinrequests• Addauthenticationstepsforsensitiveoperations• Keepshortsessionswithreallogoutprocess

Page 21: Common WebApp Vulnerabilities and What to Do About Them

22

22

#9KnownVulnerableComponents

Source:marketwired.com

Page 22: Common WebApp Vulnerabilities and What to Do About Them

23

23

#9KnownVulnerableComponents

Manycommonlyusedcomponentshavevulnerabilities• SeeweeklyUS-CERTlistforafrighteningrealitycheck!• MuchOSSdoesn’thavewellresearchedvulnerabilitiesFewteamsconsidersecurityoftheir3rdpartycomponents• Andkeepingeverythinguptodateisdisruptive

Considerautomatedscanningof3rdpartycomponents,activelyreviewvulnerabilitylists,keepcomponentspatched

Page 23: Common WebApp Vulnerabilities and What to Do About Them

24

24

#10UnvalidatedRedirectsandForwards

Redirectingorforwardingtotargetsbasedonparameters

AvoidusingparametersforredirectorforwardtargetsWhereparameteris neededuseakeyandmaponserver

http://www.mysite.com/selectpage?pageid=emea_home.html

-> http://…/selectpage?pageid=pishinghome.com

(Withoutcarefulvalidationthisredirectsusertomaliciouspage)

Page 24: Common WebApp Vulnerabilities and What to Do About Them

25

25

SummaryofAttackVectorTypes

Interpreterinjections• OperatingSystem,SQL,…

Pageinjections• HTML,XSS(JavaScript)

LackofValidation• trustingclientsiderestrictions• allowingsession IDsandcookiestobereused,• notcheckinginputfields thoroughly• parameter valuesdirectlyinpagesandlinks

Missingdataprotection• dataloss, spoofing,maninthemiddle,…

Platform• configurationmistakes,vulnerabilities, complexity

Page 25: Common WebApp Vulnerabilities and What to Do About Them

UsefulTools

Page 26: Common WebApp Vulnerabilities and What to Do About Them

27

• DeliberatelyinsecureLAMPwebapplication

• SoruninaVM!• Providesexamplesofthe

OWASPTop10inaction• Useittoexploreand

understandthem

Mutillidaewww.irongeek.com http://sourceforge.net/projects/mutillidae/

Page 27: Common WebApp Vulnerabilities and What to Do About Them

28

• Commercialproxy,scanning,pentest tool

• Verycapablefreeversionavailable

• Inspecttraffic,manipulateheadersandcontent,…

• MadeinKnutsford!

BurpSuitehttp://portswigger.net/burp

Page 28: Common WebApp Vulnerabilities and What to Do About Them

29

• ChromeandSwitchySharp orothersimilarpairing

• AllowseasyswitchingofproxyservertoBurpSuite

BrowserandProxySwitcher

Page 29: Common WebApp Vulnerabilities and What to Do About Them

30

• AutomatedSQLinjectionanddatabasepentesttool

• OpensourcePythonbasedcommandlinetool

• Frighteninglyeffective!

SQLMaphttp://sqlmap.org

Page 30: Common WebApp Vulnerabilities and What to Do About Them

31

• Commercialtoolsuitewithonlinedatabase

• Scansbuildpipelinesforcomponentsecurityvulnerabilities

• Alertsanddashboardsformonitoring

Sonatype ComponentLifecycleManagerhttp://www.sonatype.com/nexus

Page 31: Common WebApp Vulnerabilities and What to Do About Them

32

32

BlackDuckHub

• Commercial toolanddatabase foropensourcesecurity,audit&compliance• Scansbuildpipelines lookingforopensourcewithknownvulnerabilities• Alertsanddashboardsformonitoring

https://www.blackducksoftware.com

Page 32: Common WebApp Vulnerabilities and What to Do About Them

Demonstrations

Page 33: Common WebApp Vulnerabilities and What to Do About Them

34

34

Mutillidae

MutillidaeBurpSuite(proxy)Browserwith

proxyplugin

Page 34: Common WebApp Vulnerabilities and What to Do About Them

35

35

AnExampleMulti-StepAttack- Impersonation

Attacksrarelyusejustonevulnerability

1.SQLInjection

User listobtained

PersistentXSS

achieved

XSSScriptexecuted

4.Stealbrowserstate

Sessionsetc.saved

Page 35: Common WebApp Vulnerabilities and What to Do About Them

ReviewingDefences

Page 36: Common WebApp Vulnerabilities and What to Do About Them

37

37

KeyWebVulnerabilityDefences

Don’ttrustclients(browsers)• Validation,authorisation,…Identify“interpreters”,escapeinputs,usebindvariables,…• Commandlines,webpages,databasequeries,…Protectvaluableinformationatrestandintransit• UseencryptionjudiciouslySimplicity• VerifyconfigurationandcorrectnessStandardiseandAutomate• Forceconsistency,avoidconfigurationerrors

Page 37: Common WebApp Vulnerabilities and What to Do About Them

38

38

Don’tTrustClients

Bewarywhentrustinganythingfromabrowser• Youdon’tcontrolit• Sophisticatedcodeexecution(&injection)platform• Outputcanbemanipulated

Assumeorpreventtampering• TLSconnectionstoavoid3rd partyinterception• Shortlivedsessions• Reauthenticate regularly&beforesensitiveoperations• Considermulti-factor authentication• Useopaquetokensnotrealobjectreferencesforparams• Validateeverything

Page 38: Common WebApp Vulnerabilities and What to Do About Them

39

39

Watchoutforinjection

Manypiecesofsoftwareactasinterpreters• BrowserforHTMLandJavaScript• Operatingsystemshells– system(“mv $1 $2”)• Databases– querylanguages• Configurationfiles

Assumethatsomeonewillworkitout!• Avoidcreatingcommandsusingstringmanipulation• Uselibrariesandbindvariables

• Escapeallstringsbeingpassedtoan“interpreter”• Useathirdparty“escaping”library(e.g.OWASP)

• Rejectexcessivelylongstrings(e.g.username>30char)

Page 39: Common WebApp Vulnerabilities and What to Do About Them

40

40

ProtectValuableInformation

Defenceindepth– assumeperimeterbreach• Encryptmessagingasstandard• Considerdatabaseencryption• Considerfileorfilesystemencryption

Howeverencryptioncomplicatesusingthedata• Slowseverythingdown• Canyouquerywhileencrypted?• Messageroutingonsensitivefields(inheaders)• Howdoyoumanageandrotatethekeys?• Whataboutrestoreondisasterrecovery?

http://getacoder.com

http://slate.com

Page 40: Common WebApp Vulnerabilities and What to Do About Them

41

41

Simplicity&Standardisation

Complexityistheenemyofsecurity• “Youcan’tsecure

whatyoudon’tunderstand”- Schneier• Specialcaseswillbeforgotten

Simplify,StandardiseandAutomate• Simplerthingsareeasiertocheckandsecure• Standardisinganapproachmeansthereareno

specialcasestoforgettohandle• Automationeliminateshumaninconsistencies

fromtheprocesssoavoidingatypeofrisk

http://innovationmanagement.se/

Page 41: Common WebApp Vulnerabilities and What to Do About Them

Summary

Page 42: Common WebApp Vulnerabilities and What to Do About Them

43

43

Summary

Muchofthetechnologyweuseisinherentlyinsecure• MitigationneedstobepartofapplicationdevelopmentAttackingsystemsisbecomingindustrialised• Digitaltransformationisprovidingmorevaluable,insecuretargetsFundamentalattackvectorsappearagainandagain• Injection,interception,pagemanipulation,validation,configuration,…

Mostrealattacksexploitaseriesofvulnerabilities• Eachvulnerabilitymaynotlookserious,thecombinationisMostmitigationsnotdifficultbutneedtobeappliedconsistently• …andmayconflictwithotherdesirablequalities

Page 43: Common WebApp Vulnerabilities and What to Do About Them

44

44

Books

Page 44: Common WebApp Vulnerabilities and What to Do About Them

45

Thankyou

QUALITY.PRODUCTIVITY.INNOVATION.

EoinWoodsCTO

[email protected]

+442073671000

en_ewoods