openbsd segurança por padrão
DESCRIPTION
Segue a palestra que apresentei na UniSEB em Ribeirão Preto no dia 15/05/2013TRANSCRIPT
![Page 1: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/1.jpg)
OpenBSDSegurança por padrão
Walter Neto
Começou a programar com 12 anos como hobby, conheceu sistemas Unix-like através do Linux Conectiva 4.6 em 2001, como
última distribuição Linux usou o GentooHoje utiliza OpenBSD como projetos de Firewall e outros serviços
de Rede
Trabalha atualmente para SIM≫Consultas
![Page 2: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/2.jpg)
Assuntos Abordados
• História do Unix
• Projeto OpenBSD e sub-projetos
• Mecanismos de Segurança
• Hands On
![Page 3: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/3.jpg)
História do Unix
• 1965 - AT&T, GE e o projeto “Multics” (Multiplexed Information and Computing Services) no Bell Labs
• 1969 - Os cientistas começam a procurar uma alternativa ao Multics (Ken Thompson, Dennis Ritchie e cia.)
• “Space Travel” rodando no PDP-7
![Page 4: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/4.jpg)
História do Unix
• Thompson reescreve o sistema inicial
• Thompson batiza o sistema com o nome de UNIX, um trocadilho com o projeto Multics que fracassou
![Page 5: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/5.jpg)
História do Unix
• Portando o UNIX do PDP-7 para um PDP-11
![Page 6: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/6.jpg)
História do Unix
• 1971 - Thompson tenta escrever o UNIX em uma linguagem de alto nível (Fortran), cria uma linguagem simples chamada “B”, que também lhe causa dores de cabeça
• Ritchie começa a escrever uma linguagem parecida com B, que ele chamou na época de NB (new B), ficou boa
![Page 7: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/7.jpg)
História do Unix
• 1973 - Dennis Ritchie termina a primeira versão da linguagem C que compila uma versão do UNIX
• 1976..1977 - Compartilhando o UNIX com o mundo e ponta pé inicial do BSD
• 1984 - AT&T se desfaz das empresas de telefonia Bell local e cria a AT&T Computer Systems
![Page 8: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/8.jpg)
Projeto
![Page 9: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/9.jpg)
Projeto OpenBSD
• Out 1995 - Theo de Raadt cria o OpenBSD
![Page 10: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/10.jpg)
Projeto OpenBSD
• Sistem operacional multi-plataforma baseado no 4.4BSD
• Ênfase em:
• Portabilidade
• Padronização
• Correção de Bugs
• Segurança Proativa
• Criptografia Integrada
![Page 11: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/11.jpg)
Projeto OpenBSD
• É desenvolvido inteiramente por voluntários
• O projeto paga pelo ambiente de desenvolvimento e pelos eventos (Hackathons) com a venda de CDs e doações de empresas e pessoas
![Page 12: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/12.jpg)
![Page 13: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/13.jpg)
Projeto OpenBSD
• Sub-Projetos
• OpenSSH
• OpenBGPD
• OpenNTPD
• OpenCVS
• OpenSMTPD
• OpenIKED
![Page 14: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/14.jpg)
Projeto OpenBSD• Pacotes da versão 5.3 (instalação)◦ Xenocara (based on X.Org 7.7 with xserver 1.12.3 + patches, freetype 2.4.11, fontconfig
2.8.0, Mesa 7.11.2, xterm 287, xkeyboard-config 2.7 and more)◦ Gcc 4.2.1 (+patches), 3.3.6 (+ patches) and 2.95.3 (+ patches)◦ Perl 5.12.2 (+ patches)◦ Our improved and secured version of Apache 1.3, with SSL/TLS and DSO support◦ Nginx 1.2.6 (+ patches)◦ OpenSSL 1.0.1c (+ patches)◦ SQLite 3.7.14.1 (+ patches)◦ Sendmail 8.14.6, with libmilter◦ Bind 9.4.2-P2 (+ patches)◦ NSD 3.2.15◦ Lynx 2.8.7rel.2 with HTTPS and IPv6 support (+ patches)◦ Sudo 1.7.2p8◦ Ncurses 5.7◦ Heimdal 0.7.2 (+ patches)◦ Binutils 2.15 (+ patches)◦ Gdb 6.3 (+ patches)◦ Less 444 (+ patches)◦ Awk Aug 10, 2011 version
![Page 15: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/15.jpg)
Segurança Por Padrão
![Page 16: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/16.jpg)
Mecanismos de Segurança• Cultura de Desenvolvimento “Shut up and
hack!”
• Feito para desenvolvedores e usuários experientes
• A documentção é ótima, então RTFM
• Se mantém o mais fiel possível aos padrões do Unix (POSIX, ANSI, etc)
• É um SO completo, desenvolvido de forma integral- Diferente dos pacotes GNU/Linux
- Fontes do sistema completo em /usr/src
![Page 17: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/17.jpg)
Mecanismos de Segurança• Suportar várias arquiteturas de Hardware ajuda a
encontrar bugs
• A instalação padrão tem tudo o que se espera em um Unix, pacotes como Gnome e etc são mantidos separadamente
• Foco em código correto, claro e simple.
- One of my most productive days was throwing away 1000 lines of code.” -- Ken Thompson
• Código simples e ao mesmo tempo poderoso
• Código não utilizado tem que ser excluído. O repositório é versionado, o código não é perdido
![Page 18: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/18.jpg)
Mecanismos de Segurança
• Padronizar estilos e design patterns do código
• Ao achar um bug, procure-o em todo o código, se possível através de expressões regulares
• Tratar erros retornados pela API, “é sério”!
![Page 19: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/19.jpg)
Mecanismos de Segurança
• O compilador é seu amigo, use -Wall -Wextra -Wpedantic
• Resista à tentação dos POGs, os revisores de código não vão gostar e o código não vai entrar. Mancha a reputação
• Perfumarias só depois que estiver correto e rodando
![Page 20: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/20.jpg)
Mecanismos de Segurança
• Secure by default (tema desde 1996)
• O design é furado? Corrija o design
• O código é furado? Corrija o código
• A documentação está errada? Corrija e melhore a documentação
![Page 21: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/21.jpg)
Mecanismos de Segurança
• Use tipos de dados corretos e evite {over, under}flows
• Detectou um erro? Na dúvida, termine o processo
![Page 22: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/22.jpg)
Hands On
![Page 23: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/23.jpg)
Hands On
• Uso de criptografia forte e números aleatórios, ambiente hostil para exploits
- Openbsd usa números aleatórios sempre que possível
• OpenBSD como firewall ja protege por padrão sistemas menos seguros
![Page 24: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/24.jpg)
Hands On
• Proteção de {buffer, stack}-overflow
• ASLE - Address Space Layout Randomization “extreme”
![Page 25: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/25.jpg)
Reflexão FinalNenhuma destas técnicas garante segurança por si só, mas todas juntas tornam as coisas
muito difíceis para os atacantes
![Page 26: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/26.jpg)
Perguntas ?
Obrigado por assistir
![Page 27: OpenBSD Segurança por Padrão](https://reader034.vdocuments.mx/reader034/viewer/2022051611/54b19ea64a7959882b8b45ef/html5/thumbnails/27.jpg)
Fontes
• http://www.openbsd.org/papers/
• http://oesc-livre.org/media/slides/2012/outubro_tecland/
• http://www.bell-labs.com/history/unix/
"Seja a mudança que você deseja para o mundo".Mahatma Gandhi