सवाल क्या लिनक्स सर्वर के लिए एक्सईई फाइलों को हानिकारक किया गया है?


मैंने अपनी साइट पर एक मैलवेयर स्कैनर चलाया, और इसे ज़ेड किए गए EXE फ़ाइलों का एक गुच्छा संभावित जोखिम फ़ाइलों के रूप में चिह्नित किया गया (इन फ़ाइलों को उपयोगकर्ताओं द्वारा अपलोड किया गया)। चूंकि मैं अपने मैक पर फ़ाइलों को असम्पीड्रेस करने में सक्षम हूं, इसलिए मुझे लगता है कि ये वास्तविक ज़िप फ़ाइलें हैं और न केवल कुछ PHP नामों की तरह।

तो ज़िप फ़ाइल मेरे वेब सर्वर के लिए कोई जोखिम नहीं होना चाहिए, है ना?


49
2017-12-22 08:49


मूल


एक कचरा मैलवेयर स्कैनर की तरह लगता है। - Nick T
आप जानते हैं कि आप परीक्षण कर सकते हैं कि वे ज़िप प्रारूप में हैं या नहीं file foo.zip, या यहां तक ​​कि परीक्षण करें कि वे वैध हैं या नहीं 7z t foo.zip इसका परीक्षण करने के लिए (यानी डिस्क पर स्थानीय फ़ाइलों को निकाले बिना, सीआरसी चेकसम को डीकंप्रेस और सत्यापित करें)। (7z कुछ हद तक समान वाक्यविन्यास का उपयोग करता है tar।) या unzip -l foo.zip सामग्री सूचीबद्ध करने के लिए। वैसे भी, मैंने सोचा कि यह अजीब बात है कि आप किसी अन्य कंप्यूटर पर फ़ाइलों की जांच करने के बारे में बात करते हैं जब आप उन्हें आसानी से सर्वर पर चेक कर सकते थे। - Peter Cordes
आप किस प्रकार की वेबसाइट होस्ट कर रहे हैं? यह एक ही विचार पर उपयोगकर्ता द्वारा सबमिट की गई सामग्री और आपके आगे का सामना करने वाला वेब सर्वर डालने का एक अच्छा विचार नहीं लगता है। - oldmud0
@NickT स्वयं निकालने वाली ज़िप फ़ाइलों को निष्पादन योग्य भाग से जुड़ा अतिरिक्त दुर्भावनापूर्ण कोड हो सकता है। - chrylis


जवाब:


यदि वे वास्तव में विंडोज एक्सई फाइलों को ज़िप्ड कर रहे हैं, तो उन्हें आपके लिनक्स सिस्टम के लिए हानिकारक होना चाहिए, जब तक कि आपके पास शराब की तरह कुछ न हो जो उन्हें निष्पादित करने का प्रयास कर सके।

लेकिन अगर वे आपके वेब पथ में हैं, तो वे मैलवेयर हो सकते हैं और एक पॉज़ हो सकते हैं बड़े आपके वेब साइटों के आगंतुकों के लिए जोखिम (और बदले में, यदि आप मैलवेयर स्रोत के रूप में चिह्नित होने पर समाप्त होते हैं और उपयोगकर्ताओं को आपकी साइट पर जाने का प्रयास करते समय बदसूरत चेतावनियां मिलती हैं)।


85
2017-12-22 08:55



मुझे आश्चर्य है कि इस तरह के "उपयोगकर्ता" अपलोड किए गए कचरे को होस्ट करने से Google आपकी साइट को "इस साइट को हैक किया जा सकता है" के रूप में ब्रांड कर सकता है, या क्रोम को एक विशाल लाल चेतावनी पृष्ठ प्रदर्शित कर सकता है। तब "हानिरहित" एक गलत नामक हो सकता है। - Nick T
@NickT: यह निश्चित रूप से कर सकता है, और यही वह है जो मैं अपने दूसरे पैराग्राफ में संदर्भित कर रहा था। - Sven♦
सिद्धांत रूप में कोई भी विकृत बना सकता है .zip वे फ़ाइलें जो विशिष्ट अनजिप कार्यान्वयन में त्रुटियों को लक्षित करने का प्रयास करती हैं। - jamesdlin
मोनो शराब की तुलना में सर्वर पर स्थापित होने की अधिक संभावना है, और सीएलआर .exe फ़ाइलों को निष्पादित कर सकता है। - Rhymoid


चूंकि मैं अपने मैक पर फ़ाइलों को असंप्रेषित करने में सक्षम हूं, मान लीजिए कि ये वास्तविक ज़िप फ़ाइलें हैं और न केवल कुछ php फ़ाइलों का नाम है।

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

इस चाल को वैध रूप से स्वयं निकालने वाली ज़िप फ़ाइलों को बनाने के लिए उपयोग किया जाता है, लेकिन किसी अन्य छिपे हुए डेटा या निष्पादन योग्य कोड को उसी तरह से ज़िप फ़ाइल में प्रीपेड करना संभव है। कुछ प्रोग्राम ऐसी संशोधित ज़िप फ़ाइलों को खोलने से इंकार कर सकते हैं (लेकिन यदि ऐसा है, तो वे तकनीकी रूप से ज़िप प्रारूप spec का उल्लंघन कर रहे हैं), या वे फ़ाइल को डिफ़ॉल्ट रूप से ज़िप फ़ाइल के अलावा किसी अन्य चीज़ के रूप में पहचान सकते हैं, लेकिन आम तौर पर, यदि आप इस तरह की फ़ीड करते हैं कोड में फ़ाइल करें जो एक ज़िप फ़ाइल की अपेक्षा करता है, इसे शायद एक के रूप में स्वीकार किया जाएगा।

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


62
2017-12-22 15:00



GIFAR के लिए +1, अभ्यास में इस शोषण के एक विशिष्ट उदाहरण के बारे में जानना दिलचस्प है। - caesay


आपको कम से कम दो उल्लेखनीय विचारों को ध्यान में रखना चाहिए:

  1. यदि इन फ़ाइलों को आपकी वेबसाइट पर वितरित किया जाता है, तो आपको किसी व्यक्ति को आपकी साइट से मैलवेयर मिलने पर ज़िम्मेदार ठहराया जा सकता है। कम से कम आपकी साइट मैलवेयर के लिए फ़्लैग किया जा सकता है। यदि आप मैलवेयर स्कैनर चेतावनियों को अनदेखा करने का निर्णय लेते हैं, तो आपको कम से कम अपलोडर और संभावित डाउनलोडर्स को सूचित करना चाहिए कि फ़ाइल हानिकारक हो सकती है (जैसे इंटरनेट से डाउनलोड किए गए EXEs कभी-कभी होते हैं)।
  2. क्या आप मैलवेयर स्कैन के अलावा इन फ़ाइलों पर कोई प्रसंस्करण करते हैं? अनुलग्नकों या अन्य ऐसे अपलोडों की स्वचालित प्रसंस्करण हमेशा संभावित रूप से खतरनाक होती है, क्योंकि फ़ाइल सामग्री कुछ भी हो सकती है। आपको EXE फ़ाइल निष्पादित करने की भी आवश्यकता नहीं है यदि आपका उपयोगिता सॉफ़्टवेयर कुछ शोषण के लिए कमजोर है और प्रतीत होता है कि अच्छा ज़िप / exe में आपकी उपयोगिता को लक्षित करने वाली हानिकारक सामग्री शामिल है। मैं अपने सर्वर को मैलवेयर स्कैनिंग में विफल होने वाली किसी भी चीज़ को संसाधित नहीं करने दूंगा।

तो, इस पर निर्भर करता है कि आपका सर्वर फ़ाइल क्या कर सकता है संभावित अपने सर्वर या अन्य उपयोगकर्ताओं के लिए हानिकारक हो। चूंकि मैं इंटरनेट से डाउनलोड किए गए EXEs से काफी सावधान हूं, इसलिए मैं कहूंगा कि संभावित डाउनलोडर जोखिम वाले सबसे संभावित उपयोगकर्ता हैं।


11
2017-12-23 09:31





चूंकि मैं अपने मैक पर फ़ाइलों को असम्पीड्रेस करने में सक्षम हूं, इसलिए मुझे लगता है कि ये वास्तविक ज़िप फ़ाइलें हैं और न केवल कुछ PHP नामों की तरह।

ऐसे हमले हुए हैं जो डेटा एम्बेड करते हैं और अभी भी फाइल को वैध मानते हैं। गलत तरीके से कॉन्फ़िगर किए गए सर्वर में या गलत तरीके से कोड किए गए ऐप में, इससे आपके सर्वर में कोड निष्पादित हो सकता है।

तो, इसके साथ भी सावधान रहें।


2
2017-12-24 03:03





आप जांच सकते हैं कि फाइलें आपके लिनक्स सर्वर पर आसानी से जांच कर चल रही हैं या नहीं file FILENAME.exe आदेश। एल्फ बाइनरीज़ (लिनक्स पर प्रयुक्त निष्पादन योग्य प्रारूप) का नाम दिया जा सकता है .exe एक असुरक्षित लिनक्स व्यवस्थापक को भ्रमित करने के लिए विस्तार, इसलिए शायद यह जांच करना एक अच्छा विचार है कि अंधेरे से भरोसा करने से पहले कि ये फ़ाइलें चलाने योग्य नहीं हैं।


2
2017-12-25 00:17





मुझे आश्चर्य है कि किसी ने भी उल्लेख नहीं किया है कि किसी भी डेटा (किसी भी हो सकता है) होने के लिए हानिकारक हो सकता है (या हो सकता है)। यह फजीइंग का आधार है। उदाहरण के लिए, आपके पास एक जेपीईजी (या जेपीईजी-जैसी) फ़ाइल हो सकती है जो बफर ओवरफ़्लो (विशिष्ट?) जेपीईजी डिकोडर्स का कारण बनती है, जो सेवा के इनकार से कुछ भी मनमाने ढंग से कोड निष्पादन के कारण होती है। यह मौजूदा डेटा प्रोसेसिंग प्रोग्राम को बदलने के बारे में है; एक नया निष्पादन योग्य लाने की जरूरत नहीं है! और यही कारण है कि sandboxing, इनपुट sanitization और कम से कम विशेषाधिकार सिद्धांतों की आवश्यकता है।

तो, आपके मामले में, आपके पास ज़िप फ़ाइल हो सकती है (विशिष्ट?) ज़िप-डिकोडिंग इंजन। ज़िप फ़ाइल के लिए हानिकारक होने के लिए मूल निष्पादन योग्य होने की आवश्यकता नहीं है।

ऐसा कहकर, आपका स्कैनर दूसरे, कोरसर स्तर पर काम कर रहा है। अगर मैं उन जोखिमों के बारे में बात कर रहा हूं जिनके बारे में मैं बात कर रहा हूं, तो आप उन्हें पहले ही संसाधित कर चुके हैं :)।


2
2017-12-25 22:44





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


0
2017-12-26 04:57





Unzipped .exe Linux सर्वर के लिए भी हानिकारक हैं।


-6
2017-12-22 16:09



जरूरी नहीं है - .exe फ़ाइल नाम का हिस्सा और कुछ नहीं है और इसे ईएलएफ बाइनरी के नाम के रूप में भी चुना जा सकता है। - Sven♦
इसके अलावा, वाइन स्थापित किया जा सकता है। अनुमोदित, अधिकांश विंडोज-लक्ष्यीकरण मैलवेयर शायद वाइन के तहत काम नहीं करेगा, लेकिन जोखिम मौजूद है। सबसे अच्छा, लिनक्स पर unzipped .exes ज्यादातर हानिरहित हैं। - Ray
@ रे विन्यास पर निर्भर करता है। अगर, किसी कारण से, मोनो या वाइन स्थापित हैं, तो binfmt_misc कॉन्फ़िगर किया जा सकता है ताकि .exe वास्तव में निष्पादन योग्य है। - Rhymoid