Kompletny przewodnik po bezpieczeństwie aplikacji internetowych
Opublikowany: 2022-10-18Aplikacje internetowe mają dziś zróżnicowaną funkcjonalność. Więc są groźby przeciwko nim. Dlatego musisz być gotowy do ich wykrywania i zapobiegania im od początku rozwoju poprzez testowanie i wsparcie.
Ten artykuł zawiera przegląd narzędzi i technik bezpieczeństwa, które pomogą Ci opracować i utrzymać bezpieczną aplikację internetową.
Co to jest bezpieczeństwo aplikacji internetowych?
Bezpieczeństwo aplikacji internetowych oznacza utrzymanie bezpiecznej pracy poprzez zastosowanie odpowiednich metod i technik. Bezpieczna aplikacja internetowa działa zgodnie z oczekiwaniami pomimo ataków na nią i zapewnia bezpieczeństwo danych.
Dlaczego bezpieczeństwo jest ważne w aplikacjach internetowych?
W dzisiejszych czasach aplikacje webowe wykonują złożone operacje polegające na przesyłaniu wrażliwych danych. Dane osobowe, dane karty kredytowej, dane medyczne pacjentów to tylko kilka przykładów takich danych. Jeśli atakujący spróbują je ukraść, może to spowodować utratę reputacji.
Z technicznego punktu widzenia zepsuta aplikacja doprowadzi do wyłączenia oraz straty czasu i pieniędzy. Użytkownicy będą zaniepokojeni uszkodzoną aplikacją i będą skłonni do przejścia na bardziej niezawodną.
Najczęstsze zagrożenia bezpieczeństwa aplikacji internetowych
W Codica Open Web Application Security Project (OWASP) jest źródłem, z którego korzystamy w kwestiach bezpieczeństwa. Pokazuje między innymi najczęstsze zagrożenia, z jakimi borykają się aplikacje internetowe. Poniżej znajduje się odpowiedni diagram stworzony w OWASP pokazujący, jak zagrożenia bezpieczeństwa zmieniały się w czasie:
Źródło: OWASP.org
Narzędzia zrównoważonego rozwoju AWS
Nasz zespół współpracuje głównie z Amazon Web Services (AWS). Poniżej znajduje się lista usług stworzonych w celu zabezpieczenia Twoich aplikacji internetowych. Obejmuje następujące elementy:
- WPC AWS;
- Centrum bezpieczeństwa AWS;
- AWS uprawnienia;
- AWS trasa 53;
- Zapora sieciowa AWS;
- Tarcza AWS;
- Chmura AWS.
Wymagania bezpieczeństwa aplikacji internetowych
Wymóg bezpieczeństwa dla aplikacji internetowej wynika ze standardów branżowych, przepisów lub wcześniejszego doświadczenia. Na przykład OWASP Application Security Verification Standard (ASVS) definiuje trzy poziomy bezpieczeństwa w zależności od branży aplikacji. Na przykład wojskowe aplikacje internetowe muszą spełniać wymagania bezpieczeństwa dla trzeciego poziomu.
Najlepsze praktyki w zakresie bezpieczeństwa aplikacji internetowych w 2022 r.
Poniżej omawiamy najlepsze praktyki bezpieczeństwa, które możesz zastosować przy tworzeniu aplikacji internetowych.
Krok 1. Wykorzystaj w pełni frameworki i biblioteki bezpieczeństwa
Obecnie wiele języków programowania posiada również frameworki i biblioteki. Polecamy wybrać te, które są bezpieczne i niezawodne. Zachowaj też ich listę. Co więcej, jeśli będziesz je aktualizować, zmniejsza to powierzchnię ataku.
Krok 2. Bezpieczny dostęp do bazy danych
Połączenie między aplikacją a bazą danych powinno być szyfrowane. Dostęp do bazy danych powinien obejmować uwierzytelnianie dwuskładnikowe. Ponadto silne hasło zapewnia bezpieczną transmisję danych z bazy danych do aplikacji.
Krok 3. Zaszyfruj i ucieczki danych
Takie podejście pomaga uniknąć ataków XSS (cross-site scripting). Ataki te mają miejsce, gdy aplikacja wysyła niezaufane dane do bazy danych bez procesu sprawdzania. Ponadto szkodliwy kod XSS może wykorzystywać plik cookie sesji.
Aby chronić kod przed atakiem XSS, możesz użyć tokena kodującego, takiego jak token fałszowania żądań między lokacjami. Sprawia, że kod jest bezpieczny i niegroźny dla docelowego interpretera.
Krok 4. Sprawdź poprawność wszystkich danych wejściowych
Walidacja danych wejściowych zapewnia, że tylko prawidłowo sformułowane dane zostaną wprowadzone do obiegu pracy systemu informacyjnego. Zapobieganie błędom wprowadzanym do bazy danych zapewnia jej integralność. Dlatego dane z niezaufanych źródeł muszą zostać poddane walidacji.
Krok 5. Wdróż tożsamość cyfrową
Tożsamość cyfrowa oznacza weryfikację użytkownika przed autoryzacją. Uwierzytelnianie wieloskładnikowe (MFA) i uwierzytelnianie oparte na kryptografii (CBA) to dwie niezawodne techniki zapewniające bezpieczną identyfikację użytkownika. Według Microsoftu pomagają zmniejszyć ryzyko włamań.
Krok 6. Egzekwuj kontrolę dostępu
Tutaj radzimy, aby wcześniej skonfigurować kontrolę dostępu. Twoje żądania powinny zostać poddane kontroli dostępu. W takim przypadku zalecane jest użycie statusu „odmów” wraz z najmniej uprzywilejowanym. Nie należy też sztywno kodować poświadczeń.
Zalecane jest rejestrowanie każdego przypadku uwierzytelniania i autoryzacji w celu kontroli nieautoryzowanych prób dostępu. Menedżerowie sekretów, tacy jak AWS Secrets Manager i Hashicorp Vault, mogą pomóc w zabezpieczeniu dostępu do aplikacji internetowej.
Krok 7. Chroń dane
Poufne dane Twojej aplikacji internetowej wymagają ochrony. Zdefiniuj je i stwórz bezpieczne mechanizmy, które pomogą je chronić. W tym celu takie dane muszą być szyfrowane podczas przesyłania i w spoczynku.
Radzimy wybrać najważniejsze dane w Twojej aplikacji internetowej. W przeciwnym razie szyfrowanie przeciąży aplikację i spowolni transmisję danych.
Krok 8. Wdróż bezpieczne logowanie
Prowadzenie logów to stosunkowo proste zadanie, dzięki rozwiązaniom chmurowym. Na przykład CloudTrail AWS pomaga śledzić aktywność API. Poufne dane i poświadczenia muszą być bezpiecznie przechowywane podczas konfigurowania rejestrowania.
Dzienniki muszą być integralne. W tym celu należy przechowywać je w jednym miejscu (np. w CloudWatch lub S3) i ustawić je jako tylko do odczytu. W ten sposób scentralizujesz filtrowanie dzienników.
Krok 9. Obsługa błędów i wyjątków
Nowoczesne aplikacje internetowe mogą wyświetlać różne komunikaty o błędach, na przykład w odpowiedzi na utratę połączenia. Pokazywanie odpowiednich komunikatów o błędach powinno być zwięzłe i jasne dla użytkowników. Pamiętaj też, że wyciek podstawowej obsługi błędów może doprowadzić do zamknięcia systemu.
Rekomendacje Codica
W Codica przyglądamy się najlepszym praktykom bezpieczeństwa i wdrażamy je w rozwiązaniach cyfrowych. Dlatego chcielibyśmy podzielić się z Tobą narzędziami i technikami, których możesz użyć do zabezpieczenia swojej aplikacji internetowej.
Przydatne narzędzia do zabezpieczania aplikacji internetowych
Ponieważ wolimy AWS, używamy jego WAF i Shield. Ponadto zalecamy korzystanie z Centrum bezpieczeństwa AWS. Pomoże Ci zbierać dane i metryki z wielu usług bezpieczeństwa AWS.
Doradzamy naszym klientom, aby zawierali bogate w funkcje tajemnice. Są różnorodne. Ale upewnij się, że są utrzymane.
Nasz zespół zaleca również używanie skanera bezpieczeństwa obrazu kontenera. Kontenery zawierają niezbędne elementy, które pomagają Twojej aplikacji działać w dowolnym środowisku. Pozwalają zidentyfikować luki w aplikacjach internetowych. Kontenery pokazują atak, błąd lub nowy błąd.
Istnieją również przydatne narzędzia do testowania aplikacji internetowych. Ogólnie stosujemy trzy główne podejścia do testowania: statyczne (SAST), dynamiczne (DAST) i SCA (Analiza składu oprogramowania). Pomagają zabezpieczać i skanować aplikacje internetowe pod kątem błędów i luk w zabezpieczeniach.
Podejście i filozofia DevSecOps
Podejście DevSecOps (programowanie, bezpieczeństwo i operacje) definiuje techniki niezbędne do bezpiecznego tworzenia oprogramowania. Jednym z krytycznych podejść jest „przesunięcie w lewo” operacji bezpieczeństwa. Oznacza to, że inżynier DevOps zapewnia bezpieczne tworzenie aplikacji internetowych od samego początku.
Wniosek
Aplikacja internetowa wymaga bezpieczeństwa od początku tworzenia do testowania i wsparcia. Dlatego zalecamy korzystanie z narzędzi i technik, które omówiliśmy w tym artykule. Na przykład zalecamy korzystanie z usług monitorowania i bezpieczeństwa AWS. Ponadto musisz zrównoważyć oprogramowanie i elementy infrastruktury, ustalając priorytety bezpieczeństwa aplikacji sieci Web.
Artykuł został pierwotnie opublikowany na blogu Codica.