اصل از serverfault. با تشکر از رابرت مویر (RobM)
دشوار است که از آنچه که در اینجا نوشته اید توصیه های خاصی را بپرسید، اما من توصیه های عمومی را بر اساس پست ای که چندین سال پیش نوشتم، زمانی که هنوز می توانم وبلاگ را ناراحت کنم، داشته باشم. ] هراس نیست
اولین چیزها اول، هیچ "تعمیر سریع" به غیر از بازگرداندن سیستم شما از یک نسخه پشتیبان گرفته شده قبل از نفوذ وجود ندارد، و این حداقل دو مشکل دارد.
- هنگام تعیین نفوذ اتفاق افتاده است.
- این به شما کمک نمی کند تا "سوراخ" را که به آنها اجازه دادید در آخرین بار شکست بخورید را کنار بگذارید و همچنین به مقابله با پیامدهای هر "سرقت اطلاعات" که ممکن است رخ دهد.
این سوال نگه می دارد توسط مکرر توسط قربانیان هکرها که به وب سرور خود وارد شده اند، خواسته شده است. پاسخ ها به ندرت تغییر می کنند، اما مردم همچنان از این سوال می پرسند. من مطمئن نیستم که چرا شاید مردم فقط پاسخ هایی را که هنگام جستجو برای کمک دیده اند را دوست ندارند یا نمی توانند کسی را پیدا کنند که اعتماد به آنها بدهد. یا شاید مردم پاسخ به این سوال را بخوانند و بیش از حد به 5 درصد از این که چرا پرونده آنها خاص است و متفاوت از پاسخهایی است که می توانند به صورت آنلاین پیدا کنند و بیش از 95 درصد از پرسش ها و پاسخ ها را از دست بدهند، جایی که پرونده آنها نزدیک به اندازه کافی است به عنوان یکی آنها آنلاین را مطالعه کنید.
این به من اولین اطلاعات مهم مهم را به ارمغان می آورد. من واقعا قدردانی میکنم که شما یک برف ریزه منحصر به فرد هستید. من قدردانی میکنم که وبسایت شما نیز همانند بازتابی از شما و کسب و کار شما و یا حداقل کار سخت شما از طرف یک کارفرمای است. اما به فردی که در بیرون نگاه می کند، آیا یک فرد امنیتی که به دنبال مشکل است به شما و یا حتی حمله کننده کمک می کند، احتمالا مشکل شما حداقل 95٪ برابر با هر مورد دیگری است هرگز نگاه نکنید.
شخصا این حمله را انجام ندهید و شخصا توصیه هایی را که در اینجا دنبال می کنید یا از دیگران به دست نیاورید، شخصی نکنید. اگر بعد از تبدیل شدن به قربانی هک وبسایت، آن را خوانده اید، من واقعا متاسفم، و واقعا امیدوارم بتوانید چیزی در این زمینه مفید پیدا کنید، اما این زمان نیست که شما بتوانید خودتان را به چیزی که نیاز دارید ببخشید. انجام دهید.
شما تازه متوجه شده اید که سرور (ها) شما هک شده است. حالا چه؟
نترس. کاملا شتاب ناپذیر نیست و کاملا سعی نکنید کاری انجام دهید و هرگز اتفاق نیافتاده و عمل نکنید.
اول: درک کنید که فاجعه اتفاق افتاده است. این زمان برای انکار نیست زمان آن است که پذیرفتن آنچه اتفاق افتاده است، در مورد آن واقع بینانه باشد و اقدامات لازم را برای مدیریت پیامدهای تاثیر انجام دهد.
بعضی از این مراحل صدمه می بینند و (مگر اینکه وب سایت شما یک کپی از من داشته باشد جزئیات) من واقعا اهمیتی نمیدهم که تمام یا بعضی از این مراحل را نادیده بگیرید، اما انجام این کار در نهایت چیزها را بهتر خواهد کرد. این دارو ممكن است احساس خستگی كند اما گاهی اوقات شما باید نادیده بگیرید كه اگر واقعا میخواهید درمان را انجام دهید
مشكل را از بدتر شدن آن از قبل جلوگیری كنید:
- اولین چیزی كه باید انجام دهید این است كه سیستم های آسیب دیده را از هم جدا كنید اینترنت. هر گونه مشکلی که در اختیار دارید، ترک سیستم به اینترنت متصل می شود و اجازه می دهد حمله ادامه یابد. منظور من این کاملا به معنای واقعی کلمه است هر کسی را از نظر فیزیکی از سرور بازدید و از کابل های شبکه جدا شوید اگر این چیزی است که آن را طول می کشد، اما قبل از تلاش برای انجام هر کاری دیگری، قربانی را از هم جدا کنید.
- تمام گذرواژه های خود را برای همه حساب ها در همه کامپیوترهایی که در همان شبکه به عنوان سیستم های به خطر افتاده است. نه واقعا. همه حساب ها همه کامپیوترها. بله، شما درست می گویید، این ممکن است بیش از حد باشد؛ از سوی دیگر ممکن است آن را نداشته باشد. شما هر دو راه را نمی دانید، آیا شما؟
- سیستم های دیگر خود را بررسی کنید. توجه ویژه ای به سایر سرویس های اینترنتی و کسانی که دارای اطلاعات مالی و یا سایر اطلاعات حساس تجاری می باشند توجه داشته باشید.
- اگر سیستم اطلاعات شخصی شخصی شما را نگه می دارد، بلافاصله شخصی را که مسئول حفاظت از داده ها است اطلاع دهید (در صورتی که شما نیستید) و URGE کامل افشای من می دانم این یکی سخت است. من می دانم که این یکی صدمه دیده است. من می دانم که بسیاری از شرکت ها می خواهند این نوع مشکلی را در زیر فرش بگذارند، اما کسب و کار باید با آن برخورد کند – و باید این کار را با توجه به قوانین مربوط به حریم خصوصی انجام دهد.
هر چند مشتریان شما را آزار می دهد ممکن است به شما در مورد یک مشکل بگویم، اگر آنها به آنها نگویند، آنها خیلی ناراحت خواهند شد و تنها پس از اتمام هزینه کالاهای 8000 دلاری با استفاده از اطلاعات کارت اعتباری که از سایت شما دزدیده اند .
به یاد چه چیزی گفتم قبلا؟ چیز بدی پیش آمده است. تنها سوال در حال حاضر این است که چگونه شما با آن برخورد می کنید.
مشکل کامل را درک کنید:
- سیستم های آسیب دیده را آنلاین وارد نکنید تا این مرحله کامل نباشد، مگر اینکه بخواهید فردی که پستش نقطه قوت من برای تصمیم گیری درباره نوشتن این مقاله بود. من نمی خواهم به این پست بپیوندم تا مردم بتوانند خنده ارزان بگیرند، اما تراژدی واقعی این است که مردم از اشتباهاتشان یاد بگیرند.
- سیستم های مورد حمله را بررسی کنید تا بدانند که چگونه حملات موفق شدند به خطر بیفتند امنیت شما. هر تلاش برای پیدا کردن جایی که حملات "از آن" آمده است، به طوری که شما درک کنید که چه مشکلی دارید و نیاز دارید که در آینده برای ایجاد سیستم خود ایمن باشید.
- دوباره سیستم های مورد حمله را بررسی کنید، این بار برای درک جایی که حملات رخ داد، به طوری که شما متوجه شدید چه سیستم هایی در حمله مورد سوء استفاده قرار گرفته اند. اطمینان حاصل کنید که هر پیغامی را دنبال کنید که نشان می دهد سیستم های خطرناک می توانند به سیستم خود برای حمله به سیستم های خود تبدیل شوند.
- اطمینان حاصل کنید که "دروازه ها" در هر و تمام حملات به طور کامل درک شده اند، بنابراین شما ممکن است آنها را به درستی بسته کنید. (به عنوان مثال اگر سیستم های شما توسط یک حمله تزریق SQL آسیب دیدند، نه تنها شما باید خط خاصی از کد را که آنها در آن شکست خورده اند، ببندید، شما می خواهید همه کد خود را بررسی کنید تا ببینید کدام نوع اشتباه در سایر نقاط ساخته شده است.
- متوجه میشوید که حملات ممکن است به دلیل بیش از یک نقص انجام شود. اغلب حملات از طریق پیدا کردن یک اشکال بزرگ در یک سیستم موفق نیستند، بلکه با ایجاد چندین مسئله (بعضی اوقات جزئی و بی اهمیت توسط خود) برای ایجاد یک سیستم سازش. برای مثال، با استفاده از حملات تزریق SQL برای ارسال دستورات به یک سرور پایگاه داده، کشف وب سایت / برنامه ای که حمله می کنید، در چارچوب یک کاربر اداری در حال اجرا است و استفاده از حقوق آن حساب کاربری به عنوان یک قدم برای سازش با دیگر بخش های یک سیستم. یا هکرها دوست دارند آن را بنویسند: "یک روز دیگر در دفتر استفاده از اشتباهات رایج مردم".
چرا نه فقط "تعمیر" سوء استفاده یا روت کیت که شما شناسایی کرده اید و سیستم را به صورت آنلاین باز کرده اید؟
در شرایطی مانند این، مشکل این است که شما کنترل بیشتری از این سیستم ندارید. این کامپیوتر شما بیشتر نیست.
تنها راه مشخص است که شما سیستم را کنترل کرده اید تا سیستم را بازسازی کنید. در حالی که مقدار زیادی در پیدا کردن و رفع استثمار مورد استفاده برای شکستن سیستم وجود دارد، شما نمی توانید مطمئن شوید که چه چیز دیگری به سیستم انجام شده است زمانی که نفوذ به دست آورد کنترل (در واقع، آن را برای هکرها که استخدام نمی نامردن سیستم ها را به یک botnet برای پچ کردن سوء استفاده هایی که از خودشان استفاده می کردند، برای محافظت از کامپیوتر جدیدشان از سایر هکرها و همچنین نصب روتکیت آنها).
برنامه ای برای بازیابی و بازگرداندن وب سایت خود به صورت آنلاین و چوب به آن:
هیچ کس نمی خواهد به مدت طولانی تر از آنها باید باشد. این داده شده است اگر این وب سایت یک مکانیزم تولید درآمد است، فشار به سرعت آن را به سرعت آنلاین خواهد شد شدید است. حتی اگر تنها چیزی که در معرض خطر است شهرت شما / شرکت شما است، هنوز هم فشار زیادی را به دنبال دارد تا همه چیز را سریع به پیش ببرد.
با این حال، به وسوسه بازگشت سریع به اینترنت ادامه ندهید. در عوض به همان سرعت ممکن حرکت کنید تا متوجه شوید که مشکلی ایجاد کرده و قبل از اینکه به اینترنت برمی گردد یا آن را حل کنید، یا تقریبا قطعا یک بار دیگر به یک نفوذ آسیب می رساند و به یاد داشته باشید، "یک بار هک شدن را می توان به عنوان بدبختی طبقه بندی کرد؛ پس از آن هک می شود، به نظر می رسد مثل بی دقتی "(با عذر خواهی به اسکار وایلد)
- من فرض دارم شما همه مسائل را که به نفع موفقیت آمیز در وهله اول موفق شدید قبل از اینکه حتی این بخش را شروع کنید شناختید. من نمی خواهم پرونده را بیش از حد تحمل کنم، اما اگر اولین بار آن را انجام ندهید، واقعا لازم است. با عرض پوزش.
- هرگز پول جاه طلب / حفاظت را نپردازید. این علامت علامت ساده است و شما نمی خواهید این عبارت همیشه مورد استفاده برای توصیف شما باشد.
- سعی نکنید همان سرور (ها) را بدون نیاز به بازسازی کامل به اینترنت بازگردانید. باید سریعتر ساخت یک جعبه جدید یا "خرد کردن سرور از مدار و انجام یک نصب تمیز" بر روی سخت افزار قدیمی تر از آن است که برای ممیزی هر گوشه ای از سیستم قدیمی برای اطمینان از پاک کردن آن قبل از قرار دادن آن را دوباره آنلاین اگر شما با آن مخالف هستید، احتمالا نمیدانید که واقعا این بدان معناست که مطمئن شوید که یک سیستم کاملا تمیز است، یا روشهای راه اندازی وب سایت شما یک ظلم و ستم ناپذیر است. شما احتمالا نسخه پشتیبان تهیه و تست شده از سایت خود را که شما فقط می توانید برای ساخت سایت زنده استفاده کنید، و اگر بعد از آن هک نکنید بزرگترین مشکل شما نیست.
- بسیار مراقب باشید در مورد استفاده مجدد از داده هایی که " زندگی "در سیستم در زمان هک. من نمی گویم "هرگز آن را انجام دهم" زیرا شما فقط به من نادیده می گیرید، اما به راستی من فکر می کنم شما باید عواقب حفظ داده ها را در نظر بگیرید، زمانی که می دانید نمی توانید یکپارچگی آن را تضمین کنید. در حالت ایده آل، شما باید این را از تهیه پشتیبان تهیه کنید تا قبل از نفوذ. اگر نمیتوانید یا نخواهید این کار را انجام دادید، باید با توجه به این اطلاعات دقت داشته باشید زیرا این آسیب دیده است. شما باید به طور خاص از عواقب دیگران آگاه باشید اگر این داده ها به مشتریان یا بازدیدکنندگان سایت به جای مستقیم به شما باشد.
- دقت نظارت بر سیستم (ها). شما باید تصمیم بگیرید که این کار را به عنوان یک روند مداوم در آینده (بیشتر در ادامه) انجام دهید، اما در طول دوره ای که بلافاصله پس از بازگشت به سایت شما به صورت آنلاین، به شما حسادت می کند، مراقب باشید. مهاجمان تقریبا قطعا برگشت خواهند کرد و اگر بتوانید آنها را در تلاش برای شکستن دوباره بگذارید مطمئنا خواهید توانست سریعا ببینید اگر واقعا تمام حفره هایی که قبل از آنها استفاده کرده اید را بسته و هرکسی که برای خود ساخته اند، بسته شده است و ممکن است مفید باشد اطلاعاتی که شما می توانید به اجرای قانون محلی خود منتقل کنید.
کاهش خطر در آینده.
اولین چیزی که شما باید بدانید این است که امنیت فرایندی است که شما باید در طول عمر خود اعمال کنید. چرخه طراحي، استقرار و نگهداري يک سيستم مبتني بر اينترنت، نه چيزي که شما مي توانيد چند لایه را بر روي کد خود لمس کنيد، مانند رنگ ارزان. برای به درستی امنیت، یک سرویس و برنامه باید از همان ابتدا با یکی از اهداف اصلی این پروژه طراحی شود. من متوجه هستم که خسته کننده است و شما همه آن را قبل از آن شنیده اید و من فقط "مرد فشار" را نمی فهمم که سرویس بتا وب2.0 (بتا) خود را به وضعیت بتا در وب ببرم، اما واقعیت این است که این نگه می دارد تکرار می شود زیرا درست است که اولین بار گفته شد و هنوز دروغ نشده است.
شما نمی توانید ریسک را از بین ببرید. شما نباید حتی سعی کنید این کار را انجام دهید. آنچه شما باید انجام دهید این است که بدانید که کدام خطرات امنیتی برای شما مهم هستند و درک چگونگی مدیریت و کاهش تاثیر خطرات و احتمال ریسک آن را خواهید داشت.
چه مراحلی را میتوانید انجام دهید احتمال حمله یک موفقیت را کاهش می دهد؟
به عنوان مثال:
- آیا نقصی بود که مردم را مجبور کرد تا یک سند شناخته شده در کد فروشندگان را به سایت خود بکشد؟ اگر چنین است، آیا شما مجددا باید فکر خود را در مورد چگونگی پچ کردن برنامه ها در سرورهای اینترنتی خود تجربه کنید؟
- این نقص بود که مردم را مجبور کرد تا یک سؤال ناخواسته را در کد فروش خود به سایت خود بکشد، در دسترس نیست؟ من قطعا از تغییرات تامین کنندگان حمایت نمی کنم هر وقت چیزی شبیه این شما را می کشد، زیرا همه آنها مشکالت خود را دارند و اگر بیشتر این رویکرد را انجام دهید، در سالیان متمادی از سیستم عامل استفاده می کنید. با این حال، اگر یک سیستم به طور مداوم به شما اجازه می دهد، شما باید به چیزی قوی تر یا حداقل دستکاری کنید، معماری خود را مجددا طراحی کنید تا اجزای آسیب پذیر در پشم پنبه و تا آنجا که ممکن است از چشم خصمانه پدید آید. 19659006] آیا نقص در کد تولید شده توسط شما (یا کسی که برای شما کار می کند) خطا بود؟ اگر چنین است، آیا شما مجددا فکر میکنید که رویکرد شما چگونه کد را برای استقرار در سایت زنده شما تأیید میکند؟ می تواند اشکال با یک سیستم تست بهبود یافته یا با تغییرات در استاندارد "برنامه نویسی" شما (به عنوان مثال، در حالی که تکنولوژی یک پاناساسیون نیست، شما می توانید احتمال تزریق موفقیت آمیز SQL را با استفاده از تکنیک های برنامه نویسی به خوبی مستند سازی کاهش دهید ).
- دچار نقص در ارتباط با چگونگی استفاده از نرم افزار سرور یا نرم افزار بود؟ اگر چنین است، آیا از روش های خودکار برای ایجاد و گسترش سرورها در صورت امکان استفاده می کنید؟ این کمک بسیار خوبی در حفظ یک حالت پایه "پایه" در تمام سرورهای شما است، به حداقل رساندن میزان کار سفارشی که باید بر روی هر یک انجام شود، و بنابراین امید به حداقل رساندن فرصت برای اشتباهی که باید انجام شود. همانند راه اندازی کد – اگر شما نیاز به چیزی "ویژه" برای انجام آخرین نسخه از برنامه وب خود را انجام دهید، سپس سعی کنید آن را به طور خودکار آن را انجام دهید و اطمینان حاصل کنید که همیشه به صورت سازگار انجام می شود
- آیا نفوذ شده است زودتر با نظارت بهتر سیستم های خود گرفتار شد؟ البته، نظارت 24 ساعته و یا سیستم "در تماس" برای کارکنان شما ممکن است مقرون به صرفه نیست، اما شرکت هایی وجود دارد که می توانند خدمات وب خود را برای شما نظارت کنند و در صورت مشکلی به شما هشدار دهند. شما ممکن است تصميم بگيريد که نميتوانيد اين را بپردازيد يا به آن نياز نداريد و فقط خوب است … فقط آن را در نظر بگيريد.
- از ابزارهايي مانند tripwire و nessus در جاي مناسب استفاده کنيد، اما از کورکورانه آنها استفاده نکنيد زيرا گفتم: برای یادگیری نحوه استفاده از چند ابزار امنیتی خوب که مناسب محیط شما هستند، زمان را صرف کنید، این ابزارها را به روز نگهدارید و از آنها به صورت منظم استفاده کنید.
- کارشناسان امنیتی را به طور منظم "ممیزی" امنیت وب سایت خود را در نظر بگیرید . باز هم ممکن است تصميم بگيريد که نميتوانيد اين را بپردازيد يا به آن نياز نداريد و فقط خوب است … فقط آن را در نظر بگيريد.
چه اقدامي ميتواند براي کاهش پيامدهاي موفقيتآميز انجام دهد؟
اگر تصمیمی بگیرید که «خطر» طبقه پایین سیل خانه شما بالا است، اما به اندازه کافی برای ارتقاء دادن به حریم خصوصی نیست، باید حداقل وراثت خانواده خانواده های غیرقابل جایگزین را در طبقه بالا حرکت دهید. راست؟
- آیا می توانید میزان خدماتی که به طور مستقیم در معرض اینترنت قرار دارند را کاهش دهید؟ آیا می توانید نوعی شکاف بین خدمات داخلی خود و سرویس های اینترنتی خود را حفظ کنید؟ این تضمین می کند که حتی اگر سیستم های خارجی شما به خطر بیافتد، شانس استفاده از این به عنوان یک سیستم بهینه سازی برای حمله به سیستم های داخلی شما محدود است.
- آیا شما اطلاعاتی را ذخیره نمی کنید که نیازی به ذخیره آن دارید؟ آیا این اطلاعات را "آنلاین" ذخیره می کنید زمانی که آن را می توان در جایی دیگر بایگانی کرد. دو بخش به این بخش وجود دارد: بدیهی است که مردم نمی توانند از شما اطلاعاتی را که شما ندارند سرقت کنند، و دومین نکته این است که کمتر از شما ذخیره می کنید، کمتر برای حفظ و کد گذاری نیاز دارید، و به این ترتیب شانس کمتر برای اشکالات وجود دارد. کد یا سیستم های طراحی شما.
- آیا شما از اصول "کمترین دسترسی" برای برنامه وب خود استفاده می کنید؟ اگر کاربران فقط نیاز به خواندن از یک پایگاه داده داشته باشند، پس مطمئن شوید که برنامه کاربردی وب برای استفاده از این سرویس فقط دسترسی خواندن دارد، اجازه دسترسی به آن را نمی دهد و قطعا دسترسی به سطح سیستم را نمی دهد.
- اگر شما نیستید در مورد چیزی بسیار با تجربه است و برای کسب و کار شما مرکزی نیست، در نظر بگیرید که برونسپاری کنید. به عبارت دیگر، اگر یک وبسایت کوچکی را که درباره نوشتن برنامه دسکتاپ صحبت می کنید صحبت کنید و تصمیم بگیرید که برنامه های کاربردی دسکتاپ کوچک را از سایت شروع کنید، سپس "سیستم صدور کارت اعتباری خود را برون سپاری" را به شخص دیگری مانند Paypal بسپارید.
- بخشی از برنامه بازیابی فاجعه شما را از سیستم های به خطر افتاده بازگردانید. این احتمالا فقط یک "سناریوی فاجعه" است که شما می توانید با آن روبرو شوید، به طوری که با مجموعه ای از مشکلات و مسائل خاص خود که از سرور معمولی "آتش سوزی" / "توسط سرور غول پیکر خوردن furbies" تهاجمی متمایز است.
… و در نهایت
من احتمالا هیچ چیز دیگری را که دیگران در نظر داشت مهم دانسته ام را کنار گذاشته ام، اما گام های فوق باید حداقل به شما کمک کند تا مرتب کردن چیزها را شروع کنید اگر به اندازه کافی موفق نباشید برای قربانی کردن به هکرها.
بالاتر از همه: نترس. قبل از عمل فکر کن. بعد از اینکه تصمیم گرفتید، به طور محرمانه عمل کنید و اگر یک چیزی برای افزودن به لیست مراحل دارید، نظر خود را در زیر بنویسید.