AppSec jest trudny
Programy zabezpieczające aplikacje są trudne. Jest dużo ruchomych części. Konieczne jest jednak zapewnienie, że oprogramowanie jest projektowane, budowane i wdrażane w sposób minimalizujący luki w zabezpieczeniach, chroniąc w ten sposób użytkowników i ich dane przed potencjalnymi cyberatakami. Solidny program AppSec będzie miał kompleksowe podejście, które obejmuje integrację różnych praktyk w całym procesie tworzenia oprogramowania, aby zminimalizować ryzyko luk w zabezpieczeniach i naruszeń. To w żadnym wypadku nie jest pełna lista, ale da ci to poczucie zakresu.
Modelowanie zagrożeń to proces identyfikowania i oceny potencjalnych zagrożeń bezpieczeństwa i luk w oprogramowaniu, zanim będzie można je wykorzystać. Można to zrobić, analizując architekturę i projekt oprogramowania, identyfikując wrażliwe dane i identyfikując potencjalne wektory ataku. Zwinne modelowanie zagrożeń to metodologia, która łączy zasady zwinnego tworzenia oprogramowania z modelowaniem zagrożeń. Takie podejście pozwala zespołom identyfikować i eliminować potencjalne zagrożenia i luki w zabezpieczeniach na wczesnym etapie procesu programowania, a jednocześnie szybko reagować na zmieniające się wymagania.
Bezpieczne kodowanie to kolejna ważna praktyka w bezpiecznym tworzeniu oprogramowania. Wiąże się to z pisaniem kodu, który jest wolny od typowych luk w zabezpieczeniach i luk w zabezpieczeniach. Można to ułatwić, stosując wytyczne dotyczące bezpiecznego kodowania, takie jak materiał OWASP . Tego rodzaju zasoby dostarczają programistom zestaw najlepszych praktyk dotyczących pisania bezpiecznego kodu i pomagają im unikać typowych błędów, które mogą prowadzić do luk w zabezpieczeniach.
Aktualizacja oprogramowania to kolejna ważna praktyka. Obejmuje to nie tylko samo oprogramowanie, ale także wszelkie biblioteki i zależności innych firm. Gwarantuje to, że wszelkie znane luki w zabezpieczeniach zostaną usunięte w odpowiednim czasie, zmniejszając ryzyko wykorzystania przez atakujących.
Oczywiście istnieją testy penetracyjne i skanowanie pod kątem luk w zabezpieczeniach, które są technikami używanymi do identyfikowania i usuwania luk w zabezpieczeniach oprogramowania. Techniki te symulują rzeczywiste ataki na oprogramowanie, umożliwiając programistom identyfikowanie i eliminowanie wszelkich luk w zabezpieczeniach, zanim będą mogły zostać wykorzystane przez atakujących. Zautomatyzowane narzędzia, takie jak analiza składu oprogramowania (SCA), statyczne testowanie bezpieczeństwa aplikacji (SAST), dynamiczne testowanie bezpieczeństwa aplikacji (DAST), interaktywne testowanie bezpieczeństwa aplikacji (IAST), testowanie bezpieczeństwa aplikacji mobilnych (MAST) i samoochrona aplikacji w czasie wykonywania ( RASP) może służyć do automatyzacji identyfikacji i usuwania luk w zabezpieczeniach. Ponadto bezpieczeństwo API jest kluczowym aspektem nowoczesnego tworzenia oprogramowania.
Innym ważnym aspektem tworzenia bezpiecznego oprogramowania jest zapobieganie utracie danych (DLP). Rozwiązania DLP mogą służyć do wykrywania i zapobiegania nieautoryzowanemu ujawnieniu poufnych danych, takich jak dane osobowe (PII), tajemnice i tak dalej.
Edukacja i szkolenia są również ważne dla bezpiecznego tworzenia oprogramowania. Programy mistrzów bezpieczeństwa i programy edukacyjne dla programistów mogą pomóc zapewnić, że wszyscy członkowie zespołu programistów mają wiedzę i umiejętności niezbędne do pisania bezpiecznego kodu. Obejmuje to zrozumienie OWASP Top 10, listy najbardziej krytycznych zagrożeń dla bezpieczeństwa aplikacji internetowych, oraz Common Weakness Enumeration (CWE) Top 25 , listy typowych słabości oprogramowania.
Metodologia przesunięcia w lewo i zautomatyzowane bramki w potokach są również niezbędne do bezpiecznego tworzenia oprogramowania. Praktyki te pozwalają programistom wcześnie identyfikować i eliminować potencjalne luki w zabezpieczeniach, zanim staną się one częścią bazy kodu i zostaną wdrożone w środowisku produkcyjnym, poprzez integrację narzędzi w potoki ciągłej integracji i dostarczania (CI/CD), a także uzyskiwanie danych wyjściowych tych narzędzi gdzieś, gdzie można śledzić kluczowe wskaźniki wydajności (KPI), a także segregować potencjalne luki, integrując się z czymś takim jak JIRA w celu sprawnego zarządzania pracą.
Haki git przed zatwierdzeniem są również przydatnym narzędziem do bezpiecznego tworzenia oprogramowania. Te haczyki mogą być używane do automatycznego sprawdzania kodu pod kątem niepewności przed zatwierdzeniem go do repozytorium lub do zapobiegania popełnianiu tajemnic.
Innym ważnym aspektem AppSec jest klasyfikacja luk w zabezpieczeniach. Jest to proces identyfikowania i ustalania priorytetów podatności na podstawie ich wagi i potencjalnego wpływu. Takie podejście pozwala organizacjom skoncentrować swoje zasoby na najbardziej krytycznych lukach i zająć się nimi w odpowiednim czasie. Czynniki takie jak prawdopodobieństwo wykorzystania, potencjalny wpływ i łatwość wykorzystania są brane pod uwagę podczas selekcji luk w zabezpieczeniach. W niektórych przypadkach łatanie może nie być najlepszym rozwiązaniem i można rozważyć alternatywne rozwiązania, takie jak monitorowanie, segmentacja sieci i kontrola dostępu.
Aby zarządzać solidnym programem AppSec, ważne jest posiadanie odpowiednich narzędzi i platform. Niektóre popularne opcje obejmują Esno w celu uzyskania widoczności i koordynacji narzędzi, ludzi i procesów. Checkmarx i Veracode zapewniają wiele funkcji do skanowania statycznego i dynamicznego, a Snyk jest znany ze swoich funkcji bezpieczeństwa typu open source i jako cała platforma jest bardzo lubiana ze względu na łatwość użytkowania i zorientowanie na programistów, ale Black Duck ma dobrą reputację w SCA. Invicti jest dobre dla IAST, Wiz staje się popularny dla CSPM. Aqua dla bezpieczeństwa kontenerów jest wypróbowana i prawdziwa, SpectralOpsdla DLP, NoName Security lub Salt dla API Security, NowSecure dla Mobile AppSec, Irius Risk dla modelowania zagrożeń lub Bionic dla bardziej zautomatyzowanego podejścia do modelowania zagrożeń i zarządzania postawą. Istnieje również fuzzing, który jest rodzajem dynamicznego, opartego na zachowaniu testowania, które testuje nieznane i próbuje znaleźć luki w zabezpieczeniach; bardzo nowoczesnym przykładem platformy w tej przestrzeni jest Mayhem .
Aby śledzić ryzyko związane z oprogramowaniem typu open source i stronami trzecimi, ważne jest również przechowywanie zestawienia materiałów oprogramowania (SBOM). Niektóre z tych narzędzi mogą je dla Ciebie wygenerować (Veracode, Black Duck itp.).
Niektórzy mogą nie uważać tego za część programu AppSec, ale uważam, że technologia Deception Engineering powinna być częścią większego programu bezpieczeństwa produktów, którego celem jest próba marnowania zasobów atakujących i zmuszenia ich do przejścia do łatwiejszych, tańszych celów. Wiodącym przykładem w tej dziedzinie jest CounterCraft. Pomyśl o technologii honeypot na sterydach.
Ponadto szkolenia i edukacja są niezbędne do bezpiecznego tworzenia oprogramowania. Opcje szkoleniowe dotyczące bezpiecznego przeglądania kodu obejmują Secure Code Warrior , Security Journey , Immersive Labs i Avatao . Programami ujawniania luk w zabezpieczeniach (VDP) można zarządzać za pośrednictwem platform takich jak HackerOne , a programami Bug Bounty można konfigurować i zarządzać nimi za pośrednictwem platform takich jak Intigriti.
Jest więcej rzeczy, którymi moglibyśmy się zająć, na przykład rola zasad jako kodu i sposób pełnej automatyzacji bramek oraz sposób, w jaki przepływy pracy zatwierdzania powinny działać w wysoce regulowanych kontekstach, ale na razie będziemy musieli to tutaj zostawić.
Podsumowując, tworzenie bezpiecznego oprogramowania wymaga kompleksowego i wieloaspektowego podejścia, które obejmuje integrację wszystkich wyżej wymienionych praktyk w całym procesie tworzenia oprogramowania. W ten sposób programiści mogą zapewnić bezpieczeństwo użytkowników i ich danych oraz tworzyć solidne, niezawodne i bezpieczne oprogramowanie. Należy zauważyć, że krajobraz bezpieczeństwa stale się zmienia, dlatego konieczne są ciągłe przeglądy i badania, aby nadążyć.

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































