Σχεδίαση & υλοποίηση ενός ασφαλούς συστήματος CI/CD βασιζόμενου σε δοχεία - Τριανταφυλλόπουλος, Λάμπρος; Triantafyllopoulos, Lampros (2024)
Στο σύγχρονο περιβάλλον ανάπτυξης εφαρμογών, με δεδομένο τον υψηλό ανταγωνισμό που υφίσταται ανάμεσα στους παρόχους εφαρμογών & ψηφιακών υπηρεσιών, έχει θεσπιστεί ως θεμελιώδης ανάγκη η ταχεία και αυτοματοποιημένη δημιουργία, παράδοση και εγκατάσταση κώδικα. Με τη σταδιακή εγκατάλειψη του μοντέλου καταρράκτη για την ανάπτυξη λογισμικού, και την εξάπλωση του ευέλικτου μοντέλου ανάπτυξης (agile software development model), η ανάγκη για συχνή και σταδιακή ενσωμάτωση αλλαγών στον κώδικα απαίτησε τη συσσωμάτωση δυο παραδοσιακά διαφορετικών χώρων της βιομηχανίας ανάπτυξης λογισμικού, αυτόν της ανάπτυξης κώδικα και αυτόν της λειτουργίας (operations) του κώδικα σε έναν ενιαίο, με τίτλο devops. Στον πυρήνα της λειτουργίας του devops βρίσκεται η έννοια των αγωγών (pipelines), μέσα από τους οποίους εκτελούνται οι κρίσιμες λειτουργίες της συνεχούς ενσωμάτωσης και συνεχούς παράδοσης (continuous integration & continuous delivery - CI/CD). Με αυτόν τον τρόπο, ο κώδικας αποθηκεύεται, ελέγχεται, δοκιμάζεται και τελικά διανέμεται στους καταναλωτές σε περιβάλλοντα παραγωγής. Γίνεται μεμιάς φανερό, ότι οποιαδήποτε επίθεση στους CI/CD αγωγούς, θέτει σε κίνδυνο όχι μόνο τους καταναλωτές του λογισμικού, αλλά και τις υποδομές πάνω από τις οποίες εκτελούνται οι αγωγοί. Στο πλαίσιο της παρούσας διπλωματικής εργασίας, θα γίνει μια βασική αναφορά στις τεχνολογίες που συνθέτουν το σύγχρονο περιβάλλον του κύκλου ζωής λογισμικού, θα αναλυθούν οι κίνδυνοι που ελλοχεύουν μέσα και έξω από τους αγωγούς, και τελικά θα προταθεί ένα σύστημα CI/CD βασισμένο σε δοχεία (containers), ικανό να προστατέψει τον κώδικα και τις υποδομές από επίδοξους εισβολείς.