Implementation of Xen PVHVM Drivers in Openbsd

Total Page:16

File Type:pdf, Size:1020Kb

Implementation of Xen PVHVM Drivers in Openbsd Implementation of Xen PVHVM drivers in OpenBSD Mike Belopuhov Esdenera Networks GmbH [email protected] Abstract In OpenBSD a pvbus(4) pseudo bus abstrac- tion takes care of identifying the type of the hy- OpenBSD 5.9 will include a native implemen- pervisor via a CPUID signature and probes for tation of Xen PVHVM drivers. It was written child devices using a standard config(9) frame- from scratch to facilitate simplicity and main- work for that. tainability. One of major goals of this effort is Xen nexus device that performs domU setup to run OpenBSD images in the Amazon cloud. is implemented as a xen(4) device driver that also acts as an attachment point for other vir- 1 Introduction tual devices configured in the virtual machine settings. Xen virtual machine monitor provides two types of guest hosting depending on the under- lying hardware: paravirtualized and hardware 3 The hypercall interface assisted virtualization mode when a CPU with In order to be able to perform different oper- virtualization extensions (AMD-V or Intel VT- ations like configuring devices, virtual inter- x) is used. rupts or simply fetching information from the At the same time guests running in the hard- dom0, Xen makes use of a hypercall interface ware assisted virtualization mode are not re- which works similar to the syscall(9) interface stricted access to the paravirtualized facilities that provides a VMEXIT event on the hypervi- via the hypercall interface normally used by the sor side. paravirtualized instances. The guest allocates a page of memory within We will explore what facilities are provided the kernel’s code segment and communicates and how an HVM guest can combine emulated its location in the physical memory to the hy- PCI device tree and interfaces provided via par- pervisor via an MSR write that fills it with avirtualization. content. Upon inspection the content of the page contains SGDT instructions at offsets rep- 2 Guest domain initialization resenting different hypercalls. Since OpenBSD virtual memory subsystem In order to gain access to the paravirtualized doesn’t implement a proper way to allocate services the guest must take a few steps in order memory pages that can be later called into for to identify the hypervisor and setup the hyper- various reasons, a code segment of the kernel call interface. itself had to be extended by one page. And while this is a rather straightforward modifica- Once triggered a guest operating system tion, perhaps a randomized location would suit must run an interrupt vector that traverses a it better. pending event channel ports bitmap inside the Via the established hypercall interface other Shared Information Page to establish which parameters of the system can be learned, for ports have triggered the event. example extended version, enabled virtual ma- A xen intr establish() method is provided chine features, etc. in order to setup a callback that will be exe- Unlike other implementations, OpenBSD cuted by the interrupt vector when associated uses a single hypercall function that is defined event port is pending in the event channel ports as a variable argument function and expands bitmap. In many cases the event port number is the parameter list in order to construct hyper- not known in advance and can be allocated by call arguments. the aforementioned method itself. Likewise a xen intr disestablish() can be called to remove the binding. 4 Shared Information Page During system startup and device driver ini- tialization interrupts remain masked and are un- One of several basic ways of communicating masked after the root filesystem is mounted. information to the hypervisor and back to the Device drivers are required to operate in the guest system is using shared memory pages. polling mode until interrupts are enabled. The Shared Information Page is a specialized After startup is finished, device drivers page of memory that provides guests access can mask and unmask their interrupt sources to the bitmap of masked and pending event at will via calls to xen intr mask() and channel ports events as well as other informa- xen intr unmask(). tion, such as RTC, TSC, and information about Unlike other implementations, we have in- NMIs. cluded support for marking Xen upcall inter- The guest system must allocate a page of rupts as pending to integrate interrupt process- memory that has both physical and virtual map- ing better with the rest of the system, e.g. to pings, for example via malloc(9), and commu- ensure that interrupt handler is not reentrant. nicate it’s frame number (a number of page sized increments) to the hypervisor via a mem- ory operation hypercall. 5.1 Interrupts: the IDT method Shared Information Page also includes a run- When indicated by the virtual machine features ning cycle counter and a wall clock so it should a guest system may communicate an allocated be possible in the future to turn this into a sys- Interrupt Descriptor Table vector to the hyper- tem timecounter. In fact the PVCLOCK inter- visor to deliver the interrupt directly into the face used by Linux is implemented this way. system without the help of an emulated APIC. To set up an IDT vector a system must es- 5 The interrupt subsystem tablish a link between an IDT vector number in a range of 0-255 and a callback function via There are two ways for a Xen hypervisor to in- an IDT gate descriptor. OpenBSD groups IDT ject an interrupt request into the system: via an vector numbers according to which Interrupt Interrupt Descriptor Table vector that has been Priority Level they represent. IPL NET prior- allocated by the guest solely for these purposes ity is used for Xen interrupt vector and there- and via a virtual PCI device, the XenStore Plat- fore the first vector 0x70 in that group has been form Device. reserved for it. Due to the fact that this interrupt vector is as well. not established via a PIC-compatible interface This allows drivers for paravirtualized de- low level interrupt stub functions that basically vices to take advantage of a standard approach implement pending interrupt processing cannot to DMA memory management. The first step be used for our interrupt vector. Instead a set of is to create a DMA map that records meta in- new functions akin to those used for the LAPIC formation about the mapping that will be per- timer is rolled to provide this functionality. formed later. It records number of segments, their sizes and a total size of the mapping. Due to the limitation of grant tables, only the page 5.2 Interrupts: Platform Device sized segments are currently supported. The As an alternative to the IDT method, domU wrapper of bus dmamap create() allocates an guest implementing PCI bus discovery can im- additional array of entries that will be used plement a driver for the XenSource Platform to map physical addresses of map segments Device, 0x5853:0x0001. This device provides to grant table references. At the same time a level triggered interrupt wired to the emulated grant table entries for all map segments are re- APIC and once it’s set up, Xen can be made served via xen grant table alloc(). This array aware of it. of entries is then set as a DMA map cookie. A driver xspd(4) has been implemented for A wrapped bus dmamap destroy() method can this device that configures the Xen interrupt free those references and destroy the map. vector to call the Xen upcall when the IDT Not all bus dma(9) methods need to be method is not available. wrapped. For instance memory allocation and KVA mapping functions bus dmamem alloc() and bus dmamem map() as well as their de- 6 Grant tables structive counterparts don’t need any special handling. Grant tables represent a mechanism of passing However in order to establish associations references to pages of memory allocated by the between physical addresses of DMA memory guest across domains. In essence it’s similar segments and grant table references wrapped to the IOMMU mechanism where device vis- versions of bus dmamap load() family of ible addresses are translated into physical ad- functions is required. After calling the system dresses but in this case device visible addresses bus dmamap load() method a wrapper needs are represented as indexes into the grant table to go through all map segments represented and point to a grant table entries. by the dm segs member of the bus dmamap t Grant table entries contain a frame number structure, associate them with grant table ref- and access flags that are set up when one do- erences and update entries in the grant table main wants to provide access to its own mem- via xen grant table enter(). Upon success the ory to the other domain. Upon startup the hy- physical address of the segment ds addr is re- pervisor sets an upper limit on how many grant placed with the grant table reference. After this table frames can be used by the guest system. call, the driver can pass this reference to the OpenBSD implements a bus dma(9) [1] ab- other domain via a ring descriptor or a similar straction on top of grant tables. It defines a new mechanism. bus dma tag that contains methods that wrap To remove the mapping a underlying bus dmamap * functions in a way bus dmamap unload() method wrapper that the memory managed by this underlying calls the xen grant table remove() and puts methods gets accounted for by the grant tables physical addresses back into the ds addr before _dm_cookie Grant Table page page 1 reference 0 segment 0 reference 1 grant table entry 0 page 2 segment 1 reference 2 grant table entry 1 segment 2 grant table entry 2 page 3 Mapping table bus_dmamap_t object ..
Recommended publications
  • Advanced Openbsd Hardening
    Advanced Hardening WrongunWrongun && DCDC JuneJune 20052005 ssh://root:[email protected] Lab Challenge JoinJoin thethe wifiwifi netnet andand sshssh intointo thethe boxbox usingusing thethe accountaccount specifiedspecified inin thethe footerfooter TryTry toto pwnpwn thethe boxbox byby addingadding anan accountaccount forfor yourselfyourself oror backdooringbackdooring sshdsshd ssh://root:[email protected] “Only one remote hole in the default install, in more than 8 years! “ ssh://root:[email protected] So OpenBSD is uber secure, right? Actually,Actually, nono …… TheThe defaultdefault installinstall hashas nothingnothing enabledenabled (except(except ssh)ssh) ““NoNo wonderwonder itit ’’ss secure,secure, itit ’’ss poweredpowered off!off! ”” SourceSource --onlyonly patchingpatching strategystrategy makesmakes itit difficultdifficult toto rollroll outout fixesfixes toto platformsplatforms w/ow/o compilerscompilers (i.e.(i.e. disklessdiskless firewalls,firewalls, etc.)etc.) ssh://root:[email protected] Brief History of OpenBSD Vulnerabilities 30 March 05: Bugs in the cp(4) stack can lead to memory exhaustion or processing of TCP segments with invalid SACK optio ns and cause a system crash. 14 Dec 04: On systems running sakmpd(8) it is possible for a local user to cause kernel memory corruption and system panic by setti ng psec(4) credentials on a socket 20 Sept 04: radius authentication, as implemented by ogin_radius(8) , was not checking the shared secret used for replies sent by the radius server. This could allow an attacker to spoof
    [Show full text]
  • OPENBSD HARDWARE SENSORS FRAMEWORK a Unified and Ready-To-Use System for Hassle-Ee Hardware Monitoring
    OPENBSD HARDWARE SENSORS FRAMEWORK A unified and ready-to-use system for hassle-ee hardware monitoring. Constantine A. Murenin and Raouf Boutaba University of Waterloo AsiaBSDCon 2009 — 12–15 March 2009 — Tokyo, Japan Abstract In this paper, we will discuss the origin, history, design guidelines, API and the device drivers of the hardware sensors framework available in OpenBSD. The framework spans multiple utilities in the base system and the ports tree, is utilised by over 70 drivers, and is considered to be a distinctive and ready-to-use feature that sets OpenBSD apart from many other operating systems, and in its root is inseparable from the OpenBSD experience. 1. Introduction Another trend that has been particularly common in the recent years is the availability of defined inter- We will start by investigating into the matter of what faces for software-based temperature readout from hardware monitoring sensors represent, how common individual components of personal computers, such as is it for them to appear in the general-purpose com- the CPU, or the add-on cards, such as those imple- puter hardware that has been available on the market menting the 802.11 wireless functionality or 10 Giga- in the last decade or so, and what benefits can we gain bit Ethernet. Popular examples include recent Intel by having a unified, simple and straightforward inter- Xeon and Core series of processors (as well as budget face for getting the data out of these sensors. models that are marketed under different brands) Although it may come as a surprise to some users, the [admtemp.4] [cpu.4]; all AMD64 processors from majority of personal computers that have been avail- AMD (Families 0Fh, 10h, 11h) [kate.4] [km.4]; Intel able on the market in the last decade have an inte- WiFi Link 4965/5100/5300 wireless network devices grated hardware monitoring circuitry whose main [iwn.4].
    [Show full text]
  • Cryptanalysis of the Random Number Generator of the Windows Operating System
    Cryptanalysis of the Random Number Generator of the Windows Operating System Leo Dorrendorf School of Engineering and Computer Science The Hebrew University of Jerusalem 91904 Jerusalem, Israel [email protected] Zvi Gutterman Benny Pinkas¤ School of Engineering and Computer Science Department of Computer Science The Hebrew University of Jerusalem University of Haifa 91904 Jerusalem, Israel 31905 Haifa, Israel [email protected] [email protected] November 4, 2007 Abstract The pseudo-random number generator (PRNG) used by the Windows operating system is the most commonly used PRNG. The pseudo-randomness of the output of this generator is crucial for the security of almost any application running in Windows. Nevertheless, its exact algorithm was never published. We examined the binary code of a distribution of Windows 2000, which is still the second most popular operating system after Windows XP. (This investigation was done without any help from Microsoft.) We reconstructed, for the ¯rst time, the algorithm used by the pseudo- random number generator (namely, the function CryptGenRandom). We analyzed the security of the algorithm and found a non-trivial attack: given the internal state of the generator, the previous state can be computed in O(223) work (this is an attack on the forward-security of the generator, an O(1) attack on backward security is trivial). The attack on forward-security demonstrates that the design of the generator is flawed, since it is well known how to prevent such attacks. We also analyzed the way in which the generator is run by the operating system, and found that it ampli¯es the e®ect of the attacks: The generator is run in user mode rather than in kernel mode, and therefore it is easy to access its state even without administrator privileges.
    [Show full text]
  • BSD Projects IV – BSD Certification • Main Features • Community • Future Directions a (Very) Brief History of BSD
    BSD Overview Jim Brown May 24, 2012 BSD Overview - 5/24/2012 - Jim Brown, ISD BSD Overview I – A Brief History of BSD III – Cool Hot Stuff • ATT UCB Partnership • Batteries Included • ATT(USL) Lawsuit • ZFS , Hammer • BSD Family Tree • pf Firewall, pfSense • BSD License • Capsicum • Virtualization Topics • Jails, Xen, etc. • Desktop PC-BSD II – The Core BSD Projects IV – BSD Certification • Main Features • Community • Future Directions A (Very) Brief History of BSD 1971 – ATT cheaply licenses Unix source code to many organizations, including UCB as educational material 1975 – Ken Thompson takes a sabbatical from ATT, brings the latest Unix source on tape to UCB his alma mater to run on a PDP 11 which UCB provided. (Industry/academic partnerships were much more common back then.) Computer Science students (notably Bill Joy and Chuck Haley) at UCB begin to make numerous improvements to Unix and make them available on tape as the “Berkeley Software Distribution” - BSD A (Very) Brief History of BSD Some notable CSRG • 1980 – Computer Science Research Group members (CSRG) forms at UCB with DARPA funding to make many more improvements to Unix - job control, autoreboot, fast filesystem, gigabit address space, Lisp, IPC, sockets, TCP/IP stack + applications, r* utils, machine independence, rewriting almost all ATT code with UCB/CSRG code, including many ports • 1991 – The Networking Release 2 tape is released on the Internet via anon FTP. A 386 port quickly follows by Bill and Lynne Jolitz. The NetBSD group is formed- the first Open Source community entirely on the Internet • 1992 – A commercial version, BSDI (sold for $995, 1-800-ITS-UNIX) draws the ire of USL/ATT.
    [Show full text]
  • IOMMU-Resistant DMA Attacks
    IOMMU-resistant DMA attacks Gil Kupfer Technion - Computer Science Department - M.Sc. Thesis MSC-2018-21 - 2018 Technion - Computer Science Department - M.Sc. Thesis MSC-2018-21 - 2018 IOMMU-resistant DMA attacks Research Thesis Submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science Gil Kupfer Submitted to the Senate of the Technion | Israel Institute of Technology Sivan 5778 Haifa May 2018 Technion - Computer Science Department - M.Sc. Thesis MSC-2018-21 - 2018 Technion - Computer Science Department - M.Sc. Thesis MSC-2018-21 - 2018 This research was carried out under the supervision of Prof. Dan Tsafrir and Dr. Nadav Amit, in the Faculty of Computer Science. Acknowledgements who passed ,ז"ל This work is dedicated to my grandfather, Tuvia Kupfer away during the writing of this work. I would like to thank my wife, Odeya, for helping and supporting when needed. Also, I would like to thank all the friends who have been there. Finally, thanks to my advisors, Prof. Dan Tsafrir and Dr. Nadav Amit, for their help and guidance along the way. The generous financial help of the Technion is gratefully acknowledged. Technion - Computer Science Department - M.Sc. Thesis MSC-2018-21 - 2018 Technion - Computer Science Department - M.Sc. Thesis MSC-2018-21 - 2018 Contents List of Figures Abstract 1 Abbreviations and Notations3 1 Introduction5 2 Background9 2.1 DMA Attacks.................................9 2.1.1 Classic DMA Attacks........................9 2.1.2 IOMMU Protection......................... 10 2.1.3 Circumventing the IOMMU..................... 11 2.2 FireWire.................................... 12 3 Attack Mechanics 15 3.1 Sub-Page Granularity Vulnerability....................
    [Show full text]
  • Mengenal Sistim Operasi *BSD
    Mengenal Sistim Operasi *BSD Ada banyak sekali tulisan-tulisan yang membahas tentang BSD, baik tulisan mengenai sejarah, system administrasi, sampai penggunaan BSD kepada end-user sebagai desktop. Tulisan ini memperkenalkan BSD sebagai alternatif lain dari Linux untuk memenuhi kebutuhan akan UNIX-like operating system di Indonesia. Dalam tulisan ini pula, dibahas mengenai beberapa hal yang membedakan antara Linux dan BSD, namun tidak memutuskan mana yang paling baik, karena untuk menentukan mana operating system yang paling baik digunakan adalah Anda sendiri. Daftar Isi 1. Sejarah 2. Distribusi Varian BSD 3. Model Pengembangan 4. Integrasi System 5. Software-software di BSD 6. System Administrasi 7. File System 8. Lain-lain 9. Kesimpulan Sejarah Hampir semua orang telah mendengar Linux saat ini. Namun apa itu BSD? BSD adalah singkatan dari Berkeley Software Distribution. BSD pertama kali dibangun dan dikembangkan oleh Computer System Research Group (CSRG) di University of California at Berkeley (UCB), BSD pertama kali keluar pada akhir 1977 sebagai paket tambahan dan patch dari AT&T UNIX version 6, yang mana waktu itu beroperasi pada mesin PDP-11 minicomputer. BSD pada akhirnya banyak memberikan kontribusi berharga pada pengembangan UNIX secara umum. Ada banyak fitur yang pertama kali diperkenalkan oleh BSD dan beberapa diadopsi dari AT&T dan vendor-vendor lainnya. BSD dibuat, dikembangkan, dan digunakan secara BEBAS sebagai perlawanan terhadap lisensi UNIX yang dimiliki oleh AT&T dan oleh karena itu BSD mempunyai lisensi tersendiri yang memungkinkan setiap orang bebas melakukan pengembangan, dan menggunakan source code BSD. Pada tahun 1993, 4.4BSD dirilis sebagai sebuah Operating System yang utuh. Untuk sejarah lengkap BSD di CSRG, mulai sejarah dari jaman kuda, motivasi orang-orang yang pertama kali mengerjakannya, sampai perseteruan lisensi dan hak cipta dengan AT&T, saya mereferensikan Anda untuk membaca tulisan yang dibuat oleh Kirk McKusick, “Twenty Years of Berkeley Unix“.
    [Show full text]
  • UNIX History Page 1 Tuesday, December 10, 2002 7:02 PM
    UNIX History Page 1 Tuesday, December 10, 2002 7:02 PM CHAPTER 1 UNIX Evolution and Standardization This chapter introduces UNIX from a historical perspective, showing how the various UNIX versions have evolved over the years since the very first implementation in 1969 to the present day. The chapter also traces the history of the different attempts at standardization that have produced widely adopted standards such as POSIX and the Single UNIX Specification. The material presented here is not intended to document all of the UNIX variants, but rather describes the early UNIX implementations along with those companies and bodies that have had a major impact on the direction and evolution of UNIX. A Brief Walk through Time There are numerous events in the computer industry that have occurred since UNIX started life as a small project in Bell Labs in 1969. UNIX history has been largely influenced by Bell Labs’ Research Editions of UNIX, AT&T’s System V UNIX, Berkeley’s Software Distribution (BSD), and Sun Microsystems’ SunOS and Solaris operating systems. The following list shows the major events that have happened throughout the history of UNIX. Later sections describe some of these events in more detail. 1 UNIX History Page 2 Tuesday, December 10, 2002 7:02 PM 2 UNIX Filesystems—Evolution, Design, and Implementation 1969. Development on UNIX starts in AT&T’s Bell Labs. 1971. 1st Edition UNIX is released. 1973. 4th Edition UNIX is released. This is the first version of UNIX that had the kernel written in C. 1974. Ken Thompson and Dennis Ritchie publish their classic paper, “The UNIX Timesharing System” [RITC74].
    [Show full text]
  • Open Source Software Notice
    OPEN SOURCE SOFTWARE NOTICE This product incorporates various open source software packages that are distributed under license terms as described further below. 1. Linux Kernel, GNU C library and Toolchain, Busybox, dsnmasq, ethtool, iproute, iptables, sftpd, smcroute, mtdutils, gdb, uboot, cgi-c, jQuery Library, bootloader are licensed under the GNU General Public License, V2.0, which may be viewed at http://www.gnu.org/licenses/gpl-2.0.html. Copies of the source code for the above may be obtained at the following URLs: https://www.kernel.org https://gcc.gnu.org/ http://www.busybox.net/ http://www.thekelleys.org.uk/dnsmasq/doc.html https://www.kernel.org/pub/software/network/ethtool/) http://developer.osdl.org/dev/iproute2 (now- http://www.linuxfoundation.org/) http://www.cschill.de/smcroute/ http://git.infradead.org/mtd-utils.git http://www.gnu.org/software/gdb/ http://www.denx.de/wiki/U-Boot/SourceCode http://sourceforge.net/projects/cgi-c/ http://jquery.com/ Wolfgang Denk, DENX Software Engineering, [email protected]. Copies of the modified source code for BusyBox, cgi-c, boot loader, and Linux may be requested in writing by contacting: ViaSat, Inc., attn: General Counsel / Source Code Request, 6155 El Camino Real, Carlsbad CA 92009 USA. Your request should clearly identify the product and open source software component(s) to which your request relates. Your request must be sent within three (3) years of the date you received the Viasat product that included the binary that is the subject of your request. 2. OpenNTPD This is a summary of the licences for the files that make up Portable OpenNTPD.
    [Show full text]
  • The Design of the Openbsd Cryptographic Framework
    The Design of the OpenBSD Cryptographic Framework Angelos D. Keromytis Jason L. Wright Theo de Raadt Columbia University OpenBSD Project OpenBSD Project [email protected] [email protected] [email protected] Abstract the design of these systems is intended to impede sim- ple, brute-force, computational attacks. This complexity drives the belief that strong security is fundamentally in- Cryptographic transformations are a fundamental build- imical to good performance. ing block in many security applications and protocols. To improve performance, several vendors market hard- This belief has led to the common predilection to avoid ware accelerator cards. However, until now no operating cryptography in favor of performance [22]. However, system provided a mechanism that allowed both uniform the foundation for this belief is often software imple- and efficient use of this new type of resource. mentation [8] of algorithms intended for efficient hard- ware implementation. To address this issue, vendors We present the OpenBSD Cryptographic Framework have been marketing hardware cryptographic acceler- (OCF), a service virtualization layer implemented in- ators that implement several cryptographic algorithms side the kernel, that provides uniform access to accel- used by security protocols and applications. However, erator functionality by hiding card-specific details be- modern operating systems lack the necessary support hind a carefully-designed API. We evaluate the impact to provide efficient access to such functionality to ap- of the OCF in a variety of benchmarks, measuring over- plications and the operating system itself through a all system performance, application throughput and la- uniform API that abstracts away device details. As tency, and aggregate throughput when multiple applica- a result, accelerators are often used directly through tions make use of it.
    [Show full text]
  • Open Source Software: a History David Bretthauer University of Connecticut, [email protected]
    University of Connecticut OpenCommons@UConn Published Works UConn Library 12-26-2001 Open Source Software: A History David Bretthauer University of Connecticut, [email protected] Follow this and additional works at: https://opencommons.uconn.edu/libr_pubs Part of the OS and Networks Commons Recommended Citation Bretthauer, David, "Open Source Software: A History" (2001). Published Works. 7. https://opencommons.uconn.edu/libr_pubs/7 Open Source Software: A History —page 1 Open Source Software: A History by David Bretthauer Network Services Librarian, University of Connecticut Open Source Software: A History —page 2 Abstract: In the 30 years from 1970 -2000, open source software began as an assumption without a name or a clear alternative. It has evolved into a s ophisticated movement which has produced some of the most stable and widely used software packages ever produced. This paper traces the evolution of three operating systems: GNU, BSD, and Linux, as well as the communities which have evolved with these syst ems and some of the commonly -used software packages developed using the open source model. It also discusses some of the major figures in open source software, and defines both “free software” and “open source software.” Open Source Software: A History —page 1 Since 1998, the open source softw are movement has become a revolution in software development. However, the “revolution” in this rapidly changing field can actually trace its roots back at least 30 years. Open source software represents a different model of software distribution that wi th which many are familiar. Typically in the PC era, computer software has been sold only as a finished product, otherwise called a “pre - compiled binary” which is installed on a user’s computer by copying files to appropriate directories or folders.
    [Show full text]
  • The Book of PF Covers the Most • Stay in Control of Your Traffic with Monitoring and Up-To-Date Developments in PF, Including New Content PETER N.M
    EDITION3RD BUILD A Covers OpenBSD 5.6, MORE SECURE FreeBSD 10.x, and NETWORK EDITION NETWORK 3RD NetBSD 6.x WITH PF THETHE BOOKBOOK THE BOOK OF PF OF THE BOOK THE BOOK OF PF OF THE BOOK OFOF PFPF OpenBSD’s stateful packet filter, PF, is the heart of • Build adaptive firewalls to proactively defend against A GUIDE TO THE the OpenBSD firewall. With more and more services attackers and spammers NO-NONSENSE placing high demands on bandwidth and an increas- OPENBSD FIREWALL • Harness OpenBSD’s latest traffic-shaping system ingly hostile Internet environment, no sysadmin can to keep your network responsive, and convert your afford to be without PF expertise. existing ALTQ configurations to the new system The third edition of The Book of PF covers the most • Stay in control of your traffic with monitoring and up-to-date developments in PF, including new content PETER N.M. HANSTEEN visualization tools (including NetFlow) on IPv6, dual stack configurations, the “queues and priorities” traffic-shaping system, NAT and redirection, The Book of PF is the essential guide to building a secure wireless networking, spam fighting, failover provision- network with PF. With a little effort and this book, you’ll ing, logging, and more. be well prepared to unlock PF’s full potential. You’ll also learn how to: ABOUT THE AUTHOR • Create rule sets for all kinds of network traffic, whether Peter N.M. Hansteen is a consultant, writer, and crossing a simple LAN, hiding behind NAT, traversing sysadmin based in Bergen, Norway. A longtime DMZs, or spanning bridges or wider networks Freenix advocate, Hansteen is a frequent lecturer on OpenBSD and FreeBSD topics, an occasional • Set up wireless networks with access points, and contributor to BSD Magazine, and the author of an lock them down using authpf and special access often-slashdotted blog (http://bsdly.blogspot.com/ ).
    [Show full text]
  • Writing Exploit-Resistant Code with Openbsd Lawrence Teo Lteo Openbsd.Org @Lteo
    Writing Exploit-Resistant Code with OpenBSD Lawrence Teo lteo openbsd.org @lteo Slides and references at: https://lteo.net/carolinacon15 CarolinaCon 15 - Charlotte, NC - April 27, 2019 A question Innovation’s Black Hole Security vulnerabilities Image Credit: EHT Collaboration https://www.eso.org/public/images/eso1907a/ What is OpenBSD? • Free, multi-platform UNIX-liKe operating system • Founded by Theo de Raadt in 1995 • Secure by default • A research operating system • Two releases per year • You’re very liKely using OpenBSD code everyday • OpenSSH • LibreSSL • tmux • More: openbsd.org/innovations.html • Coolest mascot ever whoami • OpenBSD developer since 2012 • Primarily areas related to networking • PF, networK stacK, libpcap, tcpdump, etc. • Userland stuff, ports, man pages, etc • Co-founder, Calyptix Security • Shipping thousands of OpenBSD-based firewalls from Charlotte since 2006! • Ph.D. from UNC Charlotte (2006) • Research area: Info sharing for intrusion detection Auditing Software vulnerabilities How OpenBSD attacks the software vulnerability problem (my view) Auditing Exploit Software Mitigation vulnerabilities Techniques How OpenBSD attacks the software vulnerability problem (my view) Auditing Exploit Software Mitigation vulnerabilities Techniques Rigorous Development Process How OpenBSD attacks the software vulnerability problem (my view) Licensing Auditing Exploit Software Mitigation vulnerabilities Techniques Rigorous Development Process How OpenBSD attacks the software vulnerability problem (my view) Licensing Education
    [Show full text]