Как взламывают сайты и как вам этого избежать

В данной статье мы не будем рассматривать взлом хостинга, на котором работает сайт, и сосредоточимся только на взломе самого сайта.
В данной статье мы не будем рассматривать взлом хостинга, на котором работает сайт, и сосредоточимся только на взломе самого сайта. Фото: tookapic. CC0 Public Domain.

Мно­гие виде­ли сооб­ще­ния о том, что был взло­ман оче­ред­ной сайт. Воз­мож­но, кто-то лич­но с этим стал­ки­вал­ся. Как могут взло­мать сайт, и какие меры защи­ты мож­но пред­при­нять? Денис Кулан­дин, экс­перт Теп­ли­цы соци­аль­ных тех­но­ло­гий, рас­ска­зы­ва­ет о том, что необ­хо­ди­мо сде­лать, что­бы защи­тить свой сайт и не стать жерт­вой хаке­ров.

Взлом сай­та это полу­че­ние несанк­ци­о­ни­ро­ван­но­го досту­па к фай­лам сай­та или к раз­де­лу адми­ни­стри­ро­ва­ния систе­мы управ­ле­ния сай­том.

В дан­ной ста­тье мы не будем рас­смат­ри­вать взлом хостин­га, на кото­ром рабо­та­ет сайт, и сосре­до­то­чим­ся толь­ко на взло­ме само­го сай­та.

Преж­де все­го, сто­ит заме­тить, что если вы ниче­го не буде­те делать, то рано или позд­но сайт будет взло­ман!

Дело в том, что совре­мен­ные сай­ты на WordPress насчи­ты­ва­ют око­ло 500 тысяч строк кода. Так­же это код по боль­шей части открыт и любой может его ана­ли­зи­ро­вать, в том чис­ле и на пред­мет нахож­де­ния уяз­ви­мо­стей. В таком огром­ном мас­си­ве рано или позд­но най­дут ошиб­ку, и зло­умыш­лен­ни­ки захо­тят ею вос­поль­зо­вать­ся.

Сканирование уязвимостей

Сайт на типо­вой плат­фор­ме, такой как WordPress, мож­но узнать по его харак­тер­ным осо­бен­но­стям (сиг­на­ту­рам). Напри­мер, адми­ни­стра­тив­ная панель сай­тов на WordPress рас­по­ла­га­ет­ся в под­пап­ке «wp-admin». Про­ска­ни­ро­вав ваш сайт по набо­ру сиг­на­тур, мож­но узнать мно­го дета­лей: наиме­но­ва­ние и вер­сию типо­вой плат­фор­мы, какие допол­не­ния уста­нов­ле­ны и их вер­сии, спи­сок поль­зо­ва­те­лей и т. п.

Вы сами може­те про­ска­ни­ро­вать ваш WordPress при помо­щи сер­ви­сов hackertarget.comscanwp.comgoogle.com/transparencyreport,

Памя­туя о том, что WordPress явля­ет­ся одной из самых попу­ляр­ных плат­форм для созда­ния сай­тов, понят­но, что в Интер­не­те суще­ству­ет огром­ное коли­че­ство раз­лич­ных ска­не­ров, кото­рые посто­ян­но ска­ни­ру­ют сеть в поис­ках сай­тов, осно­ван­ных на этой плат­фор­ме. Когда ваш сайт будет про­ска­ни­ро­ван одним из ска­не­ров, это вопрос бли­жай­ше­го вре­ме­ни.

Для того что­бы затруд­нить ска­ни­ро­ва­ние ваше­го сай­та, мож­но уста­но­вить допол­не­ния, кото­рые будут скры­вать вер­сию WordPress.

Кро­ме это­го, сто­ит уда­лить все неак­тив­ные допол­не­ния и темы сай­та. То, что они не актив­ны, не зна­чит, что их не могут исполь­зо­вать для взло­ма сай­та. Так­же крайне важ­но регу­ляр­но делать резерв­ные копии ваше­го сай­та. Даже если ваш сайт будет взло­ман, то это не при­чи­нит вам серьез­но­го уро­на, так как вы все­гда смо­же­те вос­ста­но­вить­ся из резерв­ной копии.

Более подроб­но о том, как пра­виль­но делать резерв­ные копии, вы може­те узнать из ста­тьи «Как пра­виль­но настро­ить бэкап для ваше­го сай­та на WordPress, и поче­му это важ­но».

Итог:

  • уста­но­ви­те допол­не­ния для сокры­тия вер­сии сай­та и его ком­по­нен­тов, а так­же настрой­те firewall сай­та (напри­мер, при помо­щи пла­ги­на All In One WP Security & Firewall, Acunetix WP Security и про­чих);
  • уда­ляй­те неак­тив­ные пла­ги­ны и темы;
  • регу­ляр­но делай­те обнов­ле­ние сай­та;
  • делай­те регу­ляр­ные бэка­пы.

Обновления

Крайне важ­но для защи­ты сай­та делать пери­о­ди­че­ские обнов­ле­ния. Обнов­ле­ния не толь­ко закры­ва­ют най­ден­ные уяз­ви­мо­сти, но и могут содер­жать новую улуч­шен­ную функ­ци­о­наль­ность, повы­шать быст­ро­дей­ствие сай­та.

Плат­фор­ма WordPress хоро­ша тем, что очень удоб­но делать обнов­ле­ния и почти все ком­по­нен­ты сай­та мож­но обно­вить: ядро сай­та, рас­ши­ре­ния и темы оформ­ле­ния.

Одна­ко к про­цес­су обнов­ле­ния сай­та надо подой­ти акку­рат­но. К сожа­ле­нию, ино­гда раз­ра­бот­чи­ки допус­ка­ют ошиб­ки в самих обнов­ле­ни­ях. Эти ошиб­ки могут при­ве­сти к тому, что ваш сайт после обнов­ле­ния будет пло­хо рабо­тать или вовсе пере­ста­нет отоб­ра­жать­ся.

Если вашим сай­том поль­зу­ет­ся мно­го людей, то сто­ит их зара­нее изве­стить о пред­сто­я­щих рабо­тах по обнов­ле­нию. Сле­ду­ет выбрать и согла­со­вать с дру­ги­ми поль­зо­ва­те­ля­ми сай­та наи­бо­лее под­хо­дя­щее для обнов­ле­ния вре­мя.

Обыч­но самым луч­шим вре­ме­нем для обнов­ле­ния явля­ет­ся вре­мя наи­мень­шей поль­зо­ва­тель­ской актив­но­сти. Обыч­но это ноч­ные часы в выход­ной день. Одна­ко для того, что­бы точ­но знать, когда на вашем сай­те наи­мень­шая актив­ность, сто­ит загля­нуть в ана­ли­ти­ку сай­та.

Что­бы избе­жать про­блем, крайне важ­но перед нача­лом обнов­ле­ния сде­лать резерв­ную копию сай­та, если он у вас неболь­шой, или хотя бы базы дан­ных сай­та. Вооб­ще, на вашем сай­те обя­за­тель­но дол­жен быть настро­ен авто­ма­ти­че­ский про­цесс созда­ния резерв­ных копий.

После того как вы сни­ме­те резерв­ную копию, мож­но при­сту­пать к обнов­ле­нию. Но не спе­ши­те обнов­лять все сра­зу! Обнов­ле­ния сто­ит делать посте­пен­но, шаг за шагом, про­ве­ряя, отоб­ра­жа­ют­ся ли сайт и обнов­лен­ный ком­по­нент. В этом слу­чае, если воз­ник­нут про­бле­мы, вы буде­те точ­но знать, какой ком­по­нент стал это­му виной.

Преж­де чем нажать кноп­ку обнов­ле­ния оче­ред­но­го эле­мен­та сай­та, сто­ит почи­тать жур­нал изме­не­ний (changelog). Это жур­нал, в кото­ром про­грам­ми­сты ведут спи­сок изме­не­ний и заме­ча­ний для каж­дой новой вер­сии. В WordPress в раз­де­ле «Пла­ги­ны» есть ссыл­ка на жур­нал изме­не­ний. Нажав на нее, вы смо­же­те про­чи­тать инфор­ма­цию об изме­не­ни­ях в новой вер­сии.

Итог:

  • перед обнов­ле­ни­ем сле­ду­ет сде­лать резерв­ную копию;
  • обнов­лять­ся сто­ит посте­пен­но, шаг за шагом, а не обнов­лять все сра­зу;
  • сто­ит читать жур­нал изме­не­ний (changelog);
  • сто­ит зара­нее опо­ве­стить поль­зо­ва­те­лей об обнов­ле­ни­ях;
  • важ­но делать про­вер­ку сай­та после обнов­ле­ния.

Взлом паролей

Рас­про­стра­нен­ный спо­соб взло­мать сайт – полу­чить паро­ли к адми­ни­стра­тив­ной пане­ли сай­та.

В основном пароли получают следующими способами:

  • пере­хва­ты­ва­ют пароль, кото­рый был пере­дан через неза­щи­щен­ный про­то­кол HTTP;
  • под­би­ра­ют пароль путем пере­бо­ра;
  • дешиф­ру­ют пароль, полу­чив доступ к базе дан­ных сай­та.

Пер­вый спо­соб осно­ван на том, что дан­ные пере­да­ют­ся по про­то­ко­лу HTTP в нешиф­ро­ван­ном виде. Любой, кто полу­чит доступ к таким дан­ным (а это может быть вла­де­лец WiFi точ­ки, к кото­рой вы под­клю­че­ны, или любой сер­вер сети, через кото­рый ваши дан­ные пере­да­ют­ся хостин­гу, где рас­по­ло­жен ваш сайт), может их про­чи­тать!

Самым луч­шим мето­дом защи­ты от дан­но­го вида ата­ки слу­жит исполь­зо­ва­ние защи­щен­но­го про­то­ко­ла HTTPS, вме­сто HTTP. Что­бы защи­тить­ся от такой ата­ки, нуж­но, что­бы весь сайт или хотя бы адми­ни­стра­тив­ная панель ваше­го сай­та были доступ­ны толь­ко по защи­щен­но­му про­то­ко­лу HTTPS. Для это­го пона­до­бит­ся SSL сер­ти­фи­кат. Заве­рен­ные сер­ти­фи­ка­ты сто­ят денег и име­ют конеч­ный срок дей­ствия.

Мож­но сэко­но­мить и самим заве­рить сер­ти­фи­кат, но такой сер­ти­фи­кат мож­но исполь­зо­вать толь­ко для адми­ни­стра­тив­ной пане­ли, так как при уста­нов­ке на весь сайт бра­у­зер будет выда­вать пре­ду­пре­жде­ние о неиз­вест­ном сер­ти­фи­ка­те, что суще­ствен­но сни­зит поток поль­зо­ва­те­лей. К сча­стью, сей­час есть воз­мож­ность полу­чить заве­рен­ный сер­ти­фи­кат бес­плат­но.

Самый про­стой спо­соб – вос­поль­зо­вать­ся сер­ви­сом CloudFlare. В этом слу­чае вам даже не обя­за­тель­но уста­нав­ли­вать сер­ти­фи­кат на свой хостинг. Дета­ли того, как это рабо­та­ет, мож­но про­чи­тать на сай­те сер­ви­са.

Если вам нужен пол­но­цен­ный заве­рен­ный сер­ти­фи­кат, китай­ская ком­па­ния WoSign бес­плат­но предо­став­ля­ет сер­ти­фи­ка­ты сро­ком до трех лет.

Кро­ме это­го, недав­но появи­лась воз­мож­ность полу­чить сер­ти­фи­кат от про­ек­та Let’s Encrypt. Про­ект спе­ци­аль­но был создан для того, что­бы облег­чить и уде­ше­вить уста­нов­ку сер­ти­фи­ка­тов, что поз­во­лит мно­гим сай­там перей­ти к шиф­ро­ван­ным под­клю­че­ни­ям. Прав­да, если ваш сайт рабо­та­ет не на вашем лич­ном сер­ве­ре, а на сто­рон­нем хостин­ге, то вам надо уточ­нить у ваше­го хосте­ра, под­дер­жи­ва­ет ли он этот про­ект.

Под­бор паро­ля путем пере­бо­ра. Ата­ка путем пере­бо­ра паро­лей – это очень рас­про­стра­нен­ный в сети метод ата­ки на сай­ты WordPress. Конеч­но, никто не будет под­би­рать паро­ли вруч­ную. Для под­бо­ра паро­лей суще­ству­ют спе­ци­аль­ные про­грам­мы.

Итог:

  • уста­но­вить пароль на пап­ку wp-admin;
  • пере­име­но­вать адрес стра­ни­цы для вхо­да в адми­ни­стра­тив­ное меню;
  • кап­ча на вход и на стра­ни­цу забы­тых паро­лей;
  • запре­тить сооб­ще­ние об ошиб­ке невер­но­го паро­ля;
  • запре­тить пере­чис­ле­ние всех поль­зо­ва­те­лей.

Рас­шиф­ров­ка паро­лей из базы. Часто мно­гие забы­ва­ют, что, кро­ме без­опас­но­сти сай­та, надо так­же поду­мать и о без­опас­но­сти хра­не­ния и пере­да­чи резерв­ных копий сай­та. Дело в том, что если копия сай­та, содер­жа­щая базу дан­ных, будет пере­хва­че­на, то зло­умыш­лен­ник полу­чит доступ ко всем паро­лям. Прав­да, паро­ли будут в шиф­ро­ван­ном виде, но рас­шиф­ро­вать их будет делом вре­ме­ни.

Что можно предпринять для защиты от такой атаки?

  • Не поль­зуй­тесь для пере­да­чи неза­щи­щен­ны­ми про­то­ко­ла­ми типа FTP. Поль­зуй­тесь SFTP или SSH.
  • По воз­мож­но­сти исполь­зуй­те шиф­ро­ва­ние резерв­ных копий или архи­вы с паро­лем.
  • Исполь­зуй­те слож­ные паро­ли или пароль­ные фра­зы, вклю­ча­ю­щие циф­ры, строч­ные и заглав­ные бук­вы, сим­во­лы и про­бе­лы.

Слож­ность паро­ля вы може­те оце­нить, напри­мер, при помо­щи это­го сер­ви­са (толь­ко не вво­ди­те свой реаль­ный пароль!). Паро­ли удоб­но хра­нить в спе­ци­аль­ных про­грам­мах мене­дже­рах паро­лей. Пери­о­ди­че­ски меняй­те паро­ли (хотя бы раз в год).

Заключение

К сожа­ле­нию, пол­но­стью обез­опа­сить ваш сайт от взло­ма не удаст­ся. Дело в том, что вам надо закрыть все воз­мож­ные лазей­ки, а зло­умыш­лен­ни­ку надо най­ти лишь одну един­ствен­ную. Одна­ко не сто­ит впа­дать в уны­ние. Если сле­до­вать пра­ви­лам без­опас­но­сти, то вскрыть ваш сайт будет крайне слож­но и дол­го.