
गैर-डीकंपाइलिंग iOS/Android ऐप भेद्यता स्कैनर (DC25 डेमो लैब, CB17)
trueseeing iOS/Android ऐप्स के लिए एक तेज़, सटीक और लचीला भेद्यता स्कैनर है। हम Android के लिए Dalvik VM स्तर पर काम करते हैं - अर्थात हमें इस बात से कोई फर्क नहीं पड़ता कि लक्ष्य ऐप अस्पष्ट है या नहीं।
वर्तमान में हम यह कर सकते हैं:
नोट:
हम कंटेनर प्रदान करते हैं ताकि आप निम्नानुसार तुरंत उपयोग कर सकें; अब यह अनुशंसित तरीका भी है, और यदि आप Windows पर हैं तो चलाने का एकमात्र तरीका है:
$ docker run --rm -v $(pwd):/out -v ts2:/cache ghcr.io/alterakey/trueseeing
यदि आप स्टेटलेस रूप से चलाना चाहते हैं तो आप /cache पर वॉल्यूम माउंट करना छोड़ देते हैं (हालांकि दैनिक उपयोग के लिए अनुशंसित नहीं है; #254 भी देखें):
$ docker run --rm -v $(pwd):/out ghcr.io/alterakey/trueseeing
वैकल्पिक रूप से, आप हमारे पैकेज को uv के साथ निम्नानुसार स्थापित कर सकते हैं। विशेष रूप से uv tool install स्थापना का रूप एक्सटेंशन (नीचे देखें) के लिए उपयोगी हो सकता है, क्योंकि यह उन्हें सबसे अधिक स्वतंत्रता प्रदान करता है। बस याद रखें कि आपको JRE और Android SDK की आवश्यकता है (वैकल्पिक रूप से; उपकरणों के साथ छेड़छाड़ करने के लिए):
$ uvx trueseeing
$ uv tool install trueseeing
$ trueseeing
बेशक यदि आपको जरूरत हो तो आप हमेशा अच्छे पुराने pip का उपयोग कर सकते हैं:
$ pip install trueseeing
आप इंटरैक्टिव रूप से ऐप्स को स्कैन/विश्लेषण/पैच आदि कर सकते हैं - जो मैन्युअल विश्लेषण के लिए आदर्श विकल्प बनाता है:
$ trueseeing target.apk
[+] trueseeing x.y.z
ts[target.apk]> ?
...
ts[target.apk]> i # सामान्य जानकारी दिखाएं
...
ts[target.apk]> pf AndroidManifest.xml # मेनिफेस्ट फ़ाइल दिखाएं
...
ts[target.apk]> a # संसाधनों का भी विश्लेषण करें
...
ts[target.apk]> /s something # टेक्स्ट खोजें
...
ts[target.apk]> as # स्कैन करें
...
[+] done, found 6403 issues (174.94 sec.)
ts[target.apk]> gh report.html
हम प्रॉम्प्ट देने से पहले चलाने के लिए एक इनलाइन कमांड (-c) या स्क्रिप्ट फ़ाइल (-i) स्वीकार करते हैं, साथ ही प्रॉम्प्ट करने के बजाय तुरंत बाहर निकलना (-q; हमें इस मोड में tty की आवश्यकता नहीं है!)।
आप बैच स्कैन करने के लिए सुविधाओं का उपयोग कर सकते हैं, जैसे कि निष्कर्षों को सीधे stderr पर डंप करने के लिए:
$ trueseeing -eqc 'as' target.apk
HTML प्रारूप में रिपोर्ट फ़ाइल जनरेट करने के लिए:
$ trueseeing -eqc 'as;gh report.html' target.apk
JSON प्रारूप में रिपोर्ट फ़ाइल जनरेट करने के लिए:
$ trueseeing -eqc 'as;gj report.json' target.apk
stdout पर रिपोर्ट प्राप्त करने के लिए, अंतिम g* कमांड से फ़ाइल नाम हटाएं:
$ trueseeing -eqc 'as;gh' target.apk > report.html
$ trueseeing -eqc 'as;gj' target.apk > report.json
परंपरागत रूप से, आप निम्न कमांड लाइन के साथ ऐप्स को स्कैन कर सकते हैं ताकि stderr में निष्कर्ष सूचीबद्ध हों:
$ trueseeing --scan target.apk
HTML प्रारूप में रिपोर्ट जनरेट करने के लिए:
$ trueseeing --scan --scan-output report.html target.apk
$ trueseeing --scan --scan-report=html --scan-output report.html target.apk
JSON प्रारूप में रिपोर्ट जनरेट करने के लिए:
$ trueseeing --scan --scan-report=json --scan-output report.json target.apk
stdout पर रिपोर्ट प्राप्त करने के लिए, फ़ाइल नाम के रूप में '-' निर्दिष्ट करें:
$ trueseeing --scan --scan-output - target.apk > report.html
$ trueseeing --scan --scan-report=html --scan-output - target.apk > report.html
$ trueseeing --scan --scan-report=json --scan-output - target.apk > report.json
आप अपने स्वयं के कमांड और सिग्नेचर को एक्सटेंशन के रूप में लिख सकते हैं। एक्सटेंशन /ext (कंटेनर) या ~/.trueseeing2/extensions/ (uv/pip) के अंतर्गत रखे जाते हैं। वैकल्पिक रूप से आप अपने एक्सटेंशन को व्हील के रूप में वितरित कर सकते हैं। हम प्रकार की जानकारी प्रदान करते हैं ताकि आप न केवल zuban के साथ अपने एक्सटेंशन की प्रकार-जांच कर सकें बल्कि IDE से अच्छी सहायता भी प्राप्त कर सकें। विवरण के लिए विवरण अनुभाग देखें।
आप इसे निम्नानुसार बना सकते हैं:
$ docker build -t trueseeing https://github.com/alterakey/trueseeing.git#main
व्हील बनाने के लिए आप flit के साथ कर सकते हैं, निम्नानुसार:
$ flit build
इसे हैक करने के लिए, आपको एक उचित निर्माण वातावरण बनाने की आवश्यकता है। uv के साथ आप बस यह कर सकते हैं:
$ git clone https://github.com/alterakey/trueseeing.git wc
$ uv sync --locked --dev
$ (... हैक ...)
$ uv run trueseeing ... # चलाने के लिए
$ uv run zuban check trueseeing && uv run ruff trueseeing # मान्य करने के लिए
Success: no issues found in XX source files
$ uv run flit build # बनाने के लिए (wheel)
$ docker build -t trueseeing . # बनाने के लिए (container)
pip के साथ, एक बनाने के लिए, पहले एक venv सेट करें, उसमें flit और सत्यापन टूलचेन (zuban और ruff) स्थापित करें, और flit को निर्भरताएं खींचने दें। संक्षेप में, कुछ इस प्रकार करें:
$ git clone https://github.com/alterakey/trueseeing.git wc
$ python3 -m venv wc/.venv
$ source wc/.venv/bin/activate
(.venv) $ pip install flit zuban ruff
(.venv) $ flit install --deps=develop -s
(.venv) $ (... हैक ...)
(.venv) $ trueseeing ... # चलाने के लिए
(.venv) $ zuban check trueseeing && ruff check trueseeing # मान्य करने के लिए
Success: no issues found in XX source files
(.venv) $ flit build # बनाने के लिए (wheel)
(.venv) $ docker build -t trueseeing . # बनाने के लिए (container)
वर्तमान में हम निम्नलिखित प्रकार की भेद्यताओं का पता लगा सकते हैं, जो काफी हद तक OWASP Mobile Top 10 - 2016 में शामिल हैं:
अनुचित प्लेटफ़ॉर्म उपयोग (M1)
असुरक्षित डेटा (M2)
असुरक्षित संचार (M3)
अपर्याप्त क्रिप्टोग्राफी (M5)