A11y ¡A%acks: ¡Exploi1ng ¡ Accessibility ¡in ¡Opera1ng ¡Systems ¡ ¡
Yeongjin ¡Jang, ¡Chengyu ¡Song, ¡ Simon ¡P. ¡Chung, ¡Tielei ¡Wang, ¡ and ¡Wenke ¡Lee ¡
Georgia ¡Ins;tute ¡of ¡Technology ¡
¡
1 ¡
A11y A%acks: Exploi1ng Accessibility in Opera1ng Systems - - PowerPoint PPT Presentation
A11y A%acks: Exploi1ng Accessibility in Opera1ng Systems Yeongjin Jang , Chengyu Song, Simon P. Chung, Tielei Wang, and Wenke Lee Georgia Ins;tute of
1 ¡
2 ¡
3 ¡
4 ¡
5 ¡
6 ¡
7 ¡
8 ¡
App ¡ App ¡ Ouptut ¡ Input ¡ Handler ¡ Regular ¡ Input ¡Devices ¡ Screen ¡Output ¡ OS ¡
9 ¡
Launch ¡ Google.com! ¡
into ¡machine ¡command ¡
(a11y ¡library) ¡
1) ¡Click ¡address ¡bar ¡ 2) ¡Type ¡google.com ¡
10 ¡
Process ¡ Output ¡ Assis1ve ¡Technology ¡ OS ¡ App ¡ Process ¡ Input ¡ App ¡ Ouptut ¡ Input ¡ Handler ¡ A11y ¡ Library ¡
Regular ¡ Input ¡Devices ¡ Screen ¡Output ¡
Original ¡I/O ¡path ¡
A11y ¡Input ¡ (Voice) ¡
11 ¡
Process ¡ Output ¡ Assis1ve ¡Technology ¡ OS ¡ App ¡ Process ¡ Input ¡ App ¡ Ouptut ¡ Input ¡ Handler ¡ A11y ¡ Library ¡
Regular ¡ Input ¡Devices ¡ Screen ¡Output ¡
Original ¡I/O ¡path ¡
A11y ¡Output ¡ (Speaker) ¡
12 ¡
13 ¡
Launch ¡ Google.com! ¡
¡ ¡If ¡not, ¡machine ¡can ¡access ¡it! ¡
¡ ¡If ¡not, ¡any ¡other ¡human ¡user ¡can ¡access ¡it! ¡
14 ¡
¡ ¡If ¡not, ¡any ¡program ¡(possibly ¡malware) ¡can ¡access ¡it! ¡
15 ¡
¡ ¡Do ¡not ¡allow ¡to ¡perform ¡security ¡sensi;ve ¡UI ¡ac;ons! ¡
16 ¡
– Voice ¡Commander ¡
– Programma;cally ¡controllable ¡I/O ¡
– We ¡do ¡not ¡perform ¡the ¡evalua;on… ¡
17 ¡
18 ¡
Plajorm ¡ AT-‑level ¡check ¡ (voice ¡commander) ¡ OS-‑level ¡ Security ¡Check ¡ Vulnerable? ¡ Windows ¡ None ¡ (Speech ¡Recogni;on) ¡ UIPI ¡ YES ¡ Ubuntu ¡ N/A ¡ None ¡ YES ¡ iOS ¡6 ¡ None ¡ (Siri) ¡ None ¡ YES ¡ Android ¡ Voice ¡Authen;ca;on ¡ (Moto ¡X) ¡ User ¡Sehngs ¡ Required ¡ YES ¡
19 ¡
Plajorm ¡ Reading ¡of ¡ UI ¡Structure ¡ A11y ¡leaks ¡on ¡ screenshot ¡ Password ¡ protec;on ¡ Vulnerable? ¡ Windows ¡ UIPI ¡ Yes ¡ Yes ¡ YES ¡ Ubuntu ¡ None ¡ No ¡ Yes, ¡but ¡ incomplete ¡ YES ¡ iOS ¡6 ¡ N/A ¡ Yes ¡ N/A ¡ YES ¡ Android ¡ User ¡Sehngs ¡ Required ¡ No ¡ User ¡Sehngs ¡ Required ¡ YES ¡
20 ¡
– Vulnerable ¡to ¡replay ¡aZack ¡ ¡
21 ¡
22 ¡
23 ¡
24 ¡
– ¡Screenshot! ¡ » iOS6: ¡Private ¡API ¡allows ¡screenshot ¡ » Windows: ¡no ¡restric;on ¡at ¡all ¡
25 ¡
26 ¡
A) ¡Before ¡clicking ¡Eye ¡ B) ¡Aler ¡clicking ¡Eye ¡
27 ¡
– Security ¡check ¡protects ¡the ¡content ¡
– Throws ¡Not ¡Implemented ¡excep;on ¡
– Copy ¡password ¡into ¡clipboard ¡ » Missing ¡security ¡checks… ¡
28 ¡
29 ¡
30 ¡
31 ¡
Real ¡Touch ¡Click ¡ A11y ¡Click ¡ Intermediate ¡func ¡
performA11yAc;onInternal() ¡ Final ¡handler ¡in ¡UI ¡ performClick() ¡ performClick() ¡
32 ¡
GTK::CopyText() ¡{ ¡ ¡if(text-‑>isVisible) ¡ ¡ ¡return ¡text ¡ ¡else ¡ ¡ ¡return ¡null; ¡ } ¡ ¡ ¡ ATK::CopyText() ¡{ ¡ ¡… ¡ ¡return ¡text ¡ ¡… ¡ } ¡ ¡ ¡
– Liveness ¡check ¡ – Challenge-‑response ¡
– Processing ¡power ¡ – Power ¡consump;on ¡ – etc ¡
33 ¡
– Not ¡enough… ¡
34 ¡
35 ¡
36 ¡
37 ¡
38 ¡
39 ¡