Podczas Warszawskich Dni Informatyki 2018 miałem okazję poprowadzić warsztat-prezentację o bezpieczeństwie aplikacji webowych. Mój cel - zastraszyć słuchaczy, aby zawsze mieli z tyłu głowy, że trzeba pamiętać o zabezpieczeniach, już od początku pisania aplikacji, a nie na sam koniec, bo jest to bardzo poważna sprawa.
Poniżej znajdziecie zbiór linków i artykułów, z których korzystałem przygotowywując prezentację. Po przeczytaniu ich wszystkich powinniście mieć lepsze pojęcie na temat bezpieczeństwa stron internetowych, niż wielu zwykłych śmiertelników. Przy czym większość materiałów jest po angielsku.
Infrastruktura sieci
- Kilka kroków jakie można podjąć by lepiej zabezpieczyć nasz serwer
- Least-Privilage Isolation
- Hacking 40 websites in 7 minutes, czyli o konieczności izolacji hostowanych aplikacji na jednym serwerze
HTTPS
- Podstawy HTTPS - jak działa, po co, jak wdrożyć?
- Różnica między RSA, DSA i ECDSA, do tworzenia podpisów
- Jak działa podpisywanie wiadomości przy użyciu RSA
- TLS Ciphersuite - zbiór algorytmów z jakiego korzysta przeglądarka przy połączeniu HTTPS
- Wprowadzenie do HTTP Strict Transport Security (HSTS)
- HTST preload
- Darmowy vs płatny certyfikat SSL
- Let’s Encrypt
- AlwaysOnSSL
- DNS CAA - walidacja CA przez rekord DNS
Nagłówki HTTP
- Sprawdź jakie nagłówki serwuje twoja strona
- Jakie nagłówki dotyczące bezpieczeństwa są dostępne
- Content Security Policy Cheatsheet
- Jakich nagłówkóch nie chcemy widzieć
Ciasteczka
- Parametry ciasteczek
OWASP Top 10 - 2017
- Zbiór informacji o najczęstszych/najgrożniejszych atakach na aplikacje webowe w roku 2017
Przydatne mechanizmy obrony przed atakami
- Ochrona przed Cross Site Request Forgery (CSRF)
- Ochrona przed Cross Site Scripting (XSS)
- https://www.troyhunt.com/owasp-top-10-for-net-developers-part-2/
- XSS w praktyce https://www.youtube.com/watch?v=gZ1mM6OtXIc
- https://www.troyhunt.com/how-i-got-xssd-by-my-ad-network/
- https://www.troyhunt.com/understanding-xss-input-sanitisation/
- MySpace XSS explained https://samy.pl/myspace/tech.html
- Subresource Integrity (SRI)
- SQL Injection
- 3 letnie dziecko jest w stanie przeprowadzić atak SQLi - https://www.troyhunt.com/hacking-is-childs-play-sql-injection/
- https://www.troyhunt.com/owasp-top-10-for-net-developers-part-1/
- Sqlmap http://sqlmap.org/
- Cross Origin Resource Sharing
- Zamykać port 80, czy tez nie?
- Direct Object References
- Należy sprawdzać przekierowania
Hasła
- Zalecenia odnośnie haseł
- Indykator siły hasła
- Jak powinniśmy przechowywać hasła (zahashowane!) i o ich łamaniu
- Narzędzia do łamania hashy
- John the Ripper http://www.openwall.com/john/
- Hashcat https://hashcat.net/hashcat/
- Dobrze napisany system resetowania hasła
- “Zapamiętaj mnie” bycie zalogowanym przez dłuższy czas
- 2FA z Google Authenticator
Inne
- Raportowanie niebezpiecznych stron (phishing)
- Podatne na błędy strony mogą być wykorzystane na rzecz phishingu
- Jak wiele błędów może popełnić jedna strona
- Lista linków Troya Hunta
- Częste podatności
- Jeszcze jedna prezentacja o atakach