
oversight v0.5.8
एक हल्का सुरक्षा ऑडिटर और शेल स्क्रिप्ट्स के लिए सैंडबॉक्स। Oversight एक स्टैटिक एनालिसिस इंजन (Rust) को डायनामिक एनफोर्समेंट (Linux Landlock) के साथ जोड़ता है ताकि आपका सिस्टम दुर्भावनापूर्ण स्क्रिप्ट्स से सुरक्षित रहे।
Oversight (v0.5.8)
Oversight एक टर्मिनल-आधारित सुरक्षा खुफिया उपकरण है जिसे आपके सिस्टम को छूने से पहले शेल स्क्रिप्ट और कमांड का ऑडिट करने के लिए डिज़ाइन किया गया है। यह स्थानीय फ़ाइलों और Raw URLs के माध्यम से दूरस्थ स्क्रिप्ट दोनों का उच्च-गति, इंटरैक्टिव विश्लेषण प्रदान करके "अंध विश्वास" और "मैन्युअल ऑडिटिंग" के बीच की खाई को पाटता है।
Oversight

लाइव AUR अपडेट

स्क्रीनशॉट 1

स्क्रीनशॉट 2

मिशन
अधिकांश सिस्टम समझौते विश्वास की छलांग के कारण होते हैं, जैसे कि असत्यापित पैकेज अपग्रेड निष्पादित करना या रॉ सेटअप स्क्रिप्ट चलाना। Oversight आपको इन बफ़र्स में स्पष्ट अंतर्दृष्टि देता है, दुर्भावनापूर्ण पैटर्न को फ़्लैग करता है और सुरक्षा जोखिमों को सरल भाषा में समझाता है ताकि आप इंस्टॉलेशन की पुष्टि करने से पहले एक सूचित निर्णय ले सकें।
विशेषताएँ
- डायनामिक मल्टी-स्ट्रीम टैब लेआउट: यूनिफाइड गिट स्ट्रीम हेडर को तुरंत स्वचालित रूप से पार्स करता है। जब एक बैच अपडेट आता है, तो यह संयुक्त पैच स्ट्रीम को अलग करता है और प्रत्येक पैकेज के लिए समर्पित, पठनीय टैब उत्पन्न करता है, स्थानीय बिल्ड निर्देशिका से संबंधित
.installस्क्रिप्ट और.patchफ़ाइलों को खींचकर ऑडिट करता है। - ह्यूरिस्टिक एन्ट्रॉपी इंजन: ओबफस्केटेड पेलोड, पैक्ड डेटा और छिपे हुए स्ट्रिंग्स की पहचान करने के लिए शैनन एन्ट्रॉपी गणनाओं का कार्यान्वयन जिन्हें पारंपरिक regex स्कैनर चूक जाते हैं।
- दुर्भावनापूर्ण लाइफसाइकिल ट्रैकिंग: उन्नत व्यवहारिक विश्लेषण जो एक स्क्रिप्ट में संबंधित घटनाओं को जोड़ता है, जैसे कि ट्रोजन इंस्टॉलरों के लिए विशिष्ट Fetch -> Permissions Change -> Execution श्रृंखला।
- सुरक्षा हीट मैप साइडबार: एक ऊर्ध्वाधर ट्रैक जो सक्रिय फ़ाइल में खतरे के वितरण का वास्तविक समय दृश्य अवलोकन प्रदान करता है, यह सुनिश्चित करता है कि सटीक समन्वय संकेतक प्रत्येक अलग टैब बफ़र के लिए सटीक रूप से स्केल करते हैं।
- एंटी-फोरेंसिक और पर्सिस्टेंस डिटेक्शन: स्टील्थ व्यवहारों की निगरानी जिसमें स्व-विलोपन (
rm $0), साइलेंट पाइपलाइन (> /dev/null), RAM-केवल निष्पादन पथ (/dev/shm), और रीलोड हुक (crontab,systemctl) शामिल हैं। - भारित जोखिम स्कोरिंग: 0 से 100 सुरक्षा सूचकांक लागू करता है जो फ्लैट मैक्रो मेट्रिक्स के आधार पर स्ट्रीम को Clean, Caution, या Dangerous के रूप में वर्गीकृत करता है जो जोखिम-स्कोर ब्लोट से बचते हैं।
- वैश्विक शमन टॉगल: उपयोगकर्ताओं को TUI के माध्यम से एक ही स्विच का उपयोग करके सक्रिय निष्कर्षों को तुरंत दबाने की अनुमति देता है। यह फ़्लैग किए गए ब्लॉकों पर टिप्पणी करके दृश्य को स्वच्छ करता है और वास्तविक समय में वैश्विक जोखिम स्कोर सूचकांक की पुनर्गणना करता है।
- क्लीन स्ट्रीम पेजर मोड: खाली व्यूपोर्ट ब्लॉकों को हटाता है। जब एक स्ट्रीम शून्य फ़्लैग के साथ विश्लेषण पास करती है, तो पूर्ण टर्मिनल लेआउट एक कार्यात्मक पेजर के रूप में खुला रहता है, जो मानक लाइन-दर-लाइन मैन्युअल कोड समीक्षा की अनुमति देता है।
- डायनामिक रूल्स इंजन: पैटर्न एक स्वतंत्र रूल्स मॉड्यूल में बाहरीकृत होते हैं, जो TUI पार्सिंग लूप को तोड़े बिना विभिन्न पैटर्न सिग्नेचर में मॉड्यूलर अपडेट की अनुमति देता है।
- रिमोट फ़ेचिंग इंजन: GitHub, Gist, या raw URLs से स्क्रिप्ट को सुरक्षित रूप से केवल-मेमोरी विश्लेषण के माध्यम से सीधे ऑडिट करें।
- शैक्षिक ऑडिटिंग: प्रत्येक सुरक्षा फ़्लैग में विस्तृत स्पष्टीकरण और बाहरी संदर्भ शामिल होते हैं ताकि उपयोगकर्ता दुर्भावनापूर्ण स्क्रिप्टिंग पैटर्न की पहचान करना सीख सकें।
- भेद्यता खुफिया: OSV.dev API का उपयोग करके ज्ञात CVEs के लिए एकीकृत वास्तविक समय स्कैनिंग, समर्थित पैकेज इंस्टॉलेशन कमांड का पता चलने पर स्वचालित रूप से ट्रिगर होता है।
निर्भरताएँ
Oversight प्रदर्शन और बाइनरी अलगाव के लिए Rust में बनाया गया है। संकलन के लिए निम्नलिखित मूल घटक आवश्यक हैं:
- Rust टूलचेन:
cargoऔरrustc(Edition 2021) मूल इंजन को संकलित करने के लिए। - OpenSSL:
reqwestद्वारा सुरक्षित रिमोट TLS/SSL फ़ेचिंग संचालन स्थापित करने के लिए आवश्यक सिस्टम लाइब्रेरी। - कोर क्रेट्स:
ratatui,crossterm,tokio,reqwest,clap, औरregex।
इंस्टॉलेशन और सेटअप
- AUR के माध्यम से (Arch Linux के लिए अनुशंसित) स्थिर रिलीज़ AUR पर बनाए रखा जाता है। इसे अपने पसंदीदा हेल्पर का उपयोग करके इंस्टॉल करें:
yay -S oversight-git
- या मैन्युअल रूप से बनाएं:
git clone [https://aur.archlinux.org/oversight-git.git](https://aur.archlinux.org/oversight-git.git)
cd oversight-git
makepkg -si
- स्रोत से:
git clone https://github.com/Rakosn1cek/oversight.git
cd oversight
- स्वचालित इंस्टॉलर चलाएं:
इंस्टॉलर संकलन को संभालता है, बाइनरी को
~/.local/binमें ले जाता है, और आपके शेल कॉन्फ़िगरेशन (.zshrc, .bashrc, या config.fish) में आवश्यक हुक इंजेक्ट करता है।
chmod +x install.sh
./install.sh
- अपना शेल रीलोड करें:
source ~/.zshrc या आपका संबंधित शेल कॉन्फ़िग
फ़ाइलें और स्थान
- बाइनरी: ~/.local/bin/oversight
- रूल्स डेटाबेस: ~/.local/share/oversight/rules.json ($XDG_DATA_HOME का सम्मान करता है)
- शेल हुक: ~/.local/share/oversight/oversight.[zsh|bash|fish]
उपयोग
- स्थानीय स्क्रिप्ट का ऑडिट करें:
oversight ./install.sh - रिमोट URL का ऑडिट करें:
oversight https://raw.githubusercontent.com/... - स्थानीय कॉन्फ़िगरेशन फ़ाइल का ऑडिट करें:
oversight ~/.local/share/oversight/rules.json - लाइव सुरक्षा:
curl https://...जैसे स्टैंडअलोन कमांड याrm -rf /जैसे जोखिम भरे पैटर्न को स्वचालित रूप से इंटरसेप्ट करता है ताकि एक बहु-विकल्प ट्राइएज मेनू प्रदान किया जा सके, और निष्पादन से पहले डाउनस्ट्रीम AUR कैश प्रोफाइल की गहराई से जांच करता है।
शेल कॉन्फ़िगरेशन एकीकरण
Oversight को स्थायी रूप से अपने प्राथमिक टेक्स्ट और अपग्रेड पेजर के रूप में तैनात करने के लिए, अपनी शेल प्रोफ़ाइल फ़ाइल (जैसे, ~/.zshrc, ~/.bashrc, या ~/.config/fish/config.fish) में निम्नलिखित कॉन्फ़िगरेशन नियमों में से कोई एक जोड़ें:
विकल्प A: समर्पित AUR हेल्पर एकीकरण (लक्षित)
आपके हेल्पर को अन्य सिस्टम कमांड को प्रभावित किए बिना विशेष रूप से पैकेज अपग्रेड के लिए Oversight का उपयोग करने के लिए बाध्य करता है:
yay के लिए (~/.zshrc या ~/.bashrc):
alias yay="yay --diffpager oversight"
paru के लिए (~/.config/paru/paru.conf): अपनी ~/.config/paru/paru.conf में ये पंक्तियाँ जोड़ें। आपको CombinedUpgrade विकल्प शामिल करना होगा, अन्यथा paru टेक्स्ट को Oversight को पास करने से पहले ANSI रंग कोड को हटा देगा, जिससे आपको काले और सफेद टेक्स्ट मिलेगा:
[options]
Pager = oversight
CombinedUpgrade
Shelly जैसे अन्य हेल्पर के लिए यदि आप एक अलग हेल्पर का उपयोग कर रहे हैं, तो आपको AUDIT_HELPER वेरिएबल का उपयोग करके Oversight को बताना होगा कि कैश फ़ाइलें कहाँ मिलेंगी। उदाहरण के लिए, आप इसे इस तरह चला सकते हैं:
AUDIT_HELPER=shelly shelly -Sua | oversight
वैकल्पिक रूप से, आप हेल्पर वेरिएबल को अपनी शेल प्रोफ़ाइल में वैश्विक रूप से निर्यात कर सकते हैं ताकि Oversight को हमेशा पता रहे कि कौन सा कैश पथ जांचना है:
export AUDIT_HELPER="shelly"
विकल्प B: वैश्विक सिस्टम पेजर पर्यावरण (सार्वभौमिक)
यह सेटअप Oversight को आपके डिफ़ॉल्ट सिस्टम टेक्स्ट पेजर के रूप में पंजीकृत करता है। इसका मतलब है कि पैकेज, मैन पेज और गिट स्ट्रीम स्वचालित रूप से इंटरफ़ेस के अंदर खुलेंगे।
अपनी ~/.zshrc या ~/.bashrc में ये पंक्तियाँ जोड़ें:
export PAGER="oversight"
export MANPAGER="oversight"
दूसरी पंक्ति आवश्यक है यदि आपका सिस्टम कॉन्फ़िगरेशन पहले से MANPAGER को less या किसी अन्य टूल पर सेट करता है।
वैश्विक पेजर दुष्प्रभाव संदर्भ
- Oversight को प्राथमिक सिस्टम टेक्स्ट व्यूअर के रूप में निर्यात करके वैश्विक रूप से तैनात करते समय, इंजन उन सभी डेटा स्ट्रीम को इंटरसेप्ट करता है जो टर्मिनल पेजिंग तंत्र से गुजरती हैं।
- जबकि सिस्टम इन इनपुट को सुरक्षित रूप से संभालता है, आप अपने दैनिक टर्मिनल संचालन में विशिष्ट व्यवहार देखेंगे।
- एक पूर्ण सिस्टम अपग्रेड चलाने से AUR कतार तक पहुंचने से पहले आधिकारिक रिपॉजिटरी मिरर संसाधित होते हैं। क्योंकि आधिकारिक बाइनरी में गिट संरचनात्मक पथ या कैश स्क्रिप्ट की कमी होती है, Oversight स्वचालित रूप से एक फ्लैट टेक्स्ट बफ़र पर वापस आ जाता है। इंटरफ़ेस एक एकल Static Analysis Passed फाइंडिंग पंक्ति प्रस्तुत करता है और आपके तीर कुंजियों को मानक टेक्स्ट पेजर की तरह टेक्स्ट ट्रांज़ैक्शन सूची को लाइन दर लाइन लंबवत रूप से स्क्रॉल करने के लिए मैप करता है।
man pacmanजैसे कमांड संदर्भों की समीक्षा करना निर्देश मैनुअल को सीधे इंजन के माध्यम से पुनर्निर्देशित करता है। टेक्स्ट एक क्लीन स्ट्रीम के रूप में पार्स होता है, जिससे आप एकीकृत TUI फ्रेम के अंदर दस्तावेज़ीकरण की समीक्षा करने के लिए मानक व्यूपोर्ट हॉटकी का उपयोग कर सकते हैं।- आपके स्थानीय रिपॉजिटरी में
git logयाgit diffजैसे मुख्य कमांड स्थिर रूल्स डेटाबेस से गुजरते हैं। यदि एक कमिट में मिलान सिग्नेचर पैटर्न होता है, तो यह इंजन अलर्ट ट्रिगर करता है, अन्यथा यह मुख्य पैन में मानक कोड समीक्षा साफ रूप से प्रस्तुत करता है। - आंतरिक पार्सिंग तर्क कई पैकेज टैब आवंटित करने के लिए सख्त यूनिफाइड हेडर हुक पर निर्भर करता है। यदि एक आने वाली स्ट्रीम में ये विशिष्ट कैश टोकन नहीं होते हैं, जैसे कि सामान्य मैन पेज या रिपॉजिटरी मिरर, तो टर्मिनल वर्कस्पेस विखंडन को रोकने के लिए मल्टी-टैब लेआउट पूरी तरह से बायपास हो जाता है।
कीबाइंड्स:
- ऊपर / नीचे तीर कुंजियाँ: हर समय बाएं पैनल पर फाइंडिंग आइटम के माध्यम से नेविगेट करें, यह सुनिश्चित करते हुए कि सूची चयन कभी फंस न जाए।
- PageUp / PageDown कुंजियाँ: सूची चयन से स्वतंत्र रूप से केंद्रीय कोड व्यूपोर्ट को लाइन दर लाइन सुचारू रूप से स्क्रॉल करें।
- Tab कुंजी: सक्रिय कोड स्ट्रीम खंडों के माध्यम से फोकस को आगे साइकिल करें, संयुक्त पैच स्ट्रीम से सीधे व्यक्तिगत PKGBUILD स्रोत टैब में कूदते हुए।
- संख्यात्मक कुंजियाँ (0-9): किसी विशिष्ट टैब इंडेक्स लेआउट पर तुरंत कूदें।
- बायां तीर कुंजी: व्यूपोर्ट लंबवत स्क्रॉल समन्वय ऑफसेट को तुरंत शीर्ष पर रीसेट करें।
- [S] कुंजी: वैश्विक दमन टॉगल करें ताकि सक्रिय चयन ब्लॉक में फ़्लैग किए गए कोड ब्लॉकों को तुरंत टिप्पणी किया जा सके और एक पास में जोखिम मापदंडों को पुनर्संतुलित किया जा सके।
- [Q] या Esc: इंटरफ़ेस को सुरक्षित रूप से बंद करें और निष्पादन नियंत्रण को टर्मिनल प्रक्रिया पाइपलाइन में वापस पास करें।
नोट: Oversight एक सलाहकार उपकरण है। जबकि यह मजबूत regex पैटर्न मिलान का उपयोग करता है, कोई भी सुरक्षा उपकरण 100% बुलेटप्रूफ नहीं है। हमेशा "Final Verdict" को एक मार्गदर्शक के रूप में उपयोग करें और यदि आप किसी स्रोत के बारे में अनिश्चित हैं तो हाइलाइट किए गए कोड की मैन्युअल रूप से समीक्षा करें।
नोट2: Oversight अभी भी सक्रिय विकास में है; इसलिए, इस स्तर पर इसकी कार्यक्षमता या सिस्टम प्रभाव के संबंध में कोई गारंटी प्रदान नहीं की जाती है।
समर्थन और योगदान
यदि आप परियोजना का समर्थन या योगदान करना चाहते हैं तो आपका स्वागत है।
यदि आप Oversight के बारे में चर्चा करना या प्रश्न पूछना चाहते हैं तो कृपया मेरे Discord सर्वर Rakosn1cek से जुड़ें <- यह वैकल्पिक है, आवश्यकता नहीं है।
आप एक Issue भी खोल सकते हैं या Discussions में संदेश छोड़ सकते हैं।
लाइसेंस
MIT © 2026 Rakosn1cek। किसी भी पुनर्वितरण या व्युत्पन्न कार्यों के लिए एट्रिब्यूशन आवश्यक है।