SlideShare una empresa de Scribd logo
1 de 25
Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή
διαδικασίας αρχικής προσφοράς νομίσματος στο
Ethereum Blockchain
ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
Επιβλέπων καθηγητής: κ. Ανδρέας Συμεωνίδης
Καμτζηρίδης Γεώργιος
ΑΕΜ: 8542
Οκτώβρης, 2019
ISSEL Intelligent Systems & Software Engineering Labgroup
ISSEL Intelligent Systems & Software Engineering Labgroup 2
Κίνητρο
• Επεκτείνει τη λειτουργία της σε μη οικονομοκεντρικά συστήματα
• Διακινεί νόμιμα μεγάλες χρηματικές ποσότητες
• Ενισχύει τη ψηφιοποίηση αγαθών και προϊόντων
• Βοηθά τη χρηματοδότηση μικρομεσαίων επιχειρήσεων
Τα τελευταία 4 χρόνια η τεχνολογία Blockchain μέσω της πλατφόρμας Ethereum:
Τα τελευταία 2 χρόνια μέσω του Ethereum:
• Πραγματοποιήθηκαν πάνω από 1337 ξεχωριστές χρηματοδοτήσεις επιχειρήσεων1
• Συλλέχθηκαν περίπου 8.158.239.066$ μέσω χρηματοδοτήσεων1
1 Πηγές: https://www.icodata.io/stats/2018, https://www.icodata.io/stats/2019
2 Πηγή: https://www.investopedia.com/news/ethereum-smart-contracts-vulnerable-
hacks-4-million-ether-risk/
Ωστόσο, την ίδια περίοδο σε Blockchain δίκτυα:
• Κλάπηκαν περισσότερα από 500.000.000$ λόγω ευπαθών λογισμικών2
• Πάνω από 4.000.000$ ήταν υπό την κατοχή ευάλωτων προγραμμάτων2
ISSEL Intelligent Systems & Software Engineering Labgroup 3
Σκοπός
• Παρουσίαση της τεχνολογίας Blockchain με έμφαση στο δίκτυο του Ethereum
• Ανάλυση της αρχιτεκτονικής του λογισμικού που λειτουργεί στο Ethereum
• Έρευνα σχετική με τις ευπάθειες των προγραμμάτων στο Ethereum
• Υπόδειξη χρήσης προτύπων σχεδίασης και γενικότερων λύσεων για την αντιμετώπιση των προβλημάτων
• Καθιέρωση καλών πρακτικών σε θέματα ασφαλείας που αφορούν την ανάπτυξη και παραγωγή
λογισμικού
Γενικά:
Ειδικότερα:
• Επεξήγηση μιας διαδικασίας αρχικής προσφοράς νομίσματος (Initial Coin Offering ή ICO)
• Αντιμετώπιση απειλών και λογικών σφαλμάτων ενός ICO
• Εφαρμογή εξειδικευμένων πρακτικών και συμβουλών κατά την ανάπτυξη ενός ICO
Τέλος, παρουσιάζεται αναλυτικά η σχεδίαση και υλοποίηση μιας διαδικασίας ICO με γνώμονα την ασφάλεια
και αξιοπιστία στην πλατφόρμα του Ethereum.
ISSEL Intelligent Systems & Software Engineering Labgroup 4
Γνώσεις που αποκτήθηκαν
• Χαρακτηριστικά δικτύου
• Αρχιτεκτονική λογισμικού
• Ευπάθειες λογισμικού
• Μέθοδοι αντιμετώπισης προβλημάτων
• Καλές πρακτικές
• Πρότυπα σχεδίασης
Γενικά: Ειδικότερα στο Ethereum:
• Τεχνολογία Blockchain
• Αρχική προσφορά νομίσματος (ICO)
Εν τέλει:
• Ασφαλή σχεδίαση και ανάπτυξη λογισμικού στο Ethereum
• Υλοποίηση λογισμικού για τη διεκπεραίωση ενός ICO
ακολουθώντας υψηλά πρότυπα ασφαλείας
ISSEL Intelligent Systems & Software Engineering Labgroup 5
Υπόβαθρο – Ethereum (1/2)
Τι είναι το Ethereum;
• Είναι ένα Blockchain δίκτυο
• Δημιουργήθηκε το 2014 από μια ομάδα προγραμματιστών στην Ελβετία
• Διαθέτει δικό του κρυπτονόμισμα, το ether
Γιατί ξεχωρίζει το δίκτυο του Ethereum;
Γιατί εκτός από την καταχώρηση οικονομικών συναλλαγών επιτρέπει και την
εκτέλεση προγραμμάτων γενικότερου σκοπού
Στο Ethereum:
• Καταχωρούνται προγράμματα τα οποία ονομάζονται έξυπνα συμβόλαια
(Smart Contracts)
• Οι χρήστες του μπορούν να αλληλεπιδράσουν με αυτά μέσω συναλλαγών
• Οι συναλλαγές εκτελούνται από τους miners
• Τα αποτελέσματα των συναλλαγών καταχωρούνται ξανά στην αλυσίδα
ISSEL Intelligent Systems & Software Engineering Labgroup 6
Υπόβαθρο – Ethereum (2/2)
• Στην πράξη το δίκτυο του Ethereum αποτελεί έναν παγκόσμιο υπολογιστή
• Τα προγράμματα γράφονται σε μια γλώσσα υψηλού επιπέδου
Η δημοφιλέστερη γλώσσα υψηλού επιπέδου είναι η Solidity1 η οποία:
1Αποθετήριο: https://github.com/ethereum/solidity
• Είναι σχεδιασμένη για την ανάπτυξη smart contracts
• Αποτελεί αλχημεία των γλωσσών Javascript και C++
• Είναι Turing-Complete
• Υποστηρίζει την αντικειμενοστραφή σχεδίαση λογισμικού
ISSEL Intelligent Systems & Software Engineering Labgroup 7
Υπόβαθρο – Αρχική προσφορά νομίσματος
• Μια μέθοδος συλλογικής χρηματοδότησης ενός προϊόντος ή μιας υπηρεσίας
• Λαμβάνει χώρα, κυρίως, σε Blockchain περιβάλλοντα
Λειτουργία:
Τι είναι;
1. Η εταιρία δημιουργεί μια ποσότητα από ψηφιακές μάρκες (tokens)
2. Συσχετίζει τα tokens με ένα προϊόν ή υπηρεσία
3. Κοστολογεί τα tokens βάσει της συσχέτισης
4. Διαθέτει τα tokens, σε διακριτά στάδια, σε τιμή μικρότερη απ’ αυτή που θα έχει τελικά το προϊόν ή η
υπηρεσία
Αποτέλεσμα:
• Η εταιρία χρηματοδοτείται άμεσα από τους πελάτες της
• Οι πελάτες αποκτούν το προϊόν ή την υπηρεσία που επιθυμούν σε χαμηλή τιμή
Κυριότερα πλεονεκτήματα:
• Αυτοματοποιημένη, αποκεντρωμένη και ανεξάρτητη διαδικασία
• Ορισμένες φορές ανεξάρτητη από κεντρικές αρχές, χωρίς κάποιο νομικό περιορισμό ή ρύθμιση
ISSEL Intelligent Systems & Software Engineering Labgroup 8
Μεθοδολογία – Επίθεση επανεισαγωγής
Δεδομένα:
• Τα smart contracts επιτρέπουν την παύση της εκτέλεσής τους ώστε να εκτελεστεί μια ρουτίνα ενός
εξωτερικού smart contract
• Μόλις ολοκληρωθεί η εκτέλεση της εξωτερικής ρουτίνας, το αρχικό smart contract συνεχίζει να εκτελείται
Πρόβλημα:
Λύση: χρήση προτύπου σχεδίασης ελέγχων-επιδράσεων-αλληλεπιδράσεων (Checks-Effects-
Interactions)
Βήματα:
Αποτέλεσμα: η εσωτερική κατάσταση του smart contract δεν εξαρτάται άμεσα από την
αλληλεπίδραση με το εξωτερικό σύστημα
Η εκτέλεση αυθαίρετου κώδικα μπορεί να δημιουργήσει καταστάσεις αναδρομής, όπου η εξωτερική ρουτίνα
καλεί, ξανά, το αρχικό smart contract επιτρέποντας τη μεταβολή της κατάστασής του με απρόσμενο τρόπο
1. Έλεγχος δεδομένων εισόδου
2. Μεταβολές στην εσωτερική κατάσταση του smart contract
3. Αλληλεπιδράσεις με εξωτερικά συστήματα
ISSEL Intelligent Systems & Software Engineering Labgroup 9
Μεθοδολογία – Επίθεση άρνησης υπηρεσίας
Δεδομένα:
• Στο δίκτυο του Ethereum ο αριθμός των συναλλαγών που μπορούν να καταχωρηθούν σε ένα block
περιορίζεται από το block gas limit
• Ένα smart contract μπορεί να εκτελεί συναλλαγές μαζικά
Πρόβλημα:
Λύση: χρήση προτύπου σχεδίασης Pull Over Push
Βήματα:
Αποτέλεσμα: εξασφαλίζεται η καταχώρηση των συναλλαγών στην αλυσίδα και οι ενέργειες ενός
χρήστη δεν επηρεάζουν τους υπόλοιπους χρήστες, αλλά ούτε και το σύνολο του συστήματος
• Μια συναλλαγή ενδέχεται να μην μπορεί να καταχωρηθεί λόγω της ποσότητας από gas που χρειάζεται
• Μαζικές ενέργειες μπορούν να αναβληθούν αέναα εξαιτίας κακοηθών χρηστών
1. Αποφυγή χρήσης βρόχων επανάληψης σε ανεξέλεγκτου μήκους πίνακες
2. Αποφυγή μαζικών ενεργειών
3. Εκκίνηση διαδικασίας από τον εκάστοτε χρήστη
ISSEL Intelligent Systems & Software Engineering Labgroup 10
Μεθοδολογία – Επίθεση εξουσιοδότησης
Δεδομένα:
• Η γλώσσα Solidity δίνει τη δυνατότητα λήψης της «ταυτότητας» του δράστη που εκτελεί την τρέχουσα
ρουτίνα, αλλά και αυτού που εκκίνησε τη διαδικασία
• Ο δράστης μπορεί να είναι είτε εξωτερικός λογαριασμός είτε λογαριασμός συμβολαίου
Πρόβλημα:
Λύση: εξουσιοδότηση αποκλειστικά και μόνο μέσω της «ταυτότητας» του τελευταίου χρήστη
Βήματα:
Αποτέλεσμα: εξασφαλίζεται ότι η εξουσιοδότηση γίνεται στον «πραγματικό» δράστη
Η χρήση του δράστη που εκκίνησε τη διαδικασία ως «ταυτότητα» για την εξουσιοδότηση μιας ενέργειας
μπορεί να προκαλέσει επιθέσεις τύπου man in the middle
1. Απαγόρευση χρήσης της μεταβλητής tx.origin σε θέματα εξουσιοδότησης
2. Αποκλειστική χρήση της μεταβλητής msg.sender σε θέματα εξουσιοδότησης
ISSEL Intelligent Systems & Software Engineering Labgroup 11
Μεθοδολογία – Καλές πρακτικές
• Έχει δηλώσεις περιορισμού σε όλες τις συναρτήσεις και τις μεταβλητές
• Έχει μηχανισμούς απενεργοποίησης και ενεργοποίησης λειτουργιών
• Πραγματοποιεί αποστολές ether μέσω της συνάρτησης transfer
• Λαμβάνει υπόψη καταστάσεις υπερχείλισης (Overflow) ή ανεπάρκειας (Underflow)
• Κάνει σωστή χρήση των μεταβλητών «χρόνου»
• Έχει αυτοματοποιημένους ελέγχους (Unit Tests) με υψηλή κάλυψη
• Έχει πλήρη τεκμηρίωση τόσο στον πηγαίο κώδικα όσο και σε μορφή εγγράφου ή ιστοσελίδας
Ένα smart contract πρέπει να:
ISSEL Intelligent Systems & Software Engineering Labgroup 12
Αποτελέσματα (1/6)
1. Τεκμηρίωση σε μορφή σχολίων
2. Checks-Effects-Interactions
A. Checks
B. Effects
C. Interactions
3. Χρήση της συνάρτησης transfer
Συνάρτηση επιστροφής χρημάτων
ISSEL Intelligent Systems & Software Engineering Labgroup 13
Αποτελέσματα (2/6)
Συνάρτηση εξαργύρωσης tokens
1. Pull Over Push
ISSEL Intelligent Systems & Software Engineering Labgroup 14
Αποτελέσματα (3/6)
Συνάρτηση μεταφοράς tokens
Χρήση συναρτήσεων βιβλιοθήκης
SafeMath για την αντιμετώπιση
περιπτώσεων overflow και underflow
ISSEL Intelligent Systems & Software Engineering Labgroup 15
Αποτελέσματα (4/6)
Συνάρτηση ενεργοποίησης και
απενεργοποίησης
1. Συνάρτηση ενεργοποίησης
2. Συνάρτηση απενεργοποίησης
ISSEL Intelligent Systems & Software Engineering Labgroup 16
Αποτελέσματα (5/6)
1. Χρήση του timestamp αντί του block number
2. Χρήση του msg.sender αντί του tx.origin
Τροποποιητές συναρτήσεων χρόνου
Τροποποιητές συναρτήσεων
εξουσιοδότησης
ISSEL Intelligent Systems & Software Engineering Labgroup 17
Αποτελέσματα (6/6)
Κάλυψη Unit Tests Τεκμηρίωση κώδικα
ISSEL Intelligent Systems & Software Engineering Labgroup 18
Υποδομή
Διεπαφή χρήστη Διακομιστής
• Αλληλεπίδραση χρηστών με τα smart contracts
• Παρακολούθηση των smart contracts
• Παρουσίαση αναλυτικών δεδομένων και
διαγραμμάτων
Τεχνολογίες:
• AngularJS: 1.6.5
• Typescript: 3.4.4
• Web3JS: 1.0.0-beta.37
• ChartJS: 2.8.0
• Παρακολούθηση της δραστηριότητας των smart
contracts
• Λεπτομερής καταγραφή των δεδομένων που
διαχειρίζονται τα smart contracts
• Διάθεση των δεδομένων στη διεπαφή για την
κατασκευή διαγραμμάτων
Τεχνολογίες:
• NodeJS: 11.10.1
• ExpressJS: 4.17.1
• MongoDB: 3.4.21
ISSEL Intelligent Systems & Software Engineering Labgroup 19
Διεπαφή χρήστη - Token
ISSEL Intelligent Systems & Software Engineering Labgroup 20
Διεπαφή χρήστη - ICO
ISSEL Intelligent Systems & Software Engineering Labgroup 21
Διεπαφή χρήστη - Διαγράμματα
ISSEL Intelligent Systems & Software Engineering Labgroup 22
Συμπεράσματα
• Η ανάπτυξη ασφαλών smart contracts είναι μια απαιτητική διαδικασία
• Διαφέρει στη νοοτροπία από τη συμβατική παραγωγή λογισμικού
• Χρειάζεται εξειδικευμένες γνώσεις σε διάφορους τομείς
• Απαιτεί ιδιαίτερη προσοχή κατά τα στάδια της ανάλυσης ενός smart contract
• Η κατανόηση των κυριότερων ευπαθειών ενός smart contract είναι απαραίτητη
• Η εφαρμογή καλών πρακτικών κατά την ανάπτυξη είναι αναγκαία
Διαδικασία ανάπτυξης smart contracts για μια διαδικασία ICO
ISSEL Intelligent Systems & Software Engineering Labgroup 23
Μελλοντική εργασία
Ο τομέας της ασφάλειας είναι ραγδαία εξελισσόμενος, ιδιαίτερα σε μια πλατφόρμα ηλικίας 5 ετών.
Καθημερινά εντοπίζονται νέες ευπάθειες σε συστήματα που θεωρούνταν, μέχρι πρότερα, ασφαλή.
Το δίκτυο του Ethereum αναβαθμίζεται ετησίως, προσθέτοντας νέα χαρακτηριστικά και δημιουργώντας
καινούργιες απαιτήσεις ασφαλείας.
Εμφανίζονται νέα πρότυπα σχεδίασης για την αντιμετώπιση προβλημάτων στα smart contracts.
ISSEL Intelligent Systems & Software Engineering Labgroup 24
Ευχαριστίες
Θα ήθελα να ευχαριστήσω τον Αναπληρωτή καθηγητή κ. Ανδρέα Συμεωνίδη για την εμπιστοσύνη που μου έδειξε
με την αποδοχή της πρότασης για τη διπλωματική εργασία, καθώς και τη συμβολή του στην τελική μορφή αυτής
Επίσης, θα ήθελα να ευχαριστήσω τον κ. Δημήτρη Φιλιππίδη ο οποίος πρότεινε τη βασική ιδέα της εργασίας
Τέλος, θα ήθελα να ευχαριστήσω όλους εσάς που είστε σήμερα εδώ γι’ αυτήν την παρουσίαση
ISSEL Intelligent Systems & Software Engineering Labgroup 25
Ερωτήσεις

Más contenido relacionado

La actualidad más candente

Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
ISSEL
 
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
ISSEL
 
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
ISSEL
 

La actualidad más candente (7)

Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
 
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
 
Evangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationEvangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentation
 
Μαρία Κουιρουκίδου
Μαρία ΚουιρουκίδουΜαρία Κουιρουκίδου
Μαρία Κουιρουκίδου
 
Ιωάννη Α. Ζαφειρίου
Ιωάννη Α. ΖαφειρίουΙωάννη Α. Ζαφειρίου
Ιωάννη Α. Ζαφειρίου
 
Konstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis PresentationKonstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis Presentation
 
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
 

Similar a Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς νομίσματος στο Ethereum Blockchain

Thesis.Net Applications
Thesis.Net ApplicationsThesis.Net Applications
Thesis.Net Applications
pdalianis
 
SECURICON - Physical and IT Access Control
SECURICON - Physical and IT Access ControlSECURICON - Physical and IT Access Control
SECURICON - Physical and IT Access Control
PROBOTEK
 
Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...
ISSEL
 
κεφάλαιο 4 απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 4  απαντήσεις στις ερωτήσεις βιβλίουκεφάλαιο 4  απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 4 απαντήσεις στις ερωτήσεις βιβλίου
ΤΑΤΙΑΝΑ ΠΕΤΡΟΠΟΥΛΟΥ
 
ελ λακ
ελ λακελ λακ
ελ λακ
vagmag12
 
Creating an Open Archival Information System compliant archive for CERN
Creating an Open Archival Information System compliant archive for CERNCreating an Open Archival Information System compliant archive for CERN
Creating an Open Archival Information System compliant archive for CERN
ISSEL
 
Δημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERN
Δημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERNΔημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERN
Δημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERN
ISSEL
 

Similar a Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς νομίσματος στο Ethereum Blockchain (20)

Π. Κρανιδιώτης ΕΛΛΑΚ
Π. Κρανιδιώτης ΕΛΛΑΚΠ. Κρανιδιώτης ΕΛΛΑΚ
Π. Κρανιδιώτης ΕΛΛΑΚ
 
Kef8.ppt
Kef8.pptKef8.ppt
Kef8.ppt
 
Segmentation fault (Web - Site - Project)
Segmentation fault (Web - Site - Project)Segmentation fault (Web - Site - Project)
Segmentation fault (Web - Site - Project)
 
VET4SBO Level 2 module 6 - unit 3 - v0.9 gr
VET4SBO Level 2   module 6 - unit 3 - v0.9 grVET4SBO Level 2   module 6 - unit 3 - v0.9 gr
VET4SBO Level 2 module 6 - unit 3 - v0.9 gr
 
PhaST_flyer_01
PhaST_flyer_01PhaST_flyer_01
PhaST_flyer_01
 
Thesis.Net Applications
Thesis.Net ApplicationsThesis.Net Applications
Thesis.Net Applications
 
Παρουσίαση προιόντων Τhesis.Net - Πέτρος Νταλιάνης
Παρουσίαση προιόντων Τhesis.Net - Πέτρος ΝταλιάνηςΠαρουσίαση προιόντων Τhesis.Net - Πέτρος Νταλιάνης
Παρουσίαση προιόντων Τhesis.Net - Πέτρος Νταλιάνης
 
SECURICON - Physical and IT Access Control
SECURICON - Physical and IT Access ControlSECURICON - Physical and IT Access Control
SECURICON - Physical and IT Access Control
 
Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...
 
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές και Προγραμματισμός-Θεωρητικές έννοι...
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές και Προγραμματισμός-Θεωρητικές έννοι...Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές και Προγραμματισμός-Θεωρητικές έννοι...
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές και Προγραμματισμός-Θεωρητικές έννοι...
 
01p intermapper
01p intermapper01p intermapper
01p intermapper
 
SE4
SE4SE4
SE4
 
Οδηγίες για συμμετέχοντες σε τηλεδιασκέψεις
Οδηγίες για συμμετέχοντες σε τηλεδιασκέψειςΟδηγίες για συμμετέχοντες σε τηλεδιασκέψεις
Οδηγίες για συμμετέχοντες σε τηλεδιασκέψεις
 
κεφάλαιο 4 απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 4  απαντήσεις στις ερωτήσεις βιβλίουκεφάλαιο 4  απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 4 απαντήσεις στις ερωτήσεις βιβλίου
 
ελ λακ
ελ λακελ λακ
ελ λακ
 
PhaST_flyer_03
PhaST_flyer_03PhaST_flyer_03
PhaST_flyer_03
 
Sesmo in Greek
Sesmo in Greek Sesmo in Greek
Sesmo in Greek
 
Adoption - Cloud Computing
Adoption - Cloud ComputingAdoption - Cloud Computing
Adoption - Cloud Computing
 
Creating an Open Archival Information System compliant archive for CERN
Creating an Open Archival Information System compliant archive for CERNCreating an Open Archival Information System compliant archive for CERN
Creating an Open Archival Information System compliant archive for CERN
 
Δημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERN
Δημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERNΔημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERN
Δημιουργία ενός Ανοιχτού Αρχειακού Πληροφοριακού Συστήματος για το CERN
 

Más de ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
ISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
ISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
ISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
ISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
ISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
ISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ISSEL
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
ISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
ISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
ISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
ISSEL
 

Más de ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 

Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς νομίσματος στο Ethereum Blockchain

  • 1. Ανάλυση ασφάλειας λογισμικού για τη διεξαγωγή διαδικασίας αρχικής προσφοράς νομίσματος στο Ethereum Blockchain ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Επιβλέπων καθηγητής: κ. Ανδρέας Συμεωνίδης Καμτζηρίδης Γεώργιος ΑΕΜ: 8542 Οκτώβρης, 2019 ISSEL Intelligent Systems & Software Engineering Labgroup
  • 2. ISSEL Intelligent Systems & Software Engineering Labgroup 2 Κίνητρο • Επεκτείνει τη λειτουργία της σε μη οικονομοκεντρικά συστήματα • Διακινεί νόμιμα μεγάλες χρηματικές ποσότητες • Ενισχύει τη ψηφιοποίηση αγαθών και προϊόντων • Βοηθά τη χρηματοδότηση μικρομεσαίων επιχειρήσεων Τα τελευταία 4 χρόνια η τεχνολογία Blockchain μέσω της πλατφόρμας Ethereum: Τα τελευταία 2 χρόνια μέσω του Ethereum: • Πραγματοποιήθηκαν πάνω από 1337 ξεχωριστές χρηματοδοτήσεις επιχειρήσεων1 • Συλλέχθηκαν περίπου 8.158.239.066$ μέσω χρηματοδοτήσεων1 1 Πηγές: https://www.icodata.io/stats/2018, https://www.icodata.io/stats/2019 2 Πηγή: https://www.investopedia.com/news/ethereum-smart-contracts-vulnerable- hacks-4-million-ether-risk/ Ωστόσο, την ίδια περίοδο σε Blockchain δίκτυα: • Κλάπηκαν περισσότερα από 500.000.000$ λόγω ευπαθών λογισμικών2 • Πάνω από 4.000.000$ ήταν υπό την κατοχή ευάλωτων προγραμμάτων2
  • 3. ISSEL Intelligent Systems & Software Engineering Labgroup 3 Σκοπός • Παρουσίαση της τεχνολογίας Blockchain με έμφαση στο δίκτυο του Ethereum • Ανάλυση της αρχιτεκτονικής του λογισμικού που λειτουργεί στο Ethereum • Έρευνα σχετική με τις ευπάθειες των προγραμμάτων στο Ethereum • Υπόδειξη χρήσης προτύπων σχεδίασης και γενικότερων λύσεων για την αντιμετώπιση των προβλημάτων • Καθιέρωση καλών πρακτικών σε θέματα ασφαλείας που αφορούν την ανάπτυξη και παραγωγή λογισμικού Γενικά: Ειδικότερα: • Επεξήγηση μιας διαδικασίας αρχικής προσφοράς νομίσματος (Initial Coin Offering ή ICO) • Αντιμετώπιση απειλών και λογικών σφαλμάτων ενός ICO • Εφαρμογή εξειδικευμένων πρακτικών και συμβουλών κατά την ανάπτυξη ενός ICO Τέλος, παρουσιάζεται αναλυτικά η σχεδίαση και υλοποίηση μιας διαδικασίας ICO με γνώμονα την ασφάλεια και αξιοπιστία στην πλατφόρμα του Ethereum.
  • 4. ISSEL Intelligent Systems & Software Engineering Labgroup 4 Γνώσεις που αποκτήθηκαν • Χαρακτηριστικά δικτύου • Αρχιτεκτονική λογισμικού • Ευπάθειες λογισμικού • Μέθοδοι αντιμετώπισης προβλημάτων • Καλές πρακτικές • Πρότυπα σχεδίασης Γενικά: Ειδικότερα στο Ethereum: • Τεχνολογία Blockchain • Αρχική προσφορά νομίσματος (ICO) Εν τέλει: • Ασφαλή σχεδίαση και ανάπτυξη λογισμικού στο Ethereum • Υλοποίηση λογισμικού για τη διεκπεραίωση ενός ICO ακολουθώντας υψηλά πρότυπα ασφαλείας
  • 5. ISSEL Intelligent Systems & Software Engineering Labgroup 5 Υπόβαθρο – Ethereum (1/2) Τι είναι το Ethereum; • Είναι ένα Blockchain δίκτυο • Δημιουργήθηκε το 2014 από μια ομάδα προγραμματιστών στην Ελβετία • Διαθέτει δικό του κρυπτονόμισμα, το ether Γιατί ξεχωρίζει το δίκτυο του Ethereum; Γιατί εκτός από την καταχώρηση οικονομικών συναλλαγών επιτρέπει και την εκτέλεση προγραμμάτων γενικότερου σκοπού Στο Ethereum: • Καταχωρούνται προγράμματα τα οποία ονομάζονται έξυπνα συμβόλαια (Smart Contracts) • Οι χρήστες του μπορούν να αλληλεπιδράσουν με αυτά μέσω συναλλαγών • Οι συναλλαγές εκτελούνται από τους miners • Τα αποτελέσματα των συναλλαγών καταχωρούνται ξανά στην αλυσίδα
  • 6. ISSEL Intelligent Systems & Software Engineering Labgroup 6 Υπόβαθρο – Ethereum (2/2) • Στην πράξη το δίκτυο του Ethereum αποτελεί έναν παγκόσμιο υπολογιστή • Τα προγράμματα γράφονται σε μια γλώσσα υψηλού επιπέδου Η δημοφιλέστερη γλώσσα υψηλού επιπέδου είναι η Solidity1 η οποία: 1Αποθετήριο: https://github.com/ethereum/solidity • Είναι σχεδιασμένη για την ανάπτυξη smart contracts • Αποτελεί αλχημεία των γλωσσών Javascript και C++ • Είναι Turing-Complete • Υποστηρίζει την αντικειμενοστραφή σχεδίαση λογισμικού
  • 7. ISSEL Intelligent Systems & Software Engineering Labgroup 7 Υπόβαθρο – Αρχική προσφορά νομίσματος • Μια μέθοδος συλλογικής χρηματοδότησης ενός προϊόντος ή μιας υπηρεσίας • Λαμβάνει χώρα, κυρίως, σε Blockchain περιβάλλοντα Λειτουργία: Τι είναι; 1. Η εταιρία δημιουργεί μια ποσότητα από ψηφιακές μάρκες (tokens) 2. Συσχετίζει τα tokens με ένα προϊόν ή υπηρεσία 3. Κοστολογεί τα tokens βάσει της συσχέτισης 4. Διαθέτει τα tokens, σε διακριτά στάδια, σε τιμή μικρότερη απ’ αυτή που θα έχει τελικά το προϊόν ή η υπηρεσία Αποτέλεσμα: • Η εταιρία χρηματοδοτείται άμεσα από τους πελάτες της • Οι πελάτες αποκτούν το προϊόν ή την υπηρεσία που επιθυμούν σε χαμηλή τιμή Κυριότερα πλεονεκτήματα: • Αυτοματοποιημένη, αποκεντρωμένη και ανεξάρτητη διαδικασία • Ορισμένες φορές ανεξάρτητη από κεντρικές αρχές, χωρίς κάποιο νομικό περιορισμό ή ρύθμιση
  • 8. ISSEL Intelligent Systems & Software Engineering Labgroup 8 Μεθοδολογία – Επίθεση επανεισαγωγής Δεδομένα: • Τα smart contracts επιτρέπουν την παύση της εκτέλεσής τους ώστε να εκτελεστεί μια ρουτίνα ενός εξωτερικού smart contract • Μόλις ολοκληρωθεί η εκτέλεση της εξωτερικής ρουτίνας, το αρχικό smart contract συνεχίζει να εκτελείται Πρόβλημα: Λύση: χρήση προτύπου σχεδίασης ελέγχων-επιδράσεων-αλληλεπιδράσεων (Checks-Effects- Interactions) Βήματα: Αποτέλεσμα: η εσωτερική κατάσταση του smart contract δεν εξαρτάται άμεσα από την αλληλεπίδραση με το εξωτερικό σύστημα Η εκτέλεση αυθαίρετου κώδικα μπορεί να δημιουργήσει καταστάσεις αναδρομής, όπου η εξωτερική ρουτίνα καλεί, ξανά, το αρχικό smart contract επιτρέποντας τη μεταβολή της κατάστασής του με απρόσμενο τρόπο 1. Έλεγχος δεδομένων εισόδου 2. Μεταβολές στην εσωτερική κατάσταση του smart contract 3. Αλληλεπιδράσεις με εξωτερικά συστήματα
  • 9. ISSEL Intelligent Systems & Software Engineering Labgroup 9 Μεθοδολογία – Επίθεση άρνησης υπηρεσίας Δεδομένα: • Στο δίκτυο του Ethereum ο αριθμός των συναλλαγών που μπορούν να καταχωρηθούν σε ένα block περιορίζεται από το block gas limit • Ένα smart contract μπορεί να εκτελεί συναλλαγές μαζικά Πρόβλημα: Λύση: χρήση προτύπου σχεδίασης Pull Over Push Βήματα: Αποτέλεσμα: εξασφαλίζεται η καταχώρηση των συναλλαγών στην αλυσίδα και οι ενέργειες ενός χρήστη δεν επηρεάζουν τους υπόλοιπους χρήστες, αλλά ούτε και το σύνολο του συστήματος • Μια συναλλαγή ενδέχεται να μην μπορεί να καταχωρηθεί λόγω της ποσότητας από gas που χρειάζεται • Μαζικές ενέργειες μπορούν να αναβληθούν αέναα εξαιτίας κακοηθών χρηστών 1. Αποφυγή χρήσης βρόχων επανάληψης σε ανεξέλεγκτου μήκους πίνακες 2. Αποφυγή μαζικών ενεργειών 3. Εκκίνηση διαδικασίας από τον εκάστοτε χρήστη
  • 10. ISSEL Intelligent Systems & Software Engineering Labgroup 10 Μεθοδολογία – Επίθεση εξουσιοδότησης Δεδομένα: • Η γλώσσα Solidity δίνει τη δυνατότητα λήψης της «ταυτότητας» του δράστη που εκτελεί την τρέχουσα ρουτίνα, αλλά και αυτού που εκκίνησε τη διαδικασία • Ο δράστης μπορεί να είναι είτε εξωτερικός λογαριασμός είτε λογαριασμός συμβολαίου Πρόβλημα: Λύση: εξουσιοδότηση αποκλειστικά και μόνο μέσω της «ταυτότητας» του τελευταίου χρήστη Βήματα: Αποτέλεσμα: εξασφαλίζεται ότι η εξουσιοδότηση γίνεται στον «πραγματικό» δράστη Η χρήση του δράστη που εκκίνησε τη διαδικασία ως «ταυτότητα» για την εξουσιοδότηση μιας ενέργειας μπορεί να προκαλέσει επιθέσεις τύπου man in the middle 1. Απαγόρευση χρήσης της μεταβλητής tx.origin σε θέματα εξουσιοδότησης 2. Αποκλειστική χρήση της μεταβλητής msg.sender σε θέματα εξουσιοδότησης
  • 11. ISSEL Intelligent Systems & Software Engineering Labgroup 11 Μεθοδολογία – Καλές πρακτικές • Έχει δηλώσεις περιορισμού σε όλες τις συναρτήσεις και τις μεταβλητές • Έχει μηχανισμούς απενεργοποίησης και ενεργοποίησης λειτουργιών • Πραγματοποιεί αποστολές ether μέσω της συνάρτησης transfer • Λαμβάνει υπόψη καταστάσεις υπερχείλισης (Overflow) ή ανεπάρκειας (Underflow) • Κάνει σωστή χρήση των μεταβλητών «χρόνου» • Έχει αυτοματοποιημένους ελέγχους (Unit Tests) με υψηλή κάλυψη • Έχει πλήρη τεκμηρίωση τόσο στον πηγαίο κώδικα όσο και σε μορφή εγγράφου ή ιστοσελίδας Ένα smart contract πρέπει να:
  • 12. ISSEL Intelligent Systems & Software Engineering Labgroup 12 Αποτελέσματα (1/6) 1. Τεκμηρίωση σε μορφή σχολίων 2. Checks-Effects-Interactions A. Checks B. Effects C. Interactions 3. Χρήση της συνάρτησης transfer Συνάρτηση επιστροφής χρημάτων
  • 13. ISSEL Intelligent Systems & Software Engineering Labgroup 13 Αποτελέσματα (2/6) Συνάρτηση εξαργύρωσης tokens 1. Pull Over Push
  • 14. ISSEL Intelligent Systems & Software Engineering Labgroup 14 Αποτελέσματα (3/6) Συνάρτηση μεταφοράς tokens Χρήση συναρτήσεων βιβλιοθήκης SafeMath για την αντιμετώπιση περιπτώσεων overflow και underflow
  • 15. ISSEL Intelligent Systems & Software Engineering Labgroup 15 Αποτελέσματα (4/6) Συνάρτηση ενεργοποίησης και απενεργοποίησης 1. Συνάρτηση ενεργοποίησης 2. Συνάρτηση απενεργοποίησης
  • 16. ISSEL Intelligent Systems & Software Engineering Labgroup 16 Αποτελέσματα (5/6) 1. Χρήση του timestamp αντί του block number 2. Χρήση του msg.sender αντί του tx.origin Τροποποιητές συναρτήσεων χρόνου Τροποποιητές συναρτήσεων εξουσιοδότησης
  • 17. ISSEL Intelligent Systems & Software Engineering Labgroup 17 Αποτελέσματα (6/6) Κάλυψη Unit Tests Τεκμηρίωση κώδικα
  • 18. ISSEL Intelligent Systems & Software Engineering Labgroup 18 Υποδομή Διεπαφή χρήστη Διακομιστής • Αλληλεπίδραση χρηστών με τα smart contracts • Παρακολούθηση των smart contracts • Παρουσίαση αναλυτικών δεδομένων και διαγραμμάτων Τεχνολογίες: • AngularJS: 1.6.5 • Typescript: 3.4.4 • Web3JS: 1.0.0-beta.37 • ChartJS: 2.8.0 • Παρακολούθηση της δραστηριότητας των smart contracts • Λεπτομερής καταγραφή των δεδομένων που διαχειρίζονται τα smart contracts • Διάθεση των δεδομένων στη διεπαφή για την κατασκευή διαγραμμάτων Τεχνολογίες: • NodeJS: 11.10.1 • ExpressJS: 4.17.1 • MongoDB: 3.4.21
  • 19. ISSEL Intelligent Systems & Software Engineering Labgroup 19 Διεπαφή χρήστη - Token
  • 20. ISSEL Intelligent Systems & Software Engineering Labgroup 20 Διεπαφή χρήστη - ICO
  • 21. ISSEL Intelligent Systems & Software Engineering Labgroup 21 Διεπαφή χρήστη - Διαγράμματα
  • 22. ISSEL Intelligent Systems & Software Engineering Labgroup 22 Συμπεράσματα • Η ανάπτυξη ασφαλών smart contracts είναι μια απαιτητική διαδικασία • Διαφέρει στη νοοτροπία από τη συμβατική παραγωγή λογισμικού • Χρειάζεται εξειδικευμένες γνώσεις σε διάφορους τομείς • Απαιτεί ιδιαίτερη προσοχή κατά τα στάδια της ανάλυσης ενός smart contract • Η κατανόηση των κυριότερων ευπαθειών ενός smart contract είναι απαραίτητη • Η εφαρμογή καλών πρακτικών κατά την ανάπτυξη είναι αναγκαία Διαδικασία ανάπτυξης smart contracts για μια διαδικασία ICO
  • 23. ISSEL Intelligent Systems & Software Engineering Labgroup 23 Μελλοντική εργασία Ο τομέας της ασφάλειας είναι ραγδαία εξελισσόμενος, ιδιαίτερα σε μια πλατφόρμα ηλικίας 5 ετών. Καθημερινά εντοπίζονται νέες ευπάθειες σε συστήματα που θεωρούνταν, μέχρι πρότερα, ασφαλή. Το δίκτυο του Ethereum αναβαθμίζεται ετησίως, προσθέτοντας νέα χαρακτηριστικά και δημιουργώντας καινούργιες απαιτήσεις ασφαλείας. Εμφανίζονται νέα πρότυπα σχεδίασης για την αντιμετώπιση προβλημάτων στα smart contracts.
  • 24. ISSEL Intelligent Systems & Software Engineering Labgroup 24 Ευχαριστίες Θα ήθελα να ευχαριστήσω τον Αναπληρωτή καθηγητή κ. Ανδρέα Συμεωνίδη για την εμπιστοσύνη που μου έδειξε με την αποδοχή της πρότασης για τη διπλωματική εργασία, καθώς και τη συμβολή του στην τελική μορφή αυτής Επίσης, θα ήθελα να ευχαριστήσω τον κ. Δημήτρη Φιλιππίδη ο οποίος πρότεινε τη βασική ιδέα της εργασίας Τέλος, θα ήθελα να ευχαριστήσω όλους εσάς που είστε σήμερα εδώ γι’ αυτήν την παρουσίαση
  • 25. ISSEL Intelligent Systems & Software Engineering Labgroup 25 Ερωτήσεις