Segurança no Software

Dois dos autores do blog andamos há anos a ensinar segurança de software e dedicámos os últimos muitos meses a passar as nossas ideias sobre o assunto para papel. O livro chegou às lojas esta semana. Online está disponível por exemplo na própria editora (FCA), na FNAC e na WOOK.



Descrição

O principal objectivo deste livro consiste em responder à questão sobre como desenvolver software seguro. No entanto, o seu âmbito é mais lato, já que trata a segurança de software, um tema que inclui outros aspectos como a auditoria de software e a protecção de software em produção.

O livro aborda este tema em quatro partes. A primeira apresenta uma panorâmica sobre a segurança de software, introduzindo conceitos básicos, princípios de projecto e os mecanismos de protecção dos sistemas operativos convencionais. A segunda parte apresenta as principais classes de vulnerabilidades actuais, bem como aquilo que o programador deve fazer para não as criar quando desenvolve software. A terceira parte aborda o problema de uma perspectiva diferente: apresenta um conjunto de técnicas e ferramentas que podem ser usadas para tornar mais seguro o software que já existe e que pode ter grande dimensão. A quarta parte apresenta um conjunto de tópicos avançados, ou seja, de técnicas que poderão, num futuro próximo, ser usadas para melhorar a segurança de software.

O livro foi escrito tendo em vista dois tipos de leitores. Por um lado, pretende servir de manual para disciplinas de segurança de software a nível universitário: licenciatura e pós-graduação. Por outro lado, destina-se ao profissional da informática interessado em desenvolver software seguro, ou em auditar ou proteger software já existente.


Principais Tópicos

Ao longo do livro são abordados, entre outros, os seguintes temas:

* Vulnerabilidades, ataques e intrusões;
* Buffer overflows, cross-site scripting, SQL injection
* Cópia e modificação de software
* Teste de software e injecção de ataques
* Análise estática de código
* Mecanismos de protecção dinâmica
* Virtualização
* Trusted Computing


Índice do livro

Prefácio

Introdução

Segurança informática e Internet
Software (in)seguro
Sobre o livro

Parte I - Panorâmica e Protecção


1. Segurança e Desenvolvimento de Software

1.1 Conceitos básicos
1.2 Desenvolvimento de software
1.3 Princípios de projecto

2. Protecção em Sistemas Operativos

2.1 Protecção de recursos
2.2 Controlo de acesso

Parte II - Vulnerabilidades


3. Buffer Overflows

3.1 Vulnerabilidades e sua prevenção
3.2 Overflows na heap
3.3 Overflows na pilha
3.4 Buffer overflows avançados
3.5 Vulnerabilidades de inteiros

4. Corridas

4.1 Corridas e atomicidade
4.2 TOCTOU
4.3 Ficheiros temporários
4.4 Concorrência e funções reentrantes

5. Validação de Input

5.1 Confiança, confiabilidade e input
5.2 Metadados e metacaracteres
5.3 Vulnerabilidades de string de formato

6. Aplicações Web

6.1 Da World Wide Web às aplicações web
6.2 Top10 de vulnerabilidades
6.3 Injecção
6.4 Cross Site Scripting
6.5 Autenticação e gestão de sessões
6.6 Referência directa a objectos
6.7 Cross Site Request Forgery
6.8 Configuração insegura
6.9 Armazenamento criptográfico inseguro
6.10 Falha na restrição de acesso a URLs.
6.11Comunicação insegura
6.12 Redireccionamentos não validados

7 Bases de Dados

7.1 Bases de dados e SQL
7.2 Injecção de SQL
7.3 Técnicas de injecção de SQL
7.4 Outras vulnerabilidades

8. Cópia e Modificação de Software

8.1 Cópia ilegal de software
8.2 Engenharia reversa
8.3 Fraude em aplicações em rede

III Técnicas e Ferramentas


9. Auditoria de Software

9.1 Modelação de ataques
9.2 Revisão manual de código

10. Teste de Software e Injecção de Ataques

10.1 Teste de software e segurança
10.2 Injecção de ataques
10.3 Fuzzers
10.4 Varredores de vulnerabilidades
10.5 Proxies

11 Análise Estática de Código

11.1 Análise estática básica
11.2 Análise semântica
11.3 Funcionamento das ferramentas
11.4 Comentários finais

12. Protecção Dinâmica

12.1 Detecção com canários
12.2 Pilha e heap não executáveis
12.3 Aleatorização e ofuscamento
12.4 Verificação de integridade
12.5 Filtragem

13. Validação e Codificação

13.1 Expressões regulares
13.2 Validação
13.3Codificação

14 Segurança na Linguagem de Programação

14.1Objectivosearquitectura
14.2 Sandboxes
14.3 Segurança das convenções da linguagem

IV - Tópicos Avançados


15. Virtualização e Segurança

15.1 Conceitos básicos e história
15.2 Concretização de VMMs
15.3 Aplicações em segurança
15.4 Vulnerabilidades da virtualização

16. Trusted Computing

16.1 Hardware para segurança
16.2 Trusted Platform Module
16.3 Aplicações do TPM
16.4 Futuro da trusted computing

17. Tolerância a Intrusões Distribuída

17.1 Conceitos básicos de tolerância a intrusões
17.2 Replicação: garantindo disponibilidade e integridade
17.3 Fragmentação: garantindo disponibilidade, integridade e confidencialidade
17.4 Recuperação proactiva
17.5 Arquitecturas e sistemas
17.6 Problemas abertos e o futuro

Conclusão

Referências Bibliográficas
Recursos na Web
Índice Remissivo


Mais informação no site da FCA.

Actualização a 04/10/2010: está disponível o sítio do livro

Vulnerabilidade de XSS no sítio web da VISA


O sítio web da VISA tem uma história de vulnerabilidades de XSS, mas ainda assim elas continuam (infelizmente) a aparecer. Relembramos que uma vulnerabilidade deste tipo num sítio web credível pode ser usada para aumentar a legitimidade aparente de um email de Phishing.
Esperemos portanto que seja corrigida rapidamente e que os programadores do sítio web tenham mais atenção no futuro.

Detalhes sobre a vulnerabilidade em: http://security-sh3ll.blogspot.com/2010/09/visa-website-vulnerable-to-xss.html

[Com agradecimentos ao Tiago Martins]

Segurança de software como processo

Dois novos documentos sobre o assunto:

The Building Security In Maturity Model 2


The Building Security In Maturity Model (BSIMM, pronounced “bee simm”) is designed to help you understand, measure, and plan a software security initiative. The BSIMM was created by observing and analyzing real-world data from thirty leading software security initiatives. The BSIMM can help you determine how your organization compares to other real-world software security initiatives and what steps can be taken to make your approach more effective.

The most important use of the BSIMM is as a measuring stick to determine where your approach to software security currently stands relative to other firms.

http://bsimm2.com/



Microsoft Security Development Lifecycle (SDL) 5.0

The Microsoft Security Development Lifecycle (SDL) process guidance illustrates the way Microsoft applies the SDL to its products and technologies. It includes security and privacy requirements and recommendations for secure software development at Microsoft. It addresses SDL guidance for Waterfall and Spiral development, Agile development, web applications and Line of Business applications. IT policy makers and software development organizations can leverage this content to enhance and inform their own software security and privacy assurance programs.

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7d8e6144-8276-4a62-a4c8-7af77c06b7ac

o fracasso da segurança (até agora)

Um editorial do blog Zero Day escrito por Michal Zalewski que dá razões para o fracasso da segurança... em criar sistemas seguros. Muito interessante:


Security engineering: broken promises
20 de Maio de 2010

On the face of it, the field of information security appears to be a mature, well-defined, and an accomplished branch of computer science. Resident experts eagerly assert the importance of their area of expertise by pointing to large sets of neatly cataloged security flaws, invariably attributed to security-illiterate developers; while their fellow theoreticians note how all these problems would have been prevented by adhering to this year’s hottest security methodology. A commercial industry thrives in the vicinity, offering various non-binding security assurances to everyone, from casual computer users to giant international corporations.

Yet, for several decades, we have in essence completely failed to come up with even the most rudimentary, usable frameworks for understanding and assessing the security of modern software; and spare for several brilliant treatises and limited-scale experiments, we do not even have any real-world success stories to share. The focus is almost exclusively on reactive, secondary security measures: vulnerability management, malware and attack detection, sandboxing, and so forth; and perhaps on selectively pointing out flaws in somebody else’s code. The frustrating, jealously guarded secret is that when it comes to actually enabling others to develop secure systems, we deliver far less value than could be expected.

So, let’s have a look at some of the most alluring approaches to assuring information security - and try to figure out why they fail to make a difference to regular users and businesses alike.

continua

Ciber-assassinos profissionais

Deve ser igualmente ilegal, mas com penas menos pesadas:


Hollywood Hiring Cyber Hitmen To Combat Piracy
Tom's Guide, 3:20 PM - September 8, 2010 - By Kevin Parrish - Source : Tom's Guide US

Can't get a torrent site to remove files? DoS attack the site.

ZoomThe movie industry is taking matters into its own hands yet again in regards to fighting piracy. According to reports, "cyber hitmen" are under contract to take down websites hosting illegal movies by using denial-of-service (DoS) attacks. One firm based in India has even come forward to admit that the tactic is used when copyright infringement notices go unheeded.

Girish Kumar, managing director of Aiplex Software in India, said that most movies are released locally at 10am on Friday. Later on in the afternoon, those same movies will have leaked onto the Internet, appearing on storage websites and torrent search engines.

"We find the hosting [computer] server and send them a copyright infringement notice because they're not meant to have those links," Kumar said in a telephone interview. "If they don't remove [the link] we send them a second notice and ask them [again] to remove it."

When the second notice goes unheeded, Aiplex Software will then launch a DoS attack. This means that the firm floods the offending website with millions and millions of requests until the site's server is knocked offline.

Kumar admitted that the firm sometimes had to go the extra step to prevent further movie circulation by actually destroying the data. Typically the big offenders are 20 to 25-percent of the current torrent sites.

For now, most of Aiplex Software's business stems from India, however Hollywood is also using their "services" including 20th Century Fox and Star TV.

fonte: Tom's Guide

Segurança e XML - W3C publica 5 drafts



do site do W3C (1 de Setembro 2010):


Five XML Security Drafts Published

The XML Security Working Group has published five working drafts today. XML Signature 2.0, Canonical XML 2.0 and the XML Signature Streamable Profile of XPath 1.0 are part of an ongoing effort to rework XML Signature and Canonical XML in order to address issues around performance, streaming, robustness, and attack surface. The Working Group has also published updated Working Drafts for its XML Signature Best Practices and XML Security Relax NG Schemas Working Group Notes. Learn more about XML Security.