
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Fri, 10 Apr 2026 18:57:17 GMT</lastBuildDate>
        <item>
            <title><![CDATA[From bytecode to bytes: automated magic packet generation]]></title>
            <link>https://blog.cloudflare.com/from-bpf-to-packet/</link>
            <pubDate>Wed, 08 Apr 2026 13:00:00 GMT</pubDate>
            <description><![CDATA[ By applying symbolic execution and the Z3 theorem prover to BPF bytecode, we’ve automated the generation of malware trigger packets, cutting analysis time from hours to seconds. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Linux malware often hides in Berkeley Packet Filter (BPF) socket programs, which are small bits of executable logic that can be embedded in the Linux kernel to customize how it processes network traffic. Some of the most persistent threats on the Internet use these filters to remain dormant until they receive a specific "magic" packet. Because these filters can be hundreds of instructions long and involve complex logical jumps, reverse-engineering them by hand is a slow process that creates a bottleneck for security researchers.</p><p>To find a better way, we looked at symbolic execution: a method of treating code as a series of constraints, rather than just instructions. By using the Z3 theorem prover, we can work backward from a malicious filter to automatically generate the packet required to trigger it. In this post, we explain how we built a tool to automate this, turning hours of manual assembly analysis into a task that takes just a few seconds.</p>
    <div>
      <h2>The complexity ceiling</h2>
      <a href="#the-complexity-ceiling">
        
      </a>
    </div>
    <p>Before we look at how to deconstruct malicious filters, we need to understand the engine running them. The Berkeley Packet Filter (BPF) is a highly efficient technology that allows the kernel to pull specific packets from the network stack based on a set of bytecode instructions.</p><p>While many modern developers are familiar with <a href="https://blog.cloudflare.com/tag/ebpf/">eBPF</a> (Extended BPF), the powerful evolution used for observability and security, this post focuses on "classic" BPF. Originally designed for tools like tcpdump, classic BPF uses a simple virtual machine with just two registers to evaluate network traffic at high speeds. Because it runs deep within the kernel and can "hide" traffic from user-space tools, it has become a favorite tool for malware authors looking to build stealthy backdoors.</p><p>Creating a contextual representation of BPF instructions using <a href="https://www.cloudflare.com/learning/ai/what-is-large-language-model/"><u>LLMs</u></a> is already reducing the manual overhead for analysts, crafting the network packets that correspond to the validating condition can still be a lot of work, even with the added context provided by LLM’s.</p><p>Most of the time this is not a problem if your BPF program has only ~20 instructions, but this can get exponentially more complex and time-consuming when a BPF program consists of over 100 instructions as we’ve observed in some of the samples.</p><p>If we deconstruct the problem we can see that it boils down to reading a buffer and checking a constraint, depending on the outcome we either continue our execution path or stop and check the end result.</p><p>This kind of problem that has a deterministic outcome can be solved by Z3, a theorem prover that has the means to solve problems with a set of given constraints.</p>
    <div>
      <h2>Exhibit A: BPFDoor</h2>
      <a href="#exhibit-a-bpfdoor">
        
      </a>
    </div>
    <p>BPFDoor is a sophisticated, passive Linux backdoor, primarily used for cyberespionage by China-based threat actors, including Red Menshen (also known as Earth Bluecrow). Active since at least 2021, the malware is designed to maintain a stealthy foothold in compromised networks, targeting telecommunications, education, and government sectors, with a strong emphasis on operations in Asia and the Middle East.</p><p>BPFDoor uses BPF to monitor all incoming traffic without requiring a specific network port to be open. </p>
    <div>
      <h3>BPFDoor example instructions</h3>
      <a href="#bpfdoor-example-instructions">
        
      </a>
    </div>
    <p>Let’s focus on the sample of which was shared for the research done by <a href="https://www.fortinet.com/blog/threat-research/new-ebpf-filters-for-symbiote-and-bpfdoor-malware"><u>Fortinet</u></a> (82ed617816453eba2d755642e3efebfcbd19705ac626f6bc8ed238f4fc111bb0). If we dissect the BPF instructions and add some annotations, we can write the following:</p>
            <pre><code>(000) ldh [0xc]                   ; Read halfword at offset 12 (EtherType)
(001) jeq #0x86dd, jt 2, jf 6     ; 0x86DD (IPv6) -&gt; ins 002 else ins 006
(002) ldb [0x14]                  ; Read byte at offset 20 (Protocol)
(003) jeq #0x11, jt 4, jf 15      ; 0x11 (UDP) -&gt; ins 004 else DROP
(004) ldh [0x38]                  ; Read halfword at offset 56 (Dst Port)
(005) jeq #0x35, jt 14, jf 15     ; 0x35 (DNS) -&gt; ACCEPT else DROP
(006) jeq #0x800, jt 7, jf 15     ; 0x800 (IPv4) -&gt; ins 007 else DROP
(007) ldb [23]                    ; Read byte at offset 23 (Protocol)
(008) jeq #0x11, jt 9, jf 15      ; 0x11 (UDP) -&gt; ins 009 else DROP
(009) ldh [20]                    ; Read halfword at offset 20 (fragment)
(010) jset #0x1fff, jt 15, jf 11  ; fragmented -&gt; DROP else ins 011
(011) ldxb 4*([14]&amp;0xf)           ; Load index (x) register ihl &amp; 0xf
(012) ldh [x + 16]                ; Read halfword at offset x+16 (Dst Port)
(013) jeq #0x35, jt 14, jf 15     ; 0x35 (DNS) -&gt; ACCEPT else DROP
(014) ret #0x40000 (ACCEPT)
(015) ret #0 (DROP)</code></pre>
            <p>In the above example we can establish there are two paths that lead to an ACCEPT outcome (step 5 and step 13). We can also clearly observe certain bytes being checked, including their offsets and values. </p><p>Taking these validations, and keeping track of anything that would match the ACCEPT path, we should be able to automatically craft the packets for us.</p>
    <div>
      <h3>Calculating the shortest path</h3>
      <a href="#calculating-the-shortest-path">
        
      </a>
    </div>
    <p>To find the shortest path to a packet that validates the conditions presented in the BPF instructions, we need to keep track of paths that are not ending in the unfavorable condition.</p><p>We start off by creating a small queue. This queue holds several important data points:</p><ul><li><p>The pointer to the next instruction.</p></li><li><p>Our current path of executed instructions + the next instruction.</p></li></ul><p>Whenever we encounter an instruction that is checking a condition, we keep track of the outcome using a boolean and store this in our queue, so we can compare paths on the amount of conditions before the ACCEPT condition is reached and calculate our shortest path. In pseudocode we can express this best as:</p>
            <pre><code>paths = []
queue = dequeue([(0, [0])])

while queue:
	pc, path = queue.popleft()

	if pc &gt;= len(instructions):
            continue

instruction = instructions[pc]
	
	if instruction.class == return_instruction:
		if instruction_constant != 0:  # accept
			paths.append(path)
		continue  # drop or accept, stop parsing this instruction

if instruction.class == jump_instruction:
	if instruction.operation == unconditional_jump:
		next_pc = pc + 1 + instruction_constant
		queue.append((next_pc, path + [next_pc]))
		continue

	# Conditional jump, explore both
	pc_true = pc + 1 + instruction.jump_true
	pc_false = pc + 1 + instruction.jump_false
	
	if instruction.jump_true &lt;= instruction.jump_false:
		queue.append((pc_true, path + [pc_true]))
		queue.append((pc_false, path + [pc_false]))
	# else: same as above but reverse order of appending
# else: sequential instruction, append to the queue</code></pre>
            <p>If we execute this logic against our earlier BPFDoor example, we will be presented with the shortest path to an accepted packet:</p>
            <pre><code>(000) code=0x28 jt=0 jf=0  k=0xc     ; Read halfword at offset 12 (EtherType)
(001) code=0x15 jt=0 jf=4  k=0x86dd  ; IPv6 packet
(002) code=0x30 jt=0 jf=0  k=0x14    ; Read byte at offset 20 (Protocol)
(003) code=0x15 jt=0 jf=11 k=0x11    ; Protocol number 17 (UDP)
(004) code=0x28 jt=0 jf=0  k=0x38    ; Read word at offset 56 (Destination Port)
(005) code=0x15 jt=8 jf=9  k=0x35    ; Destination port 53
(014) code=0x06 jt=0 jf=0  k=0x40000 ; Accept</code></pre>
            <p>This is already a helpful automation in automatically solving our BPF constraints when it comes to analyzing BPF instructions and figuring out how the accepted packet for the backdoor would look. But what if we can take it a step further?</p><p>What if we could create a small tool that will give us the expected packet back in an automated manner?</p>
    <div>
      <h2>Employing Z3 and scapy</h2>
      <a href="#employing-z3-and-scapy">
        
      </a>
    </div>
    <p>One such tool that is perfect to solve problems given a set of constraints is <a href="https://github.com/z3Prover/z3"><u>Z3</u></a>. Developed by Microsoft the tool is labeled as a theorem prover and exposes easy to use functions performing very complex mathematical operations under the hood.</p><p>The other tool we will use for crafting our valid magic packets is <a href="https://github.com/secdev/scapy"><u>scapy</u></a>, a popular Python library for interactive packet manipulation.</p><p>Given that we already have a way to figure out the path to an accepted packet, we are left with solving the problem by itself, and then translating this solution to the bytes at their respective offsets in a network packet.</p>
    <div>
      <h3>Symbolic execution</h3>
      <a href="#symbolic-execution">
        
      </a>
    </div>
    <p>A common technique for exploring paths taken in a given program is called symbolic execution. For this technique we are giving input that can be used as variables, including the constraints. By knowing the outcome of a successful path we can orchestrate our tool to find all of these successful paths and display the end result to us in a contextualized format.</p><p>For this to work we will need to implement a small machine capable of keeping track of the state of things like constants, registers, and different boolean operators as an outcome of a condition that is being checked.</p>
            <pre><code>class BPFPacketCrafter:
    MIN_PKT_SIZE = 64           # Minimum packet size (Ethernet + IP + UDP headers)
    LINK_ETHERNET = "ethernet"  # DLT_EN10MB - starts with Ethernet header
    LINK_RAW = "raw"            # DLT_RAW - starts with IP header directly
    MEM_SLOTS = 16              # Number of scratch memory slots (M[0] to M[15])

    def __init__(self, ins: list[BPFInsn], pkt_size: int = 128, ltype: str = "ethernet"):
        self.instructions = ins
        self.pkt_size = max(self.MIN_PKT_SIZE, pkt_size)
        self.ltype = ltype

        # Symbolic packet bytes
        self.packet = [BitVec(f"pkt_{i}", 8) for i in range(self.pkt_size)]

        # Symbolic registers (32-bit)
        self.A = BitVecVal(0, 32)  # Accumulator
        self.X = BitVecVal(0, 32)  # Index register

        # Scratch memory M[0-15] (32-bit words)
        self.M = [BitVecVal(0, 32) for _ in range(self.MEM_SLOTS)]</code></pre>
            <p>With the above code we’ve covered most of the machine for keeping a state during the symbolic execution. There are of course more conditions we need to keep track of, but these are handled during the solving process. To handle an ADD instruction, the machine maps the BPF operation to a Z3 addition:</p>
            <pre><code>def _execute_ins(self, insn: BPFInsn):
    cls = insn.cls
    if cls == BPFClass.ALU:
        op = insn.op
        src_val = BitVecVal(insn.k, 32) if insn.src == BPFSrc.K else self.X
        if op == BPFOp.ADD:
            self.A = self.A + src_val</code></pre>
            <p>Luckily the BPF instruction set is only a small set of instructions that’s relatively easy to implement — only having two registers to keep track of is definitely a welcome constraint!</p><p>The overall working of this symbolic execution can be laid out in the following abstracted overview:</p><ul><li><p>Initialize the “x” (index) and “a” (accumulator) registers to their base state.</p></li><li><p>Loop over the instructions from the path that was identified as a successful path;</p><ul><li><p>Execute non-jump instructions as-is, keeping track of register states.</p></li><li><p>Determine if a jump instruction is encountered, and check if the branch should be taken.</p></li></ul></li><li><p>Use the Z3 check() function to check if our condition has been satisfied with the given constraint (ACCEPT).</p></li><li><p>Convert the Z3 bitvector arrays into bytes.</p></li><li><p>Use scapy to construct packets of the converted bytes.</p></li></ul><p>If we look at the constraints build by the Z3 solver we can trace the execution steps taken by Z3 to build the packet bytes:</p>
            <pre><code>[If(Concat(pkt_12, pkt_13) == 0x800,
    pkt_14 &amp; 0xF0 == 0x40,
    True),
 If(Concat(pkt_12, pkt_13) == 0x800, pkt_14 &amp; 0x0F &gt;= 5, True),
 If(Concat(pkt_12, pkt_13) == 0x800, pkt_14 &amp; 0x0F == 5, True),
 If(Concat(pkt_12, pkt_13) == 0x86DD,
    pkt_14 &amp; 0xF0 == 0x60,
    True),
 0x86DD == ZeroExt(16, Concat(pkt_12, pkt_13)),
 0x11 == ZeroExt(24, pkt_20),
 0x35 == ZeroExt(16, Concat(pkt_56, pkt_57))]</code></pre>
            <p>The first part of the Z3 displayed constraints are the constraints added to ensure we’re building up a valid ethernet IP when dealing with link-layer BPF instructions. The “If” statements apply specific constraints based on which protocol is detected:</p><ul><li><p>IPv4 Logic (0x0800):</p><ul><li><p>pkt_14 &amp; 240 == 64: Byte 14 is the start of the IP header. The 0xF0 mask isolates the high nibble (the Version field) to check if the version is 4 (0x40).</p></li><li><p>pkt_14 &amp; 15 == 5: 15 (0x0F), isolating the low nibble (IHL - Internet Header Length). This mandates a header length of 5 (20 bytes), which is the standard size without options.</p></li></ul></li><li><p>IPv6 Logic (0x86dd):</p><ul><li><p>pkt_14 &amp; 240 == 0x60: Check if the version field is version 6 (0x60)</p></li></ul></li></ul><p>We can observe the network packet values when we look at the second part where different values are being checked:</p><ul><li><p>0x86DD: Packet condition for IPv6 header.</p></li><li><p>0x11: UDP protocol number.</p></li><li><p>0x35: The destination port (53).</p></li></ul><p>Next to the expected values we can see the byte offset of where it should exist in a given packet (e.g. pkt_12, pkt_13).</p>
    <div>
      <h3>Crafting packets</h3>
      <a href="#crafting-packets">
        
      </a>
    </div>
    <p>Now that we’ve established which bytes should exist at specific offsets we can convert it into an actual network packet using scapy. If we generate a new packet from the bytes of our previous Z3 constraints we can clearly see what our packet would look like, and store this for further processing:</p>
            <pre><code>###[ Ethernet ]###
  dst       = 00:00:00:00:00:00
  src       = 00:00:00:00:00:00
  type      = IPv6                 &lt;-- IPv6 Packet
###[ IPv6 ]###
     version   = 6
     tc        = 0
     fl        = 0
     plen      = 0
     nh        = UDP               &lt;-- UDP Protocol
     hlim      = 0
     src       = ::
     dst       = ::
###[ UDP ]###
        sport     = 0
        dport     = domain         &lt;-- Port 53
        len       = 0
        chksum    = 0x0</code></pre>
            <p>These newly crafted packets can in turn be used for further research or identifying the presence of these implants by scanning for these over the network. </p>
    <div>
      <h2>Try it yourself</h2>
      <a href="#try-it-yourself">
        
      </a>
    </div>
    <p>Understanding what a specific BPF set of instructions is doing can be cumbersome and time-consuming work. The example used is only a total of sixteen instructions, but we’ve encountered samples that were over 200 instructions that would’ve taken at least a day to understand. By using the Z3 solver, we can now reduce this time to just seconds, and not only display the path to an accepted packet, but also the packet skeleton for this as well.</p><p>We have open-sourced the <b>filterforge</b> tool to help the community automate the deconstruction of BPF-based implants. You can find the source code, along with usage examples, on <a href="https://github.com/cloudflare/filterforge"><u>our GitHub repository</u></a>.</p><p>By publishing this research and sharing our tool for reducing analysts’ time spent figuring out the BPF instructions, we hope to spark further research by others to expand on this form of automation.</p> ]]></content:encoded>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Network]]></category>
            <category><![CDATA[Z3]]></category>
            <category><![CDATA[BPF]]></category>
            <category><![CDATA[Reverse Engineering]]></category>
            <guid isPermaLink="false">120kAbSMAaPQdCnfDgfd81</guid>
            <dc:creator>Axel Boesenach</dc:creator>
        </item>
        <item>
            <title><![CDATA[Disrupting FlyingYeti's campaign targeting Ukraine]]></title>
            <link>https://blog.cloudflare.com/disrupting-flyingyeti-campaign-targeting-ukraine/</link>
            <pubDate>Thu, 30 May 2024 13:00:38 GMT</pubDate>
            <description><![CDATA[ In April and May 2024, Cloudforce One employed proactive defense measures to successfully prevent Russia-aligned threat actor FlyingYeti from launching their latest phishing campaign targeting Ukraine ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Cloudforce One is publishing the results of our investigation and real-time effort to detect, deny, degrade, disrupt, and delay threat activity by the Russia-aligned threat actor FlyingYeti during their latest phishing campaign targeting Ukraine. At the onset of Russia’s invasion of Ukraine on February 24, 2022, Ukraine introduced a moratorium on evictions and termination of utility services for unpaid debt. The moratorium ended in January 2024, resulting in significant debt liability and increased financial stress for Ukrainian citizens. The FlyingYeti campaign capitalized on anxiety over the potential loss of access to housing and utilities by enticing targets to open malicious files via debt-themed lures. If opened, the files would result in infection with the PowerShell malware known as <a href="https://cert.gov.ua/article/6277849?ref=news.risky.biz">COOKBOX</a>, allowing FlyingYeti to support follow-on objectives, such as installation of additional payloads and control over the victim’s system.</p><p>Since April 26, 2024, Cloudforce One has taken measures to prevent FlyingYeti from launching their phishing campaign – a campaign involving the use of Cloudflare Workers and GitHub, as well as exploitation of the WinRAR vulnerability <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-38831">CVE-2023-38831</a>. Our countermeasures included internal actions, such as detections and code takedowns, as well as external collaboration with third parties to remove the actor’s cloud-hosted malware. Our effectiveness against this actor prolonged their operational timeline from days to weeks. For example, in a single instance, FlyingYeti spent almost eight hours debugging their code as a result of our mitigations. By employing proactive defense measures, we successfully stopped this determined threat actor from achieving their objectives.</p>
    <div>
      <h3>Executive Summary</h3>
      <a href="#executive-summary">
        
      </a>
    </div>
    <ul><li><p>On April 18, 2024, Cloudforce One detected the Russia-aligned threat actor FlyingYeti preparing to launch a phishing espionage campaign targeting individuals in Ukraine.</p></li><li><p>We discovered the actor used similar tactics, techniques, and procedures (TTPs) as those detailed in <a href="https://cert.gov.ua/article/6278620">Ukranian CERT's article on UAC-0149</a>, a threat group that has primarily <a href="https://cert.gov.ua/article/6277849?ref=news.risky.biz">targeted Ukrainian defense entities with COOKBOX malware since at least the fall of 2023</a>.</p></li><li><p>From mid-April to mid-May, we observed FlyingYeti conduct reconnaissance activity, create lure content for use in their phishing campaign, and develop various iterations of their malware. We assessed that the threat actor intended to launch their campaign in early May, likely following Orthodox Easter.</p></li><li><p>After several weeks of monitoring actor reconnaissance and weaponization activity (<a href="https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html">Cyber Kill Chain Stages 1 and 2</a>), we successfully disrupted FlyingYeti’s operation moments after the final COOKBOX payload was built.</p></li><li><p>The payload included an exploit for the WinRAR vulnerability CVE-2023-38831, which FlyingYeti will likely continue to use in their phishing campaigns to infect targets with malware.</p></li><li><p>We offer steps users can take to defend themselves against FlyingYeti phishing operations, and also provide recommendations, detections, and indicators of compromise.</p></li></ul>
    <div>
      <h2>Who is FlyingYeti?</h2>
      <a href="#who-is-flyingyeti">
        
      </a>
    </div>
    <p>FlyingYeti is the <a href="https://www.merriam-webster.com/dictionary/cryptonym">cryptonym</a> given by <a href="/introducing-cloudforce-one-threat-operations-and-threat-research">Cloudforce One</a> to the threat group behind this phishing campaign, which overlaps with UAC-0149 activity tracked by <a href="https://cert.gov.ua/">CERT-UA</a> in <a href="https://cert.gov.ua/article/6277849?ref=news.risky.biz">February</a> and <a href="https://cert.gov.ua/article/6278620">April</a> 2024. The threat actor uses dynamic DNS (<a href="https://www.cloudflare.com/learning/dns/glossary/dynamic-dns/">DDNS</a>) for their infrastructure and leverages cloud-based platforms for hosting malicious content and for malware command and control (C2). Our investigation of FlyingYeti TTPs suggests this is likely a Russia-aligned threat group. The actor appears to primarily focus on targeting Ukrainian military entities. Additionally, we observed Russian-language comments in FlyingYeti’s code, and the actor’s operational hours falling within the UTC+3 time zone.</p>
    <div>
      <h2>Campaign background</h2>
      <a href="#campaign-background">
        
      </a>
    </div>
    <p>In the days leading up to the start of the campaign, Cloudforce One observed FlyingYeti conducting reconnaissance on payment processes for Ukrainian communal housing and utility services:</p><ul><li><p>April 22, 2024 – research into changes made in 2016 that introduced the use of QR codes in payment notices</p></li><li><p>April 22, 2024 – research on current developments concerning housing and utility debt in Ukraine</p></li><li><p>April 25, 2024 – research on the legal basis for restructuring housing debt in Ukraine as well as debt involving utilities, such as gas and electricity</p></li></ul><p>Cloudforce One judges that the observed reconnaissance is likely due to the Ukrainian government’s payment moratorium introduced at the start of the full-fledged invasion in February 2022. Under this moratorium, outstanding debt would not lead to evictions or termination of provision of utility services. However, on January 9, 2024, the <a href="https://en.interfax.com.ua/news/economic/959388.html">government lifted this ban</a>, resulting in increased pressure on Ukrainian citizens with outstanding debt. FlyingYeti sought to capitalize on that pressure, leveraging debt restructuring and payment-related lures in an attempt to increase their chances of successfully targeting Ukrainian individuals.</p>
    <div>
      <h2>Analysis of the Komunalka-themed phishing site</h2>
      <a href="#analysis-of-the-komunalka-themed-phishing-site">
        
      </a>
    </div>
    <p>The disrupted phishing campaign would have directed FlyingYeti targets to an actor-controlled GitHub page at hxxps[:]//komunalka[.]github[.]io, which is a spoofed version of the Kyiv Komunalka communal housing site <a href="https://www.komunalka.ua">https://www.komunalka.ua</a>. Komunalka functions as a payment processor for residents in the Kyiv region and allows for payment of utilities, such as gas, electricity, telephone, and Internet. Additionally, users can pay other fees and fines, and even donate to Ukraine’s defense forces.</p><p>Based on past FlyingYeti operations, targets may be directed to the actor’s Github page via a link in a phishing email or an encrypted Signal message. If a target accesses the spoofed Komunalka platform at hxxps[:]//komunalka[.]github[.]io, the page displays a large green button with a prompt to download the document “Рахунок.docx” (“Invoice.docx”), as shown in Figure 1. This button masquerades as a link to an overdue payment invoice but actually results in the download of the malicious archive “Заборгованість по ЖКП.rar” (“Debt for housing and utility services.rar”).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/22Rnm7YOnwnJocG98RMFDa/def10039081f7e9c6df15980a8b855ac/image4-5.png" />
            
            </figure><p>Figure 1: Prompt to download malicious archive “Заборгованість по ЖКП.rar”</p><p>A series of steps must take place for the download to successfully occur:</p><ul><li><p>The target clicks the green button on the actor’s GitHub page hxxps[:]//komunalka.github[.]io</p></li><li><p>The target’s device sends an HTTP POST request to the Cloudflare Worker worker-polished-union-f396[.]vqu89698[.]workers[.]dev with the HTTP request body set to “user=Iahhdr”</p></li><li><p>The Cloudflare Worker processes the request and evaluates the HTTP request body</p></li><li><p>If the request conditions are met, the Worker fetches the RAR file from hxxps[:]//raw[.]githubusercontent[.]com/kudoc8989/project/main/Заборгованість по ЖКП.rar, which is then downloaded on the target’s device</p></li></ul><p>Cloudforce One identified the infrastructure responsible for facilitating the download of the malicious RAR file and remediated the actor-associated Worker, preventing FlyingYeti from delivering its malicious tooling. In an effort to circumvent Cloudforce One's mitigation measures, FlyingYeti later changed their malware delivery method. Instead of the Workers domain fetching the malicious RAR file, it was loaded directly from GitHub.</p>
    <div>
      <h2>Analysis of the malicious RAR file</h2>
      <a href="#analysis-of-the-malicious-rar-file">
        
      </a>
    </div>
    <p>During remediation, Cloudforce One recovered the RAR file “Заборгованість по ЖКП.rar” and performed analysis of the malicious payload. The downloaded RAR archive contains multiple files, including a file with a name that contains the unicode character “U+201F”. This character appears as whitespace on Windows devices and can be used to “hide” file extensions by adding excessive whitespace between the filename and the file extension. As highlighted in blue in Figure 2, this cleverly named file within the RAR archive appears to be a PDF document but is actually a malicious CMD file (“Рахунок на оплату.pdf[unicode character U+201F].cmd”).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/55Vjmg9VLEnAFv3RZQoZ2l/866016a2489f2a6c780c9f3971dd28ca/image2-11.png" />
            
            </figure><p>Figure 2: Files contained in the malicious RAR archive “Заборгованість по ЖКП.rar” (“Housing Debt.rar”)</p><p>FlyingYeti included a benign PDF in the archive with the same name as the CMD file but without the unicode character, “Рахунок на оплату.pdf” (“Invoice for payment.pdf”). Additionally, the directory name for the archive once decompressed also contained the name “Рахунок на оплату.pdf”. This overlap in names of the benign PDF and the directory allows the actor to exploit the WinRAR vulnerability <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-38831">CVE-2023-38831</a>. More specifically, when an archive includes a benign file with the same name as the directory, the entire contents of the directory are opened by the WinRAR application, resulting in the execution of the malicious CMD. In other words, when the target believes they are opening the benign PDF “Рахунок на оплату.pdf”, the malicious CMD file is executed.</p><p>The CMD file contains the FlyingYeti PowerShell malware known as <a href="https://cert.gov.ua/article/6277849?ref=news.risky.biz">COOKBOX</a>. The malware is designed to persist on a host, serving as a foothold in the infected device. Once installed, this variant of COOKBOX will make requests to the DDNS domain postdock[.]serveftp[.]com for C2, awaiting PowerShell <a href="https://learn.microsoft.com/en-us/powershell/scripting/powershell-commands?view=powershell-7.4">cmdlets</a> that the malware will subsequently run.</p><p>Alongside COOKBOX, several decoy documents are opened, which contain hidden tracking links using the <a href="https://canarytokens.com/generate">Canary Tokens</a> service. The first document, shown in Figure 3 below, poses as an agreement under which debt for housing and utility services will be restructured.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/20vFV9kNTMmwxFXvpQoJTc/12542fb7a7d2108d49607f2a23fc7575/image5-10.png" />
            
            </figure><p>Figure 3: Decoy document Реструктуризація боргу за житлово комунальні послуги.docx</p><p>The second document (Figure 4) is a user agreement outlining the terms and conditions for the usage of the payment platform komunalka[.]ua.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1VHSTwqfrXWXvoryg8lOcE/68eb096bc82f18c7edcb4c88c1ed6d2c/image3-6.png" />
            
            </figure><p>Figure 4: Decoy document Угода користувача.docx <i>(User Agreement.docx)</i></p><p>The use of relevant decoy documents as part of the phishing and delivery activity are likely an effort by FlyingYeti operators to increase the appearance of legitimacy of their activities.</p><p>The phishing theme we identified in this campaign is likely one of many themes leveraged by this actor in a larger operation to target Ukrainian entities, in particular their defense forces. In fact, the threat activity we detailed in this blog uses many of the same techniques outlined in a <a href="https://cert.gov.ua/article/6278620">recent FlyingYeti campaign</a> disclosed by CERT-UA in mid-April 2024, where the actor leveraged United Nations-themed lures involving Peace Support Operations to target Ukraine’s military. Due to Cloudforce One’s defensive actions covered in the next section, this latest FlyingYeti campaign was prevented as of the time of publication.</p>
    <div>
      <h2>Mitigating FlyingYeti activity</h2>
      <a href="#mitigating-flyingyeti-activity">
        
      </a>
    </div>
    <p>Cloudforce One mitigated FlyingYeti’s campaign through a series of actions. Each action was taken to increase the actor’s cost of continuing their operations. When assessing which action to take and why, we carefully weighed the pros and cons in order to provide an effective active defense strategy against this actor. Our general goal was to increase the amount of time the threat actor spent trying to develop and weaponize their campaign.</p><p>We were able to successfully extend the timeline of the threat actor’s operations from hours to weeks. At each interdiction point, we assessed the impact of our mitigation to ensure the actor would spend more time attempting to launch their campaign. Our mitigation measures disrupted the actor’s activity, in one instance resulting in eight additional hours spent on debugging code.</p><p>Due to our proactive defense efforts, FlyingYeti operators adapted their tactics multiple times in their attempts to launch the campaign. The actor originally intended to have the Cloudflare Worker fetch the malicious RAR file from GitHub. After Cloudforce One interdiction of the Worker, the actor attempted to create additional Workers via a new account. In response, we disabled all Workers, leading the actor to load the RAR file directly from GitHub. Cloudforce One notified GitHub, resulting in the takedown of the RAR file, the GitHub project, and suspension of the account used to host the RAR file. In return, FlyingYeti began testing the option to host the RAR file on the file sharing sites <a href="https://pixeldrain.com/">pixeldrain</a> and <a href="https://www.filemail.com/">Filemail</a>, where we observed the actor alternating the link on the Komunalka phishing site between the following:</p><ul><li><p>hxxps://pixeldrain[.]com/api/file/ZAJxwFFX?download=one</p></li><li><p>hxxps://1014.filemail[.]com/api/file/get?filekey=e_8S1HEnM5Rzhy_jpN6nL-GF4UAP533VrXzgXjxH1GzbVQZvmpFzrFA&amp;pk_vid=a3d82455433c8ad11715865826cf18f6</p></li></ul><p>We notified GitHub of the actor’s evolving tactics, and in response GitHub removed the Komunalka phishing site. After analyzing the files hosted on pixeldrain and Filemail, we determined the actor uploaded dummy payloads, likely to monitor access to their phishing infrastructure (FileMail logs IP addresses, and both file hosting sites provide view and download counts). At the time of publication, we did not observe FlyingYeti upload the malicious RAR file to either file hosting site, nor did we identify the use of alternative phishing or malware delivery methods.</p><p>A timeline of FlyingYeti’s activity and our corresponding mitigations can be found below.</p>
    <div>
      <h3>Event timeline</h3>
      <a href="#event-timeline">
        
      </a>
    </div>
    
<div><table><colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
  <tr>
    <th><span>Date</span></th>
    <th><span>Event Description</span></th>
  </tr></thead>
<tbody>
  <tr>
    <td><span>2024-04-18 12:18</span></td>
    <td><span>Threat Actor (TA) creates a Worker to handle requests from a phishing site</span></td>
  </tr>
  <tr>
    <td><span>2024-04-18 14:16</span></td>
    <td><span>TA creates phishing site komunalka[.]github[.]io on GitHub</span></td>
  </tr>
  <tr>
    <td><span>2024-04-25 12:25</span></td>
    <td><span>TA creates a GitHub repo to host a RAR file</span></td>
  </tr>
  <tr>
    <td><span>2024-04-26 07:46</span></td>
    <td><span>TA updates the first Worker to handle requests from users visiting komunalka[.]github[.]io</span></td>
  </tr>
  <tr>
    <td><span>2024-04-26 08:24</span></td>
    <td><span>TA uploads a benign test RAR to the GitHub repo</span></td>
  </tr>
  <tr>
    <td><span>2024-04-26 13:38</span></td>
    <td><span>Cloudforce One identifies a Worker receiving requests from users visiting komunalka[.]github[.]io, observes its use as a phishing page</span></td>
  </tr>
  <tr>
    <td><span>2024-04-26 13:46</span></td>
    <td><span>Cloudforce One identifies that the Worker fetches a RAR file from GitHub (the malicious RAR payload is not yet hosted on the site)</span></td>
  </tr>
  <tr>
    <td><span>2024-04-26 19:22</span></td>
    <td><span>Cloudforce One creates a detection to identify the Worker that fetches the RAR</span></td>
  </tr>
  <tr>
    <td><span>2024-04-26 21:13</span></td>
    <td><span>Cloudforce One deploys real-time monitoring of the RAR file on GitHub</span></td>
  </tr>
  <tr>
    <td><span>2024-05-02 06:35</span></td>
    <td><span>TA deploys a weaponized RAR (CVE-2023-38831) to GitHub with their COOKBOX malware packaged in the archive</span></td>
  </tr>
  <tr>
    <td><span>2024-05-06 10:03</span></td>
    <td><span>TA attempts to update the Worker with link to weaponized RAR, the Worker is immediately blocked</span></td>
  </tr>
  <tr>
    <td><span>2024-05-06 10:38</span></td>
    <td><span>TA creates a new Worker, the Worker is immediately blocked</span></td>
  </tr>
  <tr>
    <td><span>2024-05-06 11:04</span></td>
    <td><span>TA creates a new account (#2) on Cloudflare</span></td>
  </tr>
  <tr>
    <td><span>2024-05-06 11:06</span></td>
    <td><span>TA creates a new Worker on account #2 (blocked)</span></td>
  </tr>
  <tr>
    <td><span>2024-05-06 11:50</span></td>
    <td><span>TA creates a new Worker on account #2 (blocked)</span></td>
  </tr>
  <tr>
    <td><span>2024-05-06 12:22</span></td>
    <td><span>TA creates a new modified Worker on account #2</span></td>
  </tr>
  <tr>
    <td><span>2024-05-06 16:05</span></td>
    <td><span>Cloudforce One disables the running Worker on account #2</span></td>
  </tr>
  <tr>
    <td><span>2024-05-07 22:16</span></td>
    <td><span>TA notices the Worker is blocked, ceases all operations</span></td>
  </tr>
  <tr>
    <td><span>2024-05-07 22:18</span></td>
    <td><span>TA deletes original Worker first created to fetch the RAR file from the GitHub phishing page</span></td>
  </tr>
  <tr>
    <td><span>2024-05-09 19:28</span></td>
    <td><span>Cloudforce One adds phishing page komunalka[.]github[.]io to real-time monitoring</span></td>
  </tr>
  <tr>
    <td><span>2024-05-13 07:36</span></td>
    <td><span>TA updates the github.io phishing site to point directly to the GitHub RAR link</span></td>
  </tr>
  <tr>
    <td><span>2024-05-13 17:47</span></td>
    <td><span>Cloudforce One adds COOKBOX C2 postdock[.]serveftp[.]com to real-time monitoring for DNS resolution</span></td>
  </tr>
  <tr>
    <td><span>2024-05-14 00:04</span></td>
    <td><span>Cloudforce One notifies GitHub to take down the RAR file</span></td>
  </tr>
  <tr>
    <td><span>2024-05-15 09:00</span></td>
    <td><span>GitHub user, project, and link for RAR are no longer accessible</span></td>
  </tr>
  <tr>
    <td><span>2024-05-21 08:23</span></td>
    <td><span>TA updates Komunalka phishing site on github.io to link to pixeldrain URL for dummy payload (pixeldrain only tracks view and download counts)</span></td>
  </tr>
  <tr>
    <td><span>2024-05-21 08:25</span></td>
    <td><span>TA updates Komunalka phishing site to link to FileMail URL for dummy payload (FileMail tracks not only view and download counts, but also IP addresses)</span></td>
  </tr>
  <tr>
    <td><span>2024-05-21 12:21</span></td>
    <td><span>Cloudforce One downloads PixelDrain document to evaluate payload</span></td>
  </tr>
  <tr>
    <td><span>2024-05-21 12:47</span></td>
    <td><span>Cloudforce One downloads FileMail document to evaluate payload</span></td>
  </tr>
  <tr>
    <td><span>2024-05-29 23:59</span></td>
    <td><span>GitHub takes down Komunalka phishing site</span></td>
  </tr>
  <tr>
    <td><span>2024-05-30 13:00</span></td>
    <td><span>Cloudforce One publishes the results of this investigation</span></td>
  </tr>
</tbody></table></div>
    <div>
      <h2>Coordinating our FlyingYeti response</h2>
      <a href="#coordinating-our-flyingyeti-response">
        
      </a>
    </div>
    <p>Cloudforce One leveraged industry relationships to provide advanced warning and to mitigate the actor’s activity. To further protect the intended targets from this phishing threat, Cloudforce One notified and collaborated closely with GitHub’s Threat Intelligence and Trust and Safety Teams. We also notified CERT-UA and Cloudflare industry partners such as CrowdStrike, Mandiant/Google Threat Intelligence, and Microsoft Threat Intelligence.</p>
    <div>
      <h3>Hunting FlyingYeti operations</h3>
      <a href="#hunting-flyingyeti-operations">
        
      </a>
    </div>
    <p>There are several ways to hunt FlyingYeti in your environment. These include using PowerShell to hunt for WinRAR files, deploying Microsoft Sentinel analytics rules, and running Splunk scripts as detailed below. Note that these detections may identify activity related to this threat, but may also trigger unrelated threat activity.</p>
    <div>
      <h3>PowerShell hunting</h3>
      <a href="#powershell-hunting">
        
      </a>
    </div>
    <p>Consider running a PowerShell script such as <a href="https://github.com/IR-HuntGuardians/CVE-2023-38831-HUNT/blob/main/hunt-script.ps1">this one</a> in your environment to identify exploitation of CVE-2023-38831. This script will interrogate WinRAR files for evidence of the exploit.</p>
            <pre><code>CVE-2023-38831
Description:winrar exploit detection 
open suspios (.tar / .zip / .rar) and run this script to check it 

function winrar-exploit-detect(){
$targetExtensions = @(".cmd" , ".ps1" , ".bat")
$tempDir = [System.Environment]::GetEnvironmentVariable("TEMP")
$dirsToCheck = Get-ChildItem -Path $tempDir -Directory -Filter "Rar*"
foreach ($dir in $dirsToCheck) {
    $files = Get-ChildItem -Path $dir.FullName -File
    foreach ($file in $files) {
        $fileName = $file.Name
        $fileExtension = [System.IO.Path]::GetExtension($fileName)
        if ($targetExtensions -contains $fileExtension) {
            $fileWithoutExtension = [System.IO.Path]::GetFileNameWithoutExtension($fileName); $filename.TrimEnd() -replace '\.$'
            $cmdFileName = "$fileWithoutExtension"
            $secondFile = Join-Path -Path $dir.FullName -ChildPath $cmdFileName
            
            if (Test-Path $secondFile -PathType Leaf) {
                Write-Host "[!] Suspicious pair detected "
                Write-Host "[*]  Original File:$($secondFile)" -ForegroundColor Green 
                Write-Host "[*] Suspicious File:$($file.FullName)" -ForegroundColor Red

                # Read and display the content of the command file
                $cmdFileContent = Get-Content -Path $($file.FullName)
                Write-Host "[+] Command File Content:$cmdFileContent"
            }
        }
    }
}
}
winrar-exploit-detect</code></pre>
            
    <div>
      <h3></h3>
      <a href="#">
        
      </a>
    </div>
    <p>Microsoft Sentinel</p><p>In Microsoft Sentinel, consider deploying the rule provided below, which identifies WinRAR execution via cmd.exe. Results generated by this rule may be indicative of attack activity on the endpoint and should be analyzed.</p>
            <pre><code>DeviceProcessEvents
| where InitiatingProcessParentFileName has @"winrar.exe"
| where InitiatingProcessFileName has @"cmd.exe"
| project Timestamp, DeviceName, FileName, FolderPath, ProcessCommandLine, AccountName
| sort by Timestamp desc</code></pre>
            
    <div>
      <h3></h3>
      <a href="#">
        
      </a>
    </div>
    <p>Splunk</p><p>Consider using <a href="https://research.splunk.com/endpoint/d2f36034-37fa-4bd4-8801-26807c15540f/">this script</a> in your Splunk environment to look for WinRAR CVE-2023-38831 execution on your Microsoft endpoints. Results generated by this script may be indicative of attack activity on the endpoint and should be analyzed.</p>
            <pre><code>| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name=winrar.exe `windows_shells` OR Processes.process_name IN ("certutil.exe","mshta.exe","bitsadmin.exe") by Processes.dest Processes.user Processes.parent_process_name Processes.parent_process Processes.process_name Processes.process Processes.process_id Processes.parent_process_id 
| `drop_dm_object_name(Processes)` 
| `security_content_ctime(firstTime)` 
| `security_content_ctime(lastTime)` 
| `winrar_spawning_shell_application_filter`</code></pre>
            
    <div>
      <h2>Cloudflare product detections</h2>
      <a href="#cloudflare-product-detections">
        
      </a>
    </div>
    
    <div>
      <h3>Cloudflare Email Security</h3>
      <a href="#cloudflare-email-security">
        
      </a>
    </div>
    <p>Cloudflare Email Security (CES) customers can identify FlyingYeti threat activity with the following detections.</p><ul><li><p>CVE-2023-38831</p></li><li><p>FLYINGYETI.COOKBOX</p></li><li><p>FLYINGYETI.COOKBOX.Launcher</p></li><li><p>FLYINGYETI.Rar</p></li></ul>
    <div>
      <h2>Recommendations</h2>
      <a href="#recommendations">
        
      </a>
    </div>
    <p>Cloudflare recommends taking the following steps to mitigate this type of activity:</p><ul><li><p>Implement Zero Trust architecture foundations:    </p></li><li><p>Deploy Cloud Email Security to ensure that email services are protected against phishing, BEC and other threats</p></li><li><p>Leverage browser isolation to separate messaging applications like LinkedIn, email, and Signal from your main network</p></li><li><p>Scan, monitor and/or enforce controls on specific or sensitive data moving through your network environment with data loss prevention policies</p></li><li><p>Ensure your systems have the latest WinRAR and Microsoft security updates installed</p></li><li><p>Consider preventing WinRAR files from entering your environment, both at your Cloud Email Security solution and your Internet Traffic Gateway</p></li><li><p>Run an Endpoint Detection and Response (EDR) tool such as CrowdStrike or Microsoft Defender for Endpoint to get visibility into binary execution on hosts</p></li><li><p>Search your environment for the FlyingYeti indicators of compromise (IOCs) shown below to identify potential actor activity within your network.</p></li></ul><p>If you’re looking to uncover additional Threat Intelligence insights for your organization or need bespoke Threat Intelligence information for an incident, consider engaging with Cloudforce One by contacting your Customer Success manager or filling out <a href="https://www.cloudflare.com/zero-trust/lp/cloudforce-one-threat-intel-subscription/">this form</a>.</p>
    <div>
      <h2>Indicators of Compromise</h2>
      <a href="#indicators-of-compromise">
        
      </a>
    </div>
    
<div><table><colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
  <tr>
    <th><span>Domain / URL</span></th>
    <th><span>Description</span></th>
  </tr></thead>
<tbody>
  <tr>
    <td><span>komunalka[.]github[.]io</span></td>
    <td><span>Phishing page</span></td>
  </tr>
  <tr>
    <td><span>hxxps[:]//github[.]com/komunalka/komunalka[.]github[.]io</span></td>
    <td><span>Phishing page</span></td>
  </tr>
  <tr>
    <td><span>hxxps[:]//worker-polished-union-f396[.]vqu89698[.]workers[.]dev</span></td>
    <td><span>Worker that fetches malicious RAR file</span></td>
  </tr>
  <tr>
    <td><span>hxxps[:]//raw[.]githubusercontent[.]com/kudoc8989/project/main/Заборгованість по ЖКП.rar</span></td>
    <td><span>Delivery of malicious RAR file</span></td>
  </tr>
  <tr>
    <td><span>hxxps[:]//1014[.]filemail[.]com/api/file/get?filekey=e_8S1HEnM5Rzhy_jpN6nL-GF4UAP533VrXzgXjxH1GzbVQZvmpFzrFA&amp;pk_vid=a3d82455433c8ad11715865826cf18f6</span></td>
    <td><span>Dummy payload</span></td>
  </tr>
  <tr>
    <td><span>hxxps[:]//pixeldrain[.]com/api/file/ZAJxwFFX?download=</span></td>
    <td><span>Dummy payload</span></td>
  </tr>
  <tr>
    <td><span>hxxp[:]//canarytokens[.]com/stuff/tags/ni1cknk2yq3xfcw2al3efs37m/payments.js</span></td>
    <td><span>Tracking link</span></td>
  </tr>
  <tr>
    <td><span>hxxp[:]//canarytokens[.]com/stuff/terms/images/k22r2dnjrvjsme8680ojf5ccs/index.html</span></td>
    <td><span>Tracking link</span></td>
  </tr>
  <tr>
    <td><span>postdock[.]serveftp[.]com</span></td>
    <td><span>COOKBOX C2</span></td>
  </tr>
</tbody></table></div> ]]></content:encoded>
            <category><![CDATA[Cloud Email Security]]></category>
            <category><![CDATA[Cloudflare Workers]]></category>
            <category><![CDATA[Cloudforce One]]></category>
            <category><![CDATA[CVE]]></category>
            <category><![CDATA[Exploit]]></category>
            <category><![CDATA[GitHub]]></category>
            <category><![CDATA[Intrusion Detection]]></category>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Microsoft]]></category>
            <category><![CDATA[Phishing]]></category>
            <category><![CDATA[Remote Browser Isolation]]></category>
            <category><![CDATA[Russia]]></category>
            <category><![CDATA[Serverless]]></category>
            <category><![CDATA[Threat Data]]></category>
            <category><![CDATA[Threat Intelligence]]></category>
            <category><![CDATA[Threat Operations]]></category>
            <category><![CDATA[Ukraine]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <guid isPermaLink="false">5JO10nXN3tLVG2C1EttkiH</guid>
            <dc:creator>Cloudforce One</dc:creator>
        </item>
        <item>
            <title><![CDATA[Malicious “RedAlert - Rocket Alerts” application targets Israeli phone calls, SMS, and user information]]></title>
            <link>https://blog.cloudflare.com/malicious-redalert-rocket-alerts-application-targets-israeli-phone-calls-sms-and-user-information/</link>
            <pubDate>Sat, 14 Oct 2023 00:00:55 GMT</pubDate>
            <description><![CDATA[ On October 13, 2023, Cloudflare’s Cloudforce One Threat Operations Team became aware of a malicious Google Android application impersonating the real-time rocket alert app, Red Alert, which  provides real-time rocket alerts for Israeli citizens ]]></description>
            <content:encoded><![CDATA[ <p></p><p>On October 13, 2023, Cloudflare’s Cloudforce One Threat Operations Team became aware of a website hosting a Google Android Application (APK) impersonating the legitimate RedAlert - Rocket Alerts application (<a href="https://play.google.com/store/apps/details?id=com.red.alert&amp;hl=en&amp;pli=1">https://play.google.com/store/apps/details?id=com.red.alert&amp;hl=en&amp;pli=1</a>).  More than 5,000 rockets have been launched into Israel since the attacks from Hamas began on October 7th 2023.  RedAlert - Rocket Alerts developed by Elad Nava allows individuals to receive timely and precise alerts about incoming airstrikes. Many people living in Israel rely on these alerts to seek safety - a service which has become increasingly important given the newest escalations in the region.</p><p>Applications alerting of incoming airstrikes have become targets as only days ago, Pro-Palestinian hacktivist group AnonGhost exploited a vulnerability in another application, “Red Alert: Israel” by Kobi Snir. (<a href="https://cybernews.com/cyber-war/israel-redalert-breached-anonghost-hamas/">https://cybernews.com/cyber-war/israel-redalert-breached-anonghost-hamas/</a>) Their exploit allowed them to intercept requests, expose servers and APIs, and send fake alerts to some app users, including a message that a “nuclear bomb is coming”. AnonGhost also claimed they attacked other rocket alert applications, including RedAlert by Elad Nava. As of October 11, 2023, the RedAlert app was reportedly functioning normally.</p><p>In the last two days, a new malicious website (<i>hxxps://redalerts[.]me</i>) has advertised the download of well-known open source application RedAlert by Elad Nava (<a href="https://github.com/eladnava/redalert-android">https://github.com/eladnava/redalert-android</a>). Domain impersonation continues to be a popular vector for attackers, as the legitimate website for the application (<i>hxxps://redalert[.]me</i> ) differs from the malicious website by only one letter. Further, threat actors continue to exploit open source code and deploy modified, malicious versions to unsuspecting users.</p><p>The malicious website hosted links to both the iOS and the Android version of the RedAlert app. But while the link to the Apple App Store referred to the legitimate version of the RedAlert app by Elad Nava, the link supposedly referring to the Android version hosted on the Play Store directly downloads a malicious APK file. This attack demonstrates the danger of sideloading applications directly from the Internet as opposed to installing applications from the approved app store.</p><p>The malicious RedAlert version imitates the legitimate rocket alert application but simultaneously collects sensitive user data. Additional permissions requested by the malicious app include access to contacts, call logs, SMS, account information, as well as an overview of all installed apps.</p><p>The website hosting the malicious file was created on October 12, 2023 and has since been taken offline. Only users who installed the Android version of the app from this specific website are impacted and urgently advised to delete the app. Users can determine if they installed the malicious version by reviewing the permissions granted to the RedAlert app. If users are unsure whether they installed the malicious version, they can delete the RedAlert applications and reinstall the legitimate version directly in the Play Store.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6nCyNtOTncD702msYn7mzW/9550d6742b8bbf6ba382d36166da4357/pasted-image-0--13-.png" />
            
            </figure><p><i>Screenshot of the attacker site </i><a href="https://redalerts\[.\]me"><i>https://redalerts\[.\]me</i></a></p>
    <div>
      <h3>Malicious Android Package Kit (APK) Analysis</h3>
      <a href="#malicious-android-package-kit-apk-analysis">
        
      </a>
    </div>
    <p>The malicious Android Package Kit (APK) file is installed by a user when they click the Google Play button on the fake RedAlert site. Once clicked, the user downloads the app directly from the fake site at <code><i>hxxps://redalerts[.]me/app.apk</i></code>. The SHA-256 hash of the APK is <code><i>5087a896360f5d99fbf4eb859c824d19eb6fa358387bf6c2c5e836f7927921c5</i></code>.</p>
    <div>
      <h2>Capabilities</h2>
      <a href="#capabilities">
        
      </a>
    </div>
    <p>A quick analysis of the <i>AndroidManifest.xml</i> file shows several differences compared to the legitimate, open source RedAlert application. Most notable are the additional permissions needed to collect information on the victim. The permissions added are listed below:</p><ul><li><p>android.permission.GET_ACCOUNTS</p></li><li><p>android.permission.QUERY_ALL_PACKAGES</p></li><li><p>android.permission.READ_CALL_LOG</p></li><li><p>android.permission.READ_CONTACTS</p></li><li><p>android.permission.READ_PHONE_NUMBERS</p></li><li><p>android.permission.READ_PHONE_STATE</p></li><li><p>android.permission.READ_PRIVILEGED_PHONE_STATE</p></li><li><p>android.permission.READ_SMS</p></li></ul><p>The application is designed to look and act like RedAlert. However, upon opening the app, a malicious service is started in the background. The <code><i>startService()</i></code> call is the only change to the <code><i>onCreate()</i></code> method, and this begins the sequence of malicious activity, which the actor has placed in a package called <code><i>com.company.allinclusive.AI</i></code></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5SOvfo0vzlyyREVB4A9Jyt/a3a971fe5b0860bb403528579a5f5393/pasted-image-0--14-.png" />
            
            </figure><p><i>The attacker starts their malicious code within the legitimate RedAlert code com.red.alert.activities: Main.java</i></p><p>The service is run to gather data from victims’ phones and upload it to the actor’s secure server. The data is extensive and includes:</p><ul><li><p>SIM information, including IMEI and IMSI numbers, network type, country, voicemail number, PIN status, and more</p></li><li><p>Full Contact list</p></li><li><p>All SMS messages, including content and metadata for all statuses (e.g. received, outgoing, sent, etc.)</p></li><li><p>A list of accounts associated with the device</p></li><li><p>All phone calls and conversation details for including incoming, outgoing, missed, rejected, and blocked calls</p></li><li><p>Logged-in email and app accounts</p></li><li><p>List of installed applications</p></li></ul><p>The actor’s code for gathering this information is illustrated below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/33VyzytviTDeG7qXy6aCrK/3f74918c7ceaaae9a9ce18fd650050a2/Screenshot-2023-10-13-at-3.32.27-PM.png" />
            
            </figure><p><i>com.company.allinclusive.AI: AIMain.java contains the data the attacker will capture form the target</i></p><p>Stolen data is uploaded to an HTTP server at a hardcoded IP address. The actor has a <i>Tools</i> class which details the IP address where the data is to be uploaded:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5Fh4WgPsM5kmKnuM8Jqyxh/1307c4a8306bafcdfd47cc2f5e5323b8/Screenshot-2023-10-13-at-3.31.42-PM.png" />
            
            </figure><p><b>com.company.allinclusive.AI: Tools.java stores the attackers command and control for the malware</b></p><p>Although HTTP and port 80 are specified, the actor appears to have the ability to use HTTPS and port 443 if a certificate is found bundled within the application package:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4ty1JMARyIggOGXmFoJjcE/7c4fe21747005a3882da8d2ca448583d/Screenshot-2023-10-13-at-3.30.20-PM.png" />
            
            </figure><p><i>com.company.allinclusive.AI: UploadFileAsync.java</i></p><p>Data is uploaded through a <i>Connector</i> class, written by the actor. The <i>Connector</i> is responsible for encrypting the stolen data and uploading it to the HTTP server. In this sample, files are encrypted with AES in CBC mode with PKCS5 Padding. The keys are randomly generated and appended to the packaged data, however the keys are encrypted with RSA using a public key bundled in the malicious app. Because of this, anybody who is able to intercept the stolen data will be unable to decrypt it without the actor’s private key.</p><p>The encrypted files have names that look like <i>_</i><i>.final</i>, which contain:</p><ul><li><p><i><b>_</b></i><i><b>.enc</b></i><b> (encrypted data)</b></p></li><li><p><i><b>_</b></i><i><b>.param</b></i><b> (AES encryption parameters, e.g. key and IV)</b></p></li><li><p><i><b>_</b></i><i><b>.eparam</b></i><b> (RSA parameters, e.g. public key)</b></p></li></ul>
    <div>
      <h2>Anti-Analysis Runtime Capabilities</h2>
      <a href="#anti-analysis-runtime-capabilities">
        
      </a>
    </div>
    <p>To avoid detection the actor included anti-analysis capabilities which can run at the time the app is started. The methods for anti-analysis that the attacker has included were anti-debugging, anti-emulation, and anti-test operations</p>
    <div>
      <h3>Anti-Debugging</h3>
      <a href="#anti-debugging">
        
      </a>
    </div>
    <p>The application makes a simple call using the builtin <i>android.os.Debug</i> package to see if the application is being debugged.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7n1Dsyz3tBVwTCQDzQjCpu/62e2fcf823fee0b7c1f144d1d302c557/Screenshot-2023-10-13-at-3.29.28-PM.png" />
            
            </figure><p><i>com.company.allinclusive.AI.anti.debugger: FindDebugger.java</i></p>
    <div>
      <h3>Anti-Emulation</h3>
      <a href="#anti-emulation">
        
      </a>
    </div>
    <p>The application attempts to locate certain files and identifiers to determine whether it is being run in an emulated environment. A snippet of these indicators are shown below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5oRGahgfmW0fqsFZ3L7Bi1/c63b68f780e19a3a3d8f005db7e15c50/pasted-image-0--12--1.png" />
            
            </figure><p><i>com.company.allinclusive.AI.anti.emulator: FindEmulator.java checks for common emulators</i></p>
    <div>
      <h3>Anti-Test</h3>
      <a href="#anti-test">
        
      </a>
    </div>
    <p>The application has utilities to identify whether a test user (“monkey”) is using the application:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5bibuD77OAXj6pBVkBb012/9d5c06d0c17b43978e70bfe6101ea8d4/Screenshot-2023-10-13-at-3.28.48-PM.png" />
            
            </figure><p><i>com.company.allinclusive.AI.anti.monkey: FindMonkey.java</i></p><p>These methodologies are all rudimentary checks for whether the application is under runtime analysis. It does not, however, protect the malicious code against static analysis.</p>
    <div>
      <h2>How To Detect This Malware On Your Device</h2>
      <a href="#how-to-detect-this-malware-on-your-device">
        
      </a>
    </div>
    <p>If you have installed RedAlert on your device, the extraneous permissions added by the actor can be used to determine whether you have been compromised. The following permissions appearing on the RedAlert app (whether or not enabled) would indicate compromise:</p><ul><li><p>Call Logs</p></li><li><p>Contacts</p></li><li><p>Phone</p></li><li><p>SMS</p></li></ul>
    <div>
      <h2>How To Protect Yourself</h2>
      <a href="#how-to-protect-yourself">
        
      </a>
    </div>
    <p>You can avoid attacks like this by following the guidance below:</p><ul><li><p>Keep your mobile device up to date on the latest software version at all times</p></li><li><p>Consider using Cloudflare Teams (with <a href="https://www.cloudflare.com/zero-trust/products/gateway/">Cloudflare Gateway</a>)</p></li><li><p>Avoid using third party mobile application stores</p></li><li><p>Never install applications from Internet URLs or sideload payloads</p></li><li><p>Consider using <a href="https://1.1.1.1/family/">1.1.1.1 for families</a> to block malicious domains on your network</p></li></ul>
    <div>
      <h2>IOCs</h2>
      <a href="#iocs">
        
      </a>
    </div>
    <table><colgroup><col></col><col></col></colgroup><tbody><tr><td><p><span>Type</span></p></td><td><p><span>Indicator</span></p></td></tr><tr><td><p><span>Malicious RedAlert APK Download URL</span></p></td><td><p><span>hxxp://redalerts[.]me/app.apk</span></p></td></tr><tr><td><p><span>Malicious RedAlert APK Command and Control</span></p></td><td><p><span>hxxp://23.254.228[.]135:80/file.php</span></p></td></tr><tr><td><p><span>Malicious RedAlert APK</span></p></td><td><p><span>5087a896360f5d99fbf4eb859c824d19eb6fa358387bf6c2c5e836f7927921c5</span></p></td></tr><tr><td><p><span>Public key, RSA/ECB/PKCS1Padding</span></p></td><td><p><span>MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvBYe8dLw1TVH39EVQEwCr7kgBRtQz2M2vQbgkbr0UiTFm0Tk9KVZ1jn0uVgJ+dh1I7uuIfzFEopFQ35OxRnjmNAJsOYpYA5ZvD2llS+KUyE4TRJZGh+dfGjc98dCGCVW9aPVuyfciFNpzGU+lUV/nIbi8xmHOSzho+GZvrRWNDvJqmX7Xunjr1crAKIpG1kF8bpa9+VkoKnMOqFBTc6aPEmwj4CmeTsTy+j7ubdKc8tsdoCTGfrLzVj4wlGDjtf06dYEtZ6zvdBbzb4UA6Ilxsb12KY03qdlqlFREqCxjtJUYDEYChnpOSkrzpLOu+TTkAlW68+u6JjgE8AAAnjpIGRRNvuj5ZfTS3Ub3xEABBRUuHcesseuaN3wVwvMBIMbWJabVUWUNWYyCewxrtdrc8HStECbS/b05j2lv6Cl1Qv1iQefurL/hvfREmxlHAnkCmzTxlrEStHHnNmhWOccQI+u0VO6klJShNg8XlRsKXnqpPi3aicki+QMo3i1oWOve6aWkAIJvmHaY4Gmz0nX2foxlJ2YxOGQe0rUAqDXa8S6tYSmIyCYJoTmllvwJAEpCtOFxerZIAa/1BaxYFhH/iQUzzayJuc6ooUmKLw7q72pe3tN0cRT3RAJUmRwTcV5hL+UQgakkSzIMFBpM/rpvNC0Qy94mtpNf6iA6gbKm40CAwEAAQ==</span></p></td></tr></tbody></table><hr /><p>Under attack? Contact our <a href="https://www.cloudflare.com/under-attack-hotline/">hotline</a> to speak with someone immediately.<i>Visit</i> <a href="https://1.1.1.1/"><i>1.1.1.1</i></a> <i>from any device to get started with our free app that makes your Internet faster and safer.To learn more about our mission to help build a better Internet, start</i> <a href="https://www.cloudflare.com/learning/what-is-cloudflare/"><i>here</i></a><i>. If you’re looking for a new career direction, check out</i> <a href="https://cloudflare.com/careers"><i>our open positions</i></a><i>.</i></p> ]]></content:encoded>
            <category><![CDATA[Cloudforce One]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[Internet Traffic]]></category>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Threat Intelligence]]></category>
            <guid isPermaLink="false">5EMFsMJweR3mxektZeptQt</guid>
            <dc:creator>Blake Darché</dc:creator>
            <dc:creator>Armen Boursalian</dc:creator>
            <dc:creator>Javier Castro</dc:creator>
        </item>
        <item>
            <title><![CDATA[How sophisticated scammers and phishers are preying on customers of Silicon Valley Bank]]></title>
            <link>https://blog.cloudflare.com/how-sophisticated-scammers-and-phishers-are-preying-on-customers-of-silicon-valley-bank/</link>
            <pubDate>Tue, 14 Mar 2023 23:11:35 GMT</pubDate>
            <description><![CDATA[ In order to breach trust and trick unsuspecting victims, threat actors overwhelmingly use topical events as lures. The news about what happened at Silicon Valley Bank is the latest event to watch out for and stay vigilant against opportunistic phishing campaigns using SVB as the lure ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2K9Pq73I7we9IQNaqEV9Yk/dae023389b8cbdc00e8202d96378098c/SVB---Banking-Phishing.png" />
            
            </figure><p>By now, the news about what happened at Silicon Valley Bank (SVB) leading up to its <a href="https://www.cnn.com/2023/03/11/business/svb-collapse-roundup-takeaways/index.html">collapse</a> and takeover by the US Federal Government is well known. The rapid speed with which the collapse took place was surprising to many and the impact on organizations, both large and small, is expected to last a while.</p><p>Unfortunately, where everyone sees a tragic situation, threat actors see opportunity. We have seen this time and again - in order to breach trust and trick unsuspecting victims, threat actors overwhelmingly use topical events as lures. These follow the news cycle or known high profile events (The Super Bowl, March Madness, Tax Day, Black Friday sales, COVID-19, and on and on), since there is a greater likelihood of users falling for messages referencing what’s top of mind at any given moment.</p><p>The SVB news cycle makes for a similarly compelling topical event that threat actors can take advantage of; and it's crucial that organizations bolster their awareness campaigns and technical controls to help counter the eventual use of these tactics in upcoming attacks. It’s tragic that even as the FDIC is guaranteeing that SVB customers’ money is safe, bad actors are attempting to steal that very money!</p>
    <div>
      <h3>Preemptive action</h3>
      <a href="#preemptive-action">
        
      </a>
    </div>
    <p>In anticipation of future phishing attacks taking advantage of the SVB brand, <a href="/introducing-cloudforce-one-threat-operations-and-threat-research/">Cloudforce One</a> (Cloudflare’s threat operations and research team) significantly increased our brand monitoring focused on SVB’s digital presence starting March 10, 2023 and launched several additional detection modules to spot SVB-themed phishing campaigns. All of our customers taking advantage of our various <a href="https://www.cloudflare.com/zero-trust/solutions/email-security-services/">phishing protection services</a> automatically get the benefit of these new models.</p><p>Here’s an actual example of a real campaign involving SVB that’s happening since the bank was taken over by the FDIC.</p>
    <div>
      <h3>KYC phish - DocuSign-themed SVB campaign</h3>
      <a href="#kyc-phish-docusign-themed-svb-campaign">
        
      </a>
    </div>
    <p>A frequent tactic used by threat actors is to mimic ongoing KYC (Know Your Customer) efforts that banks routinely perform to validate details about their clients. This is intended to protect financial institutions against fraud, money laundering and financial crime, amongst other things.</p><p>On March 14, 2023, Cloudflare detected a large KYC phishing campaign leveraging the SVB brand in a DocuSign themed template. This campaign targeted Cloudflare and almost all industry verticals. Within the first few hours of the campaign, we detected 79 examples targeting different individuals in multiple organizations. Cloudflare is publishing one specific example of this campaign along with the tactics and observables seen to help customers be aware and vigilant of this activity.</p>
    <div>
      <h3>Campaign Details</h3>
      <a href="#campaign-details">
        
      </a>
    </div>
    <p>The phishing attack shown below targeted Matthew Prince, Founder &amp; CEO of Cloudflare on March 14, 2023. It included HTML code that contains an initial link and a complex redirect chain that is four-deep. The chain begins when the user clicks the ‘<i>Review Documents’</i> link. It takes the user to a trackable analytic link run by Sizmek by Amazon Advertising Server bs[.]serving-sys[.]com. The link then further redirects the user to a Google Firebase Application hosted on the domain na2signing[.]web[.]app. The na2signing[.]web[.]app HTML subsequently redirects the user to a WordPress site which is running yet another redirector at eaglelodgealaska[.]com. After this final redirect, the user is sent to an attacker-controlled docusigning[.]kirklandellis[.]net website.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5CUrJjdOU6E91EhkVvJ97S/2539df0907ea0b9f546b5b4507ec99f7/Screenshot-2023-03-14-at-10.11.01.png" />
            
            </figure><p>Campaign Timeline</p>
            <pre><code>2023-03-14T12:05:28Z		First Observed SVB DocuSign Campaign Launched
2023-03-14T15:25:26Z		Last Observed SVB DocuSign Campaign Launched</code></pre>
            
    <div>
      <h3>A look at the HTML file Google Firebase application (na2signing[.]web[.]app)</h3>
      <a href="#a-look-at-the-html-file-google-firebase-application-na2signing-web-app">
        
      </a>
    </div>
    <p>The included HTML file in the attack sends the user to a WordPress instance that has recursive redirection capability. As of this writing, we are not sure if this specific WordPress installation has been compromised or a plugin was installed to open this redirect location.</p>
            <pre><code>&lt;html dir="ltr" class="" lang="en"&gt;&lt;head&gt;
    &lt;title&gt;Sign in to your account&lt;/title&gt;
    
    &lt;script type="text/javascript"&gt;
    window.onload = function() {
        function Redirect (url){
            window.location.href = url;
        }
        var urlParams = new URLSearchParams(window.location.href);
        var e = window.location.href;
        
       
        Redirect("https://eaglelodgealaska[.]com/wp-header.php?url="+e);
    }
&lt;/script&gt;
</code></pre>
            
    <div>
      <h3>Indicators of Compromise</h3>
      <a href="#indicators-of-compromise">
        
      </a>
    </div>
    
            <pre><code>na2signing[.]web[.]app	Malicious Google Cloudbase Application.
eaglelodgealaska[.]com	Possibly compromised Wordpress website or an open redirect.

*[.]kirklandellis[.]net		Attacker Controlled Application running on at least docusigning[.]kirklandellis[.]net.</code></pre>
            
    <div>
      <h3>Recommendations</h3>
      <a href="#recommendations">
        
      </a>
    </div>
    <ol><li><p>Cloudflare Email Security customers can determine if they have received this campaign in their dashboard with the following search terms:</p><p><code>SH_6a73a08e46058f0ff78784f63927446d875e7e045ef46a3cb7fc00eb8840f6f0</code></p><p>Customers can also track IOCs related to this campaign through our Threat Indicators API. Any updated IOCs will be continually pushed to the relevant API endpoints.</p></li><li><p>Ensure that you have appropriate DMARC policy enforcement for inbound messages. Cloudflare recommends <b>[p = quarantine]</b> for any DMARC failures on incoming messages at a minimum. SVB’s DMARC records [<code>v=DMARC1; p=reject; pct=100</code>] explicitly state rejecting any messages that impersonate their brand and are not being sent from SVB’s list of designated and verified senders. Cloudflare Email Security customers will automatically get this enforcement based on SVB’s published DMARC records. For other domains, or to apply broader DMARC based policies on all inbound messages, Cloudflare recommends adhering to ‘Enhanced Sender Verification’ policies across all inbound emails within their <a href="https://developers.cloudflare.com/email-security/email-configuration/email-policies/">Cloudflare Area 1 dashboard</a>.</p></li><li><p>Cloudflare Gateway customers are automatically protected against these malicious URLs and domains. Customers can check their logs for these specific IOCs to determine if their organization had any traffic to these sites.</p></li><li><p>Work with your phishing awareness and training providers to deploy SVB-themed phishing simulations for your end users, if they haven’t done so already.</p></li><li><p>Encourage your end users to be vigilant about any ACH (Automated Clearing House) or SWIFT (Society for Worldwide Interbank Financial Telecommunication) related messages. ACH &amp; SWIFT are systems which financial institutions use for electronic funds transfers between entities. Given its large scale prevalence, ACH &amp; SWIFT phish are frequent tactics leveraged by threat actors to redirect payments to themselves. While we haven’t seen any large scale ACH campaigns utilizing the SVB brand over the past few days, it doesn’t mean they are not being planned or are imminent. Here are a few example subject lines to be aware of, that we have seen in similar payment fraud campaigns:</p><p><i>“We’ve changed our bank details”“Updated Bank Account Information”“YOUR URGENT ACTION IS NEEDED -Important - Bank account details change”“Important - Bank account details change”“Financial Institution Change Notice”</i></p></li><li><p>Stay vigilant against look-alike or cousin domains that could pop up in your email and web traffic associated with SVB. Cloudflare customers have in-built new domain controls within their email &amp; web traffic which would prevent <a href="https://www.cloudflare.com/learning/email-security/what-is-email-fraud/">anomalous activity</a> coming from these new domains from getting through.</p></li><li><p>Ensure any public facing web applications are always patched to the latest versions and run a modern Web Application Firewall service in front of your applications. The campaign mentioned above took advantage of WordPress, which is frequently used by threat actors for their phishing sites. If you’re using the Cloudflare WAF, you can be automatically protected from third party CVEs before you even know about them. Having an effective <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> is critical to preventing threat actors from taking over your public Web presence and using it as part of a phishing campaign, SVB-themed or otherwise.</p></li></ol>
    <div>
      <h3>Staying ahead</h3>
      <a href="#staying-ahead">
        
      </a>
    </div>
    <p>Cloudforce One (Cloudflare’s threat operations team) proactively monitors emerging campaigns in their formative stages and publishes advisories and detection model updates to ensure our customers are protected. While this specific campaign is focused on SVB, the tactics seen are no different to other similar campaigns that our global network sees every day and automatically stops them before it impacts our customers.</p><p>Having a blend of strong technical controls across multiple communication channels along with a trained and vigilant workforce that is aware of the dangers posed by digital communications is crucial to stopping these attacks from going through.</p><p>Learn more about how Cloudflare can help in your own journey towards comprehensive phishing protection by using our <a href="https://www.cloudflare.com/zero-trust-hub/">Zero Trust services</a> and reach out for a <a href="https://www.cloudflare.com/lp/emailsecurity/">complimentary assessment today</a>.</p> ]]></content:encoded>
            <category><![CDATA[Cloudflare One]]></category>
            <category><![CDATA[Phishing]]></category>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Email Security]]></category>
            <guid isPermaLink="false">7b0pR9io6vgFmhNY2MJybq</guid>
            <dc:creator>Shalabh Mohan</dc:creator>
            <dc:creator>Blake Darché</dc:creator>
        </item>
        <item>
            <title><![CDATA[How Cloudflare can help stop malware before it reaches your app]]></title>
            <link>https://blog.cloudflare.com/waf-content-scanning/</link>
            <pubDate>Wed, 04 Jan 2023 14:00:00 GMT</pubDate>
            <description><![CDATA[ Today, we’re making the job of application security teams easier, by providing a content scanning engine integrated with our Web Application Firewall (WAF), so that malicious files being uploaded by end users, never reach origin servers in the first place ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Let’s assume you manage a job advert site. On a daily basis job-seekers will be uploading their CVs, cover letters and other supplementary documents to your servers. What if someone tried to upload malware instead?</p><p>Today we’re making your security team job easier by providing a file content scanning engine integrated with our <a href="https://www.cloudflare.com/waf/">Web Application Firewall (WAF)</a>, so that malicious files being uploaded by end users get blocked before they reach application servers.</p><p>Enter WAF Content Scanning.</p><p>If you are an enterprise customer, reach out to your account team to get access.</p>
    <div>
      <h2>Making content scanning easy</h2>
      <a href="#making-content-scanning-easy">
        
      </a>
    </div>
    <p>At Cloudflare, we pride ourselves on making our products very easy to use. WAF Content Scanning was built with that goal in mind. The main requirement to use the Cloudflare WAF is that application traffic is proxying via the <a href="https://www.cloudflare.com/network/">Cloudflare network</a>. Once that is done, <a href="https://developers.cloudflare.com/waf/about/content-scanning/#1-enable-waf-content-scanning">turning on Content Scanning requires a single API call</a>.</p><p>Once on, the <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> will automatically detect any content being uploaded, and when found, scan it and provide the results for you to use when writing WAF Custom Rules or reviewing security analytics dashboards.</p><p>The entire process runs inline with your HTTP traffic and requires no change to your application.</p><p>As of today, we scan files up to 1 MB. You can easily block files that exceed this size or perform other actions such as log the upload.</p><p>To block a malicious file, you could write a simple WAF Custom Rule like the following:</p><p>if: <code>(cf.waf.content_scan.has_malicious_obj)</code></p><p>then: <code>BLOCK</code></p><p>In the dashboard the rule would look like this:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6daRCuMMjCfLuvANxoRSbS/51056b8e1ff80c7ae1788c98c62956bb/image4.png" />
            
            </figure><p>Many other use cases can be achieved by leveraging the metadata exposed by the WAF Content Scanning engine. For example, let’s say you only wanted to allow PDF files to be uploaded on a given endpoint. You would achieve this by deploying the following WAF Custom Rule:</p><p>if: <code>any(cf.waf.content_scan.obj_types[*] != "application/pdf") and http.request.uri.path eq "/upload"</code></p><p>then: <code>BLOCK</code></p><p>This rule will, for any content file being uploaded to the /upload endpoint, block the HTTP request if at least one file is not a PDF.</p><p>More generally, let’s assume your application does not expect content to be uploaded at all. In this case, you can block any upload attempts with:</p><p>if: <code>(cf.waf.content_scan.has_obj)</code></p><p>then: <code>BLOCK</code></p><p>Another very common use case is supporting file upload endpoints that accept JSON content. In this instance files are normally embedded into a JSON payload after being base64-encoded. If your application has such an endpoint, you can provide additional metadata to the scanning engine to recognise the traffic by submitting a <a href="https://developers.cloudflare.com/waf/about/content-scanning/#custom-scan-expressions">custom scan expression</a>. Once submitted, files within JSON payloads will be parsed, decoded, and scanned automatically. In the event you want to issue a block action, you can use a <a href="https://developers.cloudflare.com/waf/custom-rules/create-dashboard/#configuring-a-custom-response-for-blocked-requests">JSON custom response type</a> so that your web application front end can easily parse and display error messages:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6lLy5oO6L0sSZuMpRwpYqf/3579d013c6073b33fe91eab44e3ad26d/image1.png" />
            
            </figure><p>The full list of fields exposed by the WAF Content Scanning engine can be found on our <a href="https://developers.cloudflare.com/waf/about/content-scanning/">developer documentation</a>.</p>
    <div>
      <h2>The engine</h2>
      <a href="#the-engine">
        
      </a>
    </div>
    
    <div>
      <h3>Scanned content objects</h3>
      <a href="#scanned-content-objects">
        
      </a>
    </div>
    <p>A lot of time designing the system was spent defining what should be scanned. Defining this properly helps us ensure that we are not scanning unnecessary content reducing latency impact and CPU usage, and that there are no bypasses making the system complementary to existing WAF functionality.</p><p>The complexity stems from the fact that there is no clear definition of a “file” in HTTP terms. That’s why in this blog post and in the system design, we refer to “content object” instead.</p><p>At a high level, although this can loosely be defined as a “file”, not all “content objects” may end up being stored in the file system of an application server! Therefore, we need a definition that applies to HTTP. Additional complexity is given by the fact this is a security product, and attackers will always try to abuse HTTP to obfuscate/hide true intentions. So for example, although a <code>Content-Type</code> header may indicate that the request body is a <code>jpeg</code> image, it may actually be a <code>pdf</code>.</p><p>With the above in mind, a “content object” as of today, is any request payload that is detected by heuristics (so no referring to the <code>Content-Type</code> header) to be anything that is <b>not</b> <code>text/html</code>, <code>text/x-shellscript</code>, <code>application/json</code> or <code>text/xml</code>. All other content types are considered a content object.</p><p>Detecting via heuristics the content type of an HTTP request body is not enough, as content objects might be found within portions of the HTTP body or encoded following certain rules, such as when using <code>multipart/form-data</code>, which is the most common encoding used when creating standard HTML file input forms.</p><p>So when certain payload formats are found, additional parsing applies. As of today the engine will automatically parse and perform content type heuristics on individual components of the payload, when the payload is either encoded using <code>multipart/form-data</code> or <code>multipart/mixed</code> or a <code>JSON</code> string that may have “content objects” embedded in base64 format <a href="https://developers.cloudflare.com/waf/about/content-scanning/#2-optional-configure-a-custom-scan-expression">as defined by the customer</a></p><p>In these cases, we don’t scan the entire payload as a single content object, but we parse it following the relevant standard and apply scanning, if necessary, to the individual portions of the payload. That allows us to support scanning of more than one content object per request, such as an HTML form that has multiple file inputs. We plan to add additional automatic detections in the future on complex payloads moving forward.</p><p>In the event we end up finding a malicious match, but we were not able to detect the content type correctly, we will default to reporting a content type of <code>application/octet-stream</code> in the Cloudflare logs/dashboards.</p><p>Finally, it is worth noting that we explicitly avoid scanning anything that is plain text (HTML, JSON, XML etc.) as finding attack vectors in these payloads is already covered by the WAF, <a href="https://www.cloudflare.com/application-services/products/api-gateway/">API Gateway</a> and other <a href="https://www.cloudflare.com/application-services/solutions/">web application security solutions</a> already present in Cloudflare’s portfolio.</p>
    <div>
      <h3>Local scans</h3>
      <a href="#local-scans">
        
      </a>
    </div>
    <p>At Cloudflare, we try to leverage our horizontal architecture to build scalable software. This means the underlying scanner is deployed on every server that handles customer HTTP/S traffic. The diagram below describes the setup:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/249nbQXwboFqmUXV7jTmph/06851ef35672f016e1ab600c3f39cd74/image5.png" />
            
            </figure><p>Having each server perform the scanning locally helps ensure latency impact is reduced to a minimum to applicable HTTP requests. The actual scanning engine is the same one used by the <a href="https://www.cloudflare.com/products/zero-trust/gateway/">Cloudflare Web Gateway</a>, our forward proxy solution that among many other things, helps keep end user devices safe by blocking attempts to download malware.</p><p>Consequently, the scanning capabilities provided match <a href="https://developers.cloudflare.com/cloudflare-one/policies/filtering/http-policies/antivirus-scanning/">those exposed by the Web Gateway AV scanning</a>. The main difference as of today, is the maximum file size currently limited at 1 MB versus 15 MB in Web Gateway. We are working on increasing this to match the Web Gateway in the coming months.</p>
    <div>
      <h2>Separating detection from mitigation</h2>
      <a href="#separating-detection-from-mitigation">
        
      </a>
    </div>
    <p>A new approach that we are adopting within our application security portfolio is the separation of detection from mitigation. The WAF Content Scanning features follow this approach, as once turned on, it simply enhances all available data and fields with scan results. The benefits here are twofold.</p><p>First, this allows us to provide visibility into your application traffic, without you having to deploy any mitigation. This automatically opens up a great use case: discovery. For large enterprise applications security teams may not be aware of which paths or endpoints might be expecting file uploads from the Internet. Using our WAF Content Scanning feature in conjunction with our <a href="/security-analytics/">new Security Analytics</a> they can now filter on request traffic that has a file content object (a file being uploaded) to observe top N paths and hostnames, exposing such endpoints.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/71OBMDvqbIhOdBnuROxNiu/5d74a14b6b2d9244f78d549cce2951da/image2.png" />
            
            </figure><p>Second, as mentioned in the prior section, exposing the intelligence provided by Cloudflare as fields that can be used in our WAF Custom Rules allows us to provide a very flexible platform. As a plus, you don’t need to learn how to use a new feature, as you are likely already familiar with our WAF Custom Rule builder.</p><p>This is not a novel idea, and our <a href="https://www.cloudflare.com/products/bot-management/">Bot Management</a> solution was the first to trial it with great success. Any customer who uses Bot Management today gains access to a bot score field that indicates the likelihood of a request coming from automation or a human. Customers use this field to deploy rules that block bots.</p><p>To that point, let’s assume you run a job applications site, and you do not wish for bots and crawlers to automatically submit job applications. You can now block file uploads coming from bots!</p><p>if: <code>(cf.bot_management.score lt 10 and cf.waf.content_scan.has_obj)</code></p><p>then: <code>BLOCK</code></p><p>And that’s the power we wish to provide at your fingertips.</p>
    <div>
      <h2>Next steps</h2>
      <a href="#next-steps">
        
      </a>
    </div>
    <p>Our WAF Content Scanning is a new feature, and we have several improvements planned, including increasing the max content size scanned, exposing the “rewrite” action, so you can send malicious files to a quarantine server, and exposing better analytics that allow you to explore the data more easily without deploying rules. Stay tuned!</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Malware]]></category>
            <guid isPermaLink="false">5ro1lRPNQcKSIEar34o4fM</guid>
            <dc:creator>Michael Tremante</dc:creator>
        </item>
        <item>
            <title><![CDATA[Democratizing email security: protecting individuals and businesses of all sizes from phishing and malware attacks]]></title>
            <link>https://blog.cloudflare.com/democratizing-email-security/</link>
            <pubDate>Mon, 14 Mar 2022 12:59:33 GMT</pubDate>
            <description><![CDATA[ Once the acquisition of Area 1 closes, we plan to give all paid self-serve plans access to their email security technology at no additional charge ]]></description>
            <content:encoded><![CDATA[ 
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5t6mGqXJD9qlJOdDYKgFW4/062c99b0769b5c30eb07e056c53a87cd/image1-10.png" />
            
            </figure><p>Since our founding, Cloudflare has been on a mission to take expensive, complex security solutions typically only available to the largest companies and make them easy to use and accessible to everyone. In 2011 and 2015 we did this for the <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">web application firewall</a> and SSL/TLS markets, simplifying the process of protecting websites from application vulnerabilities and encrypting HTTP requests down to single clicks; in 2020, during the start of the COVID-19 pandemic, we made our Zero Trust suite available to everyone; and today—in the face of heightened phishing attacks—we’re doing the same for the email security market.</p><p>Once the acquisition of Area 1 closes, as we expect early in the second quarter of 2022, we plan to give all paid self-serve plans access to their <a href="https://www.cloudflare.com/zero-trust/solutions/email-security-services/">email security technology</a> at no additional charge. Control, customization, and visibility via analytics will vary with plan level, and the highest flexibility and support levels will be available to Enterprise customers for purchase.</p><p>All self-serve users will also get access to a more feature-packed version of the <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust solution</a> we made available to everyone in 2020. Zero Trust services are incomplete without an <a href="https://www.cloudflare.com/zero-trust/products/email-security/">email security solution</a>, and <a href="https://www.cisa.gov/news/2021/10/01/cisa-kicks-cybersecurity-awareness-month">CISA’s recent report</a> makes that clearer than ever: over 90% of successful cyber attacks start with a phishing email, so we expect that over time analysts will have no choice but to include email in their definitions of secure access and zero edges.</p><p><b>If you’re interested in reserving your place in line, register your interest by logging into your Cloudflare account at dash.cloudflare.com, selecting your domain, clicking Email, and then “Join Waitlist” at the top of the page; we’ll reach out after the Area 1 acquisition is completed, and the integration is ready, in the order we received your request.</b></p>
    <div>
      <h3>One-click deployment</h3>
      <a href="#one-click-deployment">
        
      </a>
    </div>
    <p>If you’re already managing your authoritative DNS with Cloudflare, as nearly 100% of <a href="https://www.cloudflare.com/plans/">non-Enterprise plans</a> are, there will just be a single click to get started. Once clicked, we’ll start returning different MX records to anyone trying to send email to your domain. This change will attract all emails destined for your domain, during which they’ll be run through Area 1’s models and potentially be quarantined or flagged. Customers of Microsoft Office 365 will also be able to take advantage of APIs for an even deeper integration and capabilities like post-delivery message redaction.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5CbqzMF8kBl1AP1z62smRo/54807cd4dcf81335a7f0471d01fc67be/image2-10.png" />
            
            </figure><p>In addition to routing and filtering email, we’ll also automagically take care of your DNS email security records such as SPF, DKIM, DMARC, etc. We launched a tool to help with this last year, and soon we’ll be making it even more comprehensive and easier to use.</p>
    <div>
      <h3>Integration with other Zero Trust products</h3>
      <a href="#integration-with-other-zero-trust-products">
        
      </a>
    </div>
    <p>As we wrote in the <a href="/why-we-are-acquiring-area-1/">acquisition announcement post</a> on this blog, we’re excited to integrate email security with other products in our Zero Trust suite. For customers of Gateway and Remote Browser Isolation (RBI), we’ll automatically route potentially suspicious domains and links through these protective layers. Our built-in <a href="/data-loss-prevention/">data loss prevention (DLP) technology</a> will also be wired into Area 1’s technology in deployments where visibility into outbound email is available.</p>
    <div>
      <h3>Improving threat intelligence with new data sources</h3>
      <a href="#improving-threat-intelligence-with-new-data-sources">
        
      </a>
    </div>
    <p>In addition to integrating directly with Zero Trust products, we’re excited about connecting threat data sources from Area 1 into existing Cloudflare products and vice versa. For example, phishing infrastructure identified during Area 1’s Internet-wide scans will be displayed within the recently launched Cloudflare Security Center, and 1.1.1.1’s trillions of queries per month will help Area 1 identify new domains that may be threats. Domains that are newly registered, or registered with slight variations of legitimate domains, are often warning signs of an upcoming phishing attack.</p>
    <div>
      <h3>Getting started</h3>
      <a href="#getting-started">
        
      </a>
    </div>
    <p>Cloudflare has been a happy customer of Area 1’s technology for years, and we’re excited to open it up to all of our customers as soon as possible. If you’re excited as we are about being able to use this in your Pro or Business plan, reserve your place in line today within the Email tab for your domain. Or if you’re an Enterprise customer and want to get started immediately, fill out <a href="https://www.cloudflare.com/lp/emailsecurity/">this form</a> or contact your Customer Success Manager.</p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Email]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Zero Trust]]></category>
            <category><![CDATA[Phishing]]></category>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Cloudflare Zero Trust]]></category>
            <guid isPermaLink="false">3FxihkQRtKc61pl0Sevyjt</guid>
            <dc:creator>Patrick R. Donahue</dc:creator>
            <dc:creator>Shalabh Mohan</dc:creator>
        </item>
        <item>
            <title><![CDATA[Monsters in the Middleboxes: Introducing Two New Tools for Detecting HTTPS Interception]]></title>
            <link>https://blog.cloudflare.com/monsters-in-the-middleboxes/</link>
            <pubDate>Mon, 18 Mar 2019 17:47:50 GMT</pubDate>
            <description><![CDATA[ The practice of HTTPS interception continues to be commonplace on the Internet. This blog post discusses types of monster-in-the-middle devices and software, and how to detect them. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>The practice of HTTPS interception continues to be commonplace on the Internet. HTTPS interception has encountered scrutiny, most notably in the 2017 study “<a href="https://jhalderm.com/pub/papers/interception-ndss17.pdf">The Security Impact of HTTPS Interception</a>” and the United States Computer Emergency Readiness Team (US-CERT)  <a href="https://www.us-cert.gov/ncas/alerts/TA17-075A">warning</a> that the technique weakens security. In this blog post, we provide a brief recap of HTTPS interception and introduce two new tools:</p><ol><li><p><a href="https://github.com/cloudflare/mitmengine">MITMEngine</a>, an open-source library for HTTPS interception detection, and</p></li><li><p><a href="https://malcolm.cloudflare.com/">MALCOLM</a>, a dashboard displaying metrics about HTTPS interception we observe on Cloudflare’s network.</p></li></ol><p>In a basic HTTPS connection, a browser (client) establishes a TLS connection directly to an origin server to send requests and download content. However, many connections on the Internet are not directly from a browser to the server serving the website, but instead traverse through some type of proxy or middlebox (a “monster-in-the-middle” or MITM). There are many reasons for this behavior, both malicious and benign.</p>
    <div>
      <h3>Types of HTTPS Interception, as Demonstrated by Various Monsters in the Middle</h3>
      <a href="#types-of-https-interception-as-demonstrated-by-various-monsters-in-the-middle">
        
      </a>
    </div>
    <p>One common HTTPS interceptor is TLS-terminating forward proxies. (These are a subset of all forward proxies; non-TLS-terminating forward proxies forward TLS connections without any ability to inspect encrypted traffic). A TLS-terminating forward proxy sits in front of a client in a TLS connection, transparently forwarding and possibly modifying traffic from the browser to the destination server. To do this, the proxy must terminate the TLS connection from the client, and then (hopefully) re-encrypt and forward the payload to the destination server over a new TLS connection. To allow the connection to be intercepted without a browser certificate warning appearing at the client, forward proxies often require users to install a root certificate on their machine so that the proxy can generate and present a trusted certificate for the destination to the browser. These root certificates are often installed for corporate managed devices, done by network administrators without user intervention.</p>
    <div>
      <h2>Antivirus and Corporate Proxies</h2>
      <a href="#antivirus-and-corporate-proxies">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/lQlpoDWmUQ7mvaOQjOCzR/cf1df0af814a7ba373072b727102c5dd/my-stapler-_2x.png" />
            
            </figure><p>Some legitimate reasons for a client to connect through a forward proxy would be to allow antivirus software or a corporate proxy to inspect otherwise encrypted data entering and leaving a local network in order to detect inappropriate content, malware, and data breaches. The Blue Coat data loss prevention tools offered by Symantec are one example. In this case, HTTPS interception occurs to check if an employee is leaking sensitive information before sending the request to the intended destination.</p>
    <div>
      <h2>Malware Proxies</h2>
      <a href="#malware-proxies">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2VTM6e5HggvoJsREQ4t2BX/3670abf896ee660c9aef85f658346fff/business-sasquatch_2x.png" />
            
            </figure><p>Malicious forward proxies, however, might insert advertisements into web pages or <a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">exfiltrate private user information</a>. Malware like <a href="https://www.us-cert.gov/ncas/alerts/TA15-051A">Superfish</a> insert targeted ads into encrypted traffic, which requires intercepting HTTPS traffic and modifying the content in the response given to a client.</p>
    <div>
      <h2>Leaky Proxies</h2>
      <a href="#leaky-proxies">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4sW8l4AlgtkLvFVsF0RiYe/94b9c16eb8fc3ad8bf47596c4817dbc7/blabbermouth_2x.png" />
            
            </figure><p>Any TLS-terminating forward proxy--whether it’s well-intentioned or not--also risks exposing private information and opens the door to spoofing. When a proxy root certificate is installed, Internet browsers lose the ability to validate the connection end-to-end, and must trust the proxy to maintain the security of the connection to ensure that sensitive data is protected. Some proxies re-encrypt and forward traffic to destinations using less secure TLS parameters.</p><p>Proxies can also require the installation of vendor root certificates that can be easily abused by other malicious parties. In November 2018, a type of Sennheiser wireless headphones required the user to install a <a href="https://arstechnica.com/information-technology/2018/11/sennheiser-discloses-monumental-blunder-that-cripples-https-on-pcs-and-macs/">root certificate which used insecure parameters</a>. This root certificate could allow any adversary to impersonate websites and send spoofed responses to machines with this certificate, as well as observe otherwise encrypted data.</p><p>TLS-terminating forward proxies could even trust root certificates considered insecure, like Symantec’s CA. If poorly implemented, any TLS-terminating forward proxy can become a widespread attack vector, leaking private information or allowing for response spoofing.</p>
    <div>
      <h2>Reverse Proxies</h2>
      <a href="#reverse-proxies">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/10jWDwqO36EovaMh7yezP0/8cbc6e9d12d744f1e6f294944ce788a0/speedy-_2x.png" />
            
            </figure><p>Reverse proxies also sit between users and origin servers. Reverse proxies (such as Cloudflare and <a href="https://www.cloudflare.com/cloudflare-vs-akamai/">Akamai</a>) act on behalf of origin servers, caching static data to improve the speed of content delivery and offering security services such as DDoS mitigation. Critically, reverse proxies do not require special root certificates to be installed on user devices, since browsers establish connections directly to the reverse proxy to download content that is hosted at the origin server. Reverse proxies are often used by origin servers to improve the security of client HTTPS connections (for example, by enforcing strict security policies and using the <a href="/rfc-8446-aka-tls-1-3/">newest security protocols like TLS 1.3</a>). In this case, reverse proxies are intermediaries that provide better performance and security to TLS connections.</p>
    <div>
      <h2>Why Continue Examining HTTPS Interception?</h2>
      <a href="#why-continue-examining-https-interception">
        
      </a>
    </div>
    <p><a href="/understanding-the-prevalence-of-web-traffic-interception/">In a previous blog post, we argued that HTTPS interception is prevalent on the Internet</a> and that it often degrades the security of Internet connections. A server that refuses to negotiate weak cryptographic parameters should be safe from many of the risks of degraded connection security, but there are plenty of reasons why a server operator may want to know if HTTPS traffic from its clients has been intercepted.</p><p>First, detecting HTTPS interception can help a server to identify suspicious or potentially vulnerable clients connecting to its network. A server can use this knowledge to notify legitimate users that their connection security might be degraded or compromised. HTTPS interception also increases the attack surface area of the system, and presents an attractive target for attackers to gain access to sensitive connection data.</p><p>Second, the presence of content inspection systems can not only weaken the security of TLS connections, but it can hinder the <a href="/why-tls-1-3-isnt-in-browsers-yet/">adoption of new innovations and improvements to TLS</a>.  Users connecting through older middleboxes may have their connections downgraded to older versions of TLS the middleboxes still support, and may not receive the security, privacy, and performance benefits of new TLS versions, even if newer versions are supported by both the browser and the server.</p>
    <div>
      <h2>Introducing MITMEngine: Cloudflare’s HTTPS Interception Detector</h2>
      <a href="#introducing-mitmengine-cloudflares-https-interception-detector">
        
      </a>
    </div>
    <p>Many TLS client implementations can be uniquely identified by features of the Client Hello message such as the supported version, cipher suites, extensions, elliptic curves, point formats, compression, and signature algorithms. The technique introduced by “<a href="https://jhalderm.com/pub/papers/interception-ndss17.pdf">The Security Impact of HTTPS Interception</a>” is to construct TLS Client Hello <i>signatures</i> for common browser and middlebox implementations. Then, to identify HTTPS requests that have been intercepted, a server can look up the signature corresponding to the request’s HTTP User Agent, and check if the request’s Client Hello message matches the signature. A mismatch indicates either a spoofed User Agent or an intercepted HTTPS connection. The server can also compare the request’s Client Hello to those of known HTTPS interception tools to understand which interceptors are responsible for intercepting the traffic.</p><p>The <a href="https://caddyserver.com/docs/mitm-detection">Caddy Server MITM Detection</a> tool is based on these heuristics and implements support for a limited set of browser versions. However, we wanted a tool that could be easily applied to the broad set of TLS implementations that Cloudflare supports, with the following goals:</p><ul><li><p>Maintainability: It should be easy to add support for new browsers and to update existing browser signatures when browser updates are released.</p></li><li><p>Flexibility: Signatures should be able to capture a wide variety of TLS client behavior without being overly broad. For example, signatures should be able to account for the <a href="https://tools.ietf.org/html/draft-davidben-tls-grease-01">GREASE</a> values sent in modern versions of Chrome.</p></li><li><p>Performance: Per-request MITM detection should be cheap so that the system can be deployed at scale.</p></li></ul><p>To accomplish these goals, the Cryptography team at Cloudflare developed <a href="https://github.com/cloudflare/mitmengine">MITMEngine</a>, an open-source HTTPS interception detector. MITMEngine is a Golang library that ingests User Agents and TLS Client Hello fingerprints, then returns the likelihood of HTTPS interception and the factors used to identify interception. To learn how to use MITMEngine, check out the project on GitHub.</p><p>MITMEngine works by comparing the values in an observed TLS Client Hello to a set of known browser Client Hellos. The fields compared include:</p><ul><li><p>TLS version,</p></li><li><p>Cipher suites,</p></li><li><p>Extensions and their values,</p></li><li><p>Supported elliptic curve groups, and</p></li><li><p>Elliptic curve point formats.</p></li></ul><p>When given a pair of User Agent and observed TLS Client Hello, MITMEngine detects differences between the given Client Hello and the one expected for the presented User Agent. For example, consider the following User Agent:</p>
            <pre><code>Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/47.0.2526.111 Safari/537.36</code></pre>
            <p>This User Agent corresponds to Chrome 47 running on Windows 7. The paired TLS Client Hello includes the following cipher suites, displayed below as a hex dump:</p>
            <pre><code>0000  c0 2b c0 2f 00 9e c0 0a  c0 14 00 39 c0 09 c0 13   .+./.... ...9....
0010  00 33 00 9c 00 35 00 2f  00 0a                     .3...5./ ..</code></pre>
            <p>These cipher suites translate to the following list (and order) of 13 ciphers:</p>
            <pre><code>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)</code></pre>
            <p>The reference TLS Client Hello cipher suites for Chrome 47 are the following:</p>
            <pre><code>0000  c0 2b c0 2f 00 9e cc 14  cc 13 c0 0a c0 14 00 39   .+./.... .......9
0010  c0 09 c0 13 00 33 00 9c  00 35 00 2f 00 0a         .....3.. .5./..</code></pre>
            <p>Looking closely, we see that the cipher suite list for the observed traffic is shorter than we expect for Chrome 47; two cipher suites have been removed, though the remaining cipher suites remain in the same order. The two missing cipher suites are</p>
            <pre><code>TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc14)
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc13)</code></pre>
            <p>Chrome prioritizes these two ChaCha ciphers above AES-CBC ciphers--a good choice, given that <a href="/padding-oracles-and-the-decline-of-cbc-mode-ciphersuites/">CBC (cipher block chaining) mode is vulnerable to padding oracle attacks</a>. It looks like the traffic we received underwent HTTPS interception, and the interceptor potentially didn't support ChaCha ciphers.</p><p>Using contextual clues like the used cipher suites, as well as additional User Agent text, we can also detect which software was used to intercept the HTTPS connection. In this case, MITMEngine recognizes that the fingerprint observed actually matches a fingerprint collected from Sophos antivirus software, and indicates that this software is likely the cause of this interception.</p><p>We welcome contributions to MITMEngine. We are particularly interested in collecting more fingerprints of MITM software and browser TLS Client Hellos, because MITMEngine depends on these reference fingerprints to detect HTTPS interception. Contributing these fingerprints is as simple as opening <a href="https://www.wireshark.org/">Wireshark</a>, capturing a pcap file with a TLS Client Hello, and submitting the pcap file in a PR. More instructions on how to contribute can be found in the <a href="https://github.com/cloudflare/mitmengine">MITMEngine documentation</a>.</p>
    <div>
      <h2>Observing HTTPS Interception on Cloudflare’s Network with MALCOLM</h2>
      <a href="#observing-https-interception-on-cloudflares-network-with-malcolm">
        
      </a>
    </div>
    <p>To complement MITMEngine, we also built a dashboard, <a href="https://malcolm.cloudflare.com/">MALCOLM</a>, to apply MITMEngine to a sample of Cloudflare’s overall traffic and observe HTTPS interception in the requests hitting our network. Recent MALCOLM data incorporates a fresh set of reference TLS Client Hellos, so readers will notice that percentage of "unknown" instances of HTTPS interception has decreased from Feburary 2019 to March 2019.</p><p>In this section of this blog post, we compare HTTPS interception statistics from MALCOLM to the 2017 study “<a href="https://jhalderm.com/pub/papers/interception-ndss17.pdf">The Security Impact of HTTPS Interception</a>”. With this data, we can see the changes in HTTPS interception patterns observed by Cloudflare over the past two years.</p><p>Using MALCOLM, let’s see how HTTPS connections have been intercepted as of late. This MALCOLM data was collected between March 12 and March 13, 2019.</p><p>The 2017 study found that 10.9% of Cloudflare-bound TLS Client Hellos had been intercepted. MALCOLM shows that the number of interceptions has increased by a substantial amount, to 18.6%:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/308RiVWeL9fqieIEzt7DsR/1de5978ad5319a33e0f6d670a2fbf69c/1.png" />
            
            </figure><p>This result, however, is likely inflated compared to the results of the 2017 study. The 2017 study considered all traffic that went through Cloudflare, regardless of whether it had a recognizable User Agent or not. MALCOLM only considers results with recognizable User Agents that could be identified by <a href="https://github.com/avct/uasurfer">uasurfer</a>, a Golang library for parsing User Agent strings. Indeed, when we don’t screen out TLS Client Hellos with unidentified User Agents, we see that 11.3% of requests are considered intercepted--an increase of 0.4%. Overall, the prevalence of HTTPS interception activity does not seem to have changed much over the past two years.</p><p>Next, we examine the prevalence of HTTPS interception by browser and operating system. The paper presented the following table. We’re interested in finding the most popular browsers and most frequently intercepted browsers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3HJcWioFHJY1gSjUGbM0Fo/aa06678c9b4cac6d7c4a71b4a601c39c/2-1.png" />
            
            </figure><p>MALCOLM yields the following statistics for all traffic by browsers. MALCOLM presents mobile and desktop browsers as a single item. This can be broken into separate views for desktop and mobile using the filters on the dashboard.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6ueWD4onXq5T1fTh2ZULTt/746be2f8618fe4c3979ba6f8bc4ac61c/3.png" />
            
            </figure><p>Chrome usage has expanded substantially since 2017, while usage of Safari, IE, and Firefox has fallen somewhat (here, IE includes Edge). Examining the most frequently intercepted browsers, we see the following results:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2DoOG6gtyJKloQ6f7N2YM/a7259a93ac04c0a687cc6c9865dbefa1/NC5wbmc-.png" />
            
            </figure><p>We see above that Chrome again accounts for a larger percentage of intercepted traffic, likely given growth in Chrome’s general popularity. As a result, HTTPS interception rates for other browsers, like Internet Explorer, have fallen as IE is less frequently used. MALCOLM also highlights the prevalence of other browsers that have their traffic intercepted--namely, UCBrowser, a browser common in China.</p><p>Now, we examine the most common operating systems observed in Cloudflare’s traffic:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/33AywIjUylFoFgSgdXG0LX/97790997880300e3cd9ed30a0101c0d1/6.png" />
            
            </figure><p>Android use has clearly increased over the past two years as smartphones become peoples’ primary device for accessing the Internet. Windows also remains a common operating system.</p><p>As Android becomes more popular, the likelihood of HTTPS interception occurring on Android devices also has increased substantially:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7D4pH8O2VNOUfPZLiV6bV9/1ea61b5d21caa3d35b65ab5f0dcf33af/aW1hZ2UucG5n.png" />
            
            </figure><p>Since 2017, Android devices have overtaken those of Windows as the most intercepted.</p><p>As more of the world’s Internet consumption occurs through mobile devices, it’s important to acknowledge that simply changing platforms and browsers has not impacted the prevalence of HTTPS interception.</p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Using MITMEngine and MALCOLM, we’ve been able to continuously track the state of HTTPS interception on over 10% of Internet traffic. It’s imperative that we track the status of HTTPS interception to give us foresight when deploying new security measures and detecting breaking changes in security protocols. Tracking HTTPS interception also helps us contribute to our broader mission of “helping to build a better Internet” by keeping tabs on software that possibly weakens good security practices.</p><p>Interested in exploring more HTTPS interception data? Here are a couple of next steps:</p><ol><li><p>Check out <a href="https://malcolm.cloudflare.com/">MALCOLM</a>, click on a couple of percentage bars to apply filters, and share any interesting HTTPS interception patterns you see!</p></li><li><p>Experiment with <a href="https://github.com/cloudflare/mitmengine">MITMEngine</a> today, and see if TLS connections to your website have been impacted by HTTPS interception.</p></li><li><p>Contribute to MITMEngine!</p></li></ol><p></p> ]]></content:encoded>
            <category><![CDATA[HTTPS]]></category>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Speed & Reliability]]></category>
            <category><![CDATA[Research]]></category>
            <guid isPermaLink="false">1Pl12Ah2e26vZxqTeuN3vm</guid>
            <dc:creator>Gabbi Fisher</dc:creator>
            <dc:creator>Luke Valenta</dc:creator>
        </item>
        <item>
            <title><![CDATA[Website Security Myths]]></title>
            <link>https://blog.cloudflare.com/website-security-myths/</link>
            <pubDate>Sat, 08 Sep 2018 15:00:00 GMT</pubDate>
            <description><![CDATA[ Some conversations are easy; some are difficult. Some are harmonious and some are laborious. But when it comes to website security, the conversation is confusing. Every organisation agrees, in theory, that their websites need to be secure. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Photo by <a href="https://unsplash.com/@milkovi?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">MILKOVÍ</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></p><p>Some conversations are easy; some are difficult. Some are harmonious and some are laborious. But when it comes to <a href="https://www.cloudflare.com/security/">website security</a>, the conversation is confusing.Every organisation agrees, in theory, that their websites need to be secure. But in practice, there is resistance to investing enough time and budget. Reasons for neglecting security include misconceptions surrounding Web Application security.</p><p>Below I’ve outlined some of the most  common myths and misconceptions that can often put your website at serious security risks.</p>
    <div>
      <h4>My website is not the target of an attack because it is small and I run a small business.</h4>
      <a href="#my-website-is-not-the-target-of-an-attack-because-it-is-small-and-i-run-a-small-business">
        
      </a>
    </div>
    <p>A<a href="https://www.securityweek.com/185-million-websites-infected-malware-any-time">n average small business website is attacked 44 times per day</a>. In addition,  a low profile website is a nice playground for hackers to try out new tools and techniques. Hackers often use automated tools to find various vulnerable websites and don't discriminate when it comes to the size of the target. Any web application, even if it is not itself a target, may be of interest to attackers. Web applications with lax security are easy pickings for hackers and can be subject to  a mass or targeted cyber attack.The good news is that there’s an increasing number of  security services to help protect websites from those automated scripts. Plus, these services are also affordable. For example, Cloudflare offers a free and affordable services to  mitigate those types of attacks.</p>
    <div>
      <h4>We have not been attacked in years so, there’s nothing to worry about</h4>
      <a href="#we-have-not-been-attacked-in-years-so-theres-nothing-to-worry-about">
        
      </a>
    </div>
    <p>Just because you can’t see an attack, it doesn't mean it isn’t  happening.</p><p>According to one of the <a href="https://www.securityweek.com/185-million-websites-infected-malware-any-time">studies</a>, at any given moment, 18.7 million sites around the world are infected by some form of malware. Automated web attacks that fly under the radar are damaging businesses  at a large scale. Some bots are dangerously adept at operating under the guise of a legitimate user.</p><p>Even if your site hasn't been attacked, there are easy-to-use, non-evasive security services like Cloudflare that offer protection and visibility into a website’s traffic, thus providing  peace of mind for your business.</p>
    <div>
      <h4>Security has no ROI. We’d rather invest toward new revenue opportunities</h4>
      <a href="#security-has-no-roi-wed-rather-invest-toward-new-revenue-opportunities">
        
      </a>
    </div>
    <p>Regardless of the industry, company size, product or service, cybersecurity is crucial in today’s business world.  The costs of dealing with various repercussions of a data breach (like loss of customer trust, loss of brand reputation, compliance fines etc) are much higher than the cost of making investments to secure the website.</p><p>The digital economy fuels business opportunities for many organisations by connecting people, processes, and data. Any organisation should avoid attacks that might disrupt their business and erode customer confidence.</p><p>Luckily, there are several digitally-focused cybersecurity services like Cloudflare that can neutralize the advantage in time and intelligence that hackers develop. Such services improve operational responsiveness and risk mitigation, thus leading to greater competitive advantage.</p>
    <div>
      <h4>Website penetration testing guarantees the necessary security protection</h4>
      <a href="#website-penetration-testing-guarantees-the-necessary-security-protection">
        
      </a>
    </div>
    <p>Penetration testing is and should be an important part of web application security, but it should never be the only means of testing security. With a plethora of new technologies comprising the application stack, security gets more complex by the day. While traditional penetration testing would only cover the outlying areas of the web application, it would not scale to cover each and every layer of the application stack.  </p><p>Web Application security involves securing the complete application stack, right from Layer 1 to Layer 7 (<a href="https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/">OSI model</a>). Modern application security also includes the inherent security of the entire production system – including the technology, tools and practices used to deliver it,  as well as  development and production environments and culture of the entire DevOps stack.  </p><p>Many modern security services, like Cloudflare, allow organisations to address the need for security at all layers of the application stack. This, while also ensuring that the DevOps stack is secured at all layers down to the core infrastructure being used in the environment.</p>
    <div>
      <h4>I have thoroughly tested my  website and have fixed most of the known bugs. My site is completely secured now</h4>
      <a href="#i-have-thoroughly-tested-my-website-and-have-fixed-most-of-the-known-bugs-my-site-is-completely-secured-now">
        
      </a>
    </div>
    <p>Security is also about constant monitoring and testing the complete stack of your application.</p><p>In the latest <a href="https://www.whitehatsec.com/resources-category/premium-content/web-application-stats-report-2017/">White Hat study</a>, the organisations that conducted security testing had, on average, as many as 10 vulnerabilities and only 50% of them got fixed.  Modern websites are constantly changing. Every new line of code has the potential to introduce a new security issue.</p><p>Good security practices include having ‘visibility’ and necessary ‘verifications’ of the traffic patterns and the security posture of your website. Many modern Web monitoring tools, like Google Alerts, provide affordable, easy to use visibility and verification strategies.</p><p>The ability to measure web application security is critical for any business having a web facing asset. Attack metrics like ill reputed data (IP, tracking IDs), attacks by countries and IPs, most attacked URLs, etc. need to be measured. Such data provide context, awareness and actionable response about current and emerging threats.</p><p>Modern security services like Cloudflare in combination with web monitoring tools provide the necessary visibility and verify that the right security measure for your site are in place .</p>
    <div>
      <h4>Website security is the sole responsibility of the security team.</h4>
      <a href="#website-security-is-the-sole-responsibility-of-the-security-team">
        
      </a>
    </div>
    <p>Safety works when everyone works together.</p><p>In an organisation, security is everyone’s responsibility . The best companies in the world avoid a silo-based corporate structure, making them less vulnerable to loss of data and  disruption of services. Instead, they focus on  developing systems that combine technology, processes, safeguards, management (people), and systems into a single integrated threat protection framework.</p><p>The best practise is always for the  various stakeholders (Dev teams, Security, IT teams, Management)  to communicate effectively to better understand their respective roles and how they, in fact, rely on each other to safeguard business operations.</p>
    <div>
      <h4>We use the cloud. We will use various cloud security tools and we will be protected</h4>
      <a href="#we-use-the-cloud-we-will-use-various-cloud-security-tools-and-we-will-be-protected">
        
      </a>
    </div>
    <p>Cloud computing brings benefits like lower fixed costs, flexibility, automatic software updates, increased collaboration, and the freedom to work from any geographical location.</p><p>While many organisations see these benefits and are moving their assets to the cloud (at least partly), cloud architecture also brings with it new security challenges. With the advent of cloud-based platforms, the attack surface area has increased.There have been several cases in the recent past where a misconfiguration of the services in the cloud has led to data breaches. While many well-known cloud providers (like AWS, GCP, Azure) provide tools and services for security, the correct configuration of the tools and the responsibility of the security of the application still remain with the organisation utilising such tools.</p><p>Many of the security focussed organisations that utilise cloud services for their web facing assets add an additional layer of security services at the edge of their cloud network. Few of the modern security services that are cloud agnostic, can sit on the network edge of the cloud and provide an extra layer of security.</p><hr /><p>Do these statements ring a bell? If so, maybe you need to update the way your organisation approaches these points? With this new way of thinking in place, you are set to move forward. Cloudflare’s security services can assist you and your organisation in enhancing your approach to security.</p><p>Cloudflare’s security services  provide easy to configure resilience and the right level of protection for an organisation's web assets. This allow companies to focus on building new business opportunities and services while spending minimal effort on the security of their web assets.</p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Attacks]]></category>
            <category><![CDATA[Malware]]></category>
            <guid isPermaLink="false">6JQT3ZUAgicEE1eiyPjOJz</guid>
            <dc:creator>Naveen Singh</dc:creator>
        </item>
        <item>
            <title><![CDATA[When the Attackers Name Malware After You, You Know You're Doing Something Right]]></title>
            <link>https://blog.cloudflare.com/when-the-bad-guys-name-malware-after-you-you/</link>
            <pubDate>Thu, 14 Feb 2013 01:29:00 GMT</pubDate>
            <description><![CDATA[ CloudFlare's I'm Under Attack Mode (IUAM) is elegantly simple. When a site is under an application layer (Layer 7) distributed denial of service (DDoS) attack, the mode will return a challenge page to a visitor.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>CloudFlare's I'm Under Attack Mode (IUAM) is elegantly simple. When a site is under an application layer (Layer 7) distributed denial of service (DDoS) attack, the mode will return a challenge page to a visitor. The challenge requires the visitor's browser to answer a math problem which takes a bit of time to compute. Once successfully answered, the browser can request a cookie and won't be challenged again.</p>
    <div>
      <h4>2 + 2 = Surprisingly Effective</h4>
      <a href="#2-2-surprisingly-effective">
        
      </a>
    </div>
    <p>IUAM has been incredibly successful at stopping Layer 7 attacks, but it's had a dirty little secret since it was first launched. While we'd suggested that the math problem the browser had to solve would be computationally complex, in reality it was incredibly simple: literally adding together two single-digit integers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6pMc2EaBSeFBQ1nmhfxgQq/349171dbf1bc832d2c9c0594b14f7fd9/hard_math.png.scaled500.png" />
            
            </figure><p>Several people over the last 6 months had written to us to let us know about this "critical vulnerability." They explained how easy it would be for an attacker to reverse engineer the math problem and create malware that could bypass the protection. Internally, we had a bet on how long it would take for some bad guy to actually do so. My money was on "never."</p>
    <div>
      <h4>Good News/Bad News: I Lost the Bet</h4>
      <a href="#good-news-bad-news-i-lost-the-bet">
        
      </a>
    </div>
    <p>When Lee and I created Project Honey Pot back in 2004 we spent hundreds of engineering hours designing traps that were so random they were hard to identify. Even then, I secretly worried that an enterprising bad guy would recognize some pattern in the traps and be able to avoid them. We watched carefully for 9 years and no one ever took the time to do so. It was great, on one hand, since it meant that Project Honey Pot kept tracking attackers but, on the other, it meant it was never causing them enough trouble that they'd spend the engineering effort to defeat us. Lee and I learned the lesson: don't over-engineer too early.</p><p>Which brings me back to IUAM. This morning we got word from the great folks over at <a href="http://www.eset.com">ESET</a> that they'd <a href="http://www.welivesecurity.com/2013/02/13/malware-evolving-to-defeat-anti-ddos-services-like-cloudflare/">detected malware specifically designed to bypass CloudFlare's IUAM</a>. Called OutFlare -- how cool is it that we have malware named after us!! -- the malware reads our IUAM page, finds the simple math problem, and calculates the answer. It is hardly rocket science, but it was actually pretty thrilling to the whole CloudFlare team that we'd been so successful at stopping attackers that at least one of them took the time to reverse engineer this protection.</p>
    <div>
      <h4>Proof of Work</h4>
      <a href="#proof-of-work">
        
      </a>
    </div>
    <p>Unlike me, some other engineers on CloudFlare's team had a suspicion that this day would come. They therefore had, waiting in the wings, code to increase the complexity of IUAM's challenges. The malware pulls the math equation off the page and computes the answer before posting back. The solution was easy: obfuscate the equation and run through some other tricks that make it hard to find the answer if you're not actually rendering the Javascript.</p><p>Today, after getting word that the simple version of IUAM had been reverse engineered by the OutFlare's malware, we pushed an update. If you're using IUAM there's nothing you need to do to take advantage of the new protection, we've already updated the protection rendering the OutFlare malware obsolete.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6oycmQjNNld5vVxFdym7qT/1138ecefbbbf7954b9f5d794b7294242/proof_of_work.jpg.scaled500.jpg" />
            
            </figure><p>Going forward, we have plans if this scheme gets cracked. Specifically, we have an IUAM version that relies on a field of mathematics known as "proof of work" problems. These are difficult to compute answers for but easy to verify. A recent example of such a proof of work problem which has captured the imagination of much of the tech community is Bitcoin. The electronic currency requires a significant amount of computational time to find the answer to a problem, but once found each answer ("coin") is easy to verify.</p><p>In Bitcoin's case, the difficulty of the question is adjusted upward over time to compensate for increasing computing power and to control currency inflation. We can use the same premise to increase the "work" that an attacker needs to do when we detect a Layer 7 attack against a CloudFlare customer.</p>
    <div>
      <h4>Arms Race? Bet on the Cloud</h4>
      <a href="#arms-race-bet-on-the-cloud">
        
      </a>
    </div>
    <p>In these situations there's always a question of whether there will be an arms race between the attackers writing the malware and the good guys offering protection. In this case there may be, but I like our odds in such a war. As today's example demonstrated, because CloudFlare is deployed as a service and we can update our systems to adjust to new threats in realtime we have an asymmetrical advantage. Pity the poor malware writer who now has to reverse engineer the new IUAM protection and push a code change to all his bots. If he comes up with something effective, we'll just adapt again — instantly.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2zKZBB94U1ek9GSeVwzipO/b007215000ab6705a574425c03b64ca2/arms_race.gif.scaled500.gif" />
            
            </figure><p>The history of such arms races suggests you should bet on the cloud to win. In the spam wars, spammers and anti-spam software makers were locked in an arms race that it looked like neither would win from the mid-90s through the mid-2000s. Then something changed: new services like MXLogic, MessageLabs, CloudMark, and Postini started delivering anti-spam not as software but as a "cloud" service. Not only were these services easier to install and administer than previous anti-spam software or appliances, they could also adjust to spammers in realtime. The result has been that today these services have largely won the spam wars.</p>
    <div>
      <h4>One More Thing</h4>
      <a href="#one-more-thing">
        
      </a>
    </div>
    <p>One more thing with regard to OutFlare. While the malware was able to read and pass the simple math challenge, that is only one layer of IUAM's protection. On the server side, CloudFlare still tracked all requests and, for devices that created a statistically high number of connections, we automatically imposed rate limits and other mitigation techniques. In other words, even without the fix we made, our customers were protected from the attack.</p><p>Thanks again to our friends at <a href="http://www.eset.com">ESET</a> for alerting us to the new OutFlare malware. We'll keep our eyes open to any new variants and, as they inevitably arise, we'll continue to adapt to ensure that all CloudFlare customers are always a step ahead of the web's nastiest threats.</p> ]]></content:encoded>
            <category><![CDATA[I'm Under Attack Mode]]></category>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Reliability]]></category>
            <category><![CDATA[Cloudflare History]]></category>
            <guid isPermaLink="false">3deq5bLDddSjXUcDsCjHFp</guid>
            <dc:creator>Matthew Prince</dc:creator>
        </item>
        <item>
            <title><![CDATA[Thoughts on Abuse]]></title>
            <link>https://blog.cloudflare.com/thoughts-on-abuse/</link>
            <pubDate>Fri, 13 Jul 2012 21:47:00 GMT</pubDate>
            <description><![CDATA[ One of the behind the scenes topics we think about a lot at CloudFlare is how to handle abuse of our network. I realized that we hadn't exposed our thoughts on this clearly enough. In the next few days, we'll be making some minor updates to our Terms of Service. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>One of the behind the scenes topics we think about a lot at CloudFlare is how to handle abuse of our network. I realized that we hadn't exposed our thoughts on this clearly enough. In the next few days, we'll be making some minor updates to our Terms of Service to better align it with how we handle abuse complaints. However, I wanted to take the time to write up a post on how we think about abuse. Make sure you're comfy, this is going to be a bit of a marathon post because it's an important and complicated issue.</p><p>CloudFlare sits in front of nearly a half a million websites. Those websites include banks, national governments, Fortune 500 companies, universities, media publications, blogs, <a href="https://www.cloudflare.com/ecommerce/">ecommerce companies</a>, and just about everything else you can find online. Every day we process more page views through our network than Amazon.com, Wikipedia, Twitter, Zynga, Aol, eBay, PayPal, Apple, and Instagram — combined. That's dumbfounding given that CloudFlare is only a year and a half old from our public launch.</p>
    <div>
      <h3>Problem Sites</h3>
      <a href="#problem-sites">
        
      </a>
    </div>
    <p>While the vast majority of sites on CloudFlare are not problematic, just like on the Internet itself there are inevitably some unsavory organizations on our network. Almost exactly a year ago, I blogged about the notorious hacking group LulzSec using CloudFlare's services and our <a href="/58611873">decision not to terminate theirservice</a>. As I wrote a year ago:</p><blockquote><p>CloudFlare is firm in our belief that our role is not that of Internet censor. There are tens of thousands of websites currently using CloudFlare's network. Some of them contain information I find troubling. Such is the nature of a free and open network and, as an organization that aims to make the whole Internet faster and safer, such inherently will be our ongoing struggle. While we will respect the laws of the jurisdictions in which we operate, we do not believe it is our decision to determine what content may and may not be published. That is a slippery slope down which we will not tread.</p></blockquote>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2pJCfxKInGkuuMMBjFI4RM/f6d041493f3c65850a2fd39c69c07b47/lulzsec.jpg.scaled500.jpg" />
            
            </figure><p>Today there are hundreds of thousands of sites using CloudFlare and we remain concerned about the slippery slope. To be clear, this isn't a financial decision for us. LulzSec and other problematic customers tend to sign up for our free service and we don't make a dime off of them. When they upgrade they usually pay with stolen credit cards, which causes us significant headaches. The decision to err on the side of not terminating sites is a philosophical one: we are rebuilding the Internet, and we don't believe that we or anyone else should have the right to tell people what content they can and cannot publish online.</p>
    <div>
      <h3>Who We Terminate</h3>
      <a href="#who-we-terminate">
        
      </a>
    </div>
    <p>There is no more thankless job than running an abuse desk. In the last week, our abuse team has had to deal with "senior Iranian officials" threatening us over the fact that a pro-Israeli website was on our network while, at the same time, dealing with threats from an Israeli group who was extremely upset that a website supporting the Iranian regime was also on our network. We didn't terminate either of those sites.</p><p>No matter how repugnant an idea may be to one person or another, we don't believe we are qualified to act as judge. There are, however, at least two clear cases where we believe our network can cause harm and therefore we do take action: spreading malware or powering phishing sites.</p><p>Originally, when we would receive reports of phishing or malware we would terminate the customers immediately. The challenge was that this didn't actually solve the problem. Since we're just a proxy, not the host, us terminating the customer doesn't make the harmful content disappear. Terminating the site effectively just kicked the problem further down the road, moving it off our network and onto someone else's.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/16j1KgSQAxHuTLoNMFf04s/cc0369bf86fa7bb04df696e2511349b5/kick_the_can.jpg.scaled500.jpg" />
            
            </figure><p>photo credit: <a href="http://www.flickr.com/photos/35604385@N08/">Erectus Bee</a></p><p>This was unsatisfying to our abuse team so we reached out to the experts on the issue of malware and phishing at <a href="http://stopbadware.org/">StopBadware</a>. StopBadware is the organization Google trusts to explain about phishing and malware when they detect problems on pages that appear in the company's search index. We worked with StopBadware to design a <a href="/protecting-cloudflare-sites-from-phishing/">Google-like block page that we can display on pages where malware or phishing are detected</a>. This solution actually eliminates the knowm malware and phishing from our network and, at the same time, teaches visitors who may have been fooled by the malicious content about its risks.</p><p>This sounds easy — and, as a matter of policy, it was easy — but, technically, it was actually extremely tricky to implement. To give you some sense, we average about 150,000 requests per second through our network and we're doubling every 3 months or so. To make the block pages work, we needed to check every one of those requests against regular expressions that match known phishing or malware sites. All without slowing down requests. It took us longer than I would have liked to find a solution that could scale, but now that it is in place we are actively adding data sources to ensure we promptly remediate any malware and phishing sites on our network.</p>
    <div>
      <h3>The Rock and the Hard Place</h3>
      <a href="#the-rock-and-the-hard-place">
        
      </a>
    </div>
    <p>While we believe we have found a good solution for malware and phishing abuse reports, other abuse requests still present a vexing issues. Originally, when CloudFlare received a DMCA complaint for an alleged copyright infringement, our practice was to turn over the IP address of the site's host to the person filing the complaint. This allowed them to then take the issue up with the hosting provider.</p><p>CloudFlare has become very, very good at stopping online attacks, including DDoS attacks. As a result, people launching those attacks have begun looking for ways to bypass our protection. Starting about a year ago, we saw a spike in what turned out to be illegitimate DMCA requests. They would look technically correct, include all the required information, but the complaintant wasn't the actual copyright holder but an individual looking to attack the site. As soon as we turned over the origin IP address they would launch an attack, completely bypassing CloudFlare's protection. In other words, attackers were abusing our abuse process — a problem I wrote about when discussing how <a href="/sopa-could-create-new-denial-of-service-attac">SOPA could make things even worse</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/78n7debh71SopBhpfCcG8N/9259a751d7877afb60ebe25b0e8b2771/rock_and_hard_place.jpg.scaled500.jpg" />
            
            </figure><p>Photo credit: <a href="http://rojakdaily.wordpress.com/tag/suspended-rock/">Rojak Daily</a></p><p>If there is a way to reliably tell the difference between a legitimate and an illegitimate DMCA abuse complaint, we haven't found it. As a result, we adjusted our abuse process in order to meet the requirements of the law and allow legitimate complaintants to serve notice to infringers, but not expose our customers to attacks.</p><p>In many ways, our abuse flow today is also a sort of reverse proxy. When we receive a complaint, after some checks to ensure it's validity to the extent possible, we forward a copy of the complaint to the site owner via email. We also send a copy of the complaint to the site's hosting provider, including the site's origin IP address and instructions on how they can test to ensure that the site is, in fact, hosted on their network. We then respond to the complainant explaining how CloudFlare works, how we've relayed their complaint, and providing the identity of the site's actual host (although not the site's actual IP address).</p><p>We are continuing to refine the process over time to maximize two goals: ensuring our customers are protected from attacks, and ensuring that we don't stand in the way of legitimate complaintants. If you have suggestions on how we can improve the process while balancing these interests, we welcome your input.</p> ]]></content:encoded>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Abuse]]></category>
            <guid isPermaLink="false">BgmPjJbaSEosbs2r0jJA0</guid>
            <dc:creator>Matthew Prince</dc:creator>
        </item>
        <item>
            <title><![CDATA[CloudFlare & OpenDNS Work Together to Help the Web]]></title>
            <link>https://blog.cloudflare.com/cloudflare-opendns-work-together-to-save-the/</link>
            <pubDate>Thu, 03 May 2012 13:00:00 GMT</pubDate>
            <description><![CDATA[ Several years ago, some suspected cyber criminals on the Internet wrote a family of malware dubbed DNSChanger. About a year ago, law enforcement tracked down the suspected cyber criminals behind this malware. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Several years ago, some suspected cyber criminals on the Internet wrote a family of malware dubbed DNSChanger. About a year ago, law enforcement tracked down the suspected cyber criminals behind this malware, arrested them, and took over the servers they were using to redirect customers to rogue sites.</p><p>As a result of a court order, the Internet Systems Consortium (ISC) under the direction of the FBI, has continued to run the DNS servers used by the malware for the last year. However, the court order will soon expire and those servers are scheduled to be shut down on July 9, 2012. When that happens, hundreds of thousands of Internet users whose systems are still infected and/or affected could lose access to the web, email, and anything else that depends on DNS. This is the story of how two Internet infrastructure startups — CloudFlare and <a href="http://www.opendns.com">OpenDNS</a> — are playing a small part to help solve the problem.</p>
    <div>
      <h3>A Bit of DNS Background</h3>
      <a href="#a-bit-of-dns-background">
        
      </a>
    </div>
    <p>Up front, in order to understand this story, you need to understand there are two types of DNS servers: recursive and authoritative. Everyone who uses the Internet needs a recursive DNS server. Your ISP usually provides these types of services or you can use a provider like OpenDNS, <a href="https://www.cloudflare.com/cloudflare-vs-google-dns/">Google</a>, DNSAdvantage, other public resolvers, or even run a server yourself to handle your recursive DNS queries.</p><p>On the other hand, every domain needs at least one authoritative DNS server. Authoritative servers are where a particular domain's records are hosted and published. Many <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name-registrar/">domain registrars</a> provide authoritative DNS servers, or you can use a service like CloudFlare and we provide authoritative DNS. When an Internet user types a Universal Resource Identifier (URI) aka Universal Resource Locator (URL) into their browser, clicks on a link, or sends an email, their computer queries their recursive DNS provider. If the recursive DNS provider has the answer cached then it responds. If it doesn't have the answer cached, or if the answer it has is stale, then the recursive DNS server queries the authoritative DNS server.</p><p>As mentioned above, OpenDNS provides recursive DNS. Their customers are web surfers and they provide a terrific service that helps speed up Internet browsing and protect people on the web from malware. CloudFlare provides authoritative DNS. Our customers are websites and we make those sites faster and protect sites from attacks directed at them. While we're often asked if OpenDNS and CloudFlare are competitive, in reality both services are complementary just using different parts of DNS (recursive and authoritative) to achieve a similar mission: a faster, safer, better Internet.</p>
    <div>
      <h3>How Suspected Cyber Criminals Use DNS to Do Bad Things</h3>
      <a href="#how-suspected-cyber-criminals-use-dns-to-do-bad-things">
        
      </a>
    </div>
    <p>The DNSChanger malware family was designed to change the recursive DNS server that Internet users' computers queries. Instead of directing DNS queries at the recursive server you or your ISP configured, the malware modified computer settings to route queries to recursive DNS servers controlled by the suspected cyber criminals.</p><p>The job of DNS is to translate a <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name/">domain name</a> such as dcwg.org, which humans prefer, into an IP address, like 108.162.205.64, which servers and routers can use. If you are a cyber criminal and you can gain control over someone's recursive DNS then you can direct traffic to certain sites to a fake version of the site. Once DNSChanger had web surfers querying rogue recursive DNS servers, all requests for legitimate websites could be directed to a fake website. For example, even if you typed your bank's domain name into your browser, if the suspected cyber criminals control recursive DNS then they can send you to a malicious site and steal your information.</p><p>Over the years DNSChanger operated unchecked, more than a million computers and home routers had their DNS configurations modified. Thankfully, law enforcement was able to track down the suspected cyber criminals behind the malware, arrest them, and seize control of the rogue recursive DNS servers. Unfortunately, hundreds of thousands of computers are still using the formerly rogue recursive DNS servers. On July 9, 2012 the court order directing ISC to operate the servers expires and those servers are scheduled to be shut down. On that date, all systems which still have their DNS settings modified by DNSChanger will effectively be cut off from the Internet.</p>
    <div>
      <h3>Getting the Word Out</h3>
      <a href="#getting-the-word-out">
        
      </a>
    </div>
    <p>The DNSChanger Working Group (DCWG), a loosely affiliated organization comprised of some of the world's largest and most competent ISPs, search engines vendors, software vendors, security companies, and others, has been working to get the word out about the problem and reduce the impact of the shutdown of the DNSChanger recursive servers. The DCWG launched a website (dcwg.org) to provide information about the malware, let people test whether they are infected, and provide recommendations on how to fix their systems. CloudFlare first became involved when the folks at dcwg.org reached out to us because their site was under heavy load after attention from major media outlets. CloudFlare helped keep the dcwg.org website online under the load caused by media attention over the last 10 days. We offloaded more than 95% of the traffic to the site, ensuring the site ran fast and stable even when it was being featured on the front page of cnn.com.</p><p>Unfortunately, one of the challenges in trying to address situations like DNSChanger is that you only know to go to the dcwg.org website if you already know about it. What you needed was something akin to an emergency broadcast system that would inform people who were infected that they had a problem as they surfed the web. In the process of working with the DCWG, we realized we might be able to help.</p><p>Some of our engineers created an app named Visitor DNSChanger Detector App. Any website on CloudFlare can enable the app with a single click from our apps marketplace. The app installs a small bit of Javascript on the page that tests visitors to see if they're infected. If the tests do not detect anything, nothing happens. If the tests indicate that the DNSChanger recursive servers are being used, then a banner is displayed across the top of the page and visitors are directed to instructions on how to clean up the infection (more on that in a second).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4rcW1y2z1SfbuAUHKVmr6e/11fcf74f101535ea62d47715125f04b6/banner_example.png.scaled500.png" />
            
            </figure><p>More than 470 million people pass through CloudFlare's network on a monthly basis. Our data suggest that more than half of the people infected with DNSChanger would visit at least one site on CloudFlare per month. Thepower of the Visitor DNSChanger Detector App is that as CloudFlare publishers enable it then there is an increasing likelihood that people who are infected will get information about their infection before they are no longer able to use the Internet on July 9, 2012.</p><p>While we've made it extremely easy for publishers on CloudFlare's network to help get the word out, we didn't want to restrict participation to only those sites using our service. We therefore decided to release the code for the checks publicly and as open source so anyone who can install a few lines of Javascript on their web pages will be able to install it on their own sites to inform their potentially infected users. You can access the code from the following <a href="https://github.com/cloudflare/dnschanger_detector">GitHub Repo</a>. We're hopeful that sites both large and small will take the time to install the code in order to help inform their visitors who may be infected.</p>
    <div>
      <h3>What Should People Notified of This Infection Do?</h3>
      <a href="#what-should-people-notified-of-this-infection-do">
        
      </a>
    </div>
    <p>While CloudFlare is able to assist with informing web surfers they have an infection, we aren't particularly well situated to actually fix the problem. After all, it isn't our customers that are directly impacted,but rather the customers of our customers. Many of the folks infected can get help from their ISPs, but for some this might not be an option. CloudFlare reached out to David Ulevitch, the CEO of OpenDNS and he saw this as a great opportunity to further OpenDNS's mission of helping build a better Internet. We added <a href="http://www.opendns.com/dns-changer">OpenDNS as aresource</a> for publishers to display to their customers when the Javascript detects the use of the DNSChanger recursive servers.</p>
    <div>
      <h3>The Power of the DNS</h3>
      <a href="#the-power-of-the-dns">
        
      </a>
    </div>
    <p>This incident illustrates to me the importance and power of the DNS system that underpins the Internet. The suspected cyber criminals were able to modify DNS settings to steal advertising revenue and perform other illegal activities. CloudFlare uses authoritative DNS in order to provision powerful tools to make sites faster and even help create a sort of emergency warning system for the Internet. OpenDNS provides high performance recursive DNS caching services for their customers. Combined, we hope to help the DCWG get the word out so the hundreds of thousands of Internet users still impacted by the DNSChanger malware will be able to take steps to ensure they'll be able to use the Internet on July 10, 2012 and beyond.</p> ]]></content:encoded>
            <category><![CDATA[Save The Web]]></category>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[OpenDNS]]></category>
            <category><![CDATA[Policy & Legal]]></category>
            <guid isPermaLink="false">2N8sl2EjBxblXGvV9OtA45</guid>
            <dc:creator>Matthew Prince</dc:creator>
        </item>
        <item>
            <title><![CDATA[Breaking the Cycle of Malware]]></title>
            <link>https://blog.cloudflare.com/breaking-the-cycle-of-malware/</link>
            <pubDate>Wed, 20 Jul 2011 18:12:00 GMT</pubDate>
            <description><![CDATA[ Google did something terrific yesterday. They began notifying users with a certain kind of malware running on their PCs that they had a problem and linked them to tools to help clean it up. While it is currently limited, we think this is an important step by Google. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Google did something terrific yesterday. They began notifying users with a certain kind of malware running on their PCs that they had a problem and linked them to tools to help clean it up. While it is currently limited, we think this is an important step by Google. Notifying web visitors when they are running an infected machine, and giving them the tools to help clean up the infection, has been part of CloudFlare's core mission from the day we began <a href="https://www.cloudflare.com/learning/security/glossary/website-security-checklist/">protecting websites</a>. We believe steps like this by more websites is a critical step needed to break the "cycle of malware."</p>
    <div>
      <h3>The Malware Cycle</h3>
      <a href="#the-malware-cycle">
        
      </a>
    </div>
    <p>It is hardly an exaggeration to say that virtually every problem online can be tracked back to infected PCs. A PC that has been infected with a virus or other malware can then be used by online criminals to cause harm in a wide variety of ways. Think of it like the cliché scene in any movie or TV show with law enforcement tracking a hacker online. You can picture what I'm talking about: the investigators are huddled around a computer monitor trying to track the hacker when they discover that he is "bouncing his connection between 16 servers."</p><p>Reality isn't too far from the fictionalized drama. Cyber criminals use infected PCs as proxies. This allows them to both hide their true identity and location and amplify their damage. One spammer, for example, can command a virtual army of infected computers, known as a "botnet," to send millions of email messages that look like they are coming from around the world. Often these messages contain code to infect even more PCs, creating a cycle of malware.</p><p>The challenge is the owners of these infected computers often have no idea that the infection has taken place. While the true owners sleep, their computers run amuck online, facilitating virtually all of the big Internet problems we see today: spam, denial of service attacks (DDoS), fraud, and hacking. To solve these problems, you need to break the cycle of malware and clean up these infected PCs. Unfortunately, until recently, few mechanisms exist to responsibly notify the owners of these machines that they have a problem and what they can do to clean it up. That's where CloudFlare, and now Google, have started to help.</p>
    <div>
      <h3>Breaking the Cycle</h3>
      <a href="#breaking-the-cycle">
        
      </a>
    </div>
    <p>We built CloudFlare to help break the cycle of malware in two criticalways.</p><p>First, we help websites protect themselves from being compromised. One of the key ways that more PCs become infected is from websites that have been compromised to spread infectious code to their visitors. By protecting these websites, CloudFlare is taking away one of the key distribution channels for malware.</p><p>Second, CloudFlare empowers websites with the ability to inform their infected users they have a problem and give them the tools to clean it up. Just like Google, CloudFlare allows websites to set their security settings to whatever level of security they want. For the best balance of performance and security, the default setting is Medium.</p><p>To "challenge" a visitor running an infected machine with a CAPTCHA before allowing them onto the site, the website owner can set the security setting to High. If your priority is web performance, and you aren't as concerned about security or cleaning up infected users, then you can turn the security settings down to Low or Essentially Off, which acts only against the most grievous offenders.</p><p>If, however, you want to help get word to anyone running on an infected machine, like Google has begun doing, CloudFlare gives any website an easy way to help break the cycle of malware. At the same time, we are working with some of the best anti-malware providers in order to give these users the tools needed to clean up their infection.</p><p>We're proud of the hundreds of thousands of infected computers CloudFlare websites have helped clean up, and are glad to see other websites like Google stepping up in similar ways to tackle this important problem.</p> ]]></content:encoded>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Google]]></category>
            <category><![CDATA[Attacks]]></category>
            <guid isPermaLink="false">5nZoqoCSa7JS3OnQGyUpYs</guid>
            <dc:creator>Matthew Prince</dc:creator>
        </item>
        <item>
            <title><![CDATA[App #15 - GlobalSign HackAlert Malware Detection]]></title>
            <link>https://blog.cloudflare.com/app-15-globalsign-hackalert-malware-detection/</link>
            <pubDate>Tue, 28 Jun 2011 03:38:00 GMT</pubDate>
            <description><![CDATA[ Your website security comes in many layers, against many threats. But how do you know if your site has a problem? Once you know, how do you solve the problem, to protect your customers and your reputation?  ]]></description>
            <content:encoded><![CDATA[ <p></p>
    <div>
      <h3>Cloud-based detection</h3>
      <a href="#cloud-based-detection">
        
      </a>
    </div>
    <p>Your website security comes in many layers, against many threats. But how do you know if your site has a problem? Once you know, how do you solve the problem, to protect your customers and your reputation? Today's <a href="https://www.cloudflare.com/apps">CloudFlare App</a> answers those questions.</p><p><a href="https://www.cloudflare.com/apps/hackalert">GlobalSign HackAlert</a> is a website malware detection and monitoring solution that immediately emails you if your website is infected. The service scans your site, checking the content for signs of compromise. If found, you get instant notification with steps to resolution. This detection -- and details about how to fix the problem -- helps you avoid scary browser or search engine warnings to your site's visitors, beyond the possibility of infecting your customers with a drive-by download.</p>
    <div>
      <h3>Yes, That's All You Have To Do</h3>
      <a href="#yes-thats-all-you-have-to-do">
        
      </a>
    </div>
    
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5exfvc6nnwjR2tEvMr6qiC/a9b97ba7788c3b28f6e853c16fdb26ed/cloud-based.gif.scaled500.gif" />
            
            </figure><p>One elegant benefit of GlobalSign HackAlert is zero configuration required. <a href="https://www.cloudflare.com/apps/hackalert">Sign up</a> for the service via CloudFlare Apps, and the monitoring kicks in. It's automatic, with no extra dashboard required. Silently scanning your site, GlobalSign HackAlert doesn't trouble you unless there's a problem.Then, the service immediately emails you with notification of the discovered malware, including clear snippets of the infected code to make identification and removal a simple matter.</p><p>With relevance and simplicity, GlobalSign HackAlert makes sure your protection isn't noisy, just effective. Try the <a href="https://www.cloudflare.com/apps/hackalert">HackAlert Basic Plan</a> today, covering up to 100 pages of your site for just $5/month/site, and rest assured.</p> ]]></content:encoded>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Cloudflare Apps]]></category>
            <category><![CDATA[Monitoring]]></category>
            <guid isPermaLink="false">7CEmQpavmkFi9p8jsVrox0</guid>
            <dc:creator>John Roberts</dc:creator>
        </item>
        <item>
            <title><![CDATA[App a Day #12 - StopTheHacker Malware Scanning]]></title>
            <link>https://blog.cloudflare.com/app-a-day-12-stopthehacker-malware-scanning/</link>
            <pubDate>Thu, 16 Jun 2011 03:05:00 GMT</pubDate>
            <description><![CDATA[ This CloudFlare App, StopTheHacker, is an easy way to protect your website from malware attacks and protect your online reputation. Beyond the time lost recuperating from a compromised site, you risk your search engine ranking and blocked access in browsers.  ]]></description>
            <content:encoded><![CDATA[ <p></p>
    <div>
      <h3>Health Monitoring for Websites</h3>
      <a href="#health-monitoring-for-websites">
        
      </a>
    </div>
    <p>CloudFlare provides security for your website. But multiple layers of protection are valuable, and malware is a category of nastiness that needs special attention, so we're happy to introduce a new offering to CloudFlare customers.</p><p>This <a href="https://www.cloudflare.com/apps">CloudFlare App</a>, <a href="https://www.cloudflare.com/apps/stophacker">StopTheHacker</a>, is an easy way to protect your website from malware attacks and protect your online reputation. Beyond the time lost recuperating from a compromised site, you risk your search engine ranking and blocked access in browsers. Security services from StopTheHacker safeguard the online reputation of your business, helping increase your revenue and reducing downtime due to compromise. Research on StopTheHacker's unique Artificial Intelligence (AI) based scanning technology is supported by the National Science Foundation.</p>
    <div>
      <h3>Simple Step, Strong Security</h3>
      <a href="#simple-step-strong-security">
        
      </a>
    </div>
    <p><a href="https://www.cloudflare.com/apps/stophacker">StopTheHacker</a> via CloudFlare Apps covers your most popular 25 pages for $15/month, with daily scanning and reputation monitoring. Available in four languages, StopTheHacker requires no installation. Just <a href="https://www.cloudflare.com/apps/stophacker">subscribe</a> and the scans start, with timely email alerts if a StopTheHacker scan detects a security issue.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/61ZYcT19iirTtl6t5XCGyL/5cc1d7612750b7e8f6d4f3069f1fb643/sth-health-monitoring.png.scaled500.png" />
            
            </figure> ]]></content:encoded>
            <category><![CDATA[Malware]]></category>
            <category><![CDATA[Cloudflare Apps]]></category>
            <category><![CDATA[StopTheHacker]]></category>
            <guid isPermaLink="false">5uNVsIiO9uy8mvcgmD8Ph7</guid>
            <dc:creator>John Roberts</dc:creator>
        </item>
    </channel>
</rss>