Różności i nowinki technologia

Błąd kodowania Rookie’a przed włamaniem Gaba pochodzi od CTO serwisu

Błąd kodowania Rookie'a przed włamaniem Gaba pochodzi od CTO serwisu

Gab.com

W weekend pojawiła się wiadomość, że haker włamał się do skrajnie prawicowego portalu społecznościowego Gab i pobrał 70 gigabajtów danych, wykorzystując lukę w zabezpieczeniach typu ogrodowego, znaną jako wstrzyknięcie SQL. Szybki przegląd otwartego kodu Gaba pokazuje, że krytyczna luka – lub przynajmniej jedna bardzo podobna – została wprowadzona przez dyrektora ds. Technologii firmy.

Zmiana, która w żargonie tworzenia oprogramowania jest znana jako „git commit”, została dokonana w lutym na koncie Fosco Marotto, byłego inżyniera oprogramowania Facebooka, który w listopadzie został dyrektorem technicznym Gaba. W poniedziałek Gab usunął zobowiązanie git ze swojej strony internetowej. Poniżej znajduje się obraz przedstawiający lutową zmianę oprogramowania, jak pokazano na stronie, która zapewnia zapisane migawki zatwierdzeń.

Zatwierdzenie pokazuje programistę używającego nazwiska Fosco Marotto, wprowadzając dokładnie rodzaj błędu debiutanta, który może prowadzić do tego rodzaju naruszenia zgłoszonego w ten weekend. W szczególności wiersz 23 usuwa z kodu „odrzucanie” i „filtrowanie”, czyli funkcje API, które implementują idiomy programistyczne chroniące przed atakami typu SQL injection.

Deweloperzy: Oczyść dane wejściowe użytkownika

Idiomy te „oczyszczają” dane wejściowe, które odwiedzający witrynę wprowadzają do pól wyszukiwania i innych pól internetowych, aby zapewnić usunięcie wszelkich złośliwych poleceń przed przekazaniem tekstu do serwerów zaplecza. W ich miejsce programista dodał wywołanie funkcji Rails, która zawiera metodę „find_by_sql”, która akceptuje nieanityzowane dane wejściowe bezpośrednio w ciągu zapytania. Rails to powszechnie używany zestaw narzędzi do tworzenia witryn internetowych.

„Niestety dokumentacja Railsów nie ostrzega o tej pułapce, ale jeśli w ogóle wiesz cokolwiek o używaniu baz danych SQL w aplikacjach internetowych, to słyszałeś o wstrzykiwaniu SQL i nietrudno natknąć się na ostrzeżenia, że ​​metoda find_by_sql nie jest bezpieczne ”- napisał w e-mailu Dmitry Borodaenko, były inżynier produkcji w Facebooku, który zwrócił mi uwagę na zobowiązanie. „Nie jest w 100% potwierdzone, że jest to luka, która została wykorzystana w naruszeniu danych Gab, ale z pewnością mogła tak być, a ta zmiana kodu została cofnięta w najnowszym zatwierdzeniu, które było obecne w ich repozytorium GitLab, zanim go podjęli offline ”.

Marotto nie odpowiedział na e-mail z prośbą o komentarz do tego posta. Próby bezpośredniego kontaktu z Gabiem nie powiodły się.

Historia rewizjonistyczna

Poza zobowiązaniem, które rodzi pytania dotyczące procesu opracowywania bezpiecznego kodu przez Gaba, serwis społecznościowy spotyka się również z krytyką za usunięcie zatwierdzeń ze swojej witryny. Krytycy twierdzą, że posunięcie to narusza warunki Affero General Public License, która reguluje ponowne wykorzystywanie przez Gaba Mastodon, pakietu oprogramowania open source do hostowania platform społecznościowych.

Krytycy mówią usunięcie narusza warunki, które wymagają bezpośredniego połączenia z rozwidlonym kodem źródłowym w witrynie. Wymagania mają na celu zapewnienie przejrzystości i umożliwienie innym programistom open source korzystania z pracy ich rówieśników w Gab.

Gab od dawna udostępnia zatwierdzenia na https://code.gab.com/. Następnie, w poniedziałek, witryna nagle usunęła wszystkie zatwierdzenia – w tym te, które utworzyły, a następnie naprawiły krytyczną lukę w zabezpieczeniach iniekcji SQL. W ich miejsce Gab dostarczył kod źródłowy w postaci pliku archiwum Zip, który był chroniony hasłem „JesusChristIsKingTrumpWonTheElection” (bez cudzysłowów).

Przedstawiciele projektu Mastodon nie odpowiedzieli od razu na e-mail z pytaniem, czy podzielili się obawami krytyków.

Oprócz pytań dotyczących bezpiecznego kodowania i zgodności licencji, zobowiązania Gab git wydają się również wskazywać, że programiści firmy mają trudności naprawić ich wrażliwy kod. Poniższy obraz przedstawia osobę używającą nazwy użytkownika „programista”, która bezskutecznie próbuje w pełni naprawić kod zawierający lukę w zabezpieczeniach wstrzyknięcia SQL.

Uczestnicy wątku reagują sarkastycznie wskazując na trudności, jakie wydaje się mieć programista.

Naruszenie bezpieczeństwa Gab i zakulisowa obsługa kodu przed incydentem i po nim stanowią studium przypadku dla programistów, w jaki sposób nie utrzymanie bezpieczeństwa i przejrzystości kodu na stronie internetowej. Lekcja jest tym ważniejsza, że ​​w zgłoszeniu wykorzystano konto CTO Gaba, który spośród wszystkich ludzi powinien był wiedzieć lepiej.



Zostaw komentarz

Maciek Luboński
Z wykształcenia jestem kucharzem , ale to nie przeszkadza mi pisać dla Was tekstów z wielu ciekawych dziedzin , których sam jestem fanem.Piszę dużo i często nie na tak jak trzeba , ale co z tego skoro tak naprawdę liczy się pasja.

Najlepsze recenzje

Video

gallery

Facebook