Article View: pl.comp.os.advocacy
Article #480570OS przyszłości
From: Tomasz Wójtowicz
Date: Wed, 10 Nov 2010 23:05
Date: Wed, 10 Nov 2010 23:05
59 lines
4209 bytes
4209 bytes
Chciałbym przedyskutować problem, jak powinien wyglądać system operacyjny na miarę drugiej dekady XXI wieku. Windowsy i Uniksy to systemy, których filozofia konstrukcji tkwi w latach 1970, w czasach, kiedy nie było wirusów ani crackerów. Powoduje to, że dzisiaj te systemy ledwo radzą sobie z zagrożeniami, w zasadzie co chwila przychodzą newsy, że gdzieś jest dziura i już ktoś gdzieś przez nią się włamał. Przyczyna słabości Windowsów i Uniksów tkwi m.in. w pochodzącej z lat 70. filozofii: "Jeśli aplikacja czegoś chce, musimy jej to dać". Ja bym widział zupełnie inną filozofię dla OS-a nowej generacji: 1. Przypuśćmy, że aplikacja chce otworzyć socket, żeby wysłać coś przez sieć. System operacyjny, by default, ODMÓWI tego aplikacji, o ile ta nie jest zarejestrowana w systemie jako aplikacja używająca połączeń sieciowych (np. przeglądarka www, klient poczty). Oczywiście lista takich zarejestrowanych aplikacji jest jawna i użytkownik może z niej usunąć program, który mu się nie podoba. W ten sposób nie ma już sytuacji, że każdy byle notepad może sobie słać w sieć, co mu się podoba. 2. Aplikacja może mieć swoje własne pliki i robić z nimi co chce, ale by default nie ma dostępu do plików użytkownika. Jeśli aplikacja poprosi system o dostęp do plików użytkownika, wówczas system wyświetli użytkownikowi przed nosem okienko wyboru pliku, użytkownik wybierze konkretny plik i aplikacja tylko w ten sposób dostanie uchwyt do już otwartego pliku. Tak samo, jeśli w tym okienku użytkownik zaznaczy, że chce dać aplikacji plik w trybie read only, to aplikacja tylko takim go dostanie i żadne freopen() jej nie pomoże, bo system odmówi i już. Z powyższego widać, że zwykły program, który nie jest na żadnej liście przywilejów, ma w systemie możliwości porównywalne z niepodpisanym apletem javy w przeglądarce www. Gdyby system traktował tak na dzień dobry każdą aplikację, wówczas wirusy, robaki i trojany miały by poważne problemy ze skutecznym działaniem. System miałby też większą tolerancję dla błędów, bo nawet kod podrzucony przez przepełnienie stosu wykonywał by się z tak samo ograniczonymi uprawnieniami. Oczywiście pozostaje problem aplikacji uprzywilejowanych, czyli takich które są na listach nieograniczonego dostępu do socketów czy plików użytkowników, ale przynajmniej zawęzilibyśmy słabe punkty systemów do tychże aplikacji. 3. Jeszcze jedna kwestia - np. obecnie Firefox to są dwa procesy, jeden to jest okno główne, drugi to jest kontener dla pluginów. Może należało by budować takie aplikacje, jako agregaty złożone np. z 10 procesów, z których każdy robi swoje i z pozostałymi komunikuje się przez ściśle zdefiniowane interfejsy. Np. odrębny proces tylko do obsługi http - tylko on musiałby mieć przywilej socketa. Wówczas jeszcze bardziej zawężamy punkty możliwego ataku na system - np. zhackowanie GUI przeglądarki już nic nie da, bo proces GUI nie ma uprawnień do socketa, a interfejs do procesu http jest taki, że uniemożliwi bezpośrednie kontrolowanie socketa. Napiszcie, co sądzicie o tych pomysłach. Ja wyjeżdżam na przedłużony weekend, więc ustosunkuję się do krytyki po powrocie. -- Pozdrawiam, Tomek
Technical Details
Message-ID:
<ibf8ge$9ot$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail From: Tomasz Wójtowicz <SPAMMERS_GO_AWAY@SPAMMERS.COM> Newsgroups: pl.comp.os.advocacy Subject: OS przyszłości Date: Thu, 11 Nov 2010 00:05:50 +0100 Organization: http://onet.pl Lines: 59 Message-ID: <ibf8ge$9ot$1@news.onet.pl> NNTP-Posting-Host: chello087206102117.chello.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1289430350 10013 87.206.102.117 (10 Nov 2010 23:05:50 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Wed, 10 Nov 2010 23:05:50 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; pl; rv:1.9.2.12) Gecko/20101027 Thunderbird/3.1.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit