🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #16876

Re: Groovy

#16876
From: Piotr Kobzda
Date: Thu, 17 May 2007 00:55
121 lines
7072 bytes
Seweryn Habdank-Wojewódzki wrote:

> To znaczy właśnie nie kapuję jakie to jest bezpieczeństwo i przez czym?

[...]

> Rozumiem. Ale nadal nie rozumiem zagrożenia, które teoretycznie coś może
> wnieść do C++ z zewnątrz. Pomijam kwestię, że Ty możesz wnieść jakieś
> śmieci w swoim kodzie. Chodzi mi o to co może zrobić ktoś z zewnątrz?

A czym byłoby "zewnętrze" dla Ciebie, gdybyś miał oprogramować np. taką 
usługę:
http://www.4java.ca/sharedTomcat.htm?PHPSESSID=acec7b605c17dd3400279ad54fec91d1

?

(Żeby było jasne, nie reklamuję tego serwisu i nie wiem jak to zrobili, 
sądzę jednak, że całkiem sprawnie dałoby się sporo takich "shared" 
klientów na jednym Tomcacie hostować)


>> Żaden ze znanych mi systemów na taką swobodę nie pozwala.
> 
> DOS? Systemy, a w zasadzie loadery programów na małe procki.

OK, może przesadziłem.

>> Tu mówimy jednak o dość precyzyjnych zabiegach, które na poziomie C++ są
>> możliwe. Na poziomie platformy Javy (oczywiście, nie tylko) nie.
> 
> Nie; czy trudno?

No zważywszy, że JDK to raptem 6,5 MLOCów, powiedzieć kategoryczne nie 
to oczywiście nonsens...  I choć lista dotychczas wykrytych bugów w 
zabezpieczeniach Javy jest zadziwiająco krótka (mam nadzieję, że już tam 
trafiłeś), to jednak każdy ze zgłoszonych alertów (na dziś 342 w 
"category:security" od roku 2002), to potencjalna szansa zrobienia "a ku 
ku", więc na "na pewno nie" nie licz u mnie.

> To jest różnica. Bo jeśli trudno, to złośliwiec też Ci
> sypnie aplikację.

Możliwość jest, nieporównywalnie mniejsza jednak, niż w przypadku 
ewidentnych dziur.

Bezpieczeństwa 100% nic nie jest w stanie Ci zaoferować.  Javowe jest 
jednak IMHO na tyle dobre, aby przestać się jego łamaniem w normalnych 
warunkach zajmować.


> Poza tym cały czas zapominasz o bardzo prostym fakcie, że języki wysokiego
> rzędu nie sa tak wszędobylskie jak C i C++.

Nie zapominam.

> Zauważ, że na komórki jest JVM ME, ale nie jest tak, że ona eliminuje
> system. Zanim odpalisz JVM, to starują ci normalne programy napisane w C i
> C++. Szczególnie silny tu jest Symbian OS, który ma całkiem dobry
> kompilator C++ - nie znam jego biblioteki standardowej, ale komnpilator
> jest ok jak na taki mały sprzęt. Poza tym JVM ME to nie za dużo potrafi.

No coś Ty?  To co trzeba robić w tych środowiskach, to zupełnie poza 
tematem, tam to nawet do zmiennoprzecinków do niedawana nie było, jak 
myślisz, dlaczego?  Myślisz, że w obliczu ograniczeń platformy, 
dodatkowa ochrona kodu, która przecież za darmo nie jest, to rzecz 
priorytetowa?


> A ostatnia sprawa to kwestia wykorzystania naturalnych zasobów danego
> systemu/sprzętu. JVM dość unifikuje systemy i sprzęt (z tym są kłopoty), bo
> JVM w ogóle ma problem ze sprzętem, ale to pominę skupię się na samym
> systemie.

Java właśnie po to powstała, aby unifikować te wszystkie sposoby.  Co 
nie jest może zawsze pożądane, niemniej jak się okazuje, w wielu 
przypadkach jest wygodne.

> Są rzeczy specyficzne dla windowsa i dla unixa, i jak chcesz je
> użyć, to szybko kończysz na JNI, czy się mylę?

Bardzo się mylisz.  Większość kodu pod JVMy, przynajmniej wedle moich 
danych, pisze się dziś w Javie.

Natyw to ostateczność -- dość rzadko stosowana.  I to nawet nie ze 
względu na brak bezpieczeństwa, ale z uwagi na to, że JNI to nieco 
toporny interfejs, choć niestety, jak dotąd, jedyny porządnie 
działający.  Generelanie do nietypowych potrzeb.

> 
> Np. użycie użądzeń unixowych, czy typowych raw unix socket, albo sprawa
> pracy z ramdyskami. ale nie izolowanymi od systemu. Bo w JVM możesz zrobić
> ramdysk i możesz tam nawet zapuścić kompilację kodu i w ogóle różne rzeczy.
> Jednak ZTCW do tego ram dysku nie ma dostępu żaden inny proces systemowy.
> Albo dalej kazdy system ma swoje komendy wywłaszczające zadania. Jak to
> użyć? Raz z kolegą na linuksie odpaliliśmy sterownik który pracował w cyklu
> 100kHz, czyli odczyt danych, wyznaczenie sterowania, przekazanie sterowania
> na zewnątrz zabierało 10[us]. Ale po każdym takim teście sterowania, które
> nie było wykonywane a muzo, tylko na żywym sprzęcie (drivery do lasera),
> zegar systemowy czasu rzeczywistego (dla RTlinuxa) opóźniał się o czas
> eksperymentu. Już nie mówię o innych usługach systemu, które wisiały. Itd.
> itp. są rzeczy których Java nie oferuje, bo nie powinna. A ja właśnie
> takich spraw dotykam i dlatego wolę mieć niebezpieczny jezyk C++ czy C,
> który kiedy potrzebuję usłuży mi nisko osadzonymi w systemie usługami.

I do tego, ja też bym Javy, o której mówimy nie użył.

Musiałaby to być implementacja JSR-1, np. JamaicaVM 
(http://www.aicas.com/jamaica.html) -- choć co do jej jakości, musiałbym 
się najpierw przekonać, a nie mam jak dotąd takich potrzeb, może więc Ty 
ją wypróbujesz?  (W ewentualnych wynikach jestem oczywiście zainteresowany)

A!  I tu już, jak w każdym zresztą zaufanym sofcie, ochroną bym się 
najmniej przejmował.


Nadal jednak podtrzymuję zdanie, że mieć ochronę, która w razie potrzeby 
jest niezawodna (nawet jeśli tylko w teorii), jest lepiej, niż mieć ją 
dziurawą (co wykazane zostało).


piotr
Technical Details
Message-ID: <f2g95t$97q$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <f1tdl6$2s4$1@inews.gazeta.pl><f1todc$8s5$1@inews.gazeta.pl> <f1tss8$iq3$1@inews.gazeta.pl> <f1u2qu$1pm$1@inews.gazeta.pl> <1178922714.630317.141500@y80g2000hsf.googlegroups.com> <f22v79$3gu$1@inews.gazeta.pl> <f246sk$b8s$1@news.vectranet.pl> <f24i4s$6pe$1@inews.gazeta.pl> <f24s89$vs3$1@news.vectranet.pl> <f24u05$nnf$1@inews.gazeta.pl> <f24uor$39e$1@news.vectranet.pl> <f2586r$asf$1@inews.gazeta.pl> <f26fc9$iu6$1@news.vectranet.pl> <f287ie$354$1@inews.gazeta.pl> <f298ag$b63$1@news.vectranet.pl> <f29mdl$m5f$1@inews.gazeta.pl> <f2aa6n$cp8$1@news.vectranet.pl> <f2ad64$auv$1@inews.gazeta.pl> <f2afqc$i98$1@news.vectranet.pl> <f2ahqh$6n8$1@inews.gazeta.pl> <f2ara9$dj2$1@inews.gazeta.pl> <f2at2s$tu6$1@news.vectranet.pl> <f2au65$lsi$1@inews.gazeta.pl> <f2f094$s7p$2@inews.gazeta.pl> <f2fhdn$mq3$1@news.vectranet.pl> <f2fq3r$ifq$1@inews.gazeta.pl> <f2fudp$4kd$1@news.vectranet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Piotr Kobzda <pikob@gazeta.pl>
Newsgroups: pl.comp.objects
Subject: Re: Groovy
Date: Thu, 17 May 2007 02:55:24 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 121
Message-ID: <f2g95t$97q$1@inews.gazeta.pl>
References: <f1tdl6$2s4$1@inews.gazeta.pl><f1todc$8s5$1@inews.gazeta.pl> <f1tss8$iq3$1@inews.gazeta.pl> <f1u2qu$1pm$1@inews.gazeta.pl> <1178922714.630317.141500@y80g2000hsf.googlegroups.com> <f22v79$3gu$1@inews.gazeta.pl> <f246sk$b8s$1@news.vectranet.pl> <f24i4s$6pe$1@inews.gazeta.pl> <f24s89$vs3$1@news.vectranet.pl> <f24u05$nnf$1@inews.gazeta.pl> <f24uor$39e$1@news.vectranet.pl> <f2586r$asf$1@inews.gazeta.pl> <f26fc9$iu6$1@news.vectranet.pl> <f287ie$354$1@inews.gazeta.pl> <f298ag$b63$1@news.vectranet.pl> <f29mdl$m5f$1@inews.gazeta.pl> <f2aa6n$cp8$1@news.vectranet.pl> <f2ad64$auv$1@inews.gazeta.pl> <f2afqc$i98$1@news.vectranet.pl> <f2ahqh$6n8$1@inews.gazeta.pl> <f2ara9$dj2$1@inews.gazeta.pl> <f2at2s$tu6$1@news.vectranet.pl> <f2au65$lsi$1@inews.gazeta.pl> <f2f094$s7p$2@inews.gazeta.pl> <f2fhdn$mq3$1@news.vectranet.pl> <f2fq3r$ifq$1@inews.gazeta.pl> <f2fudp$4kd$1@news.vectranet.pl>
NNTP-Posting-Host: xdsl-2843.zgora.dialog.net.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1179363325 9466 81.168.239.27 (17 May 2007 00:55:25 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Thu, 17 May 2007 00:55:25 +0000 (UTC)
X-User: pikob
In-Reply-To: <f2fudp$4kd$1@news.vectranet.pl>
User-Agent: Thunderbird 1.5.0.10 (Windows/20070221)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit