अंतिम अपडेट: 28 Sept, 2026

XLSX vs. XLSM Security: How Spreadsheet Macros Expose Your Network

एक्सेल फ़ाइल सुरक्षा की व्याख्या: XLSX, XLSM, और मैक्रो जोखिम

दहकों से, Microsoft Excel व्यापार संचालन का सार्वभौमिक इंजन रहा है। यह कॉर्पोरेट बजट को संतुलित करता है, जटिल डेटा सेटों को दृश्य रूप देता है, इन्वेंटरी को ट्रैक करता है, और लगभग हर उद्योग में विश्लेषणात्मक पाइपलाइन को शक्ति प्रदान करता है।

फिर भी, वही गणनात्मक लचीलापन स्प्रेडशीट को साइबर विरोधियों के बीच एक स्थायी पसंद बनाता है। हमलावरों ने 1990 के दशक के अंत में मैक्रो वायरस के शुरुआती दिनों से स्प्रेडशीट को हथियार बनाया है। जबकि Microsoft और सिस्टम प्रशासकों ने फ़ाइल फ़ॉर्मेट विभाजन और डिफ़ॉल्ट मैक्रो ब्लॉकिंग जैसी कई रक्षा परतें पेश की हैं—सामाजिक इंजीनियरिंग और सूक्ष्म वास्तुशिल्प जोखिम Excel-केन्द्रित हमलों को प्रासंगिक बनाए रखते हैं।

एक लचीली सुरक्षा स्थिति बनाने के लिए, डेवलपर्स, प्रशासक, और पावर यूज़र्स को वर्कबुक इंटरफ़ेस के नीचे देखना चाहिए। यह समझना कि अंतर्निहित OpenXML फ़ॉर्मेट कैसे काम करता है, .xlsx और .xlsm वास्तुशिल्प स्तर पर कैसे भिन्न होते हैं, और मैक्रो निष्पादन तंत्र कैसे कार्य करता है, आधुनिक एंडपॉइंट्स की रक्षा के लिए अत्यंत महत्वपूर्ण है।

1. आधुनिक एक्सेल फ़ाइलों की संरचना: OpenXML का विश्लेषण

Microsoft Office 2007 के रिलीज़ से पहले, Excel मुख्यतः स्वामित्व बाइनरी फ़ॉर्मेट्स का उपयोग करके फ़ाइलें सहेजता था, जिसमें सबसे प्रमुख .xls फ़ॉर्मेट (Binary Interchange File Format, या BIFF8 द्वारा नियंत्रित) था। .xls फ़ाइलों में, डेटा रिकॉर्ड, फ़ॉर्मेटिंग परिभाषाएँ, फ़ॉर्मूले, और Visual Basic for Applications (VBA) मैक्रो स्ट्रीम्स को एक एकल संरचित स्टोरेज कंटेनर में पैकेज किया जाता था। इससे प्रोग्रामेटिक निरीक्षण कठिन हो जाता था और हमलावरों को अस्पष्ट बाइनरी सेक्टरों के भीतर दुर्भावनापूर्ण पेलोड स्क्रिप्ट्स छिपाने की अनुमति मिलती थी।

Excel 2007 से शुरू होकर, Microsoft ने Office Open XML (OOXML) मानक (ECMA-376 और ISO/IEC 29500 के रूप में मानकीकृत) प्रस्तुत किया। OOXML के तहत, Excel वर्कबुक अब एकीकृत बाइनरी ब्लॉब नहीं हैं। बल्कि, वे ज़िप्ड आर्काइव होते हैं जिनमें XML दस्तावेज़ों, रिलेशनशिप टेबल्स, और एम्बेडेड मीडिया एसेट्स की पदानुक्रमित संरचना होती है।

ZIP कंटेनर के अंदर

यदि आप किसी भी मानक आधुनिक Excel वर्कबुक को लेकर उसका एक्सटेंशन .zip में बदल दें, तो आप किसी भी मानक डिकम्प्रेशन यूटिलिटी से उसकी सामग्री निकाल सकते हैं:

my_workbook.xlsx (extracted)
│
├── [Content_Types].xml        <-- Registry of MIME types and structural parts
├── _rels/                     <-- Package-level relationship mappings
│   └── .rels
├── docProps/                  <-- Metadata (author, creation date, revision)
│   ├── app.xml
│   └── core.xml
└── xl/                        <-- Core spreadsheet contents
    ├── workbook.xml           <-- Workbook-level parameters and sheet list
    ├── styles.xml             <-- Cell styles, fonts, and borders
    ├── sharedStrings.xml      <-- Unique string index for performance optimization
    ├── _rels/
    │   └── workbook.xml.rels  <-- Sheet and component dependencies
    └── worksheets/
        ├── sheet1.xml         <-- Raw cell values, formulas, and grid geometry
        └── sheet2.xml

इस संरचनात्मक बदलाव ने तुरंत सुरक्षा लाभ प्रदान किए:

  1. DPI (Deep Packet Inspection) & Gateway Visibility: सुरक्षा उपकरण, प्रॉक्सी और एंडपॉइंट एजेंट तुरंत आर्काइव को अनपैक कर सकते हैं और प्लेनटेक्स्ट XML ट्रीज़ को पार्स करके संदिग्ध स्ट्रिंग्स, बाहरी URLs, या एम्बेडेड ऑब्जेक्ट्स की पहचान कर सकते हैं।
  2. Deterministic File Validation: यदि कोई फ़ाइल दावा करती है कि वह OpenXML दस्तावेज़ है लेकिन स्कीमा प्रतिबंधों का उल्लंघन करती है, तो Excel इसे खोलने से इनकार कर देता है या इसे सैंडबॉक्स्ड रिकवरी मोड में चलाता है।
  3. Format Separation: Microsoft ने नियमित गणनात्मक स्प्रेडशीट्स को उन फ़ाइलों से अलग कर दिया जो एम्बेडेड प्रोसीजरल स्क्रिप्ट्स को निष्पादित करने में सक्षम थीं।

2. XLSX बनाम XLSM: वास्तुशिल्प सीमा

.xlsx और .xlsm के बीच मुख्य अंतर यह है कि फ़ाइल संरचना निष्पादन योग्य मैक्रो प्रोजेक्ट्स को शामिल करने की अनुमति देती है या नहीं।

फ़ीचर / आयाम.xlsx (Excel OpenXML स्प्रेडशीट).xlsm (एक्सेल मैक्रो-सक्षम स्प्रेडशीट)
MIME सामग्री प्रकारapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.ms-excel.sheet.macroEnabled.12
VBA संग्रह कंटेनरसख्ती से प्रतिबंधित। vbaProject.bin को संग्रहीत नहीं किया जा सकताअनुमत। xl/vbaProject.bin शामिल है
मूल निष्पादन जोखिममैक्रो निष्पादन के लिए नगण्य; सूत्र इंजेक्शन/DDE तक सीमितउच्च; वर्कबुक इंटरैक्शन पर स्वचालित VBA कोड चला सकता है
OpenXML सख्त स्कीमासख्त, मैक्रो-रहित XML परिभाषाओं के अनुरूपविरासत और आधुनिक ऑटोमेशन एक्सटेंशन के लिए परिभाषाएँ शामिल करता है
उपयोगकर्ता दृश्य संकेतकमानक हरा स्प्रेडशीट आइकनस्प्रेडशीट आइकन पर विस्मयादिबोधक चिह्न के साथ बेज़

प्रवर्तन तंत्र: क्यों XLSX मैक्रो नहीं चला सकता

जूनियर प्रशासकों और डेवलपर्स के बीच एक सामान्य प्रश्न है: यदि एक हमलावर एक दुर्भावनापूर्ण .xlsm फ़ाइल लेता है, उसमें निष्पादन योग्य कोड डालता है, और फ़ाइल एक्सटेंशन को .xlsx में बदल देता है तो क्या होता है?

संक्षिप्त उत्तर: फ़ाइल मैक्रो को निष्पादित नहीं करेगी।

Excel फ़ाइल एक्सटेंशन पर केवल निर्भर नहीं करता है ताकि निष्पादन नियम निर्धारित किए जा सकें। जब .xlsx नाम की फ़ाइल खोलते हैं:

  1. Excel ज़िप पेलोड की जांच करता है और [Content_Types].xml को संदर्भित करता है।
  2. एक वास्तविक .xlsx फ़ाइल में, सभी परिभाषित कंटेंट टाइप्स मानक डेटा तत्वों का प्रतिनिधित्व करते हैं (जैसे worksheet, sharedStrings, या styles)।
  3. यदि एक हमलावर मैन्युअल रूप से एक संकलित VBA स्ट्रीम (xl/vbaProject.bin) को .xlsx पैकेज में डालता है और रिलेशनशिप्स को अपडेट करता है, तो Excel एक स्पष्ट स्कीमा विरोध का सामना करता है:
    • यह एक .xlsx एक्सटेंशन को ऐसे कंटेंट टाइप्स से बंधा देखता है जो मैक्रो क्षमता दर्शाते हैं।
    • Excel एक गंभीर इंटेग्रिटी त्रुटि फेंकता है: "Excel फ़ाइल ‘filename.xlsx’ को नहीं खोल सकता क्योंकि फ़ाइल फ़ॉर्मेट या फ़ाइल एक्सटेंशन मान्य नहीं है। सुनिश्चित करें कि फ़ाइल भ्रष्ट नहीं हुई है…"
  4. यदि हमलावर आंतरिक प्रकारों को अपरिवर्तित छोड़ देता है और बाइनरी को पंजीकृत नहीं करता, तो Excel vbaProject.bin को ज़िप अभिलेख में एक अनसंदर्भित, अनाथ संलग्नक मानता है और लोड चक्र के दौरान इसे पूरी तरह हटा देता है।

परिणामस्वरूप, एक फ़ाइल जो सख्ती से वास्तविक .xlsx कंटेनर के रूप में कार्य करती है, मूल VBA कोड नहीं चला सकती। हालांकि, इसका यह अर्थ नहीं है कि .xlsx फ़ाइलें सभी हमले के मार्गों से मुक्त हैं, जैसा कि इस गाइड में बाद में चर्चा की गई है।

3. मैक्रो जोखिम और हमले का जीवनचक्र

मैक्रो को दोहरावदार लेखा, वित्तीय मॉडलिंग, और डेटा हेरफेर कार्यों को Visual Basic for Applications (VBA) के माध्यम से स्वचालित करने के लिए डिज़ाइन किया गया था। क्योंकि VBA कार्यस्थल स्वचालन के लिए बनाया गया था, इसे Component Object Model (COM), Windows Script Host (WSH), और सीधे Win32 API कॉल्स के माध्यम से अंतर्निहित Windows ऑपरेटिंग सिस्टम तक व्यापक पहुँच प्रदान की गई।

जब कोई अविश्वसनीय मैक्रो निष्पादित होता है, तो यह लॉग‑इन उपयोगकर्ता के समान ठीक‑वैसे विशेषाधिकारों के साथ चलता है। यह एक वर्चुअलाइज़्ड जावास्क्रिप्ट‑शैली ब्राउज़र सैंडबॉक्स में फँसा नहीं होता।

+--------------------------------------------------------------------------------+
|                             ATTACK LIFECYCLE                                   |
+--------------------------------------------------------------------------------+
                                       │
                                       ▼
  [ Delivery & Evasion ]  ──────► Spear-phishing email with .xlsm, .xlam, or .zip.
                                       │
                                       ▼
  [ Social Engineering ]  ──────► Lures victim to bypass Protected View ("Enable Content").
                                       │
                                       ▼
  [ Auto-Execution ]      ──────► Auto_Open() or Workbook_Open() triggers automatically.
                                       │
                                       ▼
  [ System Invocation ]   ──────► VBA creates COM objects (WScript.Shell, WinHttp.WinHttpRequest).
                                       │
                                       ▼
  [ Payload Retrieval ]   ──────► Spawns hidden PowerShell/cURL to fetch staging binary.
                                       │
                                       ▼
  [ Post-Exploitation ]   ──────► In-memory execution, credential theft, lateral movement.

सामान्य मैक्रो प्रवेश तकनीकें

  1. ऑटो‑एक्ज़ीक्यूशन हुक्स: आक्रमणकर्ता अपने प्रवेश बिंदु को अंतर्निहित इवेंट हैंडलर्स जैसे Sub Auto_Open() या Private Sub Workbook_Open() में रखते हैं। जैसे ही उपयोगकर्ता निष्पादन अनुमतियाँ देता है, ये रूटीन स्प्रेडशीट के भीतर किसी भी क्लिक की आवश्यकता के बिना ट्रिगर हो जाते हैं।

  2. ऑबफ़स्केशन और स्टॉम्पिंग:

    • स्ट्रिंग ऑबफ़स्केशन: पेलोड URL और सिस्टम कॉल को कैरेक्टर एरेज़, XOR एन्कोडिंग, Base64 डिकोडिंग, या पर्यावरण वेरिएबल संयोजन (जैसे, Chr(112) & Chr(111) & Chr(119)...) का उपयोग करके छिपाते हैं।
    • VBA स्टॉम्पिंग: vbaProject.bin के भीतर VBA दो रूपों में मौजूद है: व्याख्यायित स्रोत कोड और संकलित p-code (विशिष्ट Office संस्करण के लिए लक्षित छद्म-कोड)। आक्रमणकर्ता स्पष्ट पाठ स्रोत कोड को पूरी तरह मिटा सकते हैं, केवल संकलित p-code छोड़ते हुए। कई बुनियादी एंटीवायरस समाधान और स्थैतिक विश्लेषक केवल स्रोत स्ट्रीम की जांच करते हैं, जिससे p-code अनदेखा रहता है जब तक कि वह मिलते-जुलते Office संस्करण द्वारा निष्पादित न हो जाए।
  3. लिविंग ऑफ द लैंड (LotL): आधुनिक दुर्भावनापूर्ण मैक्रो बहुत कम ही .exe फ़ाइल को सीधे डिस्क पर ड्रॉप करते हैं, जो तुरंत एंडपॉइंट डिटेक्शन और रिस्पॉन्स (EDR) एजेंटों को सतर्क कर देगा। इसके बजाय, वे अंतर्निहित सिस्टम टूल्स के साथ इंटरैक्ट करते हैं:

    • WScript.Shell को इंस्टैंशिएट करके कमांड-लाइन आर्ग्युमेंट्स को निष्पादित करना।
    • PowerShell.exe को निष्पादन नीति बायपास (-ExecutionPolicy Bypass -WindowStyle Hidden) के साथ चलाना।
    • Declare PtrSafe Function CreateProcess या VirtualAlloc के माध्यम से मूल Win32 API को कॉल करके शेलकोड को सीधे सिस्टम मेमोरी में इंजेक्ट करना।

4. अन्य स्प्रेडशीट खतरे वेक्टर (मानक VBA से परे)

.xlsm फ़ाइलों के खिलाफ वातावरण को सुरक्षित करना केवल आधा संघर्ष है। विरोधी पारंपरिक VBA से स्वतंत्र रूप से कार्य करने वाले तंत्रों का भी उपयोग करते हैं।

डायनामिक डेटा एक्सचेंज (DDE) और CSV इंजेक्शन

Excel में एक पुरानी प्रोटोकॉल है जिसे डायनेमिक डेटा एक्सचेंज (DDE) कहा जाता है, जिसका उद्देश्य चल रही अनुप्रयोगों के बीच डेटा साझा करना है (उदाहरण के लिए, एक अलग प्रोग्राम से लाइव स्टॉक टिकर डेटा को Excel सेल में स्ट्रीम करना)।

  • फ़ॉर्मूला इंजेक्शन कैसे काम करता है: जब एक स्प्रेडशीट सेल =, @, +, या - जैसे अक्षरों से शुरू होता है, तो Excel सामग्री को एक फ़ॉर्मूला के रूप में व्याख्या करता है। यदि एक हमलावर इनपुट को नियंत्रित करता है जो स्प्रेडशीट में निर्यात किया गया है (जैसे वेब एप्लिकेशन में असैनिटाइज़्ड "Comments" फ़ील्ड जो CSV या XLSX में निर्यात किया गया हो), तो वे इंजेक्ट कर सकते हैं:
    =cmd|'/C powershell.exe -w hidden -enc <base64_payload>'!A0
    
  • जब खोला जाता है, तो Excel फ़ॉर्मूला का मूल्यांकन करता है, उपयोगकर्ता को बाहरी एप्लिकेशन शुरू करने के बारे में एक प्रॉम्प्ट के साथ सतर्क करता है, और यदि स्वीकृत किया जाता है, तो सिस्टम शेल चलाता है।

Excel 4.0 (XLM) लेगेसी मैक्रो

1993 में VBA के परिचय से पहले, Excel एक फ़ॉर्मूला-आधारित मैक्रो सिस्टम का उपयोग करता था जिसे Excel 4.0 (XLM) मैक्रो कहा जाता था। ये मैक्रो अलग VBA प्रोजेक्ट के बजाय समर्पित मैक्रो शीट्स के भीतर स्थित होते हैं।

क्योंकि XLM मैक्रो को सेल फ़ॉर्मूले के रूप में लिखा जाता है (जैसे =EXEC("calc.exe")), वे कई मानक VBA स्थैतिक निरीक्षण इंजनों को बायपास कर देते हैं। हमलावरों ने 2010 के अंत और 2020 के शुरुआती वर्षों में XLM मैक्रो को स्वचालित पहचान से बचने के लिए पसंद किया, इससे पहले कि Microsoft ने आधुनिक एंटरप्राइज़ बिल्ड्स में उन्हें डिफ़ॉल्ट रूप से अक्षम कर दिया।

दुर्भावनापूर्ण बाहरी कनेक्शन और OLE ऑब्जेक्ट्स

एक सामान्य .xlsx वर्कबुक अभी भी बाहरी संसाधनों के माध्यम से जोखिम पैदा कर सकता है:

  • Embedded OLE Packages: एक हमलावर एक निष्पादन योग्य फ़ाइल को एम्बेडेड PDF आइकन के रूप में छिपाकर सीधे वर्कशीट में डाल सकता है।
  • External Workbook Links & Web Queries: एक XLSX में बाहरी रेफ़रेंसेज़ हो सकते हैं जो फ़ाइल खोलते ही स्वचालित रूप से हमलावर-नियंत्रित कमांड-एंड-कंट्रोल (C2) सर्वरों को HTTP GET अनुरोध भेजते हैं, मुख्यतः जासूसी या netNTLM हैश-हैरवेस्टिंग हमलों के लिए उपयोग किए जाते हैं।

5. एंटरप्राइज़ हार्डनिंग और डिफेंस-इन-डेप्थ रणनीतियाँ

Excel-जनित खतरों से रक्षा करने के लिए नेटवर्क निरीक्षण, सिस्टम कॉन्फ़िगरेशन, एक्सेस कंट्रोल और संचालन प्रक्रियाओं को शामिल करने वाला एक स्तरित दृष्टिकोण आवश्यक है।

+─────────────────────────────────────────────────────────+
|                  ENTERPRISE DEFENSE LAYERS               |
+─────────────────────────────────────────────────────────+
|  PERIMETER: Drop inbound .xlsm, .xla, and .xltm at mail |
|  gateway unless cryptographically signed or exempted.   |
+---------------------------------------------------------+
|  IDENTITY & POLICY: Enforce ASR rules and apply         |
|  Mark of the Web (MotW) macro execution blocks.         |
+---------------------------------------------------------+
|  RUNTIME: Hook AMSI into Office to evaluate dynamic     |
|  VBA buffers directly before execution.                 |
+---------------------------------------------------------+
|  STORAGE: Restrict macro execution exclusively to       |
|  managed, centralized Trusted Locations.                |
+─────────────────────────────────────────────────────────+

1. वेब मार्क (MotW) मैक्रो ब्लॉकिंग लागू करें

2022 में, माइक्रोसॉफ्ट ने ऑफिस एप्लिकेशनों के डिफ़ॉल्ट व्यवहार को अपडेट किया: इंटरनेट से उत्पन्न फ़ाइलों में मैक्रो डिफ़ॉल्ट रूप से ब्लॉक किए जाते हैं।

जब कोई उपयोगकर्ता ब्राउज़र या बाहरी क्लाइंट के माध्यम से फ़ाइल डाउनलोड करता है, तो विंडोज़ फ़ाइल को एक वैकल्पिक डेटा स्ट्रीम (ADS) के साथ टैग करता है जिसका नाम Zone.Identifier है (ज़ोन 3 इंटरनेट को दर्शाता है)। इस चिह्न वाली फ़ाइलों के लिए, एक्सेल पूरी तरह से मैक्रो को निष्क्रिय कर देता है और एक लाल सुरक्षा बैनर दिखाता है: > "सुरक्षा जोखिम: माइक्रोसॉफ्ट ने मैक्रो को चलने से ब्लॉक कर दिया है क्योंकि इस फ़ाइल का स्रोत अविश्वसनीय है।"

प्रशासनिक कार्रवाई: सुनिश्चित करें कि यह व्यवहार समूह नीति (Group Policy) के माध्यम से लागू हो और अंतिम उपयोगकर्ताओं द्वारा ओवरराइड नहीं किया जा सके:

  • GPO पथ: User Configuration > Administrative Templates > Microsoft Excel 2016 > Excel Options > Security > Trust Center
  • सेटिंग: सक्षम करें "इंटरनेट से ऑफिस फ़ाइलों में मैक्रो चलने से रोकें".

2. अटैक सरफेस रिडक्शन (ASR) नियम कॉन्फ़िगर करें

Microsoft Defender for Endpoint का उपयोग करने वाले संगठनों को ऑफिस एप्लिकेशनों के लिए विशेष रूप से डिज़ाइन किए गए मुख्य Attack Surface Reduction नियम सक्रिय करने चाहिए:

  • Block Office applications from creating child processes (GUID: D4F940AB-401B-4EFC-AADC-AD5F3C50688A)
    • एक्सेल को PowerShell, CMD, या स्क्रिप्टिंग इंजन लॉन्च करने से रोकता है।
  • ऑफ़िस अनुप्रयोगों को अन्य प्रक्रियाओं में कोड इंजेक्ट करने से रोकें (GUID: 75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84)
  • ऑफ़िस मैक्रोज़ से Win32 API कॉल को रोकें (GUID: 92E6390C-CF9E-43CE-BD8C-0E6F0FE66680)

3. एंटीमालवेयर स्कैन इंटरफ़ेस (AMSI) का उपयोग करें

Microsoft 365 के आधुनिक संस्करण VBA निष्पादन को सीधे AMSI के साथ एकीकृत करते हैं। यहाँ तक कि यदि कोई हमलावर जटिल स्ट्रिंग अस्पष्टता या VBA स्टॉम्पिंग लागू करता है, तो VBA रनटाइम इंजन पुनर्निर्मित, अनएन्क्रिप्टेड कमांड को आपके स्थापित एंटीवायरस/EDR इंजन को निष्पादन से ठीक एक मिलीसेकंड पहले पास करता है। सुनिश्चित करें कि आपका एंडपॉइंट प्रोटेक्शन सक्रिय रूप से AMSI रनटाइम इवेंट्स की निगरानी करता है।

4. विश्वसनीय स्थानों और डिजिटल प्रमाणपत्रों में परिवर्तन करें

दैनिक संचालन के लिए स्वचालित स्प्रेडशीट्स पर निर्भर संगठनों के लिए:

  • उपयोगकर्ता के डाउनलोड्स या डेस्कटॉप फ़ोल्डरों में बिखरे हुए XLSM फ़ाइलों को समाप्त करें।
  • विश्वसनीय स्थानों का उपयोग करें: मैक्रो निष्पादन को केवल आईटी प्रशासकों द्वारा प्रबंधित रीड-ओनली नेटवर्क शेयर तक सीमित रखें।
  • कोड साइनिंग: यह अनिवार्य करें कि सभी आंतरिक रूप से विकसित मैक्रो एंटरप्राइज़ पब्लिक की इन्फ्रास्ट्रक्चर (PKI) द्वारा जारी प्रमाणपत्र का उपयोग करके क्रिप्टोग्राफ़िक रूप से साइन किए जाएँ। एक्सेल को इस प्रकार कॉन्फ़िगर करें कि वह केवल डिजिटल रूप से साइन किए गए मैक्रो को निष्पादित करे और बिना साइन किए गए को चुपचाप ब्लॉक कर दे।

6. डेवलपर का दृष्टिकोण: सुरक्षित ऑटोमेशन बनाना

यदि आप ऐसा सॉफ़्टवेयर बना रहे हैं जो Excel फ़ाइलों को पार्स, जेनरेट या उपभोग करता है (उदाहरण के लिए, pandas/openpyxl का उपयोग करने वाले Python पाइपलाइन, Node.js माइक्रोसर्विसेज, या C#/.NET एप्लिकेशन), तो इन विकास सुरक्षा उपायों को लागू करें:

  1. अपलोड सीमा पर अप्रत्याशित फ़ाइल फ़ॉर्मेट को अस्वीकार करें: यदि आपका एप्लिकेशन वित्तीय रिपोर्टों की अपेक्षा करता है, तो सख्ती से सत्यापित करें कि आने वाली फ़ाइलें .xlsx फ़ॉर्मेट के अनुरूप हों। आंतरिक मैजिक बाइट्स (मानक ज़िप हेडर 50 4B 03 04) की जाँच करें और क्लाउड बकेट्स या डेटाबेस स्टोर्स में सहेजने से पहले यह सुनिश्चित करें कि आर्काइव इंडेक्स में कोई vbaProject.bin एंट्री मौजूद न हो।

  2. फ़ॉर्मूला इंजेक्शन से बचाने के लिए डेटा को साफ़ करें: जब उपयोगकर्ता‑जनित इनपुट को CSV या XLSX फ़ाइलों में निर्यात किया जाता है, तो किसी भी सेल जो ख़तरनाक अक्षरों (=, +, -, @, \t, \r) से शुरू होता है, उसके पहले एक अपॉस्ट्रॉफी (') या एक स्पेस जोड़ें:

    def sanitize_for_spreadsheet(value: str) -> str:
        if value and value[0] in ('=', '+', '-', '@', '\t', '\r'):
            return f"'{value}"
        return value
    
  3. VBA से Office Scripts या वेब ऐड‑इन्स में माइग्रेट करें: आधुनिक एंटरप्राइज़ ऑटोमेशन के लिए, लेगेसी VBA को पूरी तरह समाप्त करें:

    • Office Scripts: TypeScript में लिखे गए Office Scripts एक सैंडबॉक्स्ड क्लाउड वातावरण में चलते हैं और वेब तथा डेस्कटॉप संस्करणों में बिना मूल OS सिस्टम कॉल्स को उजागर किए साफ़ तरीके से कार्य करते हैं।
    • Office Web Add-ins: मानक HTML, CSS, और आधुनिक JavaScript का उपयोग करके निर्मित, वेब ऐड-इन प्रबंधित JavaScript API के माध्यम से संवाद करते हैं और स्थानीय ऑपरेटिंग सिस्टम से अलग होते हैं।

7. स्प्रेडशीट सुरक्षा के लिए सारांश चेकलिस्ट

  • डिफ़ॉल्ट रूप से .xlsx लागू करें: सभी मानक उपयोगकर्ता कार्यप्रवाहों को मैक्रो-रहित .xlsx के रूप में सहेजने की आवश्यकता है।
  • इंटरनेट-उत्पन्न मैक्रो को ब्लॉक करें: पुष्टि करें कि MotW नीति प्रवर्तन आपके संगठन में GPO या Intune के माध्यम से लागू है।
  • ASR नियम सक्षम करें: Office उत्पादों को कमांड इंटरप्रेटर या चाइल्ड प्रोसेस बनाने से रोकें।
  • Excel 4.0 (XLM) को अप्रचलित करें: सुनिश्चित करें कि सभी कार्यस्थलों पर पुरानी XLM मैक्रो इंजन स्थायी रूप से अक्षम हैं।
  • एप्लिकेशन निर्यात को साफ़ करें: CSV और Excel जनरेशन रूटीन को CSV/फ़ॉर्मूला इंजेक्शन से बचाएँ।
  • Office Scripts की ओर बदलाव करें: लेगेसी प्रशासनिक मैक्रो को TypeScript-आधारित Office Scripts और प्रबंधित API में बदलें।

स्प्रेडशीट को केवल दस्तावेज़ फ़ाइलों के रूप में नहीं, बल्कि निष्पादन क्षमताओं वाले संरचित सॉफ़्टवेयर कंटेनर के रूप में मानकर, सुरक्षा टीमें और डेवलपर एंटरप्राइज़ कंप्यूटिंग में सबसे पुराने हमले वेक्टरों में से एक को प्रभावी रूप से निष्क्रिय कर सकते हैं।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Q1: क्या .xlsx पर समाप्त होने वाली फ़ाइल एक दुर्भावनापूर्ण मैक्रो चला सकती है?

नहीं, OpenXML मानक .xlsx फ़ाइलों में मैक्रो कोड को सख्ती से प्रतिबंधित करता है, और Excel किसी भी VBA प्रोजेक्ट को जो वास्तविक .xlsx कंटेनर में डाला गया हो, अस्वीकार या हटा देगा।

Q2: यदि कोई Excel फ़ाइल मुझसे “Enable Editing” या “Enable Content” करने को कहे तो मुझे क्या करना चाहिए?

केवल तभी अनुमति दें जब आप प्रेषक को जानते हों और फ़ाइल की अपेक्षा कर रहे हों; यह प्रॉम्प्ट मुख्य जाँच बिंदु है जो अविश्वसनीय मैक्रो को कोड चलाने की अनुमति देता है।

Q3: Microsoft Excel यह कैसे निर्धारित करता है कि फ़ाइल इंटरनेट से आई है?

Windows डाउनलोड की गई फ़ाइलों के साथ एक छिपा हुआ “Mark of the Web” (Zone.Identifier) स्ट्रीम संलग्न करता है, जो Excel को संकेत देता है कि वह उन्हें प्रोटेक्टेड व्यू में खोलें और डिफ़ॉल्ट रूप से मैक्रो को ब्लॉक कर दे।

Q4: क्या CSV फ़ाइलें XLSX और XLSM फ़ाइलों की तुलना में अधिक सुरक्षित हैं?

CSV फ़ाइलों में मूल VBA मैक्रो नहीं हो सकते, लेकिन यदि उनमें दुर्भावनापूर्ण कमांड हों जो Excel द्वारा खोलते समय चलाए जाते हैं, तो वे फ़ॉर्मूला इंजेक्शन हमलों के प्रति संवेदनशील रहती हैं।

Q5: आधुनिक Office Scripts पारंपरिक VBA मैक्रो से कैसे भिन्न हैं?

Office Scripts एक सैंडबॉक्स्ड रनटाइम वातावरण में TypeScript पर चलते हैं, जिससे वे आपके स्थानीय फ़ाइल सिस्टम, कमांड लाइन, या ऑपरेटिंग सिस्टम API तक पहुँच नहीं सकते।

और देखें