Pereiti prie turinio

OpenBSD

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
OpenBSD

OpenBSD su KDE grafine aplinka
Kūrėjas OpenBSD Project
OS šeima BSD
Kodo modelis Laisvoji programinė įranga
Paskutinė versija 7.6 / 2024 m. spalio 8 d.
Branduolio tipas Monolitinis
Licencija BSD licencija, ISC licencija ir kitos atviro kodo licencijos
Svetainė www.openbsd.org

OpenBSD – į saugumą orientuota, laisvai platinama ir atviro kodo daugiaplatformė UNIX tipo BSD operacinė sistema. 1995 m. projektą įkūrė Theo de Raadt, atšakojęs kodą nuo NetBSD projekto. Pagal projekto įkūrėją, OpenBSD operacinė sistema yra skirta saugumo problemų mitigavimo metodų tyrimams.[1]

OpenBSD palaiko perkeliamas įvairių subsistemų versijas, kurios gali būt pernaudotos kitose operacinėse sistemose. Dėl projekto pastangų išlaikyti kodo kokybę, įvairūs komponentai yra naudojami kituose projektuose. Pavyzdžiui, Android operacinė sistema naudoja jos C standartinę biblioteką,[2] LLVM projektas naudoja reguliariųjų reiškinių biblioteką (angl. regular expressions),[3] ir Windows 10 naudoja OpenSSH bei LibreSSL programinę įrangą.[4]

Žodis atviras (angl. open) projekto pavadinime reiškia laisvą kodo pasiekiamumą internete ir jo daugiaplatformiškumą.[5]

1994 m. gruodį Theo de Raadt, vienas iš NetBSD projekto įkūrėjų, buvo priverstas palikti projekto pagrindinę komandą ir jam buvo atšauktos visos teisės į kodo repozitoriją. Komandos nariai pagrindė šį sprendimą nekonstruktyviu bendravimu su kitais komandos nariais elektroninio pašto grupėje.[6]

1995 m. spalį De Raadt paskelbė apie naują projektą – OpenBSD, kurio kodas atsišakojo nuo NetBSD 1.0 kodo. Pirminis leidimas, OpenBSD 1.2, įvyko 1996 m. liepos mėn., po kurio tų pačių metų spalį buvo išleista OpenBSD 2.0 versija.[7] Nuo to laiko projektas leidžia naują versiją kas 6 mėnesius ir palaiko leidimą vienerius metus.

2007 m. liepos 25 d. OpenBSD programuotojas Bob Beck paskelbė apie OpenBSD fondo (angl. the OpenBSD Foundation), Kanados ne pelno organizacijos, įkūrimą. Jis veikia kaip kontaktinis asmuo tiems, kam reikia juridinio asmens, norint paremti OpenBSD projektą.[8]

OpenBSD yra bendros paskirties operacinė sistema, radusi panaudojimą tarp įvairios paskirties įrenginių: tinklo įrangoje (maršrutizatoriai, ugniasienės), asmeniniuose kompiuteriuose ir serveriuose, taip pat dalinis OpenBSD kodas panaudotas įvairiuose komerciniuose produktuose.

Netrukus po OpenBSD projekto sukūrimo su De Raadt susisiekė saugumo programinės įrangos kompanija, pavadinimu „Secure Networks“ (kurią vėliau įsigijo kompanija „McAfee“).[9][10] Jie tuo metu kūrė tinklo saugumo audito įrankį, pavadinimu Ballista, kuris buvo skirtas surasti ir išnaudoti programinės įrangos saugumo skyles. Pasiūlymas sutapo su projekto įkūrėjo susidomėjimu saugumu, todėl jie kartu susikooperavo. Šis bendradarbiavimas labai prisidėjo prie OpenBSD 2.3 versijos išleidimo[11] ir padėjo apibrėžti saugumą kaip pagrindinę projekto kryptį.[12]

OpenBSD įgyvendino įvairias saugumo pagerinimui skirtas savybes, tokias kaip:

  • Saugios alternatyvos POSIX funkcijoms C standartinėje bibliotekoje, pavyzdžiui, strlcat funkcija strcat funkcijai ir strlcpy funkcija strcpy funkcijai.[13]
  • Įrankių rinkinio (angl. toolchain) pakeitimai, įskaitant statinį masyvo ribų tikrintoją.[14]
  • Atminties apsaugos technikos, siekiant išvengti nevalidžias prieigas.
  • Stipri kriptografija ir randomizacija.[15]
  • Sisteminių kvietimų ir failų sistemos prieigos apribojimai, siekiant suvaržyti proceso galimybes.[1]

Siekiant sumažinti pažeidžiamumų ir neteisingos konfigūracijos riziką, kurie suteiktų nesankcionuotas prieigas, daugelis programų parašytos ir adaptuotos privilegijų atskyrimo, atšaukimo ir šakninio katalogo pakeitimo (angl. chroot) funkcijų panaudojimui. Privilegijų atskyrimo technika pirmą kartą buvo pritaikyta OpenBSD sistemoje, jos pagalba programa yra atskirta į dvi ar daugiau dalių: viena, atliekanti privilegijuotas operacijas, ir kita beveik visada vykdanti neprivilegijuotą kodą.[16] Privilegijų atšaukimas yra panaši technika – programa atlieka visas būtinas operacijas su privilegijom ir tada jas iš karto atšaukia. Šakninio katalogo pakeitimas apriboja aplikacijos prieigą tik prie tam tikros failų sistemos srities, uždraudžiant privačių ar sisteminių failų pasiekiamumą. Sistemos programuotojai adaptavo šiuos patobulinimus į įvairių aplikacijų OpenBSD versijas, tokių kaip tcpdump, tmux, smtpd ir syslogd.[17]

Projektas taip pat naudoja pastovaus kodo audito politiką.

  1. 1,0 1,1 „Pledge() - A New Mitigation Mechanism“. Nuoroda tikrinta 8 October 2018.
  2. „Android's C Library Has 173 Files of Unchanged OpenBSD Code“. Nuoroda tikrinta 8 October 2018.
  3. „LLVM Release License“. Nuoroda tikrinta 8 October 2018.
  4. „OpenSSH for Windows“. Nuoroda tikrinta 8 October 2018.
  5. Grimes, Roger A. (29 December 2006). „New year's resolution No. 1: Get OpenBSD“. InfoWorld.
  6. Glass, Adam (23 December 1994). „Theo De Raadt“.
  7. De Raadt, Theo (18 October 1996). „The OpenBSD 2.0 release“.
  8. „Announcing – The OpenBSD Foundation“. OpenBSD Journal. 26 July 2007.
  9. Varghese, Sam (8 October 2004). „Staying on the cutting edge“. Nuoroda tikrinta 13 December 2011.
  10. Laird, Cameron; Staplin, George Peter (17 July 2003). „The Essence of OpenBSD“. Suarchyvuotas originalas 2017-10-22. Nuoroda tikrinta 13 December 2011.
  11. De Raadt, Theo (19 December 2005). „2.3 release announcement“. „Without [SNI's] support at the right time, this release probably would not have happened.“
  12. Wayner, Peter (13 liepos 2000). „18.3 Flames, Fights, and the Birth of OpenBSD“. Free For All: How Linux and the Free Software Movement Undercut the High Tech Titans (1st leid.). HarperBusiness. ISBN 978-0-06-662050-3. Suarchyvuota iš originalo 22 sausio 2012. Nuoroda tikrinta 13 gruodžio 2011.{{cite book}}: CS1 priežiūra: netinkamas URL (link)
  13. Miller, Todd C.; De Raadt, Theo. „strlcpy and strlcat - Consistent, Safe, String Copy and Concatenation“.
  14. „gcc-local – local modifications to gcc“. OpenBSD manual pages. Suarchyvuotas originalas 2016-11-04. Nuoroda tikrinta 1 November 2016.
  15. De Raadt, Theo; Hallqvist, Niklas; Grabowski, Artur; Keromytis, Angelos D.; Provos, Niels. „Cryptography in OpenBSD: An Overview“.
  16. Provos, Niels (9 August 2003). „Privilege Separated OpenSSH“. Suarchyvuotas originalas 2 January 2012. Nuoroda tikrinta 13 December 2011.
  17. „Innovations“. OpenBSD. Nuoroda tikrinta 18 May 2016. „Privilege separation: [...] The concept is now used in many OpenBSD programs, for example [...] etc.“