<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-323244695432932431</id><updated>2011-12-08T11:45:40.166-02:00</updated><category term='vulnerabilidades'/><category term='fuzzing'/><category term='scanner de vulnerabilidade'/><category term='análise de código fonte'/><category term='orientações de segurança'/><category term='security'/><category term='SecBuemba'/><category term='tutorial'/><category term='modelos de segurança'/><category term='white box'/><category term='SAST'/><category term='software seguro'/><category term='ciclo de desenvolvimento seguro'/><category term='Logging'/><category term='negócio'/><category term='hackademic'/><category term='revisão de código'/><category term='Sonar'/><category term='terceirização'/><category term='conscientização'/><category term='teste'/><category term='PHP'/><category term='firewall de aplicação'/><category term='phishing'/><category term='privacidade'/><category term='ESAPI'/><category term='OWASP'/><category term='man-in-the-middle'/><category term='Enterprise Library'/><category term='BSIMM2'/><category term='Findbugs'/><category term='SSL'/><category term='livros'/><category term='AppSensor'/><category term='black box'/><category term='gray box'/><category term='web application security'/><category term='SSLStrip'/><category term='webgoat'/><category term='guias de segurança'/><title type='text'>Software Seguro</title><subtitle type='html'>Comentários e sugestões sobre segurança de software</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-3587741737538587561</id><published>2011-12-08T11:41:00.002-02:00</published><updated>2011-12-08T11:45:40.172-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='software seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><title type='text'>Evento SECURITY_AUDIT da ESAPI</title><content type='html'>Assim como publicado no Javadoc da ESAPI (&lt;a href="http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Logger.html"&gt;aqui&lt;/a&gt;),&amp;nbsp;o seu logging permite usarmos a dimensão segurança para categorizar os eventos. Estão disponíveis as seguintes categorias:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;EVENT_FAILURE – eventos não relacionados a segurança que apresentaram falhas.&lt;/li&gt;&lt;li&gt;EVENT_SUCCESS – eventos bem sucedidos não relacionados a segurança.&lt;/li&gt;&lt;li&gt;EVENT_UNSPECIFIED – eventos não relacionados a segurança sem determinação do seu sucesso/falha. &lt;/li&gt;&lt;li&gt;SECURITY_AUDIT – eventos associados a uma trilha de auditoria, cujo resultado pode ser de sucesso ou falha ou ser irrelevante.&lt;/li&gt;&lt;li&gt;SECURITY_FAILURE – eventos relacionados a segurança que apresentaram falhas.&lt;/li&gt;&lt;li&gt;SECURITY_SUCCESS – eventos bem sucedidos não relacionados a segurança.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;A classificação de registros de log pela segurança repercute muito positivamente no trabalho de resposta e prevenção de incidentes.&amp;nbsp;Caso essa lista não atenda as suas necessidades, ela pode ser facilmente extendida. &lt;br /&gt;&lt;br /&gt;Eu particularmente acredito que ela seja mais do que suficiente. De fato, não faria nenhuma adição de categoria. Ao contrário, faria&amp;nbsp; apenas&amp;nbsp;a subtração de SECURITY_AUDIT, pois no meu entendimento, todas as outras categorias podem, eventualmente, compor a trilha de auditoria. A reprensentação mais adequada delas, considerando esse entendimento, seria o diagrama de venn abaixo:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-d_WZXWl85Gw/TuC8Fu7UnpI/AAAAAAAAAQs/sHPDUejxI-c/s1600/esapi_security_logging.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-d_WZXWl85Gw/TuC8Fu7UnpI/AAAAAAAAAQs/sHPDUejxI-c/s320/esapi_security_logging.jpg" width="267" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-3587741737538587561?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/3587741737538587561/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=3587741737538587561' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/3587741737538587561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/3587741737538587561'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2011/12/evento-securityaudit-da-esapi.html' title='Evento SECURITY_AUDIT da ESAPI'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-d_WZXWl85Gw/TuC8Fu7UnpI/AAAAAAAAAQs/sHPDUejxI-c/s72-c/esapi_security_logging.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-2238089638270930231</id><published>2011-09-15T08:36:00.000-03:00</published><updated>2011-09-15T08:36:36.113-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAST'/><category scheme='http://www.blogger.com/atom/ns#' term='Findbugs'/><category scheme='http://www.blogger.com/atom/ns#' term='Sonar'/><category scheme='http://www.blogger.com/atom/ns#' term='análise de código fonte'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>FindBugs Gerenciado pelo Sonar</title><content type='html'>&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;O &lt;a href="http://findbugs.sourceforge.net/"&gt;FindBugs &lt;/a&gt;é uma ferramenta de revisão estática de código fonte que analisa código Java. A efetividade de uma ferramenta de análise estática é consequência principalmente do conjunto de regras ou assinaturas que ela possui. Para o caso do Findbugs, existem duas categorias de regras que merecem maior atenção da segurança. São elas : malicious code e security. As regras que estes dois conjuntos englobam podem ser observadas na tabela a seguir:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="direction: ltr;"&gt;&lt;table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border: 1pt solid rgb(163, 163, 163); direction: ltr;" valign="top"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in; text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Categoria&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in; text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Regra&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;DP_DO_INSIDE_DO_PRIVILEGED&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;EI_EXPOSE_REP&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;EI_EXPOSE_REP2&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;FI_PUBLIC_SHOULD_BE_PROTECTED&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;EI_EXPOSE_STATIC_REP2&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MS_CANNOT_BE_FINAL&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MS_EXPOSE_REP&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MS_FINAL_PKGPROTECT&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MS_MUTABLE_ARRAY&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MS_MUTABLE_HASHTABLE&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MALICIOUS   CODE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;MS_OOI_PKGPROTECT&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SECURITY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;DMI_CONSTANT_DB_PASSWORD&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SECURITY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;DMI_EMPTY_DB_PASSWORD&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SECURITY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;HRS_REQUEST_PARAMETER_TO_COOKIE&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SECURITY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;HRS_REQUEST_PARAMETER_TO_HTTP_HEADER&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SECURITY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SECURITY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;XSS_REQUEST_PARAMETER_TO_JSP_WRITER&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SECURITY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;XSS_REQUEST_PARAMETER_TO_SEND_ERROR&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 0.795in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;SECURITY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid rgb(163, 163, 163); padding: 4pt; vertical-align: top; width: 2.031in;"&gt;&lt;div style="color: black; font-family: Calibri; font-size: 6pt; margin: 0in;"&gt;XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;O baixo número de regras, nem a limitação para avaliação de outras linguagens, como JSP ou o framework JSF, não são justificativas para descartar o uso dessa ferramenta, uma vez que a sua varredura pode revelar alguns dos riscos de segurança mais críticos como, por exemplo, SQLInjection e XSS. Outro ponto forte do Findbugs&amp;nbsp;é a sua gratuidade. &lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;A execução de varredura pelo Findbugs é tão simples, quanto o entendimento de seus parâmetros de&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;linha de comando. Segue o exemplo de comando:&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; margin: 0in;"&gt;&lt;br /&gt;&amp;lt;&lt;em&gt;caminho máquina para o findbugs&lt;/em&gt;&amp;gt;/findbugs/lib/findbugs.jar -textui -effort:max -sortByClass -low -html -output &amp;lt;&lt;em&gt;caminho destino do relatório&lt;/em&gt;&amp;gt;/findbugs.html &amp;lt;&lt;em&gt;caminho onde se&amp;nbsp;encontra  jar&lt;/em&gt;&amp;gt;/teste.jar&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;Os detalhes sobre os parâmetros podem ser observados &lt;a href="http://findbugs.sourceforge.net/manual/running.html#d0e511"&gt;aqui&lt;/a&gt;.&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;Entretanto, na maioria dos casos, existe a&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;necessidade de revisar o resultado da varredura, eliminando os falsos positivo. Além disso, é desejável que se tenha um histórico do bugs revelados e de suas correções. Esses recursos não são nativos do Findbugs. Uma das alternativas, além de escrever seu próprio aplicativo &lt;em&gt;bugtracker&lt;/em&gt; é o uso do &lt;a href="http://www.sonarsource.org/"&gt;Sonar&lt;/a&gt;. &lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;O &lt;a href="http://www.sonarsource.org/"&gt;Sonar&lt;/a&gt; é uma plataforma para gestão de qualidade de código que já possui instalada em sua versão de instalação o plugin do Findbugs. Por ela, é possível gerenciar dentre diversos bugs, aqueles revelados pelo Findbugs.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;Como a documentação do Sonar é muito completa, registro alguns pontos relevantes para colocá-lo em uso.&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="color: #17365d; font-family: Calibri; font-size: 16pt; margin: 0in;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;a href="http://www.sonarsource.org/downloads"&gt;http://www.sonarsource.org/downloads&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="color: #17365d; font-family: Calibri; font-size: 16pt; margin: 0in;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalação&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;a href="http://docs.codehaus.org/display/SONAR/Install+Sonar"&gt;http://docs.codehaus.org/display/SONAR/Install+Sonar&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;a href="http://docs.codehaus.org/display/SONAR/Analyse+with+Ant+Task"&gt;http://docs.codehaus.org/display/SONAR/Analyse+with+Ant+Task&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="color: #17365d; font-family: Calibri; font-size: 16pt; margin: 0in;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configuração&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;Como nosso enfoque é segurança, vamos configurá-lo para que use somente as regras de segurança do Findbugs. Para as configurações relacionadas a seguir considere a instalação padrão do Sonar.&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;1. Acesse o link &lt;a href="http://127.0.0.1:9000/profiles"&gt;http://127.0.0.1:9000/profiles&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-nomVVW6VxIo/TnERj6H58II/AAAAAAAAAPk/AVk67AdU3Hk/s1600/profiles1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="http://3.bp.blogspot.com/-nomVVW6VxIo/TnERj6H58II/AAAAAAAAAPk/AVk67AdU3Hk/s320/profiles1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;2. Copie o profile &lt;span style="font-style: italic;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Sonar way with Findbugs&lt;/span&gt; e dê o nome &lt;span style="font-style: italic;"&gt;Findbugs-Sec&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-s3LAkyyIW_g/TnERuyzwq-I/AAAAAAAAAPo/8EZUx8GEKl8/s1600/profiles2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="http://1.bp.blogspot.com/-s3LAkyyIW_g/TnERuyzwq-I/AAAAAAAAAPo/8EZUx8GEKl8/s320/profiles2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;3 - Clique no botão Set as default.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-v6R2WoloyLY/TnERywm0yYI/AAAAAAAAAPs/UFclIl3YT-0/s1600/profiles3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="188" src="http://4.bp.blogspot.com/-v6R2WoloyLY/TnERywm0yYI/AAAAAAAAAPs/UFclIl3YT-0/s320/profiles3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;4 - Entre no profile Findbugs - Sec e desative todas as regras.&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TokKDFDG_G8/TnER3ejc8JI/AAAAAAAAAPw/-KOoX0yf8Z4/s1600/rules_config_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="188" src="http://3.bp.blogspot.com/-TokKDFDG_G8/TnER3ejc8JI/AAAAAAAAAPw/-KOoX0yf8Z4/s320/rules_config_1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;5 - Ative todas as regras da categoria Security:&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-gHbmIHHuAd0/TnER7I8mWLI/AAAAAAAAAP0/YF3JuAu2Lm8/s1600/rules_config_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="188" src="http://3.bp.blogspot.com/-gHbmIHHuAd0/TnER7I8mWLI/AAAAAAAAAP0/YF3JuAu2Lm8/s320/rules_config_2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;6 -&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Ative todas as regras da categoria Malicious Code.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-KtNJB0w1yWs/TnESAd5zz3I/AAAAAAAAAP4/7nd4QoBdjjI/s1600/rules_config_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="188" src="http://1.bp.blogspot.com/-KtNJB0w1yWs/TnESAd5zz3I/AAAAAAAAAP4/7nd4QoBdjjI/s320/rules_config_3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;A partir deste ponto o Sonar está preparado para usar apenas as regras das categorias Security e Malicious Code. &lt;/div&gt;&lt;div style="color: #17365d; font-family: Calibri; font-size: 16pt; margin: 0in;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Varredura&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;Para realizar a varredura existem três possibilidades (Maven, Ant e Java Runner), mas optamos pelo uso do Ant. &lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;No arquivo build.xml de sua aplicação, introduza o conteúdo a seguir:&lt;/div&gt;&lt;pre class="brush: xml"&gt;&lt;target name="sonar"&gt;&lt;br /&gt;   &lt;sonar:sonar key="webgoat" version="1.0" workdir="${temp.dir}" xmlns:sonar="antlib:org.sonar.ant"&gt;   &lt;br /&gt;      &lt;sources&gt;&lt;br /&gt;         &lt;path location="${java.dir}"&gt;&lt;br /&gt;      &lt;/path&gt;&lt;/sources&gt;    &lt;br /&gt;      &lt;binaries&gt;&lt;br /&gt;   &lt;path location="${webroot.dir}"&gt;&lt;br /&gt;      &lt;/path&gt;&lt;/binaries&gt;   &lt;br /&gt;      &lt;libraries&gt;&lt;br /&gt;   &lt;path refid="compile.classpath"&gt;&lt;br /&gt;      &lt;/path&gt;&lt;/libraries&gt;        &lt;br /&gt;      &lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;br /&gt;      &lt;property key="sonar.language" value="java"&gt;&lt;br /&gt;      &lt;property key="sonar.projectName" value="webgoat"&gt;&lt;br /&gt;   &lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/sonar:sonar&gt;&lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;property key="sonar.language" value="java"&gt;&lt;property key="sonar.projectName" value="webgoat"&gt;&lt;br /&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/target&gt;&lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;property key="sonar.language" value="java"&gt;&lt;property key="sonar.projectName" value="webgoat"&gt;&lt;br /&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/pre&gt;&lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;property key="sonar.language" value="java"&gt;&lt;property key="sonar.projectName" value="webgoat"&gt;&lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;property key="sonar.language" value="java"&gt;&lt;property key="sonar.projectName" value="webgoat"&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;br /&gt;&lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;property key="sonar.language" value="java"&gt;&lt;property key="sonar.projectName" value="webgoat"&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;br /&gt;&lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;property key="sonar.language" value="java"&gt;&lt;property key="sonar.projectName" value="webgoat"&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;br /&gt;&lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;property key="sonar.language" value="java"&gt;&lt;property key="sonar.projectName" value="webgoat"&gt;&lt;property key="sonar.dynamicAnalysis" value="true"&gt;&lt;property key="sonar.language" value="java"&gt;&lt;property key="sonar.projectName" value="webgoat"&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;Agora, basta rodar o Ant direcionando para a tarefa sonar (ex.: .\ant&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;sonar). No exemplo da imagem a seguir, foi realizada a varredura do &lt;a href="http://webgoat.googlecode.com/svn/trunk/"&gt;Webgoat 5.2.&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-w1LWFaylUgs/TnESfQvY-uI/AAAAAAAAAP8/nkL1iWZEXPg/s1600/webgoat1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="188" src="http://3.bp.blogspot.com/-w1LWFaylUgs/TnESfQvY-uI/AAAAAAAAAP8/nkL1iWZEXPg/s320/webgoat1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;/div&gt;&lt;div style="color: #17365d; font-family: Calibri; font-size: 16pt; margin: 0in;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Arremate&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;Com o Sonar em operação pode-se monitorar a evolução dos bugs de segurança com maior facilidade. O exemplo abaixo mostra o resultado de duas varreduras no Webgoat 5.2, sendo que uma mudança no código gerou uma vulnerabilidade &lt;span style="font-style: italic;"&gt;Blocker &lt;/span&gt;e eliminou outra&amp;nbsp;&lt;span style="font-style: italic;"&gt;Critical&lt;/span&gt;.&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-2anInhWQr-Y/TnESjlq7dfI/AAAAAAAAAQA/huCpy_OjfWg/s1600/webgoat2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://3.bp.blogspot.com/-2anInhWQr-Y/TnESjlq7dfI/AAAAAAAAAQA/huCpy_OjfWg/s320/webgoat2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;É importante ressaltar que os resultados são provenientes do Findbugs,&amp;nbsp;consequência&amp;nbsp;do seu conjunto de regras, mostradas anteriormente. &lt;br /&gt;&lt;br /&gt;O uso dos recursos apresentados aqui são mais apropriados para casos em que a organização esteja pensando em adotar uma ferramenta de análise estática de segurança de código fonte. Considero a sua operação, como um primeiro passo antes da aquisição de ferramentas de mercado.&lt;/div&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-2238089638270930231?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/2238089638270930231/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=2238089638270930231' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2238089638270930231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2238089638270930231'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2011/09/findbugs-gerenciado-pelo-sonar.html' title='FindBugs Gerenciado pelo Sonar'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-nomVVW6VxIo/TnERj6H58II/AAAAAAAAAPk/AVk67AdU3Hk/s72-c/profiles1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-8540722573377579393</id><published>2011-08-17T10:41:00.003-03:00</published><updated>2011-08-17T11:21:54.365-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OWASP'/><title type='text'>A OWASP, você e a segurança de software</title><content type='html'>Na última semana concluímos uma maratona de treinamento introdutório em segurança de software. Foram 9 turmas, alcançando 183 profissionais, envolvendo programadores, analistas de teste, analista de infraestrutura, arquitetos e outros. A experiência foi parte de um programa de segurança de software orientado pelas práticas do Build Security In Maturity Model (&lt;a href="http://bsimm.com/"&gt;BSIMM&lt;/a&gt;). Neste caso, atendendo as seguintes atividades da prática Treinamento:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;T1.1 - Forneça treinamento de conscientização.&lt;/li&gt;&lt;li&gt;T2.2 - Crie/use material específico da história da empresa.&lt;/li&gt;&lt;li&gt;T3.2 - Forneça treinamento para fornecedores e profissionais terceirizados. &lt;/li&gt;&lt;/ul&gt;Ao longo do treinamento procurei registrar o estado da turma acerca da segurança de software observando as seguintes questões:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quem já vivenciou algum treinamento em segurança de software? Ressaltando que treinamento em segurança da informação, apesar de muito oportuno, não é a mesma coisa.&lt;/li&gt;&lt;li&gt;Quem conhecia Injeção de SQL?&lt;/li&gt;&lt;li&gt;Quem conhecia Cross Site Scripting (XSS)?&lt;/li&gt;&lt;li&gt;Quem conhecia a &lt;a href="http://www.owasp.org/"&gt;OWASP&lt;/a&gt;?&lt;/li&gt;&lt;/ul&gt;Dos 183 alunos, 14(7,65%) já haviam participado de treinamento em segurança de software, 32 (17,5%) conheciam Injeção de SQL, 1(0,5%) conhecia XSS e nenhum aluno conhecia o termo OWASP.&lt;br /&gt;&lt;br /&gt;Os dados em si, não são muito reveladores, uma vez que é amplamente difundida a defasagem dos profissionais do mercado em segurança de software (&lt;a href="http://blogs.oracle.com/maryanndavidson/entry/the_supply_chain_problem"&gt;aqui&lt;/a&gt;). Mesmo tendo isso em mente, surpreende o fato de nenhuma pessoa ter sequer ouvido falar no termo OWASP. &lt;br /&gt;&lt;br /&gt;É preocupante, pois a OWASP está ai fora há quase 10 anos e isso (desconhecimento) pode impedir que ela alcance o seu propósito: “Be the thriving global community that drives visibility and evolution in the safety and security of the world’s software.” (&lt;a href="https://www.owasp.org/index.php/About_OWASP"&gt;aqui&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Talvez seja esse o principal desafio para o próximo board (&lt;a href="https://www.owasp.org/index.php/Membership/2011Election"&gt;aqui&lt;/a&gt;) da OWASP. Eu, particularmente, tenho plena convicção que os desenvolvedores podem promover mudanças sensíveis na segurança do seu software, a partir de simples sensibilização e instrução de técnicas de defesa. Não há, no meu entendimento, outro movimento/canal no momento, com maior concentração e organização de conteúdo sobre a segurança de software. O maior problema é que a mensagem de segurança não chega até o desenvolvedor.&lt;br /&gt;&lt;br /&gt;Uma vez que o problema está exposto, o que podemos fazer para mudar esse cenário? Seguem duas sugestões, pra começar:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sustente - Você que consome o conteúdo OWASP, qual foi a última vez que você divulgou o projeto? Por que não falar para o desenvolvedor que se encontra do seu lado, ou aquele colega de universidade sobre a segurança de software e a OWASP para sua pesquisa? Estabeleça sua meta de disseminação. Obviamente, você pode contribuir, produzir conteúdo, traduzir, etc.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Fiscalize - Você que está associado a algum capítulo da OWASP, conhece o board? Você sabia que a OWASP recomenda fortemente que haja pelo menos dois líderes para que as atividades sejam distribuídas (&lt;a href="https://www.owasp.org/index.php/Chapter_Leader_Handbook_%28OLD%29"&gt;aqui&lt;/a&gt;)? Qual foi o último evento promovido pelo seu capítulo? O board do seu capítulo está comprometido com a OWASP ou somente com a sua autopromoção? Qual a disponibilidade do board para as atividades do capítulo? Seu capítulo é considerado ativo (&amp;gt;5 eventos ano)? Cobre! &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;E você, o que tem a sugerir? Escreva ai embaixo!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-8540722573377579393?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/8540722573377579393/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=8540722573377579393' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/8540722573377579393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/8540722573377579393'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2011/08/owasp-voce-e-seguranca-de-software.html' title='A OWASP, você e a segurança de software'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-4646006750477888247</id><published>2011-07-11T09:55:00.024-03:00</published><updated>2011-07-11T16:23:07.439-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='man-in-the-middle'/><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='SSLStrip'/><title type='text'>Um ataque man-in-the-middle ao SSL via SSLStrip</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;/div&gt;No ataque man-in-the-middle (MITM) o atacante intercepta a conexão entre a vítima e o servidor de maneira a analisar todos os dados da comunicação, conforme representado pela Figura 1. Além disso, o atacante “finge” ser a vítima na comunicação com o servidor. Uma condição para execução do man-in-the-middle é que a vítima e o atacante estejam na mesma subrede.&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para este teste aconselha-se a utilização da distribuição linux &lt;a href="http://www.backtrack-linux.org/"&gt;BackTrack&lt;/a&gt;, que apresenta na sua versão 5 várias ferramentas para teste de penetração. Dentre elas existem 6 para análise do SSL: ssldump, sslh, sslsniff, sslstrip, testssl.sh e thcsslcheck.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-kFjkcvaNpiA/Thr-QTdokWI/AAAAAAAAACA/ket6eQjWBrg/s1600/man-in-the-middle.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5628090240408785250" src="http://2.bp.blogspot.com/-kFjkcvaNpiA/Thr-QTdokWI/AAAAAAAAACA/ket6eQjWBrg/s320/man-in-the-middle.jpg" style="display: block; height: 178px; margin: 0px auto 10px; text-align: justify; width: 320px;" /&gt;&lt;/a&gt;Figura 1 – Ataque man-in-the-middle, fonte &lt;a href="https://www.owasp.org/index.php/Man-in-the-middle_attack"&gt;OWASP&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;SSLStrip&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;O &lt;a href="http://www.thoughtcrime.org/software/sslstrip/"&gt;SSLStrip&lt;/a&gt; é uma ferramenta desenvolvida por Moxie Marlinspike, apresentada pela primeira vez na black hat 2009 na palestra &lt;a href="https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf"&gt;“New Tricks For Defeating SSL In Practice”&lt;/a&gt;. Pode-se descrever brevemente o funcionamento do SSLStrip da seguinte maneira:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A partir de um ataque de arp spoofing é possível modificar o cache arp da máquina da vítima de maneira que o endereço MAC do atacante se passe pelo endereço MAC do roteador, assim o alvo começa a enviar para o atacante todo o seu tráfego. O kernel da máquina do atacante redireciona o tráfego que não é destinado a porta 80 (http) ou 443 (https) para o roteador autêntico. O tráfego destinado para a porta 80 (http) ou 443 (https) é redirecionado para uma porta de escuta $listenPort, que por padrão é a 10000. Neste ponto, o SSLStrip recebe o tráfego http e realiza o ataque.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Portanto podemos dividir o ataque em 4 passos realizados a partir da máquina do atacante:&lt;/div&gt;&lt;ol class="withroman"&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Ativar o modo de redirecionamento de todo tráfego que passa pela máquina pelo comando:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;echo "1" &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;/div&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Configurar a tabela de roteamento (iptables) para redirecionar o tráfego HTTP para o SSLStrip pelo comando:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port "listenport"&lt;/div&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Rodar o SSLStrip especificando a porta de escuta, caso não seja passada nenhuma porta como argumento será considerada a 10000:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;sslstrip.py -l "listenport"&lt;/div&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Rodar o arpspoof com o intuito de configurar todas as máquinas da subrede a enviarem seus respectivos tráfegos:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;arpspoof -i "interface" -t "targetip" "gatewayip"&lt;/div&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;/ol&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Exemplo de execução dos passos&lt;/span&gt;&lt;br /&gt;&lt;ol class="withroman"&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;li style="text-align: justify;"&gt;  echo "1" &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;li style="text-align: justify;"&gt; iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;li style="text-align: justify;"&gt; sslstrip.py -l 10000&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;li style="text-align: justify;"&gt; Em outro terminal: arpspoof -i eth0 -t 10.0.0.15 10.0.0.254&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/TJHcfs4inhs" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Sessão&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;O SSLStrip pode possibilitar um ataque de &lt;a href="https://www.owasp.org/index.php/Session_hijacking_attack"&gt;sequestro de sessão&lt;/a&gt;. Este ataque consiste em explorar o mecanismo de controle de sessão, o qual é normalmente gerenciado através de um token de sessão. Após decifrar a conexão através do SSLStrip o atacante consegue visualizar toda a requisição HTTP, portanto também terá acesso ao token de sessão. De posse do token de sessão o atacante pode forjar requisições como se fossem originadas pelo usuário legítimo.Exemplo de uso do SSLStrip para realizar um sequestro de sessão:&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/UsmU8zVg1OQ" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-4646006750477888247?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/4646006750477888247/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=4646006750477888247' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4646006750477888247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4646006750477888247'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2011/07/um-ataque-man-in-middle-ao-ssl-via.html' title='Um ataque man-in-the-middle ao SSL via SSLStrip'/><author><name>Thiago Stuckert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-kFjkcvaNpiA/Thr-QTdokWI/AAAAAAAAACA/ket6eQjWBrg/s72-c/man-in-the-middle.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-9201997505662933834</id><published>2011-06-10T15:40:00.001-03:00</published><updated>2011-06-10T15:44:29.624-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='BSIMM2'/><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='Logging'/><category scheme='http://www.blogger.com/atom/ns#' term='AppSensor'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Library'/><title type='text'>Logging de Aplicação</title><content type='html'>&lt;div style="font-family: inherit;"&gt;O logging é uma dimensão muito importante de uma aplicação, mas que é amplamente negligenciada durante o seu processo de design, assim como a segurança de software. Não é a toa que uma das práticas iniciais recomendadas pelo &lt;a href="http://softwareseguro.blogspot.com/2010/09/build-security-in-manturity-model-em.html"&gt;BSIMMv2 (AA1.1)&lt;/a&gt; dê enfoque aos mecanismos de segurança, conteúdo no qual o logging  se enquadra.&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;Talvez seja o fato dos principais interessados: auditor, desenvolvedor e administrador do sistema, não estarem tão interessados assim, desde o princípio (abordagem build security outside in). O administrador do sistema normalmente não é e&lt;/span&gt;stimulado a pensar nos sinais que a aplicação deva lhe fornecer para atuar diante de questões de produção. O auditor só chega em cena, depois que o circo começa a pegar fogo, ou por imposição regulatória. Já o desenvolvedor, se vale das ferramentas de debug para resolver os problemas de código, desdenhando do log.&lt;br /&gt;&lt;br /&gt;Mas considere que você esteja numa situação privilegiada, na qual pode pensar em logging  antes que necessite de fato do log. Que caminho seguir? De forma bem objetiva e resumida recomendaria as seguintes etapas para o sucesso da sua iniciativa de logging.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dbfz8Jsp2Iw/TfJdzVUcrFI/AAAAAAAAAPA/BJw3nnZZYcI/s1600/logging.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="283" src="http://2.bp.blogspot.com/-dbfz8Jsp2Iw/TfJdzVUcrFI/AAAAAAAAAPA/BJw3nnZZYcI/s320/logging.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Reconheça a aplicabilidade do log&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Para reconhecer a aplicabilidade é fundamental levantar que cenários serão tratados pela sua organização. Isso pode partir das atividades comuns dos papéis citados anteriormente. Por exemplo, o auditor precisará atuar diante de cenários que envolvam ataques, uso inadequado e falhas. Já o desenvolvedor e o administrador se interessariam mais por cenários de falhas, erros e desempenho. Inclua as seguintes questões durante a sua análise:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;A que servirá o log?&lt;/b&gt; Essa questão lhe ajudará a se afastar da tecnologia e perceber que o log possui um objetivo e que este deve ser o foco. Temos alguns exemplos:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Garantir não repúdio de ações executadas por usuários autênticos. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Reconhecer fluxos de execução ou entradas para a aplicação reconhecidamente suspeitas.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Identificar a linha do código fonte que comprometeu a execução da aplicação.&lt;/li&gt;&lt;li&gt;Mostrar a pilha de execução relacionada a determinado falha da aplicação.&lt;/li&gt;&lt;li&gt;Recuperar os dados que eram processados no momento de alguma falha.&lt;/li&gt;&lt;li&gt;Reconhecer quando determinados eventos são iniciados e concluídos. &lt;/li&gt;&lt;li&gt;Reconhecer o tempo de processamento de determinadas ações da aplicação.&lt;/li&gt;&lt;li&gt;Reconhecer o estado de recursos, como espaço disponível em disco.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Como o log será consumido? &lt;/b&gt;Essa questão vai influenciar diretamente no conteúdo do log, que deverá ser elaborado para que as diferentes formas de consumo sejam possíveis.  &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Manualmente com/sem apoio de ferramentas automatizadas ou automaticamente.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Qual a origem dos registros do log?&lt;/b&gt; Definição que lhe orientará quanto a dinâmica para consolidar os registros, além de dar um tratamento homogêneo independente da origem.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Aplicação, WAF, servidor de aplicação, etc.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Como o log será armazenado?&lt;/b&gt; Sua infraestrutura terá que estar preparada para receber os registros, garantir a sua segurança, oferecer acesso concorrente, etc.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Arquivo, banco de dados e/ou console.&lt;/li&gt;&lt;li&gt;Dimensão máxima da base.&lt;/li&gt;&lt;li&gt;Segmentação do arquivo.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Defina o conteúdo do log&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Uma vez que se tem a noção do que se espera do log e do ambiente em que ele estará inserido, chega o momento da definição do seu conteúdo. Uma abordagem bastante interessante é o reconhecimento dos eventos que devem ser encontrados no log. Como nosso interesse está muito voltado para segurança, nada mais natural que tratar de tais eventos. &lt;a href="http://portal.acm.org/citation.cfm?id=1849406"&gt;Anton Chuvakin e Gunnar Peterson&lt;/a&gt; sugerem os seguintes eventos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Autenticação, autorização e acesso:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Decisões com falha ou sucesso relacionadas a autorização e autenticação.&lt;/li&gt;&lt;li&gt;Acesso a sistema, a dados e componentes; e&lt;/li&gt;&lt;li&gt;Acesso remoto, incluindo aqueles entre componentes de uma mesma aplicação em ambientes distribuídos.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Mudanças:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Mudanças em sistema ou aplicação (especialmente quando envolva alteração de privilégios).&lt;/li&gt;&lt;li&gt;Mudanças de dados (incluindo a criação e destruição), e&lt;/li&gt;&lt;li&gt;Instalação e mudanças em componentes e aplicações.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Problemas de disponibilidade:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Inicio e encerramento de sistemas, aplicações e módulos ou componentes de aplicações, e&lt;/li&gt;&lt;li&gt;Sucesso e falhas de backup que afete disponibilidade.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Problemas com recursos: &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Recursos excedendo suas capacidades.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Problemas com conectividade.&lt;/li&gt;&lt;li&gt;Limites estourados.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Indicação de ameaças:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Entradas inválidas ou outros abusos da aplicação.&lt;/li&gt;&lt;li&gt;Outros problemas com a aplicação que comprometa a sua operação.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;É praticamente impossível levantar todos os eventos de uma aplicação, mas quanto mais ampla for a lista, mais condições se tem de conduzir a forma de elaboração do registro. Definidos os eventos, você pode estabelecer uma convenção de dados do registro relacionado a cada evento. Essa é uma forma de reduzir o poder discricionário do desenvolvedor em definir o conteúdo do log, fonte patente de problemas.&lt;br /&gt;&lt;br /&gt;Definidos os eventos, é recomendável usar uma forma de categorização dos registros do log. Tal categorização lhe permite priorizar sua atenção diante dos eventos produzidos pela aplicação. A maneira amplamente difundida é pela sua prioridade ou criticidade, que na maioria dos casos varia de trace, nível menos crítico, até fatal, nível mais crítico. A justificativa para cada categoria segue abaixo:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;FATAL &lt;/b&gt;– apropriado para eventos que indiquem uma falha crítica de serviço. Se um serviço emitir um erro FATAL, ele está completamente incapaz de responder. Ex. Indisponibilidade total de um dos componentes-chave da aplicação.&lt;/li&gt;&lt;li&gt;&lt;b&gt;ERRO&lt;/b&gt; – apropriado para eventos que indiquem uma descontinuidade em uma requisição ou habilidade do serviço em responder. Um serviço deve ter alguma capacidade de continuar a responder a requisições mesmo na presença de ERROs. Os ERROs não podem ser tolerados pela aplicação e devem ser investigados imediatamente.&lt;/li&gt;&lt;li&gt;&lt;b&gt;AVISO&lt;/b&gt; – apropriado para eventos que indiquem um erro não crítico em determinado serviço. Erros resumidos ou brechas menores em requisições recaem sobre essa categoria. A distinção entre AVISO e ERRO é muito tênue. Um critério simples é se a falha resulta em chamada de suporte pelo usuário. Caso a resposta seja positiva, escolha ERRO, caso contrário use AVISO. Os AVISOs podem ser tolerados pela aplicação, mas devem sempre ser justificados e examinados. Ex. Aplicação operando em modo debug. O console da aplicação não impõe controle de acesso.&lt;/li&gt;&lt;li&gt;&lt;b&gt;INFO&lt;/b&gt; – apropriado para eventos do ciclo de vida de serviços e outras informações cruciais relacionadas. Mensagens INFO para uma determinada categoria de serviço devem revelar qual o estado corrente do serviço. Outra definição de mensagens INFO, registram ações que alteram significativamente o estado da aplicação. Ex. Atualização do banco de dados, requisição. &lt;/li&gt;&lt;li&gt;&lt;b&gt;DEBUG&lt;/b&gt; – apropriado para mensagens que incorporam informações extras aos eventos de ciclo de vida. Informação de desenvolvimento ou mais aprofundada necessária para o suporte é a base para esta prioridade. Pode-se considerar a pilha de execução e mensagens trocadas com sistemas externos a aplicação.&lt;/li&gt;&lt;li&gt;&lt;b&gt;TRACE&lt;/b&gt; – informação muito detalhada de interesse de desenvolvedores. Tais mensagens são mantidas por um período de tempo muito pequeno quando a aplicação entra em produção e devem ser consideradas temporárias. A dificuldade em se distinguir mensagens DEBUG e TRACE é a mais elevada. Uma vez que se considere um bloco de instruções de logging&amp;nbsp; desprezível após o desenvolvimento e teste da aplicação, provavelmente ele deve ser classificado como TRACE. Estas mensagens podem conter, por exemplo, além dos métodos de classes no fluxo de execução, os argumentos que cada método recebe e devolve.&lt;/li&gt;&lt;/ul&gt;As categorias citadas anteriormente servem apenas como um exemplo a ser considerado para definir as categorias que fizerem sentido para os objetivos do logging .&lt;br /&gt;&lt;br /&gt;Outra dimensão recomendada para categorizar os registros é a&lt;b&gt; segurança&lt;/b&gt;. Todos os eventos considerados por&lt;a href="http://portal.acm.org/citation.cfm?id=1849406"&gt; Anton Chuvakin e Gunnar Peterson&lt;/a&gt; recaem sobre essa categoria.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Disponibilize o mecanismo de logging &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;A maneira mais recomendada para conceber um mecanismo de logging  é adaptar uma das diversas bibliotecas disponíveis de acordo com suas necessidades. &lt;br /&gt;Dentre as funcionalidades oferecidas por uma biblioteca de logging, as seguintes se destacam:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Administração da saída (dimensão, backup, divisão, gravação, etc.)&lt;/li&gt;&lt;li&gt;Classificação dos registros (criticidade/prioridade/segurança).&lt;/li&gt;&lt;li&gt;Gerenciamento de concorrência.&lt;/li&gt;&lt;/ul&gt;Tais funcionalidades estão presentes em várias bibliotecas como, por exemplo: &lt;a href="http://msdn.microsoft.com/en-us/library/ff632023.aspx"&gt;Enterprise Library&lt;/a&gt;, &lt;a href="http://slf4j.org/"&gt;SLF4J&lt;/a&gt; e &lt;a href="https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API"&gt;ESAPI&lt;/a&gt;. A ESAPI merece um destaque especial por este post, pois foi concebida com pretensões muito ousadas no que se refere a segurança. Decorre daí a possibilidade de instrumentar de forma bastante simples a aplicação, para que ela se adapte automaticamente diante de cenários de ataque, a partir do uso do &lt;a href="https://www.owasp.org/index.php/OWASP_AppSensor_Project"&gt;AppSensor&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Instrua os desenvolvedores&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Uma vez que se defina o que e como logar, para que se obtenha sucesso nessa iniciativa, o desenvolvedor deve ser “bombardeado” de treinamento, orientação e acompanhamento para garantir o uso adequado do mecanismo e, principalmente, que o conteúdo dos registros seja completo e compreensível para o fim a que ele se destina.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Considerações Finais&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Apresentamos algumas etapas fundamentais no processo de estruturação do logging de aplicações. Cada fase mereceria diversos posts para contemplar assuntos tão extensos, mas por limitações de tempo tivemos que nos limitar a elas.&lt;br /&gt;&lt;br /&gt;São ainda questões interessantes a serem discutidas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Como ajustar o logging de uma aplicação que usa um WAF?&lt;/li&gt;&lt;li&gt;Como garantir que o conteúdo do log não seja subvertido pelo desenvolvedor?&lt;/li&gt;&lt;li&gt;Como orquestrar o mecanismo de validação de entrada e saída e o mecanismo de logging para que a aplicação trabalhe segundo uma abordagem de segurança positiva?&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Links Relacionados&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.delicious.com/fabraz/Logging"&gt;&lt;b&gt;http://tinyurl.com/3hv6mgv&lt;/b&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-9201997505662933834?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/9201997505662933834/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=9201997505662933834' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/9201997505662933834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/9201997505662933834'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2011/06/logging-de-aplicacoes.html' title='Logging de Aplicação'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-dbfz8Jsp2Iw/TfJdzVUcrFI/AAAAAAAAAPA/BJw3nnZZYcI/s72-c/logging.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-5002088438170622031</id><published>2011-05-05T14:24:00.005-03:00</published><updated>2011-05-05T14:48:01.848-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hackademic'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='web application security'/><title type='text'>Hackademic OWASP</title><content type='html'>O OWASP lançou uma série de desafios chamado &lt;a href="http://www.hackademic.eu/"&gt;&lt;strong&gt;OWASP Hackademic Challenges Project&lt;/strong&gt; &lt;/a&gt;, um projeto de código-livre, cujo objetivo é ajudar o testador a ganhar conhecimento em testes de segurança em aplicações web.&lt;br /&gt;&lt;br /&gt;A Sr. Nimbus através desse post disponibiliza a solução dos 8 primeiros desafios:&lt;br /&gt;&lt;br /&gt;Solução do Desafio 1:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="https://www.youtube.com/embed/jkFZoTDSS_4" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Solução do Desafio 2:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="https://www.youtube.com/embed/o8DxZPQLGpc" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Solução do Desafio 3:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="https://www.youtube.com/embed/8qDmzhI-8d4" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Solução do Desafio 4:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="http://www.youtube.com/embed/MGPul7lXCfo" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Solução do Desafio 5:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="https://www.youtube.com/embed/o_9AgB-euDM" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Solução do Desafio 6:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="https://www.youtube.com/embed/0lzeQm7buYc" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Solução do Desafio 7:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="https://www.youtube.com/embed/Xfw8ZHRcRWk" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Solução do Desafio 8:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="https://www.youtube.com/embed/8wbhGqMoFBg" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-5002088438170622031?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/5002088438170622031/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=5002088438170622031' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5002088438170622031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5002088438170622031'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2011/05/hackademic-owasp.html' title='Hackademic OWASP'/><author><name>Thiago Stuckert</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/jkFZoTDSS_4/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-5810001965418245398</id><published>2010-09-28T09:01:00.001-03:00</published><updated>2010-09-28T09:02:42.343-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BSIMM2'/><category scheme='http://www.blogger.com/atom/ns#' term='guias de segurança'/><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='conscientização'/><title type='text'>Building Security In Manturity Model em Português</title><content type='html'>&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://3.bp.blogspot.com/_1mDb1TmIoVc/TKHYzIUGscI/AAAAAAAAADk/tYIUBpln6lI/s1600/Bsimm2.jpg" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" px="true" src="http://3.bp.blogspot.com/_1mDb1TmIoVc/TKHYzIUGscI/AAAAAAAAADk/tYIUBpln6lI/s200/Bsimm2.jpg" width="153" /&gt;&lt;/a&gt;Como temos trabalhado bastante com o Building Security In Manturity Model (BSIMM) e pelo reconhecimento de que, infelizmente, o idioma ainda se apresenta como uma barreira para assimilação de conteúdo pelos nossos técnicos/analistas, resolvemos empreender a tradução do modelo.&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Você poderá encontrá-lo clicando &lt;a href="http://bsimm2.com/download/"&gt;aqui&lt;/a&gt;.&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;Aproveite!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-5810001965418245398?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/5810001965418245398/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=5810001965418245398' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5810001965418245398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5810001965418245398'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2010/09/build-security-in-manturity-model-em.html' title='Building Security In Manturity Model em Português'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1mDb1TmIoVc/TKHYzIUGscI/AAAAAAAAADk/tYIUBpln6lI/s72-c/Bsimm2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-7733529813528632157</id><published>2010-03-22T17:32:00.004-03:00</published><updated>2010-03-22T17:38:40.953-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scanner de vulnerabilidade'/><category scheme='http://www.blogger.com/atom/ns#' term='web application security'/><title type='text'>Google Lança Web Application Security Scanner</title><content type='html'>A Google lançou seu Web Application Security Scanner. Espero ter condições de testá-lo em breve!&lt;br /&gt;&lt;br /&gt;Mais detalhes no link http://code.google.com/p/skipfish/wiki/SkipfishDoc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-7733529813528632157?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/7733529813528632157/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=7733529813528632157' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7733529813528632157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7733529813528632157'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2010/03/google-lanca-web-application-security.html' title='Google Lança Web Application Security Scanner'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-6858746429856368321</id><published>2008-11-11T10:51:00.002-02:00</published><updated>2008-11-11T11:03:49.339-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webgoat'/><category scheme='http://www.blogger.com/atom/ns#' term='conscientização'/><title type='text'>Hack this!</title><content type='html'>Fiquei sabendo à pouco de um novo site com propósitos didáticos para hacking ético. Ao que tudo indica, ele se parece com uma versão on-line do WebGoat da Owasp.&lt;br /&gt;&lt;br /&gt;Confira no link:&lt;br /&gt;&lt;br /&gt;http://www.hackthis.co.uk/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-6858746429856368321?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/6858746429856368321/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=6858746429856368321' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6858746429856368321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6858746429856368321'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/11/hack-this.html' title='Hack this!'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-7878142704793596515</id><published>2008-08-29T15:28:00.006-03:00</published><updated>2008-09-02T08:50:42.308-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='privacidade'/><title type='text'>Privacidade - Scientific American</title><content type='html'>A edição de setembro da revista Scientific American (&lt;a href="http://www.sciam.com/sciammag/"&gt;aqui&lt;/a&gt;) veio toda dedicada à privacidade que, segundo Esther Dyson, vai além de questões de segurança, saúde e intimidade. São considerados os seguintes assuntos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Definição e uso do termo privacidade.&lt;/li&gt;&lt;li&gt;Legislação para escuta no âmbito do governo.&lt;/li&gt;&lt;li&gt;Melhoria da saúde a partir do prontuário eletrônico e registros genéticos.&lt;/li&gt;&lt;li&gt;Proteção contra roubo de identidade via autorização biométrica.&lt;/li&gt;&lt;li&gt;Aparato para monitoramento.&lt;/li&gt;&lt;li&gt;Chips de radiofreqüência (RFID).&lt;/li&gt;&lt;li&gt;Vírus e outras pestes na Internet.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Aproveitem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-7878142704793596515?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/7878142704793596515/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=7878142704793596515' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7878142704793596515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7878142704793596515'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/08/privacidade-scientific-american.html' title='Privacidade - Scientific American'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-4482912353122332332</id><published>2008-08-13T14:55:00.004-03:00</published><updated>2008-08-13T15:20:29.301-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='negócio'/><title type='text'>Análise do Mercado de Software Seguro</title><content type='html'>Para os que se interessam pelos números do mercado de segurança diretamente associados à questão do software, vale a pena apreciar a análise sobre os resultados de 2007, consolidados por McGraw (&lt;a href="http://www.informit.com/articles/article.aspx?p=1237978"&gt;aqui&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Um breve resumo:&lt;br /&gt;&lt;br /&gt;Ferramentas&lt;ul&gt;&lt;li&gt;O mercado de ferramentas quase se dobrou, chegando a $150 – 180 milhões. No que tange à ferramentas de black box ocorreu uma estabilização. Neste segmento pequenas empresas tiveram um crescimento mais acentuado (Cenzic 16% e WhiteHat 52%). Já o mercado de análise de código chegou a $91,9 Milhões. Nesta lista encontram-se Fortify (83% - $29.2 Milhões), Klocwork (60% - $26 Milhões), Coverity (50% - $27.2 Milhões) e Ounce Labs (300% $9.5 Milhões).&lt;/li&gt;&lt;/ul&gt;Serviços&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quanto a services, o crescimento foi mais modesto, apenas 20%. Treinamento (cerca de $7 Milhões), avaliação de riscos ($45-60 Milhões) e teste de penetração ($50-75 Milhões).&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-4482912353122332332?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/4482912353122332332/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=4482912353122332332' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4482912353122332332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4482912353122332332'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/08/anlise-do-mercado-de-software-seguro.html' title='Análise do Mercado de Software Seguro'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-7338328505461366654</id><published>2008-08-05T16:37:00.004-03:00</published><updated>2008-08-05T16:43:40.448-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='conscientização'/><title type='text'>Microsoft Patch Tuesday Antecipada</title><content type='html'>A Microsoft começará a divulgar antecipadamente à parceiros da área de segurança, como fornecedores de anti-vírus, detalhes técnicos sobre a vulnerabilidade corrigida por ela.&lt;br /&gt;&lt;br /&gt;Desde modo, a corrida para levantar tais informações diminuirá a dependência da engenharia reversa, iniciada logo após a divulgação dos &lt;span style="font-style: italic;"&gt;patches&lt;/span&gt; de segurança na segunda terça-feira do mês, e permitirá que os fornecedores consigam provêr as atualizações de suas ferramentas de proteção com maior agilidade.&lt;br /&gt;&lt;br /&gt;Detalhes no blog do Brian Krebs (&lt;a href="http://blog.washingtonpost.com/securityfix/2008/08/microsoft_to_open_kimono_on_se.html"&gt;aqui&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-7338328505461366654?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/7338328505461366654/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=7338328505461366654' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7338328505461366654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7338328505461366654'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/08/microsoft-patch-tuesday-antecipada.html' title='Microsoft Patch Tuesday Antecipada'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-7127586725966712831</id><published>2008-07-15T22:00:00.007-03:00</published><updated>2008-07-16T08:11:56.038-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webgoat'/><category scheme='http://www.blogger.com/atom/ns#' term='conscientização'/><title type='text'>WebGoat versão 5.2</title><content type='html'>Acaba de ser lançada a nova versão 5.2 do WebGoat. Os interessados podem encontrar mais detalhes &lt;a href="http://code.google.com/p/webgoat/downloads/list"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A versão 5.1 traduzida para pt-br continua disponível &lt;a href="http://softwareseguro.blogspot.com/2008/05/webgoat-51-em-portugus.html"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Quem se anima a traduzir mais esta versão para o português?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-7127586725966712831?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/7127586725966712831/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=7127586725966712831' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7127586725966712831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7127586725966712831'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/07/webgoat-verso-52.html' title='WebGoat versão 5.2'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-4801851024684248943</id><published>2008-07-15T15:25:00.005-03:00</published><updated>2008-07-15T15:52:50.912-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='conscientização'/><category scheme='http://www.blogger.com/atom/ns#' term='orientações de segurança'/><category scheme='http://www.blogger.com/atom/ns#' term='web application security'/><title type='text'>Entendendo XSS, XSRF e outros</title><content type='html'>Para alguns a compreensão sobre como um determinado ataque funciona se mostra como um reflexo, tamanha a intimidade deles com o conhecimento técnico associado. Para outros, a grande maioria, tal entendimento fica muito prejudicado pela defasagem técnica e, principalmente, pela maneira como tal informação é apresentada. Para este último, o designer gráfico exerce um papel determinante, articulando entre formas, cores e ações encadeadas de maneira a transformar uma informação que textualmente mostra se complicada, em algo de compreensão bastante facilitada. Com esta percepção o pesquisador Michael Schumacher da Virtual Forge criou um conjunto de animações para auxiliá-lo no treinamento de segurança de software. Aprecie o resultado e até compreenda problemas como XSS, XSRF e navegação forçada no blog da Justice League (&lt;a href="http://www.cigital.com/justiceleague/2008/07/15/more-on-comics-and-security/"&gt;aqui&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-4801851024684248943?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/4801851024684248943/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=4801851024684248943' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4801851024684248943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4801851024684248943'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/07/entendendo-xss-xsrf-e-outros.html' title='Entendendo XSS, XSRF e outros'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-5249229956889571006</id><published>2008-07-03T13:37:00.005-03:00</published><updated>2008-07-03T13:45:43.585-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='teste'/><category scheme='http://www.blogger.com/atom/ns#' term='black box'/><category scheme='http://www.blogger.com/atom/ns#' term='web application security'/><title type='text'>Google Libera Código Fonte do RatProxy</title><content type='html'>Acaba de ser liberado pela Google o código fonte da ferramenta RatProxy. Esta é uma das ferramentas usadas pela Google para teste de suas aplicações Web. Fica aí mais uma alternativa ao WebScarab da OWASP.&lt;br /&gt;&lt;br /&gt;Mais detalhes sobre a ferramenta:&lt;br /&gt;&lt;br /&gt;http://googleonlinesecurity.blogspot.com/2008/07/meet-ratproxy-our-passive-web-security.html&lt;br /&gt;&lt;br /&gt;http://code.google.com/p/ratproxy/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-5249229956889571006?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/5249229956889571006/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=5249229956889571006' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5249229956889571006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5249229956889571006'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/07/google-libera-cdigo-fonte-do-ratproxy.html' title='Google Libera Código Fonte do RatProxy'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-2749094340056163733</id><published>2008-06-25T09:54:00.004-03:00</published><updated>2008-06-25T10:03:58.985-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='análise de código fonte'/><category scheme='http://www.blogger.com/atom/ns#' term='white box'/><title type='text'>Microsoft  Source Code Analyzer for SQL Injection</title><content type='html'>Acaba de ser lançada pelo time de segurança do Microsoft SQL Server uma ferramenta de análise de código fonte especializada em encontrar falhas de injeção SQL em código ASP. Mais detalhes no &lt;a href="http://blogs.msdn.com/sqlsecurity/archive/2008/06/24/microsoft-source-code-analyzer-for-sql-injection-june-2008-ctp.aspx"&gt;SQL Server Security blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-2749094340056163733?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/2749094340056163733/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=2749094340056163733' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2749094340056163733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2749094340056163733'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/06/microsoft-source-code-analyzer-for-sql.html' title='Microsoft  Source Code Analyzer for SQL Injection'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-6105257821284793114</id><published>2008-05-28T16:14:00.008-03:00</published><updated>2008-05-28T16:38:04.109-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilidades'/><title type='text'>Utilidade Pública - Furo no Flash Player</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Várias organizações de segurança de TI (&lt;a href="http://www.symantec.com/security_response/threatcon/index.jsp"&gt;aqui&lt;/a&gt;, &lt;a href="http://isc.sans.org/diary.html?storyid=4465"&gt;aqui&lt;/a&gt;, &lt;a href="http://www.avertlabs.com/research/blog/index.php/2008/05/27/flash-player-exploit-update/"&gt;aqui&lt;/a&gt;) têm divulgado advertências sobre a grave ameaça provocada pelo furo de segurança (estouro de buffer) encontrado no Flash em abril passado. Já existe registro de sites que usam essa vulnerabilidade para instalar software de captura de senhas nas máquinas com navegadores que usam a versão com o furo (&lt;a href="http://ddanchev.blogspot.com/2008/05/malware-attack-exploiting-flash-zero.html"&gt;aqui&lt;/a&gt;).  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Antes de duvidar, proteja-se! É simples. Verifique a versão do Flash Player (&lt;a href="http://www.adobe.com/products/flash/about/"&gt;aqui)&lt;/a&gt; e caso seja diferente de 9.0.124.0, faça a atualização &lt;a href="http://www.adobe.com/products/flashplayer/"&gt;(aqui)&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-6105257821284793114?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/6105257821284793114/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=6105257821284793114' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6105257821284793114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6105257821284793114'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/05/utilidade-pblica-furo-no-flash-player.html' title='Utilidade Pública - Furo no Flash Player'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-5338220308663736286</id><published>2008-05-12T23:10:00.009-03:00</published><updated>2008-05-15T17:01:20.346-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='guias de segurança'/><category scheme='http://www.blogger.com/atom/ns#' term='webgoat'/><category scheme='http://www.blogger.com/atom/ns#' term='conscientização'/><title type='text'>WebGoat 5.1 em Português</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_1mDb1TmIoVc/SCwhPz29F7I/AAAAAAAAAAo/RgEjxTANoeg/s1600-h/WebGoat.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_1mDb1TmIoVc/SCwhPz29F7I/AAAAAAAAAAo/RgEjxTANoeg/s200/WebGoat.JPG" alt="" id="BLOGGER_PHOTO_ID_5200568225208539058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;No último final de semana consegui finalmente terminar a tradução do WebGoat 5.1 (&lt;a href="http://www.owasp.org/index.php/OWASP_WebGoat_Project"&gt;Versão em Inglês&lt;/a&gt;). Foram 4 meses aproveitando o tempo de saguão de aeroporto, o próprio vôo, além daquelas situações onde a cabeça só aceita uma atividade mecânica.  Foram cerca de 14o arquivos (&lt;a href="http://softwareseguro.googlepages.com/WebGoat.pdf"&gt;vide imagem&lt;/a&gt;) distribuídos dentre plano da lição, dicas e soluções.&lt;br /&gt;&lt;br /&gt;Para quem não conhece, o WebGoat é um site que coleciona um conjunto de páginas com vulnerabilidades divididas por algumas categorias, cujo intuito é de ensinar na prática qual o risco de desenvolver aplicações sem o compromisso com a segurança. Cada página possui um objetivo de ataque específico, descrito pelo plano da lição. Outros elementos, como por exemplo, as dicas permitem que o público adquira gradativamente os conhecimentos necessários para a efetivação de ataque a aplicações web.&lt;br /&gt;&lt;br /&gt;Essa iniciativa vem a somar ao trabalho empenhado pela OWASP no sentido de divulgar informações sobre o desenvolvimento de aplicações com segurança. No que tange ao capítulo Brasil, soma-se as ações de &lt;a href="http://softwareseguro.blogspot.com/2008/01/top-10-vulnerabilities-traduzido-para-o.html"&gt;tradução dos documentos &lt;/a&gt;para o português brasileiro. Tenho observado por onde passo, que ainda é muito grande a ignorância sobre a questão da segurança no desenvolvimento, e essa iniciativa procura diminuir uma das barreiras, o idioma.&lt;br /&gt;&lt;br /&gt;Faça o download da versão de instalação &lt;a href="http://code.google.com/p/webgoat-ptbr/downloads/list"&gt;aqui&lt;/a&gt;. Em breve tudo estará consolidado na página do WebGoat mantida pelo coordenador desse projeto, Bruce Mayhew.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-5338220308663736286?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/5338220308663736286/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=5338220308663736286' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5338220308663736286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5338220308663736286'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/05/webgoat-51-em-portugus.html' title='WebGoat 5.1 em Português'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_1mDb1TmIoVc/SCwhPz29F7I/AAAAAAAAAAo/RgEjxTANoeg/s72-c/WebGoat.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-2501479139271513445</id><published>2008-05-09T15:37:00.008-03:00</published><updated>2008-05-09T16:17:30.998-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scanner de vulnerabilidade'/><category scheme='http://www.blogger.com/atom/ns#' term='análise de código fonte'/><category scheme='http://www.blogger.com/atom/ns#' term='firewall de aplicação'/><title type='text'>O Impacto do PCI no Mercado</title><content type='html'>Para quem não conhece o PCI (Payment Card Industry) Standard, como o nome sugere é um padrão que a indústria que processa informações de cartões de crédito é obrigada a seguir. O padrão está organizado em 12 seções em um documento de 16 páginas (&lt;a href="https://www.pcisecuritystandards.org/pdfs/portuguese_pci_dss_v1-1.pdf"&gt;aqui&lt;/a&gt;). Para efeito da segurança de software, os itens seguintes são os mais relevantes:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;6.5 Desenvolva todos os aplicativos de web baseados em diretrizes de codificação seguras tais como as diretrizes do Open Web Application Security Project. Revise o código dos aplicativos customizados para identificar as vulnerabilidades do código. Verifique a prevenção das vulnerabilidades mais comuns no processo de desenvolvimento dos códigos dos softwares para&lt;br /&gt;incluir o seguinte:&lt;blockquote&gt;&lt;/blockquote&gt;6.5.1 Input não validado&lt;br /&gt;6.5.2 Quebra do controle de acesso (por exemplo, uso desonesto dos IDs dos usuários)&lt;br /&gt;6.5.3 Quebra da administração de autenticação/sessão (uso das credenciais da conta e&lt;br /&gt;cookies da sessão)&lt;br /&gt;6.5.4 Ataques ao cross-site scripting (XSS)&lt;br /&gt;6.5.5 Overflow do buffer&lt;br /&gt;6.5.6 Defeitos de injection (por exemplo, structured query language injection (SQL)&lt;br /&gt;6.5.7 Administração incorreta dos erros&lt;br /&gt;6.5.8 Armazenagem insegura&lt;br /&gt;6.5.9 Recusa de serviço&lt;br /&gt;6.5.10 Administração de configuração insegura.&lt;br /&gt;&lt;br /&gt;6.6 Assegurar-se de que todos os aplicativos que funcionam por meio da web estejam protegidos&lt;br /&gt;contra ataques conhecidos através dos seguintes métodos:&lt;br /&gt;• Ter todos os códigos de aplicativos customizados revisados para vulnerabilidades comuns através de uma organização que se especialize em segurança de aplicativo&lt;br /&gt;• Instalar uma camada de aplicativos (application layer) de firewall na frente dos aplicativos voltados para a web&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Nota: Este método é considerado uma melhor prática até 30 de junho de 2008, e depois dessa &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;data se tornará uma exigência.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;Apesar da gama de preocupações abordada pelo modelo, o ponto de maior impacto neste momento vem na nota de duas linhas no final da seção 6.6. Pois a partir de junho próximo, toda  entidade que ofereça software que trabalhe com informação de cartões será obrigada a utilizar as ferramentas especificadas por essa seção. Até agora o resultado mais evidente é a luta dos fornecedores para colocar seu produto no mercado (&lt;a href="http://www.cisco.com/en/US/prod/contnetw/ps5719/ps9586/ace_video_ds.html"&gt;A Cicso é a última&lt;/a&gt;), ou se aliar com diferentes fornecedores para tentar oferecer a melhor solução (&lt;a href="http://jeremiahgrossman.blogspot.com/2008_03_01_archive.html"&gt;aqui&lt;/a&gt;). É provável que o resultado que mais nos interessa (software seguro) seja uma consequência natural disso e que outros negócios sejam influenciados pelos resultados dessa obrigação imposta pelo PCI. Veremos!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-2501479139271513445?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/2501479139271513445/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=2501479139271513445' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2501479139271513445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2501479139271513445'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/05/o-impacto-do-pci-no-mercado.html' title='O Impacto do PCI no Mercado'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-564493826315185971</id><published>2008-05-06T10:55:00.005-03:00</published><updated>2008-05-06T11:06:35.298-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='terceirização'/><title type='text'>Terceirização de Software Seguro</title><content type='html'>&lt;p class="MsoNormal"&gt;É comum encontrar o cenário onde o contratante e o contratado em uma relação de terceirização nunca ouviram falar em software seguro e isso reflete diretamente nos aspectos legais entre as partes. Porém, algumas organizações já se encontram preocupadas sobre como estabelecer parâmetros legais que façam com que o negócio considere oficialmente a segurança no desenvolvimento, e permita às partes se comprometerem de fato.&lt;br /&gt;Navegando pelo site da OWASP encontrei uma sugestão de minuta de contrato (&lt;a href="http://www.owasp.org/index.php/OWASP_Secure_Software_Contract_Annex"&gt;aqui&lt;/a&gt;) que pode ser fonte de inspiração para as empresas que desejarem incorporar em seus contratos esse tipo de obrigação.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-564493826315185971?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/564493826315185971/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=564493826315185971' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/564493826315185971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/564493826315185971'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/05/terceirizao-de-software-seguro.html' title='Terceirização de Software Seguro'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-3761630066965128375</id><published>2008-05-02T12:31:00.006-03:00</published><updated>2008-05-06T11:12:06.248-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='orientações de segurança'/><title type='text'>(In)Secure Magazine - Abril - 2008</title><content type='html'>A revista eletrônica, (In)Secure magazine de Abril traz um artigo que muito interessante sobre o desenvolvimento seguro "&lt;a href="http://www.net-security.org/dl/insecure/INSECURE-Mag-16.pdf"&gt;Producing Secure Software With Software Security Enhanced Processes&lt;/a&gt;" elaborado por &lt;a href="http://securesoftware.blogspot.com/"&gt;Marco Morana&lt;/a&gt;. O artigo, além de discorrer sobre a abordagem mais defendida hoje para tratar do desenvolvimento de software seguro (segurança desde o princípio, faz ainda uma comparação muito rica sobre as propostas de segurança em processo mais difundidas hoje: MS-SDL, CLASP, Pontos de controle da Cigital.&lt;br /&gt;Vale observar que a revista possui vários outros artigos relacionados a segurança. Vale a pena conferir.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-3761630066965128375?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/3761630066965128375/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=3761630066965128375' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/3761630066965128375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/3761630066965128375'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/05/insecure-magazine-abril-2008.html' title='(In)Secure Magazine - Abril - 2008'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-5282389649150926353</id><published>2008-03-28T10:28:00.017-03:00</published><updated>2008-04-05T14:50:34.767-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='análise de código fonte'/><category scheme='http://www.blogger.com/atom/ns#' term='revisão de código'/><category scheme='http://www.blogger.com/atom/ns#' term='white box'/><title type='text'>O Que Esperar Fortify Souce Code Analyzer?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_1mDb1TmIoVc/R_d1FYIxqPI/AAAAAAAAAAY/cCVIUSJjcsc/s1600-h/IMG_0131.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_1mDb1TmIoVc/R_d1FYIxqPI/AAAAAAAAAAY/cCVIUSJjcsc/s200/IMG_0131.jpg" alt="" id="BLOGGER_PHOTO_ID_5185742231179471090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;No final de março, tive  a oportunidade de fazer o curso de auditor de código fonte com o &lt;a href="http://www.fortify.com/products/sca/"&gt;Fortify Source Code Analyzer&lt;/a&gt; oferecido pela própria Fortify. O curso foi realizado em Denver no Colorado. A cidade, além de ser muito charmosa, fica bem próximo de Aspen. Foi uma pena não ter tido mais tempo para aproveitar esse outro lado.&lt;br /&gt;&lt;br /&gt;Voltando ao curso em si, a turma era formada por oito pessoas. Todos inexperientes com a ferramenta. A maioria com experiência em desenvolvimento e em segurança no geral. Vale ressaltar que a &lt;a href="http://www.systest.com/"&gt;Systest&lt;/a&gt; foi a empresa com mais participantes, quatro pessoas. O curso foi ministrado por Su Gaustad, cujo conhecimento acerca de desenvolvimento seguro e do uso do Fortify SCA impressiona, sua habilidade para lidar com o público também.&lt;br /&gt;&lt;br /&gt;O Fortify SCA é um &lt;a href="http://softwareseguro.blogspot.com/2007/07/ferramentas-de-anlise-cdigo-fonte.html"&gt;analisador estático de código&lt;/a&gt;&lt;a href="http://softwareseguro.blogspot.com/2007/07/ferramentas-de-anlise-cdigo-fonte.html"&gt; fonte,&lt;/a&gt; cuja inteligência se resume nas regras desenvolvidas pela Fortify para encontrar furos de codificação, distribuídas dentre as seguintes  abordagens de análise:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Estrutural - Detecta uso de funções e APIs potencialmente perigosas.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Semântica - Detecta furos potencialmente danosos na estrutura ou definição do programa. Por exemplo, uma atribuição de variáveis em Servlets, uso de loggers que não são declarados como static final.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fluxo de Controle - Detecta sequência de operações potencialmente perigosas. Isso remete à visualização análise de sequência de execução das operações, para verificar se alguma delas a aplicação é exposta a vulnerabilidades. Ex. Abrir uma conexão com banco de dados e não fechá-la, pode expor a aplicação à uma sobrecarga por não alocação de recursos.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fluxo de Dados - Detecta potenciais vulnerabilidades relacionadas a dados de entrada em processamento no software. Isso pressupõe uma análise inter-procedural, o que significa que suas regras são capazes reconhecem falhas de um dado recebido por um método, que é passado para outro método e lá sim, que ele oferece risco de se tornar uma vulnerabilidade explorável. Ex. Parâmetro de nome de arquivo recebido por um método é passado como parâmetro para outro método, que faz uso de strcopy para copiar o conteúdo de tal parâmetro para um buffer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Configuração  - Localiza erros, pontos frágeis e violação de políticas nos arquivos de implantação da aplicação. Por exemplo, a connectionstring com parâmetros de usuário e senha no Web.Config em aplicações ASP.NET.&lt;/li&gt;&lt;li&gt;Agrega a análise do FindBugs.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Seu processo de análise é organizado em três fases complementares:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tradução - onde o código fonte é recolhido segundo uma série de comandos e traduzido em um formato intermediário, que é associado à um BuildID (identificador do projeto em análise).&lt;/li&gt;&lt;li&gt;Análise - compreende a busca por vulnerabilidades e análise de acordo com as regras descritas anteriormente.&lt;/li&gt;&lt;li&gt;Verificação - garantia de que a análise foi realizada de acordo com as regras e seu resultado informa erros significativos.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Suporta as linguagens comercialmente mais utilizadas (Java, .NET, PHP, ColdFusion, JavaScript, PL-SQL), integra-se com as principais IDEs (Eclipse, Visual Studio 2003/05), como foi desenvolvido em Java, funciona em toda plataforma que suporte a JVM. É facilmente integrada com o ANT também.&lt;br /&gt;&lt;br /&gt;Suas regras de análise (rulepack) são propriedade intelectual da Fortify e estão debaixo de forte critptografia. Seu acesso é dependente da manutenção da assinatura anual pelo seu uso. O que significa que, além da licença, é necessária a assinatura para usar o rulepack. Apesar de altamente não recomendado, a ferramenta permite ainda que sejam elaboradas regras próprias para as análises. Prepare-se pois a tarefa é de alta complexidade. Daí a razão da Fortify se disponibilizar a customizá-las, tão logo a necessidade seja indentificada pelos seus clientes, e devolver no rulepack.&lt;br /&gt;&lt;br /&gt;Pela consistência dos resultados apresentados pelas análises (falso positivo/negativo) usando o SCA ao longo do curso, pela forma didática como ela os apresenta, bem como as facilidades proporcionadas para o auditor, percebo que essa ferramenta tem espaço garantido quando se tratar de ciclo de desenvolvimento seguro. Infelizmente, não conheço os detalhes do principal concorrente Ounce 5, para poder compará-las e desconheço também qualquer detalhe sobre os custos associados à sua arquisição/manuteção (pergunte à &lt;a href="http://leadcomm.com.br/"&gt;LeadComm&lt;/a&gt;), mas tenho a impressão que seu mercado é bem restrito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-5282389649150926353?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/5282389649150926353/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=5282389649150926353' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5282389649150926353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/5282389649150926353'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/03/o-que-esperar-fortify-souce-code.html' title='O Que Esperar Fortify Souce Code Analyzer?'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_1mDb1TmIoVc/R_d1FYIxqPI/AAAAAAAAAAY/cCVIUSJjcsc/s72-c/IMG_0131.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-7427898274570889011</id><published>2008-03-27T10:57:00.010-03:00</published><updated>2008-03-31T12:18:26.329-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='negócio'/><title type='text'>Software Seguro sob a Perspectiva de Negócio</title><content type='html'>Desenvolver software seguro pressupõe um investimento adicional ao já oneroso ciclo de desenvolvimento de software. Essa realidade faz com que os executivos tradicionais tentem  ignorar esse assunto o quanto podem. Esse "até quando podem" se traduz em perdas econômicas causadas por processos judiciais relativos à quebra de confidencialidade e outras violações, degradação da imagem, perda de mercado, etc.&lt;br /&gt;&lt;br /&gt;O investimento em segurança no desenvolvimento é uma viagem obrigatória, com apenas estação partida, que toda organização, cujo negócio é software, se ainda não entrou, terá que entrar. Essa obrigatoriedade está diretamente ligada à curva crescente de perdas causadas por exploração de falhas de segurança.&lt;br /&gt;&lt;br /&gt;Essa viagem está obviamente muito mais avançada nos EUA e países, cujo rigor com questões de segurança é maior. No Brasil, por exemplo, a onda de busca de soluções de segurança para atenter o padrão PCI (Payment Card Industry), mais especificamente o item 6, parece ainda nem ter começado. E veja você, que o uso de algumas alternativas para segurança no ciclo de desenvolvimento, como &lt;a href="http://softwareseguro.blogspot.com/2007/07/ferramentas-de-anlise-cdigo-fonte.html"&gt;análise estática de código&lt;/a&gt;, firewall de aplicação sairão do status de recomendação no PCI para obrigatório em julho/08.&lt;br /&gt;&lt;br /&gt;O mercado americano mostra boas perpectivas acerca dessa mudança de mentalidade, basta observar os movimentos das empresas, como por exemplo, a integração entre Sentinel (scan) da &lt;a href="http://jeremiahgrossman.blogspot.com/2008/03/va-waf-yes-it-really-works.html"&gt;WhiteHat com o Ounce 5&lt;/a&gt; (source code analyzer) da Ounce Labs e &lt;a href="http://softwareseguro.blogspot.com/2008/03/como-era-de-se-esperar-as-empresas-j.html"&gt;outros&lt;/a&gt;. Obviamente, eles estão prevendo alta demanda à caminho.&lt;br /&gt;&lt;br /&gt;Voltando à questão do negócio em si, hoje as organizações (pelo menos as grandes) já reconhecem a importância de desenvolver software com segurança desde o princípio, e que o custo dessa alternativa é, sem dúvida, menor que os custos associdos à incerteza sobre o nível de segurança  do produto final. Essa percepção sobre o nível de segurança é diretamente influenciada pelas evidências de ações de segurança recolhidas ao longo do desenvolvimento. Cita-se, como exemplo, os &lt;a href="http://www.informit.com/store/product.aspx?isbn=0321356705"&gt;&lt;span style="font-style: italic;"&gt;touch points  &lt;/span&gt;da Cigital&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Não há outro elemento mais importante na segurança do que o recurso humano, quer seja no desenvolvimento ou na operação. Acontece, que as instituições de ensino em geral, continuam a não dar tanta importância ao assunto de software seguro. Quem paga a conta está começando a agir para mitigar esse problema. Como? Solicitando oficialmente às universidades para que ensinem seus alunos como desenvolver com segurança.&lt;br /&gt;&lt;br /&gt;Para finalizar, fica destacado que a segurança no desenvolvimento não deve ser o objetivo de negócio de nenhuma organização (exceto àquelas onde esse é o negócio em si), mas que seu resultado pode suportar ou não os objetivos de negócio dela. Com essa mentalidade, a resistência a embarcar dessa viagem passa a ser dirigida pela análise de risco e custo da oportunidade.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cigital.com/silverbullet/show-024/"&gt;Vale a pena assistir o podcast do McGraw com Mary Ann Davidson, CSO da Oracle. &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-7427898274570889011?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/7427898274570889011/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=7427898274570889011' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7427898274570889011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7427898274570889011'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/03/software-seguro-sob-perspectiva-de.html' title='Software Seguro sob a Perspectiva de Negócio'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-7512810529053087002</id><published>2008-03-11T18:16:00.008-03:00</published><updated>2008-03-12T14:20:42.665-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='análise de código fonte'/><title type='text'>RUP + Ounce 5. Será que emplaca?</title><content type='html'>Como era de se esperar as empresas já começam a se mobilizar para oferecer soluções de segurança para o desenvolvimento de software seguro. Quando digo soluções, me refiro ao uso integrado do ferramental disponível para habilitar de fato o desenvolvimento de software seguro.&lt;br /&gt;A &lt;a href="http://www.ibm.com/developerworks/rational/library/edge/08/jan08/dent/index.html"&gt;IBM e a Ounce Labs&lt;/a&gt; estão trabalhando em conjunto para que o RUP incorpore a abordagem de desenvolvimento de código seguro amparado por ferramenta de análise estática, o Ounce 5.&lt;br /&gt;&lt;br /&gt;Particularmente, vejo duas alternativas para que as organizações comecem de fato a investir na segurança de software ao longo de seu ciclo de desenvovimento. A primeira via decreto (PCI, HIPAA), ou se enquadra ou "pede pra sair". A segunda é a partir do surgimento de propostas que facilitem a absorção da mudança causada por um ciclo de desenvolvimento que pressupõe segurança. Porque isso é determinante na análise de risco (de negócio) na hora de considerar tal alternativa.&lt;br /&gt;&lt;br /&gt;Jogada de mestre. O processo mais usado se integrar com umas das ferramentas de análise estática mais usadas. Vamos ver se emplaca!&lt;br /&gt;&lt;br /&gt;Como farei o curso de auditor pela Forify na semana do dia 23 de março, acredito ter mais informações sobre como ela se coloca diante desse cenário.&lt;br /&gt;&lt;br /&gt;Para mais informação sobre análise estática para segurança sugiro o livro do Brian Chess: &lt;a href="http://www.amazon.com/Programming-Analysis-Addison-Wesley-Software-Security/dp/product-description/0321424778"&gt;&lt;span class="sans"&gt;&lt;span id="btAsinTitle"&gt;Secure Programming with Static Analysis.&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-7512810529053087002?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/7512810529053087002/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=7512810529053087002' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7512810529053087002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/7512810529053087002'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/03/como-era-de-se-esperar-as-empresas-j.html' title='RUP + Ounce 5. Será que emplaca?'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-1524695421866042107</id><published>2008-03-11T10:57:00.007-03:00</published><updated>2008-07-07T09:43:08.132-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scanner de vulnerabilidade'/><category scheme='http://www.blogger.com/atom/ns#' term='firewall de aplicação'/><category scheme='http://www.blogger.com/atom/ns#' term='web application security'/><title type='text'>Estratégia de Segurança que Funciona para a Web</title><content type='html'>Fiz a tradução do interessante &lt;a href="http://jeremiahgrossman.blogspot.com/2008/03/website-security-strategies-that-work.html"&gt;post do Jeremiah Grossman&lt;/a&gt;, no qual ele dá uma visão geral da segurança em aplicações web e as alterativas corrente para lidar com esse problema.&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;Dentro de uma empresa vive um profissional de segurança de TI responsável pela segurança de sites web. Ele precisa levar seu trabalho muito à sério, sob a pena de receber uma ligação tarde da noite de seu chefe, caso o site de sua empresa seja atacado. Uma boa parte do trabalho requer educação dos desenvolvedores acerca da importância de codificação segura e reporte aos proprietários do negócio sobre os riscos relativos à segurança Web. Ele precisa fazer isso, pois nenhuma quantidade de &lt;i style=""&gt;patching &lt;/i&gt;ou&lt;i style=""&gt; firewalling&lt;/i&gt; conseguirá frear um atacante com um &lt;i style=""&gt;browser&lt;/i&gt;. Mesmo que use tudo que esteja em seu poder, ainda existe uma total falta de controle na proteção dos sites sob sua responsabilidade. Ele não pode corrigir as vulnerabilidades em website(s) quando elas são identificadas sem o envolvimento do desenvolvedor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;Essa situação lhe soa familiar? Eu ouço essa frustração à todo momento. O problema é que quando uma vulnerabilidade é identificada, quer seja pelo &lt;i style=""&gt;pen-tester&lt;/i&gt;, desenvolvedor, &lt;i style=""&gt;outsider &lt;/i&gt;ou quem quer que seja essas são as sofridas opções:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:10;"&gt;&lt;/span&gt;&lt;span style="font-size:10;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size:10;"&gt;Parar o site.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:10;"&gt;Reverter para uma versão anterior do site/código (caso seja segura).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:10;"&gt;Continuar a funcionar apesar da exposição.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;Nada é melhor que não ter um problema, mas vulnerabilidades aparecerão independente do ciclo de desenvolvimento de software. A opção #1 é tipicamente reservada para ocasiões onde um incidente tenha ocorrido e a opção 2# quando uma atualização do produto não possa ser devolvida para o desenvolvimento, que futuramente venha a ser sobrescrita. Até agora a história mostra que a grande maioria escolhe a opção #3 e assume o risco, ao invés de parar o negócio com atualizações.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;É claro que são necessárias mais opções – algo que permita a mitigação de vulnerabilidades sem provocar impacto na operação do negócio.&lt;/span&gt;&lt;span  lang="EN-US" style="font-size:10;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;Isto é importante, pois 9 entre 10 (ou mais) sites web possuem vulnerabilidades como resultado de serem produzidos por aqueles que não sabiam ou experimentaram a severidade dos ataques de hoje. Adicionalmente, eu poderia dizer que a maioria dos sites de comércio eletrônico populares foram desenvolvidos ou antes do descobrimento de vulnerabilidades prevalentes como o XSS, injeção SQL, CSRF, etc. ou antes deles se tornarem conhecidos. Consequentemente, estamos vulneráveis por 15 anos de códigos inseguro de sites em circulação e é pouco provável que esse código seja reescrito somente por “razões de segurança”. Ao longo da próxima década sua substituição acontecerá naturalmente de forma a atender os objetivos de negócio enquanto se aproveitando das tecnologias emergentes e frameworks mais seguros.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;O que significa que quando você realiza uma análise honesta acerca da segurança do website, você terá duas estratégias de segurança possíveis:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;ol&gt;&lt;li&gt;&lt;span style="font-size:10;"&gt;Segurança ao longo do SDLC (ciclo de vida de desenvolvimento de software)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:10;"&gt;Avaliação de vulnerabilidade + WAF (Firewall de Aplicação Web)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;A estratégia #1 se aplica mais à sites a serem construídos ou que estejam em fase de redefinição. Um programa de segurança Web combinando patrocínio executivo, frameworks modernos de desenvolvimento, treinamento de conscientização e segurança considerada no &lt;i style=""&gt;design&lt;/i&gt; e QA (garantia de qualidade) funciona. Por outro lado, esta estratégia é sempre difícil e cara para se implementar em sites existentes onde nenhuma atividade semelhante foi realizada anteriormente. Mesmo depois das vulnerabilidades identificadas é consome-se tempo a alocação de pessoal, QA / testes de regressão da correção e agendamento de versões de produção. Independente da maturidade do SDLC, isto demanda pelo menos dias, em alguns casos meses e mesmo meses para as falhas serem corrigidas. Este é o cenário mais comum hoje. O que tornará a conformidade com o PCI 6.6 (Payment Card Industry) um grande desafio, quando ela entrar em vigor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;Está é a razão pela qual a estratégia #2 é mais apropriada para websites existentes. A integração tecnológica demandada pela avaliação de vulnerabilidades é imediatamente importada para um WAF, criando uma “atualização virtual”. A integração fecha o ciclo entre identificação e mitigação de vulnerabilidade habilitando a oportunidade de endereçar as causa raízes assim que o tempo e o orçamento permitir. O desafio aqui é caso a fonte de dados seja imprecisa, de forma que a atualização virtual &lt;span style=""&gt; &lt;/span&gt;possa causar o WAF rejeitar trafego válido, permitir tráfego malicioso ou interromper inteiramente. Com dados verificados, a empresa é capaz de realizar por completo seu investimento de avaliação de vulnerabilidade em tempo real, confiando no modo de bloqueio do WAF e fornecendo aos profissionais de TI o controle até agora ausente. E isto é relativo ao tempo também!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;Caso essa solução lhe soar familiar, pode ser pelo fato dessa idéia ter sido usado no passado, nunca em segurança de aplicações web. Kavado tentou na era 2002-2003, em 2003-2004 muitos outros fornecedores tentaram usar o AVDL e estou certo que tiveram outros, mas ultimamente todas as tentativas se comprovaram falíveis, devido às razões mencionadas anteriormente. Só recentemente que a tecnologia de scanneamento de vulnerabilidades e WAP está se materializando e decisões de negócio necessitam ser realizadas, possuir uma variedade de opções disponíveis é algo muito muito bom.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-1524695421866042107?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/1524695421866042107/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=1524695421866042107' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/1524695421866042107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/1524695421866042107'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/03/estratgia-de-securana-que-funciona-para.html' title='Estratégia de Segurança que Funciona para a Web'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-1899096196866922438</id><published>2008-02-13T17:15:00.007-02:00</published><updated>2008-02-13T19:08:21.037-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><title type='text'>A pescaria já não é mais a mesma de antigamente</title><content type='html'>Pescaria é uma tradição no Brasil. Quem nunca participou, certamente tem algum parente, amigo, vizinho que já foi e não vê a hora de repetir a experiência. A autêntica pescaria brasileira sugere s seguinte combinação: uma turma de amigos, sendo pelo menos um violeiro, muita bebida (vale qualquer tipo, mas a cerveja e a cachaça são fundamentais), a tralha de pesca (barco, vara, etc.) e um maço de dinheiro para, na falta da "sorte", não chegar em casa de mão abanando.&lt;br /&gt;&lt;br /&gt;Apesar de ser esta a mais famosa para nós brasileiros, é outra pescaria que tem ganhado destaque na área de segurança mundo afora. Essa pescaria apesar de ser análoga à tradicional, não preserva seus elementos fundamentais. Aquele clima amistoso de diversão e confraternização já era! Até a bebida foi abandonada! O rio agora nem água tem mais, o que se vê é bit. O peixe agora corresponde à informação sigilosa espalhada nesse rio de bit, que vira dinheiro tão logo o "pescador" resolva apropriar-se de recuros financeiros espalhados pelos bancos que usam essa via, a partir do "peixe".&lt;br /&gt;&lt;br /&gt;E nessa nova pescaria, referida amplamente como &lt;span style="font-style: italic;"&gt;fishing&lt;/span&gt;,  o Brasil vem recebendo internacionalmente mais reconhecimento que na tradicional! Duvida? Confira &lt;a href="http://www.cnn.com/2008/TECH/02/12/cyber.thieves/index.html"&gt;aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-1899096196866922438?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/1899096196866922438/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=1899096196866922438' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/1899096196866922438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/1899096196866922438'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/02/pescaria-j-no-mais-mesma-de-antigamente.html' title='A pescaria já não é mais a mesma de antigamente'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-4368964961122112812</id><published>2008-02-06T13:34:00.001-02:00</published><updated>2008-02-06T13:43:30.556-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SecBuemba'/><title type='text'>SecBuemba! Nova técnica de medir qualidade de código revisado</title><content type='html'>Acaba de ser lançada uma nova técnica de medição da qualidade de código revisado, cuja efetividade nunca havia sido alcançada. Confira em detalhes a aplicação da WFT &lt;a href="http://www.veracode.com/blog/?p=77"&gt;aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-4368964961122112812?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/4368964961122112812/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=4368964961122112812' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4368964961122112812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4368964961122112812'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/02/sechumor-nova-tcnica-de-medir-qualidade.html' title='SecBuemba! Nova técnica de medir qualidade de código revisado'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-8671065200890185602</id><published>2008-02-05T19:52:00.000-02:00</published><updated>2008-02-06T12:57:33.972-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teste'/><category scheme='http://www.blogger.com/atom/ns#' term='fuzzing'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><category scheme='http://www.blogger.com/atom/ns#' term='black box'/><title type='text'>A contribuição do Fuzzing para o Software Seguro</title><content type='html'>Já foi mencionado aqui técnicas para localizar &lt;a href="http://softwareseguro.blogspot.com/2007/08/afinal-de-contas-qual-melhor-forma-de.html"&gt;vulnerabilidades&lt;/a&gt;, com uma rápida menção à técnica conhecida como &lt;span style="font-style: italic;"&gt;Fuzzing&lt;/span&gt;. Tudo bem que o objetivo não era explicá-la em detalhes, mas considerar várias delas. Mas pelo papel determinante que vem ocupando no chão de fábrica do desenvolvimento de código seguro, ela merece mais destaque. Com essa mesma opinião, a revista eletrônica DarkReading nos fez o favor de publicar recentemente um &lt;a href="http://www.darkreading.com/document.asp?doc_id=144773&amp;amp;f_src=darkreading_section_296"&gt;artigo&lt;/a&gt; com detalhes sobre a técnica, com comparação entre ferramentas, além de apontar para outras fontes de pesquisa, como o blog &lt;a href="http://blogs.msdn.com/sdl/archive/2007/09/20/fuzz-testing-at-microsoft-and-the-triage-process.aspx"&gt;Scott Lambert&lt;/a&gt;, do &lt;span&gt;&lt;span&gt;Microsoft’s Security Engineering Tools Team, e o livro que será lançado em maio &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://www.artechhouse.com/default.asp?frame=book.asp&amp;amp;book=978-1-59693-214-2&amp;amp;Country=US" target="new"&gt;"Fuzzing for Software Security: Robustness Testing for Quality Assurance and Vulnerability"&lt;/a&gt;.&lt;br /&gt;Para os mais anciosos, já existe um livro sobre o assunto, chamado &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.amazon.com/Fuzzing-Brute-Force-Vulnerability-Discovery/dp/0321446119/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=gateway&amp;amp;qid=1202249296&amp;amp;sr=8-1"&gt;&lt;span class="sans"&gt;"Fuzzing: Brute Force Vulnerability Discovery".&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-8671065200890185602?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/8671065200890185602/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=8671065200890185602' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/8671065200890185602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/8671065200890185602'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/02/contribuio-do-fuzzing-para-o-software.html' title='A contribuição do Fuzzing para o Software Seguro'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-6727273379186278297</id><published>2008-01-31T16:52:00.001-02:00</published><updated>2008-01-31T17:02:26.969-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='orientações de segurança'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Acesso grátis aos livros da OWASP</title><content type='html'>A OWASP está disponibilizando alguns de seus livros para download sem custo (de graça). Duvida? Acesse &lt;a href="http://stores.lulu.com/owasp"&gt;&lt;span style="text-decoration: underline;"&gt;aqui&lt;/span&gt; &lt;/a&gt;e aproveite. Para aqueles que resistem ao ebook, podem adquirir as versões impressas por um valor simbólico, que varia de 5 a 18 dólares.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-6727273379186278297?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/6727273379186278297/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=6727273379186278297' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6727273379186278297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6727273379186278297'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/01/acesso-grtis-aos-livros-da-owasp.html' title='Acesso grátis aos livros da OWASP'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-1659693584087862165</id><published>2008-01-10T16:46:00.000-02:00</published><updated>2008-01-10T16:59:09.761-02:00</updated><title type='text'>Top 10 Vulnerabilities traduzido para o português</title><content type='html'>Com o intuito de facilitar o acesso à documentação sobre segurança no desenvolvimento fizemos a tradução do documento conhecido como &lt;a href="http://www.owasp.org/images/4/42/OWASP_TOP_10_2007_PT-BR.pdf"&gt;Top 10 Vulnerabilities da OWASP&lt;/a&gt;. Ele concentra informações sobre as dez vulnerabilidades mais relevantes para as aplicações web, bem como alternativas combatê-las.&lt;br /&gt;&lt;br /&gt;Aproveitem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-1659693584087862165?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/1659693584087862165/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=1659693584087862165' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/1659693584087862165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/1659693584087862165'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2008/01/top-10-vulnerabilities-traduzido-para-o.html' title='Top 10 Vulnerabilities traduzido para o português'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-6629491578711341217</id><published>2007-10-18T08:39:00.000-02:00</published><updated>2007-10-18T08:46:54.202-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><title type='text'>Lições aprendidas em segurança pela Microsoft</title><content type='html'>A revista MSDS Magazine de novembro 2007 traz um artigo elaborado pelo Michael Howard, onde são compartilhadas 10 lições aprendidas pela Microsoft ao longo dos cinco anos de investimento em desenvolvimento de código seguro. Vale a pena conferir!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/11/Lessons/default.asp"&gt;Lessons Learned from Five Years of Building More Secure Software&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-6629491578711341217?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/6629491578711341217/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=6629491578711341217' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6629491578711341217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6629491578711341217'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/10/lies-aprendidas-em-segurana-pela.html' title='Lições aprendidas em segurança pela Microsoft'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-4683949615728124946</id><published>2007-09-28T09:28:00.000-03:00</published><updated>2007-09-28T09:48:42.217-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='guias de segurança'/><category scheme='http://www.blogger.com/atom/ns#' term='modelos de segurança'/><category scheme='http://www.blogger.com/atom/ns#' term='orientações de segurança'/><title type='text'>Microsoft Guidance Explorer</title><content type='html'>Para os desenvolvedores .NET que não conhecem o &lt;a href="http://www.guidancelibrary.com/GuidanceExplorerBeta/"&gt;Microsoft Guidance Explorer (versão Web)&lt;/a&gt; ainda, vale a pena analisá-lo. Ele aborda as recomendações de Patterns&amp;amp;Practices de uma perspectiva mais aplicada ainda.&lt;br /&gt;&lt;br /&gt;Segue apenas algumas orientações de segurança tiradas dele para o desenho de software seguro, na plataforma .NET.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.guidancelibrary.com/GuidanceExplorerBeta/ItemData.aspx?ItemId=240fdd2e-03e6-47f6-af0d-f710229d9533"&gt;Partition your web site and secure restricted pages with ssl&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.guidancelibrary.com/GuidanceExplorerBeta/ItemData.aspx?ItemId=faf615d7-50dc-4ff6-8aea-882bd72977b3"&gt;Protect authentication cookies&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.guidancelibrary.com/GuidanceExplorerBeta/ItemData.aspx?ItemId=15bffef2-761d-4165-a4b5-4819c96624e3"&gt;How to use fxcop&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;A versão local pode ser encontrada em &lt;a href="http://www.codeplex.com/guidanceExplorer"&gt;Guidance Explorer.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-4683949615728124946?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/4683949615728124946/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=4683949615728124946' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4683949615728124946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/4683949615728124946'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/09/microsoft-guidance-explorer.html' title='Microsoft Guidance Explorer'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-988356179244987320</id><published>2007-09-15T11:22:00.000-03:00</published><updated>2007-09-15T11:38:39.781-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><title type='text'>Sugestão de Leitura  "State of the Art of Software Security Assurance"</title><content type='html'>Copio o post do Cima, onde ele divulga o lançamento pelo DoD (US - Department of Defense) do relatório sobre o estado a arte em desenvolvimento de software seguro.&lt;br /&gt;&lt;br /&gt;Segue o post - &lt;a href="http://blogs.technet.com/fcima/archive/2007/09/15/relat-rio-state-of-the-art-of-software-security-assurance.aspx"&gt;Dica: Relatório "State of the Art of Software Security Assurance".&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Adicionalmente, sugiro outro relatório, este do DHS (Department of Homeland Security) produzido em agosto de 2006, mais conciso, mas tão denso quanto o do DoD, chamado  &lt;a href="https://buildsecurityin.us-cert.gov/daisy/bsi/87/version/15/part/4/data/SwA%20Security%20in%20the%20Software%20Lifcycle%20v1.2%20-%20091306.pdf?branch=main&amp;amp;language=default"&gt;Security in the Software LifeCycle.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-988356179244987320?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/988356179244987320/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=988356179244987320' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/988356179244987320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/988356179244987320'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/09/sugesto-de-leitura-state-of-art-of.html' title='Sugestão de Leitura  &quot;State of the Art of Software Security Assurance&quot;'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-2222013628910374464</id><published>2007-08-24T10:35:00.000-03:00</published><updated>2007-08-24T10:50:53.062-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='firewall de aplicação'/><title type='text'>Core Grasp for PHP</title><content type='html'>Foi lançada a ferramenta Core Grasp para PHP, cujo objetivo é detectar e bloquear a injeção de vulnerabilidades e violação de privacidade.&lt;br /&gt;&lt;br /&gt;Quem desenvolve em PHP sabe das dificuldades de construir uma aplicação segura a partir desse framework. Vale a pena considerar....&lt;br /&gt;&lt;br /&gt;Mais informações: &lt;a href="http://gasp.coresecurity.com/"&gt;CORE GRASP&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 11pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;a href="http://gasp.coresecurity.com/"&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-2222013628910374464?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/2222013628910374464/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=2222013628910374464' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2222013628910374464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2222013628910374464'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/08/core-grasp-for-php.html' title='Core Grasp for PHP'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-2096079815144817941</id><published>2007-08-14T15:22:00.000-03:00</published><updated>2007-08-15T09:30:33.068-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='teste'/><category scheme='http://www.blogger.com/atom/ns#' term='white box'/><category scheme='http://www.blogger.com/atom/ns#' term='gray box'/><category scheme='http://www.blogger.com/atom/ns#' term='fuzzing'/><category scheme='http://www.blogger.com/atom/ns#' term='black box'/><title type='text'>Afinal de contas, qual a melhor forma de encontrar vulnerabilidades?</title><content type='html'>Existem três abordagens básicas para descobrir vulnerabilidades: testes &lt;span style="font-style: italic;"&gt;white box, black box &lt;/span&gt;e &lt;span style="font-style: italic;"&gt;gray box&lt;/span&gt;. A diferença entre os três pode ser analisada pelo prisma dos recursos disponíveis para o testador. Em um extremo, temos o teste &lt;span style="font-style: italic;"&gt;white box&lt;/span&gt;, cuja abordagem requer acesso completo a todos os recursos. Incluindo código fonte, desenho e até um conversa com o programador. No outro extremo encontra-se o teste &lt;span style="font-style: italic;"&gt;black box&lt;/span&gt;, onde os recursos internos do sistema são indisponíveis. O teste de penetração é um exemplo dessa abordagem. Já os testes &lt;span style="font-style: italic;"&gt;gray box&lt;/span&gt; não possuem uma definição bem estabelecida. Mas vamos combinar que para esse tipo, o testador tem acesso as bibliotecas compiladas e, em alguns casos, documentação básica.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Teste &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:130%;" &gt;white box&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Essa abordagem explora em profundidade o código fonte na tentativa de localizar falhas de segurança. A análise de código fonte pode ser realizada manualmente, impraticável em grande escala, e automatizada pelo uso de &lt;a href="http://softwareseguro.blogspot.com/2007/07/ferramentas-de-anlise-cdigo-fonte.html"&gt;ferramentas de análise de código fonte.&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;             Vantagens&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Cobertura&lt;/span&gt; - pelo fato do código fonte estar disponível, uma revisão de código permite sua cobertura total. Todos os fluxos de código podem ser auditados na busca de vulnerabilidades. Isto pode levar a &lt;a href="http://softwareseguro.blogspot.com/2007/07/ferramentas-de-anlise-cdigo-fonte.html"&gt;falsos positvos&lt;/a&gt;, à medida que nem todos os fluxos sejam verificados.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;       Desvantagens&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Complexidade&lt;/span&gt; - a análise dos resultados gerados pelas ferramentas é de muita complexidade, pois exigem uma revisão criteriosa de cada registro para verificar se realmente corresponde a uma vulnerabilidade.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Disponibilidade&lt;/span&gt; - o código fonte nem sempre é um recurso disponível.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Teste &lt;span style="font-style: italic;"&gt;black box&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Essa abordagem implica que seu conhecimento corresponde apenas aquilo que pode ser observável, assim como um usuário final. Assim como para o teste caixa branca, esta abordagem é realizada de maneira manual e automatizada, sendo esta conhecida como &lt;span style="font-style: italic;"&gt;Fuzzing&lt;/span&gt;.&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;       Vantagens&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Disponibilidade&lt;/span&gt; - aplicáveis sempre, inclusive nas situações onde o código fonte esteja disponível.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Reproducibiliade&lt;/span&gt; - pelo fato deste teste não levar em conta pressupostos sobre o alvo, a ação pode ser reproduzida para diversos sistemas.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Simplicidade&lt;/span&gt; - mesmo que abordagens que usem engenharia reversa requeiram  habiliades especializadas, o teste &lt;span style="font-style: italic;"&gt;black box&lt;/span&gt; em seu nível básico pode ser conduzido sem um conhecimento interno denso da aplicação.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;       Desvantagens&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Cobertura&lt;/span&gt; - um dos maiores desafios é saber quando parar os testes quão efetivo ele tem sido.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Inteligência &lt;/span&gt;- o teste &lt;span style="font-style: italic;"&gt;black box&lt;/span&gt; é mais indicado para cenários onde a vulnerabilidade é causada por vetor de ataque individual. Ataques complexos podem, entretanto, exigir múltiplos vetores de ataque e nesses casos é necessário um entendimento profundo da aplicação, possibilitado pelo acesos ao código fonte.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Teste &lt;span style="font-style: italic;"&gt;gray box&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Este teste uso como recurso determinante o acesso ao binário da aplicação, sendo sua avaliação de segurança também conhecida como auditorida de binário. Assim como para as outras abordagens, esta é realizada manualmente ou com o uso de ferramenta. Vale ressaltar que o que pode não ser automatizado é a análise e não o &lt;span style="font-style: italic;"&gt;desassembly.&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;       Vantagens&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Disponibilidade&lt;/span&gt; - com exceção de aplicações web remotas, o binário está sempre disponível.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Cobertura&lt;/span&gt; - informação obtida com esta análise pode ser utilizada na melhora da técnica &lt;span style="font-style: italic;"&gt;black box&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;span style="font-weight: bold;"&gt;       Desvantagens&lt;/span&gt; &lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Complexidade&lt;/span&gt; - A engenharia reversa é uma habilidade especializada e consequentemente recursos podem não estar disponíveis para sua realização.&lt;/li&gt;&lt;/ul&gt;Infelizmente, quando se trata de segurança, não existem soluções simples isoladas, que transformem seu software em algo seguro. Isso se aplica também para a localização de vulnerabilidades. Se nem a combinação das abordagens anteriores assegura que todas as vulnerabilidades sejam encontradas, individualmente é que elas não resolvem mesmo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-2096079815144817941?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/2096079815144817941/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=2096079815144817941' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2096079815144817941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/2096079815144817941'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/08/afinal-de-contas-qual-melhor-forma-de.html' title='Afinal de contas, qual a melhor forma de encontrar vulnerabilidades?'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-6165787609493660296</id><published>2007-08-09T09:40:00.000-03:00</published><updated>2007-08-09T09:53:52.227-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><title type='text'>The Securty Development Lifecycle book...</title><content type='html'>Para aqueles que tiverem interesse em um resumo breve do livro &lt;a href="http://www.amazon.com/Security-Development-Lifecycle-Michael-Howard/dp/0735622140"&gt;SDL&lt;/a&gt;, podem conferir a &lt;a href="http://softwareseguro.googlepages.com/SecurityDevelopmentLifecyclec.pdf"&gt;apresentação &lt;/a&gt;elaborada por mim durante a sua leitura.&lt;br /&gt;Reforço, que vale a pena a leitura do livro, cujo conteúdo é bastante denso e sua leitura não é tão árida. O que o torna acessível a qualquer um com conhecimentos básicos da área de computação.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-6165787609493660296?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/6165787609493660296/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=6165787609493660296' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6165787609493660296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6165787609493660296'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/08/securty-development-lifecycle-book.html' title='The Securty Development Lifecycle book...'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-769165514022811076</id><published>2007-07-05T15:23:00.002-03:00</published><updated>2008-03-28T10:36:08.082-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='análise de código fonte'/><category scheme='http://www.blogger.com/atom/ns#' term='revisão de código'/><title type='text'>Ferramentas de Análise Código Fonte</title><content type='html'>A análise de código para fins de segurança é uma das alternativas bastante utilizadas pelo mercado para o desenvolvimento de software seguro. Sua difusão se deve primeiro aos resultados, em termos de localização de &lt;span style="font-style: italic;"&gt;bugs&lt;/span&gt; de segurança em código e, segundo, pelaa facilidade de incorporação ao ciclo de desenvolvimento, uma vez que as principais ferramentas se integram às IDEs mais usadas hoje, como o Eclipse e o Visual Studio da Microsoft.&lt;br /&gt;&lt;br /&gt;Todas as ferramentas comerciais existentes se fundamentam no mesmo princípio, regras e padrões de codificação suspeitos. Isso as tornam muito dependentes da ação humana. Num primeiro momento, para desenhar essas regras a partir de muita pesquisa e depois, para avaliar o resultado de uma análise de código.&lt;br /&gt;&lt;br /&gt;As ferramentas de análise de código fundamentam a an &lt;a href="http://en.wikipedia.org/wiki/Rice%27s_Theorem"&gt;Teorema de Rice,&lt;/a&gt; que coloca que qualquer questão não trivial endereçada a um programa pode ser reduzido ao &lt;a href="http://en.wikipedia.org/wiki/Halting_problem"&gt;Problema de Halting, &lt;/a&gt;isso implica que os problemas de análise de código são insolúveis no pior caso e, por consequência, que essas ferramentas são obrigadas a fazer aproximação, cujo resultado é algo não perfeito.&lt;br /&gt;&lt;br /&gt;Os principais problemas das ferramentas de análise de código fonte para segurança estão concentradas em:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Falso negativo - o programa contém &lt;span style="font-style: italic;"&gt;bugs&lt;/span&gt; não endereçados pela ferramenta. Isso dá a falsa sensasão de que não existe &lt;span style="font-style: italic;"&gt;bugs&lt;/span&gt;, que na verdade significa que a ferramenta não foi capaz de encotrar mais exemplares.&lt;/li&gt;&lt;li&gt;Falso positivo - a ferramenta endereça &lt;span style="font-style: italic;"&gt;bugs&lt;/span&gt; não existentes. Isso se refere a duas possibilidades: um erro propriamente dito, onde a ferramenta localizou um &lt;span style="font-style: italic;"&gt;bug&lt;/span&gt; que não existe fisicamente; ou há uma classificação da ferramenta incoerente com as variáveis do ambiente. Por exemplo, a ferramenta poderia encontrar um &lt;span style="font-style: italic;"&gt;bug&lt;/span&gt; de SQL Injection, que na realidade, não interessa para o software investigado pelas suas características de operação.&lt;/li&gt;&lt;/ul&gt;Vale ressaltar que as ferramentas comerciais procuram reduzir o falso positivo, assumindo o custo de deixar passar falsos negativos.&lt;br /&gt;&lt;br /&gt;As análises de código fonte podem ser divididas de acordo com as seguinteas abordagens:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Análise estática: a análise estática pode compreender as técnicas de busca direta a partir de lista de strings (grep); a análise léxica, onde os tokens do código fonte são comparados com àqueles contidos numa biblioteca de vulnerabilidades e análise semântica, onde se prevê como o programa se comportará em tempo de execução, usando a tecnologia de compiladores (árvore sintática abstrata)&lt;/li&gt;&lt;li&gt;Análise de fluxo de controle: usada para caminhar através das condições lógicas do código. O processo funciona como a seguir:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Observe uma função e determine cada condição de desvio. Essas incluem loops, switchs, if's e blocos try/catch.&lt;/li&gt;&lt;li&gt;Entenda as condições sobre como cada bloco será executado.&lt;/li&gt;&lt;li&gt;Vá para a próxima função e repita.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Análise de fluxo de dados: usada para seguir fluxos de dados dos pontos de entrada aos pontos de saída. O processo funciona como descrito a seguir:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Para cada entrada , determine o quanto você acredita na fonte de entrada. Quando em dúvida você não deve acreditar.&lt;/li&gt;&lt;li&gt;Siga o fluxo de dados para cada saída possível, registrando ao longo do percurso qualquer tentativa de validação de dados.&lt;/li&gt;&lt;li&gt;Vá para a próxima entrada e continue.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;A ferramenta mais eficiente é a que consegue fazer uso dessas abordagens combinadas para reduzir tanto o falso negativo, como o falso positivo. Alguns fornecedores estão na busca por ferrnamentas efetivas em temos de análise de código para segurança. Dentre eles, vale destacar:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.coverity.com/"&gt;Coverity&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.fortifysoftware.com/"&gt;Fortify &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ouncelabs.com/"&gt;Ounce Labs &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/teamsystem/"&gt;Microsoft&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Vale reforçar, que para conseguir tirar o melhor proveito das ferramentas de análise de código fonte para segurança, seu uso deve estar amparado por um ciclo de desenvolvimento seguro, como o &lt;a href="http://www.owasp.org/index.php/OWASP_CLASP_Project"&gt;CLASP&lt;/a&gt; ou &lt;a href="http://blogs.msdn.com/sdl/"&gt;SDL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Informações adicionais :&lt;br /&gt;&lt;a href="http://www.amazon.com/Software-Security-Building-Addison-Wesley/dp/0321356705"&gt;Software Security Building Security In&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.ca/Secure-Programming-Static-Analysis-Brian/dp/0321424778"&gt;Secure Programming with Static Analysis&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=75039f39-b33a-4bbd-b041-cf25f7473a0b&amp;amp;displaylang=en"&gt;Security Engineering Explained&lt;/a&gt; - &lt;a href="http://softwareseguro.googlepages.com/EngenhariadeSeguranaExplicada.pdf"&gt;Versão em português.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.ca/Secure-Programming-Static-Analysis-Brian/dp/0321424778"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-769165514022811076?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/769165514022811076/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=769165514022811076' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/769165514022811076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/769165514022811076'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/07/ferramentas-de-anlise-cdigo-fonte.html' title='Ferramentas de Análise Código Fonte'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-929972818063028039</id><published>2007-07-04T15:40:00.001-03:00</published><updated>2007-07-18T16:52:13.627-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software seguro'/><category scheme='http://www.blogger.com/atom/ns#' term='ciclo de desenvolvimento seguro'/><title type='text'>Software Seguro....Por onde começar?</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;O tema software seguro tem recebido mais atenção dia-a-dia, impulsionado pela necessidade de atacar de todas as maneiras a segurança em TI, com ações para estabelecer segurança no nível de rede, de estação e de aplicação, para inverter ou suavizar a curva de evolução de incidentes de segurança, como mostrado pelo &lt;a href="http://www.cert.org/stats/"&gt;&lt;span style="color:blue;"&gt;CERT-CC&lt;/span&gt;&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Nosso foco será em ações, práticas, procedimentos, ferramentas, etc. que apóiem a melhoria da segurança no nível de aplicação, ou seja, para que o elo aplicação na cadeia aplicação-rede-estação seja fortalecido.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Uma coisa vale ressaltar, se alguém deseja evoluir no tema de desenvolvimento de software seguro, vai ter que arregaçar as mangas e digerir uma quantidade infinita de informações, que hoje pode ser encontradas em diversas fontes de pesquisa. Isso acontecer por duas razões principais, primeira é a dificuldade em se encontrar programas de treinamento que considerem esse tipo de assunto e segunda, pela dinamicidade associada, a cada dia surgem novas vulnerabilidades e contramedidas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Para quem desejar se ingressar no problema de desenvolvimento de software seguro, que remete ao uso de um ciclo de desenvolvimento de software que considera segurança desde seu início, segue a relação de alguns links:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=75039f39-b33a-4bbd-b041-cf25f7473a0b&amp;amp;displaylang=en"&gt;&lt;span style="color:blue;"&gt;Security Engineering Explained&lt;/span&gt;&lt;/a&gt; - relatório      da Microsoft que considera preocupações elementares no desenvolvimento de      software seguro (50pag.).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;a href="https://buildsecurityin.us-cert.gov/daisy/bsi/home.html"&gt;&lt;span style="color:blue;"&gt;Build Security In&lt;/span&gt;&lt;/a&gt; - portal desenvolvido pelo      Software Engineering Institute, com orientação de Gary McGraw, patrocinado      pelo Department of Homeland Security. Existem muitos artigos sobre a      temática de segurança em software.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;a href="http://www.owasp.org/index.php/Main_Page"&gt;&lt;span style="color:blue;"&gt;OWASP&lt;/span&gt;&lt;/a&gt;      - Open Web Application Security Project - Portal de segurança em      aplicações web. Este é o projeto de segurança em desenvolvimento mais      ativo hoje, com grande contribuição da comunidade. Qualquer um pode se      envolver e contribuir. Pode encontrar ferramentas com &lt;a href="http://www.owasp.org/index.php/OWASP_WebScarab_Project" title="OWASP WebScarab Project"&gt;&lt;span style="color:blue;"&gt;WebScarab&lt;/span&gt;&lt;/a&gt;      e o Processo &lt;a href="http://www.owasp.org/index.php/OWASP_CLASP_Project" title="OWASP CLASP Project"&gt;&lt;span style="color:blue;"&gt;CLASP&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-929972818063028039?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/929972818063028039/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=929972818063028039' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/929972818063028039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/929972818063028039'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/07/software-seguropor-onde-comear.html' title='Software Seguro....Por onde começar?'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-323244695432932431.post-6584091255038587992</id><published>2007-07-04T15:27:00.000-03:00</published><updated>2007-07-04T15:31:31.854-03:00</updated><title type='text'>Abertura</title><content type='html'>Resolvi inaugurar esse canal para discutirmos vários temas relacionados ao desenvolvimento de software seguro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/323244695432932431-6584091255038587992?l=softwareseguro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwareseguro.blogspot.com/feeds/6584091255038587992/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=323244695432932431&amp;postID=6584091255038587992' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6584091255038587992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/323244695432932431/posts/default/6584091255038587992'/><link rel='alternate' type='text/html' href='http://softwareseguro.blogspot.com/2007/07/abertura.html' title='Abertura'/><author><name>Fabricio Braz</name><uri>http://www.blogger.com/profile/16109285786798190518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp1.blogger.com/_1mDb1TmIoVc/R-z5joIxqNI/AAAAAAAAAAM/tpkqxZK6ASQ/S220/untitled.JPG'/></author><thr:total>0</thr:total></entry></feed>
