W dobie dynamicznego rozwoju sztucznej inteligencji (AI) i dużych modeli językowych (LLM), firmy technologiczne prześcigają się w tworzeniu coraz bardziej zaawansowanych rozwiązań. Aby osiągnąć wysoką skuteczność, modele te muszą być trenowane na ogromnych ilościach danych, często pochodzących z publicznie dostępnych zasobów internetowych. Jednakże, jak pokazują najnowsze badania, takie podejście niesie ze sobą istotne ryzyko związane z bezpieczeństwem danych.
Common Crawl i zagrożenia związane z danymi uwierzytelniającymi
Common Crawl to organizacja non-profit, która od 2007 roku gromadzi i udostępnia ogromne zbiory danych z sieci, umożliwiając badaczom i firmom dostęp do aktualnych informacji z internetu . Chociaż inicjatywa ta ma na celu wspieranie innowacji i badań, niesie ze sobą pewne wyzwania. Badacze z Truffle Security odkryli, że w zbiorach danych Common Crawl znalazły się poufne informacje, takie jak klucze API, hasła i inne dane uwierzytelniające . Analizując 2,76 miliona witryn, zidentyfikowano aż 11 908 aktywnych “sekretów”, które mogłyby umożliwić nieautoryzowany dostęp do różnych usług.
Przyczyny problemu i odpowiedzialność
Głównym źródłem problemu jest praktyka tzw. “hardcodowania” poufnych informacji w kodzie front-endowym stron internetowych. Oznacza to, że programiści umieszczają klucze API czy hasła bezpośrednio w kodzie HTML lub JavaScript, co czyni je łatwo dostępnymi dla każdego, kto przegląda źródło strony. W efekcie, podczas procesów takich jak crawling, tego typu dane są zbierane i mogą trafić do publicznie dostępnych zbiorów, takich jak Common Crawl. Warto jednak zaznaczyć, że odpowiedzialność za takie wycieki nie leży po stronie organizacji gromadzących dane, lecz po stronie twórców stron, którzy nie przestrzegają podstawowych zasad bezpieczeństwa.
Dobre praktyki w zabezpieczaniu aplikacji internetowych
Aby uniknąć takich sytuacji, programiści i administratorzy stron powinni stosować się do sprawdzonych praktyk bezpieczeństwa:
- Unikanie “hardcodowania” poufnych danych: Nigdy nie należy umieszczać kluczy API, haseł czy innych danych uwierzytelniających bezpośrednio w kodzie front-endowym. Zamiast tego, warto korzystać z bezpiecznych mechanizmów przechowywania i dostępu do takich informacji po stronie serwera.
- Regularne przeglądy i audyty bezpieczeństwa: Regularne sprawdzanie kodu pod kątem potencjalnych luk i niebezpiecznych praktyk pozwala na wczesne wykrycie i eliminację zagrożeń.
- Aktualizacja oprogramowania i zależności: Utrzymywanie aktualnych wersji bibliotek, frameworków i innych zależności minimalizuje ryzyko wykorzystania znanych luk w zabezpieczeniach.
- Stosowanie mechanizmów kontroli dostępu: Wdrażanie odpowiednich mechanizmów uwierzytelniania i autoryzacji zapewnia, że tylko uprawnione osoby mają dostęp do określonych zasobów i funkcji aplikacji.
- Szyfrowanie danych: Zarówno dane w tranzycie, jak i te przechowywane powinny być szyfrowane, aby chronić je przed nieautoryzowanym dostępem.
Świadomość i stosowanie najlepszych praktyk bezpieczeństwa stają się kluczowe. Unikanie podstawowych błędów, takich jak “hardcodowanie” poufnych danych, oraz regularne audyty i aktualizacje mogą znacząco podnieść poziom bezpieczeństwa aplikacji internetowych. Pamiętajmy, że odpowiedzialność za ochronę danych leży po stronie twórców i administratorów stron, a zaniedbania w tym zakresie mogą prowadzić do poważnych konsekwencji.
„Rozwój wielkich modeli językowych opartych na AI powoduje, że internauci i administratorzy witryn stoją przed dodatkowymi cyberniebezpieczeństwami. Dlatego warto przestrzegać podstawowych zasad cyberhigieny. Korzystajmy z oprogramowania antywirusowego i minimalizujmy nasz cyfrowy ślad, który może być potencjalnie wykorzystany do celów cyberprzestępczych”
Dariusz Woźniak z firmy Marken Systemy Antywirusowe, polskiego dystrybutora oprogramowania Bitdefender.