A maioria dos sistemas operacionais, principalmente Unix, vem acompanhada de muitos
aplicativos (Pacotes), que são instalados opcionalmente. Sendo assim, torna-se necessário
que vários pontos sejam observados para garantir a segurança desde a instalação do sistema,
dos quais podemos destacar:
- Seja minimalista: Instale somente os aplicativos (Pacotes) necessários,
aplicativos com problemas podem facilitar o acesso de um atacante. Quanto mais aplicativos
existirem na máquina, mais difícil é para o administrador mantê-los atualizados e
informado sobre novos bugs e correções.
- Devem ser desativados todos os serviços de sistema que não serão utilizados:
Muitas vezes o sistema inicia automaticamente diversos aplicativos que não são
necessários, esses aplicativos também podem facilitar a vida de um atacante. Mais
uma vez, quanto mais aplicativos inutilizados na máquina, maiores serão as chances
de um atacante encontrar uma porta aberta de seu sistema e invadi-lo. Ex. FTP se
este serviço não é utilizado pela máquina não é necessário manter este aplicativo
disponível no servidor.
- Use partições diferentes para os diferentes tipos de dados: A divisão física dos
dados facilita a manutenção. Em meu projeto, criei uma partição /HOME, nela serão
criadas todas as contas dos funcionários da instituição e dos colaboradores. E para
o banco de dados criei uma partição /BD, nela ficará o banco de dados, sendo assim
ficará mais fácil de administrá-los e efetuar as devidas correções de aplicativos e
segurança da mesma.
- Remova todas as contas de usuários não utilizadas: contas de usuários sem senha,
ou com a senha original de instalação, podem ser facilmente exploradas para obter-se
acesso ao sistema.
Grande parte das invasões pela internet acontece devido à falhas conhecidas em
aplicações de rede, as quais os administradores de sistemas não foram capazes de corrigir
a tempo. Essa afirmação pode ser confirmada facilmente pelo simples fato de que quando
uma nova vulnerabilidade é descoberta, um grande número de ataques é realizado com
sucesso. Por isso é extremamente importante que os administradores de sistemas se
mantenham atualizados sobre os principais problemas encontrados nos aplicativos utilizados,
através dos sites dos desenvolvedores ou específicos sobre segurança da Informação.
As principais empresas comerciais desenvolvedoras de software e as principais distribuições
Unix possuem boletins periódicos informando sobre as últimas vulnerabilidades encontradas
e suas devidas correções. Alguns sistemas chegam até a possuir o recurso de atualização
automática, facilitando ainda mais o processo.
Desenvolvimento de aplicações WEB
O desenvolvimento de aplicações que irão utilizar a internet como interface,
comentada aqui como aplicações WEB, exige uma maior preocupação com a segurança no
processamento e armazenamento dos dados. Esse tipo de aplicação fica exposta a um
grande número de usuários e ameaças. Hackers estão constantemente testando as
aplicações em busca de vulnerabilidades que possam facilitar o acesso a um sistema,
ou simplesmente falhas, que possam negar um serviço.
PUTTINI [2], podemos destacar algumas das principais práticas para o desenvolvimento
seguro de aplicações WEB:
- Não use mais poder do que o necessário: as aplicações devem rodar num nível de
acesso suficiente para utilizar somente os recursos necessários do servidor, não em
níveis superiores, pois em caso de falhas na aplicação, ela somente terá acesso aos
seus recursos e não aos pertencentes a outros processos.
- Nunca confie nas informações fornecidas pelo usuário: as aplicações sempre devem validar
as informações enviadas pelo usuário, verificando o formato e tamanho dos dados para
evitar possíveis sobrecargas de armazenamento (Buffers Overflows).
- Não guarde as senhas de acesso ao banco de dados ou outros recursos dentro de páginas
pré-processadas ou scripts CGI: muitas vezes é possível obter o seu código fonte,
obtendo-se assim senhas e outras informações sensíveis.
- Use criptografia para armazenar informações sensíveis no servidor: dessa maneira é
possível proteger números de cartão de crédito em sites de comércio eletrônico, ou
qualquer outra informação importante.
- Não deixe comentário no código de produção: caso possam ser visualizados eles
podem auxiliar muito o trabalho de algum invasor.
- Verifique e personalize as mensagens de erro: muitas vezes as mensagens de erro
padrão de uma linguagem podem fornecer informações valiosas sobre o servidor.
- Utilize ferramentas, linguagens e bibliotecas atualizadas: Caso elas possuam
algum problema de segurança todo o sistema estará comprometido.