{"id":60710,"date":"2015-07-06T12:36:47","date_gmt":"2015-07-06T11:36:47","guid":{"rendered":"https:\/\/www.transcend.org\/tms\/?p=60710"},"modified":"2015-07-06T12:46:09","modified_gmt":"2015-07-06T11:46:09","slug":"xkeyscore-part-ii-behind-the-curtain-a-look-at-the-inner-workings-of-nsa","status":"publish","type":"post","link":"https:\/\/www.transcend.org\/tms\/2015\/07\/xkeyscore-part-ii-behind-the-curtain-a-look-at-the-inner-workings-of-nsa\/","title":{"rendered":"XKEYSCORE (Part II) &#8211; Behind the Curtain: A Look at the Inner Workings of NSA"},"content":{"rendered":"<p><em>Second\u00a0in a series. <a href=\"https:\/\/www.transcend.org\/tms\/2015\/07\/xkeyscore-part-i-nsas-google-for-the-worlds-private-communications\/\" >Part 1 here<\/a>.<\/em><\/p>\n<p><em>2 Jul 2015 &#8211; <\/em>The sheer quantity of communications that XKEYSCORE processes, filters and queries is stunning. Around the world, when a person gets online to do anything \u2014 write an email, post to a social network, browse the web or play a video game \u2014 there\u2019s a decent chance that the Internet traffic her\u00a0device sends and receives is getting collected and processed by one of XKEYSCORE\u2019s hundreds of servers scattered across the globe.<\/p>\n<div id=\"attachment_60711\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/surveillance-spying-NSA\u2019s-XKEYSCORE.jpg\" ><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-60711\" class=\"wp-image-60711\" src=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/surveillance-spying-NSA\u2019s-XKEYSCORE-1024x640.jpg\" alt=\"Illustration for The Intercept by Blue Delliquanti\" width=\"700\" height=\"438\" srcset=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/surveillance-spying-NSA\u2019s-XKEYSCORE-1024x640.jpg 1024w, https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/surveillance-spying-NSA\u2019s-XKEYSCORE-300x188.jpg 300w, https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/surveillance-spying-NSA\u2019s-XKEYSCORE.jpg 1200w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-60711\" class=\"wp-caption-text\">Illustration for The Intercept by Blue Delliquanti<\/p><\/div>\n<p>In order to make sense of such a massive and steady flow of information, analysts working for the National Security Agency, as well as partner spy agencies, have written thousands of snippets of code to detect different types of traffic and extract useful information from each type, according to documents dating up to 2013. For example, the system automatically detects if\u00a0a given piece of traffic is an email. If it is, the system\u00a0tags if it\u2019s from Yahoo or Gmail, if it contains an airline itinerary, if it\u2019s encrypted with PGP, or if the sender\u2019s language is set to Arabic, along with myriad other details.<\/p>\n<p>This global Internet surveillance network is powered by a somewhat clunky piece of software running on clusters of Linux servers. Analysts access XKEYSCORE\u2019s web interface to search its wealth of private information, similar to how ordinary people can search Google for public information.<\/p>\n<p>Based on documents provided by NSA whistleblower Edward Snowden, <em>The Intercept<\/em> is shedding light on the inner workings of XKEYSCORE, one of the most extensive programs of mass surveillance in human history.<\/p>\n<p><strong>How XKEYSCORE works under the hood<\/strong><\/p>\n<p>It is tempting to assume that expensive, proprietary operating systems and software must power XKEYSCORE, but it actually relies on an entirely open source stack. In fact, according to an analysis of an XKEYSCORE manual for new systems administrators from the end of 2012, the system may have design deficiencies that could leave it vulnerable to attack by an intelligence agency insider.<\/p>\n<p>XKEYSCORE is a piece of Linux software that is typically deployed on Red Hat servers. It uses the Apache web server and stores collected data in MySQL databases. File systems in a cluster are handled by the NFS distributed file system and the autofs service, and scheduled tasks are handled by the cron scheduling service. Systems administrators who maintain XKEYSCORE servers use SSH to connect to them, and they use tools such as rsync and vim, as well as a comprehensive command-line tool, to manage the software.<\/p>\n<p>John Adams, former security lead and senior operations engineer for Twitter, says that one of the most interesting things about XKEYSCORE\u2019s architecture is \u201cthat they were able to achieve so much success with such a poorly designed system. Data ingest, day-to-day operations, and searching is all poorly designed. There are many open source offerings that would function far better than this design with very little work. Their operations team must be extremely unhappy.\u201d<\/p>\n<p>Analysts connect to XKEYSCORE over HTTPS using standard web browsers such as Firefox. Internet Explorer is not supported. Analysts can log into the system with either a user ID and password or by using public key authentication.<\/p>\n<p>As of 2009, XKEYSCORE servers were located at more than 100 field sites all over the world. Each field site consists of a cluster of servers; the exact number differs depending on how much information is being collected at that site. Sites with relatively low traffic can get by with fewer servers, but sites that spy on larger amounts of traffic require more servers to filter and parse it all. XKEYSCORE has been engineered to scale in both processing power and storage by adding more servers to a cluster. According to a 2009 document, some field sites receive over 20 terrabytes of data per day. This is the equivalent of\u00a05.7 million songs, or over 13\u00a0thousand full-length films.<\/p>\n<div id=\"attachment_60712\" style=\"width: 550px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-map-125-540x405-keyscore.png\" ><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-60712\" class=\"size-full wp-image-60712\" src=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-map-125-540x405-keyscore.png\" alt=\"This map from a 2009 top-secret presentation does not show all of XKEYSCORE\u2019s field sites.\" width=\"540\" height=\"405\" srcset=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-map-125-540x405-keyscore.png 540w, https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-map-125-540x405-keyscore-300x225.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><p id=\"caption-attachment-60712\" class=\"wp-caption-text\">This map from a 2009 top-secret presentation does not show all of XKEYSCORE\u2019s field sites.<\/p><\/div>\n<p>When data is collected at an XKEYSCORE field site, it is processed locally and ultimately stored in MySQL databases at that site. XKEYSCORE supports a federated query system, which means that an analyst can conduct a single query from the central XKEYSCORE website, and it will communicate over the Internet to all of the field sites,\u00a0running\u00a0the query everywhere at once.<\/p>\n<p>There might be security issues with the XKEYSCORE system itself as well. As hard as software developers may try, it\u2019s nearly impossible to write bug-free source code. To compensate for this, developers often rely on multiple layers of security; if attackers can get through one layer, they may still be\u00a0thwarted by other layers. XKEYSCORE appears to do a bad job of this.<\/p>\n<p>When systems administrators log into XKEYSCORE servers to configure them, they appear to use a shared account, under the name \u201coper.\u201d Adams notes, \u201cThat means that changes made by an administrator cannot be logged.\u201d If one administrator does something malicious on an XKEYSCORE server using the \u201coper\u201d user, it\u2019s possible that the digital trail of what was done\u00a0wouldn\u2019t lead back to the administrator, since multiple operators use the account.<\/p>\n<p>There appears to be another way an ill-intentioned systems administrator may be able to cover their tracks. Analysts wishing to query XKEYSCORE sign in via a web browser, and their searches are logged. This creates an audit trail, on which the system relies to assure that users aren\u2019t doing overly broad searches that would pull up U.S. citizens\u2019 web traffic. Systems administrators, however, are able to run MySQL queries. The documents indicate that administrators have the ability to directly query the MySQL databases, where the collected data is stored, apparently bypassing the audit trail.<\/p>\n<p><strong>AppIDs, fingerprints and microplugins<\/strong><\/p>\n<p>Collecting massive amounts of raw data is not very useful unless it is collated and organized in a way that can be searched. To deal with this problem, XKEYSCORE extracts and tags metadata and content from the raw data so that analysts can easily search it.<\/p>\n<p>This is done by using dictionaries of rules called appIDs, fingerprints and microplugins that are written in a custom programming language called GENESIS. Each of these can be identified by a unique name that resembles a directory tree, such as \u201cmail\/webmail\/gmail,\u201d \u201cchat\/yahoo,\u201d or \u201cbotnet\/blackenergybot\/command\/flood.\u201d<\/p>\n<p>One document detailing XKEYSCORE appIDs and fingerprints lists several revealing examples. Windows Update requests appear to fall under the \u201cupdate_service\/windows\u201d appID, and normal web requests fall under the \u201chttp\/get\u201d appID. XKEYSCORE can automatically detect Airblue travel itineraries with the \u201ctravel\/airblue\u201d fingerprint, and iPhone web browser traffic with the \u201cbrowser\/cellphone\/iphone\u201d fingerprint.<\/p>\n<p>PGP-encrypted messages are detected with the \u201cencryption\/pgp\/message\u201d fingerprint, and messages encrypted with Mojahedeen Secrets 2 (a type of encryption popular among supporters of al Qaeda) are detected with the \u201cencryption\/mojaheden2\u201d fingerprint.<\/p>\n<p>When new traffic flows into an XKEYSCORE cluster, the system tests the intercepted data against each of these rules and stores whether the traffic matches the pattern. A slideshow presentation from 2010 says that XKEYSCORE contains almost 10,000 appIDs and fingerprints.<\/p>\n<p><a href=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-app-for-that-540x405-xkeystore.png\" ><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-60713\" src=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-app-for-that-540x405-xkeystore.png\" alt=\"xks-app-for-that-540x405 xkeystore\" width=\"540\" height=\"405\" srcset=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-app-for-that-540x405-xkeystore.png 540w, https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-app-for-that-540x405-xkeystore-300x225.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p>AppIDs are used to identify the protocol of traffic being intercepted, while fingerprints detect a specific type of content. Each intercepted stream of traffic gets assigned up to one appID and any number of fingerprints. You can think of appIDs as categories and fingerprints as tags.<\/p>\n<p>If multiple appIDs match a single stream of traffic, the appID with the lowest \u201clevel\u201d is selected\u00a0(appIDs with lower levels are more specific than appIDs with higher levels). For example, when XKEYSCORE is assessing a file attachment from Yahoo mail, all of the appIDs in the following slide will apply, however only \u201cmail\/webmail\/yahoo\/attachment\u201d will be associated with this stream of traffic.<\/p>\n<p><a href=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-appids-540x405-xkeyscore.png\" ><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-60714\" src=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-appids-540x405-xkeyscore.png\" alt=\"xks-appids-540x405 xkeyscore\" width=\"540\" height=\"405\" srcset=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-appids-540x405-xkeyscore.png 540w, https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-appids-540x405-xkeyscore-300x225.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p>To tie it all together, when an Arabic speaker logs into a\u00a0Yahoo email address, XKEYSCORE will store \u201cmail\/yahoo\/login\u201d as the associated appID. This stream of traffic will match the \u201cmail\/arabic\u201d fingerprint (denoting language settings), as well as the \u201cmail\/yahoo\/ymbm\u201d fingerprint (which detects Yahoo browser cookies).<\/p>\n<p><a href=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-appids-fingerprints-540x405-xkeyscore.png\" ><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-60715\" src=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-appids-fingerprints-540x405-xkeyscore.png\" alt=\"xks-appids-fingerprints-540x405 xkeyscore\" width=\"540\" height=\"405\" srcset=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-appids-fingerprints-540x405-xkeyscore.png 540w, https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-appids-fingerprints-540x405-xkeyscore-300x225.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p>Sometimes the GENESIS programming language, which largely relies on Boolean logic, regular expressions and a set of simple functions, isn\u2019t powerful enough to do the complex pattern-matching required to detect certain types of traffic. In these cases, as one slide puts it, \u201cPower users can drop in to C++ to express themselves.\u201d AppIDs or fingerprints that are written in C++ are called microplugins.<\/p>\n<p>Here\u2019s an example of a microplugin fingerprint for \u201cbotnet\/conficker_p2p_udp_data,\u201d which is tricky botnet traffic that can\u2019t be identified without complicated logic. A botnet is a collection of hacked computers, sometimes millions of them, that are controlled from a single point.<\/p>\n<p><a href=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-conficker-540x405-xkeyscore.png\" ><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-60716\" src=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-conficker-540x405-xkeyscore.png\" alt=\"xks-conficker-540x405 xkeyscore\" width=\"540\" height=\"405\" srcset=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-conficker-540x405-xkeyscore.png 540w, https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-conficker-540x405-xkeyscore-300x225.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p>Here\u2019s another microplugin that uses C++ to inspect intercepted Facebook chat messages and pull out details like the associated email address and body of the chat message.<\/p>\n<p><a href=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-facebook-chat-540x405-xkeyscore.png\" ><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-60717\" src=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-facebook-chat-540x405-xkeyscore.png\" alt=\"xks-facebook-chat-540x405 xkeyscore\" width=\"540\" height=\"405\" srcset=\"https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-facebook-chat-540x405-xkeyscore.png 540w, https:\/\/www.transcend.org\/tms\/wp-content\/uploads\/2015\/07\/xks-facebook-chat-540x405-xkeyscore-300x225.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p>One document from 2009 describes in detail four generations of appIDs and fingerprints, which begin\u00a0with only the ability to scan intercepted traffic for keywords, and end with the ability to write complex microplugins that can be deployed to field sites around the world in hours.<\/p>\n<p>If XKEYSCORE development has continued at a similar pace over\u00a0the last six years, it\u2019s likely considerably more powerful today.<\/p>\n<p>\u2014<\/p>\n<p><em>Documents published with this article:<\/em><\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/advanced-http-activity-analysis-2\/\" >Advanced HTTP Activity Analysis<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/analyzing-mobile-cellular-dni-xks\/%20?\" >Analyzing Mobile Cellular DNI in XKS<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/asfd-readme\/\" >ASFD Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/cadence-readme\/\" >CADENCE Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/category-throttling\/\" >Category Throttling<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/cne-analysis-xks\/\" >CNE Analysis in XKS<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/comms-readme\/\" >Comms Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/deepdive-readme\/\" >DEEPDIVE Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/dni101\/\" >DNI101<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/email-address-vs-user-activity\/\" >Email Address vs User Activity<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/free-file-uploaders\/\" >Free File Uploaders<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/finding-querying-document-metadata\/\" >Finding and Querying Document Metadata<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/full-log-vs-http\/\" >Full Log vs HTTP<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/guide-using-contexts-xks-fingerprints\/\" >Guide to Using Contexts in XKS Fingerprints<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/http-activity-xks\/\" >HTTP Activity in XKS<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/http-activity-vs-user-activity\/\" >HTTP Activity vs User Activity<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/intro-context-sensitive-scanning-xks-fingerprints\/\" >Intro to Context Sensitive Scanning With XKS Fingerprints<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/intro-xks-appids-fingerprints\/\" >Intro to XKS AppIDs and Fingerprints<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/osint-fusion-project\/\" >OSINT Fusion Project<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/phone-number-extractor\/\" >Phone Number Extractor<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/rwc-updater-readme\/\" >RWC Updater Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/selection-forwarding-readme\/\" >Selection Forwarding Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/stats-config-readme\/\" >Stats Config Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/tracking-targets-online-social-networks\/\" >Tracking Targets on Online Social Networks<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/trafficthief-readme\/\" >TRAFFICTHIEF Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/unofficial-xks-user-guide\/\" >Unofficial XKS User Guide<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/user-agents\/\" >User Agents<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/using-xks-enable-tao\/\" >Using XKS to Enable TAO<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/utt-config-readme\/\" >UTT Config Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/voip-xks\/\" >VOIP in XKS<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/voip-readme\/\" >VOIP Readme<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/web-forum-exploitation-using-xks\/\" >Web Forum Exploitation Using XKS<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/writing-xks-fingerprints\/\" >Writing XKS Fingerprints<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-application-ids\/\" >XKS Application IDs<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-application-ids-brief\/\" >XKS Application IDs Brief<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-sigdev-tool\/\" >XKS as a SIGDEV Tool<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-cipher-detection\/\" >XKS, Cipher Detection, and You!<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-counter-cne\/\" >XKS for Counter CNE<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-intro\/\" >XKS Intro<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-logos-embedded-docs\/\" >XKS Logos Embedded in Docs<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-search-forms\/\" >XKS Search Forms<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-system-administration\/\" >XKS System Administration<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-targets-visiting-specific-websites\/\" >XKS Targets Visiting Specific Websites<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-tech-extractor-2009\/\" >XKS Tech Extractor 2009<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-tech-extractor-2010\/\" >XKS Tech Extractor 2010<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-workflows-2009\/\" >XKS Workflows 2009<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/xks-workflows-2011\/\" >XKS Workflows 2011<\/a><\/li>\n<li><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/document\/2015\/07\/01\/un-secretary-general-xks\/\" >UN Secretary General XKS<\/a><\/li>\n<\/ul>\n<p>________________________________<\/p>\n<p><em>Email the authors: <a href=\"mailto:micah.lee@theintercept.com\">micah.lee@theintercept.com<\/a>, <a href=\"mailto:glenn.greenwald@theintercept.com\">glenn.greenwald@theintercept.com<\/a>, <a href=\"mailto:morgan@firstlook.org\">morgan@firstlook.org<\/a><\/em><\/p>\n<p><a target=\"_blank\" href=\"https:\/\/firstlook.org\/theintercept\/2015\/07\/02\/look-under-hood-xkeyscore\/\" >Go to Original \u2013 firstlook.org<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Around the world, when a person gets online to do anything \u2014 write an email, post to a social network, browse the web or play a video game \u2014 there\u2019s a decent chance that the Internet traffic her device sends and receives is getting collected and processed by one of XKEYSCORE\u2019s hundreds of servers scattered across the globe.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60],"tags":[],"class_list":["post-60710","post","type-post","status-publish","format-standard","hentry","category-whistleblowing-surveillance"],"_links":{"self":[{"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/posts\/60710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/comments?post=60710"}],"version-history":[{"count":0,"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/posts\/60710\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/media?parent=60710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/categories?post=60710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.transcend.org\/tms\/wp-json\/wp\/v2\/tags?post=60710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}