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:

  1. Zastrzyk
  2. Uszkodzone uwierzytelnianie
  3. Ekspozycja danych wrażliwych
  4. Podmioty zewnętrzne XML (XXE)
  5. Uszkodzona kontrola dostępu
  6. Błędna konfiguracja zabezpieczeń
  7. Skrypty między witrynami (XSS)
  8. Niebezpieczna deserializacja
  9. Korzystanie z komponentów ze znanymi podatnościami
  10. 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ż

Bibliografia