32
Continuous Security in Modernen Webanwendungen Sicherheit eingebaut Martin Reinhardt (Holisticon AG) @mreinhardt

Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

ContinuousSecurityinModernenWebanwendungen

SicherheiteingebautMartinReinhardt(HolisticonAG)

@mreinhardt

Page 2: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

Agenda■ ContinuousDelivery■ IT-Sicherheit□ Methodik□ Agil&Security

■ ContinuousSecurity□ Automatisierung□ Tools

■ Ausblick■ Links

Page 3: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

Aboutme■ MartinReinhardt(HolisticonAG)

■■

github.com/hypery2ktwitter.com/mreinhardt

Page 4: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

ContinuousDelivery■ AgileSoftwareentwicklungarbeitetkleinteilig□ SoftwareoftundzuverlässiginProduktion□ SoftwaremitagilenMethodenkannnichtkomplett(manuell)getestetwerde

□ Alle2WochengesamtenFunktionsumfangabtestenistutopisch□ WesentlichistdabeidieBuildPipeline

■ Wie?□ Geschwindigkeit□ Automatisierung

Page 5: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

BuildPipeline■ wesentlichesZielistschnellesFeedback,alsoGeschwindigkeit□ EinzelneSchrittschnellabarbeiten(5-10Minuten)□ MöglichstfrühFehlerfinden(Unit-Tests )

■ QuellcodemussContinuousDeliverygerechtwerden

■ WarumnichtauchfürSecurity?■ ContinuousDeliveryaucheineChancefürSicherheitsaspekte

Page 6: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

IT-Sicherheit

Page 7: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

WarumdasGanze?■ NSA■ BDSG■ DSGVO■ Kosten■ Exploits□ CVE-2016-5000-ApachePOIInformationDisclosureviaExternalEntityExpansion(XXE)

□ CVE-2016-4216-AdobeXMPToolkitforJavaInformationDisclosureviaExternalEntityExpansion(XXE)

□ CVE-2016-3081-RemotecodeexecutionvulnerabilityinApacheStrutswhendynamicmethodinvocationisenabled

□ CVE-2015-8103-RemotecodeexecutionvulnerabilityinJenkinsremoting;relatedtotheApachecommons-collections

Page 8: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

BlackDuck-OpenSourceSecurityAnalysis

■ StandvonOpenSourceSecurityinkommerziellenAnwendungen□ 95%derAnwendungenenthaltenOSS□ 67%derAnwendungenenhaltenOSSSchwachstellen□ DurchschnittsaltervonbekanntenSchwachstelleninOSS:1894Tage

bit.ly/2yfsD2x

Page 9: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

OWASPTop10■ KritischstenRisikeninWebanwendungen■ A9-NutzungvonKomponentenmitbekanntenSchwachstellen

■ Schwerzuerkennen■ BewusstseinaufEntwicklungsseite■ Sichtbarkeit■ Toolunterstützungnichtvorhanden■ PatchingerforderterneutCodeänderungen

Page 10: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

ArtenvonTests■ FunktionaleSicherheitstests■ Schwachstellen-Scanning/Fuzzing■ Penetrationstests

Page 11: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

ContinuousSecurity■ Testenistnichtalles,beiEntwicklungauchnicht■ WarumalsonichtauchbeiSecurity?■ logischerSchrittfürAutomatisierung■ SecuritymussaufverschiedenEbenenbetrachtetwerden□ Code&Architektur(Sonar)□ Integrations-Tests(bdd-security,zap,owasp)

Page 12: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

Securityganzheitlich■ Themaeinarbeiten□ ErstellungvonSecurityGuidelines□ BerücksichtigungvonSicherheitimRahmenderErstellungvonUserStories

□ Codescansdurchführen□ Peer-ReviewsdurcheinenSecurityChampiondurchführen□ Penetrationstestseinplanen

■ Planing■ SecureScrum■ ThreadModel■ AnalogzurrestlichenSoftwareentwicklung

Page 13: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

ContinuousSecurityTesting■ Toolsmittlerweileverfügbar■ meistsetzendieseaufOWASPauf■ IntegrationnichtschwierigeralsbeiDevOps

Page 14: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

NodeSecurityProject(NSP)■ PrüfungderAbhängigkeitenaufbekannteSchwachstellen

■ SchlägtkorrigierteVersionvor┌───────────────┬───────────────────────────────────────┐││InsecureDefaultsAllowMITMOverTLS│├───────────────┼───────────────────────────────────────┤│Name│engine.io-client│├───────────────┼───────────────────────────────────────┤│Installed│1.5.4│├───────────────┼───────────────────────────────────────┤│Vulnerable│<=1.6.8│├───────────────┼───────────────────────────────────────┤│Patched│>=1.6.9│├───────────────┼───────────────────────────────────────┤│MoreInfo│https://nodesecurity.io/advisories/99│└───────────────┴───────────────────────────────────────┘

Page 15: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

OWASPdependency-check■ Seit2012verfügbar(basiertauf

)■ VerfügbarinverschiedenenVarianten:Ant,Maven,Gradle,SBT,Jenkins

■ AnalysederAbhängigkeitenzubekanntenSchwachstellenfürJava&.NET

■ ExperimentielleUnterstützung□ CocoaPods□ SwiftPackageManager□ Python□ PHP(composer)□ Node.js□ Ruby

A9-KomponentenmitbekanntenSchwachstellen

Page 16: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

■ PrinzipiellkannjedegefundenenSchwachstellezuBuildfehlerführen

■ Nichtpraktikabel,deswegensindAusnhamennötig□ KannreduzierterCommonVulnerabilityScoringSystem-Score(CVSS)gewähltwerden

□ Ausnahmenfestlegen

[ERROR]Failedtoexecutegoalorg.owasp:dependency-check-maven:1.4.0:check(default)...[ERROR][ERROR]Dependency-CheckFailure:[ERROR]OneormoredependencieswereidentifiedwithvulnerabilitiesthathaveaCVSSscoregreaterthen'5.0':[ERROR]commons-httpclient-3.1.jar:CVE-2014-3577[ERROR]mysql-connector-java-5.1.37.jar:CVE-2014-0001,CVE-2013-2378,....[ERROR]tomcat-embed-core-8.0.33.jar:CVE-2016-3092,CVE-2013-2185,CVE-2002-0493

Page 17: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

HTML-Report

Page 18: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

■ MitfestgelegtenAusnahmen

Page 19: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

■ AusnahmenwerdenineigenemXML-Formatfestgelegt

<suppress><notes><![CDATA[Thissuppressesfalsepositivesidentifiedonspringsecurity.]]></notes><gavregex="true">org\.springframework\.security:spring.*</gav><cpe>cpe:/a:mod_security:mod_security</cpe><cpe>cpe:/a:springsource:spring_framework</cpe><cpe>cpe:/a:vmware:springsource_spring_framework</cpe></suppress>

Page 20: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

OWASPZedAttackProxy(ZAP)Features

■ InterceptingProxy■ AutomatedScanner■ PassiveScanner■ BruteForceScanner■ Fuzzer■ PortScanner■ Spider■ WebSockets■ RESTAPIScanning(OpenAPI/Swagger)

Page 21: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

Funktionsweise■ InstallationaufseparatenUmgebung

■ ScanderAnwendung■ ProxywährendTestausführung

Page 22: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger
Page 23: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

IntegrationinPipeline■ MavenPlugin:github.com/hypery2k/zap-maven-plugin

Page 24: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger
Page 25: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

IntegrationinBuild■ EinfacheIntegration■ Erweiterungmöglich(SeleniumTests)

<plugin><groupId>de.martinreinhardt-online</groupId><artifactId>zap-maven-plugin</artifactId><configuration><zapHost>localhost</zapHost><zapPort>44444</zapPort><failingRiskCodeThreshold>5</failingRiskCodeThreshold><targetUrl>http://ngspring:41180/</targetUrl><authenticationType>form</authenticationType><username>user</username><password>password</password><shouldRunAjaxSpider>true</shouldRunAjaxSpider></configuration>...</plugin>

Page 26: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

SonarIntegration

github.com/pdsoftplan/sonar-zap

Page 27: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

AWSabsichern■ SecurityMonkey

■ MonitoringfürSicherheitsprobleme■ FürgroßeverteilteAWS-Anwendungen

github.com/Netflix/security_monkey

Page 28: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

Fazit&Ausblick■ Bibliotheken=Sicherheitsrisiko□ geradeimmodernenUmfeld□ zeitnaheAktualisierungnötig□ automatisierbar

■ Absicherungmöglich□ PenetrationstestsdurchDevOpseinfachautomatisierbar□ vieleToolsimBereichTesting&Automatisierung□ SpringVault□ HashiCorpSentinel

■ FeedbackisteinMuss■ unerlässlicheinSicherheitsbewusstseinimTeamaufzubauen

projects.spring.io/spring-vault/hashicorp.com/blog/sentinel-announcement-

policy-as-code-framework/

Page 29: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

ContinuousDelivery,J.Humble,D.Farley

"Thereisnoone-size-fits-allsolutiontothecomplexproblemofimplementingadeploymentpipeline."

Page 30: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

RobertMiller,FBIDirector,2012

"Thereareonlytwotypesofcompanies:thosethathavebeenhacked,andthosethatwillbe"

Page 32: Continuous Security in Modernen Webanwendungen · 2018-01-17 · Continuous Security Testing Tools mittlerweile verfügbar meist setzen diese auf OWASP auf Integration nicht schwieriger

Präsentation

holisticon.github.io/presentations/2017_ISD_continuous-security/