Ο Κώστας Μπουκουβάλας, developer της ομάδας απόκτησε με επιτυχία πιστοποίηση DevSecOps από την Pentester Academy, μια από τις πιο γνωστές και παλιές εταιρίες στον χώρο της κυβερνοασφάλειας, και είμαστε εδώ να τον συγχαρούμε! Well done!   Για να δούμε όμως τι είναι αυτή η πιστοποίηση...

Εισαγωγή: DevOps και DevSecOps

Οποιαδήποτε συζήτηση για το DevSecOps αξίζει να αναφερθεί και στο DevOps. Πριν εμβαθύνουμε στην πορεία εκμάθησης του DevSecOps, ας συγκρίνουμε πρώτα το DevOps και το DevSecOps:

DevOps: Ένα πλαίσιο για αποτελεσματική ανάπτυξη λογισμικού

Τα διαφορετικά συστατικά του πλαισίου DevOps

Η Wikipedia εξηγεί καλύτερα το DevOps: Είναι «ένα σύνολο πρακτικών που συνδυάζει ανάπτυξη λογισμικού (Dev) και λειτουργίες πληροφορικής (Ops). Στόχος του είναι να συντομεύσει τον κύκλο ζωής της ανάπτυξης των συστημάτων και να παρέχει συνεχή παράδοση με υψηλή ποιότητα λογισμικού ». Σήμερα, το DevOps έχει γίνει μια κυρίαρχη προσέγγιση στην ανάπτυξη λογισμικού και προϊόντων. Επιτρέπει καλύτερη ορατότητα, συντονισμό και ταχύτερες επαναλήψεις σε σύγκριση με άλλες σχετικά παλαιότερες διαδικασίες όπως το SDLC ή το Agile, καθιστώντας το δημοφιλές. Αλλά υπάρχει ένα κρίσιμο ζήτημα με το DevOps: με αυτό το πλαίσιο, οι ομάδες ανάπτυξης λογισμικού δεν λαμβάνουν υπόψη την ασφάλεια. Μαζί με τα εμπορικά χρονοδιαγράμματα υψηλής πίεσης και την έλλειψη ευαισθητοποίησης σχετικά με την ασφάλεια, οι προγραμματιστές καταλήγουν στην κυκλοφορία κώδικα που περιέχει τρωτά σημεία. Και έτσι, το DevSecOps γεννήθηκε.

DevSecOps: Ενσωμάτωση της ασφάλειας με το DevOps

DevSecOps = DevOps + Ασφάλεια Το όνομα τα λέει όλα: Το DevSecOps ενσωματώνει την ασφάλεια (Sec) σε DevOps. Το DevSecOps είναι ένα σύνολο πρακτικών προσθήκης στοιχείων ασφαλείας σε κάθε βήμα της διαδικασίας DevOps. Στόχος του είναι να συντομεύσει τον κύκλο ζωής της ανάπτυξης συστημάτων και να παρέχει συνεχή παράδοση με υψηλή ποιότητα λογισμικού, φροντίζοντας παράλληλα την πτυχή της ασφάλειας. Αντί για μια ομάδα χειροκίνητων δοκιμών ασφαλείας, είναι πιο αποδοτικό και οικονομικά αποδοτικό να έχετε αυτοματοποιημένους ελέγχους ασφαλείας για να εντοπίσετε προβλήματα το συντομότερο δυνατό. Το DevSecOps είναι επομένως μια ιδιαίτερα απαιτητική και πολύτιμη δεξιότητα στη βιομηχανία.   Τα μαθήματα που χρειάστηκε ο Κώστας Μπουκουβάλας για να αποκτήσει την πιστοποίηση DevSecOps είναι τα εξής:

Προϋπόθεση DevSecOps: Γνώση της διαδικασίας DevOps

Όντας παρακλάδι, το DevSecOps απαιτεί να είστε εξοικειωμένοι με το DevOps.

1. Αυτόματη αναθεώρηση κώδικα

Η φάση Automated Code Review (ACR) σαρώνει τον κώδικα για γνωστά λάθη, ζητήματα ασφαλείας και τρωτά σημεία. Είναι πιο αποτελεσματικό και εύκολα επεκτάσιμο από το Manual Code Review που γίνεται για τον ίδιο σκοπό. Δεν πρέπει να συγχέεται με την πρακτική αξιολόγησης Peer Code που γίνεται για τη βελτίωση της ποιότητας του κώδικα και την εύρεση επιχειρηματικών/λογικών/λαθών ροής. Σε αυτήν την ενότητα, θα μάθετε πώς μπορείτε να βρείτε ζητήματα ασφαλείας στον κώδικα χρησιμοποιώντας τα εργαλεία που καλύπτονται.

Γιατί είναι σημαντικό στο DevSecOps;

Η αυτοματοποιημένη αναθεώρηση κώδικα εξαλείφει θέματα που σχετίζονται με την ασφάλεια και λάθη των προγραμματιστών στην ίδια τη φάση κώδικα. Οι προγραμματιστές μπορούν να καταργήσουν αυτά τα ζητήματα πριν ακόμη κατασκευαστεί και δοκιμαστεί το έργο. Το ACR θα κλιμακωθεί επίσης με την αύξηση της συχνότητας που βγαίνεη η εφαρμογή σε παραγωγή. Εργαλεία που κάλυψε το μάθημα
  • PMD
  • DevSkim
  • FindSecBugs

2. Σάρωση ευαίσθητων πληροφοριών

Η φάση Sensitive Information Scan (SAS) σαρώνει τον κώδικα για ευαίσθητες πληροφορίες (π.χ. κωδικοποιημένο κωδικό πρόσβασης, μάρκες, μυστικά κλειδιά κ.λπ.) προτού σπρώξετε τον κώδικα σε αποθετήρια κώδικα. Αυτό διασφαλίζει ότι ακόμη και αν ο κωδικός πέσει σε λάθος χέρια αύριο, οι ευαίσθητες πληροφορίες δεν θα εκτεθούν. Όπως και στην προηγούμενη ενότητα, θα μάθετε να βρίσκετε ζητήματα ασφαλείας χρησιμοποιώντας άλλα εργαλεία.

Γιατί είναι σημαντικό στο DevSecOps;

Η ευαίσθητη σάρωση πληροφοριών διασφαλίζει ότι ευαίσθητες πληροφορίες δεν εισέρχονται στον αγωγό DevSecOps και στο αποθετήριο κώδικα, μειώνοντας την επιφάνεια επίθεσης. Επιπλέον, καθώς εκτελείται από εργαλεία, μπορεί να αυτοματοποιηθεί για να εκτελείται κάθε φορά που ο χρήστης προσπαθεί να σπρώξει τον κώδικα στο σύστημα ελέγχου της έκδοσης. Εργαλεία που κάλυψε το μάθημα
  • TruffleHog
  • GitSecrets
  • Talisman

3. Στατική δοκιμή ασφάλειας εφαρμογών

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

Γιατί είναι σημαντικό στο DevSecOps;

Η φάση δοκιμής ασφάλειας στατικής εφαρμογής μπορεί να χρησιμοποιηθεί για τον εντοπισμό ζητημάτων ασφαλείας. Για παράδειγμα, η ανάλυση μολύνσεων μπορεί να προσδιορίσει τις μεταβλητές που μπορούν να χειριστούν την είσοδο του χρήστη και να ελέγξει εάν μπορεί να προκύψει ευπάθεια, όπως υπερχείλιση buffer. Εργαλεία που κάλυψε το μάθημα
  • Flawfinder
  • Graudit
  • Bandit
  • Spotbugs
  • SonarQube

4. Δοκιμή ασφάλειας δυναμικής εφαρμογής

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

Γιατί είναι σημαντικό στο DevSecOps;

Το Dynamic Application Security Testing μπορεί να ξεδιαλύνει ζητήματα ασφαλείας χρόνου εκτέλεσης πριν από την ανάπτυξη έργου/εφαρμογής (ή δοκιμαστική ανάπτυξη). Το DAST μπορεί να αυτοματοποιηθεί χρησιμοποιώντας εργαλεία και να προστεθεί στον αγωγό DevSecOps για συνεχή έλεγχο ασφαλείας. Σε αυτήν την ενότητα, θα πραγματοποιήσετε δυναμική ανάλυση σε παρεχόμενες εφαρμογές ιστού για ζητήματα. Καλυμμένα εργαλεία
  • OWASP ZAP
  • BDD Security
  • Arachini
  • Nikto
  • Radamsa
  • FuzzDB

5. Ανάλυση σύνθεσης λογισμικού

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

Γιατί είναι σημαντικό στο DevSecOps;

Είναι πολύ συνηθισμένο για τα έργα να χρησιμοποιούν βιβλιοθήκες ανοιχτού κώδικα τρίτων για να επεκτείνουν τις δυνατότητές τους. Ωστόσο, εάν η βιβλιοθήκη έχει πρόβλημα ασφαλείας ή ευπάθεια, μπορεί επίσης να επηρεάσει το έργο. Εκτελώντας ελέγχους κάθε φορά που εκτελείται ο αγωγός DevSecOps, ο κίνδυνος χρήσης ευάλωτων/ξεπερασμένων στοιχείων μειώνεται. Καλυμμένα εργαλεία
  • Retire.js
  • OSSAudit
  • OWASP

6. Διαχείριση ευπάθειας

Η διαχείριση ευπάθειας (VM) είναι η διαδικασία αναγνώρισης του αποθέματος, χρησιμοποιώντας εργαλεία για την εκτέλεση δοκιμών ασφαλείας στο έργο για τον εντοπισμό τρωτών σημείων, την καταλογογράφηση των ευπαθειών και στη συνέχεια την επιδιόρθωση/επιδιόρθωση αυτών. Είναι μια συνεχής διαδικασία και μπορεί να θεωρηθεί ως μέρος των συνεχών δοκιμών ασφαλείας.

Γιατί είναι σημαντικό στο DevSecOps;

Τα εργαλεία διαχείρισης ευπάθειας ενοποιούν τις αναφορές που δημιουργούνται από διαφορετικά εργαλεία σε έναν πίνακα ελέγχου και παρέχουν μια ολιστική εικόνα των απειλών/τρωτών σημείων. Τέτοια εργαλεία παρέχουν επίσης ενσωμάτωση με άλλα στοιχεία για να ειδοποιούν τα άτομα των σχετικών μελών της ομάδας να παρακολουθούν τα αναφερόμενα ζητήματα. Το τελικό αποτέλεσμα; Οι ευπάθειες μπορούν να εντοπιστούν και να επιλυθούν αποτελεσματικά. Καλυμμένα εργαλεία
  • ArcherySec
  • Defect Dojo

7. Συμμόρφωση ως Κώδικας

Η συμμόρφωση ως κώδικας (CAC) είναι μια προσέγγιση για την αυτοματοποίηση της εφαρμογής των κανονισμών συμμόρφωσης (IT), γράφοντας πολιτικές σε ένα αρχείο. Αυτές οι πολιτικές μπορούν στη συνέχεια να εφαρμοστούν ή να ελεγχθούν με αυτοματοποιημένο τρόπο. Εδώ, θα αναλύσετε τον κώδικα των παρεχόμενων εφαρμογών Ιστού για ζητήματα.

Γιατί είναι σημαντικό στο DevSecOps;

Η φάση CAC καθιστά τη συμμόρφωση μέρος του αγωγού DevSecOps και διασφαλίζει ότι σε κάθε έκδοση, ο διακομιστής δοκιμής τηρεί τις πολιτικές ασφαλείας που έχουν οριστεί για το έργο. Αυτό μειώνει την επιφάνεια επίθεσης και προφανώς βοηθά στο να γίνει έτοιμο για συμμόρφωση. Καλυμμένα εργαλεία
  • Inspec
  • ServerSpec
  • OpenSCAP
LV8-SIGNATURE-B