MSRio.Net

O Code Acess Security....

O Code Acess Security (CAS) é a "entidade" do .NET responsável por gerenciar as permissões que um assembly possui durante sua execução. Repare que não estamos falando de permissões de usuário...

Podemos pensar nisso como uma camada de segurança a mais entre o usuário e o sistema operacional. Ou seja, antes mesmo de verificar as permissões que um usuário possui no computador, o CAS verifica as permissões que estão relacionadas ao assembly .NET, para somente então repassar a chamada para o sistema operacional. Somente então é o sistema operacional irá verificar o permissionamento do usuário.

Até a versão 4.0, o CAS trabalhava baseado no conceito de Políticas, isto é, dado um determinado conjunto de condições (que era satisfeito pelas Evidências), era localizada a política de segurança para aquele assembly. Desta forma, o CAS sabia qual era o PermissionSet (Conjunto de permissões) que determinava o que poderia ser feito pelo assembly ou não.

As permissões controladas pelo CAS abrangem desde permitir ou não a execução de um programa .NET, até as permissões para outras tarefas como executar código unsafe, reflection, acessar o sistema de arquivos, exibir UI e etc... Existe a mesmo a permissão de "bypassar" o CAS..

Todos os programas em .NET estão sujeitos ao CAS, mas é engraçado que mesmo assim a grande das pessoas que trabalham com .NET nunca se deparou com ele. E é fácil entender porque. Nas políticas default do .NET, todo código que rodava localmente possuia a permissão FullTrust.  Já o código que rodasse via intranet/internet, possuía menos permissões. Só que esse caso era de certa forma raro, pois se os arquivos estivessem no mesmo computador que o servidor web, mesmo no caso de aplicações ASP.NET, o CAS entendia que os assemblies estavam locais (e de fato estavam) e concedia FullTrust.

CAS começava a apitar quando aplicações que estavam em um outro computador da rede fossem executadas, ou por exemplo no uso de NAS...

...e como quem não é visto não é lembrado, o CAS passava batido. Até, para o espanto de todos, algumas empresas de hospedagem não conheciam o CAS e deixavam as permissões default. Dessa forma uma aplicação .NET poderia até mesmo atrapalhar a saúde do servidor, tá louco...

Mas tudo mudou no .NET 4.0. O CAS não morreu, mas foi repaginado. Quem morreu foram as políticas. Alguém percebeu que isso era completamente inútil. A idéia era até boa, imagine, rodar um programa direto da internet (alguém corajoso o suficiente pra isso) e ele seria executado com permissões restritas. Assim ele não poderia fazer dano ao meu computador. Mas um atacante podia também apagar o executável .NET, colocar outro programa não gerenciado e quando o corajoso fosse executar o seu programa, bingo. Infectado..

Falsa segurança é a pior forma de insegurança.

Agora, ao invés do CLR controlar as políticas, ele deixa isso a cargo de cada HOST. Ou seja, o IIS controla as permissões de suas aplicações ASP.NET uma-a-uma, um programa .NET que decidir carregar outra assembly para o seu AppDomain decide as permissões vigentes para o app domain e assim por diante.

O default continua FullTrust pra todo mundo. Mas para configurar as permissões da sua aplicação, não é mais necessário usar dúzias de comandos em um prompt. Com o modelo da Transparência, tudo ficou mais simples. Mas isso fica pra próxima conversa.

MS Community Day 2011

 

Ministrando palestras há mais de 10 anos, os líderes de alguns dos principais grupos de estudos em tecnologias no Rio de Janeiro definem a marca que passará a caracterizar o evento que, até então, era realizado sem uma identidade própria.

O MS Community Day é um congresso que reúne várias palestras sobre variados temas que agregam valor ao participante. O primeiro evento a carregar a marca MS Community Day acontece do dia 6 de agosto de 2011 no campus Presidente Vargas da Universidade Estácio de Sá. Além dos organizadores dos tradicionais organizadores dos grupos, Alexandro Prado (MVP), Ricardo Guerra (MVP), Igor Humberto (MVP), Weliton Cunha, Rodrigo Moreira e Luciano Reis, este evento contará com a participação de Nelson Coelho, Breno Ferreira, Rodrigo Vidal e Prof. André Luiz (MVP).

A inscrição para o evento deve ser feita no site da Microsoft Events:
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032490222&Culture=pt-BR

Pedimos também a gentileza de, após se inscrever no site da Microsoft, que você confirme sua presença na página do evento no Facebook para que tenhamos o controle em tempo real dos participantes:
http://www.facebook.com/event.php?eid=206806522698711

O MS Community Day Ago/2011 acontece em três tracks: Desenvolvimento, Infraestrutura e Mix. Veja abaixo a agenda:

Desenvolvimento
De Volta para o Futuro com Silverlight (Rodrigo Moreira)
Test-Driven Development (Rodrigo Vidal)
Serviços REST (Breno Ferreira)

Infraestrutura
Exchange 2010 SP2: O Que Vem por Ai (Rodrigo Rodrigues e Nelson Coelho)
Terminal Server RDS (André Luiz)
System Center Configuration Manager 2007 R3 e Forefront Endpoint Protection 2010 (Alexandro Prado e Igor Humberto)

Mix
Aprendendo Tecnologias Microsoft de Graça (Ricardo Guerra e Luciano Reis)
Geoprocessamento no SQL Server (Luciano Reis)
Cloud Computing: Porque, Quando e Como Utilizar e o que a Microsoft Oferece (Breno Ferreira e Rodrigo Rodrigues)

O código fonte é seguro?

Imagine que você acorde um dia, acesse um blog de umcara que talvez você não conhece e que o autor mesmo não te conheça eque provavelmente nem mesmo viu a sua aplicação .net e tal blog diz:"Eu tenho 90% de certeza que sua aplicação .net não é segura". Vocêpensa "Puxa, mas eu fiz tudo direitinho. Minha regra de negócio está emuma DLL, usei frameworks de persistência, tudo é logado, faço atérole-based security usando Principals e Identities, e o cara vem medizer que minha aplicação não é segura?".

É.

É isso aí. 90% de certezaque sua aplicação não é segura.A grande questão é que grande parte dos programadores escrevem o código partindo do príncipio que o mesmo, por ser compilado, é inacessível. Sendo assim, não há problema nenhum que o código fonte da aplicação guarde informações sigilosas, tais como senhas de conexões a banco de dados (Existem até "correntes" que aconselham manter strings de conexões em código, ao invés de arquivos .config) ou chaves criptográficas. Aí que mora o perigo.

O .NET é uma linguagem compilada E interpretada. Acontece que o código .NET ao ser compilado, na verdade é transformado da sua linguagem alto nível (C#, VB.NET) para uma linguagem intermediária (MSIL ou IL de Intermediate Language). Esse código IL sim, por sua vez será executado pelo CLR (Common Language Runtime), que durante sua execução irá compila-lo para linguagem de máquina através do processo chamado JIT (Just In Time) Compilation.

Através do processo de Disasseblembling, é fácil ler o código IL pertencente a um Assembly .NET. Para constatar isso, podemos utilizar a ferramenta ILDASM que está contida no SDK do .NET. Porém, melhor do que isso é a ferramenta REFLECTOR da Red Gate, que permite retornar o código-fonte de um assembly .NET na linguagem desejada.


No ILDASM é possível verificar o código IL de uma aplicação .NET


Red Gate's .NET REFLECTOR - Exibe o código fonte.

Se isso não bastasse, ainda existe o Reflection.

O System.Reflection é umnamespace que interage com Tipos, Classes, Propriedades, Assemblies,Campos, Métodos e etc, ou seja: É código que consegue interagir comcódigo. Dessa maneira é possível fazer com o que seu código, compiladoe "perfeito", faça parte de um programa que qualquer pessoa escreva. Isso mesmo. Imagine que o seu método de conexão ao banco, ou até mesmo a sua propriedade privada pode ser acessada por uma outra Assembly. Pois isso é o que pode ocorrer. E o pior de tudo é que, mesmo existindo alguns recursos para evitar que isso aconteça, a verdade é que dado Full Trust para alguém, é impossível evitar que o código seja manipulado.

E isso não é privilégio do .NET, para o JAVA é igual!

O objetivo desse post, mais do que mostrar como manipular o código alheio (o que até farei em um próximo post) é levar a reflexão de que nenhuma informação sigilosa deve permanecer no código fonte. Aprofundando mais ainda, todo código que execute alguma operação que pode trazer riscos a informação trabalhada (como a exposição de dados sigilosos), deve possuir uma profunda verificação de permissionamento, para garantir que o código só será executado por quem tem o direito.

Pense nisso!

Estamos de volta: MSRio Podcast Ed 7: Certificações!

Após meio ano de ausência, o MSRio Podcast está de volta!

Com Rodrigo Moreira (MSP Lead/Líder MSRio.net) no comando e os comentários do MVP de Windows Desktop Experience Alexandro Prado (Líder MS-InfraRio), estamos de volta com mais uma edição mesa redonda da computação na internet brasileira!

Desta vez, convidamos o MCT Rafael Brunhosa para falar sobre este tema tão importante e atual na carreira de todos que trabalham com TI: Certificações. O que são, como tirar, sua importância, vantagens e ainda algumas polêmicas discussões sobre a falta de ética de alguns profissionais no processo.

Imperdível!

E não esqueça de assinar o nosso RSS. Assim você fica sabendo do lançamento de todas as nossas edições. Para tal, adicione o endereço http://blog.msriodotnet.com/podcasts-only/rss2.aspx no seu FeedReader preferido.

Download | Duration: 00:54:03

MSRio Podcast 6 Edição: Virtualização!

Após uma longa demora (Justificada, pois estavamos preparando uma edição especial para o blog action day, porém um problema com o nosso convidado, que era a nossa surpresa, fez com que a edição fosse cancelada) chegamos a 6 edição do nosso MSRio Podcast!

Nesta edição, com Rodrigo Moreira (MSP Lead e Líder do MSRio.net) e o MVP Alexandro Prado (Líder do MSInfra-Rio), além das discussões do assunto da semana (Crise Econômica Mundial e Informática, Notícias variadas e novos programas Microsoft), também tivemos um interessante bate-papo sobre um assunto que cada vez mais é realidade no mundo da TI: Virtualização!

Aproveitando o lançamento da edição, também aproveito para agradecer todos os ouvintes que fazem parte da família MSRio.Net, pois chegamos a grande marca de 1200 exibições das nossas até então 5 edições! Uma marca que seria impossível de alcançar se não fosse por vocês.

E você já sabe, caso queira participar do programa com dúvidas, sugestões, ou sendo um participante da edição é só enviar um email para podcast@msinfrario.com!



Download | Duration: 00:52:16



E não esqueça de assinar o nosso RSS. Assim você fica sabendo do lançamento de todas as nossas edições. Para tal, adicione o endereço http://blog.msriodotnet.com/podcasts-only/rss2.aspx no seu FeedReader preferido.

Blog Action Day 2008 - Nós fazemos parte!




O Blog Action Day é um evento anual, sem fins-lucrativos, que objetiva unir os bloggers, podcasters e videocasters do mundo todo para postar sobre o mesmo assunto, em um mesmo dia. O grande alvo é aumentar a atenção e engatilhar a discussão global sobre o assunto do dia.

Neste ano, a idéia é falar sobre a pobreza e nós não podemos ficar de fora. Portanto, aguardem até o dia 15/10 para ler a nossa opinião sobre o tema, envolvendo obviamente a tecnologia que tanto respiramos.

E veja aqui a lista de quem mais da blogosfera está ligado no Blog Action Day! http://blogactionday.org/en/blogs

MSRio Podcast 5 Edição - ASP.NET AJAX e Silverlight!

Com algum atraso, mas sempre presente, chegamos a nossa 5 edição!

Desta vez, atendendo a inúmeros pedidos, trouxemos direto de Goiânia o MVP Rodrigo Kono e líder do DevGoias para falar sobre as tecnologias que mais andam na moda quando tratamos de desenvolvimento para Web. Kono, que é MVP em ASP.NET e um dos maiores especialistas em tecnologias Web-Microsoft do país, nos proporcionou um divertido e principalmente instrutivo papo sobre Silverlight e ASP.NET AJAX. Como não podia ser diferente, o Podcast também contou com a presença de Rodrigo Moreira, MSP Lead do RJ & ES e Líder do grupo MSRio.Net, além do MVP em Windows Desktop Experience Alexandro Prado, líder do grupo MS-InfraRio.

Edição imperdível!

Download | Duration: 00:56:41



Links citados na edição:

Blog de Rodrigo Kono: http://kono.spaces.live.com

Artigo sobre ASP.NET AJAX e Update Panel: http://msdn.microsoft.com/pt-br/magazine/cc163413.aspx
 
Linha de Código:
Silverlight 2: Trabalhando com Web Services
Silverlight 2: Implementando Full Screen Mode (modo tela cheia)
Silverlight 2: Customizando a mensagem de Instalação do plugin

XamlCast:
http://feeds.feedburner.com/~r/xamlcast/~3/186815754/
 
E não esqueça de assinar o nosso RSS. Assim você fica sabendo do lançamento de todas as nossas edições. Para tal, adicione o endereço http://blog.msriodotnet.com/podcasts-only/rss2.aspx no seu FeedReader preferido.

MSRio Podcast 4a Edição! Notícias diversas e discussão sobre o novo Google Chrome!

Está no ar a 4a Edição do MSRio Podcast, o podcast dos grupos MSRio.net e MS-InfraRio! Nessa edição, tivemos como convidado especial um dos membros do grupo MSRio.net e discutimos sobre as  novidades tecnológicas da última semana, em especial um interessantíssimo debate sobre o mundo dos navegadores com a chegada do Google Chrome, imperdível! Confira em:

Download | Duration: 00:43:40



Para participar do podcast, envie seu email para podcast@msinfrario.com

E não deixe de assinar o rss do Podcast: http://blog.msriodotnet.com/podcasts-only/rss2.aspx

MSRio Podcast: 3 Edição! Tema: Comunidade e Trabalho no Exterior

E chegamos a nossa 3 Edição! Desta vez, além dos apresentadores Rodrigo Moreira (Líder MSRio.net) e MVP Alexandro Prado (Líder do MS-InfraRio), também contamos com Eduardo Bottcher.

Eduardo Bottcher é um profissional envolvido com comunidade Microsoft desde 2005. Atualmente Eduardo trabalha nos EUA, onde continua sendo um membro ativo na comunidade. Nesse PODCast, tivemos um divertido bate-papo sobre como as coisas funcionam na terra do tio Sam fazendo um paralelo sobre como as coisas funcionam por aqui.

Confira em mais essa edição!

Um abraço.

Download | Duration: 01:00:47



Para participar do podcast, envie seu email para podcast@msinfrario.com

E não deixe de assinar o rss do Podcast: http://blog.msriodotnet.com/podcasts-only/rss2.aspx

MS-Rio Podcast, Edição 2


O Podcast continua em sua 2 edição. Nesta quinzena, convidamos o excelente Igor Humberto (Culminis Speaker, Instrutor, Palestrante e um dos Gurus de TI do Rio de Janeiro) para debater sobre a nova versão do Internet Information Services, o IIS 7. Também contamos com o nosso sempre presente MVP Alexandro Prado e é claro, Rodrigo Moreira, líder do MSRio.net conduzindo o Podcast.

Confira as novidades da TI, do IIS nesse divertido podcast! Atendendo aos pedidos, abaixamos o volume da música de fundo.

Se você quiser participar das próximas edições, não esqueça: Envie o seu áudio, ou texto, com sua pergunta/sugestão/comentário para o email podcast@msinfrario.com

E não deixe de assinar o rss do podcast, no endereço:

http://blog.msriodotnet.com/podcasts-only/rss2.aspx


Download | Duration: 00:58:06