Tirando proveito das ferramentas da Microsoft para desenvolver aplicativos seguros Yuri Diogenes Senior Technical Writer Server and Cloud Division – Information Experience Solutions Team
Tirando proveito das ferramentas da Microsoft para desenvolver aplicativos seguros
Yuri DiogenesSenior Technical WriterServer and Cloud Division – Information Experience Solutions Team
Yuri, você é Dev? Quem é você?
MBA pela FGV, atualmente cursando o Mestrado em CyberSecurity e Inteligência Forense pela UTICA College nos Estados Unidos. Atualmente trabalha como Escritor Senior do time de Windows Server and Cloud Division, onde escreve sobre soluções de computação na nuvem usando o Windows Server 2012. Antes de ingressar neste time, Yuri também trabalhou na Microsoft com: escritor sênior do time de Segurança do Windows e Engenheiro Sênior de Segurança de Escalação do time de Forefront Edge na Microsoft Texas.
Não, eu não sou Dev, mas já fiz algo nessa área.... (último projeto foi o NetWiz)http://blogs.technet.com/b/yuridiogenes/archive/2009/08/18/network-monitor-wizard-now-at-codeplex.aspx
Agenda
Preparando para desenvolver de forma segura
Recapitulando o escopo atual de segurança
Vantagens e Oportunidades da plataforma Windows 8Ferramentas para auxiliar no desenvolvimento seguro
Recapitulando o escopo atual de segurança
Recapitulando o escopo de segurança
APPSNuvem Privada Nuvem Pública
On-Premise Online
DISPOSITIVOS
Proteção e gerenciamento contra ameaças
Proteção aos dados sensíveisAcesso Seguro aos Recursos
Onde estão as ameaças?
Preparando para desenvolver de forma segura
Se você pensou em SDL, acertou...
Espere, eu sou Dev...segurança é para infra....• Não diga isso nem brincando.... • Ao adotar um modelo como SDL o primeiro passo é o treinamento básico de segurança para toda a equipe de desenvolvimento• O projeto já nasce com “segurança embutida” pois a validação ocorre em cada fase
Literatura Recomendada
Vantagens e Oportunidades da Plataforma Windows 8
Você disse oportunidades?
Mas nada disso seria interessante para o consumidor se não fosse seguro...
Alinhando Oportunidade com Segurança•Desenvolva suas aplicações com base em um framework de segurança (já ouviu falar de SDL?)•Valide suas aplicações com ferramentas de segurança•BinScope Binary Analyzer
Valida o uso correto de algumas funções desegurança recomendada via SDL, como: SafeSEH Exception Handling Protection, AllowPartiallyTrustedCallersAttribute e outras.
Attack Surface Analyzer Tira um “retrato” do sistema antes da aplicação ser instalada e depois compara com o estado após a instalação.
Windows Store
Windows 8 e Visual Studio 2012•Windows 8 com Vistual Studio 2012 fornecem um conjunto de APIs, controle e ferramentas para minimizar vulnerabilidades de aplicações e mitigar problemas comuns de segurança• Como padrão você não precisa fazer NADA...isso NADA para usar algumas características de segurança que antes precisavam ser ativadas, como:• /GS (Buffer Security Check) – detecta buffer overrun• /DYNAMICBASE – para uso de ASLR (Address Space Layout Randomization)•DEP (Data Execution Prevention)- quando implementado em nível de software previne código malicioso de tirar vantagem de “exception-handling”• SEHOP (Structured Exception Handling Overwrite Protection) – bloqueia exploits que usam técnicas SEH (Structured Exception Handler)
Hardening de Aplicações•Através da declaração de App Capabilities é possível limitar o escopo de ação da aplicação.
Chega de achar que precisa de tudo...•Se sua aplicação precisa acessar só alguns arquivos então não tem sentido requisitar acesso total a uma pasta e ainda com FULL CONTROL....•FileOpenPicker class
Não confie em conteúdo remoto/externo...•Páginas remotas que sua aplicação precisa (porventura) interagir e que usam iFrame adicionam uma camada de risco•Quando a entrada da sua aplicação vier de um conteúdo externo, faça a verificação (sanitization) para remover conteúdo executável
Converte o script em conteúdo HTML estático
Converte o script em texto
Não confie em conteúdo remoto/externo...parte 2•Se sua aplicação aceita entrada ou dados vindo da Web, não deixe que este conteúdo faça acesso ao WinRT (Windows Runtime)....sim, como padrão o Windows 8 permite que o conteúdo da sua app acesse o runtime.•Coloque o conteúdo recebido em sandbox iframe
Confie na nuvem, mas valide antes•Autentique o acesso a serviços da nuvem•Sua aplicação pode usar GetAppReceiptAsync para validar a app obtida de um serviço de nuvem (App Store)•A validação ocorre via checagem de certificado usando a URL abaixo
•Outros métodos de autenticação incluem:•Shared certificate stores (Windows Store apps)
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465029.aspx
•Web authentication broker http://code.msdn.microsoft.com/windowsapps/Web-Authentication-d0485122
Aqui vai ser o CertificateID do recipiente
Que mais?
• Isso foi só uma visão geral, próximo passo é ler o paper:
•
http://msdn.microsoft.com/en-us/library/windows/apps/hh849625.aspx
Comece pelo mais simples...
Contato
@yuridiogenes
Blog em inglês: http://blogs.technet.com/yuridiogenes
Blog em PT-BR:http://yuridiogenes.wordpress.com