Hardware Trojans

Sunday, April 17, 2022

Εισαγωγή

Θέμα αυτού του άρθρου είναι τα Hardware Trojans και πως αυτά μπορούν να επηρεάσουν την λειτουργία ενός Ολοκληρωμένου Κυκλώματος (IC).

Τα τελευταία ~10 χρόνια έχει υπάρξει εκτενής έρευνα επί του θέματος, καθώς δεν αποτελεί πια μια θεωρητική απειλή.

Στα πλαίσια της παγκοσμιοποίησης και της αύξησης της πολυπλοκότητας των chips, o σχεδιασμός αλλά και η κατασκευή τους, σπανίως γίνονται στον ίδιο οργανισμό (για παράδειγμα, η AMD χρησιμοποιεί chips τα οποία κατασκευάζονται από την TSMC, ενώ η Intel έχει δικά της εργοστάσια παραγωγής). Δηλαδή, γίνεται outsourcing της κατασκευής ενός chip, σε μια εταιρεία διαφορετική από αυτήν που το σχεδίασε.

Στην εικόνα 1, βλέπουμε το SoC Life Cycle και μπορούμε να παρατηρήσουμε πως εμπλέκονται οντότητες όπως ο IP Vendor, το Design House, το Foundry στο οποίο θα κατασκευαστεί το chip. Οι οντότητες αυτές δεν ανήκουν πάντα στον ίδιο οργανισμό, με αποτέλεσμα να υπάρχει κίνδυνος να τροποποιηθεί το προς σχεδίαση κύκλωμα, σε κάποιο από τα στάδια.

Συγκεκριμένα, οι σχεδιαστές χρησιμοποιούν Design Tools, αλλά και Third-Party IP (3PIP, επαναχρησιμοποιήσιμες μονάδες λογικής, σαν συναρτήσεις βιβλιοθηκών σε γλώσσες προγραμματισμού). Τα Design tools αλλα και τα 3PIPs, μπορεί να είναι αμφότερα Untrusted, δηλαδή πέρα από τις λειτουργίες που ανήκουν στις προδιαγραφές τους, να εκτελούν και άλλες, χωρίς την συναίνεσή μας. Για παράδειγμα, σε ένα 3PIP ο IP designer μπορεί να έχει εισάγει κάποια επιπλέον κυκλωματική λογική (additional circuitry/logic), η οποία μπορεί να δρα κακόβουλα.

To συχνότερο κομμάτι του Supply Chain που θεωρείται ως untrusted, είναι το Foundry, δηλ. το εργοστάσιο στο οποίο παράγεται το chip. Όμως, δεν είναι το μοναδικό untrusted σημείο. Στην σημερινή ραγδαίως εξελισσόμενη αγορά, καθώς υπάρχει πληθώρα από 3PIP cores, πολλές φορές μπορεί και τα IP Cores να είναι untrusted, καθώς ο δημιουργός τους, μπορεί να μην έχει διαθέσει τον απαραίτητο χρόνο (λόγω πίεσης από την αγορά) για να ελέγξει πως, το component υποστηρίζει μόνο τις απαραίτητες λειτουργίες και καμία άλλη.

Ακόμη και τα CAD/Design Tools, μπορούν να θεωρηθούν untrusted, αν κάτι τέτοιο είναι αρκετά σπάνιο.

Τέλος, ακόμη και το ίδιο το Design House μπορεί να είναι untrusted, καθώς κάποιος κακόβουλος υπάλληλος (rogue employee) μπορεί να τροποποιήσει το design.

Συνεπώς, μιας και απαιτούνται πολλά βήματα από διάφορους οργανισμούς που μπορεί να είναι σε μεγάλες γεωγραφικές αποστάσεις μεταξύ τους, ο πλήρης έλεγχος των διαδικασιών είναι αδύνατος.

Φυσικά, δεν είναι απαραίτητο να ισχύει μόνο ένα από τα παραπάνω, καθώς μπορεί να ισχύει κάποιος συνδυασμός αυτών. Για παράδειγμα, μια αρκετά συντηρητική προσέγγιση είναι να θεωρηθούν το 3PIP και το Foundry ως untrusted.

System On Chip (SoC) Life Cycle IC Supply Chain
Soc life cycle IC supply chain
Εικόνα 1 Εικόνα 2 (Πηγή: shorturl.at/auvwB)

Αρκετά με τα προκαταρκτικά. Τί είναι όμως ένα Hardware Trojan ?

Hardware Trojans

Ως Hardware Trojan ορίζουμε οποιαδήποτε κακόβουλη τροποποίηση ενός ολοκληρωμένου κυκλώματος.

Ένα Hardware Trojan (HT) αποτελείται από :

  • Έναν μηχανισμό ενεργοποίησης (Triggering Mechanism), ο οποίος καθορίζει πότε και υπό ποιές συνθήκες ενεργοποιείται ένα Trojan
  • Το Payload το οποίο καθορίζει ποιά θα είναι η λειτουργία/ενέργεια του Trojan, μόλις αυτό ενεργοποιηθεί

Σκοπός του adversary που εισάγει ένα Hardware Trojan είναι να κάνει εξαιρετικά δύσκολη την ανίχνευσή του, είτε σε φυσικό επίπεδο είτε σε λειτουργικό επίπεδο. Ένας τρόπος να επιτευχθεί αυτό, είναι να επιλέξει σπάνια γεγονότα ενεργοποίησης του Trojan, ώστε αυτό να έχει μικρή πιθανότητα ενεργοποίησης, ώστε να περνά απαρατήρητο.

Ταξινόμηση των Hardware Trojans

Στην εικόνα 3, βλέπουμε μια ταξινόμηση των Trojans, ανάλογα με τα χαρακτηριστικά τους.

Trojan Taxonomy

Εικόνα 3 : Hardware Trojan Taxonomy
  • Ξεκινώντας από τα αριστερά, βλέπουμε την φάση στην οποία μπορεί να εισαχθεί ένα HT. Μπορεί να εισαχθεί είτε κατά την φάση της Ανάλυσης Απαιτήσεων (πχ τροποποίηση μιας λειτουργίας του κυκλώματος), είτε κατά την φάση του σχεδιασμού (πχ εισαγωγή έξτρα πυλών), είτε κατά την φάση της κατασκευής, είτε κατά την φάση του testing, είτε κατά την φάση της συναρμολόγησης όλων των απαραίτητων components για την δημιουργία του τελικού συστήματος.

  • Στην συνέχεια, βλέπουμε το Επίπεδο Αφαίρεσης το οποίο επηρεάζεται από το HT. Μπορεί να είναι είτε το Φυσικό Επίπεδο (πχ εκλέπτυνση ενός αγωγού), το Επίπεδο των Τρανζίστορ (πχ αλλαγή της γεωμετρίας του, της νόθευσής του), το Επίπεδο Πύλης (πχ προσθήκη/αφαίρεση πύλης), το Register Transfer Logic επίπεδο (πχ προσθήκη ενός Flip-Flop) ή το Επίπεδο Συστήματος (πχ προσθήκη μιας κρυφής κεραίας).

  • Τα Trojans τα οποία είναι μονίμως ενεργά και δεν απαιτούν Triggering, λέγονται Always On, ενώ τα Trojans τα οποία απαιτούν ενεργοποίηση, μπορούν να ενεργοποιούνται είτε από το εσωτερικό (internally triggered) είτε από το εξωτερικό (externally triggered) περιβάλλον του τσιπ (βλ. παρακάτω για περισσότερα)

  • Το Payload ενός Trojan, δηλ. ο σκοπός του / η λειτουργία που επιτελεί, μπορεί είναι είτε η αλλαγή της λειτουργικότητας ενός τσιπ (δηλ. να διαταράξει κάποιες λειτουργίες του), να υποβαθμίσει την απόδοσή του (πχ τοποθέτηση flip-flops είτε στο critical path είτε στο clock path, με αποτέλεσμα την μείωση της ταχύτητας απόκρισης που αντιλαμβάνεται ο χρήστης). Επίσης, σκοπός του Trojan μπορεί να είναι η διαρροή πληροφοριών προς κάποιον επιτιθέμενο (συνήθως μέσω Side-Channel) είτε ένα Denial of Service (σε ακραίες περιπτώσεις η ενεργοποίηση ενός Trojan μπορεί να οδηγήσει μέχρι και σε καταστροφή του μολυσμένου κυκλώματος).

  • Τέλος, το Trojan μπορεί να έχει μολύνει είτε κάποια επεξεργαστική μονάδα, είτε κάποιον Crypto accelerator, είτε μνήμες κλπ

Μια διαφορετική ταξινόμηση των Trojans φαίνεται στην εικόνα 4, όπου δίνεται έμφαση στα Φυσικά χαρακτηριστικά τους, στον Τρόπο Ενεργοποίησης, και στην ενέργεια που επιτελούν.

Trojan Taxonomy 2

Εικόνα 4 : Hardware Trojan Taxonomy με βάση τα χαρακτηριστικά τους

Τα Φυσικά χαρακτηριστικά των Trojans είναι :

  1. Tύπος

  2. Functional Trojans : Ο επιτιθέμενος (adversary) προσθέτει ή αφαιρεί components από το κύκλωμα, με σκοπό την τροποποίηση της λειτουργίας του κυκλώματος

  3. Parametric Trojans : Τροποποίηση των ήδη υπαρχόντων components, πχ. εκλέπτυνση αγωγών, transistor weakening. Σκοπός του είναι η μείωση του Reliability του κυκλώματος ή αύξηση της πιθανότητας να συμβεί ένα functional ή performance failure.

  4. Μέγεθος : Ο αριθμός των components που προστίθενται στο κύκλωμα. Συνήθως, μιας και ο επιτιθέμενος επιθυμεί το Trojan να μην ανιχνευθεί, αυτό θα αποτελείται από έναν μικρό αριθμό πυλών/components. Για παράδειγμα, ένα Trojan που αποτελείται μόλις από μερικές πύλες, είναι σχεδόν αδύνατον να εντοπιστεί σε ένα κύκλωμα των (δισ)εκατομμυρίων πυλών. Το μέγεθος ενός Trojan εξαρτάται και από τον χώρο που μπορεί να καταλάβει σε επίπεδο Layout, δηλ. από τα dead spaces (αχρησιμοποίητοι/κενοί χώροι επί του πυριτίου)

  5. Κατανομή

  6. Tight Distribution : Tα Trojan components είναι τοπολογικά κοντά στο layout του IC

  7. Loose Distribution : Τα Trojan components είναι διασκορπισμένα στην επιφάνεια του chip. Ένας adversary μπορεί να επιλέξει Loose distribution, προκειμένου να κάνει δυσκολότερη την ανίχνευση του Trojan

  8. Δομή : Ο επιτιθέμενος μπορεί να χρειαστεί να αναδιατάξει κάποια από τα “αγαθά” components, προκειμένου να μπορέσει να εισάγει το Trojan. Σε περίπτωση που αλλάξει το αρχικό Layout του chip, τότε αλλάζουν και χαρακτηριστικά όπως η καθυστέρηση και η κατανάλωση ισχύος.

Ως προς την Ενεργοποίηση των Trojans έχουμε την εξής ταξινόμηση :

Trojan Taxonomy 3

Εικόνα 5 : Hardware Trojan Taxonomy με βάση τoυς τρόπους ενεργοποίησης τους
  1. Externally Activated : Trojans τα οποία ενεργοποιούνται από κάποιο εξωτερικό, ως προς το chip, ερέθισμα, όπως σήμα που λαμβάνουν σε μια κεραία

  2. Internally Activated : Trojans που ενεργοποιούνται από κάποιο εσωτερικό ερέθισμα. Διακρίνονται σε :

  3. Always On : Trojans τα οποία είναι συνεχώς ενεργά και δεν απενεργοποιούνται ποτέ (πχ κάποιο parametric Trojan που έχει επηρεάσει κάποιον αγωγό)

  4. Condition-based : Trojans που ενεργοποιούνται λόγω κάποιου γεγονότος, το οποίο μπορεί να είναι sensor-based, δηλ. λόγω κάποιας τιμής που διαβάστηκε από κάποιον αισθητήρα, είτε να βασίζεται σε κάποια λογική κατάσταση, πχ το κύκλωμα να βρίσκεται σε μια συγκεκριμένη κατάσταση, είτε λόγω κάποιου clock event (πχ ενεργοποίηση ανά 2 rising edges του clock), είτε λόγω κάποιας συγκεκριμένης εισόδου στο κύκλωμα (πχ ενεργοποίηση κάθε φορά που η είσοδος είναι 0xFF)

Ένα τυπικό Trojan είναι Condition-based, δηλ. ενεργοποιείται ανάλογα με την κατάσταση στην οποία βρίσκεται το σύστημα, είτε μέσω αισθητήρων, εσωτερικών λογικών καταστάσεων, συγκεκριμένων input patterns είτε τιμές εσωτερικών counters. Για παράδειγμα, ένα Trojan μπορεί να ενεργοποιηθεί μετά από την πάροδο ενός συγκεκριμένου και ορισμένου από τον κατασκευαστή του, χρονικού διαστήματος, από την έναρξη της λειτουργίας του κυκλώματος. Τέτοια Trojans αποκαλούνται Time Bombs, καθώς μοιάζουν με μια βόμβα που μετρά αντίστροφα μέχρι να εκραγεί.

Ως προς την Δράση των Trojans έχουμε :

Trojan Taxonomy 4

Εικόνα 6 : Hardware Trojan Taxonomy ως προς την δράση τους
  1. Modify Function : Το Trojan μπορεί να τροποποιεί μια λειτουργία του κυκλώματος είτε μπορεί να την παραλείπει εντελώς.

  2. Modify Specification : Το Trojan μπορεί να τροποποιεί κάποια από τις προδιαγραφές του κυκλώματος. Για παράδειγμα, μπορεί να μειώνει την συχνότητα λειτουργίας του chip ή να αντιστρέφει κάποιο σήμα (πχ ένα σήμα εξόδου).

  3. Transmit Information : Το Trojan μπορεί να μεταδίδει πληροφορίες προς κάποιον εξωτερικό παρατηρητή. Συχνά αυτό γίνεται μέσω Side Channels (αλλά όχι μόνο) και κυρίαρχος στόχος είναι οι κρυπτογραφικές εφαρμογές, στις οποίες μπορεί να διαρρεύσει το κλειδί κρυπτογράφησης.

  4. Denial-of-Service : Όπως προαναφέρθηκε, ένα Trojan μπορεί να έχει ως σκοπό να εκτελέσει ένα DoS attack (πχ να θέσει το κύκλωμα εκτός λειτουργίας)

Φυσικά, ένα Trojan μπορεί να εκτελεί συνδυασμό των παραπάνω ενεργειών.

Μια ακόμα ταξινόμηση των Trojans μπορεί να γίνει με βάση το είδος του κυκλώματος. Έτσι, τα Trojans μπορούν να χωριστούν σε Συνδυαστικά και Ακολουθιακά.

Συνδυαστικά & Ακολουθιακά Trojans

 

Συνδυαστικά (Combinatorial), είναι τα Trojans που βασίζονται σε συνδυαστικά κυκλώματα. Τα Trojans αυτά, παρακολουθούν την τιμή τουλάχιστον ενός εσωτερικού σήματος, και ενεργοποιούνται όταν συμβεί κάποια συγκεκριμένη συνθήκη. Στην παρακάτω εικόνα βλέπουμε ένα παράδειγμα Συνδυαστικού Trojan.

comb trojan

Εικόνα 7 : Συνδυαστικό Hardware Trojan

To παραπάνω Trojan αποτελείται από μόλις δύο πύλες, μια πύλη NOR και μια πύλη XOR. Eίναι internally activated & condition-based, καθώς έχει ως Trigger μηχανισμό, το γεγονός αμφότερα τα σήματα Α και Β να λάβουν την τιμή 0. Τότε, η έξοδος της πύλης NOR είναι 1.

Ως Payload έχει την πύλη XOR, η οποία στην περίπτωση όπου Α = Β = 0, δέχεται ως είσοδο το λογικό 1 από τον triggering μηχανισμό, αντιστρέφοντας έτσι την τιμή του σήματος C. Έτσι, με την εισαγωγή του Trojan αυτού, η έξοδος C της πύλης AND, δεν είναι αυτή που θα διαδοθεί είτε προς τις επόμενες βαθμίδες του κυκλώματος είτε προς μια κυρίαρχη έξοδο, αλλά θα διαδοθεί η αντεστραμμένη της τιμή, λόγω της ενεργοποίησης του Trojan.

Η έξοδος C θα μπορούσε να είναι κάποιο σημαντικό σήμα, όπως ένα Reset. Στην περίπτωση αυτή, λόγω ενεργοποίησης του Trojan, το σύστημα δεν θα μπορούσε να κάνει Reset.

Το πλεονέκτημα ενός τέτοιου Trojan, είναι η εξαιρετική απλότητά του και το μηδαμινό μέγεθός του.

Ακολουθιακά (Sequential), είναι τα Trojans που βασίζονται σε ακολουθιακά κυκλώματα. Τα Trojans αυτά, είναι και αυτά internally activated & condition-based (όπως και τα Συνδυαστικά), όμως δεν παρακολουθούν απλώς τις τιμές εσωτερικών σημάτων, αλλά ψάχνουν και για συγκεκριμένες ακολουθίες.

Στην παρακάτω εικόνα, βλέπουμε παραδείγματα Ακολουθιακών Trojans.

Στην εικόνα 7a, βλέπουμε ένα Trojan που αποτελείται από έναν k-bit σύγχρονο counter. Στην περίπτωση αυτή, το clock του counter δεν είναι event-dependent, οπότε το Trojan λειτουργεί ως Time Bomb. Το Trojan θα ενεργοποιηθεί ανεξάρτητα από την τρέχουσα κατάσταση του κυκλώματος και έχει έναν ντετερμινιστικό χρόνο μέχρι την ενεργοποίησή του (time-to-trigger) ίσο με 2k - 1, όπου k ο αριθμός των bits του counter. Το μειονέκτημα αυτού του τύπου του Trojan, είναι το μεγάλο overhead επιφάνειας/κατανάλωσης ισχύος προκειμένου να επιτευχθεί ένας συγκεκριμένος time-to-trigger. Όμως, σε περίπτωση που το Enable σήμα του counter, προκύπτει από εσωτερικά Rare Events, τότε ο επιτιθέμενος μπορεί να πετύχει μικρότερη πιθανότητα ενεργοποίησης του Trojan και άρα να αυξήσει τον time-to-trigger, για το ίδιο area/power overhead. To Payload του Trojan, αντιστρέφει το σήμα ER, όταν ο counter φτάσει την μέγιστη τιμή του (2k - 1), μετά από 2k - 1 κύκλους.

Στην εικόνα 7b, βλέπουμε ένα παρόμοιο Trojan, το οποίο βασίζεται σε k-bit ασύγχρονο counter.

Το Trojan αυτό διαφοροποιείται ως προς το προηγούμενο, ως προς τον τρόπο ενεργοποίησης του counter. Στην περίπτωση αυτή, ως ρολόι του counter δεν έχουμε το system-wide clock, αλλά το clock signal, δημιουργείται από ένα επιλεγμένο από τον attacker, Rare Event. Στην προκειμένη περίπτωση, το Rare Event που έχει επιλεχθεί είναι, αμφότερα τα σήματα p και q να λάβουν την τιμή 1.

Έτσι, ο counter μπορεί να χρησιμοποιηθεί για να μετράει τις εμφανίσεις αυτού του Rare Event, καθώς ως clock signal, έχουμε ένα σήμα που σπάνια αλλάζει από 0 σε 1. Με κατάλληλη επιλογή του Rare Event που ενεργοποιεί τον counter, ο επιτιθέμενος μπορεί να επιτύχει μια πάρα πολύ μικρή πιθανότητα ενεργοποίησης του Trojan, και άρα έναν πάρα πολύ μεγάλο time-to-trigger, επιτρέποντας έτσι στο Trojan να κρύβεται αποδοτικά.

Το Payload είναι το ίδιο με πριν και χρησιμοποιείται για να αντιστρέψει το σήμα ER.

Στην εικόνα 7c, βλέπουμε ένα Trojan με ακόμα μικρότερη πιθανότητα ενεργοποίησης. Βασίζεται στην χρήση Υβριδικής λογικής μέτρησης, καθώς αποτελείται από σύγχρονο και ασύγχρονο counter. To σήμα ρολογιού του ασύγχρονου counter, εξαρτάται από την έξοδο του σύγχρονου counter αλλά και από κάποιο Rare Event που προκύπτει από τα σήματα p και q .

Όταν ο σύγχρονος counter φτάσει την μέγιστη τιμή του (2k - 1), αν τα σήματα p και q είναι ίσα με 1, τότε ο ασύγχρονος counter θα λάβει σήμα ρολογιού και θα μετρήσει αυτό το Rare Event.

Στην περίπτωση αυτή, θα μπορούσαμε να πούμε πως το Trojan μετράει ένα Ύπερ-Rare Event, το οποίο εξαρτάται από την επίτευξη της μέγιστης τιμής του σύγχρονου counter, ενώ p = q = 1. Έτσι, η πιθανότητα ενεργοποίησης του Trojan αυτού, είναι ακόμα μικρότερη.

Τέλος, στην εικόνα 7d, βλέπουμε ένα FSM-based Trojan, το οποίο είναι και Υβριδικό καθώς αποτελείται και από συνδυαστική λογική αλλά και από ακολουθιακή λογική.

Ένα FSM-based Trojan, μπορεί να σχεδιαστεί ώστε να είναι αυθαίρετα πολύπλοκο, κάνοντας έτσι την πιθανότητα ενεργοποίησής του, αυθαίρετα μικρή.

Ένα τέτοιο Trojan, σε αντίθεση με τα counter-based Trojans που είναι μονόδρομα, μπορεί να έχει μεταβάσεις προς την αρχική κατάστασή του, επιτρέποντας έτσι την ενεργοποίησή του μόνο στην περίπτωση που ικανοποιούνται όλες οι μεταβάσεις μεταξύ της αρχικής και τελικής κατάστασης του χώρου καταστάσεων, σε διαδοχικούς κύκλους.

sequential trojan example

Εικόνα 8 : Παράδειγμα Ακολουθιακού Trojan (Πηγή: https://ieeexplore.ieee.org/document/6081413)

 

Συνεπώς, μπορούμε να καταλήξουμε στο συμπέρασμα, πως (συνήθως) τα Ακολουθιακά Trojans είναι αρκετά πιο σύνθετα από τα Συνδυαστικά. Επίσης, τα πρώτα μπορούν να πετύχουν μικρότερη πιθανότητα ενεργοποίησης και άρα μικρότερο time-to-trigger. Αξίζει να σημειωθεί πως όλα τα παραπάνω Trojans είναι Internally Activated & Condition-based.

Αρκετά όμως με τις κατηγορίες των Trojans. Mπορούμε να τα ανιχνεύσουμε και αν ναι, πώς? Ερώτηση που έχει απασχολήσει και απασχολεί ακόμη, χιλιάδες ερευνητές.

Επίσης, υπάρχουν σε κυκλώματα που κυκλοφορούν τριγύρω μας? Έχει συμβεί ποτέ κάποιο σημαντικό γεγονός λόγω των Hardware Trojans?

Hardware Trojans in the wild

Γύρω στο 2015, ανιχνεύθηκε ένα Hardware Trojan IC σε Server Motherboards που κατασκευάζονταν για τον κολοσσό του χώρου του server hardware, την Supermicro. To chip είχε τοποθετηθεί από μια ειδική ομάδα του Κινεζικού στρατού και είχε μέγεθος μικρότερο από την μύτη ενός μολυβιού.

supermicro trojan

Εικόνα 9 : Το Trojan IC στα Supermicro motherboards (Πηγή: shorturl.at/dtvGW)

 

supermicro trojan

Εικόνα 10 : Το Trojan IC των Supermicro motherboards (Πηγή: shorturl.at/dtvGW)

 

Το chip αυτό είχε την ικανότητα να συνδέεται στο internet, μνήμη και μια μικρή υπολογιστική ισχύ, αρκετή ώστε να εξαπολύσει μια επίθεση. Σκοπός του ήταν η διαρροή κυβερνητικών και εταιρικών μυστικών.

Πρακτικά, το chip άνοιγε ενα backdoor στα δίκτυα των οργανισμών. Στις ικανότητές του συμπεριλαμβανόντουσαν, η παρακολούθηση των δεδομένων που κυκλοφορούσαν στο σύστημα και η τροποποίηση του instruction queue, από το οποίο αντλούσε εντολές ο CPU, με τον επιθυμητό κακόβουλο κώδικα.

Το chip, μπορούσε να επικοινωνεί με άλλες μολυσμένες συσκευές προκειμένου να λαμβάνει τις κακόβουλες εντολές που θα εκτελούσε.

Αν και ποτέ δεν το παραδέχθηκαν δημοσίως, επηρεάστηκαν (μεταξύ άλλων) κολοσσοί όπως η Apple, η Amazon (που εκείνη την εποχή ενδιαφερόταν να αγοράσει την Elemental, που χρησιμοποιούσε Supermicro boards) αλλά και Υπηρεσίες Πληροφορίες της Αμερικής.

Αν και το chip τελικά ανακαλύφθηκε, οι απειλές που έθετε ήταν ζωτικής σημασίας για τους οργανισμούς που χρησιμοποιούσαν τα μολυσμένα Supermicro server motherboards.

Υπάρχουν και πολλά άλλα παραδείγματα, όπως αυτά που αναφέρονται εδώ ως πηγές.

Για παράδειγμα, ένας ελκυστικός στόχος για την εισαγωγή Hardware Trojans είναι Κυβερνοφυσικά συστήματα τα οποία ελέγχουν κρίσιμες υποδομές ή οπλικά συστήματα, στα οποία μπορεί να υπάρχει κάποιο Trojan το οποίο να μπορεί να οδηγήσει σε απομακρυσμένη απενεργοποίηση του συστήματος.

Ανίχνευση των Hardware Trojans

Γιατί είναι τόσο δύσκολη ?

Λόγω των Process Variations , δηλ. αποκλίσεων που μπορούν να υπάρχουν μεταξύ των chips που κατασκευάζονται στην ίδια γραμμή παραγωγής.

H κατασκευή ενός chip είναι μια εξαιρετικά σύνθετη διαδικασία που αποτελείται από πολλά βήματα. Σε κάθε βήμα μπορούν να εμφανιστούν κατασκευαστικές ατέλειες ή πχ θέματα ευθυγράμμισης (πχ του lazer που χρησιμοποιείται για να κοπούν επιφάνειες ή των μασκών, αν και αυτό αντιμετωπίζεται σε σημαντικό βαθμό από το self-alignment).

Συγκεκριμένα, επηρεάζονται χαρακτηριστικά των τρανζίστορ όπως τα μήκη και τα πλάτη των καναλιών αλλά και των ίδιων των τρανζίστορ, το πάχος του οξειδίου της πύλης (συνήθως οξείδιο του πυριτίου, SiO2, ή κάποια παραλλαγή αυτού).

Το πρόβλημα αυτό εμφανίζεται σε Process Nodes κάτω από τα 65 nm, και γίνεται γίνεται ολοένα και πιο έντονο και επικίνδυνο, καθώς μικραίνει το Feature Size και πλησιάζει θεμελιώδεις διαστάσεις όπως το μέγεθος ενός ατόμου και το μήκος κύματος του φωτός που χρησιμοποιείται στην λιθογραφία των μασκών πυριτίου.

Τα παραπάνω όμως αφορούν κυρίως κατασκευαστικές ατέλειες, που επηρεάζουν την λειτουργικότητα ενός chip, καθιστώντας το είτε προβληματικό και δυσλειτουργικό είτε αχρηστεύοντάς το εξ’ολοκλήρου.

Τί σχέση έχουν όμως τα Process Variations με τα Hardware Trojans?

Έχουν μεγάλη σχέση, καθώς ένας attacker που εισάγει ένα Trojan μπορεί να βασιστεί στο γεγονός πως μια μικρή απόκλιση ενός κατασκευασμένου chip από το αρχικό design, μπορεί να παραβλεφθεί στα πλαίσια των αναμενόμενων Process Variations και να μην ερμηνευθεί ως πιθανό Trojan, επιτρέποντας έτσι στο κακόβουλο κύκλωμα να κρυφτεί στην σκιά των κατασκευαστικών ατελειών των ημιαγωγών.

Συνεπώς, οι τεχνικές ελέγχου που εφαρμόζονται για την ανίχνευση των process variations, δεν μπορούν να χρησιμοποιηθούν για την ανίχνευση των Trojans. Δηλαδή, αν ένας adversary εισαγάγει μια κεραία ή ένα Time Bomb, σε ένα chip, η ανίχνευσή τους δεν είναι δυνατόν να πραγματοποιηθεί με ελέγχους που σχετίζονται με την επιθυμητή λειτουργικότητα του chip.

Ποιές είναι όμως οι διαθέσιμες τεχνικές ανίχνευσης?

Τεχνικές Ανίχνευσης

Γίνεται συνεχώς έρευνα επί του θέματος, όμως οι αρχές στις οποίες βασίζονται όλες οι προτεινόμενες τεχνικές της βιβλιογραφίας, είναι οι ίδιες.

Ορολογία

  • Παρακάτω χρησιμοποιείται η λέξη CUTT, ως συντομογραφία του Circuit under Trojan test, δηλ. το κύκλωμα το οποίο ελέγχουμε για την ύπαρξη Trojans.

  • Golden IC, είναι το “καθαρό” και non-Trojan infected chip. Πρακτικά, είναι σχεδόν αδύνατον να υπάρξει, από την στιγμή που το Supply Chain είναι γεωγραφικά διασκορπισμένο, με αποτέλεσμα να μην μπορούμε να γνωρίζουμε αν ένα chip είναι όντως Golden, καθώς κάτι τέτοιο θα απαιτούσε ενδελεχή έλεγχο.

trojan detection techniques taxonomy

Εικόνα 11 : Κατηγοριοποίηση των τεχνικών ανίχνευσης

 

Στην παραπάνω εικόνα μπορούμε να δούμε πως οι τεχνικές ανίχνευσης των Hardware Trojans, μπορούν να χωριστούν σε δύο μεγάλες κατηγορίες, τις destructive τεχνικές και τις non-destructive.

  1. Destructive είναι οι τεχνικές που βασίζονται στην καταστροφή του chip, προκειμένου να εξακριβώσουν αν υπάρχει ή όχι ένα Trojan. Είναι μια ακριβή, επίπονη και εξαιρετικά χρονοβόρα διαδικασία που απαιτεί ακριβό και ειδικό εξοπλισμό, όπως Ηλεκτρονικά Μικροσκόπια. Στην διαδικασία αυτή, διεξάγεται Reverse Engineering, για να ανακτηθούν layer-by-layer εικόνες του layout του CUTT. Στην συνέχεια, κάθε layout layer συγκρίνεται με βάση το αντίστοιχο layer του Golden IC.

  2. Νοn-Destructive είναι οι τεχνικές που δεν καταστρέφουν το chip. Χωρίζονται σε :

  3. Run-Time Monitoring, στο οποίο παρατηρούμε την run-time συμπεριφορά του κυκλώματος, και προσπαθούμε να εντοπίσουμε abnormal συμπεριφορά, όπως μη αναμενόμενες τιμές εξόδου ή μεγάλη καθυστέρηση

  4. Test-time προσεγγίσεις, προσπαθούν να ανιχνεύσουν το Trojan κατά την διάρκεια του ελέγχου του κυκλώματος. Χωρίζονται σε :

  5. Logic/Functional Testing approaches: O έλεγχος επικεντρώνεται στην δημιουργία Test Vectors με σκοπό :

  • Την ενεργοποίηση του Trojan
  • Την παρατήρηση της επίδρασης του Trojan στο Payload και στις κυρίαρχες εξόδους

Στην ουσία το Functional Testing, διεγείρει τις κυρίαρχες εισόδους του κυκλώματος, μέσω εφαρμογής κατάλληλων Test Vectors και παρατηρεί τις εξόδους. Διαφοροποίηση ανάμεσα στην παρατηρηθείσα και την αναμενόμενη έξοδο, μπορεί να υποδεικνύει την παρουσία ενός Trojan. Όμως, ένα τέτοιο mismatch, μπορεί να οφείλεται και σε κατασκευαστικά λάθη.

PROS:

  • Απλή διαδικασία και εύκολη ανίχνευση της μη-αναμενόμενης συμπεριφοράς

CONS:

  • Μπορεί να αποτύχει να εντοπίσει Trojans τα οποία έχουν μικρή πιθανότητα ενεργοποίησης, τα οποία ενεργοποιούνται σε Rare Events (όπως πχ ένα ακολουθιακό Trojan που ενεργοποιείται με βάση την τιμή ενός counter), φαινόμενο αρκετά συχνό

  • Υπάρχει δυσκολία στην διέγερση και παρατήρηση των κόμβων χαμηλής ελεγξιμότητας και παρατηρησιμότητας

  • Αποτυχία ενεργοποίησης externally triggered Trojans (πχ ενεργοποιούμενα από μια κεραία)

  • Μπορεί να ανιχνεύσει μόνο functional Trojans, τα οποία τροποποιούν την λειτουργία του κυκλώματος, και όχι parametric Trojans, που μειώνουν το Reliability

  • Ακόμα και με ATPG (Automated Test Pattern Generation) Tools, είναι δύσκολο να επιλεχθούν τα κατάλληλα Test Vectors, τα οποία μπορούν να ενεργοποιήσουν τα πιθανά Trojans. Ειδικά, σε κυκλώματα με μεγάλο αριθμό εισόδων, το exhaustive testing είναι μη-υλοποιήσιμο (πχ σε 64-bit full-adder έχουμε 265 πιθανά input patterns). Έτσι, μιας και θα επιλεχθούν μόνο κάποια test vectors, υπάρχει περίπτωση το Trojan να “ξεφύγει”

  1. Side-Channel Analysis based : Βασίζονται στην παρατήρηση κάποιας (συνήθως αναλογικής) φυσικής παραμέτρου του chip, προκειμένου να εντοπίσουν ένα Trojan. Ανάλογα με την φυσική ποσότητα την οποία παρατηρούν, έχουμε :

  2. Power Analysis : Βασίζεται στην ανάλυση της κατανάλωσης ισχύος ενός chip. Αναμένουμε πως ένα chip που έχει μολυνθεί με Trojan, θα έχει μεγαλύτερη κατανάλωση από ένα Golden IC. Όμως, απαιτείται η ύπαρξη ενός Golden IC, για να γίνει σύγκριση της κατανάλωσης ισχύος του με αυτή του CUTT. Σε περίπτωση διαφοράς, η παραπάνω ενέργεια είναι αυτή που καταναλώνεται από το Trojan.

Όμως, αυτό είναι αποτελεσματικό για μικρά κυκλώματα, καθώς σε μεγαλύτερα κυκλώματα η διαφορά στην κατανάλωση ανάμεσα σε ένα Golden και σε ένα CUTT IC, μπορεί να οφείλεται είτε στα αναπόφευκτα ρεύματα διαρροών που εμφανίζονται στα τρανζίστορ είτε σε κατασκευαστικές απώλειες.

Αυτό πρόβλημα μπορεί να ξεπερασθεί μέσω Segmentation, δηλ. του διαχωρισμού του κυκλώματος σε πολλαπλά απλούστερα υποκυκλώματα, και να γίνει σύγκριση της κατανάλωσης ισχύος κάθε υποκυκλώματος του CUTT, με το αντίστοιχο του Golden IC.

Ακόμη, τα random input test vectors, μπορεί να μην δημιουργήσουν εναλλαγή κατάστασης στο Trojan (είτε από inactive σε active, είτε το αντίθετο), οπότε να μην μπορέσει να ανιχνευθεί.

Ακόμα και σε ένα Trojan-free IC, η διαφορά ανάμεσα στην κατανάλωση ισχύος του και σε αυτή του Golden IC, μπορεί να οφείλεται σε process variations.

Έτσι, η μέθοδος αυτή είναι ευαίσθητη σε process noise και measurement noise.

Αξίζει να σημειωθεί πως, η επιλογή των κατάλληλων test vectors, που θα αυξήσουν το switching activity των Trojans, τόσο ώστε να μπορέσει να παρατηρηθεί μια σημαντική διαφορά στην κατανάλωση ισχύος του CUTT (έναντι του Golden IC), η οποία να μπορεί να ερμηνευθεί ως κάτι παραπάνω από τα process variations, είναι μια δύσκολη διαδικασία.

Τέλος, με Power Analysis δεν μπορούμε να εντοπίσουμε hard-to-activate Trojans αλλά και loosely distributed Trojans, δηλ. Trojans των οποίων τα components είναι τοπολογικά κατανεμημένα (πχ κατά το Segmentation, υπάρχει σημαντική πιθανότητα τα Trojan components να ανήκουν σε διαφορετικά υπό εξέταση υποκυκλώματα)

  1. Iddq analysis : Βασίζεται στην μέτρηση του ρεύματος ηρεμίας (quiescent state), δηλ. της στατικής κατανάλωσης. Αν το IC έχει Trojan, τότε θα έχει περισσότερες πύλες, άρα περισσότερα τρανζίστορ και άρα μεγαλύτερα ρεύματα διαρροών.

  2. Iddt analysis : Το αντίθετο από το Iddq testing, καθώς εδώ γίνεται μέτρηση του ρεύματος που καταναλώνεται κατά την εναλλαγή κατάστασης (δυναμική κατανάλωση).

Αν το κύκλωμα έχει Trojan, τότε θα γίνονται παραπάνω switching activities από το Golden IC, μιας και στο πρώτο κύκλωμα, θα γίνονται και οι εναλλαγές κατάστασης του Trojan.

  1. Path Delay : Οι επιπλέον πύλες ενός Trojan αυξάνουν την χωρητικότητα και τα παρασιτικά των γραμμών μετάδοσης και άρα οδηγούν σε μεγαλύτερο Path Delay. Η μέθοδος αυτή βασίζεται στην μέτρηση του Path Delay, που στην περίπτωση ενός επιμολυσμένου κυκλώματος, αναμένουμε να είναι μεγαλύτερη.

Για παράδειγμα, στην περίπτωση ενός Parametric Trojan, το οποίο έχει αλλάξει τις φυσικές διαστάσεις των αγωγών, αναμένουμε αύξηση του Path Delay.

Ένα πλεονέκτημα του Delay Analysis, έναντι του Power Analysis, είναι το γεγονός πως το πρώτο δεν απαιτεί την ενεργοποίηση του CUTT.

Όμως, και πάλι τα process variations επηρεάζουν σημαντικά τα delay characteristics ενός chip.

  1. ΕΜ : Μέθοδος που βασίζεται στην μέτρηση της Ηλεκτρομαγνητικής Ακτινοβολίας. Το επιμολυσμένο κύκλωμα πιθανόν να έχει μεγαλύτερη EM, λόγω του μεγαλύτερου switching activity.

Όμως, όλες οι μέθοδοι που είναι Side-Channel Analysis based, απαιτούν την ύπαρξη ενός Golden IC, προκειμένου να γίνει σύγκριση του μετρημένου αναλογικού χαρακτηριστικού του CUTT με το Golden IC.

PROS:

  • Οι Side-Channel analysis based τεχνικές ανίχνευσης των Hardware Trojans, μπορούν να εντοπίσουν όχι μονο functional Trojans, αλλά και parametric. Κάτι το οποίο δεν είναι δυνατόν με functional testing διαδικασίες, καθώς τα parametric Trojans, δεν δημιουργούν παρατηρήσιμες δυσλειτουργίες στο κύκλωμα.

CONS:

  • Το μεγάλο Process Variation που εμφανίζεται στις σύγχρονες τεχνολογίες με Feature size στην κλίμακα των μερικών νανομέτρων και ο θόρυβος κατά τις μετρήσεις των αναλογικών ποσοτήτων, μπορεί να κρύψει την ύπαρξη των Trojans σε ένα κύκλωμα, ειδικά όταν το κακόβουλο κύκλωμα είναι ιδιαίτερα μικρό.

Συνεπώς, μια Υβριδική τεχνική ανίχνευσης που χρησιμοποιεί χαρακτηριστικά και των Logic testing-based αλλά και των Side-Channel analysis τεχνικών, μπορεί να αυξήσει τις πιθανότητες εντοπισμού ενός Hardware Trojan.

Άρα, αφού ο εντοπισμός των Trojans είναι κάτι δύσκολο, τί μπορεί να γίνει?

Design for Hardware Trust

Οι προσεγγίσεις που μπορούν να ακολουθηθούν είναι :

  1. Βελτίωση των υπαρχόντων μεθόδων ανίχνευσης (πχ power/delay analysis)

  2. Rare Event Removal : Οι attackers επιλέγουν rare events (δηλ. γεγονότα με χαμηλή συχνότητα εμφάνισης) για την ενεργοποίηση των Trojans. Οπότε, αν μπορέσουμε να αφαιρέσουμε ή να μειώσουμε σημαντικά των αριθμό των rare events, αυξάνουμε και τις πιθανότητες εντοπισμού ενός Trojan.

Αυτό μπορεί να επιτευχθεί, βελτιώνοντας την :

  1. Παρατηρισημότητα (Observability) : Η ικανότητα διάδοσης οποιουδήποτε εσωτερικού σήματος σε μια πρωτεύουσα έξοδο, όταν στις πρωτεύουσες εισόδους έχει εφαρμοσθεί το κατάλληλο input vector

Ή βελτιώνοντας την :

  1. Eλεγξιμότητα (Controllability) : H δυνατότητα παραγωγής οποιασδήποτε επιθυμητής τιμής σε εσωτερικά σήματα του κυκλώματος, με την κατάλληλη εφαρμογή input vectors στις πρωτεύουσες εισόδους

Ένας τρόπος να βελτιωθούν και οι παραπάνω δύο ιδιότητες, είναι με την εισαγωγή Dummy Scan Flip-Flops, ώστε να υπάρξει έλεγχος των δύσκολα διεγερμένων κόμβων, με σκοπό να αυξηθεί η πιθανότητα μερικής ή ολικής ενεργοποίησης των Trojans.

  1. Αποτροπή της εισαγωγής Hardware Trojans μέσω Design Obfuscation : Μετατροπή του αρχικού design σε ένα ισοδύναμο, στο οποίο είναι πολύ πιο δύσκολο να γίνει Reverse Engineering, και άρα να καταλάβουν οι attackers την εσωτερική λογική. Έτσι, η εισαγωγή ενός Trojan γίνεται δυσκολότερη.

  2. Built-in Self-Authentication (BISA) : Γέμισμα όλων των dead spaces του layout (στα οποία θα μπορούσε να τοποθετηθεί ένα Trojan), με κυκλώματα τα οποία μπορούν εύκολα να ελέγξουν τον ευατό τους.

Επίλογος

Τα Hardware Trojans είναι μια σημαντική απειλή στο παγκοσμιοποιημένο Supply Chain, όμως λόγω του δύσκολου εντοπισμού τους, οι απειλές που θέτουν είναι ακόμα μεγαλύτερες.

Τα κακόβουλα αυτά κυκλώματα, μπορούν να “κρυφτούν” μέσα στο χαώδες layout των σύγχρονων κυκλωμάτων των (δισ)εκατομμυρίων πυλών.

Συνεπώς, απαιτείται βελτίωση των ήδη υπαρχόντων τεχνικών ανίχνευσης αλλά και δημιουργία νέων, ώστε να μπορούν να εντοπίζονται τα Trojans, γρηγορότερα, αποδοτικότερα αλλά και με μικρή πιθανότητα λάθους.

Επίσης, αξίζει να σημειωθεί πως όλες οι τεχνικές ανίχνευσης που παρουσιάστηκαν παραπάνω είναι Post-silicon, δηλ. εφαρμόζονται μετά την κατασκευή του chip.

Έχουν προταθεί και Pre-silicon τεχνικές, που εφαρμόζονται κατά το Design Time, όπως η [2], όπου χρησιμοποιείται Machine Learning προκειμένου να τροποποιηθούν ή να αφαιρεθούν ύποπτα κυκλώματα.

Ακόμη, μπορούν να εφαρμοστούν και τεχνικές που βασίζονται στην Προηγμένη Επεξεργασία Εικόνων ( [3] ), προκειμένου να ανιχνευθούν τα Trojans που έχουν εισαχθεί από ένα Untrusted Foundry.

Επίσης, ερευνητές έδειξαν πως μπορεί κατασκευαστεί ένα USB πληκτρολόγιο ( [5] ) το οποίο να διαρρέει πληροφορίες μέσω Unintented channels.

Υπάρχουν Hardware Trojans σε συσκευές που χρησιμοποιούμε καθημερινά? Είναι μια πιθανότητα, που ολοένα και μεγαλώνει, λόγω και του IC Recycling που κερδίζει συνεχώς έδαφος.

 

~~ Zeosleus

 

Πηγές

  1. X. Wang et al, Sequential Hardware Trojan: Side-channel Aware Design and Placement

  2. J. Hamlet et al, Targeted modification of hardware trojans

  3. N. Vashista et al, Detecting Hardware Trojans Inserted by Untrusted Foundry Using Physical Inspection and Advanced Image Processing

  4. https://trust-hub.org/downloads/resource/pdf/system-level-hardware-trojan-taxonomy.pdf

  5. J. Clark et al, Hardware Trojan Horse Device based on Unintended USB Channels

  6. X. Wang et al, Sequential Hardware Trojan: Side-channel Aware Design and Placement

HardwareTrojansSecurityHarware TrojansHardware Security

A computer within your computer (??)

RFID Tags & Security Issues