<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Horizontes Digitais &#187; Segurança</title>
	<atom:link href="http://horizontesdigitais.com/category/seguranca/feed/" rel="self" type="application/rss+xml" />
	<link>http://horizontesdigitais.com</link>
	<description>Desenvolvimento, Segurança e Negócios</description>
	<lastBuildDate>Sat, 24 Jul 2010 20:34:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Assinatura de Applet</title>
		<link>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/</link>
		<comments>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/#comments</comments>
		<pubDate>Sat, 24 May 2008 03:54:57 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/</guid>
		<description><![CDATA[O modelo de segurança implementado pela plataforma Java, na sua proposição inicial, é centrada sobre o conceito de sandbox (caixa de areia). De acordo com o modelo sandbox, um código remoto (applet) não é confiável e pode acessar recursos limitados, fornecidos dentro do sandbox, uma área do Servidor Web dedicado àquele applet. A idéia de [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">O modelo de segurança implementado pela plataforma Java, na sua proposição inicial, é centrada sobre o conceito de <strong><em>sandbox</em></strong> (caixa de areia). De acordo com o modelo <em>sandbox,</em> um código remoto (<em>applet</em>) não é confiável e pode acessar recursos limitados, fornecidos dentro do <em>sandbox</em>, uma área do Servidor Web dedicado àquele <em>applet</em>. A idéia de sandbox foi desenvolvida no sentido de garantir que mesmo que um usuário carregue um <em>applet</em> malicioso, esse não pode danificar a máquina local, por exemplo, apagar um arquivo do seu disco local.Porém existem <em>applets</em> que são de confiança e necessitam sair do <em>sandbox</em> para fornecer um determinado serviço. Existem varias maneiras para resolver este problema, uma delas é a <strong>assinatura</strong><em> </em><strong>do <em>applet</em></strong>. O JDK 1.1.x introduziu o conceito de <strong><em>applet</em> assinado</strong>. Neste modelo estendido, um <em>applet </em>assinado digitalmente é tratado como código local confiável (aplicação <em>standalone</em>) se a assinatura é reconhecida como confiável pelo sistema que recebeu o <em>applet</em>. Entretanto no JDK 1.2.x, o <em>applet</em> assinado terá liberdades conforme especificado por um arquivo de política (<em>policy file</em>). Utilizou-se neste trabalho para o processo de assinatura e verificação do <strong><em>Applet</em> Cliente</strong> a versão JDK 1.2.1.</p>
<p align="justify"><span id="more-55"></span></p>
<p align="justify">Assinatura digital é utilizada quando se necessita da certeza da origem de uma mensagem como se fosse uma assinatura escrita no papel. Para assinar um applet, o desenvolvedor empacota todo o código Java e arquivos relacionados dentro de um arquivo JAR (<strong><em>J</em>ava ARchive</strong>), que é um formato de arquivo de compactação de propósito geral, usado para compactar os componentes de uma aplicação Java. A plataforma Java assina e verifica arquivos JAR usando um par de chaves (chave pública e chave privada). A <strong>chave privada</strong> funciona como uma &#8220;caneta&#8221; eletrônica que <strong>assina</strong> o arquivo (ver Figura 1). Como o próprio nome sugere, esta chave só é conhecida pelo assinante do <em>applet</em>. O processo de <strong>verificação</strong> da assinatura pode ser feito por qualquer pessoa que possua a <strong>chave pública</strong> correspondente a chave que assinou o arquivo.</p>
<p align="justify"><a href="http://horizontesdigitais.com/files/2008/05/postapplet1.jpg" title="postapplet1.jpg"><img src="http://horizontesdigitais.com/files/2008/05/postapplet1.jpg" alt="postapplet1.jpg" align="middle" border="0" height="200" width="530" /></a></p>
<p align="left"><strong>                                    Figura 1 – Processo de assinatura</strong></p>
<p align="justify">A chave pública é distribuída dentro de um <strong>certificado</strong> que é uma declaração assinada por uma entidade idônea, chamada <strong>Autoridade de Certificação</strong> (<em>Certification Authority</em>- <strong>CA</strong>), que confirma que a chave pública que está no mesmo é confiável. Existem várias Autoridades de Certificação, por exemplo, a <em>VeriSign</em>, <em>Thawte</em>, <em>Entrust</em> e <em>Certisign </em>(empresa brasileira). Toda CA requer um emissor para validar a sua identidade, até mesmo a de mais alto nível. Para estes casos, existem os certificados auto-assinados (<em>self-signed</em>), onde o emissor do certificado é o próprio sujeito.Os <em>browsers</em> <em>Netscape</em> e <em>Internet</em> <em>Explorer</em> (<em>IE</em>) não usam a codificação de assinatura do JDK. Existem basicamente três tipos diferentes de assinatura de <em>applets</em>, para o <em>IE</em>, para o <em>Netscape</em>, e para o <em>plug-in Java da Sun</em>. Este último fornece aos <em>browsers</em> citados acima a capacidade de utilizar applets assinados através da <em>Java Security API </em>do kit JDK.Algumas ferramentas necessárias para a assinatura, seguindo o padrão da <em>Sun</em>, encontram-se no <em>JDK 1.2</em>, são elas:</p>
<ul>
<li>
<p align="justify"><em>Jar (JAR Creation Tool)</em></p>
</li>
<li>
<p align="justify"><em>Keytool</em> (<em>Key and Certificate Management Tool</em>)</p>
</li>
<li>
<p align="justify"><em>Jarsigner </em>(<em>JAR Signing and Verification Tool</em>)</p>
</li>
<li>
<p align="justify"><em>PolicyTool</em> (<em>Policy File Creation and Management Tool</em>)</p>
</li>
</ul>
<p align="justify">Para uma melhor compreensão, encontra-se descritos a seguir os passos utilizados no processo de assinatura e verificação do AppletClient.</p>
<p><strong><font color="#4b73b4">Quais são os passos para assinar um Applet?</font></strong></p>
<p>Os passos para assinar um <em>Applet</em> estão representados na Figura 2:</p>
<p><img src="http://horizontesdigitais.com/files/2008/05/postapplet2.jpg" alt="postapplet2.jpg" border="0" height="220" width="530" /></p>
<p><strong>Figura 2 – Diagrama de blocos do processo de assinatura por parte                                    </strong><strong>               do desenvolvedor</strong></p>
<p><strong>1. </strong><strong>Criar o arquivo .jar</strong></p>
<p align="justify">Deve-se criar um arquivo JAR contendo o(s) arquivo(s) .class da Applet e todas as classes que serão utilizadas e que farão uso de recursos fora do s<em>andbox</em> conforme indicado no item 1 da Figura 2. É importante ressaltar que a ferramenta <strong>jarsigner</strong> somente assinará arquivos JAR criados pelo JDK, ou arquivos ZIP.Uma ferramenta utilizada para criação deste arquivo é o <em>jar</em> do JDK. Para criar um JAR contendo o arquivo MeuApplet.class, com o nome MeuJar.jar basta fazer:jar cvf MeuJar.jar MeuApplet.class</p>
<p align="justify">Você também pode utilizar o Eclipse ou MyEclipse para criar arquivos tipo .jar, onde o processo é bem simples: basta clicar com o botão direito do mouse sobre o arquivo que deseja empacotar em .jar e escolher a opção <strong>exportar</strong>.</p>
<p align="justify">2.  <strong>Gerar o par de chaves (pública e privada)</strong><strong> </strong>Este passo deve ser executado se ainda não houver um par de chaves a ser usado no processo de assinatura (ver item 2 da Figura 2). Para criar o par de chaves utiliza-se a ferramenta <em>keytool</em> do JDK. Simplificando, você pode fazer o seguinte:</p>
<p align="justify"><em>keytool -genkey -dname &#8220;cn=d377, ou=desenvolvimento, o=FelipeThomas, l=Fortaleza, c=BR&#8221; -alias key -keystore C:\Felipe -storepass 123456 -validity 180</em></p>
<p align="justify"><u>onde:</u><em> </em></p>
<p align="justify"><em>dname</em>: Nome da entidade que gerará o par de chaves. Siglas:</p>
<p><strong>CN = nome comum</strong></p>
<p><strong>OU = unidade organizacional (departamento, divisão)</strong></p>
<p><strong>O = nome da organização</strong></p>
<p><strong>L = nome da localidade (cidade)</strong></p>
<p><strong>S = estado, C = código do país.</strong></p>
<p><em>Keypass:</em> Senha utilizada para a proteção da chave no <em>keystore</em>.</p>
<p><em>Validity: </em>Número de dias que o certificado deve ser válido.</p>
<p><em>keystore</em>: local da sua máquina onde as chaves serão armazenadas.</p>
<p><em>Storepass: </em>Senha protetora do <em>keystore</em>.</p>
<p align="justify">Quando as chaves são geradas (comando –genkey) um certificado auto-assinado é criado. Caso deseje-se trocar este certificado por um certificado reconhecido por uma empresa confiável, deve-se fazer um pedido de certificado de assinatura (CSR <em>CerticateSigning Request</em>), e o resultado desta solicitação deve ser importado para o <em>keystore</em>.</p>
<p align="justify">3.  <strong>Assinar o arquivo JAR</strong></p>
<p align="justify">Deve-se assinar o arquivo JAR com a chave privada, para isto utiliza-se a ferramenta <em>jarsigner</em> do JDK, conforme esquematizado no item 3 da Figura 2. Antes de continuar certifique-se de que o arquivo que você assinará, esteja no mesmo diretório do arquivo que foi criado com as chaves. Isto facilitará seu trabalho. Para tal feito pode-se fazer o seguinte:</p>
<p align="justify"><em>jarsigner -keystore C:\Felipe -storepass 123456 –signedjar NomeDoJarDepoisDeAssinado.jar NomeDoJarAntesDeAssinar.jar key </em></p>
<p align="justify"><u>onde:</u></p>
<p align="justify"><em>keystore:</em> URL do <em>keystore</em> onde a chave está armazenada.</p>
<p align="justify"><em>storepass: </em>Senha protetora do <em>keystore</em>.</p>
<p align="justify"><em>signedjar:</em> Especifica o nome e o local de armazenamento do arquivo JAR assinado. Por <em>default,</em> o arquivo assinado irá sobrescrever o não assinado.</p>
<p align="justify">Estes passos são suficientes para que você consiga “liberar” teu applet para funcionar seguramente no seu browser. Alguns browsers não necessitam destas assinaturas, mas outras requerem. Sendo assim, é importante saber como proceder quando precisar assinar um applet.</p>
<p align="justify">Espero mais uma vez ter colaborado com seus conhecimento e auxiliado nas suas necessidades.</p>
<p>Obrigado e até o próximo.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Engenharia Social: uma ameaça invisível</title>
		<link>http://horizontesdigitais.com/2008/03/20/engenharia-social-uma-ameaca-invisivel/</link>
		<comments>http://horizontesdigitais.com/2008/03/20/engenharia-social-uma-ameaca-invisivel/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 17:54:01 +0000</pubDate>
		<dc:creator>Fernando Chucre</dc:creator>
				<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Engenharia Social]]></category>
		<category><![CDATA[Segurança da Informação]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/03/20/engenharia-social-uma-ameaca-invisivel/</guid>
		<description><![CDATA[Atualmente estamos cercados de ameaças, tanto no mundo virtual quanto no mundo real. Essas ameaças colocam dois pontos em risco: o patrimônio da empresa e a informação. Esta última, foi durante toda a história alvo de pessoas com interesses diversos. Na era da informatização ameaças como vírus, spyrewares e hackers mal intencionados são tão constantes [...]]]></description>
			<content:encoded><![CDATA[<p>Atualmente estamos cercados de ameaças, tanto no mundo virtual quanto no mundo real. Essas ameaças colocam dois pontos em risco: o patrimônio da empresa e a informação. Esta última, foi durante toda a história alvo de pessoas com interesses diversos. Na era da informatização ameaças como vírus, spyrewares e hackers mal intencionados são tão constantes e perigosas que podem, em minutos, fazer empresas perderem muito dinheiro. Entre todas as técnicas de ataques existentes, uma quase não é lembrada ou conhecida, e por esse motivo não vem sendo prevenida: a Engenharia Social.</p>
<p><span id="more-20"></span></p>
<p>Engenharia Social é o método de ataque mais eficaz que existe, pois ainda não há Firewall ou Anti-vírus que a detecte. Esse método utiliza, assim como os outros, a confiança equivocada no fornecimento de dados ou execução de ações no sistema. A única diferença entre as ameaças citadas e a Engenharia Social é que nesta os ataques ocorrem no mundo real, contra pessoas e não softwares. Fora do mundo do computador onde o alvo é a informação, que em alguns casos possui valor maior que o próprio patrimônio, a Engenharia Social é conhecida como o famoso estelionato.</p>
<p>Os atacantes sempre utilizam da ingenuidade dos colaboradores, incluindo a sua. Criar mecanismos de segurança é fácil, desde que você conheça as táticas utilizadas e os procedimentos que a sua empresa possui que acabam facilitando o trabalho do atacante. A educação dos colaboradores é a parte principal nesse processo de defesa. No entanto, criar cartilhas de alerta e uma política de distribuição de informações, também ajuda.</p>
<p>Os métodos mais comuns que a Engenharia Social utiliza são e-mails forjados e ligações nas quais as únicas identificações são a voz e o número de origem. Quando o e-mail é usado para ataque, o combate à fraude é pouco eficiente. Por isso, a prática de uso de assinaturas digitais é muito aconselhável. Com a assinatura, seus clientes e colaboradores terão certeza da origem do e-mail recebido. Entretanto, quando o uso de assinaturas não é possível, algumas precauções são necessárias:</p>
<p>- Verificar se as informações enviadas não são comprometedoras (Quando informações sigilosas são enviadas, a entrega pessoal é sempre melhor opção).</p>
<p>- Verificar a identidade dos colabores externos (fornecedores, consultores, etc.) e exigir, da matriz colaboradora, a notificação de mudança de colaboradores.</p>
<p>- Quando é necessário enviar senhas ou registradores, a fragmentação dessa informação é recomendada. Por exemplo, a primeira parte vai no e-mail cadastrado e a segunda no telefone celular.</p>
<p>Os ataques são executados de forma planejada e discreta. Antes do &#8216;grande&#8217; ataque acontecer, é comum realizar pequenos ataques, até que se tenha acumulado grande quantidade de informações. Os atacantes, muitas vezes, ligam com o pedido de uma senha de servidor ou liberação de acesso no Firewall da empresa, mas a real intenção é acessar documentos nos servidores de e-mail, projetos ou banco de dados. E só você sabe o quanto pode ser prejudicial o vazamento destas informações. Por isso, cuidar da sua informação deve ser critério máximo. Apesar de não ser uma tarefa fácil, evitar esses ataques é necessário.</p>
<p>Abraços.</p>
<p>Fernando Chucre</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/03/20/engenharia-social-uma-ameaca-invisivel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>. NET 2.0 Code Access Security</title>
		<link>http://horizontesdigitais.com/2008/03/18/net-20-code-access-security/</link>
		<comments>http://horizontesdigitais.com/2008/03/18/net-20-code-access-security/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 20:57:06 +0000</pubDate>
		<dc:creator>Claudio Ulisse</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/03/18/net-20-code-access-security/</guid>
		<description><![CDATA[A ideia principal do CAS é que a confiança de uma aplicação depende da identidade dos componentes que são usados. Por exemplo se a origem de um software é uma fonte confiável, tipo um componente shrink-wrapped instalado pelo usuário, todo aquele que sará verificado em runtime terá as permissões do usuário e poderá fazer ações [...]]]></description>
			<content:encoded><![CDATA[<h2><a title="892" name="892"></a><a title="ch09lev1sec2" name="ch09lev1sec2"></a></h2>
<p>A ideia principal do CAS é que a confiança de uma aplicação depende da identidade dos componentes que são usados. Por exemplo se a origem de um software é uma fonte confiável, tipo um componente shrink-wrapped instalado pelo usuário, todo aquele que sará verificado em runtime terá as permissões do usuário e poderá fazer ações definidas por essas permissões. Se a fonte do software é parcialmente confiável ou desconhecida, poderão ser adicionadas restrições ao código.  Você poderia querer que rode na sua maquina um código com determinadas permissões, que faça parte de uma determinada categoria,e que não rode código procedente de outras categorias. O CAS engine é a resposta do .NET Framework a essas exigências. Muitas vezes a adoção do CAS no código pode gerar mau estar entre desenvolvedores por sem um sub-Framework bastante complexo e rico de classes.</p>
<p><a title="893" name="893"></a><a title="ch09fig01" name="ch09fig01"></a><a href="http://horizontesdigitais.com/wp-admin/images/fig353%5F01%5F0%2Ejpg" title="IMG_25" name="IMG_25"></a>Para começar é útil saber os conceitos básicos que estão por trás do CAS:</p>
<ul>
<li>
<p><em>Evidence(</em>System.Security.Policy namespace<em>)</em>: Objeto que representa a origem e a identidade do componente, informa Quem, Onde e Como verificar. As classes valores  Publisher e StrongName indicam de quem está vindo o código. Zone, Site, Url, GacInstalled, e ApplicationDirectory, dizem de onde. Hash, serve como prova anti-adulteração, comprova a genuinidade do código. A CLR é em grau de  construir uma instância Evidence com os devidos detalhes de uma parte de código, acessando a Assembly.Evidence property. Se um cogido é carregado com tipo ThirdPartyCode , pode ser acessada a  Evidence via typeof(ThirdPartyCode).Assembly.Evidence .</p>
<p><a title="894" name="894"></a><a title="IDX-331" name="IDX-331"></a></li>
<li>
<p><em>Code Group</em>:  è um grupo de códigos logicamente ordenados em categorias baseadas na Evidence de cada codigo e que tem carateisticas em comum.</p>
</li>
<li>
<p><em>Permission</em>(System.Security.Permissions  namespace): è um nível de privilegio que pode ser cedido e negado pela CAS. Um permissão é uma instância que deriva de System.Security.IPermission e tem outros tipos quais:FileIOPermission,  ReflectionPermission, and RegistryPermission. Permite ao código de requerer ou configurar permissões para rodar em determinados ambientes. </p>
<p><a title="895" name="895"></a><a title="IDX-332" name="IDX-332"></a></li>
<li>
<p><em>Permission Set</em>:  um conjunto de permissions logicamente reunidas e que podem ser aplicadas ou removidas em grupo. Cada permissão desse grupo pode ter opções diferentes.</p>
</li>
<li>
<p><em>Policy</em>: o um conjunto de regras definidas por administradores que definem como os componentes CAS deverão se relacionar,por exemplo é o conjunto de permissões que devem ser aplicadas em um conjunto de maquinas e em quais partes de código vão interferir, qual a politica de acesso a um código, que tipo de membros, procedentes de qual meio(intranet,internet&#8230;).</p>
</li>
</ul>
<p>O CAS verifica as permissões e as politicas percorrendo a stack e comparando as permissões requeridas por cada chamador e as permissões que o código chamado possui. Se tiver algum código que não corresponde ás necessidades do chamador então é disparada uma  security exception e o acesso é recusado.Por enquanto essas são as ideias principais que sustentam o CAS. È um sistema bem eficiente mesmo sendo complexo&#8230;afinal nada é perfeito <img src='http://horizontesdigitais.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Abçs</p>
<p>Claudio Ulisse</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/03/18/net-20-code-access-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSSTMM &#8211; Metodologia de segurança</title>
		<link>http://horizontesdigitais.com/2008/03/12/osstmm-metodologia-de-seguranca/</link>
		<comments>http://horizontesdigitais.com/2008/03/12/osstmm-metodologia-de-seguranca/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 14:39:03 +0000</pubDate>
		<dc:creator>Fernando Chucre</dc:creator>
				<category><![CDATA[Segurança]]></category>
		<category><![CDATA[OSSTMM Metodologia Segurança OpenSource]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/03/12/osstmm-metodologia-de-seguranca/</guid>
		<description><![CDATA[OSSTMM &#8211; Metodologia de Segurança Essa semana recebi um e-mail de Pete Herzog indicando uma vídeo-palestra onde ele fala sobre uma nova versão de metodologia Open-source de testes de segurança. Agora totalmente reformulado e aperfeiçoado, o OSSTMM &#8211; Open Source Secutory Testing Methodology Manual tem como objetivo clarificar os métodos e os resultados dos testes [...]]]></description>
			<content:encoded><![CDATA[<p>OSSTMM &#8211; Metodologia de Segurança</p>
<p>Essa semana recebi um e-mail de Pete Herzog indicando uma vídeo-palestra onde ele fala sobre uma nova versão de metodologia Open-source de testes de segurança. Agora totalmente reformulado e aperfeiçoado, o OSSTMM &#8211; Open Source Secutory Testing Methodology Manual tem como objetivo clarificar os métodos e os resultados dos testes de segurança e assim permitir uma decisão mais eficiente para qualquer modelo de negócio.</p>
<p>A palestra pode ser obtida em: <a href="http://www.dreamlab.net/news/review-osstmm-evening-talk-with-pete-herzog">www.dreamlab.net</a></p>
<p>Pete e uma série de colaboradores levaram 4 anos para chegar à versão 3 do documento. A metodologia é a compilação da evolução de uma série de normas, padrões e boas práticas. Mais que isso, ela permite ao auditor de segurança medir com precisão quão desprotegido está o seu negócio.</p>
<p>Acredito que essa metodologia será a futura &#8216;Best Practices&#8217; de segurança e estou procurando criar uma parceria com a ISECOM, instituto do qual Pete é Diretor Geral, para trazer ao Brasil essa nova metodologia. Em um convite para ministrar uma vídeo-palestra a ser realizada aqui em Fortaleza, Pete se mostrou bastante empolgado. Espero conseguir realizar o mais cedo possivel esse evento!</p>
<p>Logo trarei mais detalhes.</p>
<p>Abraços.</p>
<p>Fernando Chucre</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/03/12/osstmm-metodologia-de-seguranca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
