Posts

Showing posts from March, 2016

Erro ao conectar via ssh

Ao tentar conectar via ssh a um servidor, aconteceu o seguinte erro: λ ssh <host> Unable to negotiate with <host>: no matching host key type found. Their offer: ssh-dss O motivo disso, é que a partir da versão 7.0 do OpenSSH as chaves do tipo DSA(Digital Signature Algorithm) são desativadas por padrão, por serem fracas. Lembrando, o uso de chaves DSA é desaconsalhavel. Abaixo segue um workaround para conseguir conectar: echo Host <host> >> ~/.ssh/config echo HostKeyAlgorithms +ssh-dss >> ~/.ssh/config

Query DNS Nslookup (Windows e Linux)

O comando "nslookup" faz queries no DNS, para resolver um nome ou ip informado, retornando assim o DNS utilizado e as informações do domínio buscado. Exemplo nslookup facebook.com Resultado: gbotossi@kalil:~$ nslookup facebook.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: facebook.com Address: 66.220.158.68 Informações Extras: Caso não seja informado o servidor DNS, será utilizado o que está definido na maquina(no meu caso o DNS do google) Se for do interesse o uso de outro Servidor DNS deve-se informar dois parâmetros, sendo o primeiro parâmetro informado é domínio ou ip a ser resolvido e o segundo parâmetro é o DNS a ser utilizado Exemplo: gbotossi@kalil:~$ nslookup 66.220.158.68 208.67.222.222 Resultado: C:\Users\Guilherme>nslookup 66.220.158.68 208.67.222.222 Server: resolver1.opendns.com Address: 208.67.222.222 Name: edge-star-mini-shv-07-frc3.facebook.com Address: 66.220.158.68

Converter Minutos do dia em Horario

Utilizando a classe TimeUnit podemos fazer a conversão dos minutos em hora, minuto e segundo. A constante MINUTES é utilizada para denominar que estamos trabalhando com minutos e os métodos toHours, toMinutes, toSeconds recebem a quantidade de minutos a ser convertida. Segue o exemplo de utilização Long minutesOfDay = Long.valueOf(10L); String format = "%02d:%02d:%02d"; Long hour = TimeUnit.MINUTES.toHours(minutesOfDay); Long minutes = TimeUnit.MINUTES.toMinutes(minutesOfDay) - TimeUnit.HOURS.toMinutes(hour); Long seconds = TimeUnit.MINUTES.toSeconds(minutesOfDay) - TimeUnit.MINUTES.toSeconds(minutes); String time = String.format(format,hour, minutes, seconds);

Split de uma string a cada N-caracteres

Considerando o codigo abaixo, o método split recebe uma regex. String str = "2018192515"; String[] arrStr = str.split("(?<=\\G.{2})"); System.out.println(Arrays.toString(arrStr)); O resultado será [20, 18, 19, 25, 15] A regex  consiste de : Operador Descrição () faz um grouping ?<= Positive Lookbehind \G RegEx boundary character . Ocorrência de qualquer caractere {2} 2 vezes a ocorrência do operador anterior RegEx boundary character : define o final da ultima String encontrada e faz a busca a partir desse ponto

Design de Segurança - Defense in Depth

Image
Esse é um design de origem militar e  que foi migrado para área de segurança da informação. Ele consiste no uso de camadas de proteção e de redundância de mecanismos de segurança. Este modelo usa da interação entre Software, Hardware  e Policies, conforme imagem abaixo: Explicação das camadas: Data :  Normalmente é a parte de interesse do atacante Application : O Software  que tem por função realizar alguma tarefa com os dados Host : A maquina onde os softwares estão instalados e sendo executados Internal Network : Infraestrutura interna de rede, que não é visível da internet  Perimeter :  A parte da rede interna que se comunica com a rede externa Physical :  A parte física do computador Policies :  Políticas e procedimentos Ou seja, caso um mecanismo de segurança falhe, ou a redundância entra em ação ou o atacante irá encontrar uma próxima camada. Tendo em mente que não é todo tipo de sistema que se beneficia desse modelo e também que implementar esse modelo , será