|
detection mechanism must operate outside the operating system,
<br />typically on specialized hardware (e.g., a co -processor [18]) or in
<br />a virtual -machine monitor [15]. Although there have been recent
<br />efforts to deploy virtual machines on smart phones [8], such sup-
<br />port is not widely available yet. Even so, existing rootkit detec-
<br />tion techniques [10, 18 21], which have primarily been developed
<br />for desktop systems, employ heavyweight mechanisms that require
<br />periodic scans of kernel memory snapshots. Such techniques will
<br />likely place substantial energy demands if used on smart phones.
<br />We conclude the paper by discussing the challenges involved in
<br />detecting rootkits on smart phones.
<br />2. BACKGRO
<br />Malware on Smart Phones
<br />Smart phones are an attractive target for attackers, both in the kinds
<br />of attacks that are possible and in the social implications of these
<br />attacks. Smart phones have access to both telephony and the In-
<br />ternet. As a consequence, malware that can attack a smart phone
<br />has the unique advantage of being able to affect the cell phone in-
<br />frastructure as well as other phones on the cellular network. These
<br />abilities have driven malware authors to focus on smart phones,
<br />with a recent report from MacAfee [3] stating that nearly 14% of
<br />mobile users worldwide have been directly infected or have known
<br />someone infected by mobile malware Nearly 72% of the users
<br />surveyed in the MacAfee study expressed concerns regarding the
<br />safety of using emerging mobile services and more than 86% were
<br />concerned about receiving inappropriate or unsolicited content, fraud-
<br />ulent bill increases, or information loss and theft.
<br />The pervasive nature of smart phones and a large, unsophisti-
<br />cated user base also make smart phones particularly attractive to
<br />attackers Important personal and financial information can likely
<br />be compromised by mobile malware because phone usage revolves
<br />largely around day-to-day user activities. For example, smart phones
<br />are increasingly being used for text messaging, email, storing per-
<br />sonal data, including financial data, pictures and videos. Espionage
<br />of such voice conversations is likely to have serious social implica-
<br />tions. As a second example, users typically tend to carry their smart
<br />phones (and keep them powered on) wherever they go; therefore,
<br />an attack that compromises the GPS subsystem will compromise
<br />privacy of the victim's location.
<br />Traditional threats to desktop systems, such as worms and viruses,
<br />have already begun infecting mobile platforms. According to F-
<br />Secure [1], there are already more than 400 mobile viruses in cir-
<br />culation. Several existing mobile malware result m simple annoy-
<br />ances. For example, the Skull.D viruslocks the phone and flashes
<br />an image of a skull and crossbones on the screen... .However, oth-
<br />ers are more dangerous and can cause financial damage to the user
<br />by sending text messages to "premium" numbers Malware such as
<br />spyware and Trojan horses have also started -affecting smart phones.
<br />The threats posed by mobile malware, can readily be countered
<br />using many of the same tools available for desktop machines For
<br />example, an antivirus tool equipped with an appropriate virus sig-
<br />nature database can detect the presence of viruses on a smart phone.
<br />As antivirus tools begin to get deployed on mobile platforms, we
<br />envisage that attackers will also move toward using stealth tech-
<br />niques to maintain long-term control over infected smart phones
<br />by maliciously modifying smart phone operating systems.
<br />Rootkits on Des i ps
<br />The term "rootkit" originally referred to a toolkit of techniques de-
<br />veloped by attackers to conceal the presence of malicious software
<br />on a compromised system. During infection, rootkits typically re-
<br />quire privileged access (e.g., root privileges) to infect the operating
<br />system. Even on operating systems that do not run applications
<br />Attack
<br />LOC 1 Size
<br />of kernel
<br />module
<br />116
<br />428
<br />134
<br />92.8 KB
<br />GSM
<br />GPS
<br />101.7
<br />87.2
<br />KB
<br />KB
<br />Battery
<br />Figure 1• Lines of code and size of the kernel modules that
<br />implement each of the three attacks.
<br />with root privileges, an attacker may exploit vulnerabilities in ap-
<br />plication programs, such as web browsers (e g., drive -by -download
<br />attacks) and the operating system, to obtain elevated privileges to
<br />install rootkits.
<br />Rootkits typically infect the system by installing themselves as
<br />kernel modules, which are loaded each time the operating system
<br />is booted. However, this approach leaves a disk footprint, i.e., the
<br />kernel module containing the rootkit, thereby exposing the rootkit
<br />to antivirus tools. Sophisticated rootkits avoid this problem by di-
<br />rectly modifying data in kernel memory and do not leave a disk
<br />footprint. Although such rootkits only persist until the system is
<br />rebooted, they are effective on desktop computers, which are often
<br />not rebooted for several days or months at a time.
<br />Once infected, a rootkit can serve as the stepping stone for sev-
<br />eral future attacks. For example, rootkits are commonly used to
<br />conceal keyloggers, which steal sensitive user data, such as pass-
<br />words and credit card numbers, by silently logging keystrokes. They
<br />might also install backdoor programs on the system, which allow a
<br />remote attacker to gain entry into the system in the future. Rootkits
<br />can also perform other stealthy activities, such as disabling the fire-
<br />wall/antivirus tools or affecting the output quality of the system's
<br />pseudo random number generator, thereby causing the generation
<br />of weak cryptographic keys [12]. None of these activities are di-
<br />rectly visible to the user because the rootkit conceals its presence.
<br />Their stealthy nature enables rootkits to stay undetected, and there-
<br />fore retain long-term control over infected systems.
<br />3. ROOTKITS ON SMART PHONES
<br />The, increasing complexity of smart phone operating systems
<br />makes them as vulnerable to rootkits as desktop operating sys-
<br />tems are. However, these rootkits can potentially exploit inter-
<br />faces and services unique to smart phones to compromise security
<br />in novel ways In this section, we present three proof -of -concept
<br />rootkits that we developed to illustrate the threat that they pose to
<br />smart phones. They were implemented by the first two authors,
<br />with only a basic undergraduate -level knowledge of operating sys-
<br />tems. Our test platform was a Neo Freerunner smart phone running
<br />the Openmoko Linux distribution [5]. We chose this platform be-
<br />cause (a) Linux source code is freely available, thereby allowing us
<br />to study and modify its data structures at will; and (b) the Neo
<br />Freerunner allows for easy experimentation, e.g., it allows end -
<br />users to re -flash the phone with newer versions of the operating
<br />system.
<br />All our rootkits were developed as Linux kernel modules (LKM),
<br />which we installed into the operating system. However, during a
<br />real attack, we expect that these LKMs will be delivered via other
<br />mechanisms, e.g., after an attacker has compromised a network -
<br />facing application or via a drive -by -download attack. Figure 1
<br />presents the lines of code needed to implement each attack, and
<br />the size of the corresponding kernel module. This figure shows the
<br />relative ease with which rootkits can be developed. It also shows
<br />that the small size of kernel modules allows for easy delivery, even
<br />on bandwidth -constrained smart phones.
<br />Although our implementation and discussion in this section are
<br />restricted to the Neo Freerunner platform, the attacks are broadly
<br />applicable to smart phones running different operating systems. For
<br />example, Android is a platform derived from Linux and can sup-
<br />2
<br />
|