حدا لقى ثغرة بموقعك: كيف بيعرف لمين يبعتها؟ ملف security.txt

الـ security.txt ملف نص صغير على /.well-known/security.txt بيقول للباحث الأمني وين يبعت الثغرة يلي لقاها. فيه حقلين لازمين: Contact وExpires، والباقي اختياري.

نُشر في 3 دقائق قراءة#أمن التطبيقات#تطوير الويب

باحث أمني لقى ثغرة بموقعك اليوم، وبدّه يخبرك قبل ما يلاقيها حدا تاني. بيدوّر على عنوان، وما بيلاقي غير فورم «تواصل معنا» بيروح لفريق المبيعات. بآخر هالمقال رح يكون عندك ملف نص صغير بيحل هالمشكلة، بتكتبه وبتفحصه بجلسة وحدة.

شو هو ملف security.txt؟

الـ security.txt ملف نص عادي بيقعد بمكان ثابت بموقعك، وبيقول للباحث الأمني وين يبعت الثغرة يلي لقاها.

الملف موصوف بـ المواصفة RFC 9116، يلي طلعت بنيسان 2022 باسم «A File Format to Aid in Security Vulnerability Disclosure». الفكرة بسيطة: كل موقع بيحط نفس الملف بنفس المكان، فالباحث ما بيضطر يخمّن.

ليش البلاغ بيضيع بلا هالملف؟

البلاغ بيضيع لأنو الشخص يلي لقى الثغرة ما بيعرفك، وما في مكان متفق عليه يدوّر فيه على عنوانك.

الغلطة هون مش تقنية. الشركة بتصرف على الحماية، وبتنسى إنو أول شخص بيلاقي المشكلة ممكن يكون غريب حسن النية. هالغريب عنده خيارات قليلة: يبعت للدعم الفني ويستنى، أو يكتب بمنشور عام، أو يترك الموضوع. بالحالتين الأخيرتين إنت آخر واحد بيعرف.

والملف القديم غلطة تانية. عنوان موظف ترك الشغل، أو إيميل ما حدا بيفتحه، أسوأ من ما في عنوان: الباحث بيبعت وبيفكّر إنك عرفت.

وين بينحط الملف، وكيف لازم ينخدم؟

الملف بينحط على المسار /.well-known/security.txt بنطاقك، وبينخدم على HTTPS كنص عادي.

المواصفة بتطلب تلات شغلات بالخدمة:

  1. المسار تحت /.well-known/، يعني https://example.com/.well-known/security.txt.

  2. الوصول للملف بـ https، مش http.

  3. نوع المحتوى text/plain ومعه charset=utf-8.

إذا عندك أكتر من نطاق (الموقع، والـ API، ولوحة الإدارة)، حط الملف على كل واحد بتستقبل عليه زوار.

شو لازم يكون جوّا الملف؟

جوّا الملف لازم يكون حقلين بس: Contact وExpires. كل حقل غيرهن اختياري.

هيك بيطلع أصغر ملف صالح:

Contact: mailto:security@example.com
Expires: YYYY-MM-DDThh:mm:ssZ

بدّل YYYY-MM-DDThh:mm:ssZ بتاريخ ووقت حقيقيين.

  • Contact هو العنوان يلي بتوصله البلاغات، ولازم يكون موجود دايماً. بيقبل إيميل بـ mailto:، أو رقم بـ tel:، أو صفحة بـ https:. وإذا حطيت أكتر من سطر Contact، الترتيب هو ترتيب الأفضلية.

  • Expires هو التاريخ يلي بعده الملف ما عاد ينوثق فيه، ولازم ينكتب مرة وحدة بس. المواصفة بتنصح يكون أقل من سنة لقدّام، لحتى ما يضل ملف قديم معلّق.

وبعدها فيك تزيد حقول اختيارية حسب شو عندك:

الحقل

شو بيعطي الباحث

Policy

رابط لسياسة البلاغات: شو مسموح يجرّب وشو لأ

Encryption

رابط لمفتاح التشفير يلي بيبعتلك فيه بأمان (الرابط بس، مش المفتاح نفسه)

Preferred-Languages

اللغات يلي بتفضّل تستقبل فيها البلاغ

Canonical

العنوان الرسمي للملف نفسه

Acknowledgments

صفحة بتشكر فيها الباحثين

Hiring

وظائف الأمان عندك

إذا ما كتبت Preferred-Languages، الباحث رح يفترض إنك بتقرا إنجليزي. فإذا فريقك بيفضّل العربي، اكتبها: Preferred-Languages: ar, en.

كيف تكتبه وتفحصه اليوم؟

بتكتب الملف بسطرين، وبتفحصه بطلبين من الـ Terminal.

  1. افتح عنوان إيميل للأمان بيقراه أكتر من شخص بفريقك. إذا ما عندك فريق، خليه يوصل لإيميلك بس باسم ثابت.

  2. اكتب الملف بالحقلين، وحط Expires قبل سنة من اليوم.

  3. ارفعه على /.well-known/security.txt. إذا موقعك بيخدم الملفات الثابتة من مجلد public، حطه بـ public/.well-known/.

  4. افحصه:

curl -sI https://example.com/.well-known/security.txt
curl -s https://example.com/.well-known/security.txt

بأول طلب دوّر على سطر content-type: لازم يكون text/plain ومعه charset=utf-8. بالتاني لازم يطلع الملف نفسه، مش صفحة HTML لموقعك. هالشي بيصير كتير بالمواقع يلي بتحوّل كل مسار مش معروف للصفحة الرئيسية.

  1. حط بالتقويم تذكير قبل تاريخ Expires بشهر، لتحدّثه وتتأكد إنو العنوان لسا بيوصل.

من وين تبلّش هلق؟

بلّش بعنوان الإيميل: هو القرار الوحيد يلي بياخد تفكير، والباقي ملف بسطرين. بعدها ارفع الملف وافحصه بالـ curl.

الملف بيفتح الباب، بس اللي بيصير بعده عندك: رد سريع وشكر للباحث بيخلّيه يبلّغك المرة الجاية كمان. وإذا عم ترتّب أمان موقعك من الأول، كمّل بـ تفعيل HSTS صح وفحص كوكي الجلسة. وإذا بدك حدا يدوّر على الثغرات قبل ما يلاقيها غريب، هاد شغل مُحَصَّن.

مين بفريقك رح يقرا إيميل الأمان أول ما يوصل؟

أسئلة شائعة

هل security.txt بيحمي موقعي من الاختراق؟

لأ. هو عنوان بس: بيخلّي يلي لقى ثغرة يوصلك بسرعة بدل ما يضيع بلاغه أو يحكيه بمكان عام. الحماية نفسها بتضل بالكود والإعدادات.

شو بصير إذا انتهى تاريخ Expires؟

الملف بيصير قديم، والباحث ما بيعرف إذا العنوان لسا بيوصل لحدا. حط تاريخ أقل من سنة لقدّام متل ما بتنصح المواصفة، وحطلك تذكير تحدّثه قبل ما يخلص.

هل لازم يكون عندي برنامج مكافآت للثغرات؟

لأ. الحقل الوحيد يلي لازم مع Expires هو Contact. سياسة البلاغات وصفحة الشكر حقول اختيارية، فيك تزيدهن بعدين.

بحط إيميلي الشخصي بـ Contact؟

الأحسن عنوان مخصص للأمان بيقراه أكتر من شخص، متل security على نطاقك. الإيميل الشخصي بيضيع بين الرسايل، وبيوقف لما صاحبه يغيّر شغله.

شارك المقال

نسخة Markdown

مقالات أخرى