دسته OWASP: MASVS-CODE: کیفیت کد
نمای کلی
اجرای HostnameVerifier
مسئول تأیید این است که نام میزبان در گواهی سرور با نام میزبان سروری که مشتری در تلاش است به آن متصل شود مطابقت دارد.
اجرای ناامن HostnameVerifier در یک برنامه اندروید پیاده سازی است که نام میزبان سروری را که برنامه با آن در ارتباط است به درستی تأیید نمی کند. این می تواند به مهاجم اجازه دهد تا جعل هویت یک سرور قانونی را بسازد و برنامه را فریب دهد تا داده های حساس را برای مهاجم ارسال کند.
این آسیبپذیری به این دلیل وجود دارد که کلاس HostnameVerifier
فراخوانیهای تابعی دارد که میتوانند از تأیید اعتبار نام میزبان گواهی X.509 صرفنظر کنند و در عوض، فقط هش گواهی را تأیید کنند. یک تصور غلط رایج این است که تابع SSLSession#isValid
یک عملیات مرتبط با امنیت را انجام می دهد، در حالی که در واقع هدف آن فقط بررسی معتبر بودن و در دسترس بودن یک جلسه برای از سرگیری یا پیوستن است یا خیر. هیچ کدام از اینها امنیت یک جلسه را تایید نمی کنند. کلاس HostnameVerifier توسط NetworkSecurityConfig جایگزین شده است.
تاثیر
اجرای ناامن HostnameVerifier می تواند منجر به آسیب پذیری هایی شود که می تواند برای انجام حملات MiTM (Man-in-The-Middle) بر روی ترافیک شبکه از برنامه قربانی استفاده شود. تأثیر سوء استفاده از این کد ناامن این است که در صورت راه اندازی این کد، داده های شبکه برنامه کاربر می تواند توسط مهاجمان شبکه (از راه دور یا محلی) در معرض خطر قرار گیرد. این تأثیر به محتوای ترافیک شبکه بستگی دارد که به طور ناخواسته در معرض نمایش قرار می گیرد (PII، اطلاعات خصوصی، مقادیر حساس جلسه، اعتبار خدمات، و غیره).
اقدامات کاهشی
از NetworkSecurityConfig.xml استفاده کنید تا اطمینان حاصل کنید که تمام اتصالات مراحل تولید، آزمایش، اشکال زدایی و توسعه به درستی به جای استفاده یا اجرای کد تأیید اعتبار گواهی TLS/SSL سفارشی انجام می شود.
منابع
- مستندات پیکربندی امنیت شبکه
- این بررسی به دنبال اجرای HostnameVerifier میگردد که روش تأیید آن همیشه true را برمیگرداند (در نتیجه به هر نام میزبان اعتماد میشود)
- اسناد برنامهنویس برای کلاس HostnameVerifier
- کلاس AllowAllHostnameVerifierDetector در اندروید
دسته OWASP: MASVS-CODE: کیفیت کد
نمای کلی
اجرای HostnameVerifier
مسئول تأیید این است که نام میزبان در گواهی سرور با نام میزبان سروری که مشتری در تلاش است به آن متصل شود مطابقت دارد.
اجرای ناامن HostnameVerifier در یک برنامه اندروید پیاده سازی است که نام میزبان سروری را که برنامه با آن در ارتباط است به درستی تأیید نمی کند. این می تواند به مهاجم اجازه دهد تا جعل هویت یک سرور قانونی را بسازد و برنامه را فریب دهد تا داده های حساس را برای مهاجم ارسال کند.
این آسیبپذیری به این دلیل وجود دارد که کلاس HostnameVerifier
فراخوانیهای تابعی دارد که میتوانند از تأیید اعتبار نام میزبان گواهی X.509 صرفنظر کنند و در عوض، فقط هش گواهی را تأیید کنند. یک تصور غلط رایج این است که تابع SSLSession#isValid
یک عملیات مرتبط با امنیت را انجام می دهد، در حالی که در واقع هدف آن فقط بررسی معتبر بودن و در دسترس بودن یک جلسه برای از سرگیری یا پیوستن است یا خیر. هیچ کدام از اینها امنیت یک جلسه را تایید نمی کنند. کلاس HostnameVerifier توسط NetworkSecurityConfig جایگزین شده است.
تاثیر
اجرای ناامن HostnameVerifier می تواند منجر به آسیب پذیری هایی شود که می تواند برای انجام حملات MiTM (Man-in-The-Middle) بر روی ترافیک شبکه از برنامه قربانی استفاده شود. تأثیر سوء استفاده از این کد ناامن این است که در صورت راه اندازی این کد، داده های شبکه برنامه کاربر می تواند توسط مهاجمان شبکه (از راه دور یا محلی) در معرض خطر قرار گیرد. این تأثیر به محتوای ترافیک شبکه بستگی دارد که به طور ناخواسته در معرض نمایش قرار می گیرد (PII، اطلاعات خصوصی، مقادیر حساس جلسه، اعتبار خدمات، و غیره).
اقدامات کاهشی
از NetworkSecurityConfig.xml استفاده کنید تا اطمینان حاصل کنید که تمام اتصالات مراحل تولید، آزمایش، اشکال زدایی و توسعه به درستی به جای استفاده یا اجرای کد تأیید اعتبار گواهی TLS/SSL سفارشی انجام می شود.
منابع
- مستندات پیکربندی امنیت شبکه
- این بررسی به دنبال اجرای HostnameVerifier میگردد که روش تأیید آن همیشه true را برمیگرداند (در نتیجه به هر نام میزبان اعتماد میشود)
- اسناد برنامهنویس برای کلاس HostnameVerifier
- کلاس AllowAllHostnameVerifierDetector در اندروید
دسته OWASP: MASVS-CODE: کیفیت کد
نمای کلی
اجرای HostnameVerifier
مسئول تأیید این است که نام میزبان در گواهی سرور با نام میزبان سروری که مشتری در تلاش است به آن متصل شود مطابقت دارد.
اجرای ناامن HostnameVerifier در یک برنامه اندروید پیاده سازی است که نام میزبان سروری را که برنامه با آن در ارتباط است به درستی تأیید نمی کند. این می تواند به مهاجم اجازه دهد تا جعل هویت یک سرور قانونی را بسازد و برنامه را فریب دهد تا داده های حساس را برای مهاجم ارسال کند.
این آسیبپذیری به این دلیل وجود دارد که کلاس HostnameVerifier
فراخوانیهای تابعی دارد که میتوانند از تأیید اعتبار نام میزبان گواهی X.509 صرفنظر کنند و در عوض، فقط هش گواهی را تأیید کنند. یک تصور غلط رایج این است که تابع SSLSession#isValid
یک عملیات مرتبط با امنیت را انجام می دهد، در حالی که در واقع هدف آن فقط بررسی معتبر بودن و در دسترس بودن یک جلسه برای از سرگیری یا پیوستن است یا خیر. هیچ کدام از اینها امنیت یک جلسه را تایید نمی کنند. کلاس HostnameVerifier توسط NetworkSecurityConfig جایگزین شده است.
تاثیر
اجرای ناامن HostnameVerifier می تواند منجر به آسیب پذیری هایی شود که می تواند برای انجام حملات MiTM (Man-in-The-Middle) بر روی ترافیک شبکه از برنامه قربانی استفاده شود. تأثیر سوء استفاده از این کد ناامن این است که در صورت راه اندازی این کد، داده های شبکه برنامه کاربر می تواند توسط مهاجمان شبکه (از راه دور یا محلی) در معرض خطر قرار گیرد. این تأثیر به محتوای ترافیک شبکه بستگی دارد که به طور ناخواسته در معرض نمایش قرار می گیرد (PII، اطلاعات خصوصی، مقادیر حساس جلسه، اعتبار خدمات، و غیره).
اقدامات کاهشی
از NetworkSecurityConfig.xml استفاده کنید تا اطمینان حاصل کنید که تمام اتصالات مراحل تولید، آزمایش، اشکال زدایی و توسعه به درستی به جای استفاده یا اجرای کد تأیید اعتبار گواهی TLS/SSL سفارشی انجام می شود.
منابع
- مستندات پیکربندی امنیت شبکه
- این بررسی به دنبال اجرای HostnameVerifier میگردد که روش تأیید آن همیشه true را برمیگرداند (در نتیجه به هر نام میزبان اعتماد میشود)
- اسناد برنامهنویس برای کلاس HostnameVerifier
- کلاس AllowAllHostnameVerifierDetector در اندروید
دسته OWASP: MASVS-CODE: کیفیت کد
نمای کلی
اجرای HostnameVerifier
مسئول تأیید این است که نام میزبان در گواهی سرور با نام میزبان سروری که مشتری در تلاش است به آن متصل شود مطابقت دارد.
اجرای ناامن HostnameVerifier در یک برنامه اندروید پیاده سازی است که نام میزبان سروری را که برنامه با آن در ارتباط است به درستی تأیید نمی کند. این می تواند به مهاجم اجازه دهد تا جعل هویت یک سرور قانونی را بسازد و برنامه را فریب دهد تا داده های حساس را برای مهاجم ارسال کند.
این آسیبپذیری به این دلیل وجود دارد که کلاس HostnameVerifier
فراخوانیهای تابعی دارد که میتوانند از تأیید اعتبار نام میزبان گواهی X.509 صرفنظر کنند و در عوض، فقط هش گواهی را تأیید کنند. یک تصور غلط رایج این است که تابع SSLSession#isValid
یک عملیات مرتبط با امنیت را انجام می دهد، در حالی که در واقع هدف آن فقط بررسی معتبر بودن و در دسترس بودن یک جلسه برای از سرگیری یا پیوستن است یا خیر. هیچ کدام از اینها امنیت یک جلسه را تایید نمی کنند. کلاس HostnameVerifier توسط NetworkSecurityConfig جایگزین شده است.
تاثیر
اجرای ناامن HostnameVerifier می تواند منجر به آسیب پذیری هایی شود که می تواند برای انجام حملات MiTM (Man-in-The-Middle) بر روی ترافیک شبکه از برنامه قربانی استفاده شود. تأثیر سوء استفاده از این کد ناامن این است که در صورت راه اندازی این کد، داده های شبکه برنامه کاربر می تواند توسط مهاجمان شبکه (از راه دور یا محلی) در معرض خطر قرار گیرد. این تأثیر به محتوای ترافیک شبکه بستگی دارد که به طور ناخواسته در معرض نمایش قرار می گیرد (PII، اطلاعات خصوصی، مقادیر حساس جلسه، اعتبار خدمات، و غیره).
اقدامات کاهشی
از NetworkSecurityConfig.xml استفاده کنید تا اطمینان حاصل کنید که تمام اتصالات مراحل تولید، آزمایش، اشکال زدایی و توسعه به درستی به جای استفاده یا اجرای کد تأیید اعتبار گواهی TLS/SSL سفارشی انجام می شود.
منابع
- مستندات پیکربندی امنیت شبکه
- این بررسی به دنبال اجرای HostnameVerifier میگردد که روش تأیید آن همیشه true را برمیگرداند (در نتیجه به هر نام میزبان اعتماد میشود)
- اسناد برنامهنویس برای کلاس HostnameVerifier
- کلاس AllowAllHostnameVerifierDetector در اندروید