Cyberbezpieczeństwo
Rozpraszanie „mgły niepewności” w cyberbezpieczeństwie
Na konferencji RSA w San Francisco w tym miesiącu, przedstawiono olbrzymią ilość nowych rozwiązań z branży cyberbezpieczeństwa. Każdy z wystawców twierdził, że jego rozwiązanie jest tym, które uratuje Twoją organizację przed złymi aktorami, którzy chcą ukraść Twoje dobra lub szantażować Cię za miliony dolarów.
Po długim rozważaniu doszedłem do wniosku, że nasza branża jest zgubiona. Zgubiona w morzu wykrywania i reagowania z niekończącymi się banałami, twierdzącymi, że Twoje problemy znikną, jeśli tylko dodasz kolejną warstwę. Zatopiona w mglistym świecie inwestycji technologicznych, personelu, narzędzi i warstw infrastruktury, firmy stworzyły labirynt, w którym nie mogą już zobaczyć lasu przez drzewa, jeśli chodzi o identyfikowanie i zapobieganie atakom. Te narzędzia, które mają chronić cyfrowe aktywa, powodują frustrację zarówno w zespołach bezpieczeństwa, jak i rozwoju, poprzez zwiększone obciążenie pracą i niekompatybilne narzędzia. „Mgła niepewności” nie działa. Ale szczerze mówiąc, nigdy nie działała.
Ataki cybernetyczne zaczynają się i kończą w kodzie. To tak proste. Albo masz lukę w zabezpieczeniach lub podatność w kodzie, albo kod został napisany bez uwzględnienia zabezpieczeń. W każdym przypadku, każdy atak lub nagłówek, który czytasz, pochodzi z kodu. I to właśnie programiści są narażeni na pełne skutki problemu. Ale programiści nie są szkoleni w zakresie zabezpieczeń i, szczerze mówiąc, mogą nigdy nie być. Dlatego też wdrażają stare, dobre narzędzia do wyszukiwania kodu, które po prostu wyszukują wzorce w kodzie. I bójcie się o to, co prosicie, ponieważ w efekcie otrzymują tsunami alertów, goniąc za fałszywymi pozytywami i zjawiskami przez większość dnia. W rzeczywistości, programiści spędzają do jednej trzeciej swojego czasu goniąc za fałszywymi pozytywami i podatnościami. Tylko poprzez skupienie się na zapobieganiu, przedsiębiorstwa mogą naprawdę zacząć umacniać swoje programy zabezpieczeń i tworzyć podstawy dla kultury zorientowanej na zabezpieczenia.
Wyszukiwanie i naprawianie na poziomie kodu
Często mówi się, że zapobieganie jest lepsze niż leczenie, a ta maksyma jest szczególnie prawdziwa w cyberbezpieczeństwie. Dlatego też, nawet w sytuacji coraz bardziej ograniczonych środków finansowych, firmy ciągle inwestują i dodają nowe narzędzia zabezpieczeń, tworząc multiple bariery wejścia, aby zmniejszyć prawdopodobieństwo udanych ataków cybernetycznych. Ale pomimo dodawania coraz większej ilości warstw zabezpieczeń, te same rodzaje ataków nadal się zdarzają. To czas, aby organizacje przyjęły nową perspektywę – jedną, w której skupiamy się na problemie na poziomie podstawowym – poprzez wyszukiwanie i naprawianie podatności w kodzie.
Aplikacje często służą jako główny punkt wejścia dla cyberprzestępców, którzy chcą wykorzystać słabości i uzyskać nieautoryzowany dostęp do wrażliwych danych. Pod koniec 2020 roku, kompromitacja SolarWinds wyszła na jaw i śledczy odkryli, że proces tworzenia oprogramowania został naruszony, co pozwoliło atakującym na wstrzyknięcie złośliwego kodu do oprogramowania do monitorowania sieci Orion. Ten atak podkreślił potrzebę zabezpieczenia każdego etapu procesu tworzenia oprogramowania. Poprzez wdrożenie solidnych środków zabezpieczeń aplikacji, lub AppSec, organizacje mogą zmniejszyć ryzyko tych naruszeń zabezpieczeń. Aby to zrobić, przedsiębiorstwa muszą przyjąć mentalność „przesunięcia w lewo”, wprowadzając metody prewencyjne i predykcyjne na etapie rozwoju.
Jednakże, to nie jest w pełni nowy pomysł, ponieważ wiąże się z pewnymi wadami. Jedną z istotnych wad jest zwiększony czas rozwoju i koszty. Wdrożenie kompleksowych środków AppSec może wymagać znacznych zasobów i ekspertyzy, co prowadzi do dłuższych cykli rozwoju i wyższych wydatków. Ponadto, nie wszystkie podatności stanowią wysokie ryzyko dla organizacji. Możliwość fałszywych pozytywów z narzędzi wykrywania również prowadzi do frustracji wśród programistów. To tworzy lukę między zespołami biznesowymi, inżynierskimi i zabezpieczeń, których cele mogą nie być zgodne. Ale generatywne AI może być rozwiązaniem, które zamknie tę lukę raz na zawsze.
Wkraczanie w erę AI
Poprzez wykorzystanie powszechnego charakteru generatywnego AI w AppSec, w końcu nauczymy się z przeszłości, aby przewidzieć i zapobiec przyszłym atakom. Na przykład, można trenować duży model językowy lub LLM na wszystkich znanych podatnościach kodu, we wszystkich ich wariantach, aby nauczyć się podstawowych cech każdej z nich. Te podatności mogą obejmować typowe problemy, takie jak przepełnienia bufora, ataki iniekcji lub niewłaściwą walidację danych wejściowych. Model ten również nauczy się subtelnych różnic między językami, frameworkami i bibliotekami, a także tego, jakie poprawki kodu są skuteczne. Następnie model może wykorzystać tę wiedzę, aby przeskanować kod organizacji i znaleźć potencjalne podatności, które jeszcze nie zostały zidentyfikowane. Poprzez wykorzystanie kontekstu wokół kodu, narzędzia skanujące mogą lepiej wykrywać prawdziwe zagrożenia. To oznacza krótszy czas skanowania i mniej czasu poświęconego na gonienie fałszywych pozytywów i zwiększoną produktywność zespołów developerskich.
Narzędzia AI mogą również oferować sugestie poprawek kodu, automatyzując proces generowania łat, znacznie redukując czas i wysiłek wymagany do naprawy podatności w kodzie. Poprzez trenowanie modeli na ogromnych repozytoriach bezpiecznych kodów i najlepszych praktyk, programiści mogą wykorzystać fragmenty kodu wygenerowane przez AI, które przestrzegają standardów zabezpieczeń i unikają typowych podatności. Ten proaktywny podejście nie tylko zmniejsza prawdopodobieństwo wprowadzenia luk w zabezpieczeniach, ale także przyspiesza proces rozwoju, dostarczając programistom pre-testowane i zwalidowane komponenty kodu.
Te narzędzia mogą również dostosować się do różnych języków programowania i stylów kodowania, co czyni je wszechstronnymi narzędziami dla zabezpieczeń kodu w różnych środowiskach. Mogą one również ulepszać się z czasem, trenując na nowych danych i informacjach zwrotnych, co prowadzi do bardziej skutecznej i niezawodnej generacji łat.
Element ludzki
Jest istotne, aby zauważyć, że chociaż poprawki kodu mogą być zautomatyzowane, nadzór i walidacja ludzka są nadal niezbędne, aby zapewnić jakość i poprawność wygenerowanych łat. Chociaż zaawansowane narzędzia i algorytmy odgrywają znaczącą rolę w identyfikowaniu i łagodzeniu podatności zabezpieczeń, ludzka ekspertyza, kreatywność i intuicja pozostają niezastąpione w skutecznym zabezpieczaniu aplikacji.
Programiści są ostatecznie odpowiedzialni za pisanie bezpiecznego kodu. Ich zrozumienie najlepszych praktyk zabezpieczeń, standardów kodowania i potencjalnych podatności jest kluczowe w zapewnieniu, że aplikacje są budowane z zabezpieczeniami na etapie początkowym. Poprzez integrację programów szkoleniowych i świadomości zabezpieczeń w procesie rozwoju, organizacje mogą umożliwić programistom proaktywne identyfikowanie i rozwiązywanie problemów z zabezpieczeniami, zmniejszając prawdopodobieństwo wprowadzenia podatności do kodu.
Ponadto, skuteczna komunikacja i współpraca między różnymi interesariuszami w organizacji są niezbędne do sukcesu AppSec. Chociaż rozwiązania AI mogą pomóc „zamknąć lukę” między rozwojem a operacjami zabezpieczeń, to wymaga kultury współpracy i wspólnej odpowiedzialności, aby budować bardziej odporne i bezpieczne aplikacje.
W świecie, w którym pejzaż zagrożeń jest ciągle ewoluujący, łatwo jest zostać przytłoczonym przez ogromną ilość dostępnych narzędzi i technologii w przestrzeni cyberbezpieczeństwa. Jednakże, poprzez skupienie się na zapobieganiu i wyszukiwaniu podatności w kodzie, organizacje mogą obciąć „tłuszcz” swoich istniejących stosów zabezpieczeń, oszczędzając wykładniczą ilość czasu i pieniędzy w procesie. Na poziomie podstawowym, takie rozwiązania będą w stanie nie tylko znaleźć znane podatności i naprawić podatności zero-day, ale także podatności pre-zero-day przed ich wystąpieniem. Możemy w końcu nadążyć, jeśli nie pójść za ewoluującymi aktorami zagrożeń.












