剣 KENSAI
केस स्टडी

Grade B से Grade A तक:
हमने 30 मिनट में NIS2 कंप्लायंस को कैसे ठीक किया

हमने KENSAI के साथ अपनी ख़ुद की वेबसाइट्स को स्कैन किया और क्रिटिकल NIS2 कंप्लायंस गैप्स पाए। गायब HTTP सिक्योरिटी हेडर्स ने हमारे तीन में से दो डोमेन्स को Grade B (0.786) पर ला दिया। यहाँ बताया गया है कि वास्तव में क्या ग़लत था, कौन-से NIS2 आर्टिकल्स जोखिम में थे, और कैसे Caddy कॉन्फ़िगरेशन के 30 मिनटों ने सब कुछ ठीक कर दिया।

📅 16 मार्च 2026 ⏱ 6 मिनट पढ़ें 🏷 NIS2 · कंप्लायंस · केस स्टडी · Caddy

असहज सच्चाई

हम एक सिक्योरिटी स्कैनिंग प्लेटफ़ॉर्म बनाते हैं। हम अपने कस्टमर्स को NIS2 कंप्लायंस का उपदेश देते हैं। और फिर हमने अपने ही डोमेन्स पर KENSAI चलाया — और पाया कि तीन में से दो गैर-अनुपालक थे।

कोई वल्नरेबिलिटीज़ नहीं, कोई ब्रीच नहीं। बस गायब HTTP सिक्योरिटी हेडर्स — उस तरह का साइलेंट गैप जिसे रेगुलेटर्स पहले जाँचते हैं और हमलावर दूसरे नंबर पर शोषित करते हैं। NIS2 डायरेक्टिव (Art. 21, §2) के तहत, ये हेडर्स रेगुलेटेड संस्थाओं के लिए वैकल्पिक नहीं हैं। ये एक बेसलाइन हाइजीन आवश्यकता हैं।

यहाँ बताया गया है कि हमने क्या पाया, और हमने इसे कितनी तेज़ी से ठीक किया।


स्कैन रिज़ल्ट्स

हमने 15 मार्च 2026 को सभी तीन पोर्टफ़ोलियो डोमेन्स में KENSAI का स्वचालित NIS2 कंप्लायंस स्कैन चलाया:

kensai.app
A
0.997 / 1.000
NIS2 स्कोर
brnz.ai
B
0.786 / 1.000
NIS2 स्कोर
codeforceai.com
B
0.786 / 1.000
NIS2 स्कोर

kensai.app ने 0.997 पर लगभग-परफ़ेक्ट स्कोर किया क्योंकि यह पहले से ही सही Caddy हेडर कॉन्फ़िगरेशन चला रहा था। अन्य दो डोमेन्स — brnz.ai और codeforceai.com — दोनों 0.786 पर थे, प्रत्येक में समान छह क्रिटिकल सिक्योरिटी हेडर्स गायब थे।


क्या गायब था — और यह NIS2 के लिए क्यों मायने रखता है

दोनों फ़ेल हो रहे डोमेन्स में छह HTTP रिस्पॉन्स हेडर्स अनुपस्थित थे। प्रत्येक सीधे NIS2 डायरेक्टिव आवश्यकताओं से मेल खाता है:

गायब हेडर उद्देश्य NIS2 संदर्भ स्टेटस
Strict-Transport-Security HTTPS को बाध्य करता है, प्रोटोकॉल डाउनग्रेड अटैक्स को रोकता है Art. 21(2)(h) — सुरक्षित संचार ✗ गायब
Content-Security-Policy XSS, कोड इंजेक्शन, डेटा एक्सफ़िल्ट्रेशन को ब्लॉक करता है Art. 21(2)(d) — सप्लाई चेन सिक्योरिटी ✗ गायब
X-Frame-Options क्लिकजैकिंग / UI रीड्रेस अटैक्स को रोकता है Art. 21(2)(b) — इंसिडेंट प्रिवेंशन ✗ गायब
X-Content-Type-Options MIME-स्निफ़िंग अटैक्स को रोकता है Art. 21(2)(b) — बेसिक साइबर हाइजीन ✗ गायब
Referrer-Policy थर्ड पार्टीज़ को रेफ़रर डेटा लीकेज को नियंत्रित करता है Art. 21(2)(e) — डेटा सिक्योरिटी पॉलिसीज़ ✗ गायब
Permissions-Policy ब्राउज़र API एक्सेस को प्रतिबंधित करता है (कैमरा, माइक, जियोलोकेशन) Art. 25 — सिक्योरिटी बाय डिज़ाइन ✗ गायब
NIS2 निहितार्थ: Article 21(2) के तहत, रेगुलेटेड संस्थाओं को "उपयुक्त और आनुपातिक तकनीकी और संगठनात्मक उपाय" लागू करने होंगे। गायब HSTS का मतलब है कि अनएन्क्रिप्टेड कनेक्शंस संभव हैं। गायब CSP का मतलब है कि XSS अटैक्स डेटा एक्सफ़िल्ट्रेट कर सकते हैं। नेशनल कॉम्पिटेंट अथॉरिटीज़ इन्हें अपर्याप्त बेसलाइन सिक्योरिटी के एविडेंस के रूप में मानती हैं।
Art. 21 और Art. 25 क्या आवश्यकता रखते हैं: Art. 21 नेटवर्क सिक्योरिटी और एक्सेस कंट्रोल पर पॉलिसीज़ सहित जोखिम प्रबंधन उपाय अनिवार्य करता है। Art. 25 "सिक्योरिटी बाय डिज़ाइन" पेश करता है — जिसका मतलब है कि सिक्योरिटी कंट्रोल्स को सक्रिय रूप से लागू किया जाना चाहिए, प्रतिक्रियात्मक रूप से नहीं। गायब HTTP सिक्योरिटी हेडर्स दोनों आवश्यकताओं में विफल होते हैं।

फ़िक्स: Caddy हेडर कॉन्फ़िगरेशन

हम उपयोग करते हैं Caddy को अपने रिवर्स प्रॉक्सी के रूप में। फ़िक्स एक सिंगल, रीयूज़ेबल header ब्लॉक था जिसे हम सभी डोमेन्स पर लागू कर सकते थे। यहाँ बताया गया है कि हमने वास्तव में क्या जोड़ा:

# Global header snippet — add to all production sites
(security_headers) {
  header {
    # Force HTTPS — NIS2 Art. 21(2)(h): secure communications
    Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

    # Block XSS & injection — NIS2 Art. 21(2)(d): supply chain security
    Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://fonts.googleapis.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' https:; frame-ancestors 'none'"

    # Prevent clickjacking — NIS2 Art. 21(2)(b)
    X-Frame-Options "DENY"

    # Stop MIME-sniffing — NIS2 Art. 21(2)(b)
    X-Content-Type-Options "nosniff"

    # Limit referrer leakage — NIS2 Art. 21(2)(e)
    Referrer-Policy "strict-origin-when-cross-origin"

    # Restrict browser APIs — NIS2 Art. 25: security by design
    Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()"

    # Remove server fingerprinting
    -Server
    -X-Powered-By
  }
}

फिर हमने स्निपेट को प्रत्येक साइट ब्लॉक में इम्पोर्ट किया:

# brnz.ai
brnz.ai, www.brnz.ai {
  import security_headers
  reverse_proxy localhost:3001
}

# codeforceai.com
codeforceai.com, www.codeforceai.com {
  import security_headers
  reverse_proxy localhost:3002
}

Caddy रीलोड करें, ब्राउज़र DevTools में हेडर्स सत्यापित करें, हो गया:

caddy reload --config /etc/caddy/Caddyfile

टाइमलाइन: शुरू से अंत तक 30 मिनट

T+0:00
सभी तीन डोमेन्स पर KENSAI स्कैन शुरू किया
स्वचालित NIS2 कंप्लायंस असेसमेंट क्यूड और चल रहा है।
T+0:04
स्कैन रिज़ल्ट्स आए — दो डोमेन्स को Grade B फ़्लैग किया गया
brnz.ai और codeforceai.com ने प्रत्येक ने 0.786 स्कोर किया। प्रति डोमेन छह गायब हेडर्स की पहचान की गई।
T+0:07
रूट कॉज़ एनालिसिस
kensai.app में पहले से ही हेडर ब्लॉक था। brnz.ai और codeforceai.com में यह पूरी तरह गायब था।
T+0:15
Caddy कॉन्फ़िगरेशन अपडेट किया गया
(security_headers) स्निपेट जोड़ा और इसे दोनों साइट ब्लॉक्स में इम्पोर्ट किया। git में कमिट किया।
T+0:17
Caddy रीलोड किया गया — ज़ीरो डाउनटाइम
caddy reload ने तुरंत नए हेडर्स लागू किए। किसी रीस्टार्ट की आवश्यकता नहीं थी।
T+0:22
curl के ज़रिए सत्यापन
HTTP रिस्पॉन्स में सभी छह हेडर्स की मौजूदगी की पुष्टि हुई। कोई रिग्रेशन नहीं देखा गया।
T+0:29
री-स्कैन पूरा हुआ — Grade A की पुष्टि हुई
दोनों डोमेन्स अब 0.997 स्कोर कर रहे हैं। NIS2 कंप्लायंस बहाल हुआ। पोस्ट-मॉर्टम दस्तावेज़ित किया गया।

पहले बनाम बाद में

⚠ पहले
B
स्कोर: 0.786 / 1.000
  • HSTS गायब
  • CSP गायब
  • X-Frame-Options गायब
  • X-Content-Type-Options गायब
  • Referrer-Policy गायब
  • Permissions-Policy गायब
✓ बाद में
A
स्कोर: 0.997 / 1.000
  • प्रीलोड के साथ HSTS
  • इंजेक्शंस को ब्लॉक करता CSP
  • X-Frame-Options: DENY
  • X-Content-Type-Options: nosniff
  • Referrer-Policy: strict-origin
  • Permissions-Policy: लॉक्ड डाउन
परिणाम: brnz.ai और codeforceai.com दोनों 30 मिनट से भी कम समय में Grade B (0.786) से Grade A (0.997) पर पहुँच गए। एकमात्र परिवर्तन: Caddy कॉन्फ़िगरेशन के ज़रिए छह HTTP हेडर्स जोड़े गए। कोई कोड परिवर्तन नहीं, कोई डिप्लॉयमेंट्स नहीं, कोई डाउनटाइम नहीं।

मुख्य सीख

1. सिक्योरिटी हेडर्स NIS2 कंप्लायंस आइटम्स हैं, वैकल्पिक एक्स्ट्रा नहीं

हर NIS2-रेगुलेटेड संस्था से बेसिक HTTP सिक्योरिटी हेडर्स होने की अपेक्षा की जाती है। रेगुलेटर्स ऑडिट्स के दौरान तेज़ी से स्वचालित स्कैन चला रहे हैं। एक गायब Strict-Transport-Security हेडर एक मामूली चूक नहीं है — यह Art. 21(2) के तहत अपर्याप्त जोखिम प्रबंधन का एविडेंस है।

2. यहाँ तक कि सिक्योरिटी कंपनियों में भी गैप्स होते हैं

हम कंप्लायंस टूल्स बनाते हैं और फिर भी हमारी दो Grade B साइट्स थीं। यह शर्मनाक नहीं है — यह एक याद दिलाता है कि कॉन्फ़िगरेशन ड्रिफ़्ट होता है। एक जल्दी लॉन्च किया गया डोमेन, एक Caddyfile जो सिंक नहीं हुई, एक गायब इम्पोर्ट। स्वचालित स्कैनिंग वह पकड़ती है जो मैन्युअल ऑडिट्स चूक जाते हैं।

3. फ़िक्स लगभग हमेशा सरल होता है

छह गायब हेडर्स। Caddy कॉन्फ़िगरेशन की तीस लाइनें। तीस मिनट का काम। Grade B और Grade A के बीच का गैप एक महीने-लंबा प्रोजेक्ट नहीं है — यह एक दोपहर है। कठिन हिस्सा यह जानना है कि गैप पहली जगह में मौजूद है।

4. रीयूज़ेबल स्निपेट्स भविष्य के ड्रिफ़्ट को रोकते हैं

हेडर्स को एक में एक्सट्रैक्ट करके (security_headers) स्निपेट में, कोई भी नया डोमेन जो हम जोड़ते हैं उसे एक सिंगल को शामिल करके स्वचालित रूप से पूर्ण NIS2 हेडर कवरेज मिल जाता है import लाइन। कंप्लायंस डिफ़ॉल्ट बन जाता है, बाद का विचार नहीं।


यह आपके संगठन के लिए क्या मतलब रखता है

यदि आप NIS2 के अधीन हैं — या ऑडिट की तैयारी कर रहे हैं — तो आपके HTTP सिक्योरिटी हेडर्स वे पहली चीज़ों में से हैं जिन्हें रेगुलेटर्स जाँचते हैं। इन्हें स्कैन करना तेज़ है, मूल्यांकन करना स्पष्ट है, और ठीक करना तुच्छ है। जब Grade A को 30 मिनट लगते हैं तो Grade B का कोई बहाना नहीं है।

स्कैन चलाएँ। रिपोर्ट पढ़ें। जो फ़्लैग किया गया है उसे ठीक करें। पुष्टि के लिए फिर से स्कैन करें।

अपनी NIS2 कंप्लायंस जाँचें — मुफ़्त

वही स्कैन चलाएँ जो हमने अपने ही डोमेन्स पर चलाया। अपना NIS2 कंप्लायंस ग्रेड प्राप्त करें, देखें कि वास्तव में कौन-से हेडर्स गायब हैं, और एक रेमेडिएशन रिपोर्ट प्राप्त करें जिस पर आप तुरंत कार्रवाई कर सकते हैं।

मुफ़्त NIS2 स्कैन शुरू करें →

🛡️ क्या आपकी वेबसाइट सुरक्षित है?

हमलावरों से पहले भेद्यताएँ खोजें।

अपनी वेबसाइट निःशुल्क स्कैन करें →

संबंधित लेख

March 2 Security Briefing: Ransomware Gangs Target March 2026 Security Regulations Update: NIS2 CISA Emergency Directive on Cisco SD-WAN