OWASP API Security Top 10: 0xaa insufficient logging monitoring

# API10:2019 Insufficient Logging & Monitoring

| Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) |
| - | - | - |
| Εξαρτώνται από το API : Εκμεταλλευσιμότητα **2** | Επικράτηση (Prevalence) **3** : Ανιχνευσιμότητα **1** | Τεχνικές Επιπτώσεις **2** : Εξαρτώνται από την Επιχείρηση |
| Οι επιτιθέμενοι εκμεταλλεύονται την έλλειψη καταγραφής συμβάντων (logging) και παρακολούθησης (monitoring) για να επιτεθούν σε συστήματα χωρίς να γίνουν αντιληπτοί. | Χωρίς καταγραφή και παρακολούθηση ή με ανεπαρκή καταγραφή και παρακολούθηση, είναι σχεδόν αδύνατο να παρακολουθήσετε ύποπτες δραστηριότητες και να αντιδράσετε έγκαιρα. | Χωρίς ορατότητα σε συνεχείς κακόβουλες δραστηριότητες, οι εισβολείς έχουν άφθονο χρόνο για να υπονομεύσουν πλήρως τα συστήματα σας. |

## Πότε το API είναι ευάλωτο

Το API είναι ευάλωτο όταν:

* Δεν παράγει κανένα αρχείο καταγραφής συμβάντων, το επίπεδο καταγραφής δεν έχει ρυθμιστεί σωστά ή τα μηνύματα καταγραφής δεν περιλαμβάνουν αρκετές λεπτομέρειες.
* Η ακεραιότητα των μηνυμάτων καταγραφής δεν είναι εγγυημένη (π.χ. [Log Injection][1]).
* Τα αρχεία καταγραφής δεν παρακολουθούνται συνεχώς.
* Η υποδομή API δεν παρακολουθείται συνεχώς.

## Παραδείγματα από Σενάρια Επίθεσης

### Σενάριο Επίθεσης #1

Τα κλειδιά πρόσβασης ενός διαχειριστικού API διέρρευσαν σε ένα δημόσια προσβάσιμο χώρο αποθήκευσης κώδικα (αποθετήριο) (public repository).
Ο κάτοχος του αποθετηρίου ειδοποιήθηκε μέσω email σχετικά με την πιθανή διαρροή, 
αλλά χρειάστηκαν περισσότερες από 48 ώρες για να αντιμετωπιστεί το συμβάν και η έκθεση των κλειδιών πρόσβασης μπορεί να επέτρεψε την πρόσβαση σε ευαίσθητα δεδομένα. Λόγω ανεπαρκούς καταγραφής, η εταιρεία δεν είναι σε θέση να αξιολογήσει σε ποια δεδομένα είχαν πρόσβαση κακόβουλοι παράγοντες.

### Σενάριο Επίθεσης #2

Μια πλατφόρμα κοινής χρήσης βίντεο χτυπήθηκε από μια «μεγάλης κλίμακας» επίθεση τροφοδότησης διαπιστευτηρίων (credential stuffing). 
Παρά το γεγονός ότι αποτυχημένες προσπάθειες σύνδεσης καταγράφηκαν στα αρχεία καταγραφής συμβάντων, δεν στάλθηκαν ειδοποιήσεις ασφαλείας κατά τη διάρκεια του χρόνου της επίθεσης. Έπειτα από παράπονα χρηστών, τα αρχεία καταγραφής συμβάντων του API αναλύθηκαν και η επίθεση εντοπίστηκε.
Η εταιρεία αναγκάστηκε να αναφέρει το περιστατικό στις ρυθμιστικές αρχές και να κάνει μια δημόσια ανακοίνωση ζητώντας από τους χρήστες να επαναφέρουν τους κωδικούς πρόσβασής τους.

## Τρόπος Πρόληψης

* Καταγράψτε όλες τις αποτυχημένες προσπάθειες ελέγχου ταυτότητας, την άρνηση πρόσβασης και τα σφάλματα επικύρωσης εισαγωγής (input validation errors).
* Τα αρχεία καταγραφής πρέπει να συντάσσονται χρησιμοποιώντας μια μορφή κατάλληλη για αξιοποίηση από μια εφαρμογή διαχείρισης αρχείων καταγραφής συμβάντων (log management solution) και θα πρέπει να περιλαμβάνουν αρκετές λεπτομέρειες για τον εντοπισμό του κακόβουλου παράγοντα.
* Τα αρχεία καταγραφής θα πρέπει να αντιμετωπίζονται ως ευαίσθητα δεδομένα και η ακεραιότητά τους θα πρέπει να είναι εγγυημένη κατά την αποθήκευση και τη μεταφορά.
* Χρησιμοποιήστε ένα σύστημα παρακολούθησης (monitoring system) για συνεχή παρακολούθηση της υποδομής, του δικτύου και της λειτουργίας των APIs.
* Χρησιμοποιήστε ένα σύστημα διαχείρισης πληροφοριών ασφαλείας και συμβάντων (SIEM) για να συγκεντρώσετε και να διαχειριστείτε αρχεία καταγραφής από όλα τα στοιχεία των APIs και των κεντρικών υπολογιστών.
* Δημιουργήστε εξατομικευμένους πίνακες παρακολούθησης ειδοποιήσεων (dashboards). Οι πίνακες αυτοί θα διευκολύνουν τον γρηγορότερο εντοπισμό και την διαχείριση ύποπτων δραστηριοτήτων.

## Αναφορές (References)

### Αναφορές OWASP

* [OWASP Logging Cheat Sheet][2]
* [OWASP Proactive Controls: Implement Logging and Intrusion Detection][3]
* [OWASP Application Security Verification Standard: V7: Error Handling and
  Logging Verification Requirements][4]

### Εξωτερικές Αναφορές

* [CWE-223: Omission of Security-relevant Information][5]
* [CWE-778: Insufficient Logging][6]

[1]: https://www.owasp.org/index.php/Log_Injection
[2]: https://www.owasp.org/index.php/Logging_Cheat_Sheet
[3]: https://www.owasp.org/index.php/OWASP_Proactive_Controls
[4]: https://github.com/OWASP/ASVS/blob/master/4.0/en/0x15-V7-Error-Logging.md
[5]: https://cwe.mitre.org/data/definitions/223.html
[6]: https://cwe.mitre.org/data/definitions/778.html