Software exploits are an attack technique used by
attackers to silently install various malware – such as Trojans or
backdoors – on a user’s computer without requiring social engineering to
trick the victim into manually running a malicious program. Such
malware installation through an exploit would be invisible to the user
and gives attackers an undeniable advantage. Exploits attempt to use
vulnerabilities in particular operating system or application components
in order to allow malware to execute.
In our previous blog post titled
Solutions to current antivirus challenges,
we discussed several methods by which security companies can tackle the
exploit problem. In this post, we provide more detail on the most
exploited applications on Microsoft Windows platforms and advise a few
steps users can (and should) take to further strengthen their defenses.
Exploitation Targets
The following applications are the ones most targeted by attackers through exploitation:
- Web browsers (Microsoft Internet Explorer, Google Chrome, Apple Safari, Mozilla Firefox and others).
- Plug-ins for browsers (Adobe Flash Player, Oracle Java, Microsoft Silverlight).
- The Windows operating system itself – notably the Win32 subsystem driver – win32k.sys.
- Adobe Reader and Adobe Acrobat
- Other specific applications
Different types of exploits are used in different attack scenarios.
One of the most dangerous scenarios for an everyday user is the use
of exploits by attackers to remotely install code into the operating
system. In such cases, we usually find that the user has visited a
compromised web resource and their system has been invisibly infected by
malicious code (an attack often referred to as a “drive-by download”).
If your computer is running a version of software such as a web browser
or browser plug-ins that are vulnerable to exploitation, the chances of
your system becoming infected with malware are very high due to the lack
of mitigation from the software vendor.
In the case of specific targeted attacks or attacks like a “watering
hole” attack, when the attacker plants the exploit code on websites
visited by the victim, the culprit can use zero-day (0-day)
vulnerabilities in software or the operating system. Zero-day
vulnerabilities are those that have not been patched by the vendor at
the time they are being exploited by attackers.
Another common technique used in targeted attacks is to send the
victim a PDF document “equipped” with an exploit. Social engineering is
also often used, for example by selecting a filename and document
content in such a way that the victim is likely to open it.
While PDFs are first and foremost document files, Adobe has extended
the file format to maximize its data exchange functionality by allowing
scripting and the embedding of various objects into files, and this can
be exploited by an attacker. While most PDF files are safe, some can be
dangerous, especially if obtained from unreliable sources. When such a
document is opened in a vulnerable PDF reader, the exploit code triggers
the malicious payload (such as installation of a backdoor) and a decoy
document is often opened.
Another target which attackers really love is Adobe Flash Player, as
this plug-in is used for playback of content on all the different
browsers. Like other software from Adobe, Flash Player is updated
regularly as advised by the company’s updates (see
Adobe Security Bulletins).
Most of these vulnerabilities are of the Remote Code Execution (RCE)
type and this indicates that the attackers could use such a
vulnerability for remotely executing malicious code on a victim’s
computer.
In relation to the browser and operating system, Java is a virtual
machine (or runtime environment JRE) able to execute Java applications.
Java applications are platform-independent, making Java a very popular
tool to use. Today Java is used by more than three billion devices. As
with other browser plug-ins, misusing the Java plug-in is attractive to
attackers, and given our previous experience of the malicious actions
and vulnerabilities with which it is associated, we can say that as
browser plug-ins go, Java represents one of the most dangerous
components.
Also, various components of the Windows operating system itself can
be used by attackers to remotely execute code or elevate privileges. The
figure below shows the number of patches various Windows components
have received during 2013 (up until November).
![Windows patches per component](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vyv0IyHGczi0QCVl22FQCTizLLMk9SBtz4Xyc3igccUR3kG9LuchOpvruTajvS21xQac2uj40_G8wwbLOThTXzuRxhjHllJXnbEpQVe6UTjUggXVIZXk45BpnxMd_-9JN_kG2Ts8zWvQ=s0-d)
Chart 1: Number of patches per component
The “Others” category includes vulnerabilities which were fixed for
various Operating System components (CSRSS, SCM, GDI, Print Spooler, XML
Core Services, OLE, NFS, Silverlight, Remote Desktop Client, Active
Directory, RPC, Exchange Server).
This ranking shows that Internet Explorer fixed the largest number of
vulnerabilities, more than a hundred vulnerabilities having been fixed
in the course of fourteen updates. Seven of the vulnerabilities had the
status ‘is-being-exploited-in-the-wild at the time of patching’: that
is, they were being actively exploited by attackers. The second
most-patched component of the operating system is the infamous Windows
subsystem driver win32k.sys. Vulnerabilities in this driver are used by
attackers to escalate privileges on the system, for example, to bypass
restrictions imposed by User Account Control (UAC), a least-privilege
mechanism introduced by Microsoft in Windows Vista to reduce the risk of
compromise by an attack that requires administrator privileges.
Mitigation techniques
We now look in more detail at the most exploited applications and
provide some steps that you can (and should) take to mitigate attacks
and further strengthen your defenses.
Windows Operating System
Modern versions of Microsoft Windows – i.e., Windows7, 8, and 8.1 at
time of writing – have built-in mechanisms which can help to protect
user from destructive actions delivered by exploits. Such features
became available starting with Windows Vista and were upgraded in the
most recent operating system versions. These features include:
- DEP (Data Execution Prevention) & ASLR (Address Space Layout Randomization) mechanisms
introduce an extra layer of complication when attempting to exploit
vulnerabilities in applications and the operating system. This is due to
special restrictions on the use of memory which should not be used to execute code, and the placement of program modules into memory at random addresses.
- UAC (User Account Control) has been upgraded from Windows 7
onward and requires confirmation from the user before programs can be
run that need to change system settings and create files in system
directories.
- SmartScreen Filter helps to prevent the downloading of
malicious software from the Internet based on the file’s reputation:
files known to be malicious or not recognized by the filter are blocked.
Originally it was a part of Internet Explorer, but with the release of
Windows 8 it was built into the operating system so it now works with
all browsers.
- Special “Enhanced Protected Mode” for Internet Explorer (starting from IE10):
on Windows 8 this mode allows the browser’s tabs to be run in the
context of isolated processes, which are prevented from performing
certain actions (a technique also known as sandboxing). For Windows 7
x64 (64-bit) this feature allows IE to run tabs as separate 64-bit
processes, which help to mitigate the common heap-spray method of shellcode distribution. For more information, refer to the MSDN blog (here and here).
PDF files
In view of the high risks posed by the use PDF documents from unsafe
sources, and given the low awareness of many users and their reluctance
to protect themselves adequately, modern versions of Adobe Reader have a
special “Protected Mode” (also referred to as sandboxing) for viewing
documents. When using this mode, code from the PDF file is prevented
from executing certain potentially dangerous functions.
![PDF protected mode](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uO889JC4uMU0RLgylEtV-U97BlDaE02jnbMsXWxVfroUEwXR5zMYFBuwyvHYy4eBxkU-QdicQWPa0QjuOkm005-irDtzxCRChVzbQkqQMbrzwUKVAC6oFuX6wtT-pC_voVTlYb0HyA4g=s0-d)
Figure 2: “Sandbox” mode options for Adobe Reader can be enabled through Edit -> Preferences -> Security (Enhanced).
By default, Protected Mode is turned off. Despite the active option
Enable Protected Mode at startup,
sandbox mode stays turned off because Protected Mode setting is set to
“Disabled” status. Accordingly, after installation it is
strongly recommended that you turn on this setting to apply to “Files From Potentially Unsafe Locations” or, even better, “All files”.
Please note that when you turn on protected view, Adobe Reader
disables several features which can be used in PDF files. Therefore,
when you open the file, you may receive a tooltip alert advising you
that protected mode is active.
![Figure 3: Tooltip which indicates active protected mode.](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tdCqfIkmbOVDlfVOT7ZyiJxx8sY6WEumllQAjobItunfBEIUgMWiiPu8QTSptZs9RXz18iMGTV5GSYfJ5MTpZgjnteAtSwe7c-Orpg8Td2zOitgMthoAqaIbZcpejs4cMAeueQcThvew=s0-d)
Figure 3: Tooltip which indicates active protected mode.
If you are sure about the origin and safety of the file, you can
activate all of its functions by pressing the appropriate button.
Adobe Flash Player
Adobe, together with the manufacturers of web browsers, has made
available special features and protective mechanisms to defend against
exploits that target the Flash Player plug-in. Browsers such as
Microsoft Internet Explorer (starting with version 10 on Windows 8.0 and
later), Google Chrome and Apple Safari (latest version) launch the
Flash Player in the context of specially-restricted (i.e.
sandboxed)
process, limiting the ability of this process to access many system
resources and places in the file system, and also to limit how it
communicates with the network.
Timely update of the Flash Player plug-in for your browser is very
important. Google Chrome and Internet Explorer 10+ are automatically
updated with the release of new versions of Flash Player. To check your
version of the Adobe Flash Player you can use
this official Adobe resource.
In addition, most browsers support the ability to completely disable
the Flash Player plug-in, so as to prohibit the browser from playing
such content.
Internet Browsers
At the beginning of this article we already mentioned that attackers
often rely on delivering malicious code using remote code execution
through the browser (drive-by downloads). Regardless of what browser
plug-ins are installed, the browser itself may contain a number of
vulnerabilities known to the attacker (and possibly not known to the
browser vendor). If the vulnerability has been patched by the developer
and an update for it is available, the user can install it and without
worrying that it will be used to compromise the operating system. On the
other hand, if the attackers
are using a previously unknown
vulnerability, in other words one that has not yet been patched
(zero-day), the situation is more complicated for the user.
Modern browsers and operating systems incorporate special
technologies for isolating application processes, thus creating special
restrictions on performing various actions, which the browser should not
be able to perform. In general, this technique is called
sandboxing
and it allows users to limit what a process can do. One example of this
isolation is the fact that modern browsers (for example, Google Chrome
and Internet Explorer) execute tabs as separate processes in the
operating system, thus allowing restricted permissions for executing
certain actions in a specific tab as well as maintaining the stability
of the browser. If one of the tabs hangs, the user can terminate it
without terminating other tabs.
In modern versions of Microsoft’s Internet Explorer browser (IE10 and
IE11) there is a special sandboxing technology, which is called
“Enhanced Protected Mode” (EPM). This mode allows you to restrict the
activity of a process tab or plug-in and thus make exploitation much
more difficult for attackers.
![Figure 4: Enhanced Protected Mode option turned on in Internet Explorer settings (available since IE10). On Windows 8+ (IE11) it was turned on by default before applying MS13-088.](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vv9u8YFAKD5Kms9ePy1jCL1c6LnoC786nCTBRhHzE2yUmMBahrvBnNXyoKL3xj--JsePwZf8JlJiA45mcxObdODgz3PCWSdNFTXeYW2JhrdbOXqnvtl94SSPV9-HKjebos7msAxY_mkw=s0-d)
Figure
4: Enhanced Protected Mode option turned on in Internet Explorer
settings (available since IE10). On Windows 8+ (IE11) it was turned on
by default before applying MS13-088.
EPM has been upgraded for Windows 8. If you are using EPM in Windows 7
x64, then this feature will cause that browser tabs are run as 64-bit
processes (on a 64-bit OS Internet Explorer runs its tabs as 32-bit
processes by default). Note that by default EPM is off.
![EPM at work](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uAmJPxghM7LF51FYMfkllNdsc3ST0VD7jN5hHTFeDXVXwVk-mVOfYYuMtEhuA0O7kCCkZ6Ov6sO4yoFStPcIdnAqM-nd6gueLiOgzAmjwH9gRMgVyFTJtyWSnWhh1LZSVFEg-QgnXm=s0-d)
Figure 5. Demonstration of EPM at work on Windows 7 x64 [using Microsoft Process Explorer].
With
this option turned on, the processes of browser tabs work as 64-bit,
making them difficult to use for malicious code installation (or at
least harder for heap-spraying attacks).
Starting with Windows 8, Enhanced Protected Mode has been expanded in
order to isolate (sandbox) a process’s actions at the operating system
level. This technology is called “AppContainer” and allows the maximum
possible benefit from the use of the EPM option. Internet Explorer tab
processes with the EPM option active work in AppContainer mode. In
addition, Windows 8 EPM mode is enabled by default (IE11).
![EPM implementation in Windows 8](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vr_CyR5VUzNe8zJkMFjcFH4pQpmjzg8qivLalh_DBgg229VYT1PFsAGJPZE6WdYlSk6I1CfvNETgmpyZxzsMWB6KxuOBkWkeHx2e8GCqthk10EeBDL-r-VdD7otk9_HDGAZSHMO2m20A=s0-d)
Figure
6. EPM implementation in Windows 8. In Windows 7 x64 EPM uses 64-bit
processes for IE tabs for mitigation, instead of AppContainer.
Note that before November Patch Tuesday 2013, which includes
MS13-088
update (Cumulative Security Update for Internet Explorer: November 12,
2013) Microsoft supported EPM as default setting for IE11 on Windows 8+.
But this update
disables
EPM for IE11 as default setting. So, now if you reset advanced IE
settings («Restore advanced settings» option) to ‘initial state’, EPM
will turn
off by default.
Google Chrome, like Internet Explorer, has special features to
mitigate drive-by download attacks. But unlike Internet Explorer,
sandboxing mode for Chrome is always active and requires no additional
action by the user to launch it. This feature of Chrome means that tab
processes work with restricted privileges, which does not allow them to
perform various system actions.
![Sandboxing mode as implemented in Google Chrome.](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sn2Dto8ft1781uhjkwJGjMse_C1y-L5YcHCASe-vWybPPIn2erk2wDPiqAB92fgNYhGHyE04SKXNe72T3IlLTDXM3vYQD6jefERWPUjRpAl_SyoWimnEg-cBv8ebP32ijjgjdqC2fslg=s0-d)
Figure 7: Sandboxing mode as implemented in Google Chrome.
Notice that almost all of the user’s SID groups in the access token
have the “Deny” status, restricting access to the system. Additional
information can be found on
MSDN.
In addition to this mode, Google Chrome is able to block malicious
URL-addresses or websites which have been blacklisted by Google because
of malicious actions (Google Safe Browsing). This feature is similar to
Internet Explorer’s SmartScreen.
![Google Safe Browsing](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_v1kr2K2gUPH4qmnrASxrIOJcsQqEb3pwto4R0_8svW1jOPmF0PhvIPw8ZXocV439sLZ6EAvcycUPRPymKFijTmcuNq4bpoIA32TbNTFLUMwUF7XvHxNAXfVkiwiQ4u93rm45qaRinrWw=s0-d)
Figure 8: Google Safe Browsing in Google Chrome blocking a suspicious webpage.
When you use Java on Windows, its security settings can be changed
using the control panel applet. In addition, the latest version contains
security settings which allow you to configure the environment more
precisely, allowing only trusted applications to run.
![Options for updating Java](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tIrBK_rhsAKv6ixUCQUWTUHnd9Moy9RyMg9LDDouiZwRNWRlnIUPSpwEjYl7xZZknmum_WcWuWFC_w1DC7NOCzivp3IVRLN_UM6LiRH24pkJUyS6arjr39TS-0wqxu8-jy3Kwy8VZRPA=s0-d)
Figure 9: Options for updating Java.
To completely disable Java in all browsers used in the system, remove
the option “Enable Java content in the browser” in Java settings.
![Figure 10: Java setting to disable its use in all browsers.](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ufVvntlMfra9y6Xb3ZOjqPOuJDBDc3Wc6QnnVoD1G2mm8_BMJ-XR9k8RAl7S-v2YkAcDAePx-eg6dl0Q5M3wHxNE14YxSjF-8-2P4B0jrwVohHGq642ZWUJr8H7ncVXSdU07hqKG_u=s0-d)
Figure 10: Java setting to disable its use in all browsers.
EMET
Microsoft has released a free tool for users to help protect the operating system from malicious actions used in exploits.
![Figure 11: EMET interface.](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_soO4qSYjH3ttyQ19VUuNONKIo52jvDKq2jXtyeGDxpWPwQ5WpDTGak3K1pncyW8yWfn8FQ3h6jPgQ7-m6wYTeN-alEDhrktggASvIrNcSEtcHHNx7QLEKOpYfRb6UjuN5g-Ig2lRSLBg=s0-d)
Figure 11: EMET interface.
The Enhanced Mitigation Experience Toolkit (EMET) uses preventive
methods to block various actions typical of exploits and to protect
applications from attacks. Despite the fact that Windows 7 and Windows 8
have built-in options for DEP and ASLR, which are enabled by default
and intended to mitigate the effects of exploitation, EMET allows the
introduction of new features for blocking the action of exploits and
enable DEP or ASLR for specified processes (increasing system protection
in older versions of the OS).
This tool must be configured separately for each application: in
other words, to protect an application using this tool, you need to
include that specific application in the list. In addition there is a
list of applications for which EMET is enabled by default: for example,
the browser Internet Explorer, Java and Microsoft Office. It’s a good
idea to add to the list your favorite browser and Skype.
Operating System Updates
Keeping your operating system and installed software promptly updated
and patched is good practice because vendors regularly use patches and
updates to address emerging vulnerabilities.
Note that Windows 7 and 8 have the ability to automatically deliver
updates to the user by default. You can also check for updates through
the Windows Control Panel as shown below.
![Figure 12: Windows Update](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_v4OGgHBerb-Qzz0ePgJTqxQalsWn5vgl_6rUVMEU728aeF9p5HeXT08NtZ_ip3YdGmAZMGmbDIbQ0QYv504um7o-9tbnT8LEvbf3JHKB0oMuPF-MdK_uEwPsfsgY-wf5CR5haLEzJl=s0-d)
Figure 12: Windows Update
Generic Exploit Blocking
So far, we have looked at blocking exploits that are specific to the
operating system or the applications you are using. You may also want to
look at blocking exploits in general. You may be able to turn to your
security software for this. For example, ESET introduced something
called the
Exploit Blocker
in its seventh generation of security products with its anti-malware
programs ESET Smart Security and ESET NOD32 Antivirus. The Exploit
Blocker is a proactive mechanism that works by analyzing suspicious
program behavior and generically detecting signs of exploitation,
regardless of the specific vulnerability that was used.
![Exploit Blocker Exploit Blocker](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uFplp-yOHym8z-jkrDPCg0GnDDf7r0c1sfG_2DPksvWj-ul7Su7HvnrKtpCwJ-jatAw8_Tx_PbbO6qnygVI-8jOcjA4pC1RdF3G4QGHKaIVdSgZmf5tFW3l07IieK6By7goCz1iD-H=s0-d)
Figure 1: ESET Exploit Blocker option turned on in HIPS settings.
Conclusion
Any operating system or program which is widely used will be studied
by attackers for vulnerabilities to exploit for illicit purposes and
financial gain. As we have shown above, Adobe, Google and Microsoft have
taken steps to make these types of attacks against their software more
difficult. However, no single protection technique can be 100% effective
against determined adversaries, and users have to remain vigilant about
patching their operating systems and applications. Since some vendors
update their software on a monthly basis, or even less frequently, it is
important to use (and keep updated) anti-malware software which blocks
exploits.