android - Google Play OpenSSL चेतावनी के कारण किस निर्भरता पर निर्भर करता है?



google-play-services android-security (1)

मैं वर्तमान में एक बड़ी विरासत परियोजना पर काम कर रहा हूं और OpenSSL भेद्यता मुद्दे को ठीक करने की कोशिश कर रहा हूं जैसा कि आपके एप्लिकेशन में ओपनएसएसएल कमजोरियों को कैसे संबोधित किया जाए

समस्या यह है कि बहुत सारी निर्भरताएं हैं, कुछ खुले स्रोत हैं (मैंने सभी को अपडेट किया है जो संगतता को नहीं तोड़ते हैं) ग्रैडल आयात के रूप में जोड़ा गया है, कुछ कस्टम / बंद स्रोत हैं जो कंपनी के भागीदारों और ठेकेदारों द्वारा प्रदान किए गए और संलग्न हैं। JAR के रूप में इस परियोजना के लिए।

क्या विशिष्ट पुस्तकालय को इंगित करने का कोई तरीका है जिसमें यह भेद्यता है? मैंने Google Play और OpenSSL चेतावनी संदेश में प्रदान की गई बैश स्क्रिप्ट का उपयोग किया और यह एक मूल निर्भरता (वास्तव में .so फ़ाइल) की ओर इशारा करता है। क्या वहां से वास्तविक निर्भरता को इंगित करने का कोई विकल्प है?


क्या वहां से वास्तविक निर्भरता को इंगित करने का कोई विकल्प है?

हां, लेकिन आपको आक्रामक ओपनएसएसएल संस्करण को जानना होगा और आपको grep आवश्यकता होगी। विंडोज find नहीं करेंगे।

सबसे पहले, आक्रामक ओपनएसएसएल संस्करण पर ध्यान दें। तर्क के लिए, OpenSSL 1.0.1h कारण कहें।

अगला, अपनी निर्भरता और उनके शीर्ष स्तर के फ़ोल्डरों की एक सूची इकट्ठा करें। तर्क के लिए, इसके $HOME/Desktop/aosp-app , $HOME/sdk-a , /usr/local/sdk-b और /opt/local/sdk-c

अंत में, शीर्ष स्तर निर्देशिकाओं के लिए:

grep -R '1.0.1h' "$HOME/Desktop/aosp-app"
grep -R '1.0.1h' "$HOME/sdk-a"
grep -R '1.0.1h' /usr/local/sdk-b
grep -R '1.0.1h' /opt/local/sdk-c

आपको grep -iR आवश्यकता नहीं है, जो एक असंवेदनशील ( -i ) पुनरावर्ती ( -R ) खोज है। आपको grep -IR की भी आवश्यकता नहीं है, जो कि एक पुनरावर्ती ( -R ) खोज है जो बाइनरी फ़ाइलों ( -I ) को छोड़ देता है।

यह सब काम करता है क्योंकि OpenSSL लाइब्रेरी स्ट्रिंग के रूप में डेटा संस्करण में अपना संस्करण एम्बेड करता है। आखिरकार, आप अपराधी पर मारेंगे, जो संभवतः एक एसडीके है जो एक साझा ऑब्जेक्ट के रूप में पूर्व-निर्मित आता है लेकिन इसमें ओपनएसएसएल एक स्थिर पुस्तकालय के रूप में शामिल है। एक एसडीके को अक्सर पहचाना जाता है, और यह cURL का उपयोग करता है जो एक स्थिर ओपनएसएसएल लाइब्रेरी के खिलाफ बनाया गया है।

यदि आपके पास JAR फाइलें हैं और उन पर संदेह है , तो आप एक त्वरित परीक्षण के रूप में निम्नलिखित कार्य कर सकते हैं:

find <dir> -name '*.jar' -exec grep -R '1.0.1h' {} \;

कमांड निर्देशिका <dir> और उसके उपनिर्देशिकाओं में दिखेगा। यह *.jar एक्सटेंशन के साथ फाइलों की खोज करेगा। जब यह एक मिल जाता है, यह स्ट्रिंग की तलाश में उस पर grep चलाएगा। find हर *.jar लिए इसे करेगा।





android-security