<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Allgemein &#8211; Geballte Sicherheit</title>
	<atom:link href="https://geballte-sicherheit.de/category/allgemein/feed/" rel="self" type="application/rss+xml" />
	<link>https://geballte-sicherheit.de</link>
	<description>Rund um die Sicherheit für Webanwendungen</description>
	<lastBuildDate>Wed, 08 Jan 2020 20:08:31 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>
	<item>
		<title>Hacking for Security</title>
		<link>https://geballte-sicherheit.de/2020/01/08/hacking-for-security/</link>
					<comments>https://geballte-sicherheit.de/2020/01/08/hacking-for-security/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Wed, 08 Jan 2020 20:08:31 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Code Days 2020]]></category>
		<category><![CDATA[Hacking for Security]]></category>
		<category><![CDATA[Secure Coding]]></category>
		<category><![CDATA[Workbook]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=488</guid>

					<description><![CDATA[Auf den Code Days 2020 in München werde ich einen weiteren Vortrag zur Application Security halten, bei dem ich Entwickler und IT-Verantwortliche von der absoluten Notwendigkeit überzeugen werde, dass Sicherheit keine Option ist, sondern Grundvoraussetzung für erfolgreiches Business. Aber es bleibt nicht bei grauer Theorie &#8211; dieses mal werden wir gemeinsam auftreten. Meine Kollegen und</div><div class="blog-btn"><a href="https://geballte-sicherheit.de/2020/01/08/hacking-for-security/" class="home-blog-btn">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[
<p>Auf den <a href="https://www.code-days.de/">Code Days 2020</a> in München werde ich einen weiteren <a href="https://www.code-days.de/programm/programm-details/407/hacking-for-security/" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Vortrag</a> zur Application Security halten, bei dem ich Entwickler und IT-Verantwortliche von der absoluten Notwendigkeit überzeugen werde, dass Sicherheit keine Option ist, sondern Grundvoraussetzung für erfolgreiches Business.</p>



<p>Aber es bleibt nicht bei grauer Theorie &#8211; dieses mal werden wir gemeinsam auftreten. Meine Kollegen und ich von <a rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)" href="http://www.exxeta.com" target="_blank">EXXETA</a> haben einen Live-Hack vorbereitet, der eine aktuell sehr brisante Sicherheitsschwachstelle zeigt &#8211; und wie Hacker diese ausnutzen. Natürlich wird auch gezeigt, wie man diese vermeiden kann.</p>



<p>Die Code Days ist eine freie Entwickler-Konferenz, also ohne Eintrittskosten. Schaut Euch das interessante Programm an und besucht uns am Donnerstag um 13:15 bei unserem <a href="https://www.code-days.de/programm/programm-details/407/hacking-for-security/" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Talk</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2020/01/08/hacking-for-security/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>XSS Prävention bei modernen JavaScript Frameworks</title>
		<link>https://geballte-sicherheit.de/2019/10/31/xss-praevention-bei-modernen-javascript-frameworks/</link>
					<comments>https://geballte-sicherheit.de/2019/10/31/xss-praevention-bei-modernen-javascript-frameworks/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Thu, 31 Oct 2019 07:53:44 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Angular]]></category>
		<category><![CDATA[Cross Site Scripting]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Prävention]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[Secure Coding]]></category>
		<category><![CDATA[Sicherheitslücke]]></category>
		<category><![CDATA[Sicherheitsschwachstelle]]></category>
		<category><![CDATA[Vue]]></category>
		<category><![CDATA[XSS]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=484</guid>

					<description><![CDATA[Die meisten modernen JS-Frameworks wie React, Vue, oder Angular bringen von Haus aus bereits viele Sicherheitsfeatures mit, die es vorher nicht in der Form gab. Trotzdem kann man auch hier noch Fehler machen, die sich direkt auf die Sicherheit auswirken. Die Gefahr ist also nach wie vor, dass man aus Unwissenheit Schwachstellen verursacht. Deshalb ist es wichtig, diese</div><div class="blog-btn"><a href="https://geballte-sicherheit.de/2019/10/31/xss-praevention-bei-modernen-javascript-frameworks/" class="home-blog-btn">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[
<p>Die meisten modernen JS-Frameworks wie <a rel="noreferrer noopener" target="_blank" href="https://reactjs.org/">React</a>, <a rel="noreferrer noopener" target="_blank" href="https://vuejs.org/">Vue</a>, oder <a rel="noreferrer noopener" target="_blank" href="https://angular.io/">Angular</a> bringen von Haus aus bereits viele Sicherheitsfeatures mit, die es vorher nicht in der Form gab. Trotzdem kann man auch hier noch Fehler machen, die sich direkt auf die Sicherheit auswirken. Die Gefahr ist also nach wie vor, dass man aus Unwissenheit Schwachstellen verursacht. Deshalb ist es wichtig, diese Schwachstellen zu kennen, um sie dann auch vermeiden zu können.</p>



<p>Als Beispiel zeige ich hier einen klassischen Fall von Cross Site Scripting (XSS), der auch heute noch sehr real ist. Wir konstruieren uns dazu das folgende Szenario.</p>



<p>Nehmen wir an, wir wollten einen Benutzer mit seinem Namen ansprechen, indem wir ihn über eine Marketing-E-Mail verknüpfen. Das Hinzufügen von <code>?name=Julian</code> zum Query-String und das anschließende Hinzufügen zum DOM wäre eine schnelle Möglichkeit, dies zu tun.</p>



<p>Zum Beispiel:</p>



<pre class="wp-block-code"><code>document.querySelector('.tagline').innerHTML = nameFromQueryString</code></pre>



<p>Dadurch würde &#8222;Julian&#8220; direkt namentlich angesprochen werden auf der Seite. Die Filterung auf den Request-Parameter wird vom JS-Framework hier nicht gemacht werden.</p>



<p>Die Verwendung von Code wie dem oben genannten bedeutet, dass jeder Angreifer Code in Deine Webanwendung einfügen und übernehmen kann. Allein durch Ändern des Namens in <code>&lt;script src="my.malicious.site"></code> kann man eine URL kreieren, die eine gefälschte Zahlungsseite so aussehen lässt, als würde sie von <strong>Deiner</strong> SSL-verschlüsselten Website geliefert.</p>



<p>Aus diesem Grund ist es ratsam, Daten von Requestparametern immer vorher zu prüfen und zu filtern, und sie niemals einfach so zu übernehmen. Nur so kann man XSS wirksam vermeiden. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/10/31/xss-praevention-bei-modernen-javascript-frameworks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Neues Video: A9:2017 Nutzung von Komponenten mit bekannten Schwachstellen</title>
		<link>https://geballte-sicherheit.de/2019/06/27/neues-video-a92017-nutzung-von-komponenten-mit-bekannten-schwachstellen/</link>
					<comments>https://geballte-sicherheit.de/2019/06/27/neues-video-a92017-nutzung-von-komponenten-mit-bekannten-schwachstellen/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Thu, 27 Jun 2019 13:28:23 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[A9:2017 OWASP]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=434</guid>

					<description><![CDATA[Eine sehr häufig auftretende Sicherheitslücke in Webanwendungen entsteht durch den Einsatz unsicherer Libraries. Wenn auch Ihr in Euren Webanwendungen fremde Libraries einsetzt, dann solltet ihr jetzt ganz genau zuhören! Platz 9 der OWASP Top 10 nennt sich „Nutzung von Komponenten mit bekannten Schwachstellen“. Hier geht es um den Einsatz von 3rd-Party-Libraries, die bekannte Schwachstellen enthalten,</div><div class="blog-btn"><a href="https://geballte-sicherheit.de/2019/06/27/neues-video-a92017-nutzung-von-komponenten-mit-bekannten-schwachstellen/" class="home-blog-btn">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[
<p>Eine sehr häufig auftretende Sicherheitslücke in Webanwendungen entsteht durch den Einsatz unsicherer Libraries. Wenn auch Ihr in Euren Webanwendungen fremde Libraries einsetzt, dann solltet ihr jetzt ganz genau zuhören!</p>



<p>Platz 9 der OWASP Top 10 nennt sich „Nutzung von Komponenten mit bekannten Schwachstellen“. Hier geht es um den Einsatz von 3rd-Party-Libraries, die bekannte Schwachstellen enthalten, und dadurch die Sicherheit unserer Anwendung gefährden. Ich werden Euch zeigen, die man das entdecken und vermeiden kann.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Secure Coding - Teil 9 - Einsatz von unsicheren Komponenten (A9:2017)" width="696" height="392" src="https://www.youtube.com/embed/qoXxHxbones?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div><figcaption>A9:2017 Nutzung von Komponenten mit bekannten Schwachstellen</figcaption></figure>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/06/27/neues-video-a92017-nutzung-von-komponenten-mit-bekannten-schwachstellen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Talk &#8222;Hack me if you can&#8220; auf der JAX2019</title>
		<link>https://geballte-sicherheit.de/2019/05/10/talk-hack-me-if-you-can-auf-der-jax2019/</link>
					<comments>https://geballte-sicherheit.de/2019/05/10/talk-hack-me-if-you-can-auf-der-jax2019/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Fri, 10 May 2019 08:08:59 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Secure Coding]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[JAX]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=407</guid>

					<description><![CDATA[Bericht zum Talk "Hack me if you can - Sicherheit in Webanwendungen" vom 8. Mai 2019 auf der JAX in Mainz. ]]></description>
										<content:encoded><![CDATA[
<p>Auf der diesjährigen <a href="https://jax.de">JAX</a> in Mainz (6.-10. Mai 2019), der Konferenz für Java, Architektur- und Software-Innovation, habe ich am 8. Mai den <a href="https://jax.de/performance-security/hack-me-if-you-can-sicherheit-in-webanwendungen/">Talk &#8222;Hack me if you can &#8211; Sicherheit in Webanwendungen&#8220;</a> gehalten. Inhaltlich habe ich dabei herausgearbeitet, wie wichtig die Berücksichtigung von Sicherheitsschwachstellen ist, bzw. dass man diese konsequent und strategisch vermeidet. Die richtige Vorgehensweise ist dabei, zunächst die Angriffe zu verstehen, damit man eine wirksame Verteidigung aufbauen kann. </p>



<p>Es gibt viel zu viele Webanwendungen, die zu einfach zu hacken sind. Der Grund ist fast immer, dass sich die Entwickler während der Implementierung keine Gedanken über die Sicherheit machen &#8211; weil sie die Angriffe nicht kennen. Deshalb ist es eine Grundvoraussetzung für sichere Software, dass man die Grundlagen sicherer Software kennt.</p>



<p>Den Vortrag habe ich aus diesem Grund in 4 Teile aufgeteilt:</p>



<ol><li>Einleitung: Warum das Ganze?</li><li>Wie man hackt</li><li>Wie man sich schützt</li><li>Wie man sich wehrt</li></ol>



<p>In der Einleitung geht es darum, zu zeigen, dass man sich <em>aktiv</em> um die Sicherheit kümmern muss. Man muss die Angriffe verstehen, um wirksame Verteidigung aufbauen zu können. Ich erläutere, dass viele Basics nicht berücksichtigt werden können, wenn das Know-How bei der Entwicklung nicht vollständig vorhanden ist. </p>



<p>Im 2. Teil &#8222;Wie man hackt&#8220; zeige ich die Vorgehensweise von Hackern, so wie man es auch in Hacker-Kursen lernt. Der Grund dafür ist, damit ein Verständnis aufgebaut wird, wie man eine Anwendung angreift, bzw. von der anderen Perspektive aus gesehen, wie man angegriffen wird. Dadurch kann dann im 3. Teil besser verstanden werden, welche Maßnahmen man treffen muss, damit diese offenen Flanken nicht mehr bestehen.</p>



<p>Der 4. Teil beschäftigt sich dann mit der angemessenen Reaktion auf Angriffe. Denn niemand muss für eine Anwendung hinnehmen, dass sie durch Angriffe lahmgelegt wird. Es gibt hier Verteidigungsmaßnahmen, die das unterbinden können. Dabei stelle ich Tools vor, die eine Schaltzentrale für Sicherheitsmonitoring bieten, damit man Angriffe auf seine Anwendungen in Echtzeit verfolgen kann, und den Abwehrmaßnahmen live bei Ihrer Arbeit zuschauen kann.</p>



<p></p>



<div class="wp-block-file"><a href="https://geballte-sicherheit.de/wp-content/uploads/2019/05/EXXETA@JAX_Hack-me-if-you-can-lowq.pdf">Anbei die Folien zum Vortrag als PDF <br>EXXETA@JAX_Hack-me-if-you-can-lowq</a><a href="https://geballte-sicherheit.de/wp-content/uploads/2019/05/EXXETA@JAX_Hack-me-if-you-can-lowq.pdf" class="wp-block-file__button" download>Herunterladen</a></div>



<figure class="wp-block-image"><img decoding="async" loading="lazy" width="1024" height="683" src="https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7159-1024x683.jpg" alt="" class="wp-image-408" srcset="https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7159-1024x683.jpg 1024w, https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7159-300x200.jpg 300w, https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7159-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image"><img decoding="async" loading="lazy" width="1024" height="683" src="https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7164-1024x683.jpg" alt="" class="wp-image-410" srcset="https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7164-1024x683.jpg 1024w, https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7164-300x200.jpg 300w, https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7164-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image"><img decoding="async" loading="lazy" width="1024" height="683" src="https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7178-1024x683.jpg" alt="" class="wp-image-409" srcset="https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7178-1024x683.jpg 1024w, https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7178-300x200.jpg 300w, https://geballte-sicherheit.de/wp-content/uploads/2019/05/IMG_7178-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/05/10/talk-hack-me-if-you-can-auf-der-jax2019/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Vortrag auf der JAX 2019</title>
		<link>https://geballte-sicherheit.de/2019/05/02/vortrag-auf-der-jax-2019/</link>
					<comments>https://geballte-sicherheit.de/2019/05/02/vortrag-auf-der-jax-2019/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Thu, 02 May 2019 12:33:12 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hack me if you can]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JAX]]></category>
		<category><![CDATA[JAX2019]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[Speaker]]></category>
		<category><![CDATA[Talk]]></category>
		<category><![CDATA[Vortrag]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=403</guid>

					<description><![CDATA[Am 8. Mai 2019 halte ich auf der JAX 2019 einen Vortrag über Sicherheit in Webanwendungen. Die JAX ist eine Konferenz für Java-, Architektur- und Software-Innovationen. Der Titel des Vortrags lautet: Hack me if you can &#8211; Sicherheit in Webanwendungen. Wie auch schon letztes Jahr in kleiner Runde im Rahmen eines Meetups, werde ich bei</div><div class="blog-btn"><a href="https://geballte-sicherheit.de/2019/05/02/vortrag-auf-der-jax-2019/" class="home-blog-btn">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[
<p>Am 8. Mai 2019 halte ich auf der JAX 2019 einen Vortrag über Sicherheit in Webanwendungen. Die <a href="https://jax.de">JAX</a> ist eine Konferenz für Java-, Architektur- und Software-Innovationen.</p>



<p>Der Titel des Vortrags lautet: <a href="https://jax.de/performance-security/hack-me-if-you-can-sicherheit-in-webanwendungen/">Hack me if you can &#8211; Sicherheit in Webanwendungen</a>. Wie auch schon letztes Jahr in kleiner Runde im Rahmen eines Meetups, werde ich bei diesem Thema über die Wichtigkeit und Notwendigkeit referieren, warum es so essenziell wichtig ist, sich um die Sicherheit in der Software zu kümmern. </p>



<p>Ich werde dabei zeigen, wie einfach es inzwischen die Angreifer haben, insbesondere über arglos entwickelte Anwendungen, bei denen keiner auf die Sicherheit geachtet hat. Dabei ist es oft so einfach darauf zu achten. Man muss eben nur die Basics kennen, um einen wirksamen Grundschutz zu bekommen.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" width="696" height="392" src="https://www.youtube.com/embed/gnMqUkR1na4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div><figcaption>Promovideo für meinen Vortrag auf der JAX in Mainz</figcaption></figure>



<p>Hier die genauen Angaben zum Vortrag: Donnerstag, 8. Mai um <a href="https://www.youtube.com/watch?v=gnMqUkR1na4&amp;t=915s">15:15</a> Uhr in der Rheingoldhalle, Raum Gutenberg 2+3. Den Rest des Tages könnt ihr mich am Stand von EXXETA antreffen, ich würde mich freuen Euch dort zu treffen!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/05/02/vortrag-auf-der-jax-2019/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Neue Videos: XSS und Unsichere Deserialisierung</title>
		<link>https://geballte-sicherheit.de/2019/04/14/neue-videos-xss-und-unsichere-deserialisierung/</link>
					<comments>https://geballte-sicherheit.de/2019/04/14/neue-videos-xss-und-unsichere-deserialisierung/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Sun, 14 Apr 2019 15:00:00 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=400</guid>

					<description><![CDATA[Die neuesten Videos sind online, sowie auch ihre Beiträge in der Rubrik Secure Coding. Pro Video werden je ca. 10 Minuten geballte Sicherheit vorgetragen, mit Beispielen und Tipps. Beides sind Themen aus den OWASP Top-10, den zehn am meisten ausgenutzten Schwachstellen bei Webanwendungen.]]></description>
										<content:encoded><![CDATA[
<p>Die neuesten Videos sind online, sowie auch ihre Beiträge in der Rubrik <em>Secure Coding</em>. Pro Video werden je ca. 10 Minuten geballte Sicherheit vorgetragen, mit Beispielen und Tipps.</p>



<p>Beides sind Themen aus den OWASP Top-10, den zehn am meisten ausgenutzten Schwachstellen bei Webanwendungen.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" width="696" height="392" src="https://www.youtube.com/embed/wz5trihK7Yg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" width="696" height="392" src="https://www.youtube.com/embed/YteDr30lXF8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" width="696" height="392" src="https://www.youtube.com/embed/3hKntZHEiHU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/04/14/neue-videos-xss-und-unsichere-deserialisierung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Jackson-Databind und das Problem mit CVE-2017-7525</title>
		<link>https://geballte-sicherheit.de/2019/03/18/jackson-databind-und-das-problem-mit-cve-2017-7525/</link>
					<comments>https://geballte-sicherheit.de/2019/03/18/jackson-databind-und-das-problem-mit-cve-2017-7525/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Mon, 18 Mar 2019 09:53:45 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CVE-2017-7525]]></category>
		<category><![CDATA[deserialisierung]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Jackson-Databind]]></category>
		<category><![CDATA[Json]]></category>
		<category><![CDATA[Schwachstelle]]></category>
		<category><![CDATA[Sicherheitslücke]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=361</guid>

					<description><![CDATA[Wird Jackson-Databind als 3rd-Party-Lib in einem Projekt eingebunden, oder es ist über eine transitive Abhängigkeit mit im Projekt, dann melden Analysetools umgehend ein Finding. Aber in welchem Fall ist Jackson-Databind tatsächlich gefährlich? Hintergrund Jackson-Databind wird verwendet, wenn Json Strings deserialisiert werden. Die Deserialisierung ist etwas komplizierter als die Serialisierung, was daran liegt, dass beim Serialisieren</div><div class="blog-btn"><a href="https://geballte-sicherheit.de/2019/03/18/jackson-databind-und-das-problem-mit-cve-2017-7525/" class="home-blog-btn">Weiterlesen</a>]]></description>
										<content:encoded><![CDATA[
<p>Wird Jackson-Databind als 3rd-Party-Lib in einem Projekt eingebunden, oder es ist über eine transitive Abhängigkeit mit im Projekt, dann melden Analysetools umgehend ein Finding. Aber in welchem Fall ist Jackson-Databind tatsächlich gefährlich?</p>



<h2>Hintergrund</h2>



<p>Jackson-Databind wird verwendet, wenn Json Strings deserialisiert werden. Die Deserialisierung ist etwas komplizierter als die Serialisierung, was daran liegt, dass beim Serialisieren die Klassen noch bekannt sind. Werden abstrakte Klassen oder Interfaces verwendet, ist das beim Serialisieren egal &#8211; der Json String ist immer der gleiche. Anders herum muss beim Deserialisieren, wenn der Json String wieder in reale Objekte gemappt wird, eine Entscheidung für konktete Klassen gefällt werden, die auch instantiiert werden können.</p>



<p>Damit Jackson bei der Deserialisierung konkrete Klassen ermitteln kann, wird mit Annotations gearbeitet, über die die Klassen angegeben werden können:</p>



<pre class="wp-block-preformatted">{ "phone" : {<br>   "@class" : "package.InternationalNumber",<br>   "areaCode" : 555,<br>   ...<br>  }<br>}</pre>



<p>Auf Seite der Java-Klasse wird als Gegenstück z.B. mit&nbsp;<code>@JsonTypeInfo</code>&nbsp;gearbeitet, damit Jackson die richtige Klasse findet. Es gibt hier eine Vielzahl an Annotations, die bei komplexeren Strukturen helfen sollen.</p>



<h2>Die Gefahr</h2>



<p>Die Sicherheitslücke besteht dann, wenn der Json String so manipuliert werden kann, dass bei der Deserialisierung eine Klasse instanziiert wird, die Schaden anrichten kann (Denial of Service, Sensitive Data Exposure, Data Manipulation, &#8230;). Solche Klassen werden in diesem Kontext als &#8222;Gadgets&#8220; bezeichnet.</p>



<p>Eine Gadget-Klasse muss allerdings im Klassenpfad der Anwendung liegen, weshalb zunächst unlogisch erscheint, dass damit Schaden angerichtet werden kann. Es gibt aber verschiedene polymorphe Klassen, über die generischer Code eingeschleust werden kann, der dann zur Ausführung kommt. Jackson hat deshalb bereits eine Blacklist an bekannten Gadget-Klassen, die bei der Deserialisierung nicht ausgeführt werden. Allerdings kommen immer neue kreative Varianten dazu, so dass naturgemäß eine Blacklist kein vollkommener Schutz sein kann.</p>



<h2>Voraussetzungen für erfolgreichen Angriff</h2>



<ol><li>Die Anwendung akzeptiert Json von Clients, das manipuliert werden kann.&nbsp;<br><ul><li>Bei der Kommunikation zwischen 2 Anwendungen, die sich in einer Trustzone befinden, sollte diese Gefahr nicht gross sein, da darauf vertraut wird, dass keine bösartigen und manipulierten Json Strings verwendet werden.</li><li>Wurde die Trustzone allerdings kompomittiert, dann fällt dieses Argument, so dass man auch bei interner Kommunikation weitere Maßnahmen vorsehen sollte.</li></ul></li><li>Die Anwendung beinhaltet im Classpath mindestens 1 Gadget-Klasse, mit der ein Angriff ausgeführt werden kann.<ul><li>Da in einer Anwendung meist sehr viele Klassen über transitive Abhängigkeiten enthalten sind, sind auch viele bekannte Gadget-Klassen verfügbar. Selbst im JDK existieren Klassen, die als Gadgets missbraucht werden können.</li><li>Aus diesem Grund trifft auch diese Voraussetzung streng genommen immer zu.</li></ul></li><li>Die Anwendung hat aktives polymorphes Typehandling für Felder mit dem Type Object aktiviert (oder andere allgemeine Typen wir Serializable, Comparable, &#8230;)<br><ul><li>Dies wird im Code über die Methode org.codehaus.jackson.map.ObjectMapper.<strong>enableDefaultTyping()</strong>&nbsp;aktiviert</li></ul></li><li>Die Anwendung verwendet Jackson-Databind in einer Version, die (noch) keine fragwürdige Gadget-Klassen blockiert via Blacklisting.<ul><li>Ist die Jackson-Version aktuell, dann ist es sehr schwer, aber nicht ausgeschlossen, Gadget-Klassen zu finden, die einen Angriff zulassen.<br><br></li></ul></li></ol>



<p>Da (1) und (2) nie komplett ausgeschlossen werden können, sollten wir uns auf (3) und (4) fokussieren.</p>



<p>Folgendes ist noch festzustellen für die beiden Ausprägungen:</p>



<ol><li><strong>Polymorphie</strong>: Anhand des Parameters&nbsp;<code>valueType</code>&nbsp;wird über die Annotation&nbsp;<code><em>JsonTypeInfo</em></code>&nbsp;definiert, welche &#8222;Zielklasse&#8220; bei der Deserialisierung verwendet werden soll. Das ist entweder diese übergebene Klasse&nbsp;<code>valueType</code>&nbsp;selbst oder wird wiederum durch Annotationen dieser Klasse bestimmt. Durch die Annotation&nbsp;<code>JsonTypeInfo</code>&nbsp;kann definiert werden, dass die tätsächlich instanzierte Klasse, durch einen Parameter innerhalb des JSON-Textes vorgegeben wird, was bedeutet, dass der Sender des JSON-Textes die Entscheidung trifft. Die Entscheidung ist nicht völlig frei: die instanzierte Klasse, muss eine Erweiterung der Klasse&nbsp;<code>valueType</code>&nbsp;sein. Jackson bietet dazu mehrere Möglichkeiten. Die Kritische ist die, bei der Klassenname, bzw. ein Teil des Klassennamens, als JSON-Inhalt definiert/ausgewertet wird.</li><li><strong>DefaultTyping</strong>: unbestimmte/generische Attribute – beispielsweise von Type T<sub>attr</sub>&nbsp;<code>Object</code>&nbsp;– können bei eingeschaltetem DefaultTyping mit Objekten befüllt werden, deren konkreter Typ T<sub>conc</sub>&nbsp;durch den JSON-Inhalt bestimmt wird. Im Falle des Attributstyps T<sub>attr</sub>&nbsp;Object unterliegt T<sub>conc</sub>&nbsp;lediglich der Einschränkung, dass T<sub>conc</sub>&nbsp;im Klassenpfad zu finden sein muss.</li></ol>



<p><br>Ein Beispiel für eine gefährliche Codestelle ist folgende:</p>



<pre class="wp-block-preformatted">public class Person {<br>  @JsonTypeInfo(use = Id.CLASS)<br>  public Object phone;<br>}</pre>



<p>Hier wird über @JsonTypeInfo der Klassenname angegeben, so dass dieser in der Json Struktur über die @class Annotation angegeben werden kann. Ist DefaultTyping aktiviert, dann kann an Stelle des Typs Object eine Gadget-Klasse treten, die der Angreifer angibt.</p>



<h2>Prävention</h2>



<ol><li>Immer die neueste Jackson-Databind Version verwenden<ul><li>denn diese enthält die vollständigste Liste der gefährlichen Gadget-Klassen in der Blacklist</li><li>das ist kein perfekter Schutz, aber das mindeste was man tun sollte</li></ul></li><li>Default Typing vermeiden<ul><li>statt dessen explizit die Klassen angeben, die bei der Deserialisierung verwendet werden sollen</li></ul></li><li>Allgemeine Klassen wie Object, Serializable, &#8230; vermeiden in den Objekten, die übertragen werden<ul><li>dadurch wird vermieden, dass beliebige Klassen für den Angriff verwendet werden können</li></ul></li><li>Möglichst &#8222;type name&#8220; verwenden und&nbsp;nicht&nbsp;classname als Type-Id<ul><li>@JsonTypeInfo(use = Id.NAME)&nbsp; anstatt&nbsp;&nbsp;@JsonTypeInfo(use = Id.CLASS)<br><br></li></ul></li></ol>



<h2>Referenzen</h2>



<ul><li><a href="https://medium.com/@cowtowncoder/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062">On Jackson CVEs: Don’t Panic — Here is what you need to&nbsp;know</a> </li><li><a href="http://programmerbruce.blogspot.com/2011/05/deserialize-json-with-jackson-into.html">Deserialize JSON with Jackson into Polymorphic Types &#8211; A Complete Example</a></li><li><a href="https://www.baeldung.com/jackson-annotations">Jackson Annotation Examples</a></li></ul>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/03/18/jackson-databind-und-das-problem-mit-cve-2017-7525/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Neues Video: XXE: XML External Entities</title>
		<link>https://geballte-sicherheit.de/2019/02/03/neues-video/</link>
					<comments>https://geballte-sicherheit.de/2019/02/03/neues-video/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Sun, 03 Feb 2019 18:54:00 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Secure Coding]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=314</guid>

					<description><![CDATA[Der 4. Teil der Secure Coding Reihe behandelt das Thema XXE &#8211; §XML External Entities§. Diese ganz neue Schwachstellen-Kategorie ist erstmals in den OWASP Top-10. Damit können Hacker eine Anwendung angreifen, indem sie manipulierte XML-Dateien hochladen.]]></description>
										<content:encoded><![CDATA[
<p>Der 4. Teil der Secure Coding Reihe behandelt das Thema XXE &#8211; §XML External Entities§. Diese ganz neue Schwachstellen-Kategorie ist erstmals in den OWASP Top-10. Damit können Hacker eine Anwendung angreifen, indem sie manipulierte XML-Dateien hochladen.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" width="696" height="392" src="https://www.youtube.com/embed/ivtZMnO17kw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div><figcaption>Secure Coding &#8211; Teil 4: XXE: XML External Entities</figcaption></figure>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/02/03/neues-video/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Neues Video: Verlust der Vertraulichkeit sensibler Daten</title>
		<link>https://geballte-sicherheit.de/2019/01/22/neues-video-verlust-der-vertraulichkeit-sensibler-daten/</link>
					<comments>https://geballte-sicherheit.de/2019/01/22/neues-video-verlust-der-vertraulichkeit-sensibler-daten/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Tue, 22 Jan 2019 20:51:27 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[OWASP Top-10]]></category>
		<category><![CDATA[Secure Coding]]></category>
		<category><![CDATA[Verlust der Vertraulichkeit sensibler Daten]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=296</guid>

					<description><![CDATA[Der 3. Teil aus der Secure Coding Reihe ist live! Zum Platz 3 der OWAP Top-10, den 10 am meisten ausgenutzten Schwachstellen bei Webanwendungen. Parallel dazu habe ich auch den Begleitartikel dazu hier veröffentlicht, wo ihr alles nochmals nachlesen könnt, was ich in diesem Video erkläre.]]></description>
										<content:encoded><![CDATA[
<p>Der 3. Teil aus der Secure Coding Reihe ist live! Zum Platz 3 der OWAP Top-10, den 10 am meisten ausgenutzten Schwachstellen bei Webanwendungen. Parallel dazu habe ich auch den <a href="https://geballte-sicherheit.de/verlust-der-vertraulichkeit-sensibler-daten/">Begleitartikel</a> dazu hier veröffentlicht, wo ihr alles nochmals nachlesen könnt, was ich in diesem Video erkläre.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" width="696" height="392" src="https://www.youtube.com/embed/arVPdwwsK5c?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/01/22/neues-video-verlust-der-vertraulichkeit-sensibler-daten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Neues Video: Bedrohungsanalyse &#038; Risikomanagement</title>
		<link>https://geballte-sicherheit.de/2019/01/11/neues-video-bedrohungsanalyse-risikomanagement/</link>
					<comments>https://geballte-sicherheit.de/2019/01/11/neues-video-bedrohungsanalyse-risikomanagement/#respond</comments>
		
		<dc:creator><![CDATA[Bernhard Hirschmann]]></dc:creator>
		<pubDate>Fri, 11 Jan 2019 14:06:59 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bedrohungsanalyse]]></category>
		<category><![CDATA[Risikomanagement]]></category>
		<category><![CDATA[Risk Management]]></category>
		<category><![CDATA[Riskmanagement]]></category>
		<guid isPermaLink="false">https://geballte-sicherheit.de/?p=284</guid>

					<description><![CDATA[Zum Thema Bedrohungsanalyse &#38; Risikomanagement (Threat Modelling &#38; Risk Management) habe ich aus aktuellem Anlass ein Erklärvideo erstellt, das anhand von einem einfachen Beispiel in das Thema einführt. Mehr Details zu dem Thema Bedrohungsanalyse findet ihr in meiner Ausarbeitung.]]></description>
										<content:encoded><![CDATA[
<p>Zum Thema Bedrohungsanalyse &amp; Risikomanagement (Threat Modelling &amp; Risk Management) habe ich aus aktuellem Anlass ein Erklärvideo erstellt, das anhand von einem einfachen Beispiel in das Thema einführt. </p>



<p></p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" width="696" height="392" src="https://www.youtube.com/embed/1rTjKE6e9q8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p></p>



<p>Mehr Details zu dem Thema <strong>Bedrohungsanalyse</strong> findet ihr in meiner <a href="https://geballte-sicherheit.de/threat-modelling-bedrohungsanalyse-1-teil-einleitung/">Ausarbeitung.</a></p>



<p></p>



<p><br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://geballte-sicherheit.de/2019/01/11/neues-video-bedrohungsanalyse-risikomanagement/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
