<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: brmartin | Bruno Martins</title>
    <description>The latest articles on Forem by brmartin | Bruno Martins (@brmartin).</description>
    <link>https://forem.com/brmartin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1028077%2Fa19b8007-01b3-4abd-9798-c833c9280d1b.jpeg</url>
      <title>Forem: brmartin | Bruno Martins</title>
      <link>https://forem.com/brmartin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/brmartin"/>
    <language>en</language>
    <item>
      <title>Compreendendo o SAMM</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Fri, 12 Jul 2024 21:13:38 +0000</pubDate>
      <link>https://forem.com/brmartin/compreendendo-o-samm-2ccm</link>
      <guid>https://forem.com/brmartin/compreendendo-o-samm-2ccm</guid>
      <description>&lt;p&gt;Quem trabalha com desenvolvimento de aplicações ou segurança cibernética possivelmente já ouviu falar da OWASP e seus principais projetos. Nesse artigo vou falar um pouco sobre o Software Assurance Maturity Model - SAMM. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OWASP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se essa é a primeira vez que escuta sobre a OWASP, convido-o a visitar o &lt;a href="https://owasp.org/" rel="noopener noreferrer"&gt;site oficial&lt;/a&gt; e ler um &lt;a href="https://dev.to/brmartin/eu-me-associei-a-owasp-3jb1"&gt;rápido artigo&lt;/a&gt; que escrevi há um tempo. Uma breve descrição seria: &lt;/p&gt;

&lt;p&gt;A OWASP (Open Web Application Security Project) é uma fundação sem fins lucrativos dedicada ao aprimoramento da segurança de software. Por meio de projetos de código aberto colaborativos, uma vasta rede de comunidades locais globais, dezenas de milhares de membros e conferências educacionais de destaque, a OWASP Foundation se destaca como uma referência para desenvolvedores e profissionais de tecnologia que buscam proteger a web. &lt;/p&gt;

&lt;p&gt;Portanto, a OWASP é conhecida por seus recursos, ferramentas e documentações, que são amplamente utilizados por profissionais de segurança da informação. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Projeto SAMM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sobre o SAMM eu diria que o objetivo desse framework é entender o ponto de maturidade que a empresa avaliada se encontra no momento da entrevista e em qual ponto se deseja chegar, em termos de práticas de segurança. A partir desse entendimento, formular ou melhorar, e implementar uma estratégia com processos definidos adaptados ao apetite de riscos da Organização, que pode ser integrada ao Software Development Lifecycle (SDLC) existente. &lt;/p&gt;

&lt;p&gt;Essa avaliação pode ser realizada de forma externa, através de um avaliador externo, ou através de uma autoavaliação realizada por uma equipe interna de segurança. A representação de todos os stakeholders é fundamental para o sucesso da atividade. &lt;/p&gt;

&lt;p&gt;A estrutura do framework é dividida em 5 áreas de negócios com cada uma subdividida em três práticas de segurança: Governança (Estratégia e Métricas / Política e Conformidade / Educação e Orientação), Design ( Avaliação de Ameaça / Requisitos de Segurança / Arquitetura Segura), Implementação (Construção Segura / Implantação Segura / Gestão de Defeitos), Verificação (Avaliação de Arquitetura / Testes Orientados a Requisitos / Teste de Segurança), Operações (Gestão de Incidentes / Gestão Ambiental / Gestão Operacional). &lt;/p&gt;

&lt;p&gt;Por fim, para cada prática de segurança, o SAMM define dois fluxos (stream) e três níveis de maturidade.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnlcp29e4oj41iec4czj0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnlcp29e4oj41iec4czj0.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É importante destacar, que este modelo necessita de reavaliações contínuas. O monitoramento e ajustes das práticas é um ponto crucial para a melhoria contínua. &lt;/p&gt;

&lt;p&gt;A planilha de Assessment Interview &lt;br&gt;
Na primeira aba, estão os campos que deverão ser respondidos com base nas respostas dadas na entrevista. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfqajd598r29fpn05tiq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfqajd598r29fpn05tiq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A segunda aba apresenta o Scorecard. Facilitando a visualização da pontuação atingida e quais pontos necessitam de melhorias.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffck7m27vbs83pe001c0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffck7m27vbs83pe001c0a.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na terceira aba encontramos o Roadmap, onde são descritas as ações e iniciativas a serem implementadas em cada fase do processo de maturidade, com base na avaliação inicial de maturidade (scorecard) e nos objetivos de segurança da organização. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fleir79h2ewy6oqrxp7bp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fleir79h2ewy6oqrxp7bp.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E por fim, na última aba o Roadmap Chart é a representação visual do roadmap. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como busquei o entendimento&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Venho estudando muitos assuntos importantes para os profissionais de AppSec e o tema atual tem sido o SAMM. Dentro desse tópico, o conteúdo em vídeo (em português) do Eduardo B. Santos, MSc com teoria e demonstração prática como também o &lt;a href="https://owaspsamm.thinkific.com/courses/samm" rel="noopener noreferrer"&gt;curso oficial&lt;/a&gt; (em inglês) do SAMM têm me ajudado bastante a consolidar conceitos que venho aplicando nas aulas do Luiz Henrique Custódio, onde tivemos a oportunidade de colocar a mão na massa e praticar em estudos de caso. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prática&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Durante o treinamento da Conviso, o Luiz Henrique Custódio nos desafiou a realizar um assessment utilizando o SAMM.  O SAMM disponibiliza uma &lt;a href="https://github.com/owaspsamm/core/releases/download/v2.0.8/SAMM_spreadsheet.xlsx" rel="noopener noreferrer"&gt;planilha Assessment Interview&lt;/a&gt;, para ser utilizada como guia da entrevista de assessment. Estudos de caso e uma documentação extensa também estão disponíveis no site oficial do projeto OWASP SAMM.  &lt;/p&gt;

&lt;p&gt;Divididos em grupos, nossa tarefa era ler a documentação do estudo de caso e fazer perguntas pontuais ao cliente imaginário. &lt;/p&gt;

&lt;p&gt;Esta atividade consistia em analisar uma empresa fictícia chamada CNVS BANKING, uma empresa especializada em serviços bancários com um quadro de 500 colaboradores, sendo 50 profissionais na equipe de TI. &lt;/p&gt;

&lt;p&gt;Lembrando que não existem respostas certas ou erradas, fomos analisando o texto do estudo de caso e, na falta de informações, questionávamos o Luiz, nosso cliente imaginário, para maiores entendimentos. &lt;/p&gt;

&lt;p&gt;Em situações reais, é aconselhável que se realize uma entrevista por área de negócio, mas com participantes plurais, ou seja, de áreas distintas que estejam envolvidas naquele ponto. Dessa forma, começamos não apenas a avaliar, mas entender a dor de cada um. &lt;/p&gt;

&lt;p&gt;Embora a atividade de preencher a planilha seja muito simples, ela se torna desafiadora quando obter as informações do ambiente o mais fidedignas possíveis é algo muito complexo. Aqui não se buscam evidências. &lt;/p&gt;

&lt;p&gt;O propósito principal não é auditar, mas gerar um autoconhecimento, buscando autonomia e aprendizado para elevação da maturidade do ambiente. Como consequência, cria-se uma cultura de proximidade entre equipes de desenvolvedores, de segurança e demais áreas envolvidas, onde uma enxerga a dor da outra, e o entendimento do propósito de se buscar uma elevação da maturidade.  &lt;/p&gt;

&lt;p&gt;Não trarei todas as avaliações de maturidade para não me estender muito, mas durante essa atividade alguns pontos me chamaram atenção, como o fato do time de DevOps afirmar que a modelagem de ameaças está em elaboração, porém o time de desenvolvimento não saber do que se trata. Notei uma falta de proximidade e comunicação entre as equipes, a qual levará a uma entrega que possivelmente criará atritos e ausência de engajamento. Assim, uma baixa pontuação foi atingida em Design.  &lt;/p&gt;

&lt;p&gt;Pelo lado positivo, as documentações de boas práticas de gerenciamento de secrets e o processo de priorização, realizado pelo analista de Appsec responsável pelo squad, garantindo que as particularidades de cada projeto sejam tratadas de acordo, no meu entendimento elevaram o nível de maturidade das práticas de segurança na Implementação. &lt;/p&gt;

&lt;p&gt;Pude constatar após a atividade prática, a importância da realização das entrevistas e o uso do SAMM para a elevação da maturidade de segurança no desenvolvimento de software. Ele nos traz uma visão mais clara do ambiente de uma determinada empresa e ajuda no planejamento dos próximos passos para tornar uma aplicação mais segura possível. &lt;/p&gt;

&lt;p&gt;A melhor maneira de entender o SAMM é começar a usá-lo. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SAMMwise&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O readme do repositório do projeto assim o define: &lt;/p&gt;

&lt;p&gt;“SAMMwise é um Web App de código aberto para calcular a pontuação de Maturidade de um indivíduo, empresa ou projeto usando o modelo SAMM. O aplicativo o orienta pela avaliação, permite que você salve e reutilize avaliações concluídas anteriormente e apresenta os resultados em um estilo semelhante à planilha.” &lt;/p&gt;

&lt;p&gt;Seria então uma forma mais “moderna” de adoção do SAMM. Se desejar saber um pouco mais sobre a ferramenta, aconselho a leitura do artigo do Diego Pereira, &lt;a href="https://www.linkedin.com/pulse/utilizando-sammwise-diego-pereira-vwdff/" rel="noopener noreferrer"&gt;Utilizando SAMMWise&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenCRE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nesse período de estudo tive a grata surpresa de descobrir o &lt;a href="https://www.opencre.org/" rel="noopener noreferrer"&gt;OpenCRE&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;O projeto Open Source "OpenCRE" integra todos os padrões e diretrizes de segurança no nível de requisitos em um recurso unificado e harmonizado. Usar o OpenCRE com o SAMM oferece benefícios como acesso a recursos adicionais, comparação com outros padrões de segurança e eliminação de lacunas entre diferentes estruturas de segurança. &lt;/p&gt;

&lt;p&gt;Para quem já está surfando a onda das IAs, eles oferecem também um &lt;a href="https://www.opencre.org/chatbot" rel="noopener noreferrer"&gt;chatbot&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc6qdyz12qp0uwaam8zcu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc6qdyz12qp0uwaam8zcu.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em um cenário onde a cibersegurança é vital, o SAMM é um guia valioso para proteger aplicações de forma eficaz. &lt;/p&gt;

&lt;p&gt;Em meus estudos não encontrei a planilha em português, porém quem tiver ou souber da existência de uma tradução do material seria interessante compartilhar nos comentários. Afinal, esse é o propósito de comunidades como a OWASP, ambientes colaborativos em prol da evolução da segurança da web. &lt;/p&gt;

&lt;p&gt;Aproveito para deixar como sugestão de leitura, uma série de artigos que explicam ponto a ponto a estrutura do framework SAMM. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.convisoappsec.com/implementando-um-programa-de-seguranca-de-aplicacoes-baseado-no-owasp-samm/" rel="noopener noreferrer"&gt;Programa de segurança de aplicações baseado no OWASP SAMM&lt;/a&gt;    &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aproveitem!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>owasp</category>
      <category>samm</category>
      <category>appsec</category>
    </item>
    <item>
      <title>Defense-in-Depth: Por que essa estratégia é importante?</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Tue, 14 Mar 2023 17:49:26 +0000</pubDate>
      <link>https://forem.com/brmartin/defense-in-depth-por-que-essa-estrategia-e-importante-i8a</link>
      <guid>https://forem.com/brmartin/defense-in-depth-por-que-essa-estrategia-e-importante-i8a</guid>
      <description>&lt;h2&gt;
  
  
  1. O princípio da Defesa em Profundidade
&lt;/h2&gt;

&lt;p&gt;O princípio de Defesa em Profundidade é uma estratégia de segurança da informação e cibernética que se baseia na aplicação de várias camadas de controles de segurança para proteger os ativos de uma organização. Baseia-se na ideia de que, se uma camada de segurança falhar, as outras camadas ainda poderão proteger o ativo. &lt;/p&gt;

&lt;p&gt;Tem como objetivo criar um ambiente seguro que seja resiliente a ataques e possa detectar e responder rapidamente a quaisquer incidentes de segurança. &lt;/p&gt;

&lt;p&gt;Se um invasor externo derrubar uma linha de defesa ou uma ameaça interna comprometer parte da rede de uma organização, outras medidas de segurança podem ajudar a limitar e mitigar os danos a toda a rede. &lt;/p&gt;

&lt;h3&gt;
  
  
  1.2 Pilares
&lt;/h3&gt;

&lt;p&gt;Existem três partes principais de qualquer estratégia de defesa em profundidade, que são:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Controles físicos&lt;/strong&gt;: medidas de segurança que impedem o acesso físico a sistemas de TI, como vigilância, câmeras de segurança, leitores de impressão digital e portas trancadas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Controles técnicos&lt;/strong&gt;: medidas de segurança que protegem a segurança da rede e outros recursos de TI usando hardware e software, como sistemas de proteção contra intrusões, firewalls de aplicativos web (&lt;a href="https://dev.to/brmartin/waf-o-que-e-e-qual-sua-funcao-4dhf"&gt;WAF&lt;/a&gt;), gerenciamento de configurações, proxy, scanners da web, gestão de identidades e acessos, antivírus e anti-malwares, sistemas de prevenção de perda de dados, sistemas de autenticação de dois fatores, biometria, gerenciadores de senhas, redes privadas virtuais, criptografia de dados, sistemas de backups etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Controles administrativos&lt;/strong&gt;: medidas de segurança que se referem às políticas e procedimentos direcionados aos funcionários de uma organização e seus fornecedores e parceiros comerciais. Os exemplos incluem: políticas de privacidade e proteção de dados, gerenciamento de riscos de colaboradores terceiros, parceiros comerciais e fornecedores, políticas de treinamento e conscientização de segurança, adoção de metodologias para promover a melhoria contínua e garantir as melhores práticas etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lpAxVFcf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1679189t3sreamoph8i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lpAxVFcf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1679189t3sreamoph8i.png" alt="controles de segurança" width="482" height="476"&gt;&lt;/a&gt;&lt;br&gt;
Img/Fonte: Imperva&lt;/p&gt;

&lt;h3&gt;
  
  
  1.3 Segurança em camadas
&lt;/h3&gt;

&lt;p&gt;A segurança em camadas refere-se ao uso de vários produtos e práticas de segurança para proteger uma organização contra um vasto spectrum de ameaças físicas e cibernéticas.&lt;/p&gt;

&lt;p&gt;No geral, uma arquitetura de defesa em profundidade é composta por sete camadas de proteção.&lt;/p&gt;

&lt;p&gt;1- &lt;strong&gt;Política, procedimentos e conscientização&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Trata-se da camada responsável por implementar as políticas e os procedimentos que irão governar as práticas de segurança da informação e segurança cibernética de uma empresa, bem como as ações de conscientização, treinamento e educação dessas práticas em geral que deverão ser seguidas e desempenhadas por todos os funcionários, fornecedores e parceiros comerciais da empresa.&lt;/p&gt;

&lt;p&gt;2- &lt;strong&gt;Segurança física&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Considerada a primeira barreira de proteção de uma infraestrutura de TI, a camada de segurança física tem como objetivo garantir que as ameaças não tenham acesso físico aos ativos tangíveis, como pessoas, servidores, desktops, dispositivos de rede – switches, roteadores, racks de telecomunicação, racks de redes – path panels, painéis de controle elétricos, painéis de controle de climatização, dispositivos de armazenamento de dados e outros recursos valiosos.&lt;/p&gt;

&lt;p&gt;3- &lt;strong&gt;Segurança de perímetro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A camada segurança de perímetro, tem como objetivo implementar a proteção necessária entre o ambiente  externo e a infraestrutura de TI interna da empresa. A defesa de perímetro permite a entrada de dados autorizados, bloqueando o tráfego suspeito.&lt;/p&gt;

&lt;p&gt;Esta camada é composta por mecanismos e ferramentas de proteção de borda tais como: roteadores, switches layer 3, appliances de firewall, sistemas de IDS e IPS e sistemas DLPs. Além de esquemas como DMZ – zonas desmilitarizadas de rede, sistemas de proxy e conversão de endereços de rede (NAT), VPN, dentre outras tecnologias de proteção.&lt;/p&gt;

&lt;p&gt;4- &lt;strong&gt;Segurança de rede interna&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A camada de segurança de rede interna deve possuir mecanismos e ferramentas de proteção capazes de lidar com a identidade e autenticação dos usuários da rede, autorizando ou não, o acesso destes usuários aos recursos computacionais e de redes disponíveis na infraestrutura de TI, protegendo os dados e informações que navegam pela rede, além de outros mecanismos e ferramentas que exerçam funções relacionadas a filtros que permitam analisar de forma consistente todos os pacotes de dados que circulam pela mesma. &lt;/p&gt;

&lt;p&gt;5- &lt;strong&gt;Segurança de host&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A camada de segurança de host, concentra-se em manter a proteção dos hosts (computadores, notebooks, smartphones, servidores, etc) e respectivamente dos sistemas operacionais que controlam estes hosts.&lt;/p&gt;

&lt;p&gt;Para manter a segurança dos hosts fortalecida algumas ações são importantes. Atualização dos sistemas operacionais, remoção de funcionalidades e recursos desnecessários e redução da superfície de ataque.&lt;/p&gt;

&lt;p&gt;6- &lt;strong&gt;Segurança da aplicação&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A camada de segurança aplicação tem como objetivo garantir a segurança e proteção de aplicativos, sistemas de informação e demais outras aplicações contra diversas ameaças.&lt;/p&gt;

&lt;p&gt;7- &lt;strong&gt;Segurança de dados&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Trata-se da camada de segurança mais profunda da estratégia de defesa em profundidade e tem como principal objetivo proteger um dos ativos de TI mais valiosos que a empresa possui, os “dados”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hJkwf394--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tky852ciz26ai0b54vbx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hJkwf394--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tky852ciz26ai0b54vbx.png" alt="segurança em camadas" width="776" height="300"&gt;&lt;/a&gt; Img/Fonte: TechTarget&lt;/p&gt;

&lt;h3&gt;
  
  
  1.4 Segurança integrada
&lt;/h3&gt;

&lt;p&gt;Garante que vários produtos de segurança funcionem entre si para melhorar sua capacidade de detectar e mitigar ameaças. Uma estratégia de segurança pode ser em camadas, mas não integrada, enquanto uma estratégia de segurança integrada é em camadas por natureza.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Fazendo uma analogia (relembrando minha época de aviação)
&lt;/h2&gt;

&lt;p&gt;Em segurança da aviação aborda-se com frequência o &lt;strong&gt;modelo do queijo suíço&lt;/strong&gt;, que vejo ter importância também na segurança cibernética. &lt;/p&gt;

&lt;p&gt;No modelo do queijo suíço, as defesas de uma organização contra falhas são modeladas como uma série de barreiras, representadas como fatias (camadas, na defesa em profundidade) de queijo e, quanto mais fatias há, mais segurança haverá. &lt;/p&gt;

&lt;p&gt;Porém, orifícios (vulnerabilidades) nas fatias de queijo representam pontos fracos individuais em partes individuais do sistema e variam continuamente em tamanho e posição em todas as fatias. Quando esses orifícios se alinham, ocorre o acidente (em segurança cibernética, o vazamento de dados, exploit, etc).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YyK4zk4R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wtnzdllfhqjj60bfrk8k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YyK4zk4R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wtnzdllfhqjj60bfrk8k.png" alt="modelo do queijo suíço" width="863" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;James Reason propõe que todo perigo possui barreiras e salvaguardas, e que na ocasião de um acidente é importante detectar como e porque estas barreiras falharam.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;Conforme visto acima, introduzir mecanismos e ferramentas de proteção em camadas e de forma integrada são essenciais para a manutenção da disponibilidade, integridade e confidencialidade dos ativos de uma organização. Não é possível acabar com as ameaças, mas mitigar seus efeitos ou eliminar as vulnerabilidades cabe à organização.&lt;/p&gt;

&lt;p&gt;Como você trata ou trataria esse tema na sua empresa? Deixe aqui nos comentários.&lt;/p&gt;

&lt;p&gt;Até o próximo artigo!&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>cybersecurity</category>
      <category>devsecops</category>
    </item>
    <item>
      <title>Conhecendo a Área de Segurança Cibernética</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Tue, 07 Mar 2023 14:26:49 +0000</pubDate>
      <link>https://forem.com/brmartin/conhecendo-a-area-de-seguranca-cibernetica-p0o</link>
      <guid>https://forem.com/brmartin/conhecendo-a-area-de-seguranca-cibernetica-p0o</guid>
      <description>&lt;p&gt;Resolvi publicar esse texto para ajudar a esclarecer algumas dúvidas de pessoas que se interessam por segurança cibernética, mas não sabem exatamente qual caminho seguir.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. O que é segurança cibernética?
&lt;/h2&gt;

&lt;p&gt;A segurança cibernética é a prática de proteger computadores, redes, aplicações de software, sistemas essenciais e dados de possíveis ameaças digitais.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Cpqy_k2Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j9ukvyndgg95j7nj8byy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cpqy_k2Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j9ukvyndgg95j7nj8byy.png" alt="Image description" width="419" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1.1 Sub áreas
&lt;/h3&gt;

&lt;p&gt;A área de segurança cibernética é muito ampla e se relaciona com diversas outras áreas. A &lt;a href="https://niccs.cisa.gov/workforce-development/nice-framework"&gt;National Cybersecurity Workforce&lt;/a&gt; Framework categoriza o trabalho da segurança cibernética em sete categorias. E dentro de cada categoria encontraremos várias áreas de especialização.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Operar e manter&lt;/strong&gt; inclui proporcionar o suporte, a administração e a manutenção necessários para garantir a segurança e o desempenho do sistema de TI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proteger e defender&lt;/strong&gt; inclui a identificação, a análise e a mitigação de ameaças a sistemas internos e a redes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Investigar&lt;/strong&gt; inclui a investigação de evento e/ou crimes digitais que envolvem recursos de TI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coletar e operar&lt;/strong&gt; inclui as operações de negação e fraude especializadas e a coleta de informações de segurança cibernética.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analisar&lt;/strong&gt; área responsável pela revisão e avaliação altamente especializadas da entradda de informações de segurança digital para determinar sua utilidade para a inteligência.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supervisionar e governar&lt;/strong&gt; proporciona liderança, gestão e orientação para realizar o trabalho de segurança cibernética de forma eficaz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provisionar de forma segura&lt;/strong&gt; inclui a conceitualização, o projeto e a construções de sistemas de TI seguros.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.2 Roadmaps
&lt;/h3&gt;

&lt;p&gt;Roadmaps são meios interessantes de se buscar tópicos de estudo e iniciar a busca por conhecimento na área. Mas é importante entender qual especialização você deseja buscar para ser mais assertivo na hora de estudar.&lt;/p&gt;

&lt;p&gt;Sei que pode ser difícil tomar essa decisão no início, por isso compartilho abaixo dois links de roadmaps elaborados pela comunidade que podem auxiliar.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://roadmap.sh/cyber-security"&gt;Cyber Security Roadmap&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://michelleamesquita.medium.com/roadmap-para-devsecops-394a998a23b7"&gt;Roadmap para DevSecOps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1.3 Certificações
&lt;/h3&gt;

&lt;p&gt;Outra forma de traçar uma rota de estudos e aprofundar conhecimento é através das certificações. O setor de TI estabeleceu padrões para que os especialistas em segurança cibernética obtenham certificações profissionais que fornecem provas das qualificações profissionais e do nível de conhecimento. Na minha opinião, mais importante que obter a própria certificação será o conhecimento adquirido e especializado.&lt;/p&gt;

&lt;p&gt;Abaixo você pode verificar um repositório da comunidade DevSecOps Global, onde pude contribuir, que contém algumas certificações importantes na área de DevSecOps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/DevSecOps-Global/Certifications-Guide"&gt;Certifications Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Busque também aprendizado gratuito através da Cisco e seu programa de &lt;a href="https://www.cisco.com/c/m/pt_br/brasil-digital-e-inclusivo/cibereducacao/aluno.html?mkt_tok=MDU5LVZGWi04MzQAAAGKVfz3WGFJKzZ19CKIrPdGpAKMQxrcXTBQa10ZHQfb1Offki0UN2gzNQlQqeV8hHHnzQYnSuDe82_N1yIL7T8v5M0VXQjc5Ij_QEkLUVWI0lMv3VU"&gt;CiberEducação&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.4 Junte-se a organizações profissionais
&lt;/h3&gt;

&lt;p&gt;Participe de organizações de segurança da informação, participe de reuniões e conferências, participe de fóruns e blogs para obter conhecimento com os especialistas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Confundi?
&lt;/h2&gt;

&lt;p&gt;Posso ter confundindo ainda mais alguns, mas como disse lá em cima, é uma área muito ampla e com diversos caminhos distintos que podem ser seguidos, desde algo mais relacionado a desenvolvimento de sistemas, passando por redes, hardwares, fraudes e até mesmo atividades de conscientização.&lt;/p&gt;

&lt;p&gt;Se tiver alguma dúvida, quiser ajuda para buscar alguma informação ou dar uma sugestão, deixe aqui nos comentários abaixo. &lt;/p&gt;

&lt;p&gt;Até o próximo artigo! &lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>cybersecurity</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>WAF: o que é e qual sua função</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Thu, 02 Mar 2023 21:53:42 +0000</pubDate>
      <link>https://forem.com/brmartin/waf-o-que-e-e-qual-sua-funcao-4dhf</link>
      <guid>https://forem.com/brmartin/waf-o-que-e-e-qual-sua-funcao-4dhf</guid>
      <description>&lt;p&gt;O &lt;em&gt;Web Application Firewall&lt;/em&gt; é uma ferramenta utilizada para ajudar a proteger os aplicativos web, formando uma camada de proteção, atuando na camada 7 (camada de aplicação) do modelo OSI, ou seja, ele fica &lt;strong&gt;localizado entre a aplicação e a internet&lt;/strong&gt;. Sua principal função é fornecer segurança, garantindo que determinadas ações de chamadas, sejam elas de entradas ou saídas, sejam barradas de acordo com as regras pré-definidas. &lt;/p&gt;

&lt;p&gt;O WAF funciona como um &lt;em&gt;proxy&lt;/em&gt; reverso que protege o servidor contra exposição, garantindo que nenhum cliente se comunique diretamente com esse, gerando os logs, realizando o balanceamento de carga e fazendo uma proteção a mais da rede. Ou seja, ele  &lt;strong&gt;monitorara, filtra e bloqueia automaticamente o tráfego de dados maliciosos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os WAFs protegem as aplicações voltadas para a Internet contra ataques como resultado da inteligência integrada contra ameaças que agrega várias fontes e regras de detecção do Open Web Application Security Project (OWASP)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GDdiXJIQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5nvx4bg7cahjt23pui4q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GDdiXJIQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5nvx4bg7cahjt23pui4q.png" alt="representação de uma rede com WAF" width="880" height="398"&gt;&lt;/a&gt;(Fonte: CloudFlare)&lt;/p&gt;

&lt;p&gt;Um WAF pode operar com uma lista de bloqueio protegendo contra ataques conhecidos. Chamamos essa forma de Modelo de Segurança Negativo. Em contrapartida há o Modelo de Segurança Positivo que opera com uma lista de permissões.&lt;/p&gt;

&lt;p&gt;Existem 3 tipos de WAF:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WAFs de rede -&amp;gt; Geralmente é um hardware instalado localmente.&lt;/li&gt;
&lt;li&gt;WAFs de host -&amp;gt; Baseado em hospedagem que pode ser integrado ao software e traz como vantagem uma maior possibilidade de personalização com um custo baixo.&lt;/li&gt;
&lt;li&gt;WAFs na nuvem -&amp;gt; Os WAFs hospedados na nuvem geralmente são administrados pelos provedores do serviço.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sugestão
&lt;/h2&gt;

&lt;p&gt;Para um melhor entendimento sobre WAF é importante conhecer as camadas de protocolos, modelos OSI e TCP/IP, onde cada uma (camada) desempenha uma determinada função.&lt;/p&gt;

&lt;p&gt;Se ficou alguma dúvida, deixe nos comentários.&lt;/p&gt;

&lt;p&gt;Até o próximo!&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>appsec</category>
      <category>cybersecurity</category>
      <category>rede</category>
    </item>
    <item>
      <title>Modelagem de Ameaças -Decompondo o Aplicativo</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Sun, 26 Feb 2023 21:27:35 +0000</pubDate>
      <link>https://forem.com/appsec_brasil/modelagem-de-ameacas-decompondo-o-aplicativo-cbk</link>
      <guid>https://forem.com/appsec_brasil/modelagem-de-ameacas-decompondo-o-aplicativo-cbk</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TL:DR&lt;br&gt;
Neste artigo utilizei um aplicativo que estou desenvolvendo academicamente para praticar a modelagem de ameaças e exemplificar a teoria ao longo do texto. Essa primeira etapa da Modelagem corresponde à decomposição do sistema.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Etapa 1: Decompor o aplicativo
&lt;/h2&gt;

&lt;p&gt;Existem muitas vulnerabilidades e ameaças possíveis e é improvável que seu aplicativo encontre todos eles. Também é improvável que sua empresa precise abordar todos eles. A modelagem de ameaças ajuda a identificar onde sua equipe precisa concentrar esforços.&lt;/p&gt;

&lt;p&gt;Todos os desenvolvedores, designers de software e arquitetos devem se esforçar para incluir a modelagem de ameaças em todo ciclo de vida de desenvolvimento de software. &lt;strong&gt;Mas primeiramente concentre-se no que você está trabalhando no momento.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eu utilizarei para estudo prático um aplicativo Fintech, voltado para usuários que desejam planejar de forma flexível seus orçamentos e gerenciar o dia a dia de suas finanças, que estou desenvolvendo academicamente.&lt;/p&gt;

&lt;p&gt;Dito isso, é importante que se decomponha todo o sistema e faça perguntas para que se encontre onde as vulnerabilidades se encontram. A primeira etapa no processo de modelagem de ameaças se preocupa em entender o aplicativo e como ele interage com as entidades externas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Identifique o design do aplicativo
&lt;/h3&gt;

&lt;p&gt;Entender o design do aplicativo é fundamental para realizar a modelagem de ameaças. Se você estiver muito familiarizado com o design do aplicativo, poderá identificar fluxos de dados adicionais e limites de confiança em todo o processo de modelagem de ameaças.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Identifique os casos de uso, defina os pontos de entrada do aplicativo e os níveis de confiança, mesmo que permaneçam inalterados como resultado do projeto.&lt;/li&gt;
&lt;li&gt; Identifique atores, ativos, serviços, funções e fontes de dados.&lt;/li&gt;
&lt;li&gt; Documente a movimentação de dados (em movimento e em repouso) via Diagrama de Fluxo de Dados. &lt;/li&gt;
&lt;li&gt; Documente todos os dados trocados e sua classificação.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uma compreensão completa de como o sistema foi projetado também o ajudará a avaliar a probabilidade e o impacto potencial de qualquer ameaça específica que você identificar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decomponha e modele o aplicativo
&lt;/h2&gt;

&lt;p&gt;É importante que se tome nota do processo para que em um eventual momento se possa consultar o que foi feito. Baseado no Processo de Modelagem de Ameaças da OWASP, iniciamos a documentação com a etapa 1 - decompondo o aplicativo, conforme segue abaixo:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Informações de identificação
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Nome do Sistema&lt;/strong&gt; : O nome do aplicativo examinado.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Versão do aplicativo&lt;/strong&gt; : A versão do aplicativo examinado.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Descrição&lt;/strong&gt; : Uma descrição de alto nível do aplicativo.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Proprietário do documento&lt;/strong&gt; : o proprietário do documento de modelagem de ameaças.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Participantes&lt;/strong&gt; : os participantes envolvidos no processo de modelagem de ameaças para este aplicativo.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Revisor&lt;/strong&gt; : O(s) revisor(es) do modelo de ameaça.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemplo prático:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Nome: ContabiLivre&lt;/li&gt;
&lt;li&gt;Versão: v0.1&lt;/li&gt;
&lt;li&gt;Descrição: Aplicativo web de planejamento financeiro pessoal, capacitado com sincronização de saldo bancário e despesas de cartão de crédito.&lt;/li&gt;
&lt;li&gt;Proprietário do documento: Bruno Martins&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Os ítens 4 e 5 não foram preenchidos pois pratiquei sozinho e não tive a oportunidade de ter um revisor. Porém são dois ítens de extrema importância para uma boa elaboração do modelo de ameaças.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Dependências externas
&lt;/h3&gt;

&lt;p&gt;Dependências externas são itens externos ao código do aplicativo que podem representar uma ameaça ao aplicativo.&lt;/p&gt;

&lt;p&gt;As dependências externas devem ser documentadas da seguinte forma:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;ID&lt;/strong&gt; : um ID exclusivo atribuído à dependência externa.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Descrição&lt;/strong&gt; : uma descrição textual da dependência externa.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemplo prático:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Tela de login do usuário através de um browser onde autenticará seus dados para acesso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Acesso ao banco de dados com informações do perfil&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;API de conexão com saldo bancário&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;API de conexão com cartão de crédito&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  3. Pontos de entrada
&lt;/h3&gt;

&lt;p&gt;Os pontos de entrada definem as interfaces por meio das quais invasores em potencial podem interagir com o aplicativo ou fornecer dados a ele.&lt;/p&gt;

&lt;p&gt;Os pontos de entrada devem ser documentados da seguinte forma:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;ID&lt;/strong&gt; : Um ID exclusivo atribuído ao ponto de entrada. Isso será usado para fazer referência cruzada do ponto de entrada com quaisquer ameaças ou vulnerabilidades identificadas. &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Nome&lt;/strong&gt; : um nome descritivo que identifica o ponto de entrada e sua finalidade.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Descrição&lt;/strong&gt; : Uma descrição textual detalhando a interação ou processamento que ocorre no ponto de entrada.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Níveis de confiança&lt;/strong&gt; : o nível de acesso necessário no ponto de entrada. Eles serão cruzados com os níveis de confiança definidos posteriormente no documento.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemplo prático:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Nome&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Nivel de Confiança&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Login&lt;/td&gt;
&lt;td&gt;Tela de acesso ao perfil do usuário.&lt;/td&gt;
&lt;td&gt;Request HTTP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Acesso ao Banco de Dados&lt;/td&gt;
&lt;td&gt;Armazenamento de dados dos usuários&lt;/td&gt;
&lt;td&gt;O time de desenvolvimento tem credenciais de acesso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Utilização do App&lt;/td&gt;
&lt;td&gt;Manuseio e utilização das informações contidas no aplicativo&lt;/td&gt;
&lt;td&gt;Qualquer pessoa que tiver acesso ao telefone da pessoa pode mexer no app.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  4. Pontos de saída
&lt;/h3&gt;

&lt;p&gt;Em muitos casos, as ameaças habilitadas pelos pontos de saída estão relacionadas às ameaças do ponto de entrada correspondente. Muitas vezes poderá, inclusive, ter múltiplas saídas, uma vez que a interação com o ponto de entrada pode mudar.&lt;/p&gt;

&lt;p&gt;Exemplo prático:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID Entrada&lt;/th&gt;
&lt;th&gt;Ponto de Saída&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Response HTTP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;O acesso é somente leitura, a única pessoa que faz alterações no banco é quem cuida dos bancos de dados.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Caso faça login, o app receberá o token de sessão e armazenará ele.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Se você já tiver o código do aplicativo e tiver conhecimento técnico total sobre o funcionamento do mesmo, também poderá indicar os pontos de entrada e sáida conforme abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ID Entrada: 1
Descrição Entrada:
GET /usuario/$ID_USUARIO/perfil-usuário HTTP/1.1
Host: contabilivre.com.br

Authorization: $TOKEN_DE_SESSAO

Descrição Saída:
    HTTP/1.1 200 OK
    Content-Type: text/html

    $HTML_PERFIL_USUARIO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Ativos
&lt;/h3&gt;

&lt;p&gt;O sistema deve ter algo que interesse ao invasor e esses itens ou áreas de interesse são definidos como ativos. Os ativos são essencialmente os alvos dos invasores, ou seja, são a razão pela qual as ameaças existirão.&lt;/p&gt;

&lt;p&gt;Os ativos envolvidos no fluxo de informações devem ser definidos e avaliados quanto ao seu valor de confidencialidade, integridade e disponibilidade.&lt;/p&gt;

&lt;p&gt;Os ativos são documentados no modelo de ameaça da seguinte forma:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;ID&lt;/strong&gt; : Um ID exclusivo é atribuído para identificar cada ativo. Isso será usado para fazer referência cruzada do ativo com quaisquer ameaças ou vulnerabilidades identificadas.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Nome&lt;/strong&gt; : um nome descritivo que identifica claramente o ativo.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Descrição&lt;/strong&gt; : uma descrição textual do que é o recurso e por que ele precisa ser protegido.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Níveis de confiança&lt;/strong&gt; : o nível de acesso necessário para acessar o ponto de entrada é documentado aqui. Eles serão cruzados com os níveis de confiança definidos na próxima etapa.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Considere dados em trânsito e dados em repouso
&lt;/h3&gt;

&lt;p&gt;Embora os dados em repouso às vezes sejam considerados menos vulneráveis ​​do que os dados em trânsito, os invasores geralmente consideram os dados em repouso um alvo mais valioso do que os dados em movimento. &lt;/p&gt;

&lt;p&gt;Proteger dados confidenciais em trânsito e em repouso é fundamental para as empresas modernas, pois os invasores encontram maneiras cada vez mais inovadoras de comprometer os sistemas e roubar dados.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Níveis de confiança
&lt;/h3&gt;

&lt;p&gt;Os níveis de confiança representam os direitos de acesso que o aplicativo concederá a entidades externas.&lt;/p&gt;

&lt;p&gt;Os níveis de confiança são documentados no modelo de ameaça da seguinte forma:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;ID&lt;/strong&gt; : Um número exclusivo é atribuído a cada nível de confiança. Isso é usado para fazer referência cruzada do nível de confiança com os pontos de entrada e ativos.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Nome&lt;/strong&gt; : um nome descritivo que permite identificar as entidades externas que receberam esse nível de confiança.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Descrição&lt;/strong&gt; : Uma descrição textual do nível de confiança detalhando a entidade externa que recebeu o nível de confiança.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemplo prático:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Nome&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Usuário&lt;/td&gt;
&lt;td&gt;Proprietário do perfil logado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Credenciais de Acesso ao Banco de Dados&lt;/td&gt;
&lt;td&gt;Usuário e senha compartilhado com o time de desenvolvimento para acesso ao banco, possui permissão de leitura e escrita.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Desenvolvedores(as)&lt;/td&gt;
&lt;td&gt;Equipe técnica com acesso ao ambiente para modificar ou corrigir o sistema.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Acesso SSH ao servidor&lt;/td&gt;
&lt;td&gt;Precisamos rever como é esse acesso. Mas sabemos que o sistema de versionamento o usa para publicar o sistema.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  7. Diagramas de fluxo de dados
&lt;/h3&gt;

&lt;p&gt;Todas as informações coletadas nos permitem modelar com precisão o aplicativo por meio do uso de Diagramas de Fluxo de Dados ( DFDs ). Os DFDs nos permitirão entender melhor o aplicativo, fornecendo uma representação visual de como o aplicativo processa os dados.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ai4k5tjS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2n0bvphnugylswf1pwx7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ai4k5tjS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2n0bvphnugylswf1pwx7.png" alt="Diagrama de fluxo de dados" width="880" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A quantidade de informações a serem incluídas no diagrama de fluxo de dados depende de alguns fatores-chave:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tipo de sistema que você está construindo - Os sistemas que não lidam com dados confidenciais ou são usados apenas internamente podem não precisar de tanto contexto quanto um sistema externo.&lt;/li&gt;
&lt;li&gt;Contexto necessário de sua equipe de segurança - As equipes de segurança são precisas com o que procuram nos modelos de ameaças. Fale com sua equipe de segurança para confirmar a camada de profundidade necessária.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Considerações Finais
&lt;/h3&gt;

&lt;p&gt;Existem algumas metodologias para modelar as ameaças a um sistema e cabe a cada equipe definir qual a mais apropriada para o caso.&lt;/p&gt;

&lt;p&gt;No próximo artigo seguirei no Threat Modeling Process da OWASP com a etapa 2: determinar e classificar as ameaças.&lt;/p&gt;

&lt;p&gt;Até lá.&lt;/p&gt;




&lt;h4&gt;
  
  
  Referências:
&lt;/h4&gt;

&lt;p&gt;Threat Modeling Process OWASP&lt;br&gt;
Curso de Modelagem de ameaças: identifique riscos na concepção do software - Alura&lt;br&gt;
O papel do dev no processo de modelagem de ameaças | Izabela Matos - AppSec to Go&lt;br&gt;
Curso Learning Threat Modeling for Security Professionals - LinkedIn Learning&lt;br&gt;
Threat Modeling in 2021 with Adam Shostack - DevSecCon (Youtube)&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>threatmodeling</category>
      <category>security</category>
      <category>appsec</category>
    </item>
    <item>
      <title>Terminologias Utilizadas em Modelagem de Ameaças</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Sat, 25 Feb 2023 15:11:37 +0000</pubDate>
      <link>https://forem.com/appsec_brasil/terminologias-utilizadas-em-modelagem-de-ameacas-19dm</link>
      <guid>https://forem.com/appsec_brasil/terminologias-utilizadas-em-modelagem-de-ameacas-19dm</guid>
      <description>&lt;p&gt;Em modelagem de ameaças utilizam-se algumas terminologias que podem não ser familiares para alguns profissionais, principalmente em início de carreira. Por isso achei útil compartilhar o guia abaixo:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ameaça&lt;/strong&gt; - Uma pessoa ou coisa que toma medidas para explorar (ou fazer uso de) as vulnerabilidades do sistema de uma organização-alvo, como parte de atingir ou promover sua meta ou objetivos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atacante&lt;/strong&gt;: Quem realizou o ataque. Neste caso, o criminoso que invadiu o sistema e roubou os dados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ataque&lt;/strong&gt; - Pode ser real ou hipotético, com base em possíveis ações ou ataques tentados por um cibercriminoso, como um ataque à rede da sua empresa. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ativo&lt;/strong&gt; - Coisas importantes para você, informações confidenciais. Por exemplo, dados PCI ou PII. Um ativo é algo que precisa de proteção.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Biblioteca de conteúdo&lt;/strong&gt; - Uma base de conhecimento de padrões de risco, onde cada padrão consiste em um grupo lógico de ameaças de segurança, pontos fracos e contramedidas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contramedidas&lt;/strong&gt; - Ações que podem ser implementadas para mitigar o impacto ou a probabilidade de uma ameaça.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Controles&lt;/strong&gt; - São salvaguardas ou contramedidas que você implementa para evitar, detectar, neutralizar ou minimizar possíveis ameaças contra suas informações, sistemas ou outros ativos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Componentes&lt;/strong&gt; - Partes que compõem a representação como uma instância do EC2 ou uma API ou ainda uma função dentro de uma aplicação web. Os componentes podem ser aninhados uns nos outros.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit&lt;/strong&gt;: Conjunto de técnicas e tecnologia que explora uma vulnerabilidade.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fluxos de dados&lt;/strong&gt; - Como as informações e os ativos se movem entre os componentes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Insider:&lt;/strong&gt; Alguém interno que pode colaborar com o atacante para vazar informações ou comprometer a empresa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impacto&lt;/strong&gt; - É uma medida do dano potencial causado por uma ameaça específica. Dependendo do negócio em que você atua, os ataques que expõem as informações do usuário podem resultar em uma ameaça física de dano ou perda de vida para seus usuários, aumentando consideravelmente o impacto das ameaças que permitiriam tal exposição.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Metadados do projeto&lt;/strong&gt; - Nome, identificador, descrição, proprietário da coisa que você está modelando como ameaça.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mitigações&lt;/strong&gt; - São controles implementados para reduzir a probabilidade ou o impacto de uma ameaça, embora não necessariamente a impeçam completamente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modelo -&lt;/strong&gt; Os modelos podem ser criados do zero ou gerados a partir de projetos pré-existentes para agilizar a criação de futuros modelos de ameaças. Os modelos costumam ser usados ​​para fornecer o esqueleto de um modelo de ameaça para dar aos colegas uma vantagem inicial na análise do diagrama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Padrões&lt;/strong&gt; - Cada setor e país tem seus próprios padrões a serem seguidos ou considerados, desde saúde e finanças até organizações governamentais, como por exemplo o RGPD. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pontuação de risco&lt;/strong&gt; - Uma métrica para avaliar o nível de risco do seu negócio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Probabilidade&lt;/strong&gt; - É uma medida da possibilidade de uma ameaça ser realizada. Uma variedade de fatores pode impactar a probabilidade de uma ameaça ser executada, incluindo quão difícil é a implementação da ameaça e quão gratificante seria para o invasor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RBAC/Role Based Access Controls&lt;/strong&gt; - Um meio de restringir o acesso a usuários com base em suas funções, como Admin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Representações&lt;/strong&gt; - Uma perspectiva sobre o que está sendo modelado como ameaça, por exemplo, diagrama de arquitetura, diagrama de fluxo de dados, código-fonte, JIRA, interface do usuário.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relatórios&lt;/strong&gt; - Periodicamente, ao longo do ciclo de vida de um projeto, as equipes podem querer gerar relatórios executivos para capacitar internamente e fornecer às partes interessadas as informações de que precisam. Eles podem ser gerados para vários casos de uso, como um resumo de conformidade ou um relatório detalhado de todas as contramedidas identificadas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risco&lt;/strong&gt; - Riscos são a combinação de uma ameaça e uma vulnerabilidade. Da-se o nome de risco a potencial perda, dano ou destruição de qualquer coisa que seja valiosa para a empresa, como um sistema, reputação, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust Zone&lt;/strong&gt; - Os diferentes níveis de segurança e confiança. Internet x Web x App x Camada de dados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unidade de negócios&lt;/strong&gt; - Um grupo de usuários e produtos dentro do sistema. Com permissões básicas, os usuários têm acesso apenas aos Produtos que estão em sua Unidade de Negócios e limitados à função que lhes foi atribuída.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Versionamento&lt;/strong&gt; - O versionamento consiste em estratégias para gerenciar as diferentes versões de um código, de um sistema ou de um modelo. É uma forma de administrar as mudanças que são feitas e de garantir mais segurança na transição de uma versão para outra.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Vulnerabilidade&lt;/strong&gt; - uma fraqueza ou brecha em um de nossos sistemas que pode ser explorado por um atacante e causar danos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Caso você tenha alguma sugestão de terminologia que não encontrou na lista acima, por favor, deixe nos comentários.&lt;/p&gt;

&lt;p&gt;Você também pode ler mais sobre &lt;a href="https://dev.to/brmartin/principios-de-seguranca-cibernetica-3p4d"&gt;fundamentos de segurança cibernética&lt;/a&gt; em outro post que publiquei por aqui. &lt;/p&gt;

</description>
      <category>threatmodeling</category>
      <category>security</category>
      <category>braziliandevs</category>
      <category>appsec</category>
    </item>
    <item>
      <title>Modelagem de Ameaças - Introdução</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Wed, 22 Feb 2023 21:43:09 +0000</pubDate>
      <link>https://forem.com/appsec_brasil/modelagem-de-ameacas-parte-1-43k6</link>
      <guid>https://forem.com/appsec_brasil/modelagem-de-ameacas-parte-1-43k6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TL:DR&lt;br&gt;
Neste artigo compartilho uma introdução à Modelagem de Ameaças, a partir dos meus estudos sobre o tema.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Objetivos da Modelagem de Ameaças
&lt;/h2&gt;

&lt;p&gt;Entender quem são seus "inimigos". O que os motiva e quais são seus objetivos.&lt;br&gt;
Conhecer bem o seu próprio sistema.&lt;br&gt;
Criar camadas de proteção.&lt;br&gt;
Mitigar os riscos.&lt;/p&gt;

&lt;p&gt;Corrigir um problema de segurança &lt;strong&gt;depois&lt;/strong&gt; que o produto está desenvolvido e em produção pode &lt;strong&gt;custar centenas de vezes mais&lt;/strong&gt; que prevenir ele em sua construção.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visão Geral
&lt;/h2&gt;

&lt;p&gt;A modelagem de ameaças é uma representação estruturada de todas as informações que afetam a segurança de um aplicativo, analisando através da perspectiva de um invasor em potencial, em oposição ao ponto de vista de um defensor. Em essência, é uma visão do aplicativo e seu ambiente pelas lentes da segurança.&lt;/p&gt;

&lt;p&gt;Um modelo de ameaça geralmente inclui:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Descrição do assunto a ser modelado&lt;/li&gt;
&lt;li&gt;  Suposições que podem ser verificadas ou contestadas no futuro conforme mudanças no cenário de ameaças&lt;/li&gt;
&lt;li&gt;  Ameaças potenciais ao sistema&lt;/li&gt;
&lt;li&gt;  Ações que podem ser tomadas para mitigar cada ameaça&lt;/li&gt;
&lt;li&gt;  Uma forma de validação do modelo e ameaças, e verificação do sucesso das ações tomadas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O processo de modelagem de ameaças pode ser decomposto em três etapas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Decompor o aplicativo&lt;/li&gt;
&lt;li&gt;Determinar e Classificar as Ameaças&lt;/li&gt;
&lt;li&gt;Determinar contramedidas e mitigação&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Modelagem de ameaças em todo o ciclo de vida
&lt;/h2&gt;

&lt;p&gt;A modelagem de ameaças é melhor &lt;strong&gt;aplicada continuamente&lt;/strong&gt; ao longo de um projeto de desenvolvimento de software. O processo é essencialmente o mesmo em diferentes níveis de abstração, embora as informações fiquem cada vez mais granulares ao longo do ciclo de vida. &lt;/p&gt;

&lt;p&gt;Idealmente, um modelo de ameaça de alto nível deve ser definido no início do conceito ou fase de planejamento e, em seguida, refinado ao longo do ciclo de vida. À medida que mais detalhes são adicionados ao sistema, novos vetores de ataque são criados e expostos. O processo contínuo de modelagem de ameaças deve examinar, diagnosticar e abordar essas ameaças.&lt;/p&gt;

&lt;p&gt;A atualização dos modelos de ameaças é aconselhável após eventos como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Um novo recurso é lançado&lt;/li&gt;
&lt;li&gt;  Ocorre um incidente de segurança&lt;/li&gt;
&lt;li&gt;  Mudanças arquitetônicas ou de infraestrutura&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A estrutura de quatro perguntas a seguir pode ajudar a organizar a modelagem de ameaças:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Em que estamos trabalhando? =&amp;gt; &lt;strong&gt;Avalie o escopo&lt;/strong&gt; - Isso pode ser tão pequeno quanto um sprint ou tão grande quanto um sistema inteiro.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O que pode dar errado? =&amp;gt; &lt;strong&gt;Identifique o que pode dar errado&lt;/strong&gt; - Isso pode ser tão simples quanto um brainstorm ou tão estruturado quanto usar STRIDE, Kill Chains ou Attack Trees.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O que você irá fazer sobre isso? =&amp;gt; &lt;strong&gt;Identifique contramedidas ou gerencie riscos&lt;/strong&gt; - Decida o que você fará com cada ameaça. Isso pode ser para implementar uma mitigação ou aplicar as abordagens aceitar/transferir/eliminar do gerenciamento de riscos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fizemos um bom trabalho? =&amp;gt; &lt;strong&gt;Avalie seu trabalho&lt;/strong&gt; - Você fez um trabalho bom o suficiente para o sistema em questão?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Considerações Finais
&lt;/h2&gt;

&lt;p&gt;Esse artigo foi uma introdução sobre Modelagem de Ameaças, que terá continuidade nas próximas publicações com os temas Decompondo a Aplicação, Determinando e Classificando Ameaças, e Contramedidas e Mitigação.&lt;/p&gt;

&lt;p&gt;Até lá!&lt;/p&gt;

</description>
      <category>posts</category>
    </item>
    <item>
      <title>Eu me associei à OWASP</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Sat, 18 Feb 2023 13:57:07 +0000</pubDate>
      <link>https://forem.com/brmartin/eu-me-associei-a-owasp-3jb1</link>
      <guid>https://forem.com/brmartin/eu-me-associei-a-owasp-3jb1</guid>
      <description>&lt;h1&gt;
  
  
  Quem é a OWASP?
&lt;/h1&gt;

&lt;p&gt;A &lt;strong&gt;Open Web Application Security Project ® (OWASP)&lt;/strong&gt; é uma fundação sem fins lucrativos que trabalha para melhorar a segurança do software. Por meio de projetos de software de código aberto liderados pela comunidade, centenas de comunidades locais em todo o mundo, dezenas de milhares de membros e importantes conferências educacionais e de treinamento, a OWASP Foundation é a fonte para desenvolvedores e tecnólogos protegerem a web.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que se associar?
&lt;/h2&gt;

&lt;p&gt;Para responder a essa pergunta podemos ter os mais variados motivos. Primeiramente, é uma forma de colaborar financeiramente com a Fundação para que possam continuar desenvolvendo atividades que agregam enormemente na missão de proteção da web.&lt;/p&gt;

&lt;p&gt;Eu particularmente decidi me associar por achar que pode ser um alavancador para a carreira na área de segurança e desenvolvimento. Ao se tornar membro você tem a possibilidade de aumentar sua rede de contatos, ter descontos em treinamentos e eventos, oportunidades de voluntariado, contribuição em projetos, etc.&lt;/p&gt;

&lt;p&gt;Após me associar, tive acesso a benefícios que, particularmente, achei muito interessantes. Passei a ter gratuitamente conta de dois ambientes de treinamentos online chamados &lt;strong&gt;&lt;a href="https://www.secureflag.com/"&gt;SecureFlag&lt;/a&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;a href="https://www.securityjourney.com/"&gt;Security Journey&lt;/a&gt;&lt;/strong&gt; e  uma conta na &lt;strong&gt;&lt;a href="https://www.ubiqsecurity.com/"&gt;Ubiq&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SecureFlag&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os desenvolvedores localizam, exploram e corrigem manualmente o código de aplicativos vulneráveis ​​executados em ambientes de desenvolvimento acessados ​​por meio de um navegador da web. A plataforma oferece treinamento 100% prático, sem perguntas de múltipla escolha, e usa um mecanismo capaz de testar ao vivo as alterações do código para medir a eficácia, exibindo instantaneamente se o código foi corrigido e concedendo pontos após a conclusão do exercício.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Journey&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Por meio de desafios e competições, o Security Journey ajuda você a progredir em uma &lt;strong&gt;missão orientada por mapas&lt;/strong&gt; para obter &lt;strong&gt;cinturões e conquistas de nível superior&lt;/strong&gt; . Os alunos podem ver seu progresso em sua jornada à medida que aumentam seus conhecimentos de segurança.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ubiq Security&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Criptografe seus dados mais confidenciais antes que eles saiam do aplicativo, para que a camada de armazenamento – e os adversários – vejam apenas o texto cifrado. A criptografia nativa do lado do cliente do aplicativo protege os dados contra invasores sofisticados, ataques à cadeia de suprimentos e ameaças internas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como encontrá-los
&lt;/h2&gt;

&lt;p&gt;Se você também achou interessante e gostaria de saber mais sobre o trabalho feito pela OWASP, visite os links que deixei abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://owasp.org/projects/"&gt;Projetos OWASP&lt;/a&gt;&lt;br&gt;
&lt;a href="https://owasp.org/chapters/"&gt;Comunidades Locais&lt;/a&gt;&lt;br&gt;
&lt;a href="https://owasp.org/Top10/"&gt;OWASP Top 10&lt;/a&gt;&lt;br&gt;
&lt;a href="https://owaspsamm.org/"&gt;OWASP SAMM&lt;/a&gt;&lt;/p&gt;

</description>
      <category>owasp</category>
      <category>appsec</category>
      <category>community</category>
      <category>security</category>
    </item>
    <item>
      <title>Você sabia? - Curiosidades JAVA</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Fri, 17 Feb 2023 21:42:29 +0000</pubDate>
      <link>https://forem.com/brmartin/voce-sabia-curiosidades-java-52lh</link>
      <guid>https://forem.com/brmartin/voce-sabia-curiosidades-java-52lh</guid>
      <description>&lt;p&gt;&lt;strong&gt;Bytecode&lt;/strong&gt;, o código de máquina da JVM, tem esse nome por um simples motivo.&lt;/p&gt;

&lt;p&gt;A máquina virtual Java entende um conjunto de comandos, que também são chamados de opcodes (operation code), e cada opcode possui o tamanho de exatamente 1 Byte. Daí surgiu o nome Bytecode, que nada mais é do que um &lt;strong&gt;opcode de 1 Byte&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Uma explicação além...
&lt;/h1&gt;

&lt;p&gt;Há alguns anos atrás as linguagens, como o Visual Basic da Microsoft por exemplo, eram muito específicas para determinados SOs, hardwares, configurações e tudo mais. Ou seja, o código precisava ser reescrito diversas vezes a cada necessidade diferente.&lt;/p&gt;

&lt;p&gt;Assim, &lt;a href="https://en.wikipedia.org/wiki/James_Gosling" rel="noopener noreferrer"&gt;Gosling&lt;/a&gt; para tentar resolver esse problema, desenvolveu a &lt;strong&gt;Máquina Virtual Java (JVM)&lt;/strong&gt;. Um intermediário que traduz ou instrui o sistema operacional acerca dos comandos a serem enviados e recebidos.&lt;/p&gt;

&lt;p&gt;O código Java, quando compilado, gera um formato chamado bytecode Java, de extensão &lt;code&gt;.class&lt;/code&gt;, que é lido pela JVM.&lt;/p&gt;

&lt;p&gt;Um exemplo de bytecode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; Code:
   0: new              
   3: dup
   4: invokespecial    
   7: astore_1
   8: aload_1
   9: ldc             
   11: putfield        
   14: return 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Interessante, não? &lt;/p&gt;

</description>
      <category>welcome</category>
    </item>
    <item>
      <title>Princípios de Segurança Cibernética</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Thu, 16 Feb 2023 19:06:02 +0000</pubDate>
      <link>https://forem.com/brmartin/principios-de-seguranca-cibernetica-3p4d</link>
      <guid>https://forem.com/brmartin/principios-de-seguranca-cibernetica-3p4d</guid>
      <description>&lt;p&gt;Todos os dados precisam de alguma forma de segurança, mesmo os dados que não são confidenciais (como dados destinados à exibição pública) precisam de proteção para garantir a disponibilidade.&lt;/p&gt;

&lt;p&gt;Vou começar apresentando os três pilares da Segurança da Informação.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. CIA Triad
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Confidentiality&lt;/strong&gt; (confidencialidade) - A característica dos dados ou informações quando não são disponibilizados ou divulgados a pessoas ou processos não autorizados. &lt;/p&gt;

&lt;p&gt;Exemplos de quebra de confidencialidade: escalonamento de privilégios e quebra de senhas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integrity&lt;/strong&gt; (integridade) - A propriedade da informação pela qual ela é registrada, usada e mantida de forma a garantir sua integridade, precisão, consistência interna e utilidade para um propósito declarado.&lt;/p&gt;

&lt;p&gt;Exemplos de quebra de integridade seria quando um funcionário tenta alterar a planilha de pagamentos sem permissão para tal ou, &lt;br&gt;
quando um &lt;em&gt;attacker&lt;/em&gt; utiliza a técnica Man-in-the-middle e intercepta o tráfego de rede, ficando no meio da comunicação e monitorando tudo o que está acontecendo. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Availability&lt;/strong&gt; (disponibilidade) - Garantir acesso oportuno e confiável e uso de informações por usuários autorizados. &lt;/p&gt;

&lt;p&gt;Um exemplo de quebra de disponibilidade é o ataque DoS (Negação de Serviço), onde ocorre um bombardeamento em um sistema com uma quantidade esmagadora de tráfego fazendo com que o mesmo fique indisponível.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Controle de Acesso
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Identificação
&lt;/h3&gt;

&lt;p&gt;Envolve fazer uma reivindicação de identidade. O usuário faz uma declaração, mas pode estar fazendo uma declaração falsa.&lt;/p&gt;

&lt;p&gt;A identificação eletrônica geralmente utiliza &lt;em&gt;usernames&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Autenticação (Authentication)
&lt;/h3&gt;

&lt;p&gt;Processo de controle de acesso que compara um ou mais fatores de identificação para validar que a identidade reivindicada por um usuário ou entidade é conhecida pelo sistema.&lt;/p&gt;

&lt;p&gt;Existem 3 métodos comuns de autenticação:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Algo que você conhece (ex: senha)&lt;/li&gt;
&lt;li&gt;Algo que você tem (ex: tokens)&lt;/li&gt;
&lt;li&gt;Algo que você é (ex: biometria)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk69on1piydct243vdcq7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk69on1piydct243vdcq7.png" alt="Autenticação" width="493" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Existem dois tipos de autenticação. O uso de apenas um dos métodos é conhecido como &lt;strong&gt;Autenticação de Fator Único (SFA)&lt;/strong&gt;. A concessão de acesso após a demonstração ou exibição bem sucedida de dois ou mais  métodos é conhecida como &lt;strong&gt;Autenticação Multifator (MFA)&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Autorização
&lt;/h3&gt;

&lt;p&gt;Garante que uma ação é permitida. Serviços de autorização determinam quais recursos os usuários podem acessar, juntamente com as operações que os usuários podem executar.&lt;/p&gt;

&lt;p&gt;Geralmente assume a forma de listas de controle de acesso que detalham as permissões especificas que são concedidas a um usuário individual ou grupo de usuários.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0393vxxfve5bsul2surf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0393vxxfve5bsul2surf.png" alt="Autorização" width="541" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Accouting
&lt;/h3&gt;

&lt;p&gt;Mantém controle sobre o que os usuários fazem, incluindo o que acessam, a quantidade de tempo que acessam os recursos e as alterações feitas.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Riscos
&lt;/h2&gt;

&lt;p&gt;Riscos são a combinação de uma ameaça e uma vulnerabilidade. Ocorrem quando um ambiente contém uma vulnerabilidade e uma ameaça correspondente que pode explorar essa vulnerabilidade.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gerenciamento de Risco
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Um &lt;strong&gt;ativo&lt;/strong&gt; é algo que precisa de proteção.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uma &lt;strong&gt;vulnerabilidade&lt;/strong&gt; é uma lacuna ou fraqueza nesses esforços de proteção. É uma fraqueza ou falha inerente em um sistema ou componente que, se desencadeada ou atuada, pode causar a ocorrência de um evento de risco. Poderá ser explorada por uma ameaça.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplos de vulnerabilidades: ausência de patches, regras frágeis de firewall, configurações incorretas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Uma &lt;strong&gt;ameaça&lt;/strong&gt; é uma pessoa ou coisa que toma medidas para explorar (ou fazer uso de) as vulnerabilidades do sistema de uma organização-alvo, como parte de atingir ou promover sua meta ou objetivos.&lt;br&gt;
    * Vetor de Ameaça: O meio pelo qual um ator de ameaça realiza seus objetivos. Método que um invasor usa para chegar ao seu alvo.&lt;br&gt;
    * Agente de ameaça: Um indivíduo ou grupo que tenta explorar vulnerabilidades para causar ou forçar a ocorrência de uma ameaça.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Probabilidade de ocorrência&lt;/strong&gt; é um fator ponderado com base em uma análise subjetiva da probabilidade de uma determinada ameaça ser capaz de explorar uma determinada vulnerabilidade ou conjunto de vulnerabilidades.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Avaliação de risco (Risk Assessment)
&lt;/h3&gt;

&lt;p&gt;A avaliação de riscos  é definida como o processo de identificação, estimativa e priorização de riscos para as operações de uma organização (incluindo sua missão, funções, imagem e reputação), ativos, indivíduos, outras organizações e até mesmo a nação.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tratamento de risco (Risk Treatment)
&lt;/h3&gt;

&lt;p&gt;Analisa e implementa possíveis respostas para controlar o risco.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk Transference&lt;/strong&gt; - A transferência de risco é a prática de transferir o risco para outra parte, que aceitará o impacto financeiro do dano resultante da realização de um risco em troca de pagamento. Normalmente, esta é uma apólice de seguro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk Avoidance&lt;/strong&gt; - A prevenção do risco é a decisão de tentar eliminar totalmente o risco.  Mudar as práticas de negócios para tornar um risco irrelevante.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk Acceptance&lt;/strong&gt; - Aceitação de risco é não tomar nenhuma ação para reduzir a probabilidade de ocorrência de um risco.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk Mitigation&lt;/strong&gt; - A mitigação de riscos é o tipo mais comum de gerenciamento de riscos e inclui a tomada de ações para prevenir ou reduzir a possibilidade de um evento de risco ou seu impacto. &lt;/p&gt;

&lt;h3&gt;
  
  
  Prioridades de risco (Risk Priorities)
&lt;/h3&gt;

&lt;p&gt;Quando os riscos forem identificados, é hora de priorizar e analisar os principais riscos por meio da análise de risco qualitativa e/ou análise de risco quantitativa. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Um método eficaz para priorizar o risco é usar uma matriz de risco, que ajuda a identificar a prioridade como a interseção da probabilidade de ocorrência e impacto.&lt;/li&gt;
&lt;li&gt;Ao tomar decisões com base nas prioridades de risco, as organizações devem avaliar a probabilidade e o impacto do risco, bem como sua tolerância a diferentes tipos de risco. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tolerância ao risco (Risk Tolerance)
&lt;/h3&gt;

&lt;p&gt;O nível de tolerância ao risco varia entre as organizações e até internamente: departamentos diferentes podem ter atitudes diferentes em relação ao risco aceitável ou inaceitável.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Controles de Segurança
&lt;/h2&gt;

&lt;p&gt;Os controles de segurança referem-se aos mecanismos físicos, técnicos e administrativos que atuam como salvaguardas ou contramedidas prescritas para um sistema de informação para proteger a confidencialidade, integridade e disponibilidade do sistema e de suas informações. &lt;/p&gt;

&lt;h3&gt;
  
  
  Controles físicos (physical controls)
&lt;/h3&gt;

&lt;p&gt;Os controles físicos atendem às necessidades de segurança baseadas em processos usando dispositivos físicos de hardware, como leitores de crachás, características arquitetônicas de prédios e instalações e ações de segurança específicas a serem tomadas pelas pessoas. &lt;/p&gt;

&lt;p&gt;Muitos tipos de mecanismos de controle de acesso físico podem ser implantados em um ambiente para controlar, monitorar e gerenciar o acesso a uma instalação.&lt;/p&gt;

&lt;h3&gt;
  
  
  Controles técnicos
&lt;/h3&gt;

&lt;p&gt;Controles técnicos (também chamados de controles lógicos) são controles de segurança que sistemas de computador e redes implementam diretamente.&lt;/p&gt;

&lt;p&gt;Os controles técnicos podem ser definições de configuração ou parâmetros armazenados como dados, gerenciados por meio de uma interface gráfica do usuário (GUI) de software, ou podem ser configurações de hardware feitas com interruptores, plugues de jumper ou outros meios. &lt;/p&gt;

&lt;h3&gt;
  
  
  Controles administrativos (administrative controls)
&lt;/h3&gt;

&lt;p&gt;Os controles administrativos (também conhecidos como controles gerenciais) são diretrizes, guias ou conselhos dirigidos às pessoas dentro da organização. Eles fornecem estruturas, restrições e padrões para o comportamento humano e devem cobrir todo o escopo das atividades da organização e suas interações com partes externas e partes interessadas.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Governança
&lt;/h2&gt;

&lt;p&gt;O grande desafio da governança é equilibrar os interesses dos diversos envolvidos garantindo a continuidade do negócio e a geração de valor para os acionistas. Em seus valores fundamentais estão: &lt;strong&gt;Fairness&lt;/strong&gt; (senso de justiça), &lt;strong&gt;Disclosure&lt;/strong&gt; (transparência), &lt;strong&gt;Accountability&lt;/strong&gt; (responsabilidade) e &lt;strong&gt;Compliance&lt;/strong&gt; (conformidade).&lt;/p&gt;

&lt;h3&gt;
  
  
  Regulamentos e leis
&lt;/h3&gt;

&lt;p&gt;Os regulamentos e leis (regulations and laws) são comumente emitidos na forma de leis, geralmente do governo (não confundir com governança) e geralmente acarretam penalidades financeiras por descumprimento.&lt;/p&gt;

&lt;p&gt;Um exemplo é o Regulamento Geral de Proteção de Dados (GDPR); &lt;/p&gt;

&lt;h3&gt;
  
  
  Políticas
&lt;/h3&gt;

&lt;p&gt;As políticas (policies) são implementadas pela governança organizacional, como a gestão executiva, para fornecer orientação em todas as atividades para garantir que a organização suporte os padrões e regulamentos do setor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Padrões
&lt;/h3&gt;

&lt;p&gt;Os padrões (standards) são frequentemente usados ​​pelas equipes de governança para fornecer uma estrutura para introduzir políticas e procedimentos em apoio aos regulamentos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ex1: Organização Internacional de Padronização (ISO);&lt;/li&gt;
&lt;li&gt;Ex2: Internet Engineering Task Force (IETF) , existem padrões em protocolos de comunicação que garantem que todos os computadores possam se conectar entre si através das fronteiras&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Por exemplo, uma empresa estabelece uma política de senhas. O padrão é que as senhas requerem um mínimo de oito caracteres alfanuméricos maiúsculos e minúsculos, incluindo pelo menos um caractere especial. Um usuário deve alterar a senha a cada 30 dias e um histórico das 12 senhas anteriores garante que o usuário crie senhas exclusivas durante um ano.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Procedimentos
&lt;/h3&gt;

&lt;p&gt;Os procedimentos (procedures) são as etapas detalhadas para concluir uma tarefa que oferece suporte às políticas departamentais ou organizacionais. Os procedimentos definem as atividades explícitas e repetíveis necessárias para realizar uma tarefa específica ou um conjunto de tarefas. &lt;/p&gt;

&lt;p&gt;A figura mostra um exemplo do procedimento usado para alterar uma senha.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxny8ijsp3m45vm9r98qq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxny8ijsp3m45vm9r98qq.png" alt="Procedimento de troca de senha" width="677" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Outros Conceitos Importantes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Privacy&lt;/strong&gt; (privacidade) -O direito de um indivíduo de controlar a distribuição de informações sobre si mesmo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non-repudiation&lt;/strong&gt; - A incapacidade de negar a realização de uma ação, como criar informações, aprovar informações e enviar ou receber uma mensagem. Impede alguém de negar a verdade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Criticality&lt;/strong&gt; (criticidade)  - Uma medida do grau em que uma organização depende da informação ou sistema de informação para o sucesso de uma missão ou de uma função de negócios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;A área de cibersegurança é muito ampla, mas os conceitos apresentados acima são uma base importantíssima para qualquer profissional que deseje trabalhar garantindo a confidencialidade, integridade e disponibilidade de seus produtos ou serviços.&lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
    <item>
      <title>Introdução às WEB APIs</title>
      <dc:creator>brmartin | Bruno Martins</dc:creator>
      <pubDate>Thu, 16 Feb 2023 13:04:03 +0000</pubDate>
      <link>https://forem.com/brmartin/introducao-as-web-apis-1254</link>
      <guid>https://forem.com/brmartin/introducao-as-web-apis-1254</guid>
      <description>&lt;p&gt;As APIs são os blocos de construção do software moderno porque permitem o compartilhamento de recursos e serviços entre aplicativos, organizações e dispositivos. Uma API é um conjunto de diretrizes ou regras que indicam como os aplicativos interagem. Uma API permite que um aplicativo solicite dados de outro sistema.&lt;/p&gt;

&lt;p&gt;Você pode pensar nas APIs como sendo um garçom em um restaurante, servindo como um intermediário entre o cliente e a cozinha.&lt;/p&gt;

&lt;p&gt;Um cliente que quer sopa não vai para a cozinha cozinhar. Eles nem precisam saber fazer sopa! Eles só precisam saber &lt;em&gt;como pedir&lt;/em&gt; sopa ao &lt;em&gt;garçom&lt;/em&gt; &lt;em&gt;e&lt;/em&gt; esperar que o garçom traga a sopa de volta &lt;em&gt;.&lt;/em&gt; As APIs funcionam da mesma forma, mas há nomes diferentes para os jogadores envolvidos. Em vez de sopa, o solicitante pode solicitar dados ou execução de um serviço.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Cliente = &lt;strong&gt;Cliente&lt;/strong&gt; (solicitante. Ex: navegador, aplicativo web, aplicativo móvel) &lt;/li&gt;
&lt;li&gt;  Garçom = &lt;strong&gt;API&lt;/strong&gt; (interface simplificada para interagir com o back-end)
&lt;/li&gt;
&lt;li&gt;  Cozinha = &lt;strong&gt;Servidor&lt;/strong&gt; (back-end onde o processamento acontece)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Anatomia de uma solicitação de API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nome&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint&lt;/td&gt;
&lt;td&gt;A URL que você solicita&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Método&lt;/td&gt;
&lt;td&gt;O tipo do pedido (GET, POST, DELETE, etc)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cabeçalho&lt;/td&gt;
&lt;td&gt;Informações adicionais para o cliente ou o servidor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Corpo&lt;/td&gt;
&lt;td&gt;Informações enviadas ao servidor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Acessibilidade
&lt;/h2&gt;

&lt;p&gt;As APIs variam no escopo de quem pode acessá-las.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs &lt;strong&gt;públicas&lt;/strong&gt; (também conhecidas como APIs abertas) - consumíveis por qualquer pessoa que saiba sobre a API&lt;/li&gt;
&lt;li&gt;APIS &lt;strong&gt;privadas&lt;/strong&gt; - consumíveis apenas dentro de uma organização e não tornadas públicas.&lt;/li&gt;
&lt;li&gt;APIs de parceiros - consumíveis entre uma ou mais organizações que possuem um relacionamento estabelecido.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Arquiteturas
&lt;/h2&gt;

&lt;p&gt;Há mais de uma maneira de criar e consumir APIs. Alguns tipos de arquitetura que você pode encontrar são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  REST (Transferência de Estado Representacional)&lt;/li&gt;
&lt;li&gt;  GraphQLGenericName&lt;/li&gt;
&lt;li&gt;  WebSockets&lt;/li&gt;
&lt;li&gt;  webhooks&lt;/li&gt;
&lt;li&gt;  SOAP (Simple Object Access Protocol)&lt;/li&gt;
&lt;li&gt;  gRPC (chamada de procedimento remoto do Google)&lt;/li&gt;
&lt;li&gt;  MQTT (Transporte de Telemetria MQ)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  APIs REST
&lt;/h3&gt;

&lt;p&gt;As APIs REST se comunicam por meio de solicitações HTTP para executar operações &lt;strong&gt;CRUD (ou criar, ler, atualizar e excluir)&lt;/strong&gt;. Algumas características das APIs REST incluem não armazenar o estado da sessão entre as solicitações, a capacidade de armazenar em cache e a capacidade de enviar e receber vários tipos de dados.&lt;/p&gt;

&lt;p&gt;As APIs REST seguem seis princípios de design que são os seguintes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Separação cliente-servidor&lt;/li&gt;
&lt;li&gt;Stateless&lt;/li&gt;
&lt;li&gt;Armazenável em cache&lt;/li&gt;
&lt;li&gt;Sistema em Camadas&lt;/li&gt;
&lt;li&gt;Interface uniforme&lt;/li&gt;
&lt;li&gt;Code on Demand (opcional)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Métodos HTTP
&lt;/h2&gt;

&lt;p&gt;O HTTP possui um número fixo de métodos que o cliente pode usar para indicar que tipo de operação deseja realizar por meio da solicitação. Esses métodos de solicitação também são conhecidos como verbos HTTP.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; POST - é usada para enviar alguns dados para o servidor. - &lt;strong&gt;Create&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; GET - é usada para solicitar dados de um servidor. - &lt;strong&gt;Read&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; PATCH - é usado para modificar parcialmente um recurso. - &lt;strong&gt;Update&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; PUT - é usado para atualizar todo o recurso no servidor. - &lt;strong&gt;Update&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;DELETE - é usada para excluir o recurso especificado. - &lt;strong&gt;Delete&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; HEAD&lt;/li&gt;
&lt;li&gt; TRACE&lt;/li&gt;
&lt;li&gt; CONNECT&lt;/li&gt;
&lt;li&gt; OPTIONS&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GET, POST, PATCH, PUT e DELETE são os mais populares.&lt;/p&gt;

&lt;h2&gt;
  
  
  Parâmetros de Consulta
&lt;/h2&gt;

&lt;p&gt;Os ingredientes mínimos que você precisa para fazer um pedido são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  um método de solicitação ( &lt;code&gt;GET&lt;/code&gt;/ &lt;code&gt;POST&lt;/code&gt;/ &lt;code&gt;PUT&lt;/code&gt;/ &lt;code&gt;PATCH&lt;/code&gt;/ &lt;code&gt;DELETE&lt;/code&gt;, etc)&lt;/li&gt;
&lt;li&gt;  uma URL de solicitação&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Os parâmetros de consulta são adicionados ao final do caminho. Eles começam com um ponto de interrogação &lt;code&gt;?&lt;/code&gt;, seguido pelos pares de chave-valor no formato: &lt;code&gt;&amp;lt;key&amp;gt;=&amp;lt;value&amp;gt;&lt;/code&gt;. Por exemplo, esta solicitação abaixo pode buscar todas as fotos com orientação paisagem:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET https://some-api.com/photos?orientation=landscape&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Se houver vários parâmetros de consulta, cada um será separado por um e comercial &lt;code&gt;&amp;amp;&lt;/code&gt;. Abaixo, dois parâmetros de consulta para especificar a orientação e o tamanho das fotos a serem retornadas:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET https://some-api.com/photos?orientation=landscape&amp;amp;size=500x400&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Às vezes, os parâmetros de consulta são opcionais e permitem adicionar filtros ou dados extras às suas respostas. Às vezes, eles são necessários para que o servidor processe sua solicitação. &lt;/p&gt;

&lt;h2&gt;
  
  
  Parâmetros de Caminho
&lt;/h2&gt;

&lt;p&gt;Um parâmetro de caminho (ou "variável de caminho") é uma seção dinâmica de um caminho e geralmente é usado para IDs e nomes de entidade, como nomes de usuário.&lt;/p&gt;

&lt;p&gt;Os parâmetros do caminho vêm imediatamente após uma barra no caminho. Por exemplo, a &lt;a href="https://docs.github.com/en/rest/reference/users#get-a-user" rel="noopener noreferrer"&gt;API do GitHub&lt;/a&gt; permite pesquisar usuários do GitHub fornecendo um nome de usuário no caminho &lt;code&gt;{username}&lt;/code&gt;, conforme vemos abaixo: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET https://api.github.com/users/bruno&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;* Estas são apenas convenções! Algumas APIs podem solicitar que você passe um ID ou nome de usuário em um parâmetro de consulta como este:&lt;/em&gt; &lt;code&gt;/users?username=bruno&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Autorização
&lt;/h2&gt;

&lt;p&gt;Algumas APIs exigem &lt;strong&gt;autorização&lt;/strong&gt; (também conhecida como &lt;strong&gt;Auth&lt;/strong&gt; ) para determinado endpoint para permitir uma solicitação.&lt;/p&gt;

&lt;p&gt;Existem vários métodos para autorizar uma solicitação. Alguns exemplos são &lt;strong&gt;Basic Auth&lt;/strong&gt; (nome de usuário e senha), &lt;strong&gt;OAuth&lt;/strong&gt; (autorização sem senha) e &lt;strong&gt;API Keys&lt;/strong&gt; (strings secretas registradas para um desenvolvedor a partir de uma API).&lt;/p&gt;

&lt;p&gt;As APIs que usam autenticação de chave de API (API Keys) geralmente permitem que os desenvolvedores se inscrevam em um portal de desenvolvedor, onde receberão uma chave de API aleatória que pode ser usada para autorizar suas solicitações para a API. A API Key permite que a API rastreie quem está fazendo chamadas e com que frequência.&lt;/p&gt;

&lt;h2&gt;
  
  
  Códigos de Status
&lt;/h2&gt;

&lt;p&gt;Quando o servidor retorna uma resposta, um número de três dígitos também é enviado como parte da resposta. Esse número de três dígitos também é conhecido como "código de status".&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nome&lt;/th&gt;
&lt;th&gt;Faixa de códigos de status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Informativo&lt;/td&gt;
&lt;td&gt;100-199&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bem-sucedido&lt;/td&gt;
&lt;td&gt;200-299&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redirecionamento&lt;/td&gt;
&lt;td&gt;300-399&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Erro do cliente&lt;/td&gt;
&lt;td&gt;400-499&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Erro de servidor&lt;/td&gt;
&lt;td&gt;500-599&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  O Aprendizado Continua...
&lt;/h2&gt;

&lt;p&gt;Aqui você pode buscar entender os fundamentos básicos de uma WEB API, mas é importante ir além e se aprofundar em cada um dos tópicos do artigo e, principalmente, praticar. Abaixo deixo alguns sites que disponibilizam APIs públicas que podem ser utilizadas em projetos práticos.&lt;/p&gt;

&lt;p&gt;Em breve, pretendo publicar mais conteúdos onde aprofundarei em desenvolvimento de APIs. Até lá!&lt;/p&gt;

&lt;p&gt;Giphy - &lt;a href="https://developers.giphy.com/docs/api/" rel="noopener noreferrer"&gt;https://developers.giphy.com/docs/api/&lt;/a&gt;&lt;br&gt;
Any API - &lt;a href="https://any-api.com/" rel="noopener noreferrer"&gt;https://any-api.com/&lt;/a&gt;&lt;br&gt;
Marvel - &lt;a href="https://developer.marvel.com/" rel="noopener noreferrer"&gt;https://developer.marvel.com/&lt;/a&gt;&lt;br&gt;
GitHub - &lt;a href="https://docs.github.com/en/rest/reference/users#get-a-user" rel="noopener noreferrer"&gt;https://docs.github.com/en/rest/reference/users#get-a-user&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vibecoding</category>
    </item>
  </channel>
</rss>
