
EagleEyes Lite एंड्रॉइड एप्लिकेशन में अनुचित प्रमाणपत्र श्रृंखला सत्यापन
EagleEyes Lite (संस्करण 2.0.0) HTTPS संचार के दौरान SSL/TLS सर्वर प्रमाणपत्रों का सही ढंग से सत्यापन करने में विफल रहता है।
यह अनुप्रयोग push.lite.avtech.com.MySSLSocketFactoryNew.checkServerTrusted() में एक कस्टम X509TrustManager लागू करता है जो केवल प्रमाणपत्र की समाप्ति की जाँच करता है और पूर्ण प्रमाणपत्र श्रृंखला सत्यापन को छोड़ देता है।
परिणामस्वरूप, हमलावर स्व-हस्ताक्षरित या दुर्भावनापूर्ण प्रमाणपत्रों का उपयोग करके MITM हमले करने के लिए इस कमजोरी का फायदा उठा सकते हैं, जिससे संवेदनशील निगरानी डेटा का अवरोधन और हेरफेर हो सकता है।
कस्टम X509TrustManager के माध्यम से, अनुप्रयोग केवल प्रमाणपत्र की समाप्ति तिथि की जाँच करता है और यह सत्यापित नहीं करता कि प्रमाणपत्र श्रृंखला ठीक से विश्वसनीय है।
@Override // javax.net.ssl.X509TrustManager
public void checkServerTrusted(X509Certificate[] x509CertificateArr, String str) throws CertificateException {
try {
x509CertificateArr[0].checkValidity();
} catch (Exception unused) {
throw new CertificateException("Certificate not valid or trusted.");
}
}
कस्टम X509TrustManager के माध्यम से, अनुप्रयोग केवल प्रमाणपत्र की समाप्ति तिथि की जाँच करता है और यह सत्यापित नहीं करता कि प्रमाणपत्र श्रृंखला ठीक से विश्वसनीय है।
यह एक MITM हमलावर को अनुप्रयोग और उसके बैकएंड सर्वर के बीच संवेदनशील संचार को आसानी से बाधित या संशोधित करने में सक्षम बनाता है।
अनुप्रयोग को कस्टम X509TrustManager को डिफ़ॉल्ट सिस्टम कार्यान्वयन से बदलना चाहिए जो पूर्ण प्रमाणपत्र श्रृंखला को मान्य करता है। बेमेल या अविश्वसनीय प्रमाणपत्रों को स्वीकार करने से रोकने के लिए उचित होस्टनाम सत्यापन लागू किया जाना चाहिए।
पुराने Android संस्करणों के लिए असुरक्षित फॉलबैक तर्क को हटा दिया जाना चाहिए या समकक्ष सुरक्षा जाँचों के साथ अद्यतन किया जाना चाहिए ताकि लगातार TLS सत्यापन सुनिश्चित हो सके।