Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Opancerzanie Symfony2

No description
by

Krystian Piwowarczyk

on 14 January 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Opancerzanie Symfony2

Cel
Znaczące podniesienie w krótkim czasie poziomu bezpieczeństwa istniejącej aplikacji napisanej we frameworku Symfony2
Co dziś w menu?
Cookies
, że palce lizać
Dietetyczne skrypty (
bez
kalorycznych
XSS
ów)
Duszony
clickjacking
z gniecionymi
iframe
'ami
Promowanie lokalnych przysmaków (czyli ujarzmianie
przekierowań
)
Cyfrowy
bigo
SSL
z szyfrowaną kapustą
$ whoami
Cookies
Instalacja
Jak to z Bundlami Symfony2 bywa instalacja jest bardzo prosta, wymaga dodania wpisu do composera:
Wymuszanie HTTPS/SSL
To też możemy skonfigurować sobie w NelmioSecurityBundle:
Opancerzanie Symfony2
Krystian Piwowarczyk (mów mi bro)
Pentester/Researcher w Vector Synergy
Używam lustrzanych emotikonek (-;
Prepared by: Krystian Piwowarczyk
Submitted on: 28.11.2014
Version: 1.0

Środki
NelmioSecurityBundle korzystający z:
Content Security Policy
,
X-Frame-Options
,
HSTS
i oczywiście
mechanizmów kryptograficznych
"nelmio/security-bundle": "1.4.*@dev",
Oraz naturalnie dodania do kernela:
public function registerBundles()
{
$bundles = array(
...
new Nelmio\SecurityBundle\NelmioSecurityBundle(),
...
);
...
}
Cookies
Content Security Policy
CSP to mechanizm zaproponowany i ustandaryzowany przez konsorcjum w3c, którego głównym celem jest umożliwienie twórcom strony na lepsze zarządzanie źrodłami contentu jaki na ich stronach się pojawia (np. poprzez whitelisty).
Content Security Policy
Jak zablokujemy XSS'y korzystając z NelmioSecurityBundle i CSP?
Clickjacking
Czym jest i jakie stanowi zagrożenie.
Content Security Policy
XSS, które by się zmieściły lokalnie możemy zablokować poprzez usunięcie wpisu pozwalającego na wykonanie: unsafe-inline.
Unvalidated Redirects and Forwards
Problem, który bywa zapominany pomimo tego, że znajduje się od 7 lat w OWASP TOP10
Wymuszanie HTTPS/SSL
1. Przeniesienie odpowiedzialności za obsługę Cookies z Symfony na dodanego bundla
2. Ustawienie flag HttpOnly i Secure
3. Dodanie szyfrowania
4. Dodanie podpisywania

XSS ładujące skrypty ze zdalnych serwerów zablokujemy poprzez jawną deklarację skąd dopuszczamy ładowanie skryptów.

script:
- self
- 'https://apis.google.com'
CSP to nie tylko blokowanie XSS'ów. CSP pozwala na kontrolę nad wszelkimi zasobami, czyli nad: skryptami, czcionkami, obrazkami, ramkami, stylami, elementami typu video etc etc
NelmioSecurityBundle pozwala na wyeliminowanie clickjackingu poprzez użycie X-Frame-Options.
http://www.example.com/redirect.jsp?url=evil.com
nelmio_security:
external_redirects:
abort: true
whitelist:
- twitter.com
- facebook.com
Rozwiązanie?
Czemu?
HTTPS/SSL i header HSTS
HTTP Strict Transport Security (HSTS) to nagłówek, który mówi przeglądarce aby łączyła się z daną stroną tylko poprzez HTTPS. Przeciwdziała to downgrade HTTPS -> HTTP
Co jeszcze?
NelmioSecurityBundle ma kilka mniej istotnych funkcji, z którymi warto się zapoznać.
Q&A
nelmio_security:
forced_ssl:
enabled: true
whitelist:
- ^/unsecure/
Whitelistowanie jest złe!!!!1one
nelmio_security:
forced_ssl:
hsts_max_age: 2592000 # 30 days
hsts_subdomains: false
csp:
report:
report-uri: [/nelmio/csp/report]
NelmioSecurityBundle oddaje też do dyspozycji mechanizm raportowania incydentów przez przeglądarki użytkowników:
Full transcript