کیانوش آریانفر
کیانوش آریانفر
خواندن ۸ دقیقه·۳ سال پیش

گرفتن مجوز مکنا A 2 Z

این مستند راهنمای اخذ مجوز راه اندازی یک محصول، سرویس یا پدیده ای نوظهور و تازه در بازار سرمایه ایران است. قبل از هر چیز لازمه که سروده زیر از عبدالحمید بلوچ رو یک بار با صدای بلند بخونی و سعی کنی اون رو حفظ کنی و همیشه تو ذهنت داشته باشی:

// مشکلی نیست که آسان نشود

// مرد خواهد که هراسان نشود

// زین حوادث باید گذر کرد

// مشکلات باید پشت سر کرد

// ممکن است پرت خونین شود

// خاطرت نباید غمگین شود ...

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

این راهنما سعی میکنه صفر تا صد مواردی که برای این موضوع لازم داری رو در اختیارت قرار بده.

 سازمان بورس اوراق بهادار یک مؤسسه غیردولتی، که دارای شخصیت حقوقی و مالی مستقل است و درآمد این سازمان از محل کارمزدهای دریافتی و سهمی که از حق پذیرش شرکت ‌ها در انواع بورس ‌دریافت می‌کند، تأمین می‌شود.
سازمان بورس اوراق بهادار یک مؤسسه غیردولتی، که دارای شخصیت حقوقی و مالی مستقل است و درآمد این سازمان از محل کارمزدهای دریافتی و سهمی که از حق پذیرش شرکت ‌ها در انواع بورس ‌دریافت می‌کند، تأمین می‌شود.

برای گرفتن مجوز به صورت مشخص لازمه که تاییدات زیر رو داشته باشی:

۱. تایید رویه‌های تجاری محصول ( یعنی نحوه ارتباط گرفتن کاربرها با محصول شما، تمام رویه‌ها، اکشن‌ها و اطلاعاتی که در محصول شما به کاربر نهایی منتقل میشه.) این قسمت متاسفانه استاندارد مدونی نداره و خیلی به فردی که شما رو ممیزی میکنه بستگی داره.

۲. تاییدیه امنیت محصول (یعنی عدم آسیب پذیری در برابر حمله یا نفوذهای احتمالی آینده) از یک شرکت یا آزمایشگاه که پروانه و مجوز خودش رو از مرکز مدیریت راهبردی افتا گرفته باشه. لیست این شرکت‌ها رو از اینجا میتونید ببینید.

۳. تاییدیه پیاده سازی صحیح زیرساخت. یعنی اینکه سرورهای شما معماری صحیحی داشته باشه و حتی الامکان دسترسی این سرورها از شبکه محلی شما برقرار بشه و ...

۴. تاییدیه امنیت سرورها و سیستم‌عامل‌ها و پایگاه‌های داده

لازمه بگم که این مراحل اصلا به ترتیب نیست و باید سعی کنید حتی الامکان به صورت موازی همه موارد رو باهم پیش ببرید تا کار با سرعت بیشتری جلو بره.

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

تمامی این موارد بالا برای اینه که خاطر یه جایی به اسم مکنا رو از زندگی آتی این طفل تازه به دنیا اومده راحت کنی و تا حد خوبی تضمین کرده باشی اتفاق بدی براش نمیوفته.

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

  • اول از همه، اگر کاربرای محصول شما لازمه که برای استفاده یک حساب کاربری برای خودشون ایجاد بکنن، مطمئن بشید که روش امنی رو پیش پای اونها گذاشتین. تو چند سال اخیر همه وب سایت ها و اپ ها به سمت احراز هویت با شماره موبایل رفتن. پس اگر شما هم اینکار رو کردید احتمالا سعی میکنید با ارسال یک کد چند رقمی به شماره موبایلی که کاربر وارد کرده مطمئن بشید این شماره الان دست همین کاربره. پس یه چیزی رو بهش خیلی دقت کنید. مهاجمی که قصد داشته باشه با یک شماره موبایل غیر واقعی / یا شماره ای که متعلق به خودش نیست حساب کاربری ایجاد کنه، تلاش میکنه الگوی پیامک‌های ارسالی شما رو متوجه بشه و به نوعی اون رو پیش بینی کنه. پس اگر شما تعداد پیامک احراز هویتی که هر کاربر در یک باز زمانی مشخص ( مثلا هر ۱۰ دقیقه) میتونه دریافت بکنه رو محدود کنید تا حد زیادی جلوی این حمله رو گرفتین.
  • بعد اگر کاربرای شما میتونن برای حساب کاربری خودشون یک رمز عبور انتخاب کنن، باید مطمئن بشی که رمز اونها تا حد خوبی قوی هست. یعنی به زبون ساده یه الگویی به کاربرها بدی که رمز قوی برای خودشون انتخاب کنن.
پینوست
پینوست
  • حتما و حتما و حتما از پروتکل https به جای http استفاده کنید. اگر میخواین تفاوت‌های این دوتا رو باهم ببینید این لینک میتونه به شما کمک بکنه
  • محافظت در برابر حملات مهندسی اجتماعی! انقدری که اسمش سخته خودش سخت نیست. این فایل کامل توضیح داده که حملات مهندسی اجتماعی چیه و چطوری دربرابر این نوع حمله‌ها ایمن بشیم.
  • پورت‌های باز سرور و تکنولوژی‌هایی که استفاده کردین رو باید مخفی کنید. برای مخفی کردن تکنولوژی‌های مورد استفاده کلید واژه Server Fingerprint رو سرچ کنید و راهکارهایی که ارائه شده رو روی سرورهاتون اعمال کنید.
  • داده‌هایی که رو در پاسخ به سمت کلاینت ارسال میکنید محدود کنید. مثلا فرض کنیم که کاربر شما با شماره موبایل وارد میشه و عملا شناسایی با شماره موبایل در محصول شما انجام میشه پس لازم نیست اطلاعات بیشتری از کاربر مثلا ( کد ملی یا ...) رو در پاسخ این عملیات سمت کلاینت ارسال کنید.
  • سعی کنید درخواست‌های شبیه سازی شده یا جعلی رو به نوعی شناسایی کنید. گوگل ریکپچا یا سرویس‌های مشابه با اون ابزار خیلی مناسبی هستن تا رفتار کاربر عادی رو از رفتارهای جعلی (شبیه بات) شناسایی کنید و عملا اون‌ها رو بلاک کنید تا هم لودی روی سرورهای شما ایجاد نکنه و هم سر منشا یه سری حمله دیگه رو محدود کرده باشید.
  • اگر وب اپلیکیشن دارید مطمئن بشید آدرسی که تو مرورگر به کاربر نشون میدین قابل جعل شدن نباشه. یعنی اگر من به عنوان یه کاربر عادی وارد صفحه حساب کاربری خودم در سرویس شما شدم، با عوض کردن یک شماره یا کارکتر در URL به صفحه متعلق به یک حساب کاربری دیگه هدایت نمیشم. عملا هر صفحه رو چک کنید که آیا برای این کاربر قابل دسترس هست یا نه!
  • کوکی! خیلی باید حواستون بهش باشه. اگر از کوکی استفاده کردید باید مطمئن بشید که به صورت درستی محافظت میشن. کوکی ها دو تا پرچم یا Flag دارن که باید فعال بشه. پرچم های isSecure و httponly چیزی هست که باید برای کوکی‌های محصول شما فعال بشن. اگر نیاز به راهنمایی یا توضیح بیشتر داشتید این صفحه رو بخونید.
  • یه نوع حمله که خیلی پرتکرار هست با اسم XSS Attack شناخته میشه. باید مراقبش باشید و پیکربندی درستی رو برای محصولتون انجام بدید.

خلاصه این مواردی که گفتم معمولا ممکنه سرمنشا خیلی از اتک‌ها باشه. یه استاندارد درست و حسابی به اسم OWASP هست که خیلی مفصل در مورد امن سازی محصولات نرم افزاری توضیح داده. سعی کنید حتما یک بار مرورش کنید.


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

برای اینکه مطمئن بشیم ماشین‌ها ( سرورهای مجازی یا VMs)ی که استفاده میکنیم حفره یا مشکل امنیتی نداره یه استاندارد به اسم CIS (Center of Internet Security) هست که راهکار مفصلی برای هاردنینگ سرورها و تکنولوژی‌ها ارائه کرده و باید بسته به نوع سیستم‌عامل، پایگاه داده یا وب سروری که استفاده کردید دستورالعملش رو یک بار مرور کنید و مواردی که برای امن سازی پیشنهاد داده رو خط به خط اجرا کنید. شک نکنید که اگر این قسمت رو درست انجام بدید در آینده هم خیلی خیلی بهتون کمک میکنه.

من چندتا از این دستورالعمل‌ها رو براتون این پایین گذاشتم ولی اگر نسخه‌ای رو نیاز داشتین که اینجا نبود، به وب سایت رسمی CIS برید و از اونجا درخواست بدید که براتون ایمیل بشه.


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

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

  • حتما از آپدیت بودن فایروال شبکه مطمئن بشید.
  • لاگ شبکه باید به صورت مشخص در یک استوریج ذخیره سازی بشه.
  • تمام دسترسی ها به فایروال و ... باید بر اساس اسامی افراد باشه و مثلا لاگین شدن با user1 یا admin صحیح نیست.
  • اپ سرورها باید در یک زون محلی پیاده سازی بشن
  • دیتابیس‌ها هم باید در یک زون محلی پیاده سازی بشن و حتی الامکان از زونی که در اون اپ‌ سرورها هستن جدا باشه
  • اگر از ابزارهایی مثل ELK استفاده میکنید برای اون هم یک زون مجزا در نظر بگیرید.
  • اگر از سیستم‌عامل لینوکس استفاده میکنید حتما باید یک ریپازیتوری محلی کنار ماشین‌های خودتون داشته باشید.


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

اول از همه باید یک نامه بزنید به «مدیریت محترم فناوری اطلاعات سازمان بورس و اوراق بهادار» با موضوع: درخواست بررسی و تائید همکاری. و توی این نامه توضیح بدین که این محصول قرار هست با چه بخشی از بازار سرمایه و چه شکلی همکاری کنه. به همراه نامه باید این فرم هم تکمیل و پینوستش کنید تا به اصلاح درخواست شما گردش بخوره.

بعد از اینکه این نامه وارد سازمان بورس و مکنا شد، بسته به نوع و ماهیت محصول شما به یک بخش تخصصی ارجاع میشه تا رویه‌های تجاری محصول شما توسط اون بخش یا معاونت تخصصی، مورد ارزیابی قرار بگیره. در خصوص رویه‌های تجاری هم اول مقاله توضیح دادم که چیه و خروجی مورد نظر چی باید باشه.

اگر جواب ممیزی رویه‌های تجاری مثبت بود و محصول شما مشکلی نداشت در پاسخ به نامه‌ای که ممیز دریافت کرده بود یک نامه میزنن به « اداره کل و نظارت فناوری اطلاعات» و میگن که کار این دوستان درسته و شما زحمت بقیه چک و ممیزی فنی و امنیتی رو بکشید. ( اگر هم تو محصول شما مشکلی وجود داشته باشه معمولا این موارد رو بهتون اعلام میکنن و یه فرصت میدن برای رفع کردنش و مجدد ارزیابی میکنن تا وقتی که هیچ ایرادی باقی نمونه)

کار نظارت و بررسی‌های فنی و امنیتی هم با مرکز نظارت بر امنیت اطلاعات بازار سرمایه یا همون مکنا ست. این دوستان هم زیرساخت شبکه و سیستم‌عامل‌ها و ... رو حسابی چک میکنن و اگر مشکلی رو مشاهده نکنن یه نامه میدن دست راستتون به اسم مجوز!

خلاصه اینکه ما برای شروع محصولمون (پینوست) تقریبا هیچکدوم از این مراحل پر پیچ و خم رو نمیدونستیم و همش به در بسته میخوردیم و دوباره کاری میشد. به همین خاطر سعی کردم یه مستند کامل براتون تهیه بکنم. اگر هم جایی نیاز به راهنمایی بیشتر داشتین میتونید از طریق لینکداین من باهم در ارتباط باشید.

موفق باشید و رو به جلو - کیانوش آریانفــــــر



مکناسازمان بورسمجوزمحصول دیجیتالپینوست
علاقه مند به توسعه محصولات دیجیتال
شاید از این پست‌ها خوشتان بیاید