10 dicas para criar senhas à prova de hackers.

Vou enumerar as dicas que hackers e especialistas em segurança digital seguem para lidar com as próprias senhas. Você pode usar algumas delas e adaptar outras à sua realidade.

LEIA MAIS:

Conheça a regra “8 por 4” para criar senhas seguras e fáceis de memorizar.

Crie uma senha nova e única a cada cadastro novo

Site novo, cadastro novo… senha nova! E não vale criar sequencias do tipo minhasenha1, minhasenha2 etc. A senha tem que ser inteiramente diferente das anteriores.
vpn-secure-network1-150x150

Mude todas as suas senhas, em todas as suas contas, a cada 6 meses

É semelhante à regra para substituir sua escova de dentes.
Marque em um calendário as datas para trocar suas senhas. Ataques de força bruta podem levar algum tempo para se concretizar e permitir a invasão. Se no meio disto, o cracker se deparar com uma troca de senha programada por você, seu ataque será frustrado, ainda em andamento — o “coitado” vai ter que começar tudo zero.

Não anote suas senhas

De que adianta evitar uma senha fraca e cometer o erro de deixá-la anotada em uma folha de papel?
Há estudos mostrando o quanto é comum as pessoas deixarem suas senhas anotadas em algum lugar perto de seus computadores. Saiba que os invasores já leram todos estes estudos.
Gerenciadores de senhas são a solução ideal para quem precisa lembrar suas senhas.

Não compartilhe

Senhas não são compartilháveis — Lembra da escova de dentes? Pois é.
Há outras formas de se compartilhar conteúdos que sejam do interesse de outras pessoas, sem a necessidade de entregar-lhes as suas senhas.
O problema aqui, geralmente, não é confiar ou não na sua esposa ou no seu marido. O problema está no fato de que você vai ter que dizer a senha em voz alta ou escrevê-la em um papelzinho para passar pra outra pessoa. Acredite nos especialistas: isto não dá certo.

Sites diferentes, senhas diferentes

As pessoas me odeiam quando eu digo isto…
Recentemente, um importante fórum na Internet teve sua segurança quebrada. Os invasores tiveram acesso a todas as senhas de seus usuários. Este incidente deixou vulneráveis todos os que utilizavam aquela mesma senha em outros sites, webmail, redes sociais, blogs etc.
Evite também usar a mesma senha para as contas de webmail, outra senha única para todas as redes sociais etc.

Alguém por perto? Cuidado ao digitar a sua senha

Tenha o cuidado de não digitar a sua senha quando alguém está olhando por cima do seu ombro. Se você usa apenas um dedo para digitar ou é lento, é muito fácil descobrir sua senha desta forma.

Não envie senhas por email

Sites de bancos ou que forneçam serviços online nunca vão te pedir seu nome de usuário ou senha. Um invasor pode se fazer passar por suporte técnico e te pedir informações deste tipo. Não caia nessa.

Troque senhas comprometidas

Se a segurança de algum site, no qual você tinha cadastro, foi comprometida, troque sua senha imediatamente. Se desconfiou que alguém pode ter descoberto sua senha, troque-a.

A opção de lembrar senha no navegador

Embora seja uma grande comodidade, esta solução apresenta graves riscos.
Estes riscos podem ser minimizados com algumas atitudes:

  • Se o seu navegador tiver a opção de perfil, use-a
  • Se o seu sistema operacional tiver a opção de perfil, use-a. Mesmo em computadores compartilhados por vários membros da família, o ideal é que cada um faça seus acessos dentro de seu próprio perfil
  • Se o computador usado não te pertence, lembrar a senha no navegador é uma péssima ideia

Evite digitar senhas em computadores que não te pertencem

Invasores podem instalar key loggers para capturar as senhas digitadas na máquina. Portanto, evite este tipo de situação.
Algumas pessoas instalam seu próprio sistema em um pendrive para fazer uso dele em cyber cafes e outros computadores públicos.

Saiba mais…

Use a regra 8 por 4 para criar uma senha segura.

Sempre que se vai criar uma nova conta, em um website (rede social, forum, email, portal etc) o dilema senha segura vs senha fácil de lembrar volta à tona.
Neste artigo, vou abordar o problema e mostrar algumas soluções práticas que você pode adotar agora mesmo. As dicas, que seguem, podem e devem ser adaptadas para atender às suas próprias necessidades. Afinal, as senhas são suas.
Cadeados

LEIA MAIS:

As 10 dicas dos hackers sobre senhas.

O processo de criação de senhas tem, essencialmente, duas regras

Ao seguir estas duas premissas, você estará no caminho para criar uma senha de relevantemente segura.

  • O comprimento da senha: Senhas devem ter, no mínimo 8 caracteres. Quanto maior o comprimento da sua senha, melhor. Senhas com mais de 10 caracteres são mais difíceis para quebrar através da força bruta.
  • Complexidade da senha: Alguns grupos de caracteres devem estar sempre incluídos na formulação das suas senhas:
    355232758_4689237613_m

    • letras minúsculas;
    • letras maiúsculas;
    • números;
    • caracteres especiais.

Alguns autores chamam a combinação das duas regras de regra 8 por 4, uma vez que se resume a escolher senhas que tenham, pelo menos 8 caracteres, dentre os quais, 4 (no mínimo) satisfazem a regra anterior, da complexidade da senha.
Se você satisfizer estas duas exigências a cada senha criada, já estará no caminho mais seguro.

Guia para criar suas novas senhas

  • Siga a regra acima: 8 por 4. Este é o fundamento de todo o processo;
  • Use caracteres únicos: dos 8 caracteres contidos na sua senha, 5 não se repetem – ou seja, são únicos;
  • Use um gerenciador de senhas: uma vez que as senhas mais fortes são mais difíceis de lembrar, um bom software pode ser de grande valia para te ajudar neste ponto;
  • Crie senhas baseadas em frases que lhe sejam fáceis de lembrar. Vale usar letras, estrofes, títulos de músicas etc. Por exemplo:

    “I used to buy my faith in worship” pode se transformar em “Iu2bmFiW”

    Como evitar as senhas fracas

    Há uma série de práticas que devem ser evitadas a todo custo, na hora de criar uma senha. Fuja destas ciladas:

    1. senha igual ao nome de usuário;
    2. nomes de pessoas da sua família, do seu cachorro, gato etc;
    3. que contenham informações pessoais sobre você ou membros da sua família: o que inclui datas de nascimento/casamento, números de telefone, placa do veículo, nome da sua rua etc;
    4. sequencias, quaisquer que sejam, alfabéticas ou numéricas. Evite coisas como abcde, 12345, poiuy etc;
    5. palavras do dicionário. Se a sua senha pode ser encontrada em um dicionário, ela é ruim. Ainda que você acrescente um ou outro caractere alfanumérico para “complicar”, ela não serve;
    6. palavras do dicionário de outro idioma também não serve;
    7. substituição de letras por números nas palavras é um truque velho e previsível para qualquer invasor;
    8. qualquer uma das situações anteriores, só que em ordem inversa;
    9. senha nenhuma;

4 comandos fatais e proibidos pro Linux.

Há comandos que são extremamente danosos pro seu sistema operacional Linux, se executados inadvertidamente.
Felizmente, nenhum deles pode ser executado sem privilégios administrativos — mas você deve ser cuidadoso, mesmo assim.
Captura_de_tela-Breaking.Bad.S01E04.avi-1Se o seu objetivo é o aprendizado, o ambiente mais seguro para testar estes e muitos outros comandos é o virtual. Aprenda a criar uma máquina virtual e vá brincar com segurança dentro dela.

O comando que apaga tudo

A função do comando rm é remover arquivos — e ele pode remover diretórios inteiros também, sem pedir qualquer confirmação.
Ao executar o comando rm -rfv /, com privilégios de root todos os arquivos e diretórios do seu sistema serão eliminados.
Veja o que ele faz:

  • r — indica a recursividade. Todos os arquivos do diretório atual e seus subdiretórios sofrerão a ação do comando;
  • f — indica a ‘forçabilidade’. Todos os arquivos serão forçosamente removidos, independente de suas permissões;
  • v — liga a ‘verbosidade’. Torna tudo mais lindo ao exibir os arquivos à medida em que são eliminados no seu terminal;
  • / — indica o local em que a operação ocorrerá. Neste caso, a raiz. É isto que torna o comando todo tão perigoso;

Se você executar a linha sem privilégios administrativos, só os arquivos nos quais você tem permissão de escrita serão afetados.

Como executar uma fork bomb

Esta é uma das formas de se fazer um ataque de negação de serviços, que consiste em, basicamente, saturar os recursos de um servidor ao ponto de torná-lo indisponível.
A fork bomb apresentada a seguir faz com que o Linux ou o Unix opere definindo uma função, chamada ‘:’ e que refira-se a si mesma duas vezes – em background e foreground:

: (){ : | : & };:

No Linux, o administrador pode prevenir este tipo de ataque com o comando ulimit que impõe restrições à quantidade de processos simultâneos por usuário.

Formatar uma partição

Qualquer instalação decente do Linux estará distribuída em várias partições. O comando:

mkfs.ext4 /dev/sdaX</code>

vai aplicar uma formatação completa à partição /dev/sdaX.
Formatar um disco completamente, desta forma, pode ser útil no caso de se estar repassando a máquina para uma outra pessoa.

Escrever diretamente no disco rígido

Ao enviar a saída de um comando diretamente pro endereço do dispositivo de disco rígido não é apenas desaconselhável. É uma ação muito perigosa e danosa pro sistema de arquivos, em sua máquina.
Pode ser feito da seguinte forma:

ls > /dev/sda

Há várias outras formas de se danificar um sistema Linux/Unix — e, na maior parte delas, é necessário ter privilégios especiais para ter sucesso.
Distribuições Linux voltadas para usuários com menor nível de conhecimento costumam vir com algumas configurações que previnem a maior parte dos acidentes.

Seja responsável! 😉

Como fazer backup do seu banco de dados MySQL?

Cluster (Imagem: WikiMedia.)
Cluster (Imagem: WikiMedia.)

A segurança em TI, começa com as cópias de segurança (os backups):

  1. Sempre faça Backup de tudo o que é importante
  2. Teste frequentemente os seus backups — poucas coisas, em sua vida, serão tão frustrantes quanto, ao tentar se recuperar de um desastre, descobrir que não foram feitos adequadamente ou se corromperam
  3. Armazene adequadamente — mantenha as cópias de segurança longe do local em que se encontram os dados originais, para que não corram riscos de sofrer o mesmo incidente (roubo, incêndio, sabotagem etc).

Nenhum ‘esquema’ de segurança está completo se o foco for apenas a prevenção dos eventos sinistros. Política de segurança vai além da prevenção — uma vez que as possibilidades de ser vítima de invasão e acidentes são reais — por isso é fundamental ter um plano eficaz para uma rápida recuperação. Se os danos são inevitáveis, ter um plano B, C… pode minimizar significativamente os prejuízos.

Você é blogueiro? Tem um website ou portal?

Donos de sites e blogueiros têm razões adicionais para se preocupar com backup de todos os seus posts. O provedor pode tirar do ar e remover de seus servidores todo o seu trabalho, se acreditar que termos do seu contrato foram violados.
Veja como se colocar do lado seguro.

O nosso cenário

Neste post, vou mostrar como usar o comando mysqldump para fazer guardar cópias de segurança dos dados armazenados no seu servidor. Se você não se sente à vontade com comandos em modo texto, pode usar uma excelente ferramenta web, chamada phpMyAdmin, que faz o mesmo trabalho com alguns cliques.
Vamos usar algumas variáveis em meio aos comandos, para tentar torná-los mais compreensíveis. Se você não souber como preencher algumas destas variáveis, consulte o administrador do banco de dados. Veja quais são:

  • dbname — o nome do banco de dados
  • dbuser — o nome de usuário que vai acessar o banco. Em alguns casos, vamos usar o root (administrador)
  • dbpass — a senha do usuário do banco
  • dbhost — o servidor em que se encontra o banco. Em uma instalação local, normalmente é localhost

Como fazer backup do banco de dados com o mysqldump

O mysqldump é uma ferramenta eficiente para fazer backup do seu banco de dados na linha de comando, no servidor local ou remoto (via SSH). Ele cria um arquivo .sql com os comandos DROP, CREATE e INSERT. Veja como usar o comando mysqldump como root:

mysqldump -u root -p dbname > backup.sql

No exemplo acima, direcionamos uma cópia integral do banco de dados dbname pro arquivo backup.sql. Todos os comandos sql necessários para a criação de uma nova versão daquele banco, estão incluídos em backup.sql.
Para copiar mais de um banco de dados, separe seus nomes com espaços:

mysqldump -u root -p dbname1 dbname2 dbname3 > backup.sql

Se você quiser fazer backup de todos os bancos de dados do servidor, usar o parâmetro --all-databases torna tudo mais fácil:

mysqldump -u root -p --all-databases > backup-de-tudo.sql

Nota: O comando mysqldump bloqueia o banco de dados enquanto trabalha. Portanto, ele deixa os usuários sem acesso, enquanto está sendo executado. Em casos de bancos de dados muito extensos, ele pode demorar para ser concluído. O bom senso manda avisar os usuários com antecedência e não fazer backups demorados em horários de pico.

Como comprimir o arquivo de backup

Há vários motivos para comprimir o seu arquivo de backup:

  • arquivos de texto .sql grandes, atingem excelentes taxas de compressão;
  • quando comprimidos, podem ser enviados de um ponto a outro na rede muito mais rápido, consumindo muito menos banda;
  • você pode armazenar uma quantidade maior de cópias de segurança em uma mídia física (CD, DVD ou BluRay) ou em uma conta na nuvem.
    • Veja como é fácil realizar este processo, usando o exemplo anterior:

      mysqldump -u root -p --all-databases | gzip -9 > backup-de-tudo.sql.gz 

      Usamos o aplicativo gzip, presente na maioria das distro Linux, com o nível de compressão máximo (9), neste exemplo.
      Para descompactar, posteriormente, use o gunzip:

      gunzip backup-de-tudo.sql.gz

      Como restaurar o backup feito com mysqldump

      Não esqueça de substituir as variáveis pelos valores adequados, a seguir:

      mysql -u dbuser -pdbpass dbname < backup.sql

      Nota: A senha deve ser digitada “grudada” ao parâmetro -p.
      Para restaurar um arquivo de backup comprimido, faça assim:

      gunzip < backup.sql.gz | mysql -u dbuser -pdbpass dbname

      Se você deseja inserir os dados de backup.sql em um banco de dados já existente:

      mysqlimport -u dbuser -pdbpass backup.sql

      Como fazer um backup local e restaurar no servidor remoto

      Aqui, vou descrever o meu modo preferido de fazer backups. O problema é que nem sempre ele é aplicável — alguns provedores proíbem conexões, de fora, ao banco de dados. Ou seja, só aceitam conexões no localhost ou de dentro da sua própria rede. Quando isto ocorre, você recebe a seguinte mensagem ao tentar se conectar:

      mysqldump: Got error: 1045: Access denied for user ... 

      Neste caso, o correto é se conectar ao provedor primeiro. Depois, ao banco de dados. Clique aqui, para saber como se conectar ao MySQL, em um servidor remoto via SSH.
      Uma vez conectado, o mysqldump pode ser usado para realizar o serviço. Veja como:

      mysqldump -u dbuser-local -pdbpass-local dbname-local | mysql -u dbuser-remoto -pdbpass-remoto --host=dbhost-remoto -C dbname-remoto

      Nota: Fique atento, para usar os nomes e senhas corretos. Os valores e nomes locais são possivelmente diferentes dos valores remotos.
      Enfim, muito mais pode ser escrito sobre backups e, com toda certeza, há muitas outras formas de realizá-los para bancos de dados MySQL. O importante, mesmo, é fazê-los com frequência. Não se esqueça disto.

Use sync e sysctl para esvaziar a memória cache no Linux

Neste post, vou mostrar como usar algumas ferramentas de linha de comando para escoar o cache da memória RAM.
O objetivo deste post é dar aos iniciantes um pouco mais de conhecimento sobre gerenciamento de memória no Linux e alguns comandos para gestão do sistema de cache.

cache memória RAM
Clique, para mais detalhes.

Em que casos é necessário limpar a memória cache do meu sistema?

Em duas palavras: quase nunca.
O sistema já tem um excelente gerenciamento de memória e a tendência é sempre aproveitar toda a quantidade de memória disponível no seu computador ou smartphone, caso você esteja usando o Android.
A função do caching é tornar o sistema mais veloz, na medida em que ele mantém sempre à mão as informações mais requisitadas. O Linux é extremamente eficiente nisto e não há por que “se meter” neste processo e fazer o trabalho “manualmente”.
Em alguns casos, contudo, o processo de escoamento do cache pode ser útil.
Ao transferir arquivos muito volumosos (vídeos, por exemplo) do seu HD para um pendrive ou um HD externo, conectado na entrada USB, o Linux usa muito o sistema de caching, como sistema intermediário de armazenamento.
O motivo de o Linux usar intensivamente o caching é que o seu dispositivo interno transfere os dados muito mais rápido do que os dispositivos externos conseguem absorver.
Este é um dos motivos para você não conseguir desmontar/ejetar um pendrive ou qualquer outro dispositivo conectado — por que ele ainda não gravou todos os dados, ainda armazenados no cache.

Como esvaziar o cache

Os comandos sysctl e o sync podem ser usados em conjunto ou separados para realizar a tarefa.
Vamos verificar, antes, se o cache está sendo usado. Para isto, abra um terminal e digite o seguinte comando:

free -m
             total       usado      livre    compart.  buffers     em cache
Mem:          3,6G       2,9G       723M       172M       3,5M       1,5G
-/+ buffers/cache:       1,4G       2,2G
Swap:          15G         0B        15G

Observe a última coluna em cache.
No exemplo acima, há quase 1,5 Gb da memória cache em uso.
Para limpar o cache será necessário executar comandos com privilégios administrativos.
Veja como:

sudo sync
sudo sysctl -w vm.drop_caches=3
sudo sysctl -w vm.drop_caches=0

alternativamente, você pode executar os 3 comandos, em uma linha só:

sudo sync && sudo sysctl -w vm.drop_caches=3 && sudo sysctl -w vm.drop_caches=0

Saiba o que a linha de comando acima faz:

  • sync — este comando, assegura que os dados pendentes no sistema de cache sejam escoados pro disco.
  • sysctl -w vm.drop_caches = 3 — limpa o cache na memória
  • sysctl -w vm.drop_caches = 0 — reinicia o drop cache.

Veja o resultado:

             total       usado      livre    compart.  buffers     em cache
Mem:          3,6G       1,7G       1,8G       124M         0B       351M
-/+ buffers/cache:       1,4G       2,2G
Swap:          15G       156K        15G

Observe como o uso do cache foi drasticamente reduzido.
Esta linha de comando pode ser usada para limpar o cache armazenado na memória RAM.

Método alternativo

O método anterior funciona bem no Ubuntu.
Mas pode não dar resultado em outras distros. Neste caso, recomendo usar o comando sync das seguintes formas:
Para liberar pagecache, dentries e inodes, use o sync desta maneira:

sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches

Para liberar dentries e inodes use-o assim:

sudo sync; sudo echo 2 > /proc/sys/vm/drop_caches

Para liberar apenas o pagecache, faça assim:

sudo sync; sudo echo 1 > /proc/sys/vm/drop_caches

Se você conhece outras maneiras para realizar o serviço, seja bem vindo para comentar sobre isso.
Não esqueça de compartilhar o post! 😉

GLOSSÁRIO

  • drop cache — versões superiores à 2.6.15 do kernel do Linux, dispõem de um mecanismo que faz o kernel eliminar o page cache e/ou o cache de inodes e o cache dentry — o que pode auxiliar significativamente na liberação de memória no sistema.
    Para fazer uso manual do /proc/sys/vm/drop_caches, basta gravar um número nele — o que pode ser feito com o comando echo.
  • page cache — também chamado de disk cache é uma cópia de parte dos dados do disco, mantida na memória RAM, pelo sistema operacional.
    O objetivo é dar acesso mais rápido a estes dados ao usuário.
  • dentries — A palavra “dentry” é uma abreviatura para “directory entry” (entrada de diretório).
    Uma dentry é nada além de um componente específico no caminho para um arquivo a partir da raiz do sistema. Sua função é prover acesso a arquivos e diretórios. Mohan, I. Chandra (2013)
  • inodes — “inode” é abreviatura para “index node“. Em um sistema de arquivos Unix, um inode é uma estrutura de dados usada para representar um objeto do sistema de arquivos – qual seja um arquivo, um diretório etc.
    Cada inode armazena os atributos e localizações dos blocos do disco referentes ao sistema de arquivos.
  • buffers — memória usada temporariamente para armazenar dados em tráfego no sistema.

Se quiser ler mais sobre o assunto:
O sistema de arquivos /proc.
http://www.commandlinefu.com/commands/view/1026/empty-the-linux-buffer-cache
http://duopetalflower.blogspot.com.br/2009/09/clearing-cache-memory-in-linux-using.html