Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Keystroke logging
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Application of keylogger == === Software-based keyloggers === [[File:Keylogger-screen-capture-example.png|thumb|upright=1.8|A keylogger example of a screen capture, which holds potentially confidential and private information. The image below holds the corresponding keylogger text result.]] [[File:Keylogger-software-logfile-example.jpg|thumb|right|upright=1.8|A [[logfile]] from a software-based keylogger, based on the screen capture above]] A software-based keylogger is a computer program designed to record any input from the keyboard.<ref>{{cite web|title=What is a Keylogger?|url=http://www.pctools.com/security-news/what-is-a-keylogger/|publisher=PC Tools}}</ref> Keyloggers are used in [[Information technology|IT]] organizations to troubleshoot technical problems with computers and business networks. Families and businesspeople use keyloggers legally to monitor network usage without their users' direct knowledge. [[Microsoft]] publicly stated that [[Windows 10]] has a built-in keylogger in its final version "to improve typing and writing services".<ref>{{cite web|url=https://www.privateinternetaccess.com/blog/2017/03/microsoft-windows-10-keylogger-enabled-default-heres-disable/|author=Caleb Chen|title=Microsoft Windows 10 has a keylogger enabled by default β here's how to disable it|date=2017-03-20}}</ref> However, malicious individuals can use keyloggers on public computers to steal passwords or credit card information. Most keyloggers are not stopped by [[HTTP Secure|HTTPS]] encryption because that only protects [[data in transit]] between computers; software-based keyloggers run on the affected user's computer, reading keyboard inputs directly as the user types. From a technical perspective, there are several categories: * '''Hypervisor-based''': The keylogger can theoretically reside in a [[malware]] [[hypervisor]] running underneath the operating system, which thus remains untouched. It effectively becomes a [[virtual machine]]. [[Blue Pill (software)|Blue Pill]] is a conceptual example. * '''[[Kernel (operating system)|Kernel]]-based''': A program on the machine obtains [[Superuser|root access]] to hide in the OS and intercepts keystrokes that pass through the kernel. This method is difficult both to write and to combat. Such keyloggers reside at the [[Ring (computer security)|kernel level]], which makes them difficult to detect, especially for user-mode applications that do not have root access. They are frequently implemented as [[rootkit]]s that subvert the operating system kernel to gain unauthorized access to the hardware. This makes them very powerful. A keylogger using this method can act as a keyboard [[device driver]], for example, and thus gain access to any information typed on the keyboard as it goes to the operating system. * '''API-based''': These keyloggers [[Hooking|hook]] keyboard [[Application programming interface|APIs]] inside a running application. The keylogger registers keystroke events as if it was a normal piece of the application instead of malware. The keylogger receives an [[event (computing)|event]] each time the user presses or releases a key. The keylogger simply records it. ** Windows APIs such as <code>GetAsyncKeyState()</code>, <code>GetForegroundWindow()</code>, etc. are used to poll the state of the keyboard or to subscribe to keyboard events.<ref>{{cite web|url=http://www.symantec.com/avcenter/reference/the.evolution.of.malicious.irc.bots.pdf|archive-url=https://web.archive.org/web/20060315074124/http://www.symantec.com/avcenter/reference/the.evolution.of.malicious.irc.bots.pdf|url-status=dead|archive-date=March 15, 2006|publisher=[[NortonLifeLock|Symantec]]|date=2005-11-26|title=The Evolution of Malicious IRC Bots|access-date=2011-03-25|pages=23β24}}</ref> A more recent{{When|date=January 2021}} example simply polls the [[BIOS]] for pre-boot authentication [[Personal identification number|PIN]]s that have not been cleared from memory.<ref>{{cite web|url=http://www.ivizsecurity.com/research/preboot/preboot_whitepaper.pdf|title=Bypassing pre-boot authentication passwords by instrumenting the BIOS keyboard buffer (practical low level attacks against x86 pre-boot authentication software)|date=2008-09-03|access-date=2008-09-23|author=Jonathan Brossard|website=[[iViz Security]]|url-status=dead|archive-url=https://web.archive.org/web/20080913072014/http://www.ivizsecurity.com/research/preboot/preboot_whitepaper.pdf|archive-date=2008-09-13}}</ref> * '''Form grabbing based''': [[Form grabbing]]-based keyloggers log [[Form (web)|Web form]] submissions by recording the form data on submit events. This happens when the user completes a form and submits it, usually by clicking a button or pressing enter. This type of keylogger records form data before it is passed over the Internet. * '''[[JavaScript]]-based:''' A malicious script tag is injected into a targeted web page, and listens for key events such as <code>onKeyUp()</code>. Scripts can be injected via a variety of methods, including [[cross-site scripting]], [[man-in-the-browser]], [[Man-in-the-middle attack|man-in-the-middle]], or a compromise of the remote website.<ref>{{Cite news|url=https://threatpost.com/web-based-keylogger-used-to-steal-credit-card-data-from-popular-sites/121141/|title=Web-Based Keylogger Used to Steal Credit Card Data from Popular Sites|date=2016-10-06|newspaper=Threatpost {{!}} The first stop for security news|language=en-US|access-date=2017-01-24}}</ref> * '''Memory-injection-based''': Memory Injection ([[Man-in-the-browser|MitB]])-based keyloggers perform their logging function by altering the memory tables associated with the browser and other system functions. By patching the memory tables or injecting directly into memory, this technique can be used by malware authors to bypass Windows UAC (User Account Control). The [[Zeus (malware)|Zeus]] and [[SpyEye trojan|SpyEye]] trojans use this method exclusively.<ref>{{cite news|title=SpyEye Targets Opera, Google Chrome Users|url=https://krebsonsecurity.com/2011/04/spyeye-targets-opera-google-chrome-users/|access-date=26 April 2011|newspaper=Krebs on Security}}</ref> Non-Windows systems have protection mechanisms that allow access to locally recorded data from a remote location.<ref>{{Cite web |date=2024-08-16 |title=Securing Linux with Mandatory Access Controls |url=https://www.geeksforgeeks.org/securing-linux-with-mandatory-access-controls/ |access-date=2025-02-25 |website=GeeksforGeeks |language=en-US}}</ref> Remote communication may be achieved when one of these methods is used: ** Data is uploaded to a website, database or an [[File Transfer Protocol|FTP]] server. ** Data is periodically emailed to a pre-defined [[email address]]. ** Data is [[wireless]]ly transmitted employing an attached hardware system. ** The software enables a remote login to the local machine from the Internet or the local network, for data logs stored on the target machine. ==== Keystroke logging in writing process research ==== Since 2006, keystroke logging has been an established research method for the study of writing processes.<ref>K.P.H. Sullivan & E. Lindgren (Eds., 2006), Studies in Writing: Vol. 18. Computer Key-Stroke Logging and Writing: Methods and Applications. Oxford: Elsevier.</ref><ref>V. W. Berninger (Ed., 2012), Past, present, and future contributions of cognitive writing research to cognitive psychology. New York/Sussex: Taylor & Francis. {{ISBN|9781848729636}}</ref> Different programs have been developed to collect online process data of writing activities,<ref name=AAA>{{cite news|url=http://www.spywareloop.com/news/keystroke-logging |title=Keystroke Logging in SpyWareLoop.com |author=Vincentas |newspaper=Spyware Loop |date=11 July 2013 |access-date=27 July 2013 |url-status=dead |archive-url=https://web.archive.org/web/20131207133350/http://www.spywareloop.com/news/keystroke-logging |archive-date= 7 December 2013 }}</ref> including [[Inputlog]], Scriptlog, Translog and GGXLog. Keystroke logging is used legitimately as a suitable research instrument in several writing contexts. These include studies on cognitive writing processes, which include * descriptions of writing strategies; the writing development of children (with and without writing difficulties), * spelling, * first and second language writing, and * specialist skill areas such as translation and subtitling. Keystroke logging can be used to research writing, specifically. It can also be integrated into educational domains for second language learning, programming skills, and typing skills. ==== Related features ==== Software keyloggers may be augmented with features that capture user information without relying on keyboard key presses as the sole input. Some of these features include: * Clipboard logging. Anything that has been copied to the [[Clipboard (software)|clipboard]] can be captured by the program. * Screen logging. [[Screenshot]]s are taken to capture graphics-based information. Applications with screen logging abilities may take screenshots of the whole screen, of just one application, or even just around the mouse cursor. They may take these screenshots periodically or in response to user behaviors (for example, when a user clicks the mouse). Screen logging can be used to capture data inputted with an on-screen keyboard. * Programmatically capturing the text in a [[GUI widget|control]]. The [[Microsoft Windows]] [[Application programming interface|API]] allows programs to request the text 'value' in some controls. This means that some passwords may be captured, even if they are hidden behind password masks (usually asterisks).<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/bb761584(VS.85).aspx|author=Microsoft|title=EM_GETLINE Message()|access-date=2009-07-15|publisher=[[Microsoft]]}}</ref> * The recording of every program/folder/window opened including a screenshot of every website visited. * The recording of [[Web search query|search engines queries]], [[instant messenger]] conversations, FTP downloads and other Internet-based activities (including the bandwidth used). === Hardware-based keyloggers === [[File:USB Hardware Keylogger.jpg|alt=|thumb|A hardware-based keylogger]] [[File:Usb-logger.jpg|alt=|thumb|A connected hardware-based keylogger]] {{Main|Hardware keylogger}} Hardware-based keyloggers do not depend upon any software being installed as they exist at a hardware level in a computer system. * Firmware-based: [[BIOS]]-level [[firmware]] that handles keyboard events can be modified to record these events as they are processed. Physical and/or [[Superuser|root-level access]] is required to the machine, and the software loaded into the BIOS needs to be created for the specific hardware that it will be running on.<ref>{{cite web|title=Apple keyboard hack|url=http://www.digitalsociety.org/2009/08/apple-keyboards-hacked-and-possessed/|publisher=Digital Society|access-date=9 June 2011|url-status=dead|archive-url=https://web.archive.org/web/20090826150015/http://www.digitalsociety.org/2009/08/apple-keyboards-hacked-and-possessed|archive-date=26 August 2009}}</ref> * Keyboard hardware: Hardware keyloggers are used for keystroke logging utilizing a hardware circuit that is attached somewhere in between the [[computer keyboard]] and the computer, typically inline with the keyboard's cable connector. There are also [[Universal Serial Bus|USB]] connector-based hardware keyloggers, as well as ones for laptop computers (the [[Mini-PCI]] card plugs into the expansion slot of a laptop). More stealthy implementations can be installed or built into standard keyboards so that no device is visible on the external cable. Both types log all keyboard activity to their [[Primary storage|internal memory]], which can be subsequently accessed, for example, by typing in a secret key sequence. Hardware keyloggers do not require any software to be installed on a target user's computer, therefore not interfering with the computer's operation and less likely to be detected by software running on it. However, its physical presence may be detected if, for example, it is installed outside the case as an inline device between the computer and the keyboard. Some of these implementations can be controlled and monitored remotely using a wireless communication standard.<ref>{{cite web|title=Keylogger Removal |url=http://spyreveal.com/keyloggerremoval |publisher=SpyReveal Anti Keylogger |access-date=25 April 2011 |url-status=dead |archive-url=https://web.archive.org/web/20110429181147/http://spyreveal.com/keyloggerremoval |archive-date=29 April 2011 }}</ref> *Wireless keyboard and mouse [[Sniffer (protocol analyzer)|sniffers]]: These passive sniffers collect packets of data being transferred from a wireless keyboard and its receiver. As encryption may be used to secure the wireless communications between the two devices, this may need to be cracked beforehand if the transmissions are to be read. In some cases, this enables an attacker to type arbitrary commands into a victim's computer.<ref>{{cite web|title=Keylogger Removal|url=https://www.bastille.net/technical-details|publisher=SpyReveal Anti Keylogger|access-date=26 February 2016}}</ref> *Keyboard overlays: Criminals have been known to use keyboard overlays on [[Automated teller machine|ATMs]] to capture people's PINs. Each keypress is registered by the keyboard of the ATM as well as the criminal's keypad that is placed over it. The device is designed to look like an integrated part of the machine so that bank customers are unaware of its presence.<ref>{{cite news|url=http://www.pcworld.com/article/155525/.html?tk=rss_news|title=Tampered Credit Card Terminals|author=Jeremy Kirk|publisher=[[International Data Group|IDG]] News Service|date=2008-12-16|access-date=2009-04-19}}</ref> *Acoustic keyloggers: [[Acoustic cryptanalysis]] can be used to monitor the sound created by someone typing on a computer. Each key on the keyboard makes a subtly different acoustic signature when struck. It is then possible to identify which keystroke signature relates to which keyboard character via [[Statistics|statistical methods]] such as [[frequency analysis]]. The repetition frequency of similar acoustic keystroke signatures, the timings between different keyboard strokes and other context information such as the probable language in which the user is writing are used in this analysis to map sounds to letters.<ref>{{cite web|url=http://www.inf.ed.ac.uk/publications/thesis/online/IM100855.pdf|author=Andrew Kelly|title=Cracking Passwords using Keyboard Acoustics and Language Modeling|date=2010-09-10}}</ref> A fairly long recording (1000 or more keystrokes) is required so that a large enough [[sample (statistics)|sample]] is collected.<ref>{{cite web |url=http://www.berkeley.edu/news/media/releases/2005/09/14_key.shtml |author=Sarah Young |title=Researchers recover typed text using audio recording of keystrokes |publisher=UC Berkeley NewsCenter|date=14 September 2005}}</ref> *Electromagnetic emissions: It is possible to capture the [[Electromagnetic radiation|electromagnetic emissions]] of a wired keyboard from up to {{Convert|20|m|ft}} away, without being physically wired to it.<ref>{{cite web|last1=Knight|first1=Will|title=A Year Ago: Cypherpunks publish proof of Tempest|url=https://www.zdnet.com/article/a-year-ago-cypherpunks-publish-proof-of-tempest/|website=ZDNet|language=en}}</ref> In 2009, Swiss researchers tested 11 different [[Universal Serial Bus|USB]], [[IBM Personal System/2|PS/2]] and laptop keyboards in a semi-[[anechoic chamber]] and found them all vulnerable, primarily because of the prohibitive cost of adding [[Electromagnetic shielding|shielding]] during manufacture.<ref>{{cite journal|url=http://infoscience.epfl.ch/record/140523?ln=en|title=Compromising Electromagnetic Emanations of Wired and Wireless Keyboards|journal=Proceedings of the 18th Usenix Security Symposium|date=2009-06-01|author=Martin Vuagnoux and Sylvain Pasini|pages=1β16 |editor1=Vuagnoux, Martin|editor2=Pasini, Sylvain}}</ref> The researchers used a wide-band [[Receiver (radio)|receiver]] to tune into the specific frequency of the emissions radiated from the keyboards. *Optical surveillance: Optical surveillance, while not a keylogger in the classical sense, is nonetheless an approach that can be used to capture passwords or [[Personal identification number|PINs]]. A strategically placed camera, such as a hidden [[surveillance camera]] at an [[Automated teller machine|ATM]], can allow a criminal to watch a PIN or password being entered.<ref>{{cite web|url=http://www.snopes.com/fraud/atm/atmcamera.asp|title=ATM camera|website=www.snopes.com|date=19 January 2004 |access-date=2009-04-19}}</ref><ref>{{cite conference |last1=Maggi |first1=Federico |last2=Volpatto |first2=Alberto |last3=Gasparini |first3=Simone |last4=Boracchi |first4=Giacomo |last5=Zanero |first5=Stefano |title=2011 7th International Conference on Information Assurance and Security (IAS) |year=2011 |chapter=A fast eavesdropping attack against touchscreens |pages=320β325 |conference=7th International Conference on Information Assurance and Security |publisher=IEEE |doi=10.1109/ISIAS.2011.6122840 |isbn=978-1-4577-2155-7 |chapter-url=http://www.syssec-project.eu/m/page-media/3/iclearshot-ias11.pdf }}<!--|access-date=25 August 2014 --></ref> *Physical evidence: For a keypad that is used only to enter a security code, the keys which are in actual use will have evidence of use from many fingerprints. A passcode of four digits, if the four digits in question are known, is reduced from 10,000 possibilities to just 24 possibilities (10<sup>4</sup> versus 4! [<nowiki/>[[factorial]] of 4]). These could then be used on separate occasions for a manual "brute force attack". *[[Smartphone]] sensors: Researchers have demonstrated that it is possible to capture the keystrokes of nearby computer keyboards using only the commodity [[accelerometer]] found in smartphones.<ref>{{cite conference |last1=Marquardt |first1=Philip |last2=Verma |first2=Arunabh |last3=Carter |first3=Henry |last4=Traynor |first4=Patrick |year=2011 |title=(sp)iPhone: decoding vibrations from nearby keyboards using mobile phone accelerometers |conference=Proceedings of the 18th ACM conference on Computer and communications security |pages=561β562 |publisher=ACM |doi=10.1145/2046707.2046771 }}<!--|access-date=August 25, 2014 --></ref> The attack is made possible by placing a smartphone near a keyboard on the same desk. The smartphone's accelerometer can then detect the vibrations created by typing on the keyboard and then translate this raw accelerometer signal into readable sentences with as much as 80 percent accuracy. The technique involves working through probability by detecting pairs of keystrokes, rather than individual keys. It models "keyboard events" in pairs and then works out whether the pair of keys pressed is on the left or the right side of the keyboard and whether they are close together or far apart on the [[QWERTY]] keyboard. Once it has worked this out, it compares the results to a preloaded dictionary where each word has been broken down in the same way.<ref>{{cite magazine|url=https://www.wired.com/2011/10/iphone-keylogger-spying/ |title=iPhone Accelerometer Could Spy on Computer Keystrokes |magazine=Wired |date= 19 October 2011|access-date=August 25, 2014}}</ref> Similar techniques have also been shown to be effective at capturing keystrokes on touchscreen keyboards<ref>{{cite conference |last1=Owusu |first1=Emmanuel |last2=Han |first2=Jun |last3=Das |first3=Sauvik |last4=Perrig |first4=Adrian |last5=Zhang |first5=Joy |year=2012 |title=ACCessory: password inference using accelerometers on smartphones |conference=Proceedings of the Thirteenth Workshop on Mobile Computing Systems and Applications |publisher=ACM |doi=10.1145/2162081.2162095 }}<!--|access-date=25 August 2014 --></ref><ref>{{cite conference |last1=Aviv |first1=Adam J. |last2=Sapp |first2=Benjamin |last3=Blaze |first3=Matt |last4=Smith |first4=Jonathan M. |title=Proceedings of the 28th Annual Computer Security Applications Conference on - ACSAC '12 |year=2012 |chapter=Practicality of accelerometer side channels on smartphones |page=41 |conference=Proceedings of the 28th Annual Computer Security Applications Conference |publisher=ACM |doi=10.1145/2420950.2420957 |isbn=9781450313124 }}<!--|access-date=25 August 2014 --></ref><ref>{{cite conference |last1=Cai |first1=Liang |last2=Chen |first2=Hao |year=2011 |title=TouchLogger: inferring keystrokes on touch screen from smartphone motion |conference=Proceedings of the 6th USENIX conference on Hot topics in security |publisher=USENIX |url=https://www.usenix.org/events/hotsec11/tech/final_files/Cai.pdf |access-date=25 August 2014 }}</ref> while in some cases, in combination with [[gyroscope]]<ref>{{cite conference |last1=Xu |first1=Zhi |last2=Bai |first2=Kun |last3=Zhu |first3=Sencun |year=2012 |title=TapLogger: inferring user inputs on smartphone touchscreens using on-board motion sensors |conference=Proceedings of the fifth ACM conference on Security and Privacy in Wireless and Mobile Networks |publisher=ACM |pages=113β124 |doi=10.1145/2185448.2185465 }}<!--|access-date=25 August 2014 --></ref><ref>{{cite conference |last1=Miluzzo |first1=Emiliano |last2=Varshavsky |first2=Alexander |last3=Balakrishnan |first3=Suhrid |last4=Choudhury |first4=Romit Roy |year=2012 |title=Tapprints: your finger taps have fingerprints |conference=Proceedings of the 10th international conference on Mobile systems, applications, and services |pages=323β336 |publisher=ACM |doi=10.1145/2307636.2307666 }}<!--|access-date=25 August 2014 --></ref> or with the ambient-light sensor.<ref>{{cite conference |last1=Spreitzer |first1=Raphael | year=2014 |title=PIN Skimming: Exploiting the Ambient-Light Sensor in Mobile Devices |conference=Proceedings of the 4th ACM Workshop on Security and Privacy in Smartphones & Mobile Devices |publisher=ACM |pages=51β62 |doi=10.1145/2666620.2666622|arxiv=1405.3760 }}</ref> *Body keyloggers: Body keyloggers track and analyze body movements to determine which keys were pressed. The attacker needs to be familiar with the keys layout of the tracked keyboard to correlate between body movements and keys position, although with a suitably large sample this can be deduced. Tracking audible signals of the user' interface (e.g. a sound the device produce to informs the user that a keystroke was logged) may reduce the complexity of the body keylogging algorithms, as it marks the moment at which a key was pressed.<ref>{{Cite journal|last=Hameiri|first=Paz|date=2019|title=Body Keylogging|url=https://hakin9.org/product/hacking-with-raspberry-pi-4/|journal=Hakin9 IT Security Magazine|volume= 14| issue = 7|pages= 79β94}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)