استراحت – امتیاز دادن به آسیب پذیری برنامه کاربردی مبتنی بر ماشین

این سوال به سؤالات قبلی مربوط است: 1 و 2 در مورد محدودیت های آسیب پذیری وب سایت آسیب پذیری / امتیاز آسیب پذیری خودکار. در واقع، آسیب پذیری های به ثمر رساند که در برنامه های مبتنی بر وب و REST شناسایی شده است، به طور مستقیم به جلو و چالش برای به طور خودکار نیست. در حالی که بسته های نرم افزاری با استفاده از CVSS به دست می آیند (به عنوان مثال NVD CVE را برای آسیب پذیری های گزارش شده و امتیاز های مناسب را اختصاص می دهد)، برنامه های کاربردی وب به طور مرکزی ضرب نمی شوند. با این وجود، چندین منبع اطلاعات آسیب پذیری برای برنامه های کاربردی وب وجود دارد که می تواند قدرت را برای مثال داشته باشد. CWE می توانید روش های یادگیری دستگاه مانند برای برطرف کردن این چالش از بروزرسانی متن استفاده می شود، زیرا از چندین مشکل امنیتی در یادگیری دستگاه استفاده می شود؟

یک مثال : اگر یک آسیب پذیری وب سایت شناسایی شده به عنوان توضیح داده شود "یک حمله XSS در پاسخ JSON منعکس شده است، این ممکن است مشتریان محتوا را به حمله آسیب پذیر برساند اگر آنها به طور مناسب اطلاعات را اداره نکنند ( پاسخ] " و CWE Id 79 را تعیین می کند. آیا یک الگوریتم منطبق متن می تواند کلمات کلیدی مشخص را در توضیحات به عنوان مثال "حمله XSS" و "پاسخ JSON" برای تجزیه و تحلیل و محاسبه نمرات شدت با استفاده از منابع به عنوان مثال CWE و CVSS؟

یک تحقیق کوتاه من را به مدل word2vec tensorflow منجر می شود، آیا می تواند به طور بالقوه این چالش را حل کند؟

خوشحال خواهد شد که اگر چنین تکنیک هایی در جامعه امنیت وجود داشته باشد یا اگر این گونه روش ها به روش های خاصی محدود شده باشد 19659005]

مدیریت کلید – یک کلید API مخفی با یک نمک تصادفی به جای ارسال آن به تنهایی در REST API

بگو، من یک نقطه پایانی API HTTPS دارم که تنها توسط مدیر من استفاده می شود.
در هر یک از درخواستها یک کلید API مخفی برای احراز هویت ارسال می کنم. و من با این راه حل خوب هستم

   curl -x PUT .......
  - Header "X-My-Secret-Api-Key $ my_secret_key"
  .....

در بدن من شناسه کاربر و ایمیل را به عنوان بارنامه ارسال می کنم.

آیا آن را امن تر خواهد بود اگر من hash $ my_secret_key با ایمیل کاربر؟

   curl -x PUT .......
  - Header "X-My-Secret-Api-Key SHA-256 ($ {user_email} $ {my_secret_key}}"
  .....

این ایده این است که حتی اگر "X-My-Secret-Api-Key" متوقف شود، یک مهاجم تنها تنها کلید را برای آن کاربر خاص دریافت می کند.
و قادر خواهد بود درخواست های مهمی را فقط از طرف این کاربر ارسال کند و هیچ کس دیگری.

و برای اینکه قادر به ارسال درخواست از طرف کاربر دیگری باشد، مهاجم باید سعی کند "X-My-Secret-Api-Key" را برای آن کاربر نیز دستگیر کند. و غیره.

آیا این بهبود امنیتی مناسب است؟ هر کدوم آیا این روش شناخته شده است؟

تأیید اعتبار – آیا یک مکانیزم مجوز ثروتمند که در آن رمز عبور روشن در keychain ذخیره می شود امن است؟

آیا استفاده از مکانیزم مجوز استقرار زیر بین مشتری (iOS & Android) و سرور امن است؟

ثبت نام

  1. مشتری یک ایمیل و رمز عبور را فراهم می کند و رمز عبور پاک می کند در Keychain در iOS و با استفاده از یک جایگزین برای آندروید.

  2. سرور قدرت رمز عبور را بررسی می کند، اگر آن را به اندازه کافی قوی که کاربر در DB ایجاد شده است.

  3. سرور یک Token JWT را تولید می کند و آن را به مشتری می فرستد. Token زمان انقضا 15 دقیقه است.

  4. مشتری نشانه را (شاید در Keychain خود ذخیره می کند و شامل آن برای هر درخواست زیر در header Authorization می باشد. 19659004] برای هر درخواست، سرور نشانگر ارائه شده را بررسی می کند (امضا و زمان انقضا را بررسی می کند). اگر درست باشد، درخواست پردازش می شود، در غیر این صورت، HTTP 401 بازگشت می شود.

ورود

  1. هنگامی که مشتری یک HTTP 401 از سرور دریافت می کند، به این معنی ورود به سیستم مورد نیاز است. بنابراین برنامه به Keychain دسترسی پیدا می کند و ایمیل و رمز عبور را دریافت می کند (بدون مداخله کاربر لازم است).

  2. سرور معتبر ارائه شده است و اگر معتبر باشد، آن را تکرار خواهد کرد ثبت نام مراحل از 3 تا 5.

با تشکر از زمان انقضا در Token، اگر یک Token به خطر بیافتد، در طول یک دوره کوتاه معتبر خواهد بود.

اگر یک کاربر وارد سیستم شده باشد چندین دستگاه و رمز عبور خود را از یک دستگاه تغییر می دهد، دستگاه های دیگر فقط برای یک دوره زمانی کوتاه وارد سیستم می شوند، اما رمز عبور روشن ذخیره شده در Keychain [19459009طولانیترنخواهدبود

کدام نقص را می بینید؟

من فکر کرده ام در مورد استفاده از روش نشانه بازنویسی برای جلوگیری از ذخیره رمز عبور پاک، اما این پیچیدگی را اضافه می کند و اشکالات دیگر (برای مثال: چگونگی تضمین refresh token فقط یک بار استفاده می شود). و تا آنجا که من دیده ام، ذخیره رمز عبور روشن در کلید KeyChain به اندازه کافی امن است:

Documentation Services KeyChain

بهترین روش برای حفظ اعتبار ورود به سیستم در iOS چیست؟ [19659012] اما من همچنین سؤالات دیگری را مشاهده کردم که توصیه نمیکنند رمزهای عبور را بر روی دستگاه ذخیره کنند.

بنابراین من می خواهم که نظرات دیگران را در این مورد بشنوم.

</p>
<pre>تأیید اعتبار - آیا یک مکانیزم مجوز ثروتمند که در آن رمز عبور روشن در keychain ذخیره می شود امن است؟<br />

موبایل – چگونه این تنظیم ثبت نام آسیب پذیر است؟

من در حال توسعه یک برنامه تلفن همراه برای iOS و اندروید هستم که به علت مشخصاتی که توسط مدیریت ارائه شده است، برخی از نقص امنیتی وجود دارد. با این حال، من نمی توانم به طور کامل در کسب و کار بتنی توضیح دهم که چرا مشخصات خصوصی نیستند و بنابراین من نمی توانم آنها را متقاعد کنم که نیازهایشان را تغییر دهند.

بعضی از زمینه ها؛ هنگامی که ثبت نام کاربر را پیاده سازی می کنیم، دو گزینه برای انجام این کار وجود دارد: شماره تلفن همراه را پر کنید (و تأیید SMS را فعال کنید یا با فیس بوک ارتباط برقرار کنید. Backend یک API RESTful است.

اولین عیب این است که هنگامی که ما با فیس بوک ارتباط برقرار می کنیم، هنوز هم می خواهیم کاربر یک نام کاربری و رمز عبور را در برنامه ایجاد کند. تنها چیزی که آنها می خواهند از ورود به فیسبوک استفاده کنند این است که برخی از اطلاعات را در فرم ثبت نام، مانند نام کاربری، به صورت خودکار پر کنید. این بدان معنی است که ورود به فیس بوک اساسا بی فایده است، زیرا پسزمینه هرگز نشانه ی موفقیت آمیز فیس بوک را نمی بیند. هنوز هم به داده های فرم ارسال می شود.

دومین نکته این است که وقتی ما با استفاده از شماره تلفن همراه ما ثبت نام می کنیم، آنها می خواهند پسورد بعد از مرحله تأیید تأیید را پر کنند. بنابراین جریان:

  1. با یک شماره تلفن ثبت نام کنید،
  2. یک تأیید اس ام اس
  3. دریافت رمز عبور را دریافت کنید. این به این معنی فردی است که آنها را ثبت کرده است
    شماره تلفن همراه تضمین شده است همان کسی است که هم هست
    تأیید گذرواژه

البته کاربر ورودی چیزی است که شما انتظار دارید – شماره تلفن و شماره تلفن و رمز عبور را پر کنید. همیشه، حتی زمانی که آنها از طریق فیس بوک ثبت نام کردند.

سوال من این است که برخی حملات که هکر می تواند برای استفاده از تنظیمات ثبت مانند این انجام دهد؟ من قصد دارم از این اطلاعات استفاده کنم تا یک مورد بنیادی تر از این باشد که چرا جریان ثبت نام باید تغییر کند.

تأیید اعتبار – API برنامه تلفن همراه با استفاده از UDID و Argon2

من سعی میکنم یک برنامه iOS ایجاد کنم، این کد و همه را نوشتم، و در حال حاضر API هایی را برای برقراری ارتباط با پایگاه داده در اختیار دارم.

  • برنامه با استفاده از HTTPS و درخواستهای POST برای برقراری ارتباط با API استفاده می کند.
  • رمزهای عبور با استفاده از الگوریتم Argon2 هچ شده اند.
  • گزینه های ورود به سیستم 3rd party وجود ندارد (فیس بوک، G + و غیره)

در حالی که من API ها را پیاده سازی می کردم متوجه شدم که کاربر می تواند یک کاربر دیگر را جعل کند، اعتقاد دارد که هیچ هویت هویتی وجود ندارد، من ایده ی ID Auth را مطرح کردم و می خواهم ببینیم چقدر کارآمد است.

  • ایده: هر بار کاربر ورود به برنامه، برنامه UDID را دریافت می کند و آن را به API ارسال می کند و API آن را با استفاده از الگوریتم مشابه (Argon2) هش کرده و آن را در پایگاه داده ذخیره می کند، زمانی که کاربر سعی می کند انجام دهد، برای مثال، تغییر نام و یا ارسال یک پیام به یک کاربر دیگر، برنامه UDID را به API ارسال خواهد کرد تا هویت کاربر را تأیید کند، در صورت وجود، سپس اقدام انجام خواهد شد.

آیا امن است؟ اگر نه، چگونه می توانم آن را بهبود دهم، یا آنچه باید انجام دهم؟