- Datadog द्वारा विकसित Go एप्लिकेशनों के लिए एक सुरक्षित और भरोसेमंद ऑटो-इंस्ट्रूमेंटेशन टूल
- compile-time पर instrumentation जोड़कर runtime overhead को न्यूनतम करता है
- RASP फीचर के माध्यम से एप्लिकेशन की सुरक्षा करता है
- compile प्रक्रिया के दौरान source code को संशोधित करके Datadog APM tracing के लिए instrumentation को अपने-आप जोड़ता है
- Datadog Application Security Management Exploit Prevention फीचर के जरिए सामान्य vulnerabilities से एप्लिकेशन की रक्षा करता है
यह कैसे काम करता है
- Go toolchain के साथ एकीकृत होकर compile प्रक्रिया के दौरान source code का विश्लेषण और संशोधन करता है।
- Abstract Syntax Tree(AST) स्तर पर code को नियंत्रित करता है ताकि Go compiler सभी बदलावों को सत्यापित करे और type checking कर सके।
- एप्लिकेशन के सभी व्यवहारों तक असीमित पहुंच की अनुमति देते हुए compiled binary को सीधे संशोधित करने से होने वाली त्रुटियों से बचाता है।
- Go compiler की optimization प्रक्रिया से गुजरकर संशोधित code को optimize किया जाता है, जिससे runtime overhead कम होता है।
- संशोधित source code में Go
//line pragma निर्देश जोड़ता है ताकि बदलावों से line number प्रभावित न हों और instrumented application से बने stack trace मूल source code की सही स्थिति की ओर इशारा करें।
compile-time instrumentation क्यों उपयोग करें
- सुरक्षा, विश्वसनीयता, डेटा गुणवत्ता: compile-time instrumentation, binary patching या eBPF की तुलना में अधिक सुरक्षित है और अधिक भरोसेमंद डेटा बनाता है।
- ऑटोमेशन: binary patching और eBPF उच्च स्तर का ऑटोमेशन देते हैं, लेकिन Orchestrion के लिए build process में बदलाव और एप्लिकेशन को दोबारा deploy करना आवश्यक है।
- परफॉर्मेंस ओवरहेड: eBPF में kernel और user space के बीच context switching के कारण performance overhead हो सकता है। Orchestrion compile-time पर instrumentation जोड़कर runtime overhead को न्यूनतम करता है।
- समर्थित वातावरण: eBPF Linux वातावरण तक सीमित है, जबकि Orchestrion कई तरह के वातावरणों को support करता है।
- समग्र क्षमताएँ: eBPF की क्षमताएँ सीमित हैं, जबकि Orchestrion code level पर काम करता है और अधिक फीचर प्रदान करता है।
सुरक्षा के लिए Orchestrion
- code level पर काम करके ऐसा instrumentation जोड़ता है जो प्रोग्राम के control flow को बदल सकता है, और इसी तरह RASP फीचर को लागू करता है।
- SQL injection या local file inclusion जैसी सामान्य vulnerabilities से एप्लिकेशन को स्वयं सुरक्षित कर सकता है।
- यह कुछ APIs को पूरी तरह दूसरे APIs से बदल सकता है, इसलिए developers को tracing context chaining के लिए हर business logic layer में context value पास करने के बारे में अलग से नहीं सोचना पड़ता।
अभी कोई टिप्पणी नहीं है.