Artwork

Вміст надано Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen. Весь вміст подкастів, включаючи епізоди, графіку та описи подкастів, завантажується та надається безпосередньо компанією Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen або його партнером по платформі подкастів. Якщо ви вважаєте, що хтось використовує ваш захищений авторським правом твір без вашого дозволу, ви можете виконати процедуру, описану тут https://uk.player.fm/legal.
Player FM - додаток Podcast
Переходьте в офлайн за допомогою програми Player FM !

GST035 - Im DOM hört dich keiner schreien

1:21:38
 
Поширити
 

Manage episode 309438036 series 3033166
Вміст надано Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen. Весь вміст подкастів, включаючи епізоди, графіку та описи подкастів, завантажується та надається безпосередньо компанією Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen або його партнером по платформі подкастів. Якщо ви вважаєте, що хтось використовує ваш захищений авторським правом твір без вашого дозволу, ви можете виконати процедуру, описану тут https://uk.player.fm/legal.
Wir sprachen mit Mario Heiderich über (Web-)Security

Unser Gast (00:00:00)

Terminologie & Methodologie (00:05:51)

  • Sources: Quellen von Input (User Input z.B.)
  • Sink: Stellen im Code, wo Input ankommt bzw. was mit ihm passiert
  • Input: Input :)
  • Getestet wird manchmal in VMs, manchmal auf Test oder Staging Umgebungen oder auch in Produktion
    • das hängt vom Kunden und Projekt ab
  • WAF: Web Application Firewall: https://en.wikipedia.org/wiki/Application_firewall
  • Erfolgsquote: 100% - "noch keine leeren Reports"
  • Eine Frage der Einstellung: Die einen Entwickler wollen Features bauen, andere Software kaputt machen
  • Scope
    • "Ihr dürft nicht nach DoS suchen!"
    • Abgrenzung, was in der Betrachtung liegt und was nicht
  • Vektor: Der Angriff an sich, z.B. ein String bei einer SQL Injection; oder Vektor kann ein ganzer Prozess oder Ablauf sein
  • Exploit: Nutzung eines Vektors mit einem Ziel: Beispiel String (Source) für SQL Injection (Vektor) nutzen, um Admin zu werden
  • Pwn2Own: https://en.wikipedia.org/wiki/Pwn2Own
  • Stuxnet: https://en.wikipedia.org/wiki/Stuxnet

Betätigungsfelder (00:22:20)

  • Marios Firma hat für alle möglichen Bereiche Spezialisten:
    • Binary Pentesting
    • Datenbanken
    • Web/Browser/JavaScript/Flash
    • Bruteforcing
    • Cold Fusion
    • Kryptographie, Kryptoanalyse
    • Java

Neue und alte Probleme (00:24:30)

  • Es verlagert sich viel in den Browser
  • daher mehr und mehr Lücken in Richtung XSS, CSRF, …
  • NoSQL wird auch getestet
  • MongoDB führt JS in der Datenbank aus und zwar als eval!

Auf der Suche nach XSS und anderen Schwachstellen (00:27:00)

  • "Nennt sich doch mal constructor.constructor"
    • oder "prototype"
    • "proto"

Handhaben von Benutzerinput (00:28:30)

  • Validieren: Format explizit und strikt prüfen
  • Filtern: z.B. Single Quotes oder Kommata entfernen
  • Aber so einfach ist das nicht
    • Strings (Quotes) verboten? was ist mit /i'm a string/.source
    • 1..constructor.constructor
  • Sanitizing:
    • "Escape den Input und Encode den Output"
    • Es ist wichtig zu unterscheiden zwischen der Information die durch das Sanitizing soll, UND
    • Kontext, wo die Information später verwendet werden soll

Back to Frontend Security (00:34:30)

  • Template Expressions Exploit, z.B. bei AngularJS: https://code.google.com/p/mustache-security/wiki/AngularJS
  • Der Browser ist die neue Sink
  • Security im Browser ist anders und komplexer als auf dem Server
  • Sehr viel mehr Wissen über konkrete Prozesse bei der Darstellung von HTML/CSS und der Ausführung von Javascript notwendig
  • Browser ist im Grunde "moving target"
  • Die Vielzahl der Browser bietet sehr viel Angriffsfläche
  • Vor allem im Kontext großer Unternehmen sind oft auch sehr alte Browser noch im Einsatz (IE6)
  • Eine Umstellung auf neuere Browser ist u.U. nicht immer möglich => Paradies für Pentesting

Im DOM hört dich keiner schreien (00:46:50)

  • Talk auf der enter.js (http://www.enterjs.de/abstracts#im-dom-hoert-dich-keiner-schreien-eine-reise-in-die-gruselige-schicht-zwischen-html-und-javascript)
  • Historie des DOMs
  • Verschiedene Probleme aufgezeigt, Bsp.: DOM-Clobbering
    • Mit statischem HTML bestehende Variablen, Funktionen o.ä. überschreiben
    • Ist im Grunde im Standard sogar definiertes Verhalten oO
  • Am Ende kann man sehr viel Spaß nur mit statischem HTML haben :-)
  • Was ist das DOM überhaupt
    • Ein API zwischen einem Dokument und einer beliebigen Scripting-Sprache
    • Ziel des DOM: Bereitstellung von Feature-Parität, dabei müssen einige Features explizit ausgeschlossen werden
    • Bsp: CSS-History-Stealing (http://jeremiahgrossman.blogspot.de/2006/08/i-know-where-youve-been.html)
  • SVG bringt möglicherweise ganz neue Probleme mit
  • Manchmal gibt es auch keinen echten Fix für Lücken, und selbst wenn, es gibt ja jetzt auch CSS Shader ;-)
  • Wie geht man vor um Lücken zu finden
    • Viel Kreativität notwendig
    • Man hört von einem Feature und denkt sich, da muss doch was gehen und dann wird halt so lange gebohrt bis man was findet ;-)
  • DOMPurify (https://github.com/cure53/DOMPurify) ist ein Client-seitiger Sanitzer, um verschiedenen Angriffen zu begegnen
  • Reaktion auf der Konferenz war vor allem gefasst :-)

Krypto im Browser und moderne APIs (01:07:45)

  • Grundsätzlich: Bedarf steigt an, Verbreitung nimmt zu
  • Man hört immer wieder von Problemen
  • Was kann man machen?
  • Antwort: "Ich habe keine Ahnung"
  • Aussage Mario: Wir sind noch nicht soweit, es zuverlässig einzusetzen.
  • Aber: Es ist auch nicht zum Scheitern verurteilt, aber es braucht noch einiges an Research
  • Seiten wie https://keybase.io machen das bereits
    • Kann man machen, wenn die Seite 100% sicher und vor allem beweisbar sicher ist
    • Ergo: Aufwand ist enorm hoch
  • Es gibt auch Bestrebungen vom W3C das Thema voranzutreiben: http://www.w3.org/TR/WebCryptoAPI/
  • Zusätzlich entstehen ganz neue APIs für den Zugriff auf mobile Devices
    • Bsp: Android-Devices haben über nicht hörbare Töne miteinander kommuniziert
    • Exploits mit Sprachsynthese und Spracherkennung (Bsp: Cookies zwischen Tabs übertragen)
  • WebGL klingt kritisch, aber in dem Bereich gibt es in den letzten Jahren viel Forschung
  • WebSockets und WebRTC bietet hingegen auch viele Möglichkeiten
  continue reading

Розділи

1. Unser Gast (00:00:00)

2. Terminologie & Methodologie (00:05:51)

3. Betätigungsfelder (00:22:20)

4. Neue und alte Probleme (00:24:30)

5. Auf der Suche nach XSS und anderen Schwachstellen (00:27:00)

6. Handhaben von Benutzerinput (00:28:30)

7. Back to Frontend Security (00:34:30)

8. Im DOM hört dich keiner schreien (00:46:50)

9. Krypto im Browser und moderne APIs (01:07:45)

42 епізодів

Artwork
iconПоширити
 
Manage episode 309438036 series 3033166
Вміст надано Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen. Весь вміст подкастів, включаючи епізоди, графіку та описи подкастів, завантажується та надається безпосередньо компанією Dirk Breuer, Sebastian Cohnen, Dirk Breuer, and Sebastian Cohnen або його партнером по платформі подкастів. Якщо ви вважаєте, що хтось використовує ваш захищений авторським правом твір без вашого дозволу, ви можете виконати процедуру, описану тут https://uk.player.fm/legal.
Wir sprachen mit Mario Heiderich über (Web-)Security

Unser Gast (00:00:00)

Terminologie & Methodologie (00:05:51)

  • Sources: Quellen von Input (User Input z.B.)
  • Sink: Stellen im Code, wo Input ankommt bzw. was mit ihm passiert
  • Input: Input :)
  • Getestet wird manchmal in VMs, manchmal auf Test oder Staging Umgebungen oder auch in Produktion
    • das hängt vom Kunden und Projekt ab
  • WAF: Web Application Firewall: https://en.wikipedia.org/wiki/Application_firewall
  • Erfolgsquote: 100% - "noch keine leeren Reports"
  • Eine Frage der Einstellung: Die einen Entwickler wollen Features bauen, andere Software kaputt machen
  • Scope
    • "Ihr dürft nicht nach DoS suchen!"
    • Abgrenzung, was in der Betrachtung liegt und was nicht
  • Vektor: Der Angriff an sich, z.B. ein String bei einer SQL Injection; oder Vektor kann ein ganzer Prozess oder Ablauf sein
  • Exploit: Nutzung eines Vektors mit einem Ziel: Beispiel String (Source) für SQL Injection (Vektor) nutzen, um Admin zu werden
  • Pwn2Own: https://en.wikipedia.org/wiki/Pwn2Own
  • Stuxnet: https://en.wikipedia.org/wiki/Stuxnet

Betätigungsfelder (00:22:20)

  • Marios Firma hat für alle möglichen Bereiche Spezialisten:
    • Binary Pentesting
    • Datenbanken
    • Web/Browser/JavaScript/Flash
    • Bruteforcing
    • Cold Fusion
    • Kryptographie, Kryptoanalyse
    • Java

Neue und alte Probleme (00:24:30)

  • Es verlagert sich viel in den Browser
  • daher mehr und mehr Lücken in Richtung XSS, CSRF, …
  • NoSQL wird auch getestet
  • MongoDB führt JS in der Datenbank aus und zwar als eval!

Auf der Suche nach XSS und anderen Schwachstellen (00:27:00)

  • "Nennt sich doch mal constructor.constructor"
    • oder "prototype"
    • "proto"

Handhaben von Benutzerinput (00:28:30)

  • Validieren: Format explizit und strikt prüfen
  • Filtern: z.B. Single Quotes oder Kommata entfernen
  • Aber so einfach ist das nicht
    • Strings (Quotes) verboten? was ist mit /i'm a string/.source
    • 1..constructor.constructor
  • Sanitizing:
    • "Escape den Input und Encode den Output"
    • Es ist wichtig zu unterscheiden zwischen der Information die durch das Sanitizing soll, UND
    • Kontext, wo die Information später verwendet werden soll

Back to Frontend Security (00:34:30)

  • Template Expressions Exploit, z.B. bei AngularJS: https://code.google.com/p/mustache-security/wiki/AngularJS
  • Der Browser ist die neue Sink
  • Security im Browser ist anders und komplexer als auf dem Server
  • Sehr viel mehr Wissen über konkrete Prozesse bei der Darstellung von HTML/CSS und der Ausführung von Javascript notwendig
  • Browser ist im Grunde "moving target"
  • Die Vielzahl der Browser bietet sehr viel Angriffsfläche
  • Vor allem im Kontext großer Unternehmen sind oft auch sehr alte Browser noch im Einsatz (IE6)
  • Eine Umstellung auf neuere Browser ist u.U. nicht immer möglich => Paradies für Pentesting

Im DOM hört dich keiner schreien (00:46:50)

  • Talk auf der enter.js (http://www.enterjs.de/abstracts#im-dom-hoert-dich-keiner-schreien-eine-reise-in-die-gruselige-schicht-zwischen-html-und-javascript)
  • Historie des DOMs
  • Verschiedene Probleme aufgezeigt, Bsp.: DOM-Clobbering
    • Mit statischem HTML bestehende Variablen, Funktionen o.ä. überschreiben
    • Ist im Grunde im Standard sogar definiertes Verhalten oO
  • Am Ende kann man sehr viel Spaß nur mit statischem HTML haben :-)
  • Was ist das DOM überhaupt
    • Ein API zwischen einem Dokument und einer beliebigen Scripting-Sprache
    • Ziel des DOM: Bereitstellung von Feature-Parität, dabei müssen einige Features explizit ausgeschlossen werden
    • Bsp: CSS-History-Stealing (http://jeremiahgrossman.blogspot.de/2006/08/i-know-where-youve-been.html)
  • SVG bringt möglicherweise ganz neue Probleme mit
  • Manchmal gibt es auch keinen echten Fix für Lücken, und selbst wenn, es gibt ja jetzt auch CSS Shader ;-)
  • Wie geht man vor um Lücken zu finden
    • Viel Kreativität notwendig
    • Man hört von einem Feature und denkt sich, da muss doch was gehen und dann wird halt so lange gebohrt bis man was findet ;-)
  • DOMPurify (https://github.com/cure53/DOMPurify) ist ein Client-seitiger Sanitzer, um verschiedenen Angriffen zu begegnen
  • Reaktion auf der Konferenz war vor allem gefasst :-)

Krypto im Browser und moderne APIs (01:07:45)

  • Grundsätzlich: Bedarf steigt an, Verbreitung nimmt zu
  • Man hört immer wieder von Problemen
  • Was kann man machen?
  • Antwort: "Ich habe keine Ahnung"
  • Aussage Mario: Wir sind noch nicht soweit, es zuverlässig einzusetzen.
  • Aber: Es ist auch nicht zum Scheitern verurteilt, aber es braucht noch einiges an Research
  • Seiten wie https://keybase.io machen das bereits
    • Kann man machen, wenn die Seite 100% sicher und vor allem beweisbar sicher ist
    • Ergo: Aufwand ist enorm hoch
  • Es gibt auch Bestrebungen vom W3C das Thema voranzutreiben: http://www.w3.org/TR/WebCryptoAPI/
  • Zusätzlich entstehen ganz neue APIs für den Zugriff auf mobile Devices
    • Bsp: Android-Devices haben über nicht hörbare Töne miteinander kommuniziert
    • Exploits mit Sprachsynthese und Spracherkennung (Bsp: Cookies zwischen Tabs übertragen)
  • WebGL klingt kritisch, aber in dem Bereich gibt es in den letzten Jahren viel Forschung
  • WebSockets und WebRTC bietet hingegen auch viele Möglichkeiten
  continue reading

Розділи

1. Unser Gast (00:00:00)

2. Terminologie & Methodologie (00:05:51)

3. Betätigungsfelder (00:22:20)

4. Neue und alte Probleme (00:24:30)

5. Auf der Suche nach XSS und anderen Schwachstellen (00:27:00)

6. Handhaben von Benutzerinput (00:28:30)

7. Back to Frontend Security (00:34:30)

8. Im DOM hört dich keiner schreien (00:46:50)

9. Krypto im Browser und moderne APIs (01:07:45)

42 епізодів

Усі епізоди

×
 
Loading …

Ласкаво просимо до Player FM!

Player FM сканує Інтернет для отримання високоякісних подкастів, щоб ви могли насолоджуватися ними зараз. Це найкращий додаток для подкастів, який працює на Android, iPhone і веб-сторінці. Реєстрація для синхронізації підписок між пристроями.

 

Короткий довідник

Слухайте це шоу, досліджуючи
Відтворити