رمزگشایی ترافیک TLS با PolarProxy

این یک پست وبلاگ مهمان توسط Erik Hjelmvik ، یک متخصص در پزشکی قانونی شبکه و نظارت بر امنیت شبکه در NETRESEC است.


PolarProxy یک پروکسی TLS است که خروجی رمزگذاری شده ترافیک TLS را به عنوان فایل های PCAP . PolarProxy به هیچ وجه با داده های تونلی تداخل ندارد ، فقط جریان TLS ورودی را می گیرد ، آن را رمزگشایی می کند ، مجدداً رمزگذاری می کند و به مقصد می فرستد. به همین دلیل ، PolarProxy می تواند به عنوان یک پروکسی رمزگشایی TLS عمومی برای تقریباً هر پروتکلی که از رمزگذاری TLS استفاده می کند ، از جمله HTTPS ، HTTP/2 ، DoH ، DoT ، FTPS ، SMTPS ، IMAPS ، POP3S و SIP-TLS استفاده شود.

PolarProxy در درجه اول برای بازرسی ترافیک رمزگذاری شده (19459010] از بدافزارها طراحی شده است ، مانند بات نت هایی که از HTTPS برای فرمان و کنترل رایانه های قربانی استفاده می کنند. دیگر موارد استفاده رایج برای PolarProxy این است که ترافیک رمزگذاری شده از دستگاه های IoT و سایر محصولات جاسازی شده را بررسی کند یا تجزیه و تحلیل ترافیک رمزگذاری شده از تلفن های همراه و رایانه های لوحی را انجام دهد. این واقعیت که PolarProxy ترافیک رمزگشایی شده را در قالب رمزگشایی شده بدون هیچ سرصفحه TLS صادر می کند ، همچنین کاربران را قادر می سازد تا ترافیک رمزگشایی شده را با محصولاتی که از رمزگشایی TLS پشتیبانی نمی کنند ، مانند تشخیص نفوذ و محصولات پزشکی قانونی شبکه مانند Suricata ، Zeek و NetworkMiner ، بازرسی کنند. [19659004] PolarProxy یک گواهی CA منحصر به فرد برای هر نصب ایجاد می کند که باید توسط مشتریانی که ترافیک TLS آنها رمزگشایی می شود مورد اعتماد قرار گیرد. سیستم عامل ، مرورگرها و برنامه های کاربردی که مایل به رمزگشایی ترافیک TLS از آن هستید باید به CA CA PolarProxy CA اعتماد کنند.

تصویر Wireshark بالا DNS-over-HTTPS ( DoH) ترافیک در فایل proxy-191023-091924.pcap ، که در طول سخنرانی رهگیری و رمزگشایی TLS من در کنفرانس CS3Sthlm در سال 2019 به صورت زنده ضبط شد. همانطور که مشاهده می کنید ، درخواست DoH در داخل یک درخواست HTTP/2 ارسال می شود. همچنین ممکن است توجه داشته باشید که درخواست HTTP/2 توسط یک رکورد TLS محصور نشده است. دلیل این امر این است که PolarProxy قبل از ذخیره ترافیک رمزگشایی شده در یک فایل ضبط شده ، تمام داده های TLS را حذف کرده است. از نرم افزار برای هر منظور ، حتی تجاری استفاده کنید. برای استفاده از PolarProxy برای اجرای آزمایشی ، کافی است دستورات زیر را بر روی دستگاه لینوکس اجرا کنید:

سپس یک سرویس PolarProxy در پورت TCP 443 گوش می دهید که بسته های رمزگشایی شده را به “/tmp /polarproxy.pcap “. برای آزمایش پروکسی ، کافی است دستور curl زیر را روی هر رایانه ای در شبکه خود اجرا کنید:

توجه: 10.1.2.3 را با آدرس IP PolarProxy جایگزین کنید.

این دستور به curl می گوید طوری رفتار کنید که انگار weberblog.net به IP PolarProxy حل شده است ، بدین وسیله اتصال خروجی از طریق رمزگشایی TLS ارسال می شود. نماینده گزینه -ناامن وجود دارد زیرا PolarProxy یک گواهی جعلی X.509 برای دامنه موردنظر (در اینجا: weberblog.net) در پرواز تولید می کند و آن را با گواهی CA ریشه خود امضا می کند ، که هیچ کدام curl و نه سیستم عامل شما به طور پیش فرض به آن اعتماد دارد. این گواهینامه ریشه CA را می توان از یک سرویس HTTP در پورت 10080 در دستگاه PolarProxy بارگیری کرد. برای دستورالعمل نحوه پیکربندی رایانه شخصی جهت اعتماد به این گواهی ، لطفاً بخش "Trusting the PolarProxy root CA" را در اسناد PolarProxy مشاهده کنید. با PolarProxy گرچه از آنجا که آنها گواهینامه X.509 ارائه شده توسط PolarProxy را نمی پذیرند حتی اگر توسط ریشه معتبر امضا شده باشد.

PolarProxy یک پروکسی شفاف است ، به این معنی که جدا از اعتماد به گواهی CA ریشه ، هیچ پیکربندی وجود ندارد برای جلوگیری از ترافیک TLS به مشتری نیاز است. در عوض ، شما باید یک قانون DNAT فایروال را مستقر کنید که تمام ترافیک TLS خروجی را به PolarProxy هدایت می کند. برای اطلاع از نحوه انجام این کار با iptables ، لطفاً به صفحه PolarProxy مراجعه کنید. با این حال ، برای سایر راه حل های فایروال ، باید خودتان نحوه انجام این کار را دریابید. داکر و پودمن. من همچنین پست هایی در وبلاگ نوشته ام که در مورد نحوه ادغام PolarProxy با راه حل های نظارت بر امنیت شبکه مانند Arkime و Security Onion است.

عکس توسط هانس-یورگن ماگر در Unsplash.