Oracle chce, abyś przestał wysyłać im błędy - oto dlaczego to szalone

  • Brian Curtis
  • 0
  • 1661
  • 132
Reklama

W tym tygodniu Oracle jest w gorącej wodzie nad postem na blogu napisanym przez ich szefową ds. Bezpieczeństwa, Mary Davidson. Ten post, choć obejmuje szereg tematów, dotyczy głównie zgłaszania ewentualnych luk w zabezpieczeniach Oracle. W szczególności dlaczego nie powinieneś.

“Niedawno zauważyłem znaczny wzrost klientów, którzy dokonali inżynierii wstecznej naszego kodu, aby spróbować znaleźć w nim luki w zabezpieczeniach. Właśnie dlatego piszę dużo listów do klientów, którzy zaczynają od “cześć, howzit, aloha” ale koniec z “postępuj zgodnie z umową licencyjną i przestań już odtwarzać kod.”

Davidson wyjaśnia, że ​​rośnie liczba świadomych bezpieczeństwa klientów, którzy zajmują się inżynierią wsteczną oprogramowania Oracle, szukając luk w zabezpieczeniach (lub zatrudniając do tego konsultantów). Davidson zarzuca tym klientom, że naruszają ich umowy licencyjne, nie podejmują przyziemnych środków bezpieczeństwa, próbują wykonywać dla nich pracę Oracle i ogólnie są złymi ludźmi. Jeśli klient odkryje prawdziwą lukę, Oracle ją naprawi.

“Niemal nienawidzę odpowiadać na to pytanie, ponieważ chcę powtórzyć, że klienci nie powinni i nie mogą odtwarzać kodu naszego kodu. […] Nie damy klientowi zgłaszającemu taki problem (znaleziony w wyniku inżynierii wstecznej) specjalnej (jednorazowej) łatki dotyczącej problemu. Nie udzielamy również kredytu w żadnych poradach, które możemy wydać. Naprawdę nie możesz oczekiwać od nas odpowiedzi “dziękuję za złamanie umowy licencyjnej.””

Tak się stało nie dobrze sobie radzą w społeczności bezpieczeństwa, a post został szybko usunięty, choć nie wcześniej niż pojawił się nowy hashtag Aktywizm hashtagowy: # mocny czy # bezcelowy? Aktywizm hashagów: # mocny czy # bezcelowy? #BringBackOurGirls, #ICantBreathe i #BlackLivesMatter uzyskały szeroki zasięg międzynarodowy w ubiegłym roku - ale hashtagi są skutecznym środkiem aktywizmu? .

„Najpierw sprawdź umowę licencyjną Enigmy” - powiedział Alan Turing. #oraclefanfic

- Thorsten Sick (@ThorstenSick) 11 sierpnia 2015 r

Ale jeśli nie znasz świata bezpieczeństwa, może nie być oczywiste, dlaczego oryginalny post jest tak błędny. Więc dzisiaj porozmawiamy o tym, gdzie filozofia bezpieczeństwa Oracle odchodzi od głównego nurtu i dlaczego jest to problem.

Wyjaśnienie kontrowersji

Czym właściwie jest inżynieria odwrotna i dlaczego Davidson tak się tym przejmuje? Zasadniczo, kiedy Oracle wypuszcza oprogramowanie, oni to robią “skompilować” wewnętrzny kod źródłowy do plików wykonywalnych, a następnie dostarczaj te pliki klientom. Kompilacja jest procesem, który tłumaczy kod czytelny dla ludzi (w językach takich jak strony internetowe C ++ 3, aby rozpocząć naukę języka programowania C ++ 3 strony internetowe, aby rozpocząć naukę języka programowania C ++ Nauka programowania może być trudna dla wielu osób, nawet przy względnie łatwych językach programowania Podczas gdy Java jest łatwiejsza do rozpoczęcia (gdzie mamy wiele artykułów w MakeUseOf dla Javy, a także…) w gęstszym języku binarnym, który można podawać bezpośrednio do procesora komputerowego.

Kod źródłowy Oracle nie jest publiczny. Ma to na celu utrudnić innym kradzież ich własności intelektualnej. Oznacza to jednak również, że klientom bardzo trudno jest zweryfikować, czy kod jest bezpieczny. Tutaj zaczyna się „dekompilacja”. Zasadniczo, dekompilacja przekłada się na inny kierunek, konwertując pliki wykonywalne z powrotem na kod czytelny dla ludzi. Nie dostarcza to dokładnie oryginalnego kodu źródłowego, ale dostarcza kod, który działa w ten sam sposób - chociaż często jest trudny do odczytania, z powodu utraty komentarzy i struktury organizacyjnej.

To jest “inżynieria odwrotna” do którego odnosi się Davidson. Oracle jest temu przeciwny, ponieważ uważają, że zagraża to ich własności intelektualnej. Jest to co najmniej głupie, ponieważ korzystanie z umowy licencyjnej w celu zakazania kradzieży adresów IP przypomina trochę surowe sformułowanie wycieraczki, aby zapobiec inwazji na dom. Ludzie, którzy będą próbowali sklonować twoje produkty, nie dbają o umowy licencyjne. 4 sposoby na przeczytanie i zrozumienie umowy licencyjnej użytkownika końcowego (EULA). Łatwiejsze 4 sposoby na przeczytanie i zrozumienie umowy licencyjnej użytkownika końcowego (EULA) Łatwiej umowy EULA lub umowy licencyjne użytkownika końcowego są jednym ze złych warunków współczesnego życia. Są to nieskończenie męczące umowy, zwykle pisane drobnym drukiem. Są to rzeczy, które ślepo przewijasz w dół, szukając tego cholerstwa… i często nie są w jurysdykcjach, w których możesz egzekwować te umowy w każdym przypadku.

Ludzkość jest skazana… #oraclefanfic #justoraclethings pic.twitter.com/e6MOZzkkvq

- CyberAnarchist (@ Cyb3rOps) 12 sierpnia 2015 r

Polityka naprawdę dotyczy tylko legalnych klientów. Sytuacja jest podobna do gry wideo DRM 6 miejsc do kupowania gier bez DRM [MUO Gaming] 6 miejsc do kupowania gier bez DRM [MUO Gaming] Ponieważ zdecydowałem się nie kupować gier ze Steam, muszę znaleźć inne źródła. Wiele z nich jest w rzeczywistości gorszych niż sama Steam. Sklep Ubisoft jest zaskakujący i denerwujący DRM. Sztuka elektroniczna…, ale jakoś jeszcze bardziej nieskuteczna.

Dlaczego klienci chcieliby dekompilować te pliki wykonywalne? Chodzi o bezpieczeństwo. Mając dostęp do kodu źródłowego, możesz go przekopać w poszukiwaniu błędów i potencjalnych problemów. Często odbywa się to za pomocą oprogramowania, które wykonuje “analiza kodu statycznego” - zautomatyzowany odczyt kodu, który identyfikuje znane błędy i niebezpieczne praktyki oprogramowania, które zwykle prowadzą do błędów. Chociaż istnieją narzędzia, które bezpośrednio analizują plik wykonywalny, jego dekompilacja pozwala na generalnie głębsze analizy. Ten rodzaj analizy statycznej jest standardowym narzędziem handlu bezpieczeństwem, a większość firm dbających o bezpieczeństwo korzysta z takiego oprogramowania wewnętrznie do tworzenia kodu, który rzadziej zawiera poważne błędy.

Zasady Oracle dotyczące tego rodzaju analiz są proste “nie.” Czemu? Pozwolę Davidsonowi wyjaśnić.

“Klient nie może przeanalizować kodu, aby sprawdzić, czy istnieje element sterujący, który zapobiega atakowi, o którym krzyczy narzędzie skanujące (co jest najprawdopodobniej fałszywie pozytywne) […] Teraz należy zauważyć, że nie akceptujemy tylko skanowania raporty jako “dowód, że tam jest,” po części dlatego, że niezależnie od tego, czy mówisz o analizie statycznej, czy dynamicznej, raport ze skanowania nie jest dowodem na faktyczną lukę. […] Aha, i wymagamy od klientów / konsultantów zniszczenia wyników takiej inżynierii wstecznej i potwierdzenia, że ​​to zrobili.”

Innymi słowy, narzędzie pokazujące wynik nie jest dowodem prawdziwego błędu - a ponieważ Oracle używa tych narzędzi wewnętrznie, klienci nie mają sensu, aby korzystali z nich samodzielnie.

Dużym problemem jest to, że te narzędzia do analizy kodu statycznego nie istnieją tylko po to, aby zwrócić uwagę na błędy. Mają również służyć jako cel dla jakości i bezpieczeństwa kodu. Jeśli wrzucisz bazę kodu Oracle do standardowego w branży narzędzia do analizy statycznej i wypluje on setki stron problemów, to naprawdę zły znak.

Prawidłowa odpowiedź, gdy narzędzie statycznej analizy kodu wyrzuca problem, nie polega na spojrzeniu na problem i stwierdzeniu „o nie, to nie powoduje błędu, ponieważ taki a taki”. Prawidłowa odpowiedź to wejście i rozwiązanie problemu. Elementy oznaczone przez narzędzia do analizy kodu statycznego są zwykle złymi praktykami, a twoja umiejętność ustalenia, czy dany problem rzeczywiście powoduje błąd, jest omylna. Przez tysiące problemów będziesz tęsknił. Lepiej nie mieć takich rzeczy w bazie kodu.

Oto CTO Oculus John Carmack, który chwali te narzędzia z czasów, gdy pracował w iD Software. (Poważnie, przeczytaj cały esej, to ciekawe rzeczy).

“Mieliśmy okres, w którym jeden z projektów przypadkowo wyłączono opcję analizy statycznej na kilka miesięcy, a kiedy zauważyłem i ponownie ją włączyłem, pojawiły się stosy nowych błędów, które zostały wprowadzone w międzyczasie. […] Były to demonstracje, że normalne operacje programistyczne ciągle generują te klasy błędów, a [statyczna analiza kodu] skutecznie chroni nas przed wieloma z nich.”

Krótko mówiąc, prawdopodobne jest, że wielu klientów Oracle niekoniecznie próbowało zgłaszać określone błędy - pytali, dlaczego praktyki kodowania Oracle były tak słabe, że ich baza kodu była pełna tysięcy problemów tak podstawowych, że można je było wybrać zautomatyzowane oprogramowanie.

Nadal jestem smutny, że nie ma słońca. A kim był geniusz, który sprzedał je Oracle? To tak, jakby pozwolić, by Darth Vader opiekował się dziećmi.

- Brad Neuberg (@bradneuberg) 15 sierpnia 2015 r

Bezpieczeństwo przez naklejki

Co więc powinni zrobić klienci zainteresowani bezpieczeństwem, zamiast korzystać z narzędzi analizy statycznej? Na szczęście post na blogu Davidsona był bardzo szczegółowy na ten temat. Oprócz opowiadania się za ogólnymi podstawowymi praktykami bezpieczeństwa, przedstawia konkretne sugestie osobom zainteresowanym bezpieczeństwem używanego oprogramowania.

“[T] tutaj jest wiele rzeczy, które klient może zrobić, na przykład, rozmawiając z dostawcami o swoich programach gwarancyjnych lub sprawdzając certyfikaty dla produktów, dla których istnieją pieczęcie Dobrego Sprzątania (lub “dobry kod” uszczelki), takie jak certyfikaty Common Criteria lub certyfikaty FIPS-140. Większość dostawców - przynajmniej większość dużych, których znam - ma teraz dość solidne programy zapewniające (wiemy o tym, ponieważ wszyscy porównujemy notatki na konferencjach).”

To jest przerażające odpowiedź organizacji tak dużej jak Oracle. Bezpieczeństwo komputerowe to szybko ewoluująca dziedzina. Ciągle pojawiają się nowe luki, a sformalizowanie wymagań bezpieczeństwa w certyfikat, który jest aktualizowany co kilka lat, jest absurdalne. Bezpieczeństwo nie jest naklejką. Jeśli ufasz, że pewne kluczowe oprogramowanie jest bezpieczne na podstawie pieczęci na opakowaniu, jesteś nieodpowiedzialnie głupi.

Do diabła, narzędzia analizy statycznej są aktualizowane znacznie częściej niż te certyfikaty - w niektórych przypadkach codziennie - i eliminując wszystkie pojawiające się problemy nadal nie wystarczy mieć zaufanie do bezpieczeństwa kodu, ponieważ większość luk jest zbyt skomplikowana, aby mogły zostać wykryte przez tego rodzaju zautomatyzowane narzędzia.

Jedynym sposobem na zaufanie do własnego bezpieczeństwa jest ujawnienie kodu światu i poproszenie hakerów, aby spróbowali go złamać. Tak działają większość dużych firm programistycznych: jeśli znajdziesz problem z ich kodem, nie będą cię protekcjonalnie warknąć za naruszenie umowy użytkowania. Zapłacą ci pieniądze. Chcą, aby ludzie starali się cały czas łamać oprogramowanie. To jedyny sposób, w jaki mogą mieć pewność, że ich kod jest w ogóle bezpieczny.

Te programy są nazywane “nagroda za błąd” programy i od dłuższego czasu są to najlepsze rzeczy, które mogą przydarzyć się bezpieczeństwu na poziomie przedsiębiorstwa. To także przypadek coś, na co Davidson ma dość mocne opinie.

“Bug bounties to nowy zespół chłopięcy (ładnie aliteracyjny, nie?) Wiele firm krzyczy, omdlewa i rzuca bieliznę badaczom bezpieczeństwa […], aby znaleźć problemy w swoim kodzie i nalegać, aby This Is The Way, Walk In It: jeśli nie robisz nagród za błędy, twój kod nie jest bezpieczny.

Ach, cóż, sami odnajdujemy 87% luk w zabezpieczeniach, badacze bezpieczeństwa znajdują około 3%, a resztę odnajdują klienci. […] Nie dyskutuję o nagrodach za błędy, po prostu zauważam, że ze względów ściśle ekonomicznych, dlaczego miałbym rzucać dużo pieniędzy na 3% problemu.”

Na początek, w oparciu o wyniki tych analiz kodu statycznego, może okazać się znacznie więcej niż 3%, jeśli je zapłacisz. Ale dygresję. Chodzi o to, że nagrody za błędy nie są dla ciebie, tylko dla nas. Czy możesz znaleźć błędy bardziej efektywnie, jeśli wydasz te same pieniądze na ekspertów ds. Bezpieczeństwa wewnętrznego? Cóż, prawdopodobnie nie - ale rzućmy kości Wyroczni i załóżmy, że mogliby. Mogą jednak wziąć pieniądze, przelać je na bank, a następnie absolutnie nic nie robić. Jeśli wynikowe zabezpieczenia są poniżej norm, klienci dowiedzą się o tym dopiero za lata, kiedy ich numery ubezpieczenia społecznego w tajemniczy sposób znajdą się w głębokiej sieci. Jak znaleźć aktywne witryny .Onion Dark. (I dlaczego warto) Jak to zrobić Znajdź aktywne witryny .Onion Dark (i dlaczego warto) Dark Web, po części, składa się z witryn .onion, hostowanych w sieci Tor. Jak je znaleźć i gdzie iść? Chodź za mną… .

„Nie ma żadnej wrażliwości. Umowa EULA tak mówi.” #oraclefanfic pic.twitter.com/cUfafDCWbv

- Schuyler St. Leger (@DocProfSky) 11 sierpnia 2015

Nagrody za błędy istnieją w połowie, ponieważ są naprawdę skutecznym sposobem identyfikowania błędów, a w połowie, ponieważ są formą bezpieczeństwa, której nie można podrobić. Nagroda za błąd w wiarygodny sposób informuje świat, że wszelkie błędy pozostawione w kodzie są droższe do znalezienia niż podana nagroda.

Nagrody za błędy nie istnieją dla Twojej wygody, Oracle, istnieją, ponieważ ci nie ufamy.

My też nie powinniśmy! Wiele dużych firm pozwala obniżyć poziom bezpieczeństwa, ponieważ wiele megabajtów Target potwierdza do 40 milionów klientów w USA Karty kredytowe Potencjalnie zhackowany cel Potwierdza do 40 milionów klientów w USA Karty kredytowe Potencjalnie włamany cel Target właśnie potwierdził, że włamanie mogło być zagrożone informacje o karcie kredytowej dla nawet 40 milionów klientów, którzy zrobili zakupy w amerykańskich sklepach między 27 listopada a 15 grudnia 2013 r. pokazują to zbyt wyraźnie. Jesteś drugim co do wielkości producentem oprogramowania na świecie. Absurdem jest prosić nas, abyśmy wierzyli, że Twoje produkty są bezpieczne.

Co robi Davidson?

W uczciwości wobec Davidsona istnieją elementy, które są uzasadnione w kontekście. Prawdopodobnie wielu ich klientów przeprowadza ambitne audyty kodu Oracle, nie tracąc czasu na wyeliminowanie z systemów bardziej przyziemnych problemów bezpieczeństwa..

“Zaawansowane Trwałe Zagrożenia” - wykwalifikowane organizacje hakerów próbujące uzyskać dostęp do konkretnych organizacji w celu kradzieży danych - z pewnością są przerażające, ale pod względem liczbowym są o wiele mniej niebezpieczne niż miliony oportunistycznych amatorskich hakerów z automatycznymi narzędziami. Przeprowadzanie tego rodzaju statycznych analiz oprogramowania komercyjnego, gdy nie zastosowano podstawowych środków bezpieczeństwa, przypomina instalowanie pokoju paniki, gdy nie ma jeszcze zamka na drzwiach wejściowych.

Podobnie, prawdopodobnie naprawdę frustrujące i nieprzydatne jest ciągłe przedstawianie tej samej zautomatyzowanej analizy.

Jednak w ujęciu całościowym artykuł ujawnia kilka bardzo przestarzałych pomysłów na temat bezpieczeństwa systemu oraz relacji między programistami a klientami. Doceniam to, że praca Davidsona jest frustrująca, ale użytkownicy starający się zweryfikować bezpieczeństwo oprogramowania, którego używają, nie stanowią problemu. Oto prezydent Security Awareness, Ira Winkler:

“Oracle to bardzo duża i bogata firma, której produkty są szeroko dystrybuowane i wykorzystywane do krytycznych aplikacji. Kropka. Są odpowiedzialni za to, aby ich oprogramowanie było tak mocne, jak to możliwe […] Może być wiele fałszywych wyników pozytywnych i powiązane koszty, ale jest to czynnik [ich sprzedaży] dużej ilości oprogramowania, które ma wielu użytkowników. Jest to koszt prowadzenia działalności gospodarczej. Jestem pewien, że wszystkie firmy produkujące oprogramowanie mają takie same fałszywe raporty. Nie słyszę Microsoft et al. narzekać.”

Jeśli Oracle nie chce ciągle otrzymywać tysięcy problemów wykrytych przez narzędzia bezpieczeństwa statycznego, być może powinny napraw te tysiące problemów. Jeśli denerwują ich ludzie, którzy w kółko zgłaszają te same błędy, może powinni mieć odpowiedni program premiowy za błędy, który ma mechanizmy radzenia sobie z powtarzającymi się problemami. Klienci Oracle domagają się wyższego standardu bezpieczeństwa i nie zawstydzają ichPrawidłowa odpowiedź.

Mimo że Oracle zdjął i ogólnie nie zgadzał się z tym postem, jego napisanie w ogóle ujawnia głęboko błędną kulturę bezpieczeństwa w Oracle. Podejście Oracle do bezpieczeństwa stawia na pierwszym miejscu ochronę ich własności intelektualnej przed bezpieczeństwem i spokojem klientów - a jeśli powierzysz oprogramowanie Oracle krytycznym informacjom, to powinno cię wystraszyć bejeezus.

Co myślisz? Czy martwi Cię filozofia bezpieczeństwa Oracle? Czy uważasz, że Davidson jest traktowany zbyt surowo? Daj nam znać w komentarzach!




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.