हम समझते हैं कि बर्गर किंग एप्लिकेशन क्या रिकॉर्ड करता है और क्या नहीं


यह लेख स्मार्ट स्क्रीन से खराब बर्गर किंग वीडियो कैसे रिकॉर्ड करता है, इस पर फेनिकामी के लेख की प्रतिक्रिया है। मूल लेख में दावा किया गया है कि इस तरह से बर्गर किंग इनपुट कार्ड्स के बारे में जानकारी हासिल कर सकता है, जिससे उनमें समझौता हो सकता है। मैं यह पता लगाने की कोशिश करूंगा कि क्या वास्तव में ऐसा है।
टिप्पणियों में पोस्ट किए गए एक छोटे से निर्देश की सहायता से , आप स्वतंत्र रूप से उस वीडियो को प्राप्त कर सकते हैं जिसे ऐपसी भेजता है। और सुनिश्चित करें कि कौन सा डेटा पुनर्प्राप्त है और कौन सा नहीं है।

9 जुलाई, 2018 की अपडेट तिथि के साथ एक एंड्रॉइड ऐप संस्करण 2.2.2 ने मेरे विश्लेषण को रेखांकित किया। अन्य प्लेटफार्मों पर और आवेदन के विभिन्न संस्करणों में परिणाम इस लेख में दिए गए से भिन्न हो सकते हैं।

एप्सी की शुरुआत


ऐप्सी एक एनालिटिक्स सिस्टम है जो क्लाइंट एप्लिकेशन के साथ उपयोगकर्ता के अनुभव को बेहतर बनाने के लिए उपयोग किया जाता है। यह स्क्रीन और आपके कार्यों को रिकॉर्ड करता है जब आप एप्लिकेशन में होते हैं। सामान्य तौर पर, इसमें कुछ भी गलत नहीं है; यांडेक्स की वेबविज़ोर तकनीक वेब पर व्यापक रूप से फैली हुई है, जिसका उद्देश्य एक ही है।

अपने काम के प्रारंभिक चरण में, एप्सी सर्वर से एक विशिष्ट एप्लिकेशन के लिए कॉन्फ़िगरेशन का अनुरोध करता है, यह अनुरोध था कि मूल लेख में पकड़ा गया लेखक, मेरे मामले में उत्तर कुछ इस तरह से देखा गया था:

{ "AutoDetectScreens": true, "AutoHideWebComponents": true, "ClientId": "5b47182e7b2f3f1429341f73", "ClientLogsUploadPolicy": 2, "ConfigHttpTimeoutInMilliseconds": 5000, "DetectActions": true, "DetectCrashes": true, "DetectGestures": true, "DetectMenus": true, "DetectPopups": true, "HideInput": true, "HideSensitiveViews": true, "MaxEventProperties": 5001, "MaxVideoLength": 0, "OfflineConfigurationPolicy": 1, "RecordMetadata": true, "RecordVideo": true, "SensitiveMaskingPerWindow": true, "SessionId": "5b4718ec470302299bdcc04d", "TrackedOfflineSessions": {}, "UploadAppIcon": false, "UploadBenchmarks": false, "UploadTouchEvents": true, "UploadVideoOnCrash": true, "UseWebViewSnapshotFullscreen": false, "VideoBitrate": 56, "VideoFPS": 3, "VideoHeight": 320, "VideoWidth": 160 } 

आप देख सकते हैं कि HideInput , HideSensitiveViews पैरामीटर सही हैं, जिससे वीडियो में महत्वपूर्ण जानकारी छिपी हुई है। सवाल तुरंत उठता है कि सूचना का महत्व कैसे निर्धारित किया जाता है, एक उत्तर के लिए हम अप्सी प्रलेखन की ओर मुड़ते हैं । संक्षेप में, डिफ़ॉल्ट रूप से, डेटा दर्ज करने के सभी क्षेत्र छिपे हुए हैं, इसके अलावा, आप अन्य फ़ील्ड्स या इंटरफ़ेस के कुछ हिस्सों के लिए छिपा सकते हैं।

हम वीडियो रिकॉर्डिंग की गुणवत्ता पर भी ध्यान देते हैं, मेरे मामले में यह 320 के 160 पिक्सेल के संकल्प के साथ तीन फ्रेम प्रति सेकंड की आवृत्ति के साथ वीडियो था।

Appsee द्वारा एकत्र वास्तविक डेटा


मैंने यह जांचने का निर्णय लिया कि ऐपसी सर्वर पर वास्तव में क्या डेटा भेजा गया है, इसके लिए मैंने बर्प सूट से प्रॉक्सी का उपयोग किया। सबसे पहले, एनालिटिक्स सिस्टम एप्लिकेशन के अंदर उपयोगकर्ता क्रियाओं के साथ फाइल को स्थानांतरित करता है, जिसमें उपयोगकर्ता क्लिक के निर्देशांक सहित कीस्ट्रोक्स रिकॉर्ड नहीं किए जाते हैं।

Appsee द्वारा एकत्रित डेटा, उपयोगकर्ता की कार्रवाई
 {"InitialOrientation":1,"InitialAppFrame":[0,0,1080,1776],"Crashed":false,"Duration":143361,"PreSessionDuration":2360,"VideoRecorded":true,"CustomEvents":[{"n":"open_screen","t":9688,"p":{"authorized":"no","screen":"sms","source":"auth_screen1","device_id":"9c843736-8da0-4832-ac9f-de83f5fe889b"}},{"n":"popup_screen","t":38560,"p":{"screen":"PromoGridFragment","device_id":"9c843736-8da0-4832-ac9f-de83f5fe889b","user_name":"","popup":"select_restaurant","authorized":"yes","user_id":258504}},{"n":"open_screen","t":38727,"p":{"screen":"coupons_public","device_id":"9c843736-8da0-4832-ac9f-de83f5fe889b","user_name":"","authorized":"yes","user_id":258504}},{"n":"open_screen","t":44781,"p":{"screen":"my_orders","device_id":"9c843736-8da0-4832-ac9f-de83f5fe889b","user_name":"","authorized":"yes","user_id":258504}},{"n":"open_screen","t":48549,"p":{"screen":"public_coupon_details","device_id":"9c843736-8da0-4832-ac9f-de83f5fe889b","user_name":"","coupon_name":"2  ","authorized":"yes","user_id":258504}},{"n":"open_screen","t":57971,"p":{"current_restaurant_name":"0632-, ,   32,    4 ","screen":"cart","device_id":"9c843736-8da0-4832-ac9f-de83f5fe889b","user_name":"","user_id":258504,"authorized":"yes","current_paying_method":"none"}},{"n":"open_screen","t":60413,"p":{"screen":"bank_card","device_id":"9c843736-8da0-4832-ac9f-de83f5fe889b","user_name":"","authorized":"yes","user_id":258504}}],"Screens":[{"n":"AuthActivity","a":true,"p":0,"s":0},{"n":"MainActivity","a":true,"p":0,"s":36819},{"n":"CouponDetailActivity","a":true,"p":0,"s":48749},{"n":"CouponSelectGoodsActivity","a":true,"p":0,"s":50593},{"n":"MainActivity","a":true,"p":0,"s":56982},{"n":"BasketActivity","a":true,"p":0,"s":58115},{"n":"AddCardActivity","a":true,"p":0,"s":60672}],"Popups":[],"Gestures":[{"t":0,"r":1,"s":2274,"e":2332,"g":[2],"b":{"x":0,"y":1011,"w":1080,"h":144}},{"t":0,"r":1,"s":43150,"e":43208,"g":[3],"b":{"x":624,"y":1437,"w":390,"h":102}},{"t":0,"r":1,"s":44717,"e":44720,"g":[4],"b":{"x":216,"y":1608,"w":216,"h":168}},{"t":0,"r":1,"s":50163,"e":50213,"g":[5],"b":{"x":0,"y":1584,"w":1080,"h":192}},{"t":0,"r":1,"s":54105,"e":54135,"g":[6],"b":{"x":540,"y":561,"w":540,"h":636}},{"t":0,"r":1,"s":55250,"e":55291,"g":[7],"b":{"x":540,"y":561,"w":540,"h":636}},{"t":0,"r":1,"s":56430,"e":56480,"g":[8],"b":{"x":0,"y":1584,"w":1080,"h":192}},{"t":4,"r":1,"s":59230,"e":59354,"g":[9]},{"t":0,"r":1,"s":60368,"e":60409,"g":[10],"b":{"x":0,"y":207,"w":1080,"h":1569}},{"t":0,"r":1,"s":61430,"e":61488,"g":[11],"b":{"x":0,"y":207,"w":1080,"h":1569}},{"t":0,"r":1,"s":62273,"e":62356,"g":[12],"b":{"x":0,"y":207,"w":1080,"h":1569}},{"t":0,"r":1,"s":62686,"e":62744,"g":[13],"b":{"x":0,"y":207,"w":1080,"h":1569}},{"t":0,"r":1,"s":70657,"e":70698,"g":[15],"b":{"x":0,"y":207,"w":1080,"h":954}},{"t":0,"r":1,"s":72611,"e":72660,"g":[16],"b":{"x":0,"y":207,"w":1080,"h":954}},{"t":0,"r":1,"s":73344,"e":73394,"g":[17],"b":{"x":120,"y":178,"w":98,"h":862}},{"t":0,"r":1,"s":73757,"e":73825,"g":[18],"b":{"x":0,"y":207,"w":1080,"h":1569}},{"t":0,"r":1,"s":74230,"e":74287,"g":[19],"b":{"x":0,"y":207,"w":1080,"h":1569}},{"t":0,"r":1,"s":74904,"e":74945,"g":[20],"b":{"x":334,"y":178,"w":148,"h":895}},{"t":0,"r":1,"s":75663,"e":75729,"g":[21],"b":{"x":0,"y":207,"w":1080,"h":1569}},{"t":0,"r":1,"s":76346,"e":76386,"g":[22],"b":{"x":334,"y":178,"w":148,"h":895}}],"Actions":[{"t":5,"s":380,"i":"1"},{"t":0,"s":2332,"i":"1","p":"","id":"2131361874","iu":1,"b":{"x":0,"y":1011,"w":1080,"h":144}},{"t":8,"s":9736},{"t":7,"s":9745,"p":"false"},{"t":5,"s":32117,"i":"1"},{"t":8,"s":33907},{"t":5,"s":33910,"i":"1"},{"t":0,"s":44720,"i":"5","p":" ","id":"2131361823","iu":1,"b":{"x":216,"y":1608,"w":216,"h":168}},{"t":4,"s":62744,"i":"1"},{"t":7,"s":62746,"p":"false"},{"t":5,"s":63425,"i":"1"},{"t":4,"s":70698,"i":"2"},{"t":5,"s":71401,"i":"1"},{"t":1,"s":73394,"i":"1","p":"0.7"},{"t":8,"s":73877},{"t":1,"s":74945,"i":"1","p":"0.6"},{"t":1,"s":76386,"i":"1","p":"0.5"}],"OrientationEvents":[],"AppFrameEvents":[],"ThirdPartyIds":[],"ANRs":[],"AppUserId":"258504","TouchEvents":[{"g":2,"e":0,"x":942,"y":1059,"t":2274,"k":1},{"g":2,"e":1,"x":942,"y":1059,"t":2332,"k":1},{"g":3,"e":0,"x":872,"y":1510,"t":43150},{"g":3,"e":1,"x":872,"y":1510,"t":43208},{"g":4,"e":0,"x":360,"y":1681,"t":44717},{"g":4,"e":1,"x":360,"y":1681,"t":44720},{"g":5,"e":0,"x":885,"y":1652,"t":50163},{"g":5,"e":1,"x":885,"y":1652,"t":50213},{"g":6,"e":0,"x":690,"y":656,"t":54105},{"g":6,"e":1,"x":690,"y":656,"t":54135},{"g":7,"e":0,"x":660,"y":685,"t":55250},{"g":7,"e":1,"x":660,"y":685,"t":55291},{"g":8,"e":0,"x":813,"y":1719,"t":56430},{"g":8,"e":1,"x":813,"y":1719,"t":56480},{"g":9,"e":0,"x":741,"y":1485,"t":59230},{"g":9,"e":2,"x":741,"y":1484,"t":59246},{"g":9,"e":1,"x":880,"y":893,"t":59354},{"g":10,"e":0,"x":905,"y":1467,"t":60368},{"g":10,"e":1,"x":905,"y":1467,"t":60409},{"g":11,"e":0,"x":644,"y":919,"t":61430},{"g":11,"e":1,"x":644,"y":919,"t":61488},{"g":12,"e":0,"x":633,"y":802,"t":62273},{"g":12,"e":1,"x":633,"y":802,"t":62356},{"g":13,"e":0,"x":636,"y":893,"t":62686},{"g":13,"e":1,"x":636,"y":893,"t":62744},{"g":14,"e":0,"x":717,"y":1059,"t":70151,"k":1},{"g":14,"e":2,"x":716,"y":1058,"t":70168,"k":1},{"g":14,"e":2,"x":760,"y":846,"t":70302,"k":1},{"g":14,"e":1,"x":775,"y":806,"t":70403,"k":1},{"g":15,"e":0,"x":901,"y":887,"t":70657,"k":1},{"g":15,"e":1,"x":901,"y":887,"t":70698,"k":1},{"g":16,"e":0,"x":194,"y":855,"t":72611,"k":1},{"g":16,"e":1,"x":194,"y":855,"t":72660,"k":1},{"g":17,"e":0,"x":153,"y":854,"t":73344,"k":1},{"g":17,"e":1,"x":153,"y":854,"t":73394,"k":1},{"g":18,"e":0,"x":465,"y":853,"t":73757,"k":1},{"g":18,"e":1,"x":465,"y":853,"t":73825,"k":1},{"g":19,"e":0,"x":474,"y":1006,"t":74230},{"g":19,"e":1,"x":474,"y":1006,"t":74287},{"g":20,"e":0,"x":419,"y":719,"t":74904},{"g":20,"e":1,"x":419,"y":719,"t":74945},{"g":21,"e":0,"x":499,"y":996,"t":75663},{"g":21,"e":1,"x":499,"y":996,"t":75729},{"g":22,"e":0,"x":415,"y":597,"t":76346},{"g":22,"e":1,"x":415,"y":597,"t":76386}]} 


अपेसी सर्वर पर प्रसारित वीडियो, जैसा कि अपेक्षित है, अधिकांश डेटा छिपा हुआ है


हम देखते हैं कि आगे क्या होता है


ऐसा लगता है कि ऐप्सी सुरक्षित है और सबसे अधिक संभावना है कि डेवलपर्स ने कई बार एप्लिकेशन को बेहतर बनाने में मदद की। लेकिन आइए देखें कि नक्शे के आंकड़ों के साथ आगे क्या होता है। पहले आपको स्थिति के बारे में मीडिया में बर्गर किंग के प्रतिनिधि की टिप्पणी पढ़ने की आवश्यकता है:
“एक दूरस्थ आदेश के साथ बर्गर किंग मोबाइल ऐप अपने ग्राहकों का व्यक्तिगत डेटा एकत्र नहीं करता है। सभी लेन-देन मज़बूती से देश के सबसे अच्छे परिचितों में से एक द्वारा संरक्षित हैं - Yandex.Kassa। एप्लिकेशन में उपयोगकर्ता के व्यवहार के डेटा में बैंक कार्ड के बारे में जानकारी नहीं होती है और इसे सर्वर पर संग्रहीत नहीं किया जाता है, ”कंपनी ने कहा।
यह काफी ठोस लगता है, और अब हम वास्तविक ट्रैफ़िक को देखते हैं। भुगतान के लिए, यैंडेक्स से प्रसंस्करण वास्तव में उपयोग किया जाता है, यह पते के साथ अनुरोध द्वारा निर्धारित किया जा सकता है

https://payment.yandex.net/api/v2/payments/bankCard

अनुरोध पेलोड कुछ डेटा के साथ अनुरोध पैरामीटर है:

डेटा
eyJhbGciOiJFUzI1NiIsImlzcyI6Imluc3RhbmNlSWQ6cHJHa28rRnNnUlhvZnZwWVBiUDRSeVp0bWs1TkxPTElKRGp
EY1FmMVlzSkFPVjNLUGtGRkJJY0QwRFRzL0t5WSIsImlhdCI6IjE1MzEzODYxNDcwMDAifQ.eyJvcmRlciI6eyJjbGll
bnRPcmRlcklkIjoiMmE2ZGEwMTQtMjhlMC00NTYwLWEwNTctNzYxNjBjOGNjM2NhIiwiY3VzdG9tZXJJZCI6IiIsInZh
bHVlIjp7ImFtb3VudCI6IjEuMDAiLCJjdXJyZW5jeSI6IlJVQiJ9LCJwYXJhbWV0ZXJzIjp7ImNhcmRVVUlEIjoiN2E5MDR
lMTgtZDk0NS00MTI4LTgyMDctMTg3ZDFhMDgxYjM0IiwidXNlcklkIjoyNTg1MDQsImFkZENhcmQiOnRydWV9fSwiZ
XhwaXJ5WWVhciI6IjIwMjUiLCJleHRBdXRoRmFpbFVyaSI6Imh0dHBzOi8vb3JkZXJhcHAuYnVyZ2Vya2luZy5ydS9h
cGkvdjEvcGF5L2ZhaWxlZCIsInNvdXJjZSI6IkJhbmtDYXJkIiwicmVjaXBpZW50Ijp7InNob3BJZCI6IjE0NTM2MyIsInNo
b3BBcnRpY2xlSWQiOiI0NDk1MzIifSwiY3NjIjoiMjIyIiwicGFuIjoiMjIyNTU1NTI1NTM2NjY2NiIsImNyZWF0ZVJlY3Vyc
mluZyI6dHJ1ZSwiZXh0QXV0aFN1Y2Nlc3NVcmkiOiJodHRwczovL29yZGVyYXBwLmJ1cmdlcmtpbmcucnUvYXBpL
3YxL3BheS9zdWNjZXNzIiwiZXhwaXJ5TW9udGgiOiIxMCJ9.s0H0pnOyCJTm9NJjyj0Ixg15IlRzYbpW7HboSwwAUDi
y4KCkeIQul14lL8P6ocPNTI_Y3acG4x_vSo8C0T1qtQ

जिन लोगों ने कम से कम एक बार JSON वेब टोकन के साथ काम किया, उन्होंने तुरंत ध्यान दिया कि यह वह था। ऑनलाइन डिकोडर का उपयोग करके हमें स्रोत डेटा मिलता है। सामान्य तौर पर, ऑनलाइन प्रसंस्करण के बारे में कुछ भी आश्चर्यजनक नहीं है कि कार्ड के बारे में जानकारी प्रेषित की जाती है, जो उसके लिए अभिप्रेत है

 { "order": { "clientOrderId": "2a6da014-28e0-4560-a057-76160c8cc3ca", "customerId": "", "value": { "amount": "1.00", "currency": "RUB" }, "parameters": { "cardUUID": "7a904e18-d945-4128-8207-187d1a081b34", "userId": 258504, "addCard": true } }, "expiryYear": "2025", "extAuthFailUri": "https://orderapp.burgerking.ru/api/v1/pay/failed", "source": "BankCard", "recipient": { "shopId": "145363", "shopArticleId": "449532" }, "csc": "222", "pan": "2225555255366666", "createRecurring": true, "extAuthSuccessUri": "https://orderapp.burgerking.ru/api/v1/pay/success", "expiryMonth": "10" } 

प्रारंभ में, अगले खंड में मानचित्र के बारे में सभी जानकारी के लॉगिंग के बारे में एक गलत धारणा थी, टिप्पणियों में स्टेटलैब पर टिप्पणी करने के बाद, लॉगिंग पर अनुभाग को बदल दिया गया था। मैं उन पाठकों से माफी मांगता हूं जिन्हें मैंने गुमराह किया।

सिर के चारों ओर लॉग


ऐसा लगता है कि क्या गलत हो सकता है, कार्ड को मज़बूती से Yandex.Kassa पर संसाधित किया जाना चाहिए। अगर बर्गर किंग एप्लिकेशन के डेवलपर्स ने अपने हिस्से के लिए थोड़ा लॉगिंग जोड़ने का फैसला नहीं किया। इस प्रकार, फिर भी, कार्ड के बारे में कुछ जानकारी एकत्र करना, विशेष रूप से कार्ड के अंतिम 4 अंक, कार्ड का महीना और वर्ष समाप्त होता है। नीचे दी गई जानकारी के साथ एक लॉग भेजा जाता है:

https://orderapp.burgerking.ru/api/v1/log/requests

 [{"created_at":1531386147,"entity":"yandex","method":"POST","request_data":"request=eyJhbGciOiJFUzI1NiIsImlzcyI6Imluc3RhbmNlSWQ6cHJHa28rRnNnUlhvZnZwWVBiUDRSeVp0bWs1TkxPTElKRGpEY1FmMVlzSkFPVjNLUGtGRkJJY0QwRFRzL0t5WSIsImlhdCI6IjE1MzEzODYxNDcwMDAifQ.eyJvcmRlciI6eyJjbGllbnRPcmRlcklkIjoiMmE2ZGEwMTQtMjhlMC00NTYwLWEwNTctNzYxNjBj\nOGNjM2NhIiwiY3VzdG9tZXJJZCI6IiIsInZhbHVlIjp7ImFtb3VudCI6IjEuMDAiLCJjdXJyZW5j\neSI6IlJVQiJ9LCJwYXJhbWV0ZXJzIjp7ImNhcmRVVUlEIjoiN2E5MDRlMTgtZDk0NS00MTI4LTgy\nMDctMTg3ZDFhMDgxYjM0IiwidXNlcklkIjoyNTg1MDQsImFkZENhcmQiOnRydWV9fSwiZXhwaXJ5\nWWVhciI6IjIwMjUiLCJleHRBdXRoRmFpbFVyaSI6Imh0dHBzOi8vb3JkZXJhcHAuYnVyZ2Vya2lu\nZy5ydS9hcGkvdjEvcGF5L2ZhaWxlZCIsInNvdXJjZSI6IkJhbmtDYXJkIiwicmVjaXBpZW50Ijp7\nInNob3BJZCI6IjE0NTM2MyIsInNob3BBcnRpY2xlSWQiOiI0NDk1MzIifSwiY3JlYXRlUmVjdXJy\naW5nIjp0cnVlLCJleHRBdXRoU3VjY2Vzc1VyaSI6Imh0dHBzOi8vb3JkZXJhcHAuYnVyZ2Vya2lu\nZy5ydS9hcGkvdjEvcGF5L3N1Y2Nlc3MiLCJleHBpcnlNb250aCI6IjEwIiwicGFuIjoiKioqKiAq\nKioqICoqKiogNjY2NiJ9\n.s0H0pnOyCJTm9NJjyj0Ixg15IlRzYbpW7HboSwwAUDiy4KCkeIQul14lL8P6ocPNTI_Y3acG4x_vSo8C0T1qtQ","request_headers":"Content-Type: application/x-www-form-urlencoded\nContent-Length: 974\nHost: payment.yandex.net\nConnection: Keep-Alive\nAccept-Encoding: gzip\nUser-Agent: okhttp/3.10.0\n","response_data":"{\"status\":\"Refused\",\"cardAuthorizeResult\":{\"responseCode\":\"BL07\",\"rrn\":\"\",\"authId\":\"\"},\"error\":\"InstrumentNotAllowed\",\"parameterName\":\"country\",\"errorDescription\":\"Card country is forbidden for this merchant\"}","response_error_num":403,"response_error":"{\"status\":\"Refused\",\"cardAuthorizeResult\":{\"responseCode\":\"BL07\",\"rrn\":\"\",\"authId\":\"\"},\"error\":\"InstrumentNotAllowed\",\"parameterName\":\"country\",\"errorDescription\":\"Card country is forbidden for this merchant\"}","response_headers":"403 Content-Type: application/json;charset=UTF-8\nDate: Thu, 12 Jul 2018 09:02:28 GMT\nConnection: close\nContent-Length: 209\n","url":"https://payment.yandex.net/api/v2/payments/bankCard"}] 

कार्ड के प्रसंस्करण के सफल और असफल दोनों प्रयासों पर डेटा भेजा जाता है। मुझे लगभग यकीन है कि लॉग सहेजे गए हैं, अन्यथा उन्हें क्यों भेजें?

निष्कर्ष


  1. विश्लेषिकी सामान्य है, निश्चित रूप से, मैं अधिक "ज्वलंत" चेतावनी देना चाहूंगा। बड़े और जटिल अनुप्रयोगों का विकास विश्लेषण के बिना असंभव है।
  2. फिर भी, मानचित्रों पर कुछ डेटा अनायास ही एकत्र हो जाते हैं।

Source: https://habr.com/ru/post/hi417015/


All Articles