abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 00:22 | Zajímavý článek

    Na blogu programovacího jazyka Swift byl publikován příspěvek Psaní aplikací pro GNOME v programovacím jazyce Swift. Používá se Adwaita pro Swift.

    Ladislav Hagara | Komentářů: 1
    včera 17:44 | Zajímavý software

    egui je GUI knihovna pro programovací jazyk Rust běžící na webu i nativně. Vydána byla verze 0.27.0.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Byla vydána nová verze 6.1 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.13. Thunderbird na verzi 115.9.0.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | IT novinky

    Linka STOPonline.cz v roce 2023 přijala 3700 hlášení závadného obsahu na internetu, 22 bylo předáno PČR, 23 bylo předáno ISP a 944 závadových domén zobrazujících dětskou nahotu či pornografii bylo nahráno do mezinárodního systému ICCAM, který je spravován asociací INHOPE.

    Ladislav Hagara | Komentářů: 5
    26.3. 20:44 | Zajímavý článek

    Byla publikována podrobná analýza v upstreamu již opravené bezpečnostní chyby CVE-2024-1086 v Linuxu v nf_tables.

    Ladislav Hagara | Komentářů: 0
    26.3. 18:44 | Nová verze

    Byla vydána nová verze 4.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.3. 18:22 | Nová verze

    Úkolníček Taskwarrior (Wikipedie) pro správu úkolů z příkazového řádku byl vydán ve verzi 3.0.0.

    Ladislav Hagara | Komentářů: 0
    26.3. 16:33 | IT novinky

    Společnost Canva stojící za stejnojmenným webovým grafickým editorem koupila společnost Serif stojící za grafickým editorem Affinity.

    Ladislav Hagara | Komentářů: 10
    26.3. 16:00 | Nová verze

    Byla vydána betaverze Fedora Linuxu 40, tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 16. dubna. Z novinek (ChangeSet) lze vypíchnout podporu frameworku pro strojové učení PyTorch. Fedora KDE Plasma Desktop přichází s Plasmou 6 a běží nad Waylandem. Fedora Workstation přichází s GNOME 46.

    Ladislav Hagara | Komentářů: 4
    26.3. 06:11 | IT novinky

    Před měsícem společnost OpenAI představila AI model Sora pro generování realistických videí z textového popisu. Včera zveřejnila 7 videí od umělců, kterým umožnila přístup k tomuto modelu.

    Ladislav Hagara | Komentářů: 0
    Steam
     (24%)
     (29%)
     (14%)
     (10%)
     (24%)
    Celkem 376 hlasů
     Komentářů: 9, poslední 25.3. 18:16
    Rozcestník

    Narušení bezpečnosti GitHub a Ruby on Rails

    Bezpečnost GitHub a projektů postavených nad Ruby on Rails byla narušena. Egor Homakov upozornil na vážné bezpečnostní problémy Ruby on Rails. Chyby prezentoval na projektu GitHub. Dělal si co se mu zachtělo. Zahlásil chybu z roku 3012 (I'm Bender from Future), dokázal smazat libovolný příspěvek, provádět změny v hlavní větvi, smazat celou historii projektu nebo přiřadit svůj veřejný klíč k libovolnému projektu. Více například na Posterous (také má problém). Vyjádření GitHub v oficiálním blogu.

    5.3.2012 15:37 | Ladislav Hagara | Bezpečnostní upozornění


    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Max avatar 5.3.2012 16:11 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Na rootu o tom vyšlo pěkné psaní : Aktuálně: Tak nám hackli GitHub...
    Zdar Max
    Měl jsem sen ... :(
    5.3.2012 16:15 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Myslím, že dělal si co se mu zachtělo zdaleka není adekvátní popis (a nic takového jako smazat celou historii projektu se nestalo). Ano, kdyby chtěl, mohl, ale nic fatálního neudělal.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    5.3.2012 16:31 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Ano, kdyby chtěl, mohl
    Hmmm, a wo to tady asi go, že... :-(
    5.3.2012 16:45 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    To asi těžko. Nešlo o útočníka, který se chtěl zmocnit GitHubu, ale o vývojáře, jehož námitky vůči výchozí politice Railsů nikdo nebral vážně. Teď už je vážně berou, naštěstí.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    5.3.2012 16:57 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Co asi těžko? Kdyby někdo chtěl, tak si skutečně mohl dělat, co uzná za vhodné. A mimochodem, nemyslím si, že by změna defaultních nastavení fakticky něco opravila.
    xkucf03 avatar 5.3.2012 18:52 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    To přece není chyba Railsů, ale té aplikace, ne?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.3.2012 18:57 sidik
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Jo, "not a rails problem" byla přesně reakce Rails devs. No a nakonec se ukázalo, že to je problém Rails.
    xkucf03 avatar 5.3.2012 19:29 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Viz co jsem psal na Rootu: 1, 2. Že nakonec ustoupili a opravili/upravili to, ještě neznamená, že to před tím nebyla chyba programátorů aplikace. Chovala se ta funkce podle dokumentace nebo ne?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.3.2012 19:43 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Kdepak, je to marný, marný, marný. I vývojáři pochopili až poté, co jim dotyčný, který se opakovaně snažil marně vysvětlit, jak špatné jsou defaultní hodnoty, prostě předvedl tu jejich nádheru v praxi.
    xkucf03 avatar 5.3.2012 19:51 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Možná jsem něco špatně pochopil, v tom případě budu rád, když mne někdo opraví, ale: K čemu bude dobré, když whitelist/blacklist bude výchozí chování?

    IMHO více méně k ničemu, protože tím akorát omezím aktualizace atributů, které se nikdy nemění – např. primárního klíče nebo okamžiku vytvoření entity. Ale co všechny ty ostatní atributy? U nich totiž nemůžeme zakázat aktualizace, protože někdy je upravovat potřebujeme – např. administrátor může měnit role jiných uživatelů a jejich e-maily, běžný uživatel může měnit svůj e-mail ale ne jiných uživatelů atd.

    Může ten whitelist/blacklist být vázaný (alespoň) na role aktuálně přihlášeného uživatele? Pokud ne, tak je to na nic. Ne, tohle není řešení a stejně tam musí někde ta logika (kdo co může) být zapsaná.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.3.2012 20:01 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    K čemu bude dobré, když whitelist/blacklist bude výchozí chování?
    Třeba to pochopíte tady.
    xkucf03 avatar 5.3.2012 20:17 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Ano, to jsem četl, ale neodpovídá to na moji otázku.

    Tak tedy znovu: když dám např. atribut uživatelská_role na blacklist (resp. nedám na whitelist), tak ani administrátor nebude moci měnit role uživatelů, což právě potřebujeme. A když tenhle atribut na blacklist nedáme (resp. dáme na whitelist), bude moci administrátor moci měnit role, ale uživatel taky (za předpokladu, že může měnit tu entitu jako takovou – což předpokládám že může, protože si např. může změnit jméno, příjmení, e-mail atd.).
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.3.2012 20:24 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Kdyby ses podíval na dokumentaci, zjistil bys, že právě podle role to omezit jde.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 5.3.2012 20:43 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails

    OK, tak to je fajn :-) Nicméně stejně je to málo

    1. Role nejsou všechno, může záležet na hodnotách jiných atributů, vztahu mezi uživatelem a entitou (např. vlastnictví), ročním období, úplňku atd.
    2. „Mass-assignment will only set attributes in this list, to assign to the rest of attributes you can use direct writer methods.“ – takže taková definice oprávnění stejně není neprůstřelná – když už, tak by se mi líbilo, aby to fungovalo jako v SQL databázích – když nemá uživatel příslušný GRANT, tak tabulku prostě nezmění, ani kdyby se stavěl na hlavu. Na jednu stranu ty a ostatní chcete, aby framework bránil programátorovi dělat chyby, ale on mu stejně nebrání – přitom by to bylo celkem fajn, kdyby šlo takhle deklarativně stanovit, kdo co může a tahle pravidla nešla překročit (ani tím, že programátor třeba poplete nějaké podmínky v ifu a zavolá omylem nějaký setter). Přijde mi to jako polovičaté řešení.
    3. Stále to nic nemění na tom, že programátor zavolal funkci „nastav všechny atributy podle POST parametrů“ a pak se diví, že framework skutečně nastavil všechny hodnoty podle POST parametrů – přestože v dokumentaci je to chování popsané a o této vlastnosti (něříkal bych tomu chyba) se ví zhruba od 2007/2008.
    4. Přijde mi to, jako kdyby autor aplikace napsal SQL: DELETE FROM tabulka; a pak se divil, že databázový systém skutečně smazal všechny záznamy v dané tabulce.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.3.2012 20:57 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    The perfect is the enemy of the good.

    Jinak, předpokládám, že takový megaprojekt, jako je GitHub, asi nepíše a neadminuje banda amatérů. Pokud se tohle stane jim, jakpak "bezpečné" jsou asi další projekty postavené na RoR? "Favoring convention over configuration" - fakt? Asi to chce nad těmi defaultními nastaveními v generovaném kódu příště trochu víc přemýšlet.
    5.3.2012 20:58 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Je to obecně vzato málo, ale ve spoustě případů je to dost. Já souhlasím, že The ACL is dead a deklarativní programování je pitomost, na druhou stranu výchozí chování musí být rozumné, tedy musí brát ohled na reálný svět. Mimochodem, před pár lety byla podobná aféra kolem Spring MVC :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 5.3.2012 21:47 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Takže abych to shrnul. Ve Springu bezpečnostní chyba není (alespoň co je mi známo). Chyba ale může vzniknout při jeho neopatrném používání. Doufám že se zítra nedočtu, že je závažná chyba v Oraclu. Doslechl jsem se, že umožňuje zavolat DROP SCHEMA a to může mít závažné následky na integritu dat.
    Souhlas :-)
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.3.2012 22:05 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Ta srovnání s SQL jsou nesmyslná. Kdyby nějaký databázový framework ve výchozím nastavení prováděl DROP SCHEMA někde pod třemi vrstvami abstrakce, byl by to průser. Když si to uživatel zavolá sám, je to úplně něco jiného.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    5.3.2012 22:55 Tom
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Existuje o tom, že ACL is dead, někde něco psaného na netu (ne video)?
    5.3.2012 23:08 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    To nic, to je jenom Zed So Fucking Awesome Shaw, nic důležitýho :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    5.3.2012 20:11 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Že ve výchozím stavu generují nebezpečný kód a vymlouvají se na komplikace pro začátečníky je chyba Railsů a nikoho jiného.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    5.3.2012 17:14 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    projektů postavených nad Ruby on Rails byla narušena.
    Chybí mi tam některých projektů.

    Kdejaký tutorial k Rails popisuje, že v definici modelu má být nastaveno attr_accessible, jinak hrozí přesně to, na co upozornil Homakov. Tzn. pokud ty "projekty" píše někdo, kdo si přečetl a pochopil aspoň nějaký tutorial (zjevně není případ programátorů GitHubu), tak se ho tahle záležitost vůbec netýká.

    Quando omni flunkus moritati
    5.3.2012 17:23 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Hmm, a opravdu se domníváš, že defaultní nastavení by měla fungovat tak, že si tak každý bude dělat, co chce? Jinými slovy, např. když nainstaluješ defaultní Apache, tak by každý hejhula měl přes internet optimálně dostat práva roota? :-)
    5.3.2012 17:45 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Špatný příklad (překvapivě).

    Defaultní Rails aplikace není nastavená tak, že si tam může každý dělat co chce. Do takového stavu to dostanou až špatní programátoři, kteří nevědí, co dělají.
    Quando omni flunkus moritati
    5.3.2012 18:03 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Pokud něco nenastavím, tak předpokládám, že defaultní hodnota je tzv. "sane". Takže ano, defaultně je nastavená tak, že to potom dopadne takhle.

    PHP si tím prošlo holt dřív, ale vývojáři Ruby si toho asi nevšimli, takže tu katastrofu bylo nutné zopakovat.

    https://github.com/rails/rails/issues/3453 https://github.com/rails/rails/pull/3952 https://github.com/rails/rails/pull/4062 https://github.com/rails/rails/issues/5228

    A propos, ta zoufalost je známa od roku 2007.
    6.3.2012 10:19 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Pokud něco nenastavím, tak předpokládám
    No a to je ten problém. Dokud předpokládáš, nemůžeš se divit, když něco uděláš blbě. Pokud chceš pracovat s nějakým frameworkem, měl bys vědět
    Quando omni flunkus moritati
    6.3.2012 10:27 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Ufff. Jistě. Takže když bude nějaký firewall defaultně mít ACCEPT na všechny příchozí pakety, tak to taky bude čupr bezva featura, a každý, kdo předpokládá opak, je totální blbec.
    xkucf03 avatar 6.3.2012 10:41 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Ale vždyť takhle to je. Ve výchozím stavu se přijímají všechna spojení a to i když máš v systému iptables – až když si nastavíš příslušná pravidla (typicky: zahazovat všechno a přijímat jen vybrané), tak to začne fungovat. Ale hlavně: když programátor řekne: „naplň všechny atributy objektu“ tak co to proboha má udělat jiného než naplnit všechny atributy objektu??
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    6.3.2012 11:03 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Ve výchozím stavu se přijímají všechna spojení a to i když máš v systému iptables – až když si nastavíš příslušná pravidla
    Ne, to je fakt marné. Víte, v normální distribuci jsou nastavená rozumná defaultní pravidla pro ten firewall, ať už se k tomu používá ufw, shorewall, firestarter nebo cokoliv dalšího. Ano, samotné iptables nedělají nic, to by opravdu blbej neřek.
    Ale hlavně: když programátor řekne: „naplň všechny atributy objektu“ tak co to proboha má udělat jiného než naplnit všechny atributy objektu??
    Ale hlavně vidím, že jste ani po celodenní debatě nepochopil podstatu problému, on programátor nic takového neříká, on si to dokonce ani většinou nepřeje. Akorát to holt bylo defaultně debilně nastaveno a nic ho nenutilo to nastavovat jinak.
    xkucf03 avatar 6.3.2012 11:38 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Ne, pořád jsem to nepochopil. Když programátor v RoR napíše:
    nějakýObjekt.update_attributes(…)
    tak co od toho čeká? Že to nastaví všechny atributy objektu nebo jen některé?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    6.3.2012 11:40 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Když programátor v RoR napíše
    A když scaffold generátor v RoR napíše?
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 6.3.2012 12:33 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Hmm, tak jsem si RoR nainstaloval :-) ještě jsem se tím neprokousal, tak zatím jen teoreticky: vytvořím si nějaký model a generátor mi k tomu udělá formuláře a kód pro zpracování odpovědí z těchto formulářů. V této fázi jsou ve formuláři všechny atributy a všechny může uživatel měnit, je to tak?

    Pokud ano, tak v další fázi si třeba programátor řekne, že některé atributy měnit nepůjdou a smaže je z HTML formuláře. Vážně si někdo myslí, že když ve formuláři to pole nebude, že nepůjde poslat ten původní POST, ve kterém bylo?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Heron avatar 6.3.2012 11:32 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Jsem na tom podobně jako Franta. :-) Podotýkám, že nejsem programátor v ROR, ale jestliže programátor opravdu použil fci na předání všech parametrů, tak se potom opravdu nemůže divit, že to předalo všechny parametry. A jestli je to zabezpečení dokonce i v tutoriálu, tak už je to jednoznačně chyba na straně programátorů. Nebo ta fce dle dokumentace nemá předávat všechny parametry?

    K tomu FW. Tohle má každá krabička jinak (například RouterOS má default policy na ACCEPT a ve výchozím nastavení, nebo při prázdné konfiguraci filtru to opravdu vše propustí). Je věcí administrátora, aby to nastavil. K těm "rozumným defaultním pravidlům" v distribucích. Ehm, pokaždé se do nich musí sáhnout. Pokaždé. Abych to shrnul, do každé krabičky a do každého fw se musí sáhnout bez ohledu na jeho výchozí nastavení a to konečné nastavení je tak zcela v režii administrátora.

    Nevím, jak předchozí odstavec pasuje na ruby, možná by to chtělo výchozí hodnoty nastavit tak, aby (pokud je to opravdu takový problém a ani tutorial nestačí) do toho musel pokaždé (tj při každém použití té fce explicitně definovat co předat) programátor sáhnout.
    xkucf03 avatar 6.3.2012 11:49 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Nevím, jak předchozí odstavec pasuje na ruby, možná by to chtělo výchozí hodnoty nastavit tak, aby (pokud je to opravdu takový problém a ani tutorial nestačí) do toho musel pokaždé (tj při každém použití té fce explicitně definovat co předat) programátor sáhnout.

    Pokud chce nastavit jen něco, tak může napsat kód ve smyslu:
    nějakýObjekt.setA(požadavek.getParameter("A"));
    nějakýObjekt.setB(požadavek.getParameter("B"));
    nějakýObjekt.setC(požadavek.getParameter("C"));
    Nebo použít nějaký filtr na původní sadu parametrů a filtrovaný výsledek nastavit hromadnou funkcí. Nebo použít whitelist/blacklist na úrovni objektu. Ale když nic z toho neudělá, tak mi přijde celkem přirozené, že se nastaví vše, kde se podaří spárovat jména atributů a parametrů.

    Už na začátku jsem se ptal, jestli programátor definuje ve frameworku formulář a framework všechno ostatní vygeneruje, nebo jestli si to píše ručně (tudíž tu není nějaká pevná vazba mezi formulářem a kódem, který ho přijímá a framework tudíž nemůže vědět, jaké parametry tam programátor chtěl a jaké ne) a nějaký rubista mi na to napsal, že je to ta druhá varianta. Kdyby to byla ta první, tak ano, to bych bral jako chybu frameworku, protože ten mohl vědět, která políčka jsou ve formuláři a ostatní POST parametry (podstrčené útočníkem) zahodit.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Heron avatar 6.3.2012 12:28 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    může napsat kód ve smyslu

    Tak to je jasné a o tom tamhle debata asi není. Jak tak čtu ostatní komentáře, tak mi to tak trochu připadá jako kdyby programátor chtěl použít jednořádkovou (protože je líný to vyjmenovávat, stejně jako klasická SQL "chyba" SELECT *) fci: "naplň všechno co můžeš, ale udělej to v dané situaci rozumně a bezpečně". :-D Což je už požadavek na umělou inteligenci.

    6.3.2012 12:24 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Každý, kdo o firewallu předpokládá cokoliv místo toho, aby se podíval (ať už na ten firewall nebo do dokumentace), je totální blbec. A totéž platí o dalších podobných předpokladech.
    Quando omni flunkus moritati
    little.owl avatar 6.3.2012 15:35 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Nesmysl.

    Chcete mi treba rici ze si mam nastudovat default SELinux policy a pak si napsat vlastni?

    Vy popirate princip restrictive-by-default a to je u systemu pracujicich v nebezpecnem prostredi pristup, ktery se vymsti.

    Cilem podobnych frameworku je moznost jednoduse napsat aplikaci s nutnosti minimalniho kodovani s ohledem na vyzadovanou funkcionalitu a zaroven abstrahovat nektere komplexni technologie. Pokud bude uzivatel nucen opakovane pridavat zbytecny kod v pripade nejcasteji uzivaneho scenare a studovat detaily implementace, aby neudelal snadno kritickou chybu, stoji framework za velke kulovi, protoze tu chybu v realnem svete drice ci pozdeji nekdo udela.
    A former Red Hat freeloader.
    7.3.2012 11:18 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Jestli se spoléháš na to, že máš zabezpečený systém, protože někdo někde udělal nějaký default, tak si koleduješ o malér.
    protoze tu chybu v realnem svete drice ci pozdeji nekdo udela.
    ... a bude to jenom jeho chyba
    Quando omni flunkus moritati
    little.owl avatar 5.3.2012 21:00 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Nesmysl. Defaultni nastaveni musi maximalne restriktivni. Pokud toto zasadni pravidlo bezpecnosti systemu v Rails nerespektuji, je treba se jich vyvarovat, protoze drive ci pozdeji se i zkuseny developer popali - malokdo muze sledovat vsechny implementacni detaily stale meniciho se frameworku.
    A former Red Hat freeloader.
    5.3.2012 21:04 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Nesmysl. Defaultni nastaveni musi maximalne restriktivni. Pokud toto zasadni pravidlo bezpecnosti systemu v Rails nerespektuji, je treba se jich vyvarovat
    Bohužel, asi bude lépe se jim skutečně vyhnout. Toto je totiž jejich představě o opravě toho průseru. Whitelist all attribute assignment by default. Juch! :-(
    xkucf03 avatar 5.3.2012 21:56 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    V tom případě bych doporučoval se vyhnout všem programovacím jazykům – např. v Javě můžeš udělat:
    Collections.copy(cíl, zdroj);
    A ti sprosťáci dokonce do dokumentace napsali:
    Copies all of the elements from one list into another.
    Přitom by jeden čekal, že ta metoda zkopíruje jen některé položky, nebo spadne, že?

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.3.2012 22:03 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Před Javou netřeba varovat, vyhýbám se jako upír česneku a stříbrným kulkám. :-D :-) :-D

    Jinak, komentoval jsem o kus níž (viz :without_protection), tohle se tam IIRC obojí dostalo současně ve verzi 3.1, přijde mi to tak nějak jako "uff, furt nás někdo prudí z bezpečností, tak tam dáme config.active_record.whitelist_attributes, no ale radši to defaultně zakomentujeme a kdyby to snad někdy někdo nedejbože odkomentoval, tak tam přihodíme :without_protection, aby to ten BFU nemusel moc studovat a moh to rychle vypnout. Hmmmm.
    little.owl avatar 5.3.2012 22:29 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Tady se nebavime o programovacim jazyku a jeho standardnich knihovnach, to je uplne jina rovina a Ruby je zde vicemene OK.

    Tady jde o high level framework, ktery muze byt komplexnejsi nez jazyk sam a ktery je cilene designovan pro vyvoj webovych stranek bez nutnosti znat vsechny implementacni detaily a technologie pouzite uvnitr frameworku.
    A former Red Hat freeloader.
    5.3.2012 22:03 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    No, je to o dost lepší, to whitelistování je aspoň ve výchozím stavu zapnuté, a když to člověk v té třídě uvidí (a vlézt do ní musí, bez editace toho "modelu" se nedá udělat ani obligátní blog v 15 minutách), tak ho to aspoň trkne. Kompletně tu hromadnou aktualizaci vypnout snad nechce nikdo :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    5.3.2012 22:13 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Ale tak jistě lepší, než drátem do voka :-D Jen fakt nevím, jestli nutně potřebujeme, aby tady bylo něco, v čem každej BFU udělá "blog za 15 minut". Hmmmm :-)
    Jendа avatar 5.3.2012 20:28 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    S Rails jsem nikdy nedělal, ale nešlo by to připodobnit SQL injection v PHP? To je taky „defaultní chování“, které to nějak „magicky“ neošetřilo.
    5.3.2012 21:22 l4m4
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Chování PHP při použití parameterizovaných dotazů, což je dnes normou, je v pořádku. Toto není hodnocení PHP, ale pouze toho přirovnání...
    little.owl avatar 5.3.2012 20:50 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    To ze jsou v SW chyby je celkem normalni, ale reakce vyvojaru je naprosto zoufala. Ta chyba - zde bez diskuze - je znama pet let, za tenhle back door je snad neko platil, jinak to nelze ani rozumne vysvetlit. Lepsi se drzet od Rails dale.
    A former Red Hat freeloader.
    5.3.2012 21:16 HFechs
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Nejsem na railsy žádný odborník, napsal jsem v nich pár webů, ale už s prvním sem se pídil po tom, jak tam ten blacklist udělat. Takže je to chyba převážně vývojářů. Že mohl být backlist defaultní je jiná věc (já jsem pro) - zabránilo by to lamerům programovat, ale tohle není nějaká ukrytá zrada (prostě nějaké přetečení zásobníku, nějaké neošetřeňí či podobná klasická díra), ale dokumentovaná vlastnost a programator, kteremu není divné, že se do formuláře uloží všechno, i když nezadal které sloupečky, nebo že mu nedocvakne, že si do POSTu jde sloupeček přidat je minimálně dost nedůvtipný.
    5.3.2012 21:18 HFechs
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    A v méně "inteligetních" řešeních si to přece všechno musí ošetrit sám - to je pak ten systém taky "zabugovaný"? :-D Jó pokud někdo moc spolehá na framework, tak si nabije tlamu....
    little.owl avatar 5.3.2012 21:33 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    zabránilo by to lamerům programovat,
    Kazdy dela chyby, clovek se zkusenostma mene (nebot jich uz ma za sebou plno).

    Tady jde o to, ze tvurci Rails nerespektuji princip restrive-by-default a to je z hlediska bezpecnosti cesta do pekla.
    A former Red Hat freeloader.
    little.owl avatar 5.3.2012 21:35 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    restrictive-by-default
    A former Red Hat freeloader.
    5.3.2012 21:48 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Já jim fakt nerozumím. Viz ten whitelist patch, který jsem komentoval nahoře. Vidím přesně, jak to dopadne.

    > Heleee, Frantooo, vono to s tou patchnutou verzí nějak nefunguje, co s tím?

    >> Ahaa, ukáž... hmmm, divný, no zkus to takhle:
    Model.new(params[:model], :without_protection => true)
    > Jeeee, supeeer, už to fičí, dík!

    Proč tam někdo takovéhle pakárny implementuje, jde fakt mimo mě. Opravdu by byl takový problém, kdyby programátor musel "zvednout zadek" a udělat tohle?
    class Model < ActiveRecord::Base
      attr_accessible :foo, :bar, :baz, :as => :admin
      attr_accessible :foo, :as => :bfu
    end
    
    ...
    
    Model.new(params[:model], :as => :bfu)
    little.owl avatar 5.3.2012 22:01 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Nevim, muze je palit otazka zpetne kompatibility a proto nechteji byt radikalni, ale nedokazi to posoudit neb Rails nepouzivam.
    A former Red Hat freeloader.
    5.3.2012 22:16 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Já už taky moc ne. A vůbec, už mi tak nějak všechny ty webové aplikace lezou krkem. Je tady vůbec něco rozumného, v čem se to dá dělat? PHP už nemůžu ani vidět, Ruby teda taky nic moc, na Javu ani s třímetrovou tyčí, hmmm, babo raď.
    5.3.2012 22:24 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Perl :D
    5.3.2012 22:30 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Dík!
    $ perl -le'/(??{s!!!})/'
    Neoprávněný přístup do paměti (SIGSEGV)
    
    :-D :-)
    little.owl avatar 5.3.2012 22:42 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    perl -le'/(??{s!!!})/'
    Segmentation fault (core dumped)
    Tak, tak, to je zname! :-D :-D
    A former Red Hat freeloader.
    5.3.2012 23:34 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails

    Ano, je to známé:

    Because perl's regex engine is not currently re-entrant, delayed code may not invoke the regex engine either directly with "m//" or "s///"), or indirectly with functions such as "split".
    little.owl avatar 5.3.2012 22:41 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Webarinu nedelam, pracuji na RTOS a embedded systemech, ale obcas neco ulipu v Djangu - treba rozhrani pro SAT-based testovani - nastesti to neni vystavene ven.
    A former Red Hat freeloader.
    5.3.2012 22:46 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    nastesti to neni vystavene ven.
    :-D :-) Potřebuju nějakej monitor se stěračem, dnes už utírám potřetí! :-D :-)
    little.owl avatar 5.3.2012 22:53 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Budiz vam prano.

    ;-)
    A former Red Hat freeloader.
    5.3.2012 23:04 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Co třeba Ocsigen nebo Yesod?
    5.3.2012 23:09 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    To už radši Opa.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    6.3.2012 00:18 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Osobně preferuji OCaml, neboť má lepší systém modulů a lze tam používat camlp4.
    little.owl avatar 6.3.2012 00:47 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    +1
    A former Red Hat freeloader.
    6.3.2012 10:32 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Osobně preferuji méně obskurní jazyky, mimo jiné i proto, že chybová hlášení z programů psaných programy, které jsou napsané jinými programy, jsou zoufale nepoužitelná.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 6.3.2012 10:44 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    Náhodou, takové pěkné chyby, člověk si i počte :-)
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.http$colon$$slash$$slash$www$dot$w3$dot$org$slash$1999$slash$xhtml$colon$template$dot$11()
            at GregorSamsa.applyTemplates()
            at GregorSamsa.applyTemplates()
    |#]
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.3.2012 23:19 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    To vypadá opravdu drsně. :-) To je asi nadlouho, anžto ani jeden z jazyků mi nic neříká, nicméně ten ocsigen server určitě někde pokusně zkusím zprovoznit, koukám, že v Debianu je balíček, tak by snad pod Mintem neměl být problém. ;-)
    xkucf03 avatar 5.3.2012 22:02 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Narušení bezpečnosti GitHub a Ruby on Rails
    To mi přijde ještě víc matoucí – jestliže vývojář v tomto jazyce/frameworku nečte* dokumentaci, tak se koukne na tenhle kód a má pocit, že je to zabezpečené – a pak někde nastaví nějaké atributy individuálně, bude si myslet, že se to neprovede (vždyť přece definoval, že daná role nemá práva měnit tenhle atribut) nebo že to vyhodí bezpečnostní výjimku, ale nic z toho se nestane a projde to, protože tahle oprávnění fungují jen při hromadném nastavování. Prostě falešný pocit bezpečí.

    *) kdyby ji četl, tak by věděl, aplikace touhle chybou netrpěly a celé tahle aféra by se nekonala
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    Založit nové vláknoNahoru


    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.