2012-10-16 13 views
8

मैं स्क्रैच से कर्नेल मॉड्यूल बनाना चाहता हूं जो उपयोगकर्ता सत्र में latches और उस उपयोगकर्ता से संबंधित प्रक्रियाओं द्वारा बनाई गई प्रत्येक सिस्टम कॉल पर नज़र रखता है।कर्नेल मॉड्यूल syscalls की निगरानी करने के लिए?

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

मैं इन विशेष मामलों को संभालने में सक्षम होना चाहता हूं और अपनी कुछ लॉगिंग कर सकता हूं। मुझे आश्चर्य है कि - मैं अपने मॉड्यूल के माध्यम से सभी सिस्कोल कैसे रूट कर सकता हूं? क्या कर्नेल कोड को छूए बिना ऐसा करने का कोई तरीका है?

धन्यवाद

+1

आपको 'ptrace' syscall (जिसे वास्तव में 'स्ट्रेस' और 'gdb' द्वारा उपयोग किया जाता है) का उपयोग करना चाहिए। शुभकामनाएं, आपको कुछ चाहिए। लेकिन आपको शायद किसी भी कर्नेल मॉड्यूल को कोड करने की आवश्यकता नहीं है, केवल 'ptrace' का उपयोग करके एक एप्लिकेशन को विकसित करने के लिए। –

उत्तर

2

मेरे पास है सिस्टम कॉल टेबल को पैच करने के लिए कर्नेल मॉड्यूल का उपयोग कर अतीत में कुछ ऐसा ही किया।

patchFunction(/*params*/) 
{ 
    // pre checks 
    ret = origFunction(/*params*/); 
    // post checks 
    return ret; 
} 

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

यह भी ध्यान दें, यह कई रूटकिट्स द्वारा नियोजित एक तकनीक है, इसलिए यदि आपके पास सुरक्षा सॉफ़्टवेयर स्थापित है तो यह आपको ऐसा कुछ करने से रोकने की कोशिश कर सकता है।

+0

यह निश्चित रूप से सही दिशा में था। https://bbs.archlinux.org/viewtopic.php?id=139406 मुझे ढूंढने वाली सबसे अच्छी मार्गदर्शिका थी। कुछ मैकिंग के साथ मैं वहां गया जहां मैं किसी भी syscall को हाइजैक कर सकता हूं। सहायता के लिए धन्यवाद! – PinkElephantsOnParade

3

मैं अपने प्रश्न का सटीक उत्तर नहीं है, लेकिन मैं एक कागज लाल कुछ दिनों के पहले और यह आपके लिए उपयोगी हो सकता है:

http://www.cse.iitk.ac.in/users/moona/students/Y2157230.pdf/

संबंधित मुद्दे