Έλεγχος κώδικα και αρχιτεκτονικής

Ανεξάρτητος έλεγχος κώδικα και αρχιτεκτονικής.

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

Εύρος ελέγχου

Τι καλύπτει ο έλεγχος και τι όχι.

Τέσσερις περιοχές, η καθεμία με καθορισμένο σύνολο ελέγχων. Είμαστε ακριβείς ως προς το εύρος, ώστε να γνωρίζετε τι σας λέει η αναφορά και τι όχι.

01

Αρχιτεκτονική

  • Όρια modules και υπηρεσιών, σύζευξη (coupling) και εξαρτήσεις
  • Μοντέλο δεδομένων, σχεδιασμός σχήματος και δεδομένα κοινά μεταξύ components
  • Σχεδιασμός API και συμβόλαια (contracts) μεταξύ υπηρεσιών
  • Μοτίβα ερωτημάτων στη βάση δεδομένων και σημεία με προβλήματα απόδοσης
  • Όρια κλιμάκωσης και συμβατότητα με τις μη λειτουργικές απαιτήσεις σας
02

Αξιοπιστία

  • Διαχείριση σφαλμάτων, επαναλήψεις (retries) και χρονικά όρια (timeouts)
  • Idempotency σε jobs, μηνύματα και πληρωμές
  • Τρόποι αστοχίας των εξωτερικών εξαρτήσεων
  • Συναλλαγές (transactions) και συνέπεια δεδομένων
  • Deployment, παραμετροποίηση, rollback και logging
03

Συντηρησιμότητα

  • Code smells, επαναλαμβανόμενος κώδικας και σημεία υψηλής πολυπλοκότητας
  • Δομή, ονοματοδοσία και αναγνωσιμότητα
  • Κάλυψη των κρίσιμων διαδρομών από tests
  • Παρωχημένες εξαρτήσεις και frameworks
  • Τεχνικό χρέος, ιεραρχημένο με βάση το κόστος αλλαγής
04

Έλεγχοι ασφαλείας

  • Συνήθεις κατηγορίες ευπαθειών (OWASP Top 10)
  • Λογική αυθεντικοποίησης, εξουσιοδότησης και ελέγχου πρόσβασης
  • Secrets σε κώδικα, παραμετροποίηση και ιστορικό git
  • Εξαρτήσεις με γνωστές ευπάθειες
  • Διαχείριση σφαλμάτων και καταγραφή ευαίσθητων δεδομένων σε logs

Αυτοματοποιημένα εργαλεία (στατική ανάλυση, σάρωση για secrets και εξαρτήσεις) και χειροκίνητος έλεγχος των κρίσιμων σημείων. Οι καθορισμένοι έλεγχοι ασφαλείας γίνονται βάσει λίστας ελέγχου OWASP ASVS.

Δεν περιλαμβάνονται

  • Δοκιμές διείσδυσης (penetration testing)
  • Επίσημα audits ασφαλείας ή πιστοποίηση
  • Αξιολογήσεις συμμόρφωσης (ISO 27001, SOC 2, PCI DSS, NIS2, GDPR)
  • Έλεγχος υποδομής και παραμετροποίησης cloud, εκτός αν συμφωνηθεί στο εύρος
  • Load testing ή δοκιμές σε συστήματα σε λειτουργία
  • Έλεγχος UI, UX και προσβασιμότητας
  • Υλοποίηση των διορθώσεων (διαθέσιμη ως επόμενη εργασία)
  • Οποιαδήποτε εγγύηση ότι ένα σύστημα είναι απαλλαγμένο από σφάλματα ή ευπάθειες

Αν χρειάζεστε δοκιμή διείσδυσης (penetration test), audit ή αξιολόγηση συμμόρφωσης, μπορούμε να σας συστήσουμε κάποιον ειδικό.

Διαδικασία

Πώς γίνεται ένας έλεγχος κώδικα (code review): τρία βήματα.

ΒΗΜΑ 01

Υπογραφή NDA

Ο πηγαίος κώδικας και η τεκμηρίωση παραμένουν εμπιστευτικά. Η πρόσβαση είναι μόνο για ανάγνωση.

ΒΗΜΑ 02

Στατική ανάλυση και χειροκίνητος έλεγχος

Τα αυτοματοποιημένα εργαλεία εντοπίζουν τα προφανή. Ο χειροκίνητος έλεγχος εντοπίζει όσα έχουν πραγματική σημασία. Μια προαιρετική συνέντευξη με την ομάδα προσθέτει πλαίσιο.

ΒΗΜΑ 03

Αναφορά με ιεράρχηση ευρημάτων

Ευρήματα κατηγοριοποιημένα ως υψηλού, μεσαίου και χαμηλού κινδύνου, το καθένα με συγκεκριμένη διόρθωση.

Παραδοτέο

Τι λαμβάνετε: αναφορά με ιεράρχηση ευρημάτων.

Κάθε εύρημα έχει επίπεδο κινδύνου, θέση στον κώδικα και συγκεκριμένη σύσταση.

Το δείγμα περιγράφει ένα φανταστικό σύστημα και δείχνει μόνο τη μορφή της αναφοράς.

Χρόνος και αμοιβή

Συνήθως 3 έως 7 εργάσιμες ημέρες.

Το εύρος και η αμοιβή ορίζονται μετά από μια σύντομη ματιά στο repository: μέγεθος, πολυπλοκότητα και εξαρτήσεις.

Καθορισμός εύρουςΣύντομη κλήση και μια πρώτη ματιά στο repository. Λαμβάνετε πρόταση με σταθερή αμοιβή.
ΔιάρκειαΟι περισσότεροι έλεγχοι διαρκούν 3 έως 7 εργάσιμες ημέρες. Για μεγαλύτερα συστήματα το εύρος ορίζεται ξεχωριστά.
Τι χρειαζόμαστεΠηγαίος κώδικας, τεκμηρίωση (απαιτήσεις, epics), πρόσβαση στο git repository
Τι παραδίδουμεΑναφορά στα αγγλικά, με ιεράρχηση ευρημάτων: υψηλός / μεσαίος / χαμηλός κίνδυνος, με συγκεκριμένες διορθώσεις, και κλήση παρουσίασης των ευρημάτων
ΣυνέχειαΠροαιρετική. Υλοποίηση των διορθώσεων ή συνεχής τεχνική καθοδήγηση

Ερωτήσεις

Ερωτήσεις για τον έλεγχο κώδικα.

Τι χρειάζεστε από εμάς;

Πρόσβαση μόνο για ανάγνωση στο repository ή ένα αρχείο με τον πηγαίο κώδικα, καθώς και όποια τεκμηρίωση διαθέτετε: λειτουργικές και μη λειτουργικές απαιτήσεις, epics, σημειώσεις αρχιτεκτονικής. Αν η τεκμηρίωση είναι λίγη, δεν υπάρχει πρόβλημα. Δουλεύουμε με ό,τι υπάρχει.

Ο κώδικάς μας παραμένει εμπιστευτικός;

Ναι. Υπογράφουμε NDA πριν λάβουμε οτιδήποτε. Ο κώδικας και τα έγγραφα χρησιμοποιούνται μόνο για τον έλεγχο.

Πρόκειται για audit ασφαλείας ή δοκιμή διείσδυσης (penetration test);

Όχι. Ο έλεγχος περιλαμβάνει καθορισμένους ελέγχους ασφαλείας για συνήθεις κατηγορίες ευπαθειών, αλλά δεν είναι δοκιμή διείσδυσης, επίσημο audit ή αξιολόγηση συμμόρφωσης. Αν χρειάζεστε κάτι από αυτά, μπορούμε να σας συστήσουμε κάποιον ειδικό.

Κάνετε αλλαγές στον κώδικά μας;

Όχι. Ο έλεγχος καταλήγει σε μια αναφορά. Οι διορθώσεις μπορούν να ακολουθήσουν ως ξεχωριστή εργασία, αν θέλετε να τις υλοποιήσουμε εμείς.

Ποιες γλώσσες και τεχνολογίες ελέγχετε;

Έχουμε δουλέψει εκτενώς με Java (Spring Boot, Java EE), C# (.NET Core), Python, PHP και React, με PostgreSQL, Oracle, MongoDB, Redis και RabbitMQ, καθώς και με εργαλεία πλατφόρμας όπως Airflow, Superset και Keycloak. Αν χρησιμοποιείτε άλλες τεχνολογίες, πείτε μας και θα σας πούμε αν είμαστε οι κατάλληλοι για τον έλεγχο.

Μπορείτε να μιλήσετε με τους προγραμματιστές μας;

Ναι. Μια σύντομη συνέντευξη με την ομάδα είναι προαιρετική και συχνά βοηθά να κατανοήσουμε το πλαίσιο παλαιότερων αποφάσεων.

Πώς διαμορφώνεται το κόστος;

Με σταθερή αμοιβή, που συμφωνείται πριν ξεκινήσει η εργασία. Την ορίζουμε μετά από μια σύντομη ματιά στο repository: μέγεθος, πολυπλοκότητα και εξαρτήσεις.

Θέλετε να ορίσουμε το εύρος ενός ελέγχου;

Στείλτε μας μια σύντομη περιγραφή του συστήματος και των προβληματισμών σας. Απαντάμε εντός μίας εργάσιμης ημέρας.