मुझे कैसे पता चलेगा कि मेरा लिनक्स सर्वर हैक हो गया है?


36

एक लिनक्स सर्वर को हैक करने वाले टेल-टेल संकेत क्या हैं? क्या कोई उपकरण हैं जो एक ऑडिट रिपोर्ट को निर्धारित आधार पर उत्पन्न और ईमेल कर सकते हैं?


1
यदि राज्य अज्ञात है, तो वास्तव में कोई रास्ता नहीं है। इसीलिए विश्वसनीय इंस्टॉलेशन स्रोतों का उपयोग करना और ट्रिपवायर जैसे उपकरण सेट करने से पहले इसे स्वयं के अलावा किसी अन्य चीज में उजागर करना इतना महत्वपूर्ण है।
ओस्कर डुवॉर्न


10
आपका मतलब है "फटा"। हैकिंग है कि कैसे हम पहले स्थान पर linux मिला।
गार्बरी

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

@ मैट माइंड हमें बता रहा है कि कौन से उपकरण हैं? आज भी वही है?
रॉड्रिगो

जवाबों:


34
  1. महत्वपूर्ण प्रणाली फ़ाइलों (जैसे ls, ps, netstat, md5sum) की एक प्रीस्टाइन कॉपी कहीं रखें, उनमें से एक md5sum के साथ, और उनकी तुलना नियमित रूप से लाइव संस्करणों से करें। Rootkits इन फ़ाइलों को हमेशा संशोधित करेगा। यदि आपको लगता है कि मूल से छेड़छाड़ की गई है, तो इन प्रतियों का उपयोग करें।
  2. सहयोगी या ट्रिपवायर आपको किसी भी फाइल के बारे में बताएगा जो संशोधित किया गया है - यह मानते हुए कि उनके डेटाबेस के साथ छेड़छाड़ नहीं की गई है।
  3. अपने लॉगफ़ाइल्स को किसी दूरस्थ लॉग सर्वर पर भेजने के लिए syslog कॉन्फ़िगर करें जहाँ उन्हें घुसपैठिए द्वारा छेड़छाड़ नहीं किया जा सकता है। संदिग्ध गतिविधि के लिए इन दूरस्थ लॉगफ़ाइल्स को देखें
  4. अपने लॉग को नियमित रूप से पढ़ें - महत्वपूर्ण जानकारी को संश्लेषित करने के लिए लॉगवॉच या लॉगचेक का उपयोग करें।
  5. अपने सर्वर को जानें । जानिए कि किस तरह की गतिविधियाँ और लॉग सामान्य हैं।

8
md5 को गंभीर रूप से कमजोर कर दिया गया है अगर बाहर नहीं फेंका जाता है। आप sha512 पर जाना चाह सकते हैं।
ब्रैम

12

तुम नहीं।

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

यदि आपके सिस्टम से छेड़छाड़ की गई थी, तो आपके किसी भी उपकरण को सत्य प्रकट करने के लिए भरोसा नहीं किया जा सकता है।


5
आप मान रहे हैं कि आपके हमलावर के पास कुछ कौशल है, किसी भी तरह से चोरी करना चाहता है, और विशुद्ध रूप से स्पैम को नष्ट करने और अपने OC3 को बोटनेट में जोड़ने में कोई दिलचस्पी नहीं है। इन दिनों, आप आमतौर पर इस तथ्य से पता लगाते हैं कि आपके सर्वर से बड़े पैमाने पर स्पैम निकल रहे हैं, आमतौर पर एक अतिभारित सिस्टम पर होना चाहिए जो नहीं होना चाहिए। अधिकांश "हैकर्स" इन दिनों पैसे से प्रेरित हैं।
Ernie

2
सबसे उन्नत हमले के उपकरण को इन दिनों शून्य कौशल की आवश्यकता होती है और आसानी से उपलब्ध होते हैं और कुछ डिफ़ॉल्ट रूप से और डिजाइन द्वारा बहुत ही चुपके से होते हैं। नुकसान के लिए इस्तेमाल होने से पहले लंबे समय तक बोटनेट / लाश बेकार हो सकती है लेकिन हमले के उपकरण में कीड़े अवांछित दुर्घटनाओं और अजीब व्यवहार आदि का कारण बन सकते हैं
ओस्कर डुवॉर्न

11

ट्रिपवायर एक आमतौर पर इस्तेमाल किया जाने वाला उपकरण है - यह आपको सूचित करता है कि सिस्टम फाइलें कब बदल गई हैं, हालांकि जाहिर है कि आपको इसे पहले से इंस्टॉल करना होगा। अन्यथा नए उपयोगकर्ता खाते जैसे आइटम जिनके बारे में आपको पता नहीं है, अजीब प्रक्रियाएं और फाइलें जिन्हें आप नहीं पहचानते हैं, या बिना किसी स्पष्ट कारण के लिए बैंडविड्थ उपयोग में वृद्धि सामान्य संकेत हैं।

अन्य मॉनिटरिंग सिस्टम जैसे कि Zabbix को आपको अलर्ट करने के लिए कॉन्फ़िगर किया जा सकता है, जब / etc / passwd जैसी फाइलें बदल जाती हैं।


11

कुछ चीजें जो मुझे अतीत में छीन चुकी हैं:

  • एक सिस्टम पर उच्च भार जो निष्क्रिय होना चाहिए
  • अजीब segfaults, उदा। मानक उपयोगिताओं से जैसे ls(यह टूटी हुई रूट किट के साथ हो सकता है)
  • ( /या /var/स्क्रिप्ट लिपि में छिपी हुई निर्देशिकाएं बहुत बेवकूफ या आलसी हैं)
  • netstat खुले पोर्ट दिखाता है जो कि नहीं होना चाहिए
  • प्रक्रिया सूची में डेमॉन जिसका आप सामान्य रूप से विभिन्न स्वादों का उपयोग करते हैं (उदाहरण के लिए bind, लेकिन आप हमेशा उपयोग करते हैं djbdns)

इसके अतिरिक्त मुझे एक विश्वसनीय संकेत मिला है कि एक बॉक्स से छेड़छाड़ की जाती है: यदि आपके पास उस व्यवस्थापक की विरासत (अद्यतन, आदि) के बारे में एक बुरी भावना है, जिससे आपको एक प्रणाली विरासत में मिली है, तो उस पर कड़ी नजर रखें!


10

हैक किए गए सर्वरों को जाँचने की एक विधि है kill-

अनिवार्य रूप से, जब आप "किल -0 $ पीआईडी" चलाते हैं तो आप पहचानकर्ता $ पीआईडी ​​को संसाधित करने के लिए एक एनओपी संकेत भेज रहे हैं। यदि प्रक्रिया चल रही है, तो किल कमांड सामान्य रूप से बाहर निकल जाएगी। (एफडब्ल्यूआईडब्ल्यू, चूंकि आप एक एनओपी किल सिग्नल पास कर रहे हैं, इस प्रक्रिया से कुछ भी नहीं होगा)। यदि कोई प्रक्रिया नहीं चल रही है, तो किल कमांड विफल हो जाएगी (शून्य से कम स्थिति बाहर निकलें)।

जब आपका सर्वर हैक हो जाता है / एक रूटकिट स्थापित हो जाता है, तो पहली चीजों में से एक यह करता है कि प्रक्रिया की तालिकाओं आदि से प्रभावित प्रक्रियाओं को छिपाने के लिए कर्नेल को बताया जाता है, हालांकि यह कर्नेल स्थान में सभी प्रकार की ठंडी चीजों को चारों ओर से घुमाने के लिए कर सकता है। प्रक्रियाओं। और इसलिए इसका मतलब है कि

क) यह जाँच एक व्यापक जाँच नहीं है, क्योंकि अच्छी तरह से कोडित / बुद्धिमान रूटकिट यह सुनिश्चित करेगा कि कर्नेल इस चेक को निरर्थक बनाते हुए "प्रक्रिया मौजूद नहीं है" उत्तर के साथ होगा। बी) किसी भी तरह, जब एक हैक किए गए सर्वर में "खराब" प्रक्रिया चल रही है, तो यह पीआईडी ​​आमतौर पर / खरीद के तहत नहीं दिखाएगा।

इसलिए , यदि आप अब तक यहां हैं, तो विधि सिस्टम में उपलब्ध प्रत्येक प्रक्रिया को -0 से मारना है (1 से कुछ भी -> / proc / sys / कर्नेल / pid_max) और देखें कि क्या प्रक्रियाएं चल रही हैं लेकिन रिपोर्ट नहीं की गई हैं in / proc।

यदि कुछ प्रक्रियाएं चल रही हैं, लेकिन रिपोर्ट नहीं की गई हैं, तो शायद आपको किसी भी तरह से देखने में समस्या हो।

यहाँ एक बैश स्क्रिप्ट है जो सभी को लागू करती है - https://gist.github.com/1032229 । उसे किसी फ़ाइल में सहेजें और उस पर अमल करें, अगर आपको कोई ऐसी प्रक्रिया मिलती है, जो खरीद में अप्राप्त है, तो आपके पास खुदाई शुरू करने के लिए कुछ लीड होनी चाहिए।

HTH।


Thats वास्तव में मेरे गृहस्वामी के लिए उपयोगी है जहाँ मुझे एक उत्पादक कार्य प्रणाली की तरह व्यवस्था बनाए रखने का समय नहीं मिला। किसी भी तरह, मैं एक पेशेवर वातावरण में इसका इस्तेमाल कर सकता हूं और परिणामों के बारे में निश्चित रूप से "रिश्तेदार" हो सकता हूं? और जवाब 3 साल पुराना होने के लिए: क्या यह अभी भी 2014 में आम संक्रमण के लिए जाँच करने के लिए एक वैध तरीका है?
हब

7

मैं यहां दी गई प्रतिक्रियाओं का दूसरा जवाब दूंगा और अपना एक जोड़ दूंगा।

find /etc /var -mtime -2

यह आपको एक त्वरित संकेत देगा यदि आपकी मुख्य सर्वर फ़ाइलों में से कोई भी पिछले 2 दिनों में बदल गया है।

यह हैक डिटेक्शन पर एक लेख से है कि कैसे पता लगाया जाए कि आपका सर्वर हैक हो गया है।


1
मैं सोचता हूँ-समय के बजाय-समय। -Ctime के साथ छेड़छाड़ नहीं कर सकते
Tillebeck

5

से मैं अपने सर्वर पर अवांछित घुसपैठ का पता लगाने कर सकते हैं?

  • एक आईडी का उपयोग करें

    SNORT® एक ओपन सोर्स नेटवर्क घुसपैठ रोकथाम और डिटेक्शन सिस्टम है जो एक नियम-चालित भाषा का उपयोग करता है, जो हस्ताक्षर, प्रोटोकॉल और विसंगति आधारित निरीक्षण विधियों के लाभों को जोड़ती है। लाखों डाउनलोड के साथ, स्नॉर्ट दुनिया भर में सबसे व्यापक रूप से घुसपैठ घुसपैठ और रोकथाम तकनीक है और उद्योग के लिए वास्तविक मानक बन गया है।

    स्नॉर्ट नेटवर्क ट्रैफ़िक को पढ़ता है और "पेन टेस्टिंग द्वारा ड्राइव" जैसी चीज़ों की तलाश कर सकता है, जहाँ कोई व्यक्ति आपके सर्वर के विरुद्ध संपूर्ण मेटास्प्लोइट स्कैन चलाता है। मेरी राय में, इस तरह की चीजों को जानने के लिए अच्छा है।

  • लॉग का उपयोग करें ...

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

  • अपने कॉन्फ़िगरेशन की निगरानी करें - मैं वास्तव में अपने पूरे / आदि को तोड़फोड़ में रखता हूं ताकि मैं संशोधनों को ट्रैक कर सकूं।

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

  • अपने सर्वर की निगरानी करें - जैसे आपने डिस्क्सस्पेस का उल्लेख किया है - यदि कुछ असामान्य है तो ग्राफ आपको संकेत दे सकते हैं। मैं CPU, नेटवर्क ट्रैफ़िक, डिस्क स्पेस, तापमान आदि पर नज़र रखने के लिए Cacti का उपयोग करता हूं । यदि कुछ अजीब लगता है तो यह अजीब है और आपको पता लगाना चाहिए कि यह अजीब क्यों है।


2

मैं इसे जोड़ना चाहूंगा:

अपने बैश इतिहास की जांच करें, अगर यह खाली है और आपने इसे खाली नहीं किया है या इसे खाली नहीं किया है, तो एक अच्छी संभावना है कि किसी ने आपके सर्वर से समझौता किया है।

अंतिम जाँच करें। या तो आप अज्ञात आईपी देखेंगे या यह बहुत खाली दिखेगा।

फिर जैसा कि स्वीकार किए गए उत्तर में कहा गया है, सिस्टम फाइलें अक्सर बदल जाती हैं, संशोधित तारीख की जांच करें। हालाँकि वे अक्सर संशोधित तिथि के साथ छेड़छाड़ करते हैं।

वे अक्सर यादृच्छिक पोर्ट पर चलने वाले ssh का दूसरा संस्करण स्थापित करते हैं। यह अक्सर कुछ वास्तव में विषम स्थानों में छिपा होता है। ध्यान दें कि इसे सामान्य रूप से ssh के अलावा किसी अन्य चीज़ में बदल दिया जाएगा। तो netstat की जाँच करें (जैसा कि वे अक्सर इसे बदल सकते हैं काम नहीं कर सकते हैं) और किसी भी अज्ञात पोर्ट को ब्लॉक करने के लिए iptables का उपयोग करें।

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

अपने सर्वर से छेड़छाड़ होने से रोकने के लिए निम्नलिखित बातों पर ध्यान दें।

  1. Ssh पोर्ट बदलें
  2. रूट को लॉगिन करने में सक्षम होने से रोकें
  3. केवल कुछ उपयोगकर्ताओं को अनुमति दें
  4. पासवर्ड लॉगइन को रोकें
  5. Ssh कुंजियों, बेहतर पासवर्ड संरक्षित कुंजियों का उपयोग करें
  6. जहां संभव हो सभी आईपी को ब्लैकलिस्ट करें और आवश्यक ips को श्वेतसूची में रखें।
  7. स्थापित करें और कॉन्फ़िगर करें fail2ban
  8. घुसपैठ का पता लगाने के लिए ट्रिपवायर का उपयोग करें
  9. Nagios या zabbix के साथ लॉग इन किए गए उपयोगकर्ताओं की संख्या की निगरानी करें। यहां तक ​​कि अगर आप लॉगिन करते समय हर बार अधिसूचित हो जाते हैं, तो कम से कम आपको पता चल जाएगा कि कब कोई और खेल रहा है।
  10. यदि संभव हो तो अपने सर्वर को वीपीएन पर रखें, और केवल वीपीएन आईपी के माध्यम से ssh की अनुमति दें। अपने वीपीएन को सुरक्षित करें।

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

यह वहाँ एक बदसूरत दुनिया है, मैं पुनरावृत्ति रोकथाम इलाज से बेहतर है।



0

आपको GuardRail की जांच करनी चाहिए। यह आपके सर्वर को दैनिक आधार पर स्कैन कर सकता है और आपको बता सकता है कि एक अच्छे दृश्य तरीके से क्या बदल गया है। इसके लिए किसी एजेंट की आवश्यकता नहीं होती है और यह SSH से जुड़ सकता है, इसलिए आपको किसी एजेंट के साथ अपनी मशीन और संसाधनों को रद्दी करने की आवश्यकता नहीं है।

सबसे अच्छा, यह 5 सर्वरों के लिए मुफ़्त है।

यहां इसकी जांच कीजिए:

https://www.scriptrock.com/


क्या यह क्लाउड सेवा रूट अधिकारों के साथ आपकी मशीन में प्रवेश कर रही है? यदि सेवा से समझौता किया जाता है तो क्या होगा?
हब

आपको इसे जड़ देने की जरूरत नहीं है। आप इसके बजाय एक एजेंट का उपयोग करने का विकल्प चुन सकते हैं, जिसका अर्थ है कि आपकी मशीन एसएसएच कॉलिंग के बजाय बाहर जाती है। डीबी जैसी चीजों के पासवर्ड हमेशा आपकी मशीन पर संग्रहीत होते हैं, क्लाउड में भी नहीं।
Cheyne
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.