Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Fen 03. 04. 2012, 15:19:20
-
Ahoj, máte někdo zkušenosti s hackováním Java Virtual Machine? Zajímám se o to, protože potřebuji ukládat citlivá data v klientské aplikaci a tato data by měla zůstat nezměněna (měnit je může pouze klientská aplikace). Lze se nabourat do JVM a přepisovat její paměť?
Byl bych rád za osobní zkušenosti i za doporučenou literaturu.
-
Ked ma utocnik roota, tak si nepomozes. Ked ho nema, tak by bolo dobre, aby nemal ani uzivatelsky ucet uzivatela, pod ktorym bezi JVM - teraz neviem, ako vyzera ne-hardened kernel bez dalsich LSM, ale je mozne, ze to dovoluje, aby jeden proces cital/prepisoval pamat ineho procesu toho isteho uzivatela.
Dalej ta proti utoku chrani system alebo JVM. Diera v lubovolnej z tychto 2 veci moze dovolit (napriklad pomocou buffer overflow) prave to, co nechces. To iste moze nastat aj pri chybe v logike aplikacie.
Takze riesenie je - pouzivaj aktualne verzie, ale na 100% bezpecnost sa radsej ani tak nespoliehaj. Ak si chces trochu pomoct, tak nasad napriklad Hardened Gentoo alebo OpenBSD, istotu ale ani tak mat nebudes.
-
Ahoj, máte někdo zkušenosti s hackováním Java Virtual Machine? Zajímám se o to, protože potřebuji ukládat citlivá data v klientské aplikaci a tato data by měla zůstat nezměněna (měnit je může pouze klientská aplikace). Lze se nabourat do JVM a přepisovat její paměť?
Byl bych rád za osobní zkušenosti i za doporučenou literaturu.
Jak ma pocitac FireWire, tak je veskera snaha marna :-)
http://www.mjmwired.net/kernel/Documentation/debugging-via-ohci1394.txt
-
Do JVM se lze nabourat jako do každé aplikace. Otázka je, proti komu chcete data chránit. Pokud před uživatelem, tak to hodně štěstí. Pokud před viry, tak pořiďte antivirus. Pokud před hackerem ze vzdáleného stroje, tak řešení je citlivá data nedržet v paměti, pokud nejsou potřeba.
-
Ak das niekomu software k uzivaniu, ma nad nim plnu kontrolu.
Otazka ale nedefinuje o co konkretne ide, daj hint.
-
Pokud to nemusi byt pure Java, tak co to schovat do .so nebo .dll s volat s pouzitim JNI? Tim se muze dostatecne snizit riziko rejpani se zakaznika v aplikaci.
-
Pro podrobnější nastavení bezpečnosti v JVM se dá použít http://docs.oracle.com/javase/7/docs/api/java/lang/SecurityManager.html (http://docs.oracle.com/javase/7/docs/api/java/lang/SecurityManager.html).Ale pokud má někdo roota, tak si to může vypnout. Nebo pokud nechceš aby se někdo rýpal v aplikaci, tak použít nějaký obfuskátor http://proguard.sourceforge.net/ (http://proguard.sourceforge.net/).
Pokud to nemusi byt pure Java, tak co to schovat do .so nebo .dll s volat s pouzitim JNI? Tim se muze dostatecne snizit riziko rejpani se zakaznika v aplikaci.
.
Tím se ale nezvýší bezpečnost, protože dynamické knihovny se dají dekompilovat stejně snadno jako javovské class soubory.
-
Děkuji za odkazy i inspiraci. Zřejmě je špatný nápad snažit se uchovávat data u uživatele.