| Subcribe via RSS

Definindo uma política de segurança

novembro 15th, 2007 | No Comments | Posted in Segurança

Como em todo sistema crítico em que trafegam informações valiosas, é necessário conhecer, controlar e manter um sistema eficaz de segurança. O objetivo desse artigo é fornecer uma base para que você inicie seu próprio projeto de segurança de sistemas.

Ainda que um software ou hardware estejam instalados adequadamente, ainda assim existem fatores internos e externos que ameaçam o sigilo e confiabilidade das informações, e ainda é mais caro resolver incidentes de segurança do que preveni-los.

Qual o objetivo da implementação de uma política de segurança objetivo de uma política de segurança é centralizar as medidas, os procedimentos e tecnologias em torno de um modelo que atenda todas as áreas de um sistema de segurança desde a camada física até a lógica provendo as condições necessárias para o bom funcionamento do sistema.

Fatores críticos para o sucesso da política
Para que a política de segurança seja eficaz é necessário o apoio da direção da organização, o treinamento e capacitação dos funcionários que atuam direta e indiretamente no trânsito de informações e a política de conscientização. O não-cumprimento de todas as medidas da política pode comprometer a integridade das informações, acarretando prejuízos incalculáveis de acordo com a criticidade das mesmas.

Como começar a definição da política de segurança

Para o início da definição da política de segurança deve-se definir os níveis de acesso de cada usuário, grupos, suas restrições, direitos e responsabilidades dentro da organização para com o sistema de segurança, coleta de informações como a filosofia da empresa, a classificação das informações, a demanda de segurança de acordo com a confidencialidade dos dados são imprescindíveis nesse processo, pois é baseado nesta coleta que pode-se desenvolver e aplicar uma política eficaz e compatível com cada organização.

Etapas de um projeto de políticas de segurança

CONTROLE DE ACESSO A INFORMAÇÃO
O controle do acesso à informação consiste na definição de quais informações poderão ser acessadas e por quais funcionários de cada um dos setores da organização. Cabe também ao controle de acesso à informação fornecer os métodos de autenticação para disponibilizar as informações definidas para cada usuário.

SENHAS
Cabe ao sistema a definição de um padrão de senha a ser utilizado e a conscientização dos usuários de sua responsabilidade no uso e manutenção de suas senhas, principalmente aos administradores de sistemas, mesmo em casos de demissões, por terem um nível de acesso de muita importância ao sistema, visto que atuam com configuração e manutenção dos serviços de rede.

SEGURANÇA DOS DADOS
Um bom procedimento de segurança é o backup regular dos dados armazenados para evitar perda dos mesmos em casos de falhas e a restrição do seu uso somente por pessoas autorizadas previamente.

CONFIDENCIALIDADE DAS INFORMAÇÕES
Embora confidencialidade das informações esteja de certa maneira ligada ao controle de acesso à informação no que diz respeito à restrição, existem certos dados que precisam ser tratados com maior ênfase na proteção.

Normalmente a proteção desses dados é feita utilizando métodos criptográficos no manuseio e principalmente na transmissão dessas informações.

AUDITABILIDADE
Um sistema de segurança deve fornecer meios de registro e leitura dos acessos e eventos do sistema, de modo a garantir um estudo aprofundado de todos os eventos ocorridos para verificar falhas e tentativas não-autorizadas de acesso.

COMUNICAÇÕES

Nessa etapa cabe definir que recursos de comunicação poderão ser utilizados dentro da intranet ou extranet, citamos alguns normalmente utilizados:

- Transferências de arquivos
- sistema de correio eletrônico
- Bate papo
- Video-conferência
- Navegação

DISPONIBILIDADE
Nessa parte convém a elaboração de uma estratégia de recuperação rápida e íntegra das informações provenientes de um backup como uma reposição de peças de hardware num sistema em que por algum caso de força maior haja falha ou queima de algum equipamento. A estratégia é fundamental nesses casos para que haja um procedimento a ser feito o mais cedo possível, minizando maiores prejuízos.

SEGURANÇA FÍSICA – CONTROLE DE ACESSO

A segurança física abrange o controle de acesso de pessoas aos equipamentos críticos como servidores e infra-estrutura de suporte como estabilizadores, no-breaks, e sistemas de refrigeração. Um controle eficaz é necessário para evitar acessos não-autorizados. Normalmente este controle é feito por dispositivos eletrônicos automáticos.

CONSCIENTIZAÇÃO

Talvez este seja um dos pontos cruciais da política de segurança, e abrange todos funcionários. Há necessidade do treinamento dos usuários capacitando-os a utilizarem corretamente os dispositivos de segurança disponíveis e atuantes na sua área. A conscientização de suas responsabilidades diante desses dispositivos e suas implicações legais (leis aplicáveis, regulamentos, licenças, princípios éticos da organização), e a importância da preservação da informação como um patrimônio da organização.

ADMINISTRAÇÃO DA SEGURANÇA

É o gerenciamento de todas as etapas da política. Na administração são feitas as análises de vulnerabilidades, relatórios de incidentes, a verificação e comprometimento do desempenho do sistema e o apoio da direção à política de segurança. Com base nessas análises são tomadas as medidas necessárias à correção de falhas no sistema.

Configurando e usando o SUDO

novembro 13th, 2007 | No Comments | Posted in Linux, Segurança

A segurança é um dos aspectos mais discutidos no âmbito da administração de sistemas, isso é especialmente importante, porque é preciso proteger informações valiosas e manter um rígido controle sobre as permissões de acesso à essas informações.

Dentro desse paradigma, o usuário ROOT (administrador) dos sistemas *unix possui acesso incondicional e completo ao sistema, podendo acessar qualquer tipo de dados. Por isso, é extremamente aconselhável que o usuário root só seja utilizado para tarefas administrativas que realmente exijam os poderes deste usuário.

Contudo, é comum que em certas organizações haja mais de um administrador de sistemas, ou frequentemente haja a necessidade de que usuários comuns façam uso de uma ou algumas funções que somente o administrador poderia utilizar.

Ainda há uma outra necessidade, como controlar o uso e manter um controle rígido sobre a utilização dos poderes administrativos em um sistema, se até mesmo essas informações poderiam ser alteradas por um usuário com poderes de root?

Para resolver questões como essas, e para permitir um controle mais rígido e eficaz sobre o uso administrativo é que chegamos a ferramenta conhecida como SUDO.

De maneira resumida, o SUDO permite a um administrador de sistemas dar a usuários específicos a habilidade de executar alguns ou todos os comandos como root ou outro usuário do sistema, enquanto essas ações são completamente registradas em um relatório para posterior análise.

Isso também evita que vários usuários possuam a senha de root já que será através do sudo que os comandos serão executados.

Nesse artigo, estou utilizando o Centos 4.x. Em algumas distribuições o sudo pode vir instalado como padrão, ou você pode simplesmente utilizar um gerenciador de pacotes para instalá-lo, nesse artigo caso minha opção é compilá-lo pelo source code.

Instalação do Sudo

Se você possuir o wget instalado, poderá baixar o sudo para a pasta /usr/local executando:
[root@srv01 ~]# cd /usr/local; wget http://www.sudo.ws/sudo/dist/sudo.tar.gz

Agora nós iremos descompactá-lo:
[root@srv01 local]# tar zxvfp sudo.tar.gz

Acessamos seu diretório criado (o nome do diretório poderá variar de acordo com a versão do sudo instalado):
[root@srv01 local]# cd sudo-1.6.9p8/

Executamos o ./configure que irá checar se existem os pré-requisitos necessários à instalação e preparar para compilação:
[root@srv01 sudo-1.6.9p8]# ./configure

Em meu caso eu precisei instalar algumas bibliotecas do PAM para que a compilação fosse bem sucedida, fiz isso utilizando o YUM:
[root@srv01 sudo-1.6.9p8]#yum install pam*
Complete!
[root@srv01 sudo-1.6.9p8]#

Compilamos agora:
[root@srv01 sudo-1.6.9p8]# make

E finalmente instalamos sudo, visudo, as páginas man e um esqueleto do arquivo sudoers:
[root@srv01 sudo-1.6.9p8]# make install

Para testar o funcionamento do sudo, eu criei um usuário chamado teste:
[root@srv01 sudo-1.6.9p8]# useradd teste
[root@srv01 sudo-1.6.9p8]# passwd teste
passwd: all authentication tokens updated successfully.

[root@srv01 sudo-1.6.9p8]#

Agora eu loguei como o usuário teste em meu sistema, e tentei reiniciar o sistema, mas eu não possuo permissão para isso:
[teste@srv01 ~]$ /sbin/shutdown -r now
shutdown: you must be root to do that!
[teste@srv01 ~]$

Quero através do sudo reiniciar meu sistema, tento então:
[teste@srv01 ~]$ sudo /sbin/shutdown -r now
Password: (aqui é a minha própria senha – usuário teste)
teste is not in the sudoers file. This incident will be reported.
[teste@srv01 ~]$

Ele informa que o usuário teste não está no /etc/sudoers, ou seja, não possui permissões para fazer isso.

Como root novamente, eu irei agora adicionar permissão para que o usuário teste reinicie o sistema, utilizamos o software visudo para editar o arquivo /etc/sudoers:
[root@srv01 sudo-1.6.9p8]# visudo

No meu arquivo de configuração eu adicionei uma linha como essa:
teste ALL=/sbin/shutdown -r now

Salvo minhas alterações e volto para o meu terminal que está logado com o usuário teste, e faço:
[teste@srv01 ~]$ sudo /sbin/shutdown -r now

Broadcast message from root (pts/1) (Tue Nov 13 09:52:18 2007):

The system is going down for reboot NOW!
[teste@srv01 ~]$

Meu sistema acaba de ser reiniciado! Se você desejasse por exemplo, permitir que um grupo de usuários executasse todos os comandos, poderia definir assim:
%grupo ALL=(ALL) ALL

O sudo utiliza o syslogd para registrar os relatórios:
[root@srv01 ~]# tail -f /var/log/messages

Exemplo de comandos barrados:
Nov 13 09:55:39 srv01 sudo: teste : command not allowed ; TTY=pts/1 ; PWD=/home/teste ; USER=root ; COMMAND=shutdown
Nov 13 09:55:41 srv01 sudo: teste : command not allowed ; TTY=pts/1 ; PWD=/home/teste ; USER=root ; COMMAND=/sbin/shutdown

Exemplo de comandos permitidos:
Nov 13 09:56:43 srv01 sudo: teste : TTY=pts/1 ; PWD=/home/teste ; USER=root ; COMMAND=/sbin/shutdown -r now

Caso queira conhecer outras possibilidades, acesse a documentação oficial do sudo ou utilize as páginas man.