
लिनक्स के लिए एन्ट्रॉपी स्कैनर जो मैलवेयर से संबंधित पैक या एन्क्रिप्टेड बाइनरीज़ का पता लगाता है। दुर्भावनापूर्ण फ़ाइलों और लिनक्स प्रक्रियाओं को ढूंढता है और क्रिप्टोग्राफिक हैश के साथ आउटपुट देता है।
sandfly-entropyscan एक उपयोगिता है जो फ़ाइलों या चल रही प्रक्रियाओं को तेज़ी से स्कैन करती है और उनकी एंट्रॉपी (यादृच्छिकता का माप) और वे Linux/Unix ELF प्रकार की निष्पादन योग्य (executable) हैं या नहीं, इसकी रिपोर्ट करती है। Linux के कुछ मैलवेयर पैक या एन्क्रिप्ट होते हैं और बहुत उच्च एंट्रॉपी दिखाते हैं। यह उपकरण तेज़ी से उच्च एंट्रॉपी वाली निष्पादन योग्य फ़ाइलों और प्रक्रियाओं को ढूंढ सकता है, जो अक्सर दुर्भावनापूर्ण होती हैं।
एंट्रॉपी यादृच्छिकता का माप है। बाइनरी डेटा के लिए 0.0 गैर-यादृच्छिक और 8.0 पूर्णतः यादृच्छिक है। अच्छी क्रिप्टो यादृच्छिक सफेद शोर की तरह दिखती है और 8.0 के करीब होगी। अच्छा संपीड़न अनावश्यक डेटा हटाकर इसे असंपीड़ित की तुलना में अधिक यादृच्छिक बनाता है और आमतौर पर 7.7 या उससे ऊपर होगा।
बहुत से मैलवेयर निष्पादन योग्य (executables) पैक किए जाते हैं ताकि पहचान से बच सकें और रिवर्स इंजीनियरिंग को कठिन बना सकें। अधिकांश मानक Linux बाइनरी पैक नहीं होते क्योंकि वे अपने स्वरूप को छिपाने की कोशिश नहीं कर रहे होते। उच्च एंट्रॉपी फ़ाइलों की खोज करना उन प्रोग्रामों को खोजने का एक अच्छा तरीका है जो सिर्फ इन दो गुणों - उच्च एंट्रॉपी और निष्पादन योग्य - के कारण दुर्भावनापूर्ण हो सकते हैं।
Usage of sandfly-entropyscan:
-csv
output results in CSV format (filename, path, entropy, elf_file [true|false], MD5, SHA1, SHA256, SHA512)
-delim
change the default delimiter for CSV files of "," to one of your choosing ("|", etc.)
-dir string
directory name to analyze
-file string
full path to a single file to analyze
-proc
check running processes (defaults to ELF only check)
-elf
only check ELF executables
-entropy float
show any file/process with entropy greater than or equal to this value (0.0 min - 8.0 max, defaults 0 to show all files)
-version
show version and exit
Search for any file that is executable under /tmp:
sandfly-entropyscan -dir /tmp -elf
Search for high entropy (7.7 and higher) executables (often packed or encrypted) under /var/www:
sandfly-entropyscan -dir /var/www -elf -entropy 7.7
Generates entropy and cryptographic hashes of all running processes in CSV format:
sandfly-entropyscan -proc -csv
Search for any process with an entropy higher than 7.7 indicating it is likely packed or encrypted:
sandfly-entropyscan -proc -entropy 7.7
Generate entropy and cryptographic hash values of all files under /bin and output to CSV format (for instance to save and compare hashes):
sandfly-entropyscan -dir /bin -csv
Scan a directory for all files (ELF or not) with entropy greater than 7.7: (potentially large list of files that are compressed, png, jpg, object files, etc.)
sandfly-entropyscan -dir /path/to/dir -entropy 7.7
Quickly check a file and generate entropy, cryptographic hashes and show if it is executable:
sandfly-entropyscan -file /dev/shm/suspicious_file
उन सिस्टम्स पर स्पॉट चेक करें जिनके बारे में आपको लगता है कि उनमें मैलवेयर की समस्या है। या आप स्कैन को स्वचालित कर सकते हैं ताकि यदि हमें किसी ऐसी जगह पर उच्च एंट्रॉपी मिलती है जहाँ आपने उम्मीद नहीं की थी, तो आउटपुट मिले। या बस किसी भी निष्पादन योग्य ELF प्रकार की फ़ाइल को फ़्लैग करें जो किसी अजीब जगह पर है (जैसे /tmp में या किसी उपयोगकर्ता की HTML निर्देशिका के अंतर्गत)। उदाहरण के लिए:
Did a high entropy binary show up under the system /var/www directory? Could be someone put a malware dropper on your website:
sandfly-entropyscan -dir /var/www -elf -entropy 7.7
अपने /tmp, /var/tmp, और /dev/shm निर्देशिकाओं को किसी भी प्रकार की निष्पादन योग्य फ़ाइल के लिए स्कैन करने के लिए एक क्रॉन टास्क सेट करें, चाहे वह उच्च एंट्रॉपी हो या नहीं। tmp निर्देशिकाओं के अंतर्गत निष्पादन योग्य फ़ाइलें अक्सर मैलवेयर ड्रॉपर हो सकती हैं।
sandfly-entropyscan -dir /tmp -elf
sandfly-entropyscan -dir /var/tmp -elf
sandfly-entropyscan -dir /dev/shm -elf
एक और क्रॉन या स्वचालित सुरक्षा स्वीप सेट करें ताकि आपके सिस्टम पर चल रहे अत्यधिक संपीड़ित या एन्क्रिप्टेड बाइनरी की स्पॉट जाँच हो सके:
sandfly-entropyscan -proc -entropy 7.7
git clone https://github.com/sandflysecurity/sandfly-entropyscan.git
go build
./sandfly-entropyscan
कुछ बुनियादी निर्माण स्क्रिप्ट्स हैं जो विभिन्न प्लेटफार्मों के लिए बनाती हैं। आप इनका उपयोग कर सकते हैं या अपनी आवश्यकता के अनुसार संशोधित कर सकते हैं। घटना प्रतिक्रियाकर्ताओं के लिए, अपनी जाँच मशीन पर उपयोग के लिए पूर्व-संकलित बाइनरी तैयार रखना उपयोगी हो सकता है।
build.sh - उस वर्तमान OS के लिए बनाएं जिस पर आप इसे निष्पादित करते हैं।
हम एक सरल विधि का उपयोग करते हैं यह देखने के लिए कि कोई फ़ाइल निष्पादन योग्य ELF प्रकार की हो सकती है। हम कई प्लेटफार्मों के लिए ELF प्रारूप फ़ाइलों का पता लगा सकते हैं। भले ही मैलवेयर में Intel/AMD, MIPS और Arm ड्रॉपर बाइनरी हों, हम फिर भी उन सभी का पता लगाने में सक्षम होंगे।
एक वैध बाइनरी को फ़्लैग करना संभव है जिसमें उच्च एंट्रॉपी है, क्योंकि इसे कैसे संकलित किया गया था, या क्योंकि इसे वैध कारणों से पैक किया गया था। अन्य फ़ाइलें जैसे .zip, .gz, .png, .jpg आदि में भी बहुत उच्च एंट्रॉपी होती है क्योंकि वे संपीड़ित प्रारूप हैं। संपीड़न फ़ाइल में अनावश्यकता को हटाता है जो इसे अधिक यादृच्छिक और उच्च एंट्रॉपी वाला दिखाता है।
Linux पर, यदि आप लाइब्रेरी निर्देशिकाओं को स्कैन करते हैं तो आप कुछ प्रकार की लाइब्रेरीज़ (.so फ़ाइलें) फ़्लैग हो सकती हैं।
हालांकि, हमारा अनुभव है कि निष्पादन योग्य बाइनरी जिनमें उच्च एंट्रॉपी भी है, अक्सर दुर्भावनापूर्ण होती हैं। यह विशेष रूप से सच है यदि आप उन्हें उन क्षेत्रों में पाते हैं जहाँ सामान्यतः निष्पादन योग्य नहीं होने चाहिए (जैसे कि tmp या html निर्देशिकाएँ)।
एंट्रॉपी गणना के लिए फ़ाइल के सभी बाइट्स को पढ़ना और उन्हें गिनकर अंतिम संख्या प्राप्त करना आवश्यक है। यह बहुत अधिक CPU और डिस्क I/O का उपयोग कर सकता है, विशेष रूप से बहुत बड़ी फ़ाइल प्रणालियों या बहुत बड़ी फ़ाइलों पर। प्रोग्राम की एक आंतरिक सीमा है जहाँ यह 2GB से अधिक किसी भी फ़ाइल पर एंट्रॉपी की गणना नहीं करेगा, और न ही यह किसी ऐसी फ़ाइल पर एंट्रॉपी की गणना करने का प्रयास करेगा जो नियमित फ़ाइल प्रकार नहीं है (जैसे /dev/zero जैसे उपकरणों पर एंट्रॉपी की गणना नहीं करेगा)।
फिर हम MD5, SHA1, SHA256 और SHA512 हैश की गणना करते हैं। इनमें से प्रत्येक के लिए फ़ाइल को फिर से पढ़ना पड़ता है। आधुनिक सिस्टम पर यह उचित गति है, लेकिन यदि आप बहुत बड़ी फ़ाइल प्रणाली को क्रॉल कर रहे हैं तो इसे पूरा होने में कुछ समय लग सकता है।
यदि आप प्रोग्राम को केवल ELF फ़ाइलों को देखने के लिए कहते हैं, तो एंट्रॉपी/हैश गणना तब तक नहीं होगी जब तक वह ELF प्रकार की न हो, और इससे बहुत समय बचेगा (जैसे, यह बड़ी डेटाबेस फ़ाइलों को अनदेखा करेगा जो निष्पादन योग्य नहीं हैं)।
यदि आप इस प्रोग्राम को स्वचालित करना चाहते हैं, तो बेहतर है कि इसे पूरी रूट फ़ाइल प्रणाली को क्रॉल न करने दें जब तक कि आप विशेष रूप से ऐसा न चाहें। एक लक्षित दृष्टिकोण तेज़ और स्पॉट चेक के लिए अधिक उपयोगी होगा। साथ ही, ELF फ़्लैग का उपयोग करें क्योंकि यह केवल निष्पादन योग्य फ़ाइल प्रकारों को संसाधित करके खोज समय को काफी कम कर देगा।
घटना प्रतिक्रियाकर्ताओं के लिए, पूरे शीर्ष-स्तरीय "/" निर्देशिका के विरुद्ध sandfly-entropyscan चलाना जांच के लिए संभावित पैक उम्मीदवारों की सूची तेज़ी से प्राप्त करने का एक अच्छा विचार हो सकता है। इससे CPU और डिस्क I/O बढ़ जाएगा। हालाँकि, उस बिंदु पर शायद आपको परवाह नहीं होगी क्योंकि जब तक प्रशासकों ने ध्यान दिया, तब तक बॉक्स 598 घंटों से क्रिप्टोकरेंसी माइनिंग कर रहा होता है।
फिर से, संभावित समस्या उम्मीदवार निष्पादन योग्य तक पहुंचने और शोर को अनदेखा करने के लिए ELF फ़्लैग का उपयोग करें।
एक स्क्रिप्ट है जिसे scripts/testfiles.sh कहा जाता है जो दो फ़ाइलें बनाएगी। एक यादृच्छिक डेटा से भरी होगी और एक बिल्कुल भी यादृच्छिक नहीं होगी। जब आप स्क्रिप्ट चलाएंगे, तो यह फ़ाइलें बनाएगा और sandfly-entropyscan को निष्पादन पहचान मोड में चलाएगा। आपको दो फ़ाइलें दिखनी चाहिए। एक बहुत उच्च एंट्रॉपी (8.0 या उसके करीब) के साथ और एक गैर-यादृच्छिक डेटा से भरी जो कम एंट्रॉपी के लिए 0.00 होनी चाहिए। उदाहरण:
./testfiles.sh
Creating high entropy random executable-like file in current directory.
Creating low entropy executable-like file in current directory.
high.entropy.test, entropy: 8.00, elf: true
low.entropy.test, entropy: 0.00, elf: true
आप upx उपयोगिता भी लोड कर सकते हैं और एक निष्पादन योग्य को संपीड़ित कर सकते हैं और देख सकते हैं कि यह क्या मान लौटाता है।
Sandfly Security Linux के लिए एक एजेंटलेस एंडपॉइंट डिटेक्शन और इंसिडेंट रिस्पॉन्स प्लेटफॉर्म (EDR) बनाता है। स्वचालित एंट्रॉपी जाँच उन हजारों चीजों में से एक है जिन्हें हम आपके Linux एंडपॉइंट पर कोई सॉफ्टवेयर लोड किए बिना घुसपैठियों को खोजने के लिए खोजते हैं।
नीचे एक मुफ्त लाइसेंस प्राप्त करें और अधिक जानें:
https://www.sandflysecurity.com @SandflySecurity