From kloczek@wun.zie.pg.gda.pl Wed Dec 21 14:42:31 2005 Path: news.gazeta.pl!newsfeed.pionier.net.pl!news.task.gda.pl!not-for-mail From: Tomasz =?UTF-8?Q?K=C5=82oczko?= Newsgroups: pl.comp.os.linux Subject: Re: Linuks i wirusy =?UTF-8?Q?=28s=C4=85?= czy ich nie ma?) Date: Tue, 20 Dec 2005 22:36:00 +0000 (UTC) Organization: CI TASK http://news.task.gda.pl/ Lines: 229 Message-ID: References: <1rvl73-cdr.ln1@hermes.wizzard> NNTP-Posting-Host: smtp.zie.pg.gda.pl Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: news.task.gda.pl 1135118160 16898 153.19.33.3 (20 Dec 2005 22:36:00 GMT) X-Complaints-To: abuse@news.task.gda.pl NNTP-Posting-Date: Tue, 20 Dec 2005 22:36:00 +0000 (UTC) X-Organization-Notice: Organization line has been filtered User-Agent: tin/1.7.9-20050629 ("Grimsay") (UNIX) (Linux/2.6.13-1.1603sp8smp (sparc64)) X-Original-Organization: CI TASK http://www.task.gda.pl/ Xref: news.gazeta.pl pl.comp.os.linux:1148618 Małe ostrzęnie: nawet nie próbuj na ten list odpowiadać o ile nie masz do niego jakiś kontrargumetów w postać czegoś co nie byłoby AMiSięWydaje(tm) .. poprostu nawet nie odpowiem na coś co będzie podparte tylko prywatną opinią :) T.M.F. wrote: >> Jest ich nie wiele. Głównie za sprawą tego, że znakomita większość >> Linuxów dostępnych poprzez sieć publiczna to albo serwery albo stacje >> robocze ludzi o wiedzy więcej niz elementarnej (w związku z tym osoby te >> zwykle są zdolne zwrócać uwagę na wszelkie nieprawidłowości w funkcjonowaniu >> systemu na bieżąco). > > Doprawdy? A pamietasz wirusa rozprzestrzeniajacego sie przez openSSL w > wersji sprzed kilku miesiecy? Niedbalstwo i glupota nie sa cechami > systemowospecyficznymi. Efektywnie możliwość korzystania z tej konkretnej dziury był kilkudniowa. Przypadek był nawet dość szeroko komentowany (przez co jest dość dobzre udokumentowany) przez kilka firm które na bieżąco monitorowały ruch generowany przez tego robaka. Po kilku dniach z bazowych parunastu tysiecy przypadków dziennie odnotowano spadek o rząd wielkości. Powtarzam: bazowa szczytowa ilosć przypadków była rzędu dzisiątek tysięcy i spadała w kolejnych dniach *wykładniczo*. Żaden z Win robaków nie wygenerował jak na razie ruchu o takeij charakterystyce w czasie. Podody tego są doĸładnie takie jakie opisałem: wykorzystanie tej dziury wymagało procesu nasłuchujacego (serwera) który uzywał dziurawej biblioteki .. ergo: to były serwery -> serwery są dość dobrze nadzorowane. Jeszcze jakieś wątpliwości ? >> Z Linuxami zaczna sie kłopoty dopiero wtedy kiedy masa krytyczna ludzi >> którzy będą tylko używać aplikacji pracujących na tym systemie bez >> wnikania w to jak to się dzieje przekroczy pewną wartość. > > To jedno. Drugi wymog to standaryzacja. Jesli poszczegolne dystrybucje > beda bardziej ujednolicone to i wirusa bedzie latwiej. Trzecia rzecz to > popularnosc. Bzdury pleciesz. Jeżeli nie ma komu aktualizować systemó (-> systemuy nie są pod ciagłym nadzorem) to ujednolicenia dystrybucji nic tiu nie zmiania. Wrecz moze być brane pod uwagę jako czynnik powodujacy homogeniczność całej populacji czyli wiekszą podatność. Czynnik "dystrybucyjny" jaki tu użyłeś przy tym co wymieniłeś w praktyce *w ogóle* nie ma znaczenia. > Przy kilku % udziale linuksa wirus po prostu z przyczyn > czysto statystycznych trudno sie rozprzestrzenia, liczba ofiar, a wiec i > spektakularnosc ataku jest niewielka, co nie lechce ego tworcy, wiec > woli napisac cos pod windowsa. Wybacz ale znowu walisz kulą w płot. Ta dziura wymagała obecności serwera usługi która ze swojej natury musiaała być "word wide readable". >> Linux raczej już zostanie domeną ludzi którzy widza coś o tym systemie >> (bedzie systemem niszowym) i/lub proces zmian w tym obszarze nastąpi >> IMO nie szybciej niż za kilka do wręcz nastu lat .. o ile wogóle >> kiedykolwiek nasŧąpi, to i raczej nei należy się spodziewać jakiegoś >> radykalnego zwiększenia ilosći wirusów/robaków pod Linuxa. > > Nie zgodze sie. Linuks staje sie cool, trendy, jazzy i jak to zwal. IMHO > populacja cwiercmozgow stopniowo oponowywuje takze linuksa. W przeciwieństiw do Ciebie potrafię powiedzieć coś więcej ponad to że Linux jest cool/trendy/łotewer. Ludzie którzy wybrali Linuxa na obecne jego miejsce używania wybierali je nie dlatego że były cool/trendy/łotewer tylko dlatego, że: Linux nie miały opłat licencyjnych za korzystanie w czasach kiedy takei opłaty w przypadków Unixów komercyjnych osiagały swoje szczyty. Jest to fakt mający decydujace znacznie parę czy naście lat temu bo dzisiaj systemów darmowych lepszych jest więcej niż kilka a do tego mają one znacznie lepiej dopracowane wiele rzeczy. Jest wiele współczesnych zastosowań Linuxa w których uiszczanie jakichkolwiek opłat licencyjnych powoduje że przestaje się mysleć o używaniu komputera na szeroka skalę (mowa o zastosowaniach embedded czy najniższej półce zastosowań serwerowych). Fakt pierwszy: gdyby w czasie kiedy Linux zaczynał nabierac w skrzydła wiatru ludzie od BSD nie pokłócili swszczynając na kilka ciążkich lat spór z udziałem ptrawników to prawie pewne jest, że ludzie majacy wolne moce przerobowe (developerzy) więcej czasu inwestowali by nie w Linuxa tylko w systemy grupy BSD. Dzsiaj rżóne BSD mają swoją pozycję uguntowana ale Linux na pewne rynki wkroczył pierwszy i wyprzeć go z tych miejsc beðzie ciężko. Fakt drugi: gdyby Sun wcześniej otworzył źródła Solarisa na takich zasadach jak obecnie jest dostępny to znowu .. sukces Linuxa nie wyglądałby tak jak obecnie (do spółki z brakiem kłótni wokół *BSD jest prawdopodobne że dziaiaj nie mówiłoby sie wogóle o Linuxie). A .. jakbyś nie wiedział to Solaris to też w sumie rodzina *BSD. Mówiac inaczej: Linux wygrał pewne bitwy nie dlatego że był lepszy ale dla tego że inni albo sami się osłabiali albo jeszcze nie rozumieli, że rynek systemów operacyjnych właśnie się zmiania. Mówiąc jeszcs inaczej: sukces Linuxa nie ma swoich podstawowych źródeł w samym sobie. Źródło jego tkwiło w jego otoczeniu, a w zasadzie jego słabościach .. takze zwiazancyh z Win* bo napisać system który byłby lepszy pod pewnymi względami od MS Windows było kiedyś relatywnie łatwo. Dziasiaj sworzenie np. podsystemu graficznego nasŧępnej czy tej samej generacji jakie są obecnie dosŧępne jest wysoce małoprawdopodobne bo wysiiłek z tym związany musi być o conajmneij większy niż ten jaki obecnie można zauważyć wokół samego kernela Linuxa (jakoś cieżko wyobrazić sobei dzisiaj ponowna koncentrację developerów jaka miałą miejsce przy tworzeniu sie Linuxa .. w tym wypadku jak napisałem wysiłek nie moze być taki sam co wręcz duuużo wiekszy). Brak dojrzwłego GUI *blokuje* Linuxowui droge do desktopów na skalę masową. Mac OSX jest w sumie liczony wedle jako system tzreciej generacji. Właśnie zaczynają się w nim zmiany w kierunku systemół czwartej generacji. MS z zbiżającym się kolejnycm Win będzie już w pełni systemem czwartej generacji. X11 jest nadal pierwowzorem wszystkich innych później opracowanych GUI i jako taki liczy się go jako system generacji zerowej. Do obecnych kłopotów z zastojałym rozwojem GUI jakim jest X11 (spójrz sobie na to jak na x.org wygląda lista TODO :) dochodż kolejne związane z nieuporżadkowaniem tego co od lat wiadomo że jest piętą Achillesową Linuxa. Wymienić tu mozna conajmneij kilka rzeczy: - korzystanie z procfs i sysfs Przejrzyj sobie: http://blogs.sun.com/roller/page/ahl?entry=dtrace_for_linux Kilka słów komentarza: Spójrz jak dużo czasu jest marnowane na operacje plikowe zwiazane z obsługą listy procesów via procs. Każde odczytanie statusu procesu wymaga conajmniej trzech jak nei czterech przełaczeń kontekst kernela <> user space konteks na: 1) open() 2) read() 3) close() czwartym w częsci przypadków jest stat() który z wymienionej czwórki jest najbardziej czasochłonny. Spójrz na to ile czasu (najwięcej) jest marnowane na munmap(). Dlaczegfo ? Ano dlatego że w drzewku kernela istnieje taki plik który nazywa się Documentation/stable_api_nonsense.txt. Z powodu tego, że nie ma stabilnego API w kernelu nigdy nie wiadomo ile miejsca będą zajmować pewne struktóry i czy nie będą miały jakieś dodatkowych pól ? [1] Żeby to obsłużyć po przeczytaniu czegoś z procfs trzeba: a) sparsować zawartość tego co sie przeczytało ale wcześniej b) nie ma możliwości np. zadeklarowania na stosie zmiennej lokalnej po to żeby wrzucić do niej to co zostanie z kernela wyciągniete tylko trzeba zalokować używając malloc() miejsce pod co sie przeczyta za pomocą read(). W powyższym tekśdie jest ładnie wyjaśnione jak właśnie powiązenie między malloc() a munmap(). Co dla odmiany się dzieje przy działaniu np. top czy ps czy nawet netstat (są to wszystko procesy dosć intensywnie korzystające z kommunikacji via procfs) na np. *BSD czy Solarisie ? Ano struktóry opisujące połączenia czy procesy mają od dłuzszego czasu tą samą budowę (lata temu pewne rzeczy poprostu się ustabilizowały i nie ma najmniejszej potrzeby zmieniać niektórych części kodu kernela). Chcąc przeczytać np. status procesu wywołuje się pojedynczego syscalla który zwraca stróktóre czy w najgorszym przypadku tablicę struktór. Nie ma parsowania, a pamieć na odebrana struktórę można spokojnie zadeklarowac jako zmienną loklaną na stosie (odpada uciążliwość zwiazana z malloc()). Dzięki temu wykonanie ps czy top na maszynce mającej dzisiat tysiecy procesów/wątkłów to pryszcz. Przeczytanie listy połączeń na maszynce na której pracuje np. zwątkowany apache mający otwartych powiedzmy set tysięcy połączeń to także pryszcz. Proponuje popatrzęć jakie to cuda na kilju wyprawiane są w top z procps żeby przy kolejncyh cyklach zbierania statusu procesów/wątków nie było konieczne czytanie wszystkich informacji .. to jest poprostu *chore* :> Wniosek: sysfs i procfs to mówiąc w uproszczeniu .. strzał w pietę :> Jeżeli już tylko to zniknie to z Linuxa to reszta to już bułka z masłem. Dołoże jeszcze kilka rzeczy .. np. ALSA które w sumie jest broken by design (o tym możnaby napisać ze dwa, razy dłuższy tekst niż powyżej :). Kolejna sprawa to wprowadzanie do kernela rzeczy kompletnie nieprzemyślancyh jak relayfs (AKA obecnie debugfs). To jest tylko inaczje zaimplementowany LTT. W żaden sposób systemtap króry ma z tego wszystkiego + KProbes korzystać nie zbliżył się przez ostani rok do swojego pierwowzoru czyli do DTrace z Solarisa Dodam, że jeszcze z rok temu mi samemu wydawało mi się że wprowadzenie KProbez jako podstawowej ifrastróktóry do tego wszystkiego może być przełomem bo akurat ten kawałek kodu jest jak najbardziej OK (sam na lklm kilka dni przed tym jak Linus włączył to coś do swoich źródeł "gardłowałem" za możliwie szybkim włączeniem tego czegoś do główncyh źródeł co najprawdopodobniej poskutkowało :). Niecały rok temu kiedy wyszły źródła OpenSolarisa Linux zyskał silnego konkurenta. Niecały pół roku temu Andrew Morton stwierdził coś na kastał tego, że Linux zaczyna dojrzewać bo ilość patchy z nowymi rzeczami jakie lądują w patchach -mm zaczyna się wyraźnie zmniejszać. Sam fakt zaobserwował poprawnie ale IMO siedząc w TWA jakie się tworzy od lat wokół Linuxa nie przyszło mu do głowy że inni być może dali sobie spokój z przekonywaniem o słuszności pewnych zmian w kernelu Linuxa i zaczeli być może migrować do innych systemów jak MOX (nie ma zmory X11) czy Solaris (ma swoje słabości ale jego najwieksza siłą jest to że nie ma w nim takiego nagromadzenia idiotyzmów już na poziomie kernela i developmentu tegoż). Podsumowując: o obecnjej pozycji Linuxa zdecydowało parę do parunastu lat temu *nie szerokie grono użytkowników* tego systemu tylko *relatywnie wąskie grono developerów*. Tak samo będzie wyglądał potencjalny odwrót od tego systemu. To wąskie grono jest ciężkie do obserwacji na bieżąco przez to wszelkie trendy jakie w nim dominują obserwować można w sumie z dużym opóźnieniem (podst factum .. mieniejwięcej rocznym). O tym czy dzisiaj to co zauważył niedawno Morton nie było tu jakimś "mile stone" IMO będzie można się przekonać najszybciej za około rok. IMO za rok RH i okolice jest bardzo prawdopodobne że zaczną mieć mniej lub bardziej poważne kłopoty. I tu znowu powtórzy się historia .. nie dlatego, że Linux osłabnie tylko dlatego że otoczenie nie będzie czekać na pewne zmiany w Linuxie (mowa o Solarisie, Win* i MOX). Jak ktoś lubi hazard to powyższą prognozę może traktować jako zakład (ciekawe czy udałoby się namówić jakiegoś bukmachera żeby przyjął na to zakład :) [1] Jak napisałem tu kilka dni temu "Linux is like box of chocolade" :) kloczek -- ----------------------------------------------------------- *Ludzie nie mają problemów, tylko sobie sami je stwarzają* ----------------------------------------------------------- Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek@rudy.mif.pg.gda.pl*