Wednesday, July 25, 2012

Seccomp (SECure COMPuting with filters)

Trochę ponad pół roku temu pisałem o nowym projekcie zaimplementowanym we FreeBSD 9.0 noszącym nazwę Capsicum, który jest swego rodzaju mechanizmem sandbox framework.

W tamtym czasie w dostępnych publikacjach Capsicum było porównywane do (między innymi) SELinux i seccomp, jako potencjalnie równoważnych technologii w systemie Linux. Seccomp należy do mniej znany rozwiązań, co wynika z jego mniejszych możliwości. Wygląda jednak na to, że w najbliższym czasie ma się to zmienić.

Parę dni temu ukazała się nowa wersja jądra Linux 3.5. Jedną z nowości jest "Seccomp-based system call filtering", czyli rozszerzenie mało używanego mechanizmu seccomp.

Seccomp powstał w 2005 i początkowo miał ograniczać wywoływanie systemowych funkcji przez programy użytkowników do czterech podstawowych: read(), write(), exit() i sigreturn(). W późniejszym czasie Google zadeklarował implementacje swojej przeglądarki Chrome dla systemu Linux. W poszukiwaniu mechanizmów, które mogłyby pozwolić na tworzenie mechanizmów sandbox w przeglądarce Chrome na platformie Linux Google zainteresował się seccomp. Jednak wtedy był on zbyt prymitywny i trochę nadrabiano to przy pomocy SELinux. Nie znaczy to jednak, że Google zrezygnował z seccomp. Rozszerzyli jego funkcjonalność dodając tzw. "mode 2", który pozwalał definiować listę funkcji systemowych, których nie wolno było wywoływać dla procesu.

Nie było to jeszcze zadowalające rozwiązanie, bo o ile jądro kontrolowało operacji procesu np. zapisywanie do pliku, to nie miało żadnej kontroli nad tym do jakiego pliku program mógł zapisywać. Czyli nie kontrolowało kontekstu operacji, oczywiście poza innymi mechanizmami takimi jak prawa do plików.

Tak więc mechanizmem rozwiązującym ten problem jest nowo dodany mechanizm seccomp z filtrami. Powstała koncepcja aby mechanizm seccomp rozszerzyć o możliwość definiowania filtrów, jak w zaporze ogniowej, z tą różnicą że ta dotyczy dostępu do funkcji systemowych a nie socket-ów. Porównanie trafne, bo do implementacji użyto już istniejący i dopracowany pod katem optymalizacji mechanizm filtrowania pakietów BPF (Berkeley Packet Filter).

Teraz seccomp może kontrolować nie tylko typ operacji ale i ich zakres, np. pozwalać na zapis tylko wtedy gdy celem jest standardowe wyjście "sys_write: (fd == 1)". Projekt Chrome zaimplementował już mechanizm snadbox przy użyciu nowej biblioteki libseccomp. Obecnie znane projekty, które już wdrożyły nowe rozwiązanie to vsftpd 3.0.0 oraz OpenSSH 6.0. 17 lipca o implementacji seccomp filtering w swoim projekcie poinformował również deweloper projektu systemd.


Pisząc o seccomp ciągle używa się stwierdzenia "sandbox". Jednak w oficjalnej dokumentacji w prost jest powiedziane, że mechanizm filtrowania funkcji systemowych to nie sandbox. Tak samo sprawa ma się do porównywania z Capsicum i SELinux. Jeżeli chodzi o ten pierwszy to porównanie jest jak najbardziej prawidłowe, ponieważ oba mechanizmy są używane przez programistów w kodzie  programu. Ale Capsicum tworzy swego rodzaju hermetyczne środowisko, a seccomp jest filtrem funkcji systemowych. Efekt jest tylko podobny. SELinux z kolei jest bardziej szerszym rozwiązaniem, dotyczy całego systemu i co najważniejsze jest używanym docelowo przez administratorów. Można go użyć nawet do programów, które nie maja zaimplementowanych żadnych mechanizmów obronnych, albo ograniczyć je jeszcze bardziej tylko do funkcjonalności, z której rzeczywiście korzystamy. W przypadku gdy administrator nie korzysta z SELinux najważniejsze procesy starają bronić się same przez zaprogramowane w nich ograniczenia. Jak widać ma to sens i zysk "ekonomiczny".


Seccomp jest kolejnym mechanizmem zwiększającym szczelność siatki ochronnej oferowanej przez system Linux dla uruchamianych programów.


Więcej informacji:
http://lwn.net/Articles/475043/
http://outflux.net/teach-seccomp/
http://lwn.net/Articles/441232/
http://lwn.net/Articles/332974/



Monday, July 9, 2012

Nowości w Red Hat Enterprise Linux (RHEL6 i RHEL7)

Wideo przedstawia rozszerzenia wprowadzone do obecnie najnowszej gałęzi RHEL6 oraz do nowej gałęzi RHEL7, której pierwsza beta jest zapowiadana na pierwszą połowę 2013 roku.

Omawiany jest również sam cykl rozwoju systemu Red Hat Enterprise Linux. Z sesji dowiemy się na jakie technologie stawia Red Hat lub jakie proponuje w postacji TP (Technology Preview).

Treść prezentacji jest dostępna również w formacie PDF:
RED HAT ENTERPRISE LINUX ROADMAP HIGHLIGHTS





Wednesday, June 6, 2012

Nowe rozszerzenie Multipath w TCP

Ilość urządzeń, za pomocą których łączymy się w sieci ciągle się zwiększa, zwiększa się również ilość technologi używanych w tych urządzeniach do nawiązywania łączności w zależności od miejsca przebywania.
Najlepszym przykładem są nowe tablety. Poza domem możemy korzystać z połączenia poprzez 3G, po dotarciu do domu zaczynamy korzystać z WiFi.

Problem polega na tym, że po rozłączeniu się przez modem 3G tracimy wszystkie nawiązane sesje TCP. Przed nawiązaniem nowego połączenia przez WiFi musimy zestawiać nowe sesje, ponieważ poprzednie zostały zerwane w wyniku zmiany łącza. Dzieje się tak ponieważ protokół TCP został zaprojektowany jako połączenie "end-to-end", a końcami tego połączenia są dwa interfejsy/adresy IP sieciowe. Gdy przełączamy się między 3G a WiFi to zaczynamy korzystać z innego interfejsu/adresu IP i połączenie trzeba nawiązać ponownie.

Jak wygląda rozwiązanie tego problemu przez mechanizm MPTCP przedstawia poniższe wideo.



Dla bardziej ciekawskich polecam obejrzeć całą sesje poświęconą MultipathTCP.



Ponadto polecam stronę implementacji mechanizmu Multipath w jądrze Linux: http://mptcp.info.ucl.ac.be/

Monday, June 4, 2012

ARM może okazać się rewolucją w serwerowni i nie tylko

Wszyscy zainteresowani sprzętem komputerowym znają dwóch głównych producentów procesorów, jakimi są Intel i AMD. Choć ich implementacje są różne zachowują przeważnie zgodny standard dla komputerów biurkowych, czyli tzw. PC-tów. Wyścig między firmami Intel i AMD trwa od wielu lat w wyniku czego użytkownicy otrzymują coraz więcej. Choć architekci nowych układów za każdym razem posuwają się o krok dalej, to nadal nie mogą przestać troszczyć się o wsteczną kompatybilność i zrobić coś inaczej - bo na tym przecież polega rewolucja. Tak więc szansa dla innej architektury nadal gdzieś drzemie, pytanie tylko kiedy się obudzi.

Jak wiemy poza wspomnianymi architekturami firm Intel oraz AMD istnieją również inne, chociażby PowerPC jeszcze do 2006 roku używane w komputerach Macintosh. Wtedy zostały zastąpione przez wielordzeniowe i bardziej wydajne procesory Intel. PowerPC reprezentuje RISC (Reduced Instruction Set Computing), która od koncepcji CISC (Complex Instruction Set Computer) w Intelu różni się tym, że procesor posiada tylko minimalną ilość podstawowych instrukcji, w wyniku czego jego budowa jest prostsza, a cena mniejsza. Związane jest z tym więcej korzyści, jednak jak wszystko ma swoje plusy i minusy. Ostatnio, zaleta ARM jaką jest mały pobór energii i cena zaczynają zyskiwać na wartości.

Procesory ARM cechują się bardzo małym zużyciem energii, dlatego odniosły wielki sukces w urządzeniach mobilnych, takich jak smartfony i tablety. Nowe tablety mogą pracować do 10 godzin na baterii, a system Android opracowany na bazie Linux jest najpowszechniejszym systemem operacyjnym dla tych urządzeń. Branża urządzeń mobilnych rozwija się w zawrotnym tępię, a deweloperzy innowacyjnych dystrybucji Linux zaczynają zastanawiać się nad tym, czy architektura ARM może przynieść korzyści poza platformą urządzeń mobilnych.

Pojawiają się już takie inicjatywy jak 'ARM jako podstawowa architektura dla dystrybucji Fedora'. Dla projektu zaowocowałoby to przypływem ogromnej ilości nowych użytkowników i wzrostem popularności. Dzięki taniemu kosztowi architektury ARM komputery z systemem Fedora byłaby bardziej dostępna w edukacji i wszędzie tam, gdzie wcześniej koszty stanowiły barierę. Niewielka cena za sprzęt świetne współgrałaby z nieodpłatną dostępności systemu Linux. Jak czytamy we wskazanym tekście "sukces procesorów ARM powinien być poważnym ostrzeżeniem dla architektury x86". Ponadto ARM posiada już 64-bitową wersję procesora i mógłby zastąpić architekturę x86_64. Jeżeli ktoś chciałby sobie już wyobrazić serwery z procesorami ARM to wcale nie musi tego robić, otóż one już są, wystarczy zobaczyć.

Najistotniejsze w tym wszystkim jest chyba to, aby zrozumieć, że nowe podejście nie ma na celu zastąpienie obecnego, ale jego rozszerzenie o nowe możliwości. Co do szczegółów to nie ma co opisywać, to trzeba zobaczyć. Jako pierwszy polecam projekt HP Project Moonshot.





Dla zainteresowanych specyfikacją techniczną prezentowanej platformy serwerowej podaje link: http://www.calxeda.com/products/energycards/quadnode

HP nie jest jedynym z pośród największych producentem serwerów, który zainteresował się architekturą ARM i zaproponował już swoje rozwiązania w nowym trędzie. Kolejnym pionierem jest firma Dell, która również zaprojektowała już swoje rozwiązania dla energooszczędnych procesorów ARM.

Jak napisał autor artykułu "Dell ARMs up for hyperscale servers" w portalu The Register, Dell nie projektowałby serwerów bazujących na architekturze ARM, gdyby nikt ich nie chciał.



Co ciekawe rozwiązanie to będzie oferowane z systemem operacyjnym Ubuntu 12.04 LTS w jakiejś komercyjnej odmianie. Więcej szczegółów na temat projektu Copper firmy Dell można znaleźć pod adresem: http://content.dell.com/us/en/enterprise/d/campaigns/project-copper

Rozwój technologii Cloud i w związku z tym wzrost zapotrzebowania na serwery sprawił, że firma Canonical również jest bardzo zainteresowana prezentowaną platformą serwerową. Mark Shuttleworth, człowiek który 'rozkręcił' obecnie najpopularniejszą dystrybucje systemu GNU/Linux uważa że architektura ARM "zatrzęsie" platformą serwerową.





Jeżeli chodzi o wykorzystanie możliwości procesorów ARM w komputerach domowych to jak widać na poniższym wideo (połączenie projektu Raspberry Pi i Fedora) dopiero pracuje się nad takimi wariacjami. Przyznać jednak trzeba, że projekt jest bardzo ciekawy biorąc pod uwagę fakt, że użyta konstrukcja (płytka) kosztuje trochę ponad 100 PLN.



Czy platforma ARM w połączeniu z Open Source przyniesie zmiany o jakich nam się nawet nie śniło? Czas pokaże, w każdym bądź razie na pewno ARM ugruntuje swoją pozycje jako lider rozwiązań energooszczędnych.

Wydaje się że właśnie rozpoczął się wyścigu o miano lidera w rozwiązaniach implementacyjnych architektury ARM. Jeżeli chodzi o rozwiązania softwarowe, to na dzień dzisiejszy Canonical jest na przodzie, ale Projekt Fedora depcze mu po piętach.

Więcej informacji:
http://nullr0ute.com/2012/03/arm-hardware-now-and-the-not-so-distant-future/
http://www.arm.com/community/software-enablement/linux.php
http://www.theregister.co.uk/2011/10/28/arm_holdings_arm_v8/
https://www.linux.com/learn/tutorials/582501-tiny-pluggable-linux-arm-computers-are-red-hot
http://www.debian.org/ports/arm/
http://wiki.freebsd.org/FreeBSD/arm

Friday, June 1, 2012

GPW podało datę przejścia na nowy system notowań UTP

Giełda Papierów Wartościowych w Warszawie już rok temu informowała o planach wprowadzenia nowego systemu transakcyjnego jakim jest UTP (Universal Trading Platform), który ma zastąpić obecny system zwany Warset.

GPW w dzisiejszym komunikacie[1] informuje:
"W listopadzie br. polski rynek kapitałowy czeka przełomowa zmiana technologiczna i jakościowa, jaką będzie wdrożenie nowego systemu transakcyjnego na warszawskiej giełdzie. UTP (Universal Trading Platform), zakupiony przez GPW od NYSE Euronext, jest systemem transakcyjnym, który spełnia najwyższe światowe standardy w dziedzinie technologii i obecnie jest wykorzystywany na giełdach w Nowym Jorku, Paryżu, Lizbonie, Amsterdamie i Brukseli. W listopadzie do tej grupy dołączy giełda warszawska, zyskując dostęp do globalnej infrastruktury technologicznej, z której od lat korzystają inwestorzy z całego świata.
...
W porównaniu z Warsetem nowy system transakcyjny giełdy będzie szybszy, bardziej wydajny i skalowalny. Zwiększy się także jego przepustowość, co umożliwi obsługę nowych, niedostępnych dotychczas typów zleceń oraz pozwoli na uruchomienie nowych usług związanych z zawieraniem transakcji"


Wydarzenie to jest dosyć hucznie reklamowane przez GPW, o czym może świadczyć ten film.



Pozostaje jeszcze pytanie, co to ma wspólnego z tematyką tego bloga?

Otóż UTP to rozwiązanie zaimplementowane na bazie systemu Red Hat Enterprise Linux. Wniosek z tego taki, że nie tylko największe giełdy na świecie używają systemu Linux, ale będą musiały to również robić wszystkie domy maklerskie w Polsce.[2] To doskonały przykład rangi, w jakich zastosowaniach sprawdza się system Linux.

Dla osób zastanawiających się dlaczego akurat Linux przypominam, iż RHEL jest systemem czasu rzeczywistego co z punktu widzenia giełdy jest jednym z najważniejszych wymagań. Oczywiście to nie jedyny powód, dla którego wybrano RHEL.

Nowy system notowań na GPW oficjalnie ma ruszyć 2 listopada 2012 roku.


[1] http://www.gpw.pl/wydarzenia/?ph_tresc_glowna_start=show&ph_tresc_glowna_cmn_id=48227
[2] http://www.parkiet.com/artykul/961329.html

Sunday, April 22, 2012

Nowości w btrfs

Interesującym się możliwościami nowego systemu plików polecam kolejne wideo Btrfs Filesystem: Status and New Features.
Na moim blogu publikowałem wcześniej nagranie na temat systemu plików btrfs: Nagrania z linux.conf.au (LCA) 2012

Friday, April 6, 2012

Rosnąca popularność Linuksa

Dziś przedstawię parę ostatnich wydarzeń, które coraz bardziej dają do zrozumienia, że GNU/Linux już jest najbardziej znaczącym systemem UNIX-owym. Warto zobaczyć klip wideo niedawno przygotowany przez
The Linux Foundation, który przedstawia jak obecnie sprawy się mają w rozwoju kernela Linux.





Dokładny raport ze statystykami dostępny jest pod adresem http://go.linuxfoundation.org/who-writes-linux-2012 Raport dotyczy okresu od grudnia 2010 roku.
Z najistotniejszych faktów można wymienić iż np. nad wydaniem kernela 3.0 pracowało 331 firm, ogólnie natomiast największy wkład miały Red Hat, Novell, Intel, IBM. Oracle pomału również zmierza do tej czołówki. Google natomiast stanowi tylko 1%, wynika to pewnie z faktu, że oni rozwijają własną modyfikowaną wersję jądra. Bardziej interesuje ich soft o czy może świadczyć ich zaangażowanie znane pod nazwą Google Summer of Code. Nadal jednak największa grupę wśród developerów stanowią wolontariusze. 75% deweloperów otrzymało zapłatę za swoją pracę.

Warto zacytować następującą wypowiedź:

“Linux is the platform for the future of computing. More developers and companies are contributing to the advancement of the operating system than ever before, especially in the areas of mobile, embedded and cloud computing,”
Amanda McPherson

Jedną z najciekawszych rzeczy jaka rzuciła mi się w oczy to częstotliwość prac nad kodem, dla przykładu ilość zmian w wersji 3.2 wyniosłą średnio 6.88 na godzinę.

Co do ostatnio głośnego udziału Microsoft w rozwój kodu to nie ma co się ekscytować. Jest to efekt istotności Linuksa w zastosowaniach serwerowych. Microsoft musi zacząć liczyć się z GNU/Linux, bo inaczej ich produkt stanie się systemem niewspółpracującym z najpowszechniejszą platformą serwerową.



A no właśnie skoro o platformie mowa. Teraz chciałbym się odnieść do ostatniej publikacji firmy IBM ftp://public.dhe.ibm.com/software/linux/IBM_Linux_vs_Solaris_paper_2011_Final.pdf. Jak widzicie tytuł bardzo ciekawy i burzliwy - Linux vs Solaris. Treść tego dokumentu jasno pokrywa się z tytułem tego wpisu. Najpierw może jednak napiszę skąd ten temat. A no chodzi o ostatnią metamorfozę firmy Oracle w stosunku do open source i samego Linuksa. Skoro firma ta odziedziczyła po przejętym Sun'ie taki system jak Solaris to dlaczego angażuje się w rozwijanie własnej dystrybucji Oracle Linux opartej na RHEL? Na to pytanie stara się odpowiedzieć wspomniana publikacja. Z podsumowania możemy wyczytać w czym Linux jest lepszy:

"Linux is a better choice for a wider mix of workloads, hardware architectures, and administrator skill sets. Flexibility is crucial in an enterprise IT department, and Linux provides more choice of hardware, distribution models, and support providers without effecting how it is administered or the applications it may run. This allows IT executives to select hardware to match a workload, knowing that it will almost certainly be supported by Linux."

oraz jak istotną rolę odgrywają użytkownicy Linuksa

"Human factors are also important. There are many competent Solaris administrators available today, but commercial Solaris is rarely the first choice for college graduates adding certifications to their resumes. The popularity of Linux has created a larger supply of administrators, driving down their average cost without affecting a company's ability to find highly qualified individuals. It has also helped create an active and helpful community of users, developers, and commercial backers that have given the platform a great deal of momentum."


Odnośnie wkładu Oracle w świat systemu GNU/Linux to nie sposób nie wspomnieć o systemie plików btrfs. Ostatnio na swoim blogu publikowałem wideo prezentujące możliwości tego systemu plików.
Wkład będzie jeszcze większy, ponieważ można już zauważyć, że Oracle zaczyna przenosić pewne rozwiązania do Linuksa, chociażby DTrace.

Warto też wspomnieć o wprowadzonej na koniec 2010 roku wersji jądra zwanego "longterm", które wychodzi na przeciw potrzebom poważnych zastosowań i zmienia podejście dynamicznego rozwoju jądra. Teraz większość dystrybucji wybiera wersję longterm wspieraną przez 2 lata i tym samym produkt staje się bardziej dopracowany.

Linux rozwija się tak szybko, że z trudem śledzę najnowsze doniesienia na ten temat. Warto jednak od czasu do czasu je z grubsza podsumować.