openbsd segurança por padrão

27
OpenBSD Seguranç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 Gentoo Hoje utiliza OpenBSD como projetos de Firewall e outros serviços de Rede Trabalha atualmente para SIMConsultas

Upload: wsouzant

Post on 11-Jan-2015

471 views

Category:

Documents


1 download

DESCRIPTION

Segue a palestra que apresentei na UniSEB em Ribeirão Preto no dia 15/05/2013

TRANSCRIPT

Page 1: OpenBSD Segurança por Padrão

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

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

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

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

História do Unix

• Portando o UNIX do PDP-7 para um PDP-11

Page 6: OpenBSD Segurança por Padrão

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

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

Projeto

Page 9: OpenBSD Segurança por Padrão

Projeto OpenBSD

• Out 1995 - Theo de Raadt cria o OpenBSD

Page 10: OpenBSD Segurança por Padrão

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

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
Page 13: OpenBSD Segurança por Padrão

Projeto OpenBSD

• Sub-Projetos

• OpenSSH

• OpenBGPD

• OpenNTPD

• OpenCVS

• OpenSMTPD

• OpenIKED

Page 14: OpenBSD Segurança por Padrão

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

Segurança Por Padrão

Page 16: OpenBSD Segurança por Padrão

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

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

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

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

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

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

Hands On

Page 23: OpenBSD Segurança por Padrão

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

Hands On

• Proteção de {buffer, stack}-overflow

• ASLE - Address Space Layout Randomization “extreme”

Page 25: OpenBSD Segurança por Padrão

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

Perguntas ?

Obrigado por assistir