Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
ContinuousSecurityinModernenWebanwendungen
SicherheiteingebautMartinReinhardt(HolisticonAG)
@mreinhardt
Agenda■ ContinuousDelivery■ IT-Sicherheit□ Methodik□ Agil&Security
■ ContinuousSecurity□ Automatisierung□ Tools
■ Ausblick■ Links
Aboutme■ MartinReinhardt(HolisticonAG)
■■
github.com/hypery2ktwitter.com/mreinhardt
ContinuousDelivery■ AgileSoftwareentwicklungarbeitetkleinteilig□ SoftwareoftundzuverlässiginProduktion□ SoftwaremitagilenMethodenkannnichtkomplett(manuell)getestetwerde
□ Alle2WochengesamtenFunktionsumfangabtestenistutopisch□ WesentlichistdabeidieBuildPipeline
■ Wie?□ Geschwindigkeit□ Automatisierung
BuildPipeline■ wesentlichesZielistschnellesFeedback,alsoGeschwindigkeit□ EinzelneSchrittschnellabarbeiten(5-10Minuten)□ MöglichstfrühFehlerfinden(Unit-Tests )
■ QuellcodemussContinuousDeliverygerechtwerden
■ WarumnichtauchfürSecurity?■ ContinuousDeliveryaucheineChancefürSicherheitsaspekte
IT-Sicherheit
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
BlackDuck-OpenSourceSecurityAnalysis
■ StandvonOpenSourceSecurityinkommerziellenAnwendungen□ 95%derAnwendungenenthaltenOSS□ 67%derAnwendungenenhaltenOSSSchwachstellen□ DurchschnittsaltervonbekanntenSchwachstelleninOSS:1894Tage
bit.ly/2yfsD2x
OWASPTop10■ KritischstenRisikeninWebanwendungen■ A9-NutzungvonKomponentenmitbekanntenSchwachstellen
■ Schwerzuerkennen■ BewusstseinaufEntwicklungsseite■ Sichtbarkeit■ Toolunterstützungnichtvorhanden■ PatchingerforderterneutCodeänderungen
ArtenvonTests■ FunktionaleSicherheitstests■ Schwachstellen-Scanning/Fuzzing■ Penetrationstests
ContinuousSecurity■ Testenistnichtalles,beiEntwicklungauchnicht■ WarumalsonichtauchbeiSecurity?■ logischerSchrittfürAutomatisierung■ SecuritymussaufverschiedenEbenenbetrachtetwerden□ Code&Architektur(Sonar)□ Integrations-Tests(bdd-security,zap,owasp)
Securityganzheitlich■ Themaeinarbeiten□ ErstellungvonSecurityGuidelines□ BerücksichtigungvonSicherheitimRahmenderErstellungvonUserStories
□ Codescansdurchführen□ Peer-ReviewsdurcheinenSecurityChampiondurchführen□ Penetrationstestseinplanen
■ Planing■ SecureScrum■ ThreadModel■ AnalogzurrestlichenSoftwareentwicklung
ContinuousSecurityTesting■ Toolsmittlerweileverfügbar■ meistsetzendieseaufOWASPauf■ IntegrationnichtschwierigeralsbeiDevOps
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│└───────────────┴───────────────────────────────────────┘
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
■ 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
HTML-Report
■ MitfestgelegtenAusnahmen
■ 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>
OWASPZedAttackProxy(ZAP)Features
■ InterceptingProxy■ AutomatedScanner■ PassiveScanner■ BruteForceScanner■ Fuzzer■ PortScanner■ Spider■ WebSockets■ RESTAPIScanning(OpenAPI/Swagger)
Funktionsweise■ InstallationaufseparatenUmgebung
■ ScanderAnwendung■ ProxywährendTestausführung
IntegrationinPipeline■ MavenPlugin:github.com/hypery2k/zap-maven-plugin
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>
AWSabsichern■ SecurityMonkey
■ MonitoringfürSicherheitsprobleme■ FürgroßeverteilteAWS-Anwendungen
github.com/Netflix/security_monkey
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/
ContinuousDelivery,J.Humble,D.Farley
"Thereisnoone-size-fits-allsolutiontothecomplexproblemofimplementingadeploymentpipeline."
RobertMiller,FBIDirector,2012
"Thereareonlytwotypesofcompanies:thosethathavebeenhacked,andthosethatwillbe"
Links■■■■■
■■■■■■■
BeispielAnwendungOWASPTop10OWASPCheatSheetBSIEmpfehlungenzuWebanwendungenDevOps–TestautomationI–InfrastructureasCodeRockCImitJenkins2undDockerBeispielSerenityZAPBlogYourcodeasacrimesceneSecureScrumSpringVaultHashiCorpSentinel
Präsentation
holisticon.github.io/presentations/2017_ISD_continuous-security/