Bezpieczeństwo aplikacji - Application security
Bezpieczeństwo aplikacji (krótki AppSec ) obejmuje wszystkie zadania, które wprowadzają bezpieczny cykl życia oprogramowania do zespołów programistycznych. Jego ostatecznym celem jest poprawa praktyk bezpieczeństwa, a przez to znajdowanie, naprawianie i najlepiej zapobieganie problemom związanym z bezpieczeństwem w aplikacjach. Obejmuje cały cykl życia aplikacji, począwszy od analizy wymagań, projektu, wdrożenia, weryfikacji, a także utrzymania.
Podejścia
Różne podejścia umożliwiają znalezienie różnych podzbiorów luk w zabezpieczeniach czających się w aplikacji i są najskuteczniejsze w różnych momentach cyklu życia oprogramowania. Każdy z nich reprezentuje różne kompromisy czasu, wysiłku, kosztów i wykrytych luk w zabezpieczeniach.
- Przegląd projektu . Zanim kod zostanie napisany, architekturę i projekt aplikacji można przejrzeć pod kątem problemów z bezpieczeństwem. Powszechną techniką w tej fazie jest stworzenie modelu zagrożenia .
- Przegląd bezpieczeństwa Whitebox lub przegląd kodu . Jest to inżynier bezpieczeństwa, który dogłębnie rozumie aplikację poprzez ręczne przeglądanie kodu źródłowego i zauważanie luk w zabezpieczeniach. Dzięki zrozumieniu aplikacji można znaleźć unikalne dla aplikacji luki w zabezpieczeniach.
- Audyt bezpieczeństwa Blackbox . Dzieje się tak tylko dzięki użyciu aplikacji testującej ją pod kątem luk w zabezpieczeniach, nie jest wymagany kod źródłowy.
- Zautomatyzowane oprzyrządowanie. Wiele narzędzi bezpieczeństwa można zautomatyzować poprzez włączenie do środowiska programistycznego lub testowego. Przykładami są zautomatyzowane narzędzia DAST/SAST zintegrowane z edytorem kodu lub platformami CI/CD.
- Skoordynowane platformy podatności . Są to rozwiązania zabezpieczające aplikacje oparte na hakerach, oferowane przez wiele witryn internetowych i twórców oprogramowania, dzięki którym osoby fizyczne mogą otrzymać uznanie i rekompensatę za zgłaszanie błędów.
Bezpieczeństwo aplikacji internetowych
Bezpieczeństwo aplikacji internetowych to gałąź bezpieczeństwa informacji, która zajmuje się w szczególności bezpieczeństwem stron internetowych , aplikacji internetowych i usług internetowych . Na wysokim poziomie bezpieczeństwo aplikacji internetowych opiera się na zasadach bezpieczeństwa aplikacji, ale stosuje je w szczególności do Internetu i systemów internetowych .
Web Application Security Tools to wyspecjalizowane narzędzia do pracy z ruchem HTTP, np . zapory aplikacji internetowych .
Zagrożenia bezpieczeństwa
Open Web Application Security Project ( OWASP ) zapewnia bezpłatne i otwarte zasoby. Na jej czele stoi organizacja non-profit o nazwie The OWASP Foundation. OWASP Top 10 - 2017 to opublikowany wynik ostatnich badań opartych na obszernych danych zebranych z ponad 40 organizacji partnerskich. Na podstawie tych danych wykryto około 2,3 miliona luk w ponad 50 000 aplikacji. Według OWASP Top 10 - 2017, dziesięć najbardziej krytycznych zagrożeń bezpieczeństwa aplikacji internetowych obejmuje:
- Zastrzyk
- Uszkodzone uwierzytelnianie
- Ekspozycja danych wrażliwych
- Podmioty zewnętrzne XML (XXE)
- Uszkodzona kontrola dostępu
- Błędna konfiguracja zabezpieczeń
- Skrypty między witrynami (XSS)
- Niebezpieczna deserializacja
- Korzystanie z komponentów ze znanymi podatnościami
- Niewystarczające rejestrowanie i monitorowanie
Narzędzia do testowania bezpieczeństwa
Techniki testowania zabezpieczeń wyszukują luki w zabezpieczeniach lub luki w zabezpieczeniach aplikacji. Te luki narażają aplikacje na eksploatację . Najlepiej byłoby, gdyby testy bezpieczeństwa były wdrażane przez cały cykl życia oprogramowania (SDLC), dzięki czemu luki w zabezpieczeniach mogą być usuwane w sposób terminowy i dokładny.
Istnieje wiele rodzajów zautomatyzowanych narzędzi do identyfikowania luk w aplikacjach. Typowe kategorie narzędzi używane do identyfikowania luk w aplikacjach obejmują:
- Static Application Security Testing (SAST) analizuje kod źródłowy pod kątem luk w zabezpieczeniach podczas tworzenia aplikacji. W porównaniu do DAST, SAST może być używany nawet przed przejściem aplikacji w stan wykonywalny. Ponieważ SAST ma dostęp do pełnego kodu źródłowego, jest to podejście białoskrzynkowe. Może to dać bardziej szczegółowe wyniki, ale może skutkować wieloma fałszywie dodatnimi, które należy ręcznie zweryfikować.
- Dynamiczne testy bezpieczeństwa aplikacji (DAST, często nazywane skanerami luk w zabezpieczeniach ) automatycznie wykrywają luki w zabezpieczeniach, przeszukując i analizując witryny internetowe. Ta metoda jest wysoce skalowalna, łatwa do zintegrowania i szybka. Narzędzia DAST są dobrze przystosowane do radzenia sobie z atakami niskiego poziomu, takimi jak błędy wstrzykiwania, ale nie są dobrze przystosowane do wykrywania błędów wysokiego poziomu, np. błędów logiki lub logiki biznesowej. Fuzzing , narzędzia są powszechnie używane do testowania danych wejściowych.
- Interactive Application Security Testing (IAST) ocenia aplikacje od wewnątrz przy użyciu instrumentacji programowej . Łączy w sobie mocne strony metod SAST i DAST, a także zapewnia dostęp do kodu, ruchu HTTP, informacji o bibliotekach, połączeń zaplecza i informacji o konfiguracji. Niektóre produkty IAST wymagają ataku na aplikację, podczas gdy inne mogą być używane podczas normalnych testów zapewnienia jakości.
- Samoochrona aplikacji w czasie wykonywania rozszerza istniejące aplikacje, zapewniając wykrywanie włamań i zapobieganie im z poziomu środowiska wykonawczego aplikacji.
- Skanery zależności (nazywane również analizą składu oprogramowania) próbują wykryć użycie składników oprogramowania o znanych lukach. Narzędzia te mogą działać na żądanie, np. podczas procesu budowania kodu źródłowego, lub okresowo.
- Abstrakcja to idea uczynienia bardziej złożonych rzeczy mniej złożonymi.
Normy i przepisy bezpieczeństwa
- Bezpieczne kodowanie CERT
- ISO / IEC 27034-1: 2011 Technika informatyczna - Techniki bezpieczeństwa - Bezpieczeństwo aplikacji - Część 1: Przegląd i koncepcje
- ISO / IEC TR 24772: 2013 Technika informatyczna - Języki programowania - Wytyczne dotyczące unikania luk w językach programowania poprzez wybór i użycie języka
- Specjalna publikacja NIST 800-53
- OWASP ASVS: Standard weryfikacji bezpieczeństwa aplikacji internetowych
Zobacz też
- Architektura usługi aplikacji (ASA)
- CWE
- Ochrona danych
- Mobilne zabezpieczenia
- OWASP
- Cykl rozwoju zabezpieczeń
- Cykl rozwoju niezawodnych zabezpieczeń obliczeniowych