मैं कैसे बता सकता हूं कि एक भ्रष्ट छवि फ़ाइल का उपयोग क्रेडिट कार्ड स्किमिंग के लिए किया जा रहा है?


17

मैं एक ऐसी साइट के साथ काम कर रहा हूं, जो मुझे विश्वास है कि ग्राहक क्रेडिट कार्ड डेटा एकत्र करने के लिए हैक की गई है, लेकिन मैं निश्चित नहीं हो सकता।

मैंने कई लेखों में सुझाए गए सामान्य स्थानों में कोई संदिग्ध कोड नहीं पाया।

मुझे इसमें एक संदिग्ध "टूटी" छवि फ़ाइल मिली:

/skin/adminhtml/default/default/images/db-tab-bottom-right-bg_bg.gif

मैंने फ़ाइल एक्सटेंशन को बदल दिया और उसे खोल दिया, लेकिन यह केवल JPEG-1.1बिखरे हुए पाठ के साथ एन्क्रिप्टेड पाठ की दीवार है ।

यदि साइट से छेड़छाड़ की जाती है तो मैं कैसे बता सकता हूं?

मैंने पुष्टि की है कि पैच लागू किया गया है, लेकिन हैक पैच से पहले हो सकता है।

EDIT: प्रभावित संस्करण 1.7.0.2 है

जवाबों:


21

अपने प्रश्न के विशिष्ट उत्तर के लिए, /magento//a/72700/361 देखें

पृष्ठभूमि

सबसे पहले, कोई विशिष्ट शोषण नहीं है - ऐसे लेखों की एक श्रृंखला है जो इस समय राउंड कर रहे हैं जिन्होंने स्रोत लेख को गलत और गलत समझा है।

मूल लेख केवल इतना कहा है (और मैं टीका कर रहा हूँ),

अगर एक हैकर थे अपने Magento फ़ाइलों तक पहुँच प्राप्त करने में सक्षम हैं, वे सकता है अपने ग्राहकों से जानकारी पर कब्जा

वास्तव में आपके सर्वर तक पहुंचने और फ़ाइलों को संशोधित करने के लिए आवश्यक हैकर का महत्वपूर्ण हिस्सा है।


घबराओ मत ... यह मैगनेटो के लिए कुछ खास नहीं है

सूचना कैप्चर के संदर्भ में, किसी भी अन्य वेबसाइट / प्लेटफॉर्म की तुलना में मैगनेटो के लिए कुछ भी विशिष्ट नहीं है। यदि कोई हैकर आपकी फ़ाइलों तक पहुँच जाता है, तो इसका प्रभावी खेल खत्म हो जाता है - वे जो भी जानकारी चाहते थे उसे कैप्चर कर सकेंगे।

सबसे अच्छा आप कर सकते हैं (और अंत में, न्यूनतम आपको जो करना चाहिए) एक अच्छी सुरक्षा नीति बनाए रखना है जो भुगतान प्रसंस्करण उद्योग के पीसीआई सुरक्षा मानकों का पालन करता है, आप यहां सूची पा सकते हैं, https://www.pcisecuritystandards.org /documents/Prioritized_Approach_for_PCI_DSS_v3_.pdf


अपनी दुकान को कठोर किया

आप वास्तव में अपने स्टोर के पहलुओं को बंद कर सकते हैं जो हैकर के लिए सतह हमले के क्षेत्र को बहुत कम कर देते हैं, या कम से कम उनकी प्रगति को धीमा कर देते हैं यदि वे / में प्राप्त करने का प्रबंधन करते हैं

अनुमतियाँ लॉक करें

आप दस्तावेज़ रूट पर अनुमतियों को केवल आवश्यक निर्देशिकाओं ( /varऔर /media) को लिखने की अनुमति दे सकते हैं

यह वही है जो हम MageStack पर डिफ़ॉल्ट रूप से करते हैं ,

echo -n "Fixing ownership"
chown -R $SSH_USER:$WEB_GROUP $INSTALL_PATH && echo " ... OK" || echo " ... ERROR"
INSTALL_PATH="/path/to/public_html"
chmod 750 $INSTALL_PATH
find $INSTALL_PATH -type d ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing file permissions"
find $INSTALL_PATH -type f ! -perm 740 -exec chmod 740 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing cron permissions"
find $INSTALL_PATH/*/cron.sh -type f ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var file permissions"
chmod -R 760 $INSTALL_PATH/*/media $INSTALL_PATH/*/var && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var directory permissions"
find $INSTALL_PATH/*/media $INSTALL_PATH/*/var -type d ! -perm 770 -exec chmod 770 {} \; && echo " ... OK" || echo " ... ERROR"

INSTALL_PATH,SSH_USER,WEB_GROUPके अनुरूप समायोजित करें। यह महत्वपूर्ण है कि आपका SSH_USERवही उपयोगकर्ता नहीं है जो PHP वेब सर्वर प्रक्रिया के लिए उपयोग करता है, अन्यथा, आप अनिवार्य रूप से वेब सर्वर तक पूर्ण लेखन पहुंच प्रदान करेंगे (किसी भी लाभ को कम करके)।

अपना व्यवस्थापक / डाउनलोडर एक्सेस लॉक करें

MageStack पर, आप इसे इसमें सेट करेंगे ___general/x.conf

set $magestack_protect_admin true;
set $magestack_protect_downloader true;

Nginx पर, आप इसका उपयोग कर सकते हैं,

location ~* ^/(index.php/)?admin{
  satisfy any;

  allow x.x.x.x;

  auth_basic "Login";
  auth_basic_user_file /microcloud/data/domains/x/domains/x/___general/.htpasswd;

  deny all;

  location ~* \.(php) {
    include fastcgi_params;
  }
  try_files $uri $uri/ /admin/index.php ;
}

यहाँ.htpasswd फ़ाइल तैयार करने के बारे में थोड़ा और प्रलेखन है

cron.shप्रक्रिया को लपेटें

मैं क्रोन / व्यवस्थापक उपयोग के लिए समर्पित मशीनों का उपयोग करके अन्य होस्टिंग प्रदाताओं के पास आया हूं - जिसका अर्थ है कि cron.shफ़ाइल को संशोधित करना क्रोन / व्यवस्थापक पर दूरस्थ कोड निष्पादन के लिए कभी भी इसकी आवश्यकता के बिना उपयोग करने की अनुमति देगा। एक नकलीचोट में सही उपयोगकर्ता के साथ प्रक्रिया को लपेटना प्रक्रिया को लॉक करने के लिए उस बिट को आगे बढ़ा सकता है।

मेरे लिए पोस्ट करने के लिए बहुत अधिक कोड है, लेकिन यहां एक स्क्रिप्ट है । MageStack के लिए इसका विशिष्ट, लेकिन कम सुरुचिपूर्ण सर्वर कॉन्फ़िगरेशन पर उपयोग के लिए समायोजित किया जा सकता है :)

ऑडिट, ऑडिट, ऑडिट

लिनक्स लॉगिंग और उस में टैप करने के मामले में शानदार है, जो आपके सर्वर को क्या कर रहा है, इसकी पूरी जानकारी देगा।

MageStack पर एक शानदार विशेषता ऑडिटिंग टूल है जो सभी प्रकार की पहुंच को लॉग करता है और यहां तक ​​कि दैनिक आधार पर फ़ाइल परिवर्तन भी करता है। आप लॉग यहां पा सकते हैं,

/microcloud/logs_ro
|-dh[0-9]+
|---access-YYYY-MM-DD.log.gz
|---backup-YYYY-MM-DD.log.gz
|---magescan-YYYY-MM-DD.log.gz
|---php-differential-YYYY-MM-DD.log.gz
|-acc[0-9]+
|---access-YYYY-MM-DD.log.gz

यदि आप MageStack का उपयोग नहीं कर रहे हैं, तो आप इसे अपने स्वयं के होस्टिंग प्रदाता के साथ आसानी से कर सकते हैं, rsyncइसे करने के लिए सबसे सरल उपकरण है।

उदाहरण के लिए। यदि आपके बैकअप स्थानीय रूप से उपलब्ध हैं, तो आप निम्न कार्य कर सकते हैं। यह दो निर्देशिकाओं की तुलना करेगा और एक अलग पैच सूची तैयार करेगा।

rsync -na /path/to/public_html/ /path/to/backup/public_html/ > change.log
grep -E '\.php$' change.log | while read FILE; do
  diff -wp /path/to/public_html/$FILE /path/to/backup/public_html/$FILE >> php-differential.log
done

PHP परिवर्तन इतने निराले हैं कि आप इसे दैनिक (या कई बार दैनिक) चलाने के लिए शेड्यूल कर सकते हैं और अगर कोई PHP फ़ाइल परिवर्तन है तो आपको ईमेल द्वारा सूचित कर सकता है।


संक्षेप में

  • परिवर्तनों को ट्रैक करने के लिए आसान संस्करण संस्करण नियंत्रण का उपयोग करें
  • आपकी साइट को सुरक्षित बनाने के लिए बस एक SSL प्रमाणपत्र होना पर्याप्त नहीं है
  • सुरक्षा पर विचार करने के लिए हैक होने की प्रतीक्षा न करें
  • सिर्फ इसलिए कि आप अपने भुगतान गेटवे प्रदाता (बनाम जानकारी कैप्चरिंग) में अनुप्रेषित करते हैं - इसका मतलब यह नहीं है कि आप पीसीआई अनुपालन से बच सकते हैं, आपको अभी भी अनुपालन करने की आवश्यकता है
  • सक्रिय रहें, सुरक्षित रहें और पूरी तरह से रहें - इसे स्थापित करने से पहले मॉड्यूल कोड की जाँच करें, दैनिक PHP फ़ाइलों की जाँच करें, लॉग की समीक्षा करें, एफ़टीपी / एसएसएच एक्सेस की जाँच करें, पासवर्ड नियमित रूप से बदलें।

जब वे अपनी सभी निजी सूचनाओं को पार कर लेते हैं, तो आपके ग्राहक आप पर बहुत अधिक भरोसा करते हैं - और यदि आप उस विश्वास को धोखा देते हैं, जो सुरक्षित व्यवसाय का संचालन नहीं करते हैं, तो आप अपने कस्टम और भविष्य के सभी कस्टम खो देंगे।

PCI फोरेंसिक जांच अविश्वसनीय रूप से महंगी होती है, समय लगता है और अंततः कभी भी कार्ड से भुगतान लेने की आपकी क्षमता को जोखिम में डाल देता है। कभी भी अपने आप को उस स्थिति में न आने दें!


फटा हुआ हो

मैगेंटो से हाल ही में जारी किए गए पैच की एक श्रृंखला थी, जिसमें निश्चित छेद शामिल थे, जिनमें से कुछ रिमोट-कोड-निष्पादन के लिए अनुमत थे। आप उन्हें यहां ला सकते हैं, https://www.magentocommerce.com/products/downloads/magento/

लेकिन ये नए लेख एक नए कारनामे का जिक्र नहीं कर रहे हैं, वे केवल यह कह रहे हैं कि हैकर्स ऐतिहासिक शोषण (या किसी अन्य हमले के वेक्टर) का लाभ कैसे उठा रहे हैं ताकि कार्डधारक जानकारी हासिल कर सकें।


सूत्रों का कहना है


4
धन्यवाद! यह अद्भुत लेखन और बहुत उपयोगी जानकारी है।
पियोट कमिंसकी

9

मैं एक और उत्तर जोड़ रहा हूँ क्योंकि मेरे दूसरे ने वास्तव में इस सवाल का जवाब नहीं दिया है - और यह निश्चित रूप से अब और होने की आवश्यकता नहीं है!

यदि किसी छवि में CC जानकारी है तो मैं कैसे सत्यापित कर सकता / सकती हूं

अंत में, आप नहीं कर सकते। कभी-कभी संकेतक होते हैं जो इसे बाहर खड़े करते हैं,

उदाहरण के लिए।

  • बड़ी फ़ाइल का आकार
  • फ़ाइल में सादे पाठ की उपस्थिति
  • गलत छवि हेडर

लेकिन सामग्री को निर्धारित करने के लिए बाइनरी फ़ाइलों की सामग्री को पचाना विशेष रूप से कठिन हो सकता है यदि सामग्री केवल सादे पाठ में नहीं है।

सबसे आम शोषण जो मैंने देखा है कि एक .jpg|png|gif|etcविस्तार के साथ फाइल में सादा पाठ डेटा लिखना शामिल नहीं है , वे आमतौर पर डेटा को उदासीन करने के लिए किसी प्रकार के एन्कोडिंग / एन्क्रिप्शन को शामिल करते हैं (जैसे। base64या mcryptआदि)। जिसका मतलब है कि एक साधारण grep काम नहीं करेगा।

आप कर सकते हैं (और यह किसी भी तरह से संपूर्ण नहीं है) ...

असामान्य रूप से बड़ी फ़ाइलों का पता लगाएं

find \
/path/to/public_html/skin \
/path/to/public_html/media \
-type f -size +20M 2>/dev/null

CC रेगेक्स से मेल खाती फाइलें खोजें

grep -lE '([0-9]+\-){3}[0-9]{4}|[0-9]{16}' \
/path/to/public_html/skin \
/path/to/public_html/media 2>/dev/null

जाँच करें कि क्या छवि फ़ाइलें मान्य हैं

find \
/path/to/public_html/skin \
/path/to/public_html/media -type f \
-regextype posix-egrep -regex '.*\.(jpg|gif|png|jpeg)' |\
xargs identify 1>/dev/null

या

find \
/path/to/public_html/skin \
 -name '*' -exec file {} \; | grep -v -o -P '^.+: \w+ image'

मैं अपनी स्थापना में PHP फ़ाइलों की जांच कैसे कर सकता हूं यह देखने के लिए कि क्या इसे संशोधित किया गया है

अपनी स्थापित फ़ाइलों की तुलना करने का सबसे आसान तरीका एक स्वच्छ प्रतिलिपि के खिलाफ कोर को अलग करना होगा। यह आपकी थीम फ़ाइलों के लिए जिम्मेदार नहीं होगा, लेकिन आपकी स्थापना में कुछ हजार फाइलों की जांच करने का एक लंबा रास्ता तय करता है।

प्रक्रिया वास्तव में आसान है,

उदाहरण के लिए। Magento के संस्करण 1.7.0.2 के लिए

wget sys.sonassi.com/mage-install.sh -O mage-install.sh
bash mage-install.sh -d -r 1.7.0.2
tar xvfz latest-magento.tar.gz
diff -w --brief -r magento-ce-*/app/code/core app/code/core
diff -w --brief -r magento-ce-*/lib lib

इस बात को ध्यान में रखें कि पुराने मैगनेटो रिलीज़ (गुस्से में) पैच नहीं होते हैं, इसलिए एक मुख्य अंतर करने से परिणाम दिखाई देंगे। इससे बचने के लिए, पैच को ताजा डाउनलोड किए गए स्वच्छ स्रोत पर लागू करें, उसके बाद फिर से अलग करें।


2
आपके दोनों उत्तरों को देखते हुए, यह प्रश्न से बेहतर संबंधित है।
pspahn

बेन, मैं इससे पहले कि मैं सुझाए गए सम्पादन के लिए अपना औचित्य पूरा कर पाता, मैंने एंट्री मार दी ... एक बड़ी बात नहीं, बस पीसीआई एक उद्योग का मानक है और न कि एक सरकारी निकाय द्वारा पारित विनियमन या कानून, कम से कम अमेरिका में नहीं: en.wikipedia.org/wiki/…
ब्रायन 'बीजे' हॉफपॉयर जूनियर।

1
मैं सिर्फ "नियम" (कानून नहीं) के साथ विनिमेय होने के संदर्भ में "विनियमन" का उपयोग कर रहा था
बेन लेसानी - सोनासी

भेद की सराहना करते हैं और यह मूल रूप से मेरे द्वारा महसूस किए गए से अधिक लोकेल पर आधारित हो सकता है। मेरे पिता के अनुसार वकील और बहन लॉ-स्कूल डीन (मुझे उनसे जैसा लगता है उससे बहस करना नफरत है) यहां तक ​​कि अमेरिका में भी शब्द नियम का एक विशिष्ट अर्थ है, जब एक विशिष्ट संशोधक द्वारा पूर्वनिर्धारित किया जाता है, जैसे उद्योग नियम मामला बनाम एजेंसी नियम (जहां ईपीए जैसी सरकारी एजेंसी विस्तृत आवश्यकताओं को जारी कर सकती है जो कानूनी रूप से एक कानून की तरह बाध्यकारी हैं लेकिन हमारे सीनेट या कांग्रेस के प्रतिनिधि मंडलों द्वारा एक विनियमन के रूप में पारित नहीं किया गया है)। पांडित्य का मतलब नहीं है, सिर्फ साझा करना :)
ब्रायन 'बीजे' हॉफपॉयर जूनियर

3

महान पोस्ट, लेकिन दुर्भाग्य से सभी चीजें समान नहीं बनाई जाती हैं।

फ़ाइल की अनुमति

जब साझा होस्टिंग लोकप्रिय हो गई, तो यह अधिक महत्वपूर्ण माना गया कि लोगों को एक ही सर्वर पर दूसरों की सामग्री देखने की अनुमति नहीं थी। FreeBSD जेलों के आगमन तक, इसका मतलब था:

  • प्रतिबंधित गोले
  • / रूट के रूप में घर: रूट 700
  • Umask 007 के साथ उपयोगकर्ता खाते।
  • यूआईडी बदलते वेबसर्वर सॉफ्टवेयर
  • और यूआईडी इसे बदलकर उस खाते का मालिक है।

इसने (तब) HTML फ़ाइलों को खाता स्वामी द्वारा संशोधित करने की अनुमति दी, जबकि उसी समय, वेबसर्वर प्रक्रिया और खाता स्वामी दोनों के पास एक ही मशीन पर दूसरों तक पहुंच नहीं थी।

यह बहुत ज्यादा नहीं बदला है और सॉफ्टवेयर पैकेज जो साझा होस्टिंग (CPanel, DirectAdmin, Plex) की ओर जाते हैं, वे सभी उन सिद्धांतों का उपयोग करते हैं। इसका अर्थ है कि प्रविष्टि का मुख्य बिंदु (वेबसर्वर और / या स्क्रिप्ट दुभाषिया) खाते में किसी भी फाइल को लिख सकता है, जिससे फाइल की अनुमति बेकार हो जाती है।

अगर आपके पास नहीं है तो कोई सीसी चोरी नहीं करेगा

अपने CC भुगतान प्रदाता के साथ सूचित करें यदि CC डेटा वास्तव में आपके सर्वर पर भेजा जाता है और यदि ऐसा है, तो यदि यह अनएन्क्रिप्टेड अनएन्क्रिप्टेड भेजा गया है। जावास्क्रिप्ट इन दिनों काफी शक्तिशाली है और वहाँ पेमेंट सर्विस प्रोवाइडर हैं, जो सर्वर पर प्रसारण से पहले संवेदनशील जानकारी को एन्क्रिप्ट करने के लिए अपने ग्राहक के जेवीस्क्रिप्ट इंजन का उपयोग करते हैं। हालांकि यह जानकारी एकत्रित करने वाले के लिए सत्र कुंजी के साथ-साथ एन्क्रिप्टेड डेटा प्राप्त करना संभव हो सकता है (और इस प्रकार इसे डिक्रिप्ट करने में सक्षम हो सकता है), यह इकट्ठा करने वाले के लिए कम दिलचस्प है क्योंकि एकत्रित डेटा बड़ा है और बॉट का AI बहुत अधिक जटिल है ।

संशोधन का पता लगाने

15 साल से अधिक के यूनिक्स और यह तब भी मेरे चेहरे पर एक उदासीन मुस्कान डालता है, जब मुझे त्रिपाठी के पुनर्जन्म मिलते हैं । इसके लिए एक अच्छा उपकरण भी दें। एक ज्ञात अच्छे संस्करण की तुलना में, कुछ हद तक कम है, क्योंकि यह परिवर्धन को ध्यान में नहीं रखता है और फिर से यहाँ एक अच्छा उपकरण देता है, क्योंकि साइट-स्थानीय संशोधन अधिक लगातार होते हैं, फिर प्राचीन स्थापित होते हैं।

डाउनलोडर

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

WAF और विकल्प

एक वेब अनुप्रयोग फ़ायरवॉल पहले से ही एक हमले के स्कैनिंग चरण में, बहुत सारे मुद्दों को रोक सकता है। दुर्भाग्य से, ये महंगे ब्लैक बॉक्स हैं, लेकिन कुछ विकल्प मौजूद हैं:

  1. एक यह है कि दिन में tripwire साथी वापस था - थिरकने को वहाँ वाणिज्यिक WAF के साथ -is। यह एक कठिन सीखने की अवस्था है, लेकिन विसंगतियों और ज्ञात खराब पेटेंट का अच्छी तरह से पता लगा सकता है।
  2. अपाचे इनकार अनुरोधों के लिए nginx और mod_security के लिए Naxsi जिसमें हमले के हस्ताक्षर होते हैं। Naxsi थोड़ी अधिक सामान्य है और "ऐसी चीज़ों के लिए सेवा से इनकार करती है जो यहाँ नहीं हैं", जैसे अस्पष्ट SQL - SQL के एक ज्ञात बिट के भाग के विपरीत है।
  3. Fail2ban / sshguard पिछले दो के बीच में बैठती है। वे विभिन्न प्रकार के लॉग को संभाल सकते हैं और अनुकूलन योग्य कार्य कर सकते हैं। नकारात्मक पक्ष यह है कि वे तथ्य के बाद काम करते हैं। लॉगलाइंस आमतौर पर एक कार्रवाई पूरी होने के बाद लॉग को हिट करता है और इसके शीर्ष पर टूल के पास झूठी सकारात्मकता का मुकाबला करने के लिए एक सीमा होती है। यह हमलावर के लिए पहुंच प्राप्त करने के लिए पर्याप्त हो सकता है, अगर उसने पहले चरणों में सटीक जानकारी प्राप्त की हो।

मुझे लगता है कि हमने बहुत सारा सामान कवर किया है लेकिन मुझे अपने पेटीपी के साथ समाप्त करने दें:


FTP का उपयोग करें


वहाँ। यह मैंने कहा था। और यहाँ फिर से जाएँ : https://wiki.filezilla-project.org/Howto


1

इस नए हैक के बारे में कुछ भी निश्चित नहीं है, बेन मार्क्स ने कल पोस्ट किया कि वे इस मुद्दे की जांच कर रहे हैं और यह लेख भी है।

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

find . | xargs grep 'db-tab-bottom-right-bg_bg.gif' -sl

अपने Magento रूट फ़ोल्डर से और यदि आपको एक मेल मिलता है, तो फ़ाइल को मैन्युअल रूप से देखने के लिए कि क्या चल रहा है। उदाहरण के लिए "END PUBLIC KEY" जैसे अन्य स्ट्रिंग्स के साथ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.