1 / 25

Falhas em sistemas de uso comum

Falhas em sistemas de uso comum . Nuno Miguel Cecílio Sampaio Mestrado Eng. Informática Nº 846. Resumo. Bug Divisão do processador Intel Pentium Ataques DDos – Distributed Denial of Service. Bug Divisão do Pentium. "Redefining the PC -- and Mathematics As Well..."

cosmo
Download Presentation

Falhas em sistemas de uso comum

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Falhas em sistemas de uso comum Nuno Miguel Cecílio Sampaio Mestrado Eng. Informática Nº 846

  2. Resumo • Bug Divisão do processador Intel Pentium • Ataques DDos – Distributed Denial of Service

  3. Bug Divisão do Pentium • "Redefining the PC -- and Mathematics As Well..." • "Intel Inside?   Don't Divide!"

  4. Origem do bug • Dr. Thomas R. Nicely, Professor de Matemática no Lynchburg College, Virginia • Projecto de investigação na área de matemática pura – Teoria dos números computacional • Maior parte dos computadores eram 486's, no entanto 1 Pentium foi adicionado em Março de 1994.

  5. Origem do bug • Em 13 Junho 1994 Dr. Nicely reparou numa discrepância nos seus resultados. Um estudo intensivo isolou o problema aos números primos 824633702441 e 824633702443 • Em 24 de Outubro, contactou a Intel reportando o bug • Intel sabia do bug meses antes e já tinha começado a produzir chips novos corrigidos.

  6. Divisão abstracta q - quociente D - Divisor R[j] – Resto da enésima iteração. (R[0] é o dividendo.) q +--------- D| R[j] -qD --------- Rnew[j] <-- Rnew[j] = (R[j] - qD) ======== R[j+1] = base * Rnew[j] (base = 10 decimal, 4 para radix 4)

  7. Formula iterativa • R[j+1] = base * (R[j] - q[j]*D) • Fórmula iterativa para base 4: R[j+1] = 4 * (R[j] - q[j]*D)

  8. Algoritmo de divisão SRT • 1-Escolha dos digitos significativos do divisor e dividendo • 2-Usar essas escolhas como índices numa tabela de lookup que apresenta uma escolha dos proximos digitos de quociente. (neste caso os proximos quocientes podem ser -2, -1, 0, +1, +2). • 3-Multiplicar o divisor pelo quociente escolhido e subtrair lo pelo dividendo. (ou adição caso o escolha de quociente seja negativa) • 4-Guardar os digitos de quociente nos digitos menos significativos do registo do quociente. The Pentium division Flaw, David W. Deley, 1995. http://members.cox.net/srice1/pentbug/introduction.html

  9. Algoritmo de divisão SRT • 5-Trasladar o resto da divisão por 2 casa decimais e os registos de quociente tambem por 2. (i.e. radix 4) • 6-Escolher os digitos mais significativos do novo resto parcial • 7-Ir para 2 a nao ser que tenham sido gerados os digitos significativos suficientes. • 8-Gerar o quociente binário juntando os valores no registo de quociente. • 9-Se o ultimo resto parcial foi negativo entao ajustar o quociente subtraindo o valor.

  10. PENTIUM LOOKUP TABLE • Gráfico Resto parcial vs. Divisor. • As divisões no eixo vertical estão separadas por 0.001 representando os valores de R[j]. • As divisões no eixo horizontal estão separadas por 0.0001 representando os valores do divisor. • As 5 células marcadas deveriam especificar um digito de quociente de +2 mas apresentam um digito de quociente de 0 • Seleccionando o dígito de quociente 0 quando R[j] está neste eixo é inaceitável – o valor de digito é demasiado baixo • Quaisquer que sejam os dígitos seguintes o quociente total será sempre inferior que a resposta correcta.

  11. Exemplo do bug • 5506153/294911 • Correcto: 18.67055823621364 • Pentium: 18.66990719233938

  12. Frequência do erro • Probabilidade de erro: 1.14 x 10^-10. (fonte: Intel white paper) • Um paper de Edelman’s, refere que as entradas erróneas não são facilmete alcançáveis uma vez que existe um padrão não aleatório que é uma pré-condição de acesso a uma dessas entradas. A tabela em si é pequena (+- 1500 entradas), das quais 5 entradas estão erradas. Uma estimativa crua seria de 5/1800, que é muito maior que a verdadeira probabilidade de erro.

  13. Investigação • Verificação Formal • Abordagem muito diferente de ‘teste de software’ • Prova de certificação de código (ou pseudo-código) • A prova institui que o programa satisfaz a relação input/output para todas as entradas.

  14. Custo do bug • A Intel decidiu substituir todos os processadores de graça caso a substituição tenha sido pedida pelo cliente. • As empresas precisam de tratar da reconfiguração: • Substituição dos Pentiums poderia custar às empresas uma média de €289 por sistema, incluindo trabalho administrativo e tempos de perda • 600 PCs, custariam à uma empresa mais de €200.000.

  15. Negação de serviço • Denial of Service • Distributed Denial of Service

  16. Ataques negação serviço (DOS) • Desabilitaram os serviços da Yahoo, Amazon, eBay, CNN.com, Buy.com, ZDNet, E*Trade, e Excite.com por algumas horas. • Os ataques foram activados de uma grande variedade de ‘zombies’ intermediários que foram comprometidos. • Os ataques efectuados não necessitaram de intrusão nos alvos a comprometer.

  17. Negação de Serviço • Negação de Serviço (DoS) é um ataque que permite que uma pessoa deixe um sistema inutilizável ou consideravelmente lento para os utilizadores legítimos através do consumo de seus recursos, de maneira que ninguém consegue utilizá-los.

  18. DDos – Negação de serviço distribuída • A Negação de serviço distribuída (DDoS) utiliza o conceito de computação distribuída para efectuar os ataques. O atacante invade e apropria-se de diversos computadores para executar o ataque a partir de diferentes origens simultaneamente. • Trinoo, Tribal Flood Network TFN, TFN2K, Stacheldraht,….

  19. DDos – Negação de serviço distribuída • A topologia de uma rede DDoS é dividida em quatro partes. • Os sistemas comprometidos são divididos em mestres e agentes. • Os agentes geram o tráfego que irá resultar na negação de serviço, estes agentes são controlados por um ou mais mestres. • A utilização de duas camadas (mestres e agentes) entre o atacante e a vítima dificulta a analise forense.

  20. Topologia

  21. Prevenção • As negações de serviços podem causar grandes prejuízos, esforço, e grandes perdas de tempo. • Deve se considerar a protecção relevante de encontro a estes ataques. Isto pode incluir: • estabelecer a política apropriada de segurança • construir a topologia da rede de tal maneira que limita a eliminação de servidores mútuos. • implementação de filtros nos routers, firewalling, instalando as protecções de encontro aos ataques  flooding do tcp syn.

  22. Prevenção • Fazer o patching do s.o. e dos serviços, logo após a descoberta da vulnerabilidade - isto inclui a monitorização regular de vulnerabilidades • uso de sistemas da detecção de intrusões (IDS) a fim de ser informado imediatamente sobre alguma actividade suspeita

  23. Custo da falha • O crime informático mais ‘caro’ nos Estados Unidos em 2003 • Os ataques resultaram em perdas de $ 1 bilião de dollars nos dias dos ataques. • Perdas em vendas e publicidade na ordem dos $200 milhões de dollars • $200 milhões de dollars foram gastos em upgrades infra-estrutura de segurança.

  24. Bibliografia • “DDOS Outages Cost $1.2 Billion” , Dave Murphy ISSN 1535-3613 • Packetstorm, http://packetstorm.securify.com/distributed/ • "Strategies for Defeating Distributed Attacks" Simple Nomad, http://www.bindview.com/Support/Razor/Papers/. • "Purgatory 101: Learning to cope with the SYNs of the Internet" NightAxis http://packetstorm.securify.com/papers/contest/RFP.doc • find_ddos, http://www.fbi.gov/nipc/trinoo.htm • zombie_zapper, http://www.bindview.com/Support/RAZOR/Utilities/Windows/ • RFC 2267, "Network Ingress Filtering: Defeating Denial of Service Attacks", http://www.faqs.org/rfcs/rfc2267.html • catless.ncl.ac.uk/Risks/20.79.html#subj1 • Inside Risks 118, CACM 43, 4, April 2000, by P.G.Neumamm • “The Mathematics of the Pentium Flaw”, Alan Edelman, http://www-math.mit.edu/%7Eedelman/ • “Statistical Analysis of Floating Point Flaw in the Pentium(TM) Processor”, Intel (1994)

More Related