start	end	text
970	6730	Good afternoon, everybody. My name is Nimit. I'm one of the co-founders at Votes.
7050	14010	And I'm here to talk about some of the security data we've collected during the course of our
14010	20010	mobile voting pilots over the last couple of years. So before we dive into the data,
20010	27990	just a quick overview about Votes. As many of you may know, Votes is the youngest elections company
27990	36910	in the US. We got started almost by accident after winning a hackathon at South by Southwest
36910	43390	in Austin, Texas, way back in 2014. The theme of the hackathon was Hack to the Future.
43410	49050	What's the one thing you would do in the future and how you do it? And so my brother and I,
49050	56710	he was there and we ended up prototyping this new election system, which used smartphones,
56710	64590	biometrics, real-time identity verification, and then also locked the ballots on a blockchain-based
64590	70290	infrastructure. To our surprise, we ended up winning the first prize and that led to a whole
70290	79130	series of events and eventually the company started in 2015. So since then, we've done 67
79130	88310	elections so far and 11 of these have been public government election pilots. We've also done
88310	94490	non-governmental elections, primarily with the state political parties in various states.
94490	102150	And so some of the data we're going to share today covers a wide array of our elections
102150	107970	from a security perspective. And then we'll also dive in into a couple of really interesting
107970	114110	elections we did recently, where for the first time we were able to collect a lot of interesting
114110	124210	data. So I'll begin with a quick introduction about our system. It's a smartphone app-based
124210	132410	mobile voting platform and the key components here are essentially the voters' smartphone devices,
132410	137330	an iPhone or a compatible Android. Then you have the cloud infrastructure
138330	144670	where the backend servers are running and also distributed blockchain infrastructure.
144870	151450	And then you have the election administration-specific interfaces to the election
151450	157610	jurisdiction. And then from there, their traditional infrastructure is ballot printers
157610	166130	and tabulation equipment. And the way the entire process works is essentially, right now,
166130	172950	the system is being piloted only for absentee voters. And within absentee voters, a very small
172950	179930	subset of people, essentially military voters who are deployed, their families and any U.S.
180790	189230	overseas, they're commonly referred to as Yokawa voters. And so if you're in that eligible group
189230	195930	and your jurisdiction is participating in a pilot, then you sign up normally as an absentee voter
195930	202990	and then submit a form to your election clerk, typically your county clerk, and then they do
203130	207770	a little bit of vetting. And then if you're eligible, they will pre-provision you on the
207770	214570	system. And then you get an invitation to download the application on your smartphone, iPhone or
214570	220970	compatible Android device. So you begin with the email number and email ID and a mobile number.
220990	228610	And then once you've done the initial onboarding, you are asked to do an identity check. So you'll
228610	234610	have to take a picture of a government-issued photo ID. Right now, you can use a driver's
234610	241730	license, state ID or passport. You can use some other forms of ID as well if you don't have
241730	247390	those three, but those are the most commonly used ones. And then once you've done the scan
247390	253310	in the application front and back, then you're asked to take a live video selfie.
253870	259890	Then once you've completed that, it does a matching to make sure the picture you took of yourself
259890	268390	matches the picture on the ID. Liveness check is done as well to weed out any fakes or
268390	275730	any other kind of fraudulent activity. And once everything matches, the data on your ID is compared
275730	282530	to the voter registration file which is provided to us by the jurisdiction for the pilot. All that
282530	290790	matches, your identity is digitized, stored in the secure space on the handset, and all the
290790	296150	documents you've provided are deleted at that point because we don't need them. We don't want
296150	301710	to increase the threat surface after that as well. So at this point, you're ready to receive your
301710	309990	ballot. So as you can see from the flow diagram, that's essentially a 10-step process. And once
309990	314890	you've received the ballot, it's essentially your mobile representation of your actual paper ballot
314890	321490	which you would receive if you went to work in person at your precinct, or if you opted into
321490	328230	vote by mail, essentially the same ballot you'd get here. And so you map the ballot on the phone,
328230	333490	and then you may be asked to sign an affidavit. Sign with the finger on the screen, and then
333490	338630	once you're ready to submit, you confirm your choices, do your biometric verification on the
338630	345250	device again, and at that point your ballot gets submitted to the network, anonymized, and you get
345390	354010	a receipt so you can verify your selections, and then also participate in the audit process as well.
354250	360490	And in the background, the jurisdiction gets an anonymized and anonymized copy of your receipt,
360490	366450	and then close to election day, a paper ballot is printed. And then there's a pre-tabulation audit
367170	373230	on election day. Printed paper ballots are tabulated just like other paper ballots,
373950	379870	and there's no hand reproduction required. And then once the election's over, during the canvas
379870	386070	phase, there's a full audit where receipts are prepared. So end-to-end, that's how the process
386070	394510	works. Now that we've looked at kind of how the system functions, let's look at the threat model.
394510	402310	So as you can see, it's a pretty interesting threat model here, obviously, because it's an
402310	409530	internet-connected device. It is different from traditional methods of voting. So let's kind of
409530	417070	run through the flow, and at each step we can look at some of the threats. This is the first
417070	423890	phase, as you saw, you opted in, the county clerk approves you, and then you've started to download
423890	430570	the app. So obviously, if you're not careful, you could download an incorrect app by mistake, or
431150	437550	the app may already be compromised ahead of time by a bad actor, or there may be malware on your
437550	442570	device which, you know, prevents normal functioning of the application. So it's kind of the first
442570	448670	stage. Next, look at, now you're at the voting stage, so the threats here are maybe the biometric
448670	455110	capability on your phone isn't working as it's supposed to. And obviously, at this stage,
455110	460630	if there's malware, your apps can be reverse engineered, and there can be attempts made to
461470	467910	change how you're voting. So that's the threat vector, and we'll see how there are ways to mitigate
467910	474870	that a little bit later. Then obviously, in the transmission phase, the transmission is not secure,
474870	480790	the transmission channel, that data may never reach the destination or may corrupt it on the
480790	486670	way. So we look at ways as to how that can potentially be mitigated as well. And then
486670	494250	the voter gets a receipt. So the receipt, there's a chance somebody else may get hold of your receipt
494250	499790	if you're not careful. Obviously, that's an active area of research on how to create
499790	508570	self-destructing receipts, but it's a potential threat vector. And so finally, once the ballots
508570	513840	reach the jurisdiction, as they are printing the paper ballot for tabulation,
514350	521650	and they do a pre-tabulation audit, so there is a potential threat vector which would likely get
521650	527030	caught by the pre-tabulation audit. Nevertheless, important to keep in mind.
527030	533210	Thank LA Times for making this nice picture available to us. Very nicely done. Makes it
533210	539430	simple to understand. And so now that we've looked at the high-level threat model,
539430	545370	let's look at what kind of threats we've seen in the wild over the last couple of years.
545610	551630	So we like to group them into a few different categories. So there's obviously threats at the
551630	558630	device level. There's threats at the network level. And so those are kind of user-centric
558630	565410	scenarios. And then overall is the cloud infrastructure, our corporate network. So
565410	572870	obviously those are areas of interest as well. So in terms of what we've seen, passive scanning,
572870	579950	obviously, which happens to pretty much everybody these days who has a public-facing web asset.
579950	586950	We've also seen active analysis of our web assets. So people actually trying to
586950	594110	reverse engineer some of that stuff. And phishing of our staff, clients.
595230	601750	Email spoofing attempts as well. Social engineering, obviously we're well aware of
601750	609930	what happened recently. We've had attempts, phone calls, people pretending to be who they're not.
609950	616790	We've seen DNS tampering attempts as well. SIM swap, SIM takeover attempts. And then
616790	624230	reverse engineering of the mobile applications, sometimes partial. And then through the analysis,
624230	630630	mobile API level attacks. So people actually trying to figure out how the API is working
630630	637910	and trying to attack it. We've also seen on the Android side attempts to compromise the TEE,
637910	647150	some of the TEEs are stored. And then malware, we do come across malware on several devices. And
647830	654230	we'll see later on in one of our lectures, an interesting case that came to light.
655110	661130	So before we dive into some of the data, it's going to be useful to look at the MITRE attack
661130	667530	framework. So recently, MITRE updated the mapping for not just the enterprise side,
667530	674750	which covers the cloud aspects in our case, but also the mobile side. So we mapped that data to
674750	682150	what we've seen, as you can see on iOS, some interesting things to note and the device level.
682690	690210	And then similarly, network-based vectors. So we already spoke about the SIM swap. And then
690210	697510	you'll see some of the other ones in the data head, such as rogue Wi-Fi and things like that.
698290	705350	Similarly, on the Android side, similar to iOS, a couple of different things,
705350	712890	but we find the mapping useful, just as we plan out our work. And I'm sure a lot of you are
712890	718850	looking at this as well. Similarly, on the network side for Android,
719790	728570	let's look at a few case studies here. 2018 was when we had first opportunity to do public
728570	737430	elections in the US. And so since then, we've had some interesting opportunities to collect data.
737650	745110	So we'll start with something from 2018. One of the really interesting things we saw early on
745110	753210	back then was the attempts to use multiple devices with the same adversary and using
753910	760710	different mobile numbers and emails and trying to do the same thing. So in that scenario,
760710	768170	the mitigation deployed by the system was to treat this as a malicious activity and block
768170	775790	office access. We did see people use phone numbers in some telco blacklist,
776490	783490	as well as people using well-known tools like WebSuite to probe the platform, probe the API
783490	789990	endpoints. And in one of these cases, we were able to record the traffic through a honeypot.
789990	796310	So some of that is available as part of the open data package and is also available. We'll share
796310	801670	some public links at the end of the presentation, so you can get it from there as well.
802310	809050	The other interesting thing from a case study perspective was people trying to reverse
809050	816910	engineer the application. The system has an initial handshake process and we saw some attempts,
816910	822970	manual attempts to engineer that handshake process. And so in that scenario as well,
822970	829190	one of the mitigations was to block the IP address ranges or block the device IDs,
829190	835630	depending on the nature of the attack. But that's an area where we have some feedback on
836310	845210	better approaches to mitigate those kinds of attempts. Email spoofing, so we did see,
845210	851070	we continue to see a lot of email spoofing attempts and obviously with DMARC that helps
851070	859090	to mitigate that, but nevertheless we do keep track of it. Another interesting case study was
859090	868370	involved, essentially network-based attempts to scan the passively and then use that information
868370	875110	to actively look at infrastructure, particularly the API endpoints. So that's where we see a lot
875110	883650	of interest. And then more recently we've had an opportunity to do somewhat larger elections
883650	889690	in terms of participation. Some of the early pilots had a very small number of voters, so
889690	895750	the opportunity to collect meaningful data was a little limited from a security,
895750	905090	on-device security, network security perspective. But with one of the elections this year,
905090	913250	some very interesting data to analyze, and so I'd love to share that. One focuses around,
913250	919310	we call it the mobile threat detection. We partner with third parties for that capability as well as
919310	926710	some stuff we have. And the way that's structured is, we call it a multi-channel
926710	933170	component architecture. The device is communicating with obviously our back-end,
933170	939090	it's also communicating with the third-party system. Similarly, our back-end is communicating
939090	946470	with the third-party system. A good example was, somebody tries to reverse-engineer the app
947330	953650	and hooks the specific locations where some of that code is getting triggered to try and bypass
953650	960230	it. You could potentially disrupt two of these channels, but it'd be hard to disrupt the third
960230	968710	channel. So that, in this case, acts as a saving grace and also as a extra detection mechanism.
969410	976830	And so some of this capability is actively deployed. Next, probably the most interesting
976830	983550	part of the presentation. So this is data from one of our recent elections, where a few thousand
983550	992290	people participated. And this was kind of the device split, predominantly more iOS than Android.
992290	999990	And then in terms of the threats we detected, on the network side, it was pretty even, 50-50.
1000210	1007370	But on the device side, we saw sort of a lopsided share of threats being detected on Android.
1007370	1010810	That could be a function of the devices that were being used,
1011450	1018910	or maybe the unique factors to this election as well. But something interesting to keep in mind.
1019310	1025050	Sort of diving one level deeper. So on the iOS side, let's kind of look at some of the network
1025650	1031230	security threats. And this data, by the way, is available in the open data set.
1031250	1037350	I believe it's the part one. So you can kind of dive in at your convenience as well.
1037370	1047570	But at the iOS level, we saw 18 devices who were connected. So this was amongst the few thousand
1047570	1055490	and the 64% who were using iOS. There were 18 devices detected which the Wi-Fi was deemed to be
1055490	1062910	unsafe. And so obviously that creates a potential for a man-in-the-middle type of attack. So the
1062910	1069630	experience was they were not able to complete the process on the device or ask to contact
1069630	1076410	the support team. In that case, they were requested to either switch to the cellular network
1076410	1084350	or switch to a different Wi-Fi network. In this case, once they did that, they were able to proceed.
1086170	1094110	Similarly, on Android, similar number, about 17. On Android, we also saw an interesting case
1094110	1103170	for potential ARP poisoning. ARP is address resolution protocols, I'm sure many of you know.
1103170	1108790	In this case, it was a little hard for a support team to detect because we didn't have visibility
1108790	1115630	into what the voter's home network looked like. And so it required a little bit of troubleshooting,
1115630	1122710	but eventually turned out to be a media device which was causing this poisoning. And so the team
1122710	1128970	requested the voter to turn off the media device. And then the threat went away and they were able
1128970	1135970	to proceed. So an area we'd love to do a little more research, but it was interesting that we
1135970	1145110	came across this one case. Next, let's look at some device level threats. On the iOS side, we did
1145110	1150570	detect a few devices where the pin was not set. In that case, mitigation and resolution was to force
1150570	1157410	the users to send in or activate the biometrics on the device. Otherwise, they couldn't really proceed.
1157930	1166390	And we saw a few cases of side-loaded apps. And in each of those cases, when a little bit of
1166390	1171970	due diligence was done, they were deemed to be legitimate apps. And so the voters were able to
1171970	1178670	proceed. It was good to see them being detected in case they could pose a threat.
1178670	1185030	So definitely something we'd like to research more on. On the Android side, a much larger number
1185030	1191890	of devices without pins, which we weren't sure why, but was interesting. 89 devices didn't have
1191890	1198190	pins set, so all those voters were forced to set a pin or activate the biometric capability on the
1198190	1206110	devices. Similarly, on the side-loaded side of things, a lot more side-loaded apps, which kind
1206110	1214250	of made sense given the ecosystem on Android. So it did take quite a bit of time to go through these,
1214250	1220030	make sure everything was okay. Luckily, the election went for three days, so our support team
1220030	1226730	had enough time to troubleshoot. In this investigation, we did find two instances where
1226730	1232990	the device did have malware. And it was a fairly well-known malware. I'm sure many of you probably
1232990	1240390	heard about it. But it was interesting that we were able to detect this, inform the voter,
1240390	1247390	they were able to delete the offending apps, reset the devices, and then proceed. And then
1247390	1252730	once the new checks were confirmed, they were actually able to vote successfully and complete
1252730	1259010	the audit as well. A couple of other interesting Android-specific things, we did detect some
1259010	1266070	instances of USB debugging being enabled. Nothing malicious on that front, but during
1266070	1272830	the active voting, the phone was not connected to a computer. So that was fine. And then we did
1272830	1281170	have another 21 devices where developer options were enabled. So once again, no direct impact,
1281170	1288470	but something we'd like to keep track of. And as I mentioned earlier, this data is available as part
1288470	1298130	of the package we've released. We'd love more feedback and suggestions on how to collect,
1298130	1303750	how to analyze this in a better way, especially areas around malware and
1304710	1310490	other really interesting things we were able to learn from here.
1311330	1317350	And you'll notice that the data is, for the most part, anonymized. And that's true of the
1317350	1325130	collection process as well. The voter is the one who's asked to initiate and not knowing what
1325130	1333430	exactly has happened. So the data does not contain any personally identifying information, to the
1333430	1341170	best of our knowledge. And lastly, love any suggestions and feedback from the community.
1341170	1348530	We're a young company, the youngest company in this space, trying to do something which is
1348530	1354670	unusual, to say the least. And so we'd love suggestions and feedback to improve and what
1354670	1361470	things we could do better. And appreciate the participation of the community. Thank you for
1361470	1370490	the DEF CON voting village team for giving us this opportunity to share this data. And we'll be
1370490	1379450	sharing more of this data as we do more election pilots. And we'd love to continue to get feedback
1379450	1386790	from everybody. More information is available on our website, especially under white papers and
1386790	1393670	under the security section. So please feel free to explore and give us feedback and look at the
1393670	1400630	data as it's posted in the future as well. Once again, thank you and hope you all have a
1400630	1406690	great DEF CON experience this year, especially at the voting village. Thank you. Take care.
