An attacker exploits a weakness in a server or client's process of
delivering and verifying the integrity of code supplied by an
update-providing server or mechanism to cause code of the attacker's
choosing to be downloaded and installed as a software update. Attacks
against automated update mechanisms involve attack vectors which are
specific to the type of update mechanism, but typically involve two
different attack strategies: redirection or spoofing. Redirection-based
attacks exploit two layers of weaknesses in server or client software to
undermine the integrity of the target code-base.
The first weakness involves a failure to properly authenticate a server as
a source of update or patch content. This type of weakness typically results
from authentication mechanisms which can be defeated, allowing a hostile
server to satisfy the criteria that establish a trust relationship. The
second weakness is a systemic failure to validate the identity and integrity
of code downloaded from a remote location, hence the inability to
distinguish malicious code from a legitimate update.
One predominate type of redirection attack requires DNS spoofing or
hijacking of a domain name corresponding to an update server. The target
software initiates an update request and the DNS request resolves the domain
name of the update server to the IP address of the attacker, at which point
the software accepts updates either transmitted by or pulled from the
attacker's server. Attacks against DNS mechanisms comprise an initial phase
of a chain of attacks that facilitate automated update hijacking attack, and
such attacks have a precedent in targeted activities that have been as
complex as DNS/BIND attacks of corporate infrastructures, to untargeted
attacks aimed at compromising home broadband routers, as well as attacks
involving the compromise of wireless access points, as well as 'evil twin'
attacks coupled with DNS redirection. Due to the plethora of options open to
the attacker in forcing name resolution to arbitrary servers the Automated
Update Hijacking attack strategies are the tip of the spear for many
multi-stage attack chains.
The second weakness that is exploited by the attacker is the lack of
integrity checking by the software in validating the update. Software which
relies only upon domain name resolution to establish the identity of update
code is particularly vulnerable, because this signals an absence of other
security countermeasures that could be applied to invalidate the attacker's
payload on basis of code identity, hashing, signing, encryption, and other
integrity checking mechanisms. Redirection-based attack patterns work
equally well against client-side software as well as local servers or
daemons that provide software update functionality. One precedent of
redirection-based attacks involves the active exploitation of Firefox
extensions, such as the Google Toolbar, Yahoo Toolbar, Facebook Toolbar, and
others.
The second strategy employed in Automated Hijacking Attacks are spoofing
strategies, including content or identity spoofing, as well as protocol
spoofing. Content or identity spoofing attacks can trigger updates in
software by embedding scripted mechanisms within a malicious web page, which
masquerades as a legitimate update source. Scripting mechanisms communicate
with software components and trigger updates from locations specified by the
attacker's server. Such attacks have numerous precedents, one in particular
being eTrust Antivirus Webscan Automated Update Remote Code Execution
vulnerability (CVE-2006-3976) and (CVE-2006-3977) whereby an ActiveX control
could be remotely manipulated by an attacker controlled web page to download
and execute the attacker's code without integrity checking.