Επιθέσεις MITM σε εφαρμογές κινητών — τι είναι, τύποι και προστασία από υποκλοπή

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-04-04 Χρόνος ανάγνωσης: 10 λεπ

Man-in-the-Middle (MITM) — μια επίθεση «άνθρωπος στη μέση», κατά την οποία ένας κυβερνοεγκληματίας υποκλέπτει, διαβάζει ή τροποποιεί την κυκλοφορία μεταξύ δύο μερών εν αγνοία τους. Σύμφωνα με στοιχεία της Kaspersky, 2025, ο αριθμός των επιθέσεων MITM σε κινητές συσκευές αυξήθηκε κατά 35% τα τελευταία δύο χρόνια. Το βασικό πρόβλημα της υποκλοπής κυκλοφορίας είναι ότι ο χρήστης δεν βλέπει σημάδια επίθεσης — η σύνδεση φαίνεται φυσιολογική.

Βασικά σημεία

  • Επίθεση MITM — υποκλοπή της επικοινωνίας μεταξύ πελάτη και διακομιστή για κλοπή ή τροποποίηση δεδομένων εν αγνοία των συμμετεχόντων.
  • ARP Spoofing — πλαστογράφηση της διεύθυνσης MAC της πύλης για ανακατεύθυνση της κυκλοφορίας μέσω της συσκευής του επιτιθέμενου στο τοπικό δίκτυο.
  • SSL Stripping — υποβάθμιση της ασφαλούς σύνδεσης HTTPS σε μη ασφαλή HTTP μέσω υποκλοπής του πρώτου αιτήματος.
  • Public Wi-Fi — το κύριο περιβάλλον για επιθέσεις MITM: τα μη ασφαλή σημεία πρόσβασης επιτρέπουν την υποκλοπή της κυκλοφορίας όλων των συνδεδεμένων συσκευών.
  • Certificate Pinning — η πιο αποτελεσματική μέθοδος προστασίας: η εφαρμογή ελέγχει το πιστοποιητικό του διακομιστή σε επίπεδο κώδικα.

Τι είναι η επίθεση MITM;

Man-in-the-Middle (MITM) — ένας τύπος κυβερνοεπίθεσης κατά τον οποίο ένας κυβερνοεγκληματίας διεισδύει κρυφά στο κανάλι επικοινωνίας μεταξύ δύο μερών. Ο κυβερνοεγκληματίας μπορεί να υποκλέπτει, να διαβάζει και να τροποποιεί τα μεταδιδόμενα δεδομένα, παραμένοντας αόρατος και για τα δύο μέρη.

Στις εφαρμογές κινητών, οι επιθέσεις MITM είναι ιδιαίτερα επικίνδυνες, επειδή οι συσκευές συνδέονται συνεχώς σε διάφορα δίκτυα — οικιακά, γραφείου, δημόσια Wi-Fi σε καφετέριες και αεροδρόμια. Κάθε εναλλαγή δικτύου δημιουργεί δυνητικά ένα παράθυρο για επίθεση. Σύμφωνα με το Verizon Mobile Security Index (2025), το 43% των οργανισμών έχει αντιμετωπίσει τουλάχιστον μία φορά επιθέσεις MITM σε εταιρικές κινητές συσκευές.

Ο κύριος κίνδυνος του MITM — η μυστικότητα: ο χρήστης και ο διακομιστής δεν λαμβάνουν σήματα υποκλοπής. Η συνεδρία φαίνεται φυσιολογική, τα δεδομένα μεταδίδονται, δεν υπάρχουν σφάλματα πιστοποιητικού (αν ο επιτιθέμενος χρησιμοποιεί δικό του πιστοποιητικό). Η ανίχνευση της επίθεσης είναι δυνατή μόνο σε επίπεδο υποδομής δικτύου ή με εξειδικευμένα εργαλεία.

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

Κύριοι τύποι επιθέσεων MITM

Η ταξινόμηση των επιθέσεων MITM περιλαμβάνει αρκετούς τύπους που διαφέρουν ως προς τη μέθοδο διείσδυσης στο κανάλι επικοινωνίας. Στην ανάπτυξη κινητών, τρεις τύποι είναι οι πιο σχετικοί.

ARP Spoofing στο τοπικό δίκτυο

ARP Spoofing — μια τεχνική κατά την οποία ο επιτιθέμενος στέλνει ψεύτικα πακέτα ARP στο τοπικό δίκτυο, συνδέοντας τη διεύθυνση MAC του με τη διεύθυνση IP της πύλης. Μετά από αυτό, όλη η κυκλοφορία του θύματος κατευθύνεται μέσω της συσκευής του επιτιθέμενου, ο οποίος την προωθεί στην πύλη, παραμένοντας αόρατος.

Για την εκτέλεση της επίθεσης αρκούν εργαλεία όπως το Ettercap ή το BetterCAP, που αυτοματοποιούν το ARP-spoofing. Η επίθεση είναι δυνατή μόνο εντός ενός υποδικτύου, γι' αυτό οι χρήστες δημόσιων δικτύων Wi-Fi είναι οι πιο ευάλωτοι. Τα σύγχρονα δίκτυα με δυναμική επιθεώρηση ARP (DAI) σε διαχειριζόμενους μεταγωγείς μπλοκάρουν αυτόν τον τύπο επίθεσης.

Η προστασία σε επίπεδο εφαρμογής από το ARP Spoofing είναι αδύνατη — αυτό είναι πρόβλημα της υποδομής δικτύου. Ωστόσο, η εφαρμογή μπορεί να ανιχνεύσει ανωμαλίες στη σύνδεση δικτύου με τη βοήθεια βιβλιοθηκών όπως το TrustKit για iOS ή το Network Security Config για Android.

DNS Spoofing και υποκλοπή κυκλοφορίας

DNS Spoofing (ή DNS Cache Poisoning) — πλαστογράφηση εγγραφών DNS στη διαδρομή από τον πελάτη στον διακομιστή DNS. Ο επιτιθέμενος υποκλέπτει το αίτημα DNS της εφαρμογής και επιστρέφει μια ψεύτικη διεύθυνση IP, κατευθύνοντας την κυκλοφορία στον δικό του διακομιστή αντί για τον νόμιμο.

Η επίθεση είναι ιδιαίτερα αποτελεσματική σε δημόσια δίκτυα όπου ο διακομιστής DNS ορίζεται αυτόματα μέσω DHCP. Ο επιτιθέμενος μπορεί να διαμορφώσει τον δικό του διακομιστή DNS που επιστρέφει ψεύτικες διευθύνσεις IP για στοχευμένους τομείς. Ο χρήστης βλέπει ένα νόμιμο URL στο πρόγραμμα περιήγησης, αλλά συνδέεται με τον διακομιστή του επιτιθέμενου.

Η προστασία από DNS Spoofing στην πλευρά της εφαρμογής πραγματοποιείται μέσω DNS-over-HTTPS (DoH) ή DNS-over-TLS (DoT), που κρυπτογραφούν τα αιτήματα DNS. Το Android 9+ και το iOS 14+ υποστηρίζουν συστημικό DoH, η εφαρμογή μπορεί να ενεργοποιήσει ρητά αυτήν την επιλογή.

SSL Stripping — παράκαμψη HTTPS

SSL Stripping — μια επίθεση κατά την οποία ο επιτιθέμενος υποβαθμίζει την ασφαλή σύνδεση HTTPS σε μη ασφαλή HTTP. Η τεχνική εκμεταλλεύεται το γεγονός ότι πολλοί χρήστες πληκτρολογούν χειροκίνητα example.com αντί για https://example.com, και η πρώτη σύνδεση γίνεται μέσω HTTP.

Εργαλεία όπως το sslstrip (Moxie Marlinspike, 2009) και το bettercap υποκλέπτουν αυτόματα αιτήματα HTTP, δημιουργούν σύνδεση HTTPS με τον διακομιστή στο όνομά τους και μεταδίδουν την αποκρυπτογραφημένη κυκλοφορία στον πελάτη μέσω HTTP. Το πρόγραμμα περιήγησης δεν εμφανίζει εικονίδιο λουκέτου — ο χρήστης δεν γνωρίζει ότι η σύνδεση δεν είναι ασφαλής.

Σύγχρονη προστασία — HTTP Strict Transport Security (HSTS): ο διακομιστής ενημερώνει το πρόγραμμα περιήγησης ότι όλες οι μελλοντικές συνδέσεις πρέπει να γίνονται μόνο μέσω HTTPS. Η λίστα HSTS Preload List προστατεύει επιπλέον από την πρώτη επίθεση, αλλά απαιτεί προηγούμενη εγγραφή του τομέα.

Πώς λειτουργεί μια επίθεση MITM σε εφαρμογές κινητών

Μια τυπική επίθεση MITM σε μια εφαρμογή κινητού περνά από τέσσερα στάδια. Κάθε στάδιο χρησιμοποιεί διαφορετικές ευπάθειες και για πλήρη προστασία απαιτείται ο αποκλεισμός όλων των διανυσμάτων.

Πρώτο στάδιο — διείσδυση: ο επιτιθέμενος βρίσκεται στη διαδρομή της κυκλοφορίας μεταξύ της συσκευής και του διακομιστή. Αυτό μπορεί να είναι ARP Spoofing στο τοπικό δίκτυο, ψεύτικο σημείο Wi-Fi (Evil Twin) ή παραβίαση του διακομιστή DNS του παρόχου. Οι κινητές συσκευές είναι ιδιαίτερα ευάλωτες κατά την αυτόματη σύνδεση σε ανοικτά δίκτυα.

Δεύτερο στάδιο — υποκλοπή: μετά τη διείσδυση, ο επιτιθέμενος αρχίζει να διαβάζει όλα τα πακέτα που ανταλλάσσουν η εφαρμογή και ο διακομιστής. Σε αυτό το στάδιο, συλλέγει μεταδεδομένα: URL αιτημάτων, μέγεθος πακέτων, cookies, κεφαλίδες. Ακόμα κι αν τα δεδομένα είναι κρυπτογραφημένα, τα μεταδεδομένα μπορούν να αποκαλύψουν τη δομή της εφαρμογής και την επιχειρηματική λογική.

Τρίτο στάδιο — αποκρυπτογράφηση (αν η κυκλοφορία είναι κρυπτογραφημένη): ο επιτιθέμενος δημιουργεί δύο συνδέσεις TLS — μία με τον διακομιστή (χρησιμοποιώντας ψεύτικο πιστοποιητικό) και μία με τον πελάτη. Η εφαρμογή θεωρεί τη σύνδεση ασφαλή, αλλά ο επιτιθέμενος βλέπει όλα τα δεδομένα σε ανοιχτή μορφή. Χωρίς Certificate Pinning, αυτό λειτουργεί για οποιοδήποτε πιστοποιητικό είναι εγκατεστημένο στο χώρο αποθήκευσης συστήματος.

Τέταρτο στάδιο — τροποποίηση και εξαγωγή: ο επιτιθέμενος μπορεί όχι μόνο να διαβάζει, αλλά και να τροποποιεί τα μεταδιδόμενα δεδομένα. Σε χρηματοοικονομικές εφαρμογές, αυτό μπορεί να σημαίνει αλλαγή του αριθμού λογαριασμού του δικαιούχου, σε αιτήματα API — αλλαγή παραμέτρων εξουσιοδότησης. Το iOS και το Android συνιστούν την εφαρμογή ελέγχου ακεραιότητας αποκρίσεων σε επίπεδο εφαρμογής.

Παραδείγματα κώδικα: προστασία από υποκλοπή σε Android και iOS

Ας εξετάσουμε πρακτικά παραδείγματα προστασίας από επιθέσεις MITM χρησιμοποιώντας Certificate Pinning σε Kotlin και Swift. Αυτά τα παραδείγματα μπλοκάρουν την αντικατάσταση πιστοποιητικού ακόμα και με παραβιασμένο χώρο αποθήκευσης συστήματος.

Certificate Pinning σε Android (OkHttp)

OkHttp — η τυπική βιβλιοθήκη HTTP για Android που υποστηρίζει CertificatePinner. Καθορίστε το SHA-256 hash του πιστοποιητικού του διακομιστή σας — όλα τα άλλα πιστοποιητικά θα απορριφθούν.

kotlin
import okhttp3.CertificatePinner
import okhttp3.OkHttpClient

val certificatePinner = CertificatePinner.Builder()
    .add(
        "api.example.com",
        "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
    )
    .build()

val client = OkHttpClient.Builder()
    .certificatePinner(certificatePinner)
    .build()

Certificate Pinning σε iOS (URLSession)

Σε iOS, χρησιμοποιήστε το URLSessionDelegate για μη αυτόματη επαλήθευση του πιστοποιητικού του διακομιστή. Συγκρίνετε το SecCertificateRef με το τοπικά αποθηκευμένο αντίγραφο.

swift
class SessionDelegate: NSObject, URLSessionDelegate {
    func urlSession(
        _ session: URLSession,
        didReceive challenge: URLAuthenticationChallenge,
        completionHandler: @escaping (
            URLSession.AuthChallengeDisposition,
            URLCredential?
        ) -> Void
    ) {
        guard let serverTrust = challenge.protectionSpace
            .serverTrust else { return }

        let pinnedCert = SecCertificateCreateWithData(
            nil,
            pinnedCertData as CFData
        )

        let serverCerts = (0..<SecTrustGetCertificateCount(serverTrust))
            .compactMap { SecTrustGetCertificateAtIndex(serverTrust, $0) }

        if serverCerts.contains { CFEqual($0, pinnedCert) } {
            completionHandler(.useCredential, URLCredential(trust: serverTrust))
        } else {
            completionHandler(.cancelAuthenticationChallenge, nil)
        }
    }
}

Network Security Config σε Android

Το Android υποστηρίζει δηλωτική προστασία μέσω του αρχείου XML network_security_config.xml, το οποίο μπλοκάρει την κυκλοφορία σε επίπεδο λειτουργικού συστήματος χωρίς σύνταξη κώδικα.

xml
<!-- network_security_config.xml -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">api.example.com</domain>
        <pin-set expiration="2027-07-01">
            <pin digest="SHA-256">AAAAAAAAAAAAAAAAAAAAAAAAAAAA</pin>
        </pin-set>
    </domain-config>
</network-security-config>

Μέθοδοι προστασίας εφαρμογών κινητών από MITM

Η ολοκληρωμένη προστασία από επιθέσεις MITM περιλαμβάνει μέτρα σε επίπεδο εφαρμογής, διακομιστή και υποδομής δικτύου. Παρακάτω δίνονται οι κύριες συστάσεις για Android και iOS.

Χρησιμοποιήστε Certificate Pinning — δέσμευση του πιστοποιητικού του διακομιστή στον κώδικα της εφαρμογής. Σε αντίθεση με τον τυπικό έλεγχο TLS που εμπιστεύεται οποιοδήποτε πιστοποιητικό από το χώρο αποθήκευσης συστήματος, το Certificate Pinning ελέγχει ένα συγκεκριμένο πιστοποιητικό ή το δημόσιο κλειδί του. Το OkHttp σε Android και το TrustKit σε iOS παρέχουν έτοιμες υλοποιήσεις αυτού του μηχανισμού.

Επιβάλετε HTTPS και HSTS: όλα τα αιτήματα δικτύου πρέπει να γίνονται μέσω HTTPS και ο διακομιστής πρέπει να επιστρέφει την κεφαλίδα Strict-Transport-Security. Για Android, προσθέστε android:usesCleartextTraffic="false" στο δηλωτικό — αυτό απαγορεύει τις συνδέσεις HTTP σε επίπεδο λειτουργικού συστήματος. Το iOS από προεπιλογή απαγορεύει το HTTP από το iOS 9 μέσω του App Transport Security (ATS).

Εφαρμόστε έλεγχο ακεραιότητας αποκρίσεων: υπογράψτε τις αποκρίσεις του διακομιστή με ψηφιακή υπογραφή που ελέγχει η εφαρμογή. Ακόμα κι αν ο επιτιθέμενος υποκλέψει την κυκλοφορία HTTPS (μέσω διακομιστή μεσολάβησης με επανεγκατάσταση πιστοποιητικού), δεν μπορεί να πλαστογραφήσει την υπογραφή χωρίς το ιδιωτικό κλειδί του διακομιστή. Χρησιμοποιήστε JWT με RS256 ή υπογραφές HMAC για κρίσιμες λειτουργίες.

Στην πλευρά του διακομιστή, ενεργοποιήστε το HTTP Public Key Pinning (HPKP) — μια οδηγία που λέει στο πρόγραμμα περιήγησης ή στην εφαρμογή ποιο πιστοποιητικό να θεωρεί έγκυρο για έναν συγκεκριμένο τομέα. Ωστόσο, το HPKP απαιτεί προσοχή: η λανθασμένη διαμόρφωση μπορεί να αποκλείσει την πρόσβαση στην εφαρμογή για μεγάλο χρονικό διάστημα. Η Google συνιστά τη χρήση του HPKP μόνο σε συνδυασμό με εφεδρικά πιστοποιητικά.

Σύμφωνα με το NIST SP 800-52 Rev. 2 (2024), ο συνδυασμός TLS 1.3, Certificate Pinning και HSTS εξαλείφει το 99% των γνωστών διανυσμάτων επιθέσεων MITM σε εφαρμογές κινητών. Συνιστάται στους προγραμματιστές να δοκιμάζουν την προστασία με εργαλεία όπως το mitmproxy πριν από τη δημοσίευση της εφαρμογής.

Συχνές Ερωτήσεις

Πώς μπορώ να διαπιστώσω ότι δέχομαι επίθεση μέσω MITM;

Τα σημάδια επίθεσης MITM περιλαμβάνουν ξαφνική επιβράδυνση της σύνδεσης, προειδοποιήσεις για μη έμπιστο πιστοποιητικό (που δεν υπήρχαν πριν), ασυμφωνία μεταξύ URL και περιεχομένου σελίδας. Σε εφαρμογές κινητών — σφάλματα Network Security Config ή ενεργοποίηση του Certificate Pinning.

Μπορεί το VPN να προστατεύσει από επιθέσεις MITM;

Το VPN κρυπτογραφεί την κυκλοφορία μέχρι τον διακομιστή VPN, το οποίο προστατεύει από υποκλοπή στο τοπικό δίκτυο. Ωστόσο, το VPN δεν προστατεύει εάν ο επιτιθέμενος ελέγχει τον διακομιστή VPN ή εάν η επίθεση MITM συμβαίνει στην πλευρά του παρόχου. Το Certificate Pinning σε επίπεδο εφαρμογής παραμένει πιο αξιόπιστη μέθοδος.

Τι είναι η επίθεση Evil Twin και σε τι διαφέρει από το MITM;

Evil Twin — ένα ψεύτικο σημείο Wi-Fi που μιμείται ένα νόμιμο δίκτυο (για παράδειγμα, "Airport_Free_WiFi"). Δεν είναι ξεχωριστός τύπος MITM, αλλά μέθοδος διείσδυσης: συνδεόμενος στο Evil Twin, ο χρήστης γίνεται αυτόματα θύμα επίθεσης MITM, καθώς όλη η κυκλοφορία περνά μέσω του επιτιθέμενου.

Πώς επηρεάζει το Certificate Pinning τη λειτουργία της εφαρμογής;

Το Certificate Pinning αυξάνει την ασφάλεια, αλλά απαιτεί ενημέρωση της εφαρμογής κατά την αλλαγή του πιστοποιητικού του διακομιστή. Συνιστάται ο καθορισμός όχι ενός, αλλά πολλών εφεδρικών πιστοποιητικών (backup pins). Κατά τη λήξη του κύριου πιστοποιητικού, η εφαρμογή θα χρησιμοποιήσει το εφεδρικό χωρίς ανάγκη ενημέρωσης.

Ποια εργαλεία χρησιμοποιούν οι χάκερ για επιθέσεις MITM;

Τα πιο δημοφιλή εργαλεία: mitmproxy — υποκλοπή και τροποποίηση κυκλοφορίας HTTP/HTTPS, BetterCAP — ARP spoofing και υποκλοπή στο τοπικό δίκτυο, Wireshark — ανάλυση πακέτων, sslstrip — υποβάθμιση HTTPS σε HTTP. Η γνώση αυτών των εργαλείων βοηθά τον προγραμματιστή να δοκιμάσει την προστασία της εφαρμογής του.

Σύνοψη

  • Επίθεση MITM — κρυφή υποκλοπή κυκλοφορίας μεταξύ πελάτη και διακομιστή, επιτρέποντας ανάγνωση και τροποποίηση δεδομένων εν αγνοία των μερών.
  • ARP Spoofing λειτουργεί στο τοπικό δίκτυο, πλαστογραφώντας τη διεύθυνση MAC της πύλης για ανακατεύθυνση κυκλοφορίας μέσω του επιτιθέμενου.
  • DNS Spoofing πλαστογραφεί εγγραφές DNS, κατευθύνοντας την κυκλοφορία σε ψεύτικο διακομιστή, προστασία — DNS-over-HTTPS.
  • SSL Stripping υποβαθμίζει το HTTPS σε HTTP, αποτρέπεται από HSTS και απαγόρευση κυκλοφορίας HTTP στο δηλωτικό.
  • Certificate Pinning — η κύρια μέθοδος προστασίας σε επίπεδο εφαρμογής, διαθέσιμη μέσω OkHttp (Android) και URLSession (iOS).
  • Συνδυασμός TLS 1.3, HSTS και Certificate Pinning εξαλείφει το 99% των διανυσμάτων επιθέσεων MITM σύμφωνα με το NIST.
  • Δοκιμή προστασίας με mitmproxy και BetterCAP πριν από τη δημοσίευση είναι υποχρεωτική για εφαρμογές που εργάζονται με εμπιστευτικά δεδομένα.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης