Renato Silveira Furtado
2 Principais tecnologias front-end HTML CSS JAVASCRIPT AJAX JQUERY FLASH JAVA APPLET Linguagens que executam no cliente
3 HTML Hipertext Markup Language Baseado em tags (marcações) É a estrutura dos sites. <html> <head> <title>título do site</title> </head> <body> <p>hello World</p> </body> </html>
4 CSS Cascading Style Sheets (folhas de estilo em cascata) Responsável pela estética do layout (cores, fontes, tamanhos) <html> <head> <title>título do site</title> </head> <body> <p>hello World</p> </body> </html> p{ font-family:comic Sans Ms. color:cyan; font-size:20px; } body{ background-color:#000; }
5 Javascript Linguagem de scripts que executa no browser do cliente. Syntaxe semelhante ao JAVA. Captura eventos e executa algoritmos. Tem controle sobre todos os elementos da página. Cria páginas mais dinâmicas e interativas. Pode ajudar a proteger informação.
6 Javascript <html> <head> <title>título do site</title> </head> <script> function aumentar(paragrafo){ paragrafo.style.fontsize="100px"; } function diminuir(paragrafo){ paragrafo.style.fontsize="20px"; } </script> <body> <p onmousemove="aumentar(this)" onmouseout="diminuir(this)">hello World</p> </body> </html>
7 JQUERY A biblioteca Javascript mais popular do mundo. Visa facilitar o desenvolvimento de scripts client side. Utilizado por 77% dos 10 mil sites mais visitados.
8 JQUERY <body> <script> $(function () { $("p").click(function (){ $("p").css("font-size","100px"); }); }); </script> <p>clique</p> </body>
9 AJAX Asynchronous Javascript and XML Utilizasse de solicitações assíncronas tornando as páginas mais interativas. Realiza requisições no servidor sem atualizar a página. Pode ajudar a proteger informação
10 AJAX <script> $(function () { $("p").click(function (){ $("#conteudo").load("conteudo.html"); }); }); </script> <p>clique</p> <div id="conteudo"></div>
11 Flash É um programa de criação multimídia utilizado para criar conteúdo para o Adobe Flash Player, tais como aplicações web, jogos e desenhos animados e também conteúdo para dispositivos móveis. Tem caído em desuso e gradativamente substituído por outras tecnologias como SVG, canvas e WebGl. Mais utilizado em jogos atualmente.
12 JAVA APPLET Aplicativo JAVA que roda do navegador do cliente Mais controle do sistema Menos controle sobre a página
13 Linguagens back-end Perl Ruby ASP VB Java PHP Python Linguagens de programação que rodam no servidor.
14 Arquitetura de uma aplicação WEB HTML CSS JAVASCRIPT AJAX JQUERY FLASH JAVA APPLET Perl, Ruby, ASP, VB, Java, PHP, Python Servidor Cliente Banco de Dados
15 Como deve ser uma aplicação segura? Confidencialidade: somente as partes autorizadas devem ter acesso às informações armazenadas ou trafegadas; Autenticação: as partes precisam confirmar a identidade do seu interlocutor (seja ele um computador, um sistema, uma pessoa) Exemplo: remetente de ; liberação de conexão para um determinado IP ou MAC; Integridade: dados sem alteração (por acidente ou por intenção), íntegros ; Não repúdio: impossibilidade de negar autoria; Disponibilidade: os dados devem estar disponíveis para acesso sempre que necessário.
16 Tipos de ataque Engenharia Social Varredura (Scanning) Negação de Serviço DDoS Exploração de Bugs Exploração de Protocolos Ataque de Dicionário (Força bruta) Código Malicioso
17 Engenharia social Vítimas são enganadas através do uso de informações obtidas por meio de pesquisa. Pessoas de boa fé são induzidas a executar ações indevidas. O atacante pode se utilizar de telefonemas, mensagens eletrônicas falsificadas,... Observe que este não se trata de um problema computacional, mas da psicologia humana.
18 Engenharia social
19 Engenharia social
20 Varredura (Scanning) A varredura é a coleta de informações sobre o sistema de forma automatizada; Por exemplo, existem programas que descobrem os IPs das máquinas da rede, através de testes de ping, para um intervalo de IPs específicos; Existem programas ainda mais sofisticados, como é o caso do NESSUS e SATAN, que possuem uma base de conhecimento de possíveis fragilidades dos sistemas, e tentam encontrar algum computador na rede que apresente alguma das vulnerabilidades conhecidas.
21 Negação de Serviço DDoS Tem como objetivo interromper o funcionamento normal do sistema. Para atingir seu objetivo, o intruso inunda o sistema ou a rede com mensagens, processos ou requisições.
22 Exploração de bugs É a técnica que explora falhas de implementação presentes em programas e sistemas operacionais. Todos os programas apresentam bugs, alguns já descobertos outros não. Por isso que as máquinas expostas a ataques devem possuir o menor número possível de programas instalados.
23 Exploração de Protocolos São exploradas falhas do protocolo, no caso o TCP/IP: IP Spoofing: num sistema de autenticação baseado em endereço IP, o atacante engana o alvo, simulando o endereço IP de sua máquina, como se fosse um dos que tem privilégios especiais. DNS Spoofing: o ataque é feito ao servidor de nomes (DNS), fazendo com máquinas não confiáveis se passem por máquinas confiáveis; ARP Spoofing: os endereços MAC não são alterados, o que é alterada é a tabela que relaciona o endereço MAC ao IP. Com isso, os pacotes que seriam roteados para a máquina atacada, passam a ser encaminhados para a máquina atacante.
24 Ataque de Dicionário força bruta O ataque consiste em fazer uso de uma base de palavras (dicionário), normalmente em vários idiomas, que são testadas como possíveis senhas, por meio de um programa específico.
25 Código Malicioso O atacante faz uso de programas construídos especialmente para causar danos: Vírus; Cavalos de Tróia: programas que aparentam realizar determinada função, mas que na verdade, causam danos quando ativados; Porta dos Fundos (backdoor): programas que abrem uma brecha no sistema para permitir fácil invasão, permitindo conexão por métodos que não os tradicionais; Porta dos Fundos de Controle Remoto: mesma classe dos programas anteriores, mas que agora podem ser manipulados remotamente (Back Oriffice, NetBus). Keylogger: Captura teclas digitadas e ações dos usuários.
26 Código Malicioso Injeção de código: atacante insere códigos maliciosos em campos de formulários Exploit: sequência de comandos que tomam vantagem de um defeito, falha ou vulnerabilidade.
27 SQL Injection Aproveita de falhas em sistemas que interagem com bases de dados via SQL. Insere instruções SQL em campos de formulário a fim de extrair dados, alterar permissões ou destruir a base.
28 SQL Injection
30 Blind SQL Injection A página possui uma certa segurança e o invasor não visualiza os dados do base de dados através da página web. O invasor descobre os dados desejados de 1 em 1 caractere, utilizando a função SUBSTRING do SQL em conjunto com uma verificação booleana.
31 Blind SQL Injection
32 Tarefa 2 A segunda tarefa é selecionar, estudar e apresentar um dos erros da lista Top 25 Software Errors do Mitre/SANS. Ao relatar a vulnerabilidade, se possível tentar associar a mesma a tarefa 1. a) Escolher o erro na lista Top 25 SANS/MITRE; b) Explicar o erro; c) Apresentar exemplo;