مرد در وسط – امنیت AWS Lambda ارتباط با غیر HTTPS API

تعجب بر این است که چه حملاتی ممکن است در سناریوی زیر ظاهر شوند.

من یک سرویس وب دارم که یک لامبدا AWS (پشت دروازه API) ایجاد می کند که باعث می شود چندین تراکنش (ارسال ایمیل، اضافه کردن به لیست پستی) و سپس یک درخواست برای یک API ارسال می کند. با این حال این API با https تضمین نشده است. API با لیست سفارشی IP تأمین می شود. API همچنین انتظار می رود یک نشانه مجوز در درخواست، که از طریق HTTP تایید مجوز منتقل می شود.

بنابراین سوال من این است، از آنجا که سرویس وب تنها POST درخواست به سرویس لامبدا، سپس سرور لامبدا POST API، یک کاربر میتواند آن ترافیک را دنبال کند و نقطه پایانی API را پیدا کند؟ به هر حال یک کاربر مخرب می تواند ترافیک خروجی را از نقطه پایانی لامبدا خراب کند؟

FWIW – هیچ اطلاعات بسیار حساس در API وجود ندارد، اما برخی از داده های کاربر وجود دارد. این کار قبل از ورود به سیستم با استفاده از HTTPS قفل می شود، من فقط کنجکاو هستم که بدانم که بردارهای بالقوه حمله وجود دارد.

مرد در وسط – در MITM جایی که ترافیک مشتری به سرور است؟

من می خواهم یک MTIM را در من LAN بگذارم فقط برای سرگرمی. و من از arpspoofing استفاده می کنم که از قبل در لینوکس نصب شده است. اما مشکل این است که می توانم ترافیک را به سرور به مشتری بدهم. اما ترافیک مشتری را به سرور نمی بینم

در اینجا چیزی است که در MITM استفاده می شود.

حمله یار: – 192.168.0.4
قربانی (تلفن من): – 192.168.0.2
دروازه: – 192.168.0.1

مرحله: 1 فعال سازی IP-Forwarded در دستگاه نوشتاری من با استفاده از این دستور

  echo 1> / proc / sys / net / ipv4 / ip_forward

مرحله: 2 حالا از دستور arpspoof برای ساختن رایانه به عنوان روتر استفاده می کنم.

 arpsoof -i eth0 -t victimip gatewayip

گام: فرمان دوم آرپسپوف

 arpspoof -i eth0 -t gatewayip victimip

مرحله 4: حالا Wireshark را برای ضبط تمام ترافیک شروع کردم، اما مشکل اصلی این است که می توانم ترافیک را از سرور به سرویس گیرنده ببینم اما می توانم ترافیک را از Client به سرور ببینم.

بنابراین چه چیزی از اینجا گم شده ام؟

مرد در وسط – راه بهینه برای ضبط ترافیک HTTP (S) در برنامه های کاربردی پراکسی ناخواسته در iOS

من سعی می کنم ترافیک HTTP (S) را از یک برنامه Xamarin iOS غیر مجاز از طریق پروکسی بیرون بکشم. ابزار فعلی که در دسترس دارم، یک مکینتاش با لینوکس مینت VM، ابزار Xcode و IOS توسعهدهنده iOS، Burp Suite Community Edition، Charles Proxy و Wireshark است.

استراتژی

من از استراتژی های زیر با درجات مختلف موفقیت (اما موفقیت هرگز کامل) تست شده اند:

نرم افزار Burp Suite و چارلز پروکسی

راه اندازی: نرم افزار Burp Suite / چارلز پروکسی در حال اجرا بر روی مک، با CA گواهی پروکسی بر روی دستگاه iOS نصب شده است. دستگاه iOS برای استفاده از پروکسی HTTP پیکربندی شده است.

مشکل: فقط ره درخواستهای خاصی توسط مادری زامارین است از HttpClient API، مانند گوگل آنالیز، است که در تجزیه و تحلیل API علاقه مفید نیست

وایرشارک

راه اندازی شده: دستگاه های iOS اتصال از طریق کابل USB به مک، رابط کاربری شبکه را بر روی مک در هر یک از این راهنما ساخته است تا بتواند بسته های مستقیم را از دستگاه iOS بگذارد و اجازه دهد Wireshark از آن رابط شبکه بخواند.

مشکل: همه درخواست ها HTTPS هستند و نمی توانند رمزگشایی شود

VPN و Burp Suite

راه اندازی: با ساخت یک VPN که دستگاه iOS را متصل می کند، تمام ترافیک از طریق آن VPN و به Burp Suite هدایت می شود. VPN در لینوکس مینت VM با آداپتور شبکه آن بر روی کارت Wi-Fi مابین من نصب شده است.

مشکل: من بخشی از آموزش که VPN VPTP را با Burp Suite توصیف می کند، اما iOS 10 و بالاتر، پشتیبانی را کاهش داده است برای PPTP تلاش برای تکرار با OpenVPN نتیجه های نامطلوب را بدست آورد (پست دیگری در ServerFault در اینجا).

سوال روز

چگونه به طور موثر و (امیدوارم نسبتا راحت) ترافیک HTTP (S) را از برنامه تلفن همراه iOS که نمی کند احترام به تنظیمات پروکسی سیستم؟

مرد در وسط – چرا مرورگرها اجازه می دهد CA های سفارشی ریشه؟

یکی از دلایل اصلی اجازه دادن به CA CA سفارشی برای توسعهدهنده وب است. Dev و تست ساخت اغلب از گواهی در خانه استفاده می کنند (عمدتا برای هزینه و سهولت خلق). به شما امکان اضافه کردن CA ریشه خود را نمی دهد (بیشتر) حالت های مختلف به عنوان مثال خود را dev / build و تولید است که می تواند سخت برای تعمیر اشکالات تولید کند.

همچنین پروکسی شرکت، به عنوان یک شرکت (در اکثر قوانین ) مسئولیت آنچه شما با اینترنت انجام می دهید، اغلب از مردی در وسط استفاده می کنند، که در عین حال اخلاقی مشکوک است، عمدتا قانونی است و انتظار می رود.

یکی دیگر از دلایلی که نمی تواند یک کد root CA را مرتفع کند، این است که به شما اجازه حذف آن را ندهید اعتماد دیگران (شاید آنها تحت کنترل اداره ای باشند که اعتماد نکنید، شاید اخیرا کلید را نابود کرده اند و غیره) به طور مستقل از توجه مرورگر خود نسبت به آنها.

انسان در وسط – دور زدن HSTS و کلید عمومی با شخصیت های مشابه نگاه کنید

با استفاده از نمادهای کاراکترهای نمایشی برای دور زدن HSTS و کلید عمومی با دزدی DNS از طریق حمله MITM

تغییر مسیر: facebook.com -> faceḃook.com

من SSLStrip را با استفاده از تکنیک اضافه کردن یکی دیگر از "w" به دامنه {www.facebook.com -> wwww.facebook.com} برای دور زدن HSTS و پین کردن کلید عمومی. با این حال، این به وضوح آدرس اصلاح شده را نشان می دهد. من احساس می کنم که بیشتر به استفاده از شخصیت های خیره کننده برای انجام عمل جاسوسی DNS می پردازیم.

در ایده مفهوم کامل من، هر حرف یک مجموعه قابل تعویض از شخصیت های دنباله دار را دارد:

بنابراین، www.facebook.com -> {www .facebook.com، www.faceḃook.com، www.facebooκ.com}
هر یک از موارد فوق باید HSTS را دور بزند.

من می توانم مقادیر کمتری را با داشتن پیش بارگذاری HSTS با HSTS no_redirect ببینم، این ایده از no_redirect باعث می شود که مرورگر HTTP را برای وب سایت های شناخته شده HSTS جلوگیری کند.

سوال من این است که چگونه این مدل از شخصیت های دودویی برای دور زدن HSTS تقویت می شود برای ماهیت مخفیانه بیشتر. همانطور که Google Chrome مدرن برای صفحات وب HTTP "Not Secure" را نشان می دهد که یک پرچم بزرگ قرمز است