HTTPS ليس دائمًا آمنًا كما يبدو. نقاط الضعف الموجودة في 5.5 ٪ من مواقع HTTPS


أحد أفضل مواقع Alexa (الدائرة المركزية) ، المحمية بواسطة HTTPS ، مع نطاقات فرعية (رمادية) وتبعيات (بيضاء) ، من بينها نقاط ضعف (تعبئة متقطع)

في الوقت الحاضر ، أصبح رمز الاتصال الآمن HTTPS سمة قياسية وحتى ضرورية لأي موقع جدي. إذا كانت الشهادة مفقودة ، فإن جميع المتصفحات الحديثة تقريبًا تظهر تحذيرًا بأن الاتصال بالموقع "غير آمن" ولا تنصح بنقل المعلومات السرية إليه.

لكن اتضح أن وجود "قفل" في شريط العنوان لا يضمن الحماية دائمًا. أظهر التحقق من 10000 موقع رائد من ترتيب Alexa أن العديد منها يخضع لثغرات أمنية حرجة في بروتوكولات SSL / TLS ، عادةً من خلال النطاقات الفرعية أو التبعيات. وفقًا لمؤلفي الدراسة ، يزيد تعقيد تطبيقات الويب الحديثة بشكل كبير من سطح الهجوم.

نتائج البحوث


وقد أجريت الدراسة من قبل خبراء من جامعة فينيسيا كا فوسكاري (إيطاليا) وجامعة فيينا التقنية. سيقدمون تقريراً مفصلاً في ندوة IEEE الأربعين حول الأمن والخصوصية ، والتي ستعقد يومي 20 و 22 مايو 2019 في سان فرانسيسكو.

تم فحص 10000 من أكثر مواقع HTTPS شيوعًا من قائمة Alexa و 90،816 مضيفًا مرتبطًا. تم اكتشاف تكوينات تشفير مستضعفة على 5574 مضيفًا ، أي حوالي 5.5٪ من الإجمالي:

  • 4818 عرضة ل MITM
  • 733 عرضة لفك التشفير الكامل ل TLS
  • 912 عرضة لفك التشفير TLS الجزئي

898 موقعًا مفتوحًا تمامًا للقرصنة ، أي أنها تسمح بحقن برامج نصية غريبة ، ويقوم 977 موقعًا بتنزيل المحتوى من صفحات ضعيفة الحماية يمكن للمهاجم التفاعل معها.

يؤكد الباحثون على أنه من بين 898 من الموارد "المعرضة للخطر" توجد متاجر على الإنترنت ، وخدمات مالية ومواقع كبيرة أخرى. يقوم 660 من 898 موقعًا بتنزيل البرامج النصية الخارجية من المضيفين المعرضين للخطر: هذا هو المصدر الرئيسي للخطر. وفقًا للمؤلفين ، يزيد تعقيد تطبيقات الويب الحديثة بشكل كبير من سطح الهجوم.

تم اكتشاف مشاكل أخرى: 10٪ من النماذج الخاصة بالتصريح تواجه مشكلات في النقل الآمن للمعلومات ، مما قد يؤدي إلى تسرب كلمة المرور ، و 412 موقعًا تسمح باعتراض ملفات تعريف الارتباط و "اختطاف الجلسات" ، و 543 موقعًا عرضة للهجمات على سلامة ملفات تعريف الارتباط (عبر النطاقات الفرعية).

المشكلة هي أنه في السنوات الأخيرة ، تم تحديد عدد من نقاط الضعف في بروتوكولات وبروتوكولات SSL / TLS: POODLE (CVE-2014-3566) ، BEAST (CVE-2011-3389) ، CRIME (CVE-2012-4929) ، BREACH (CVE -2013-3587) و Heartbleed (CVE-2014-0160). للحماية ضدهم ، هناك حاجة إلى عدد من الإعدادات على الخادم والعميل لتجنب استخدام الإصدارات الضعيفة القديمة. ولكن هذا إجراء غير تافه إلى حد ما ، لأن مثل هذه الإعدادات توفر الاختيار من بين مجموعة واسعة من الأصفار والبروتوكولات ، والتي يصعب فهمها. ليس من الواضح دائمًا أي مجموعات معينة من الأصفار والبروتوكولات تعتبر "آمنة جدًا".

الإعدادات الموصى بها


لا توجد قائمة معتمدة ومتفق عليها رسميًا من إعدادات HTTPS الموصى بها. لذلك ، يوفر Mozilla SSL Configuration Generator العديد من خيارات التكوين ، اعتمادًا على مستوى الحماية المطلوبة. على سبيل المثال ، فيما يلي الإعدادات الموصى بها لخادم nginx 1.14.0:

الوضع الحديث


أقدم العملاء المدعومين: Firefox 27 و Chrome 30 و IE 11 على Windows 7 و Edge و Opera 17 و Safari 9 و Android 5.0 و Java 8

server { listen 80 default_server; listen [::]:80 default_server; # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response. return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate ssl_certificate /path/to/signed_cert_plus_intermediates; ssl_certificate_key /path/to/private_key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # modern configuration. tweak to your needs. ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; ## verify chain of trust of OCSP response using Root CA and Intermediate certs ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates; resolver <IP DNS resolver>; .... } 

دعم متوسط


أقدم العملاء المدعومين: Firefox 1 ، Chrome 1 ، IE 7 ، Opera 5 ، Safari 1 ، Windows XP IE8 ، Android 2.3 ، Java 7

 server { listen 80 default_server; listen [::]:80 default_server; # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response. return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate ssl_certificate /path/to/signed_cert_plus_intermediates; ssl_certificate_key /path/to/private_key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits ssl_dhparam /path/to/dhparam.pem; # intermediate configuration. tweak to your needs. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; ## verify chain of trust of OCSP response using Root CA and Intermediate certs ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates; resolver <IP DNS resolver>; .... } 

الدعم القديم


أقدم العملاء المدعومين: Windows XP IE6 ، Java 6

 server { listen 80 default_server; listen [::]:80 default_server; # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response. return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate ssl_certificate /path/to/signed_cert_plus_intermediates; ssl_certificate_key /path/to/private_key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits ssl_dhparam /path/to/dhparam.pem; # old configuration. tweak to your needs. ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP'; ssl_prefer_server_ciphers on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; ## verify chain of trust of OCSP response using Root CA and Intermediate certs ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates; resolver <IP DNS resolver>; .... } 

يوصى دائمًا باستخدام مجموعة التشفير الكاملة وأحدث إصدار من OpenSSL. تشير مجموعة التشفير في إعدادات الخادم إلى الأولوية التي سيتم استخدامها فيها ، اعتمادًا على إعدادات العميل.

تظهر الأبحاث أن تثبيت شهادة HTTPS لا يكفي. يقول مؤلفو العمل: "على الرغم من أننا لا نعالج ملفات تعريف الارتباط كما في عام 2005 ، وأصبح TLS اللائق شائعًا ، فقد اتضح أن هذه الأشياء الأساسية ليست كافية لتوفير الأمان لعدد كبير من المواقع المشهورة جدًا". لتوفير حماية موثوقة للقناة بين الخادم والعميل ، تحتاج إلى مراقبة البنية التحتية بعناية من نطاقاتك الفرعية ومضيفات الجهات الخارجية التي يتم توفير محتوى الموقع منها. ربما يكون من المنطقي طلب مراجعة من بعض الشركات الخارجية المتخصصة في أمن المعلومات.





Source: https://habr.com/ru/post/ar446712/


All Articles