Oracle vrea să nu mai le trimiteți bug-uri - Iată de ce este nebun
Oracle este în apă fierbinte în această săptămână, pe un post de blog scris de șeful lor de securitate, Mary Davidson. Postul, deși acoperă o serie de subiecte, se referă în principal la practica de a raporta posibile vulnerabilități de securitate la Oracle. Mai exact, de ce nu ar trebui.
“Recent, am văzut o creștere ridicată a clienților, inversând codul nostru pentru a încerca să găsească vulnerabilități de securitate în acesta.
De aceea am scris o mulțime de scrisori clienților care încep cu “hi, howzit, aloha” dar se termină cu “vă rugăm să respectați acordul de licență și să vă opriți deja codificarea codului nostru.”
Davidson explică faptul că există un număr din ce în ce mai mare de clienți care se confruntă cu securitatea, care sunt software-ul Oracle pentru inginerie inversă în căutarea vulnerabilităților de securitate (sau angajarea de consultanți pentru a le face pentru ei). Davidson îi acuză pe acești clienți că au încălcat acordurile de licență, că nu luau măsuri de securitate mundane, că încearcă să facă slujba Oracle pentru ei și că sunt, în general, oameni răi. Dacă clientul a găsit o vulnerabilitate reală, în timp ce Oracle o va remedia.
“Aproape că nu-mi place să răspund la această întrebare, pentru că vreau să reiterez că clienții nu ar trebui și nu ar trebui să inverseze inginer codul nostru. [...] nu vom da un client care raportează o astfel de problemă (că au găsit prin inginerie inversă) un plasture special (unic) pentru această problemă. De asemenea, nu vom oferi credit în niciun fel de recomandări pe care ar putea să le emităm. Nu te poți aștepta să spunem “vă mulțumim că ați încălcat acordul de licență.””
Asta a făcut nu mergeți bine în comunitatea de securitate, iar postul a fost repede preluat - deși nu înainte de a da naștere unui nou hashtag Hashtag Activism: #powerful sau #pointless? Activismul Hashtag: #powerful sau #pointless? #BringBackOurGirls, #ICantBreathe și #BlackLivesMatter au înregistrat o largă acoperire internațională în ultimul an - dar sunt hashtags un mijloc eficient de activism? Citeste mai mult .
"Verificați mai întâi EULA Enigma", a declarat Alan Turing. #oraclefanfic
- Thorsten Sick (@ThorstenSick) 11 august 2015
Dar, dacă nu sunteți familiarizați cu lumea securității, este posibil să nu fie clar de ce postul original este atât de greșit. Deci, astăzi, vom vorbi despre locul în care filozofia securității Oracle se îndepărtează de mainstream și de ce este o problemă.
Explicarea controversei
Deci, ce anume este ingineria inversă și de ce este atât de îngrijorat de Davidson? Practic, atunci când Oracle lansează o bucată de software, ei “compila” codul sursă intern în fișiere executabile și apoi să le livreze clienților acele fișiere. Compilarea este un proces care traduce codul care poate fi citit de oameni (în limbi precum C ++ 3 Site-uri pentru a începe cu învățarea limbajului de programare C ++ 3 Site-uri pentru a începe cu învățarea limbajului de programare C ++ Învățarea programării poate fi dificilă pentru mulți, chiar și cu limbi de programare relativ ușor În timp ce Java este mai ușor de început (unde avem numeroase articole aici la MakeUseOf pentru Java, precum și ... Read More) într-o limbă binară mai densă, care poate fi alimentată direct într-un procesor de calculator.
Codul sursă al Oracle nu este public. Acest lucru este destinat să facă mai dificil pentru alții să-și fure proprietatea intelectuală. Cu toate acestea, înseamnă că este foarte dificil pentru clienți să verifice dacă codul este sigur. Aici se află în joc "decompilația". Practic, decompilația se traduce în cealaltă direcție, transformând fișierele executabile în codul care poate fi citit de om. Acest lucru nu oferă exact codul sursă original, dar oferă cod care funcționează în același mod - deși este adesea dificil de citit, din cauza pierderii comentariilor și a structurii organizaționale.
Acesta este “Inginerie inversă” despre care se referă Davidson. Oracle este împotriva sa, deoarece crede că le pune în pericol proprietatea intelectuală. Acest lucru este cel puțin puțin proastă, deoarece folosirea unui acord de licență pentru a interzice furtul IP este un pic asemănător cu utilizarea unei șabloane strict formulate pentru a preveni invazia acasă. Tipurile de persoane care vor încerca să vă cloneze produsele nu le pasă de contractele de licență 4 moduri de citire și înțelegere a unui acord de licență pentru utilizatorul final (EULA) mai ușor 4 modalități de citire și înțelegere a unui acord de licență pentru utilizatorul final (EULA) Mai mult decât atât, EULA sau acordurile de licență ale utilizatorilor finali sunt unul dintre relele vieții moderne. Acestea sunt acorduri fără sfârșit, de obicei scrise într-o minuscule imprimare. Acestea sunt lucrurile pe care le parcurgeți orbește în jos, căutând acel darnic ... Citește mai mult și adesea nu se află în jurisdicții în care ați putea aplica aceste acorduri în orice caz.
Umanitatea este sortită ... #oraclefanfic #justoraclethings pic.twitter.com/e6MOZzkkvq
- CyberAnarchist (@ Cyb3rOps) 12 august 2015
Politica afectează într-adevăr clienții legitimi. Situația este similară cu cea a jocului video DRM 6 Locuri pentru a cumpăra jocuri DRM-free [MUO Gaming] 6 locuri pentru a cumpăra jocuri DRM-free [MUO Gaming] Din moment ce am decis să nu cumpăr jocuri de la Steam, trebuie să găsesc alte surse. Multe dintre ele sunt de fapt mai rele decât Steam. Magazinul Ubisoft este încurcat și plin de DRM enervant. Arta electronică ... Citește mai mult, dar într-un fel mai ineficientă.
De ce ar dori clienții să decompileze aceste executabile? E vorba de securitate. Având acces la codul sursă vă permite să explorați problemele și problemele potențiale. Adesea, acest lucru se face folosind software care efectuează o “analiza statică a codului” - o citire automată a codului, care identifică erori cunoscute și practici de software periculoase care tind să conducă la erori. În timp ce există instrumente care analizează direct fișierul executabil, decompilarea acestuia permite analize în general mai profunde. Acest tip de analiză statică este un instrument standard al comerțului cu securitate, iar cele mai multe companii care utilizează conștiința de securitate folosesc astfel de programe interne pentru a produce coduri mai puțin susceptibile de a conține erori grave.
Politica Oracle privind acest tip de analiză este pur și simplu “nu face.” De ce? O să-i explic lui Davidson.
“Un client nu poate analiza codul pentru a vedea dacă există un control care împiedică atacul pe care îl scanează instrumentul de scanare (care este cel mai probabil un fals pozitiv) [...] Acum, trebuie să rețin că nu acceptăm doar scanarea rapoarte ca “dovada că există acolo, acolo,” în parte deoarece, dacă vorbiți de analiză statică sau dinamică, un raport de scanare nu este o dovadă a unei vulnerabilități reale. [...] Oh, și solicităm clienților / consultanților să distrugă rezultatele unei astfel de tehnici inverse și să confirme că au făcut-o.”
Cu alte cuvinte, instrumentul care a generat un rezultat nu este dovada unui bug real - și, din moment ce Oracle folosește aceste instrumente în mod intern, nu are nici un rost ca clienții să le execute pe cont propriu.
Marea problemă cu acest lucru este că aceste instrumente statice de analiză a codului nu există doar pentru a aduce bug-uri în atenția dumneavoastră. De asemenea, acestea ar trebui să servească drept țintă pentru calitatea și siguranța codului. Dacă dați codul de bază al Oracle într-un instrument de analiză statică standard industrial și scutură sute de pagini de probleme, acesta este un semn foarte rău.
Răspunsul corect, când un instrument static de analiză a codului scuipă o problemă, nu este să te uiți la problemă și să spui "oh, nu, nu provoacă un bug pentru că așa ceva". Răspunsul corect este să intri și să rezolvi problema. Lucrurile semnalate de instrumentele de analiză a codului static sunt, de obicei, practici nepotrivite în general, iar abilitatea dvs. de a determina dacă o problemă dată generează sau nu o problemă este greșită. Peste mii de probleme, vei pierde chestii. Ar fi mai bine să nu mai aveți astfel de lucruri în baza dvs. de cod în primul rând.
Iată CTO-ul lui Oculus John Carmack cântând laudele acestor instrumente de la vremea sa de la iD Software. (Serios, citiți întregul eseu, lucruri interesante).
“Am avut o perioadă în care unul dintre proiectele a luat din greșeală opțiunea de analiză statică pentru câteva luni, iar când i-am observat și am reactivat-o, au existat grămezi de noi erori introduse în timp. [...] Acestea au fost demonstrații că operațiunile normale de dezvoltare au generat continuu aceste clase de erori, iar [analiza statică a codului] ne proteja efectiv de multe dintre ele.”
Pe scurt, este posibil ca mulți dintre clienții Oracle să nu încerce neapărat să raporteze erori specifice - se întrebau de ce practicile de codificare ale Oracle erau atât de sărace încât baza lor de coduri era plină de mii și mii de probleme atât de elementare încât ele puteau fi selectate prin software-ul automat.
Sunt încă trist că Sun este plecat. Și cine a fost geniu care ia vândut lui Oracle? E ca și cum ai lăsa pe Darth Vader să-ți îngrijoreze copiii.
- Brad Neuberg (@bradneuberg) 15 august 2015
Securitate prin autocolante
Deci, ce ar trebui să facă clienții interesați de securitate, în loc să utilizeze instrumente de analiză statică? Din fericire, postarea pe blog a lui Davidson a fost extrem de detaliată pe această temă. Pe lângă susținerea practicilor generale de securitate de bază, ea face sugestii concrete pentru cei preocupați de securitatea software-ului pe care îl folosesc.
“[T] aici sunt o mulțime de lucruri pe care un client le poate face, cum ar fi, de fapt, vorbind cu furnizorii despre programele lor de asigurare sau verificarea certificărilor pentru produsele pentru care există sigilii de menaj bune pentru (sau “codul bun” sigilii), cum ar fi certificările Common Criteria sau certificările FIPS-140. Majoritatea furnizorilor - cel puțin, cei mai mulți dintre cei mari care cunosc - au programe de asigurare destul de robuste acum (știm acest lucru pentru că toți comparăm notele la conferințe).”
Acesta este un înfricoșător răspuns de la o organizație la fel de mare ca Oracle. Siguranța calculatoarelor este un domeniu care se dezvoltă rapid. Noi vulnerabilități se găsesc tot timpul și formalizarea cerințelor de securitate într-o certificare care se actualizează la fiecare câțiva ani este absurdă. Securitatea nu este un autocolant. Dacă aveți încredere că o bucată de software crucial este sigură pe baza unui sigiliu pe ambalaj, sunteți iresponsabil de prost.
Instrumentele de analiză statică se actualizează mult mai frecvent decât aceste certificări - în unele cazuri, zilnic - și elimină toate problemele pe care le ridică încă nu este suficient pentru a avea încredere în securitatea codului dvs., deoarece cele mai multe vulnerabilități sunt prea complexe pentru a fi detectate de aceste tipuri de instrumente automate.
Singura modalitate de a avea încredere în propria securitate este să vă expuneți codul în lume și să îi cereți hackerilor să încerce să le spargă. Acesta este modul în care operează cele mai importante companii de software: dacă găsiți o problemă cu codul lor, nu vă vor deranja în mod convingător pentru încălcarea acordului dvs. de utilizare. Vor plăti bani. Ei vor ca oamenii să încerce tot timpul să-și rupă software-ul. Singurul mod în care pot avea încredere că codul lor este sigur.
Aceste programe sunt chemați “bug-urilor” programe și acestea sunt cel mai bun lucru care se întâmplă la nivel de întreprindere de securitate de mult timp. De asemenea, sunt, prin coincidență, ceva pe care Davidson are opinii destul de puternice.
“Bug Bounties sunt banda noua de baieti (frumoasa aliterativa, nu?) Multe companii striga, leaga si arunca lenjerie intima la cercetatorii de securitate [...] pentru a gasi probleme in codul lor si insista ca aceasta este calea, mergi in ea: nu fac bug-uri de bug, codul dvs. nu este sigur.
Ah, bine, găsim noi 87% din vulnerabilitățile de securitate, cercetătorii din domeniul securității găsesc aproximativ 3%, restul fiind găsiți de clienți. [...] Eu nu dising bug-uri de bani, doar observând că pe o bază strict economică, de ce ar arunca o mulțime de bani la 3% din problema.”
Pentru început, pe baza rezultatelor acestor analize de cod static, s-ar putea dovedi a fi mai mult de 3% dacă le-ați plătit. Dar mă descurc. Punctul real este acest lucru: bug-urile nu sunt pentru tine, sunt pentru noi. Ai putea găsi bug-uri mai eficient dacă ai cheltuit aceiși bani pe experții de securitate internă? Probabil că nu - dar aruncăm Oracle-ul osoasă și presupunem că ar putea. Cu toate acestea, ei ar putea să ia banii, să bancheze și apoi să facă absolut nimic. În cazul în care securitatea rezultată este sub-par, clienții vor afla numai despre asta de ani de acum încolo, atunci când numerele lor de securitate socială vânt în mod misterios pe web profund Cum de a găsi site-uri ceapa activă (și de ce ai putea dori) Cum să găsească ceapă activă Site-uri (și de ce ați putea dori să) Site-uri de ceapă sunt găzduite pe rețeaua Tor. Dar cum găsiți site-uri active de ceapă? Și la care ar trebui să mergi? Citeste mai mult .
"Nu există nici o vulnerabilitate. EULA spune așa." #oraclefanfic pic.twitter.com/cUfafDCWbv
- Schuyler St. Leger (@DocProfSky) 11 august 2015
Bounties exista jumatate pentru ca sunt o modalitate cu adevarat eficienta de identificare a bug-urilor, si jumatate pentru ca sunt o forma de securitate pe care nu o poti falsifica. O recompensă de bug-uri spune credibil lumii că orice bug-uri rămase în cod sunt mai scumpe decât cele menționate.
Bounties nu există pentru confortul dvs., Oracle, ele există pentru că nu avem încredere în dvs..
Nici nu trebuie! O mulțime de companii mari permit securității să coboare pe marginea drumului, așa cum numeroasele megabreturi Țintă confirmă până la 40 de milioane de clienți americani Carduri de credit Terorismul potențial compromis confirmă până la 40 de milioane de clienți din SUA Carduri de credit potențial Hacked Target tocmai a confirmat că un hack ar fi putut compromite informațiile despre cărțile de credit pentru până la 40 de milioane de clienți care au făcut cumpărături în magazinele din SUA între 27 noiembrie și 15 decembrie 2013. Citește mai multe arată foarte clar. Sunteți cel de-al doilea mare producător de software din lume. Este absurd să ne cereți să ne luăm cuvintele că produsele dvs. sunt sigure.
Ce face Davidson corect
În corectitudine cu Davidson, există elemente de acest lucru care sunt rezonabile în context. Probabil, mulți dintre clienții lor se angajează în audituri ambițioase ale codului Oracle, fără a lua timp pentru a elimina problemele de securitate globale din sistemele lor.
“Amenințări persistente avansate” - organizațiile de hackeri calificați care încearcă să obțină acces la organizații specifice pentru a fura date - sunt cu siguranță înfricoșătoare, dar cu numerele sunt mult mai puțin periculoase decât milioane de hackeri amatori cu instrumente automate. Făcând acest tip de analize statice ale software-ului comercial atunci când nu ați adoptat măsuri de securitate de bază este mult o instalare a unei camere de panică atunci când nu aveți încă o încuietoare pe ușa din față.
De asemenea, probabil este frustrant și nefolositor să vi se aducă din nou și din nou aceeași analiză automată.
Cu toate acestea, în ansamblu, articolul dezvăluie câteva idei învechite despre securitatea sistemului și relația dintre dezvoltatori și clienți. Apreciez că munca lui Davidson este frustrantă, dar utilizatorii care nu reușesc să verifice securitatea software-ului pe care îl folosesc nu sunt problema. Iată președintele Conștientizării în domeniul securității, Ira Winkler se ocupă de aceasta:
“Oracle este o companie foarte mare și bogată, cu produse distribuite pe scară largă și utilizate pentru aplicații critice. Perioadă. Ei au responsabilitatea de a-și face software-ul cât mai puternic posibil [...] S-ar putea să existe o mulțime de fals pozitive și costuri asociate, dar acesta este un factor de [vânzarea] a multor produse software care are mulți utilizatori. Este un cost de a face afaceri. Sunt sigur că toate companiile de software au aceleași rapoarte false pozitive. Nu aud Microsoft și alții. plângându-.”
Dacă Oracle nu dorește să mai primească mii de probleme găsite de instrumentele de securitate statică, poate ar trebui rezolva mii de probleme. Dacă sunt supărați de oameni care se transformă mereu în aceleași non-bug-uri, poate că ar trebui să aibă un program adecvat de bug-uri, care să aibă mecanisme pentru a face față depunerilor repetate de non-probleme. Clienții Oracle se grăbesc pentru un nivel de securitate mai înalt și îi înșelau pentru că nu esterăspunsul corect.
Chiar dacă Oracle a scăpat și, în general, a dezmințit postul, că a fost scrisă, se descoperă o cultură de securitate profund greșită în cadrul Oracle. Abordarea Oracle asupra securității acordă prioritate protecției propriei proprietăți intelectuale asupra securității și liniștii clienților - și dacă încredințați software-ului Oracle informații critice, ar trebui să-i sperie pe Bejeezus din tine.
Tu ce crezi? Esti preocupat de filozofia securitatii Oracle? Crezi că Davidson este tratat prea aspru? Spuneți-ne în comentariile!
Explorați mai multe despre: Securitatea online, Licențele de software.