OpenBSD 3.4

Jutro odbędzie się premiera nowej wersji systemu OpenBSD. Wersja jest oznaczona numerkiem 3.4, wprowadzono tu sporo zmian. Część nowych właściwości zawartych w OpenBSD 3.4 znajduje się poniżej, a pełna ich lista dostępna jest w ChangeLogu.

Format plików wykonywalnych na platformie i386 został zamieniony na ELF.
Dalsze usprawnienia W^X. Od teraz działa także na architekturze i386. Binaria dla i386 posiadają poprawiony segment wykonywalny, który izoluje kod od danych. Ograniczenia nałożone na rejestr CS procesora używane są do narzucenia większego nacisku na wykonywanie kodu.
Na platformach ELF ld.so(1) ładuje biblioteki w losowej kolejności, co jeszcze lepiej chroni przed potencjalnym atakiem. Dodatkowo na architekturze i386 wczytywane są one pod losowy adres w pamięci. Razem z W^X i ochroną stosu ProPolice, zmiany te utrudniają skuteczne wykorzystanie błędów takich jak przepełnienie bufora.
Nowe właściwości kompilatora kontrolują wywołania funkcji przyjmujących jako swoje argumenty bufor i jego rozmiar. Ma to na celu wyłapanie popularnych błędów programistycznych przy używaniu funkcji strlcpy(3) czy sscanf(3) Sprawdzenie drzewa źródeł i portów zaowocowało odkryciem tysięcy prawdziwych błędów, które w miare możliwości były naprawione, a zmiany odesłane do autorów.
Separacja przywilejów demona syslogd(8) czyni go bardziej odpornym na ataki wykorzystujące nowoodkryte błedy. Proces potomny, nasłuchujący wywołania przez sieć, działa z prawami normalnego użytkownik w środowisku chroot, podczas gdy rodzic śledzi jego działanie i operacje wymagające większych przywilejów wykonuje za niego.
Wiele niebezpiecznych funkcji operujących na ciągach tekstowych zostało usuniętych z kernela oraz userlandu. Audyt kodu źródłowego, który był jednym z najwększych tego typu przedsięwzięć przeprowadzonych przez Projekt OpenBSD, zastąpił tysiące wywołań funkcji strcpy(3), strcat(3), sprintf(3), i vsprintf(3) na ich bezpieczne odpowiedniki, takie jak strlcpy(3), strlcat(3), snprintf(3), vsnprintf(3), i asprintf(3).
Usunięto błędy i wprowadzono kolejne udoskonalenia w mechanizmie ochrony stosu ProPolice. Zostało poprawionych wiele innych błędów generowania kodu wynikowego dla architektur RISC.
Ochrona stosu ProPolice została także włączona w jądrze

Separacja przywilejów X serwera. Wykorzystany został proces potomny, który jest odpowiedzialny za wykonywanie wszystkich tych operacji, których nie może wykonać X serwer po pozbyciu się uprawnień roota. Znacznie utrudnia to przeprowadzenie ataku ze strony złośliwego X klienta, w przypadku błędów w X serwerze.
Właściwości binarnej kompatybilności kontrolowane są teraz przez sysctl(8). Od teraz, by nie narażać systemu na działanie złośliwych binariów, emulacja jest domyślnie wyłączona. Można ją włączyć przez ustawienie odpowiednich zmiennych w pliku sysctl.conf(5).
Strony podręcznika systemowego zostały odświeżone i poprawione
Drzewo portów zostało wzbogacone o możliwość budowania portów pod kontrolą systrace(1), co zapobirga możliwym uszkodzeniom systemu przez aplikacje zawierające ewentualne konie trojańskie w skryptach konfiguracyjnych i tym podobnym zagrożeniom podczas kompilacji
Przechowywanie w pamięci podręcznej tablicy symboli ld.so(1) skraca czas uruchamiania dużych aplikacji.
Wiele zmian licencyjnych, włączając w to usunięcie ostrzeżeń odnośnie redystrybucji, w ogromnej części źródeł.
Programy na licencji GNU: diff(1), diff3(1), grep(1), egrep(1), fgrep(1), zgrep(1), zegrep(1), zfgrep(1), gzip(1), zcat(1), gunzip(1), gzcat(1), zcmp(1), zmore(1), zdiff(1), zforce(1), gzexe(1), i znew(1) zostały zamienione na odpowiedniki licencjonowane na zasadach BSD.
Obsługa systemu plików NTFS. Możliwy jest tylko praca w trybie tylko do odczytu.
Poprawiono stabiloność warstwowego systemu plików, NULLFS ponownie działa stabilnie.
Zaimportowane z FreeBSD narzędzie growfs(8) pozwala na zmianę rozmiaru istniejącego systemu plików.
Udoskonalenia emulacji systemu Linux, pozwalają uruchomić jeszcze więcej aplikacji skompilowanych dla tego systemu.
Znaczące usprawnienia biblioteki pthreads(3).
Wymiana wielu statycznych wywołań fd_set, na poll(2) lub dynamiczną alokację pamięci.

Dla ogromnej części drzewa źródeł poprawiono zgodność prototypów funkcji ze standardem ANSI.
Obsługa KerberosIV została usunięta. KerberosV został poddany restrukturyzacji tak, by uprościć zarządzanie.
Ponad 2400 portów i 2200 prekompilowanych pakietów.
Wiele poprawek, zmian i optymalizacja działania filtra pakietów pf(4).
Poprawiono obsługę wielu urządeń.
W OpenBSD obecne są także ważne programy pochodzące z trzecich źródeł
– XFree86 4.3.0 (+ poprawki, wersja i386 zawiera także serwer 3.3.X, aby powiększyć ilość obsługiwanych kart graficznych)
– Gcc 2.95.3 (+ poprawki)
– Perl 5.8.0 (+ poprawki)
– Apache 1.3.28, mod_ssl 2.8.15, DSO support (+ poprawki)
– OpenSSL 0.9.7b (+ poprawki)
– Groff 1.15
– Sendmail 8.12.9 (+ poprawki związane z bezpieczeństwem parse8.359.2.8)
– Bind 9.2.2 (+ poprawki)
– Lynx 2.8.4rel.1 with HTTPS and IPv6 support (+ poprawki)
– Sudo 1.6.7p5
– Ncurses 5.2
– Latest KAME IPv6
– Heimdal 0.6rc1 (+ poprwki)
– Arla-current
– OpenSSH 3.7.1 (teraz zawiera wsparcie dla GSSAPI)

Zmiany wpływające na poprawę bezpieczeństwa i stabilności systemu (zwróć uwagę na tekst wyróżniony czerwonym kolorem na stronie z pełną listą zmian).
i wiele, wiele innych.