The cyber kill chain is used to model a cyber intrusion, identifying the different stages involved in a cyber-attack. The model is well established , but recently I have been asked multiple times to help information security teams understand the ways in which the kill chain has changed with the advent of cloud applications. In this blog post I will summarize how I normally answer this question, showing some examples of malicious campaigns that have made use of the cloud to evade traditional security technologies.
There are multiple ways to represent the cyber kill chain but its simplest form, involves seven stages.
- Recon: typically used in targeted attacks, in this phase the attackers gather intelligence about their victims.
- Weaponize: in this phase, malicious actors prepare their attack vectors (for example develop the payloads used for the attack or setup the infrastructure).
- Delivery: this phase is where the malicious payload is delivered to the designated victim (for example via a spear-phishing email or a drive-by campaign).
- Exploit: if a vulnerability is exploited to execute code on the victim’s system, it will occur in this phase.
- Install: the malware is installed in the compromised system
- Callback: once the malware is successfully installed, it will check-in to the attacker’s command and control infrastructure (from where the attackers can control the asset).
- Persist: in this phase, the attackers can move laterally or dig deeper into the compromised organization.
It is important to note that not all steps of the kill chain are used in every attack. The first and last stages ‘Recon’ and ‘Persist’ typically feature in targeted attacks. Gathering intelligence about the victim’s habits and vulnerabilities is needed to tailor the attack and increase the possibilities of success, while persistence is needed to establish a deeper, consolidated relationship with the victim, enabling the malicious actor to benefit from the compromised organization for months or even years.
The duration of an attack can differ wildly depending on its nature. Opportunistic attacks must be executed quickly, and the end value to the malicious actor often hinges on the number of the victims rather than their “quality”. However, even opportunistic attacks have been known to feature ‘Persist’, lasting for months beyond the initial incursion, for example, when a generic endpoint is enslaved by a botnet.
Exploiting Cloud Services Inside the Cyber Kill Chain
The fears of cautious security professionals are undoubtedly correct; if not correctly secured, cloud services can increase the attack surface for an organization, and at multiple phases of the kill chain.
The Recon phase can use multiple methods to gather intelligence from a victim, including research into vulnerable elements in the infrastructure or humans. The growing adoption of cloud services simply gives attackers additional entry points: malicious actors can research which cloud services are in use by their victims (for example to create fake login pages delivered via spear phishing), or scan for misconfigured or publicly accessible cloud resources that can be exploited to break into the targeted organization. They can also take advantage of sensitive information inadvertently shared in apparently innocuous cloud services. In March it was reported that searching just 13% of all GitHub public repositories over a period of six months revealed more than 100,000 repos leaking API tokens and cryptographic keys.
Weaponize and Exploit
The Weaponize phase sees the malicious actor setting up the necessary infrastructure for their work (phishing pages, malware distribution points, exploit kit landing pages, or command and control domains). Today, these resources can easily be hosted on cloud services. It is increasingly common to see malicious campaigns distributing their payload from cloud services, and even using cloud services as a safe haven for their command and control. The reasons for this are both straightforward and familiar to the enterprise IT team; cloud services offer unmatched resiliency and availability, scalability at a manageable cost, allow the creation of resources with a single click.
Perhaps even more importantly, cloud services are all-too-often not inspected or are completely allow listed by traditional technologies which cannot effectively recognize and analyze context. Here we see the role of cloud in the Exploit phase of the Cyber Kill Chain. A context-aware system would notice data that is being dropped into an AWS or Azure instance external to the organization, but traditional security technologies cannot do this. So cybercriminals use cloud services to evade detection and remain under the radar of traditional security solutions.
Once the malicious infrastructure has been constructed, the next logical step is the Delivery of the attack vector from the cloud. Phishing pages can now be served from the cloud, as can any other potentially malicious payloads. It is worth notice that serving phishing pages from the cloud is in fact particularly effective since the fake login page presents a legitimate certificate and a URL that sounds familiar to the user, and ultimately breaches the ‘human firewall’. A malicious payload delivered from a known cloud service has a higher probability of being executed as the user implicitly trusts the source, despite any possible pop-up warning. We have also identified campaigns abusing cloud services as redirectors to malware distribution sites used for targeted attacks.
Another way to exploit cloud services in the delivery phase is to create fake cloud application login pages (mimicking the ones used by the victims) with the purpose of luring the victims and “phishing” for their credentials, or even worse, steal their OAUTH token (something successfully engineered in both opportunistic and targeted attacks in the past).
Once the malware is installed, it needs to connect to its command and control infrastructure (Callback). Attackers can use this connection to leak information, enslave the compromised endpoint in a botnet to launch DDoS attacks or spam campaigns, or establish a foothold to move laterally and dig deeper into the victim organization. And guess what? Again, the cloud plays an important role in this phase, as the attackers can use trusted cloud services like AWS and Google Drive, as well as popular applications like Twitter or Slack, to hide the communication channel. The reason is always the same: evasion. As explained in the ‘Exploit’ phase, if an organization has already sanctioned the use of AWS or Google Drive, this traffic will usually be allowed as legacy technologies don’t have instance-awareness and therefore cannot recognize whether the connection is directed to the organization’s own instance of AWS/Drive or an instance of AWS/Drive employed by a malicious third party. In many cases, the traffic to sanctioned cloud services will not even be inspected for malware or anomalous patterns since SSL inspection is a resource-intensive task for legacy on-premise technologies, and introduces latency at levels that unacceptably impact the user experience.
The characteristics of cloud play an important role in the Persist phase too. Once they access the cloud service, directly or via a compromised endpoint, attackers can move laterally and hop across cloud services. They can not only change the configuration of critical services hosted in the cloud, escalate privileges to gain increased access, steal data and clear up their traces, but also spin up new instances for malicious purposes like cryptojacking. Stolen credentials, leaked accounts, or misconfiguration of cloud services are typical ways used by attackers to break into cloud services and move laterally.
It is of course incredibly important that we do not ring fence or separate cloud attack vectors and surfaces in our consideration of – and response to – the kill chain. An attack can use a combination of “traditional” attack vectors, such as web and email, as well as cloud services. We use the term “Hybrid Threats” to define attacks that leverage this mixed approach to remain under the radar of traditional security solutions.
Only a cloud-native technology can detect and mitigate cloud-native threats. Netskope recommends the following to combat cloud-native malware and threats:
- Perform a regular continuous security assessment of all IaaS resources to prevent misconfigurations that can be exploited by malicious actors.
- Perform a regular DLP scan of externally shared content in sanctioned cloud applications to prevent inadvertent leakage of information that can be exploited by malicious actors.
- Deploy a threat-aware, instance-aware, unified platform like Netskope that can assemble a more complete picture of your position, find hybrid threats and enforce usage policy for both unsanctioned services and unsanctioned instances of sanctioned cloud services.
- Warn users to avoid executing unsigned macros and macros from an untrusted source, even if the source seems to be a legitimate cloud service.
- Warn users to avoid executing any file unless they are very sure that they are benign.
- Warn users against opening untrusted attachments, regardless of their extensions or filenames.
- Keep systems and antivirus updated with the latest releases and patches.
Sample policies to enforce:
- Scan all uploads from unmanaged devices to sanctioned cloud applications, looking for malware
- Scan all uploads from remote devices to sanctioned cloud applications, looking for malware
- Scan all downloads from unsanctioned cloud applications, looking for malware
- Scan all downloads from unsanctioned instances of sanctioned cloud applications, looking for malware
- Enforce quarantine/block actions on malware detection to reduce user impact
- Block unsanctioned instances of sanctioned/well-known cloud apps, to prevent attackers from exploiting user trust in cloud. While this seems a little restrictive, it significantly reduces the risk of malware infiltration attempts via cloud.