خواندن محتویات وب سرویس
با سلام و درود ، دوستان من یه اپلیکشن دارم که هنوز رو مارکت پابلیش نشد اما از همین حالا با دغدغه ی امنیتیش بدخواب شدم. یکی از سوالاتی که واسم پیش اومده که آیا محتویات فایل های سرور قابل خووندنه!؟ به عنوان مثال محتویات فایل های وب سرویس یا محتویات فایل های اطلاعات ورود به بانک اطلاعاتی و یا حتی مثلا یه عکس کوچولو و ساده ...اگر پاسخ جوابم مثبته چه راهکاری برای امنیتش وجود داره و یا اساسا همچین چیزی وجود نداره (شما هکرها یه مثالی دارید که میگه اگه یه کامپیوتری رو تو یه قویترین گاوصندوق دنیا و تویه اعماق زمین دفنش کنند و بعد یه لشکر سرباز و قشون هم بالا اون بزارن باز ما هکرها یه راهی واسه نفوذش پیدا میکنیم). من خودم تا حالا بعضی موقه ها یه وضولی هایی کردم تو بعضی از وب سرویس های موجود تو سرور سایت مختلف (البته اونهایی که درپیت بودن نه به عنوان مثال هیچ وقت به خودم حتی این جرعت بدم که مثلا با وب سرویس بانک ملت ور برم و اون رو انگولک کنم چونکه میدون این وب سرویس ها 24 ساعته مونیتور میشن و زود از طریق آیپی شناسایی میکنند و که اگه ندنت دست پلیس فتا و پیگیری قضایی ، زود باهات تماس میگیرن که آقا با سایت ما چی کا داری و یا ...)
مثلا اومدم با آزمون و خطا و حدس زدن یه فیلد هایی رو به وب سرویس خروندم و بعضی موقه ها یه اطلاعات محدودی هم گرفتم و هی از رو کنجکاوی دوس داشتم از محتویات فایل وب سرویس (مثلا Name=kdsjdskd?http:\\domain.ir\\web-ser.php) فلان سایت سر در بیارم و دانلودش کنم ، سوال اصلی من اینه آیا راهی برای دانلود فایل وب سرویس و یا فایل هایی که مسیر اون رو سایت میدونیم هست و بعدا ببنیم چه جوری کدنویسی شدن!؟ چه راهکارهایی رو برای امنیت همچین سناریویی به من پیشنهاد میکنید!؟ امروز با استاد نصیری صحبت میکردم و ایشون به من گفتن تو لایه سوم امنیتی میتونی از اینکریپشن برای اطلاعات استفاده کنی و من در پاسخ ایشون گفتم اطلاعات من اطلاعات حساسی نیست که بخوام کدینگ رو اون بذارم که اگه مثلا تو میونه راه و شبکه استراق شد کسی ازش سر در نیاره و اطلاعات بدرد بخوری باشه برای هکر و یا ارزش زمان و پروسس اطلاعات براش داشته باشه که اون دیکد کنه ، نه من اطلاعاتم من یه اطلاعات ساده ای که رو نت وجود داره ولی من نمیخوام اون ها رو علنی کنم منظورم اطلاعاتی هستیش که رو دتابیس من که مای اسکیواله و از طریق وب سرویس و خروجی جیسون یا جیسان در اختیار یوزر نهایی در اپلیکشن قرار می گیره و نمایش داده میشه هست.احساس میکنم یه ذره گنگش کردم و این توضیحاتو باید تو اول سوالم میاوردم ولی برای مقدمه خوب بود که شما عزیزان بدونید مدنظرم چیه و دغدغه چی رو دارم سوالم رو با شماره گذاری مطرح میکنم
1- آیا راهی برای دانلود فایل وب سرویس سایت و دومین ها وجود داره و بداٌ ما بیایم محتویاتش رو بخونیم !؟
2- چه راهکاری برای جلوگیری از شماره یک وجود داره و برای حفاظت وب سرویس چه پیشنهادهایی رو به من میدید!؟
پیشاپیش از پاسخ هاتون کمال تشکر و امتنان رو دارم و برای همتون بهترین ها رو آرزو می کنم و کاشکی منم هک یاد میگرفتم اینو به شوخی میگم حداقل میتونستم آخرای فارغ تحصیل نمره های نکبتیمو تغییر میدادم چه با حال میشد اون موقه(جدی نگیرید آخری رو )...
4 پاسخ
سلام دوست من
این که بتوان فایل های اپلیکیشن تحت وب شما رو دانلود کرد و یا اونا رو خوند این بستگی به امنیت وب سرور شما داره. برای این کار ها شما باید به دنبال تدابیر امنیت وب سرور بروید که برای هر وب سرور تنظیمات مختلفی دارد برای مثال تنظیمات IIS و apache , Tomcat با هم فرق دارند و برای هر کدام کانفیگ امنیتی منحصر به فردی باید صورت بگیرد. اما تنظیمات پیش فرض همه ی وب سرور ها این است که شما فایل هایی که سورس سایت و سرویس ها در آن نوشته شده است را نتوان دانلود کرد زیرا که این فایل ها هنگام فراخوانی اجرا می شوند. چیزی که شما گفتید فایل های php هستند که به صورت مفسری اجرا می شوند. ولی در فایل های دات نت و یا جاوا کد های برنامه کامپایل می شوند و روی وب سرور قرار می گیرند. پس شما نمی توانید کد آن را بخوانید. برای فایل های php هم به طور پیش فرض شما کد های php رو دریافت نخواهید کرد.
چیزی که شما به دنبال اون هستید امنیت وب سرویس نیست امنیت وب سرور هست.
ولی برای امنیت وب سرویس ها بهتر است که از وب سرویس های SOAP استفاده نکنید زیرا که این وب سرویس ها هم سرعت پایینی دارند. برای وب سرویس ها بهتر است از Restful استفاده شود همچنین برای امنیت راه های مختلفی وجود دارد که یکی از بهترین آنها oauth۲ است که در حال حاضر توسط شرکت های بزرگ کامپیوتری دنیا استفاده می شود که راهکار این مکانیزم به این صورت است که به شما یک کلید داده می شود که شما می توانید با استفاده از آن وب سرویس خود را فراخوانی کنید و اگر کلید را نداشته باشید وب سرویس برای شما کار نمی کند. همچنین این کلید عمر معینی داشته و هر چند وقت یک بار که عمر آن تمام شد باید یک کلید دیگر از سرور دریافت کنید.
ممنونم جناب مهندس عزیزم
خوب الان میشه به من کمی راهکار و توصیه امنیتی سرور را بگید مثلا به من بفرمایید که با پشتیبانی سرویس دهنده ای که از ازش سرویس میگیرم (سرور فعلا روی دتاسنتر پارس آنلاینه) من سرویس رو از یه شرکت ثالثی دارم میگیرم خودم فعلا برام مقدور نیست که مستقیما از پارس آنلاین خدمات بگیرم و یا دیتاسنترهای دیگه و پشتیبانی سرویس دهنده ای که از اون ها خدمات گرفتم بحدی آماتور هستش که آدم از پشت تلفن میدونه اینا چند مرده حلاجن (میدونم اینا از پشتیبانی فقط اسمشو یدک میکشن) و میخوام زمانی که تیکت به اونها بدم که آقا برای محافظت از سرور من(البته این رو هم میدونم که منظور از سرور من یه فلدر داخله IIS ویندوز سرورشون و یا سرویس apachi لینوکسشونه و هم من و هم اونها به اون میگیم سرور،میزبان و یا هاست) حالا من به عنوان کسی که اصلا سرورو یا کامپیوتر قدرتمند اجاره ای خودم رو اصلا ندیدم و هیچ دسترسی فیزیکی و متا فیزیکی و نظری غیر نظری و یا دسترسی به پورت ها و غیره ذالک اون ندارم و فقط به من یه کنترل پنل Plesk و DirectAdmin دادن که من رو اون فایلهام رو آپلود و دانلود و یا یوزر پسورد و یا بانک اطلاعاتی مای اسکیوال و یا اسکیوال سرور بسازم ندارم من چه جوری میتونم اطمینان حاصل کنم که اینها از نظر امنیتی همه چارچوب اصلی و استاندارد رو در نظر گرفتن و تقریبا من خیالم از اون استانداردهای اولیه راحت باشه و یا اگه زمانی سرور مورد حمله قرار بگیره بیشتر از نظر هک اجتماعی و یا حدس زدن پسورد های بی امنیت و غیره صورت بگیره و از نظر فنی و امنیتی براش اتفاقی نیوفته و این احتمال منتفی بشه حداقل روی کاغذ و اگر روزی این اتفاقم برای سرور من بیوفته من از نظر قانونی مدرکی برای اثبات ادعام داشته باشم که اهمالی از طرف من نبوده و پشتیانی محترم با تقاضاهای من که در سوابق تیکتی من موجوده پشت گوش انداختن و اونها مقصر اصلی هستند مثه اون متل کودکانه "من نبودم دستم بود تقصیر آستینم بود" ... حالا این مورد آخر شوخی و یه جور مذاحه واقعا خیلی ابلهانه و غیر مسئولانه است که آدم بیاد تقصیرهای خودشو گردن دیگران بندازه فقط من منظورم از این حکایت این بود که من دسترسی به فیهاخالدون سرور نداشتم و کل دسترسی من محدود میشد به تعریف کاربر و پسورد و ایجاد ایمیل و یه تغییر ورژنه php که از 5.2 به 7 یکی دو مورد دیگه بوده و همین...
واقعا ممنون میشم کسایی که مثه من اولین بارشونه که هاست گرفتن و تجربه تلخه هکه سرور و یا دسترسی غیر مجاز و غیراز خودشون رو به اطلاعات سرورشون داشتن در اختیارم بذارن
من که واقعا خیلی آماتور و اول راهم که بتونم توصیه ای داشته باشم اما کوچکترین توصیه من به دیگران برای اجاره هاست و سرور اینه که از شرکتایی سرویس بخرن که حداقل یک بار رفته باشن محل شرکت و شرکت آدرس درست و درمون داشته باشه یه شماره ایرانسل نذاشته باشه برای پشتیبانی و پشتیبان از نظر فنی وارد باشه و بتونه دغدغه های شما رو درک کنه جوری نباشه که رفته با یه دتاسنتری قراردادی رو بسته باشه و پشتیبانیشو بده به خانمش و خودشم مثلا با خیال راحت تو شغل اصلیش که شاید کارمند اداره یا شرکتی باشه و یه سایتی رو بالا آورده و از اون به عنوان درآمد دوم استفاده میکنه (از همه معذرت میخوام که این رو مثال رو زدم ولی واقعا هستن دوستانی که این کارو میکنند و کسایی مثه من گول سایت و تم و رنگ و لعاب ورد پرس سایتشون خورده)
از شما دوست عزیزمم (پلی تکنیکی پرافتخار) هم واقعا تشکر میکنم من هم افتخار این رو داشتم که با پروفسور میبدی تو قزوین درس داشته باشم.
هرچی به نظرتون اومد بهم بگید حتی اگه به نظر خیلی پیش پا افتاده و یا خیلی بدیهی باشه البته زیاد غیر فنی نیستم ولی شاید بشه این تاپیک رو یه جورایی یه مرجعه کوچولو و مفیدش کرد من که همین میتونستم بگم که تو بالا بهش اشاره کردم.
پیشاپیش از پرگویی خودم حوصله شما و انگشتان دستمم معذرت می خوام و سپاس برای درمیون گذاشتن تجربیات تلخ و شیرین و توصیه های امنیتیتون...
باز ممنونم دوست عزیزم
والا الان برام مقدور نیست که برم رو سرویس های سرور اختصاصی از وقتی هم اینترنت رو ملی کردن ، ترافیک ملی محاسبه میشه اصلا نیمیتونم به فکره سرور خارجی باشم حداقل اگه بتونی اونهارو راضی کنی که هاست بهت بدن از پشتیبانی و امنیتش خیالت راحته و بازم نمیدونم این حرف بزنم البته تا این خط نوشتم ده بار نوشته مو پاک کردم همین الان اگر تحررررررررررررررررررررررررررررررررررررررررررریم نبودیم چه سرویس های میتونستی از شرکت های معتبر بگیری تا اینکه از این شرکت های بی حساب کتاب ایرونی و وطنیه صفر خودمون.
با این کاراشون واقعا چه اجهافی میشه در حق ما ایرونیا بخصوص ما جوونا تو 180 اندی کشور تو دنیا ما کوبا کره شمالی و سوریه آخه ینی چی این چه کاریه میخواید به کجا برسید!!!؟
نمیدونید چه حسرتی میخورم وقتی دارم سرویس فایربیس گوگلو تست میکنم بهترینه بهتریناست نه دغدغه امنیت داری نه دغدغه هاست و سرور و باتری دوایس و همه چیش کاملا مهندسی و اصولی و راحت برای دولوپر ...
بگذریم چه میشه کرد... فقط آه و حسرت و دیگر هیچ
از شما جناب مهندس عادلی عزیز هم تشکر دوباره دارم.
دوست عزیزم
با دسترسی هایی که دارید به سختی می توان فهمید که سرویس دهنده اینترنت شما چه تدابیر امنیتی در نظر گرفته و برای این که بفهمید سرویس شما چقدر امن است دست به دامن تکنیک های تست نفوذ بشید و از هکر های کلاه سفید بخواهید که امنیت سرویس دهنده شما رو بهتون بگن چون که دسترسی شما محدود تر از اون هست که خودتون بتونید پیکربندی امنیتی رو تغییر بدید. ولی شما حداقل روی وب سایت خودتون باید حداقل موارد امنیتی رو رعایت کنید. تا در صورتی که مشکلی پیش آمد و این مشکل تقصیر سرویس دهنده بود بحثی پیش نیاید. ولی دوست عزیز اگر خیلی نگران امنیت وب سایت خود هستید بهتر است که از یک سرور اختصاصی استفاده کنید و خودتان با کمک اشخاص خبره در امنیت پیکربندی های لازم را انجام دهید.
بنده تخصص زیادی در امنیت و تست نفوذ ندارم و بهتره که دوستان خبره در این کار مبحث تست نفوذ و پیکربندی امنیتی رو توضیح بدن.
در انتها خوشحالم که با پروفسور میبدی با اون اخلاق خاص و منحصر به فرد درس داشتید.