абарона Joomla | Блог - аўдыт бяспекі і абарона сайтаў

  1. Выкарыстоўвайце згенераваны прэфікс табліц
  2. Прыдумайце імя адміністратара - не «admin»
  3. Не выкарыстоўвайце FTP
  4. Выдаліце ​​дырэкторыю «installation /»
  5. Абнаўляць ядро, устаноўленыя убудовы і тэмы
  6. Не выкарыстоўвайце непадтрымоўваныя версіі Joomla: 1.0х, 1.5х, 1.6х і 1.7х
  7. Праверце выкарыстоўваюцца ўбудовы ў спісе уразлівых
  8. Выкарыстоўвайце прадстаўляецца .htaccess-файл
  9. Выкарыстоўвайце ЧПУ-спасылкі
  10. Абараніце панэль адміністравання
  11. Абараніце канфігурацыйны файл configuration.php
  12. Наладзьце правы доступу для ключавых файлаў і каталогаў
  13. Забароніце свабодную рэгістрацыю карыстальнікаў
  14. Перанясіце дырэкторыі «logs /» і «tmp /» за межы сайта
  15. Выкарыстоўвайце убудовы бяспекі
  16. Блакіруйце небяспечныя запыты
  17. Выкарыстоўвайце механізмы для актыўнага аўдыту

Паважаныя чытачы, гэты артыкул прысвечана абароне і наладзе бяспекі не меней папулярнай CMS - Joomla. Усе рэкамендацыі будуць ставіцца да актуальнай на дадзены момант галінцы 3.3х. Многія з нашых саветаў будуць працаваць і на папярэдніх версіях.

У працэсе ўстаноўкі CMS неабходна звярнуць увагу на некаторыя апсекты, правільнае выкананне якіх дасць магчымасць істотна павысіць абароненасць вашага сайта.

Выкарыстоўвайце згенераваны прэфікс табліц

Распрацоўшчыкі трэцяй версіі Joomla (а таксама галінцы 2.5) убудавалі некаторыя механізмы, якія мінімізуюць выкананне вектараў атакі, актуальных для папярэдніх версій. Раней усе табліцы ў базе дадзеных ствараліся з выкарыстаннем прэфікса jos_, што істотна палягчала выкананне sql-ін'екцый. Цяпер ўсталёўшчык сам генеруе гэты прэфікс, вам жа застаецца толькі прыняць яго.

Цяпер ўсталёўшчык сам генеруе гэты прэфікс, вам жа застаецца толькі прыняць яго

Ўстаноўка joomla - генерацыя прэфікса

Не варта замяняць яго на нешта здагадваюся, напрыклад, на імя вашага дамена.

Прыдумайце імя адміністратара - не «admin»

Далей неабходна прыдумаць імя адміністратара сайта і пароль. У якасці лагіна выкарыстоўвайце нешта накшталт «director-asa2». Калі вы пакажа класічнае «admin», то падабраць параметры доступу будзе істотна прасцей.

Калі вы пакажа класічнае «admin», то падабраць параметры доступу будзе істотна прасцей

Ўстаноўка joomla - імя адміністратара

Пры ўсталёўцы пароля звярніце ўвагу на адсутнасць індыкатара стойкасці. Для выбару надзейнага значэння лепш скарыстайцеся адным з онлайн сэрвісаў па генерацыі пароляў.

Не выкарыстоўвайце FTP

Выкарыстанне ftp-пратаколу - гэта патэнцыйная пагроза бяспекі. Прычына - перадача пароля і дадзеных у «адкрытым» выглядзе (нешыфраванага пратакол).

Для адміністравання сайта рэкамендуем выкарыстоўваць SSH або SFTP. У гэтым выпадку ўвесь сеанс сувязі зашыфраваны. Большасць хостынгаў падаюць такую ​​магчымасць.

Па змаўчанні выкарыстанне FTP адключана. У якасці альтэрнатывы можаце скарыстацца адным з убудоў ў афіцыйным рэпазітары extensions.joomla.org, напрыклад, ProFiles.

org, напрыклад, ProFiles

Ўстаноўка joomla - не выкарыстоўваць FTP

Выдаліце ​​дырэкторыю «installation /»

Пасля заканчэння ўстаноўкі сістэма прапануе выдаліць дырэкторыю installation. Выканайце гэта патрабаванне, так як яе наяўнасць дазволіць зламысніку «зацерці» ваш сайт новай устаноўкай. Калі вы выдалілі дырэкторыю непасрэдна на файлавай сістэме (а не скарысталіся кнопкай ва ўсталёўшчыку), не забудзьцеся таксама выдаліць файл joomla.xml, які змяшчае дакладную версію вашай CMS.

Не варта думаць, што па заканчэнні ўстаноўкі можна забыцца пра меры бяспекі. Як правіла, у базавай камплектацыі сістэма найменш схільная кампраметацыі. Рызыкі ўзрастаюць пры пашырэнні функцыянальнасці, павелічэнні колькасці карыстальнікаў і г.д.

Абнаўляць ядро, устаноўленыя убудовы і тэмы

Базавы прынцып усіх CMS - своечасовае абнаўленне ядра сістэмы і ўсталяваных убудоў. Пра наяўнасць абнаўленні вы можаце даведацца на галоўнай старонцы панэлі кіравання.

Пра наяўнасць абнаўленні вы можаце даведацца на галоўнай старонцы панэлі кіравання

Настройка joomla - праверка абнаўленняў

Для павышэння адмоваўстойлівасці вашага сайта рэкамендуецца рабіць рэзервовыя копіі пры ўстаноўкі новых версій ядра CMS. Для гэтага скарыстайцеся убудовай Akeeba Backup версіі не ніжэй 4.0.5.

Не выкарыстоўвайце непадтрымоўваныя версіі Joomla: 1.0х, 1.5х, 1.6х і 1.7х

Калі вы даўно карыстаецеся Joomla, то магчыма версія вашай сістэмы ўжо афіцыйна не падтрымліваецца (гэта тычыцца ўсёй галінкі 1х) або хутка перастане падтрымлівацца (галінка 2.5 афіцыйна заканчваецца 31 снежня 2014 года). Мы рэкамендуем задумацца аб міграцыі на актуальную версію 3.3х. На афіцыйным сайце joomla.org прадстаўлены кіраўніцтва для пераходу са старых версій.

Гэтак жа існуюць убудовы для аўтаматычнага апгрэйду CMS (Migrate Me).

Настройка joomla - пашырэнне migrate me

Праверце выкарыстоўваюцца ўбудовы ў спісе уразлівых

Думаю не сакрэт, што вы ведаеце аб патэнцыйнай пагрозе бяспекі, якую нясе кожны які ўсталёўваецца убудова. Каб мінімізаваць гэты рызыка варта выконваць простыя правілы:

  • выкарыстоўваць пашырэння толькі з афіцыйнага рэпазітара extensions.joomla.org
  • перад устаноўкай правяраць наяўнасць пашырэнне ў спісе уразлівых - http://vel.joomla.org/index.php/live-vel

Выкарыстоўвайце прадстаўляецца .htaccess-файл

Дыстрыбутыў CMS Joomla версіі 3.3х пастаўляецца сумесна з файлам htaccess.txt, які змяшчае правілы для абароны ад шырока вядомых вектараў нападаў на гэтую CMS. Вам неабходна перайменаваць гэты файл у .htaccess, каб ён выкарыстаў для абароны магчымасці вэб-сервера Apache, або устаўце наступныя радкі ва ўжо існуючы файл:

RewriteEngine On
RewriteCond% {QUERY_STRING} base64_encode [^ (] * \ ([^)] * \) [OR]
RewriteCond% {QUERY_STRING} (<|% 3C) ([^ s] * s) + cript. * (> |% 3E) [NC, OR]
RewriteCond% {QUERY_STRING} GLOBALS (= | \ [| \% [0-9A-Z] {0,2}) [OR]
RewriteCond% {QUERY_STRING} _REQUEST (= | \ [| \% [0-9A-Z] {0,2})
RewriteCond% {QUERY_STRING} mosConfig_ [a-zA-Z _] {1,21} (= |% 3D) [OR]
RewriteRule. * Index.php [F]

Дадзеныя правілы будуць працаваць, калі на сэрвэры усталяваны модуль mod_rewrite.

Выкарыстоўвайце ЧПУ-спасылкі

Многія сканеры, якія эксплуатуюць уразлівасці ў joomla, атрымліваюць спісы сайтаў з google. Для гэтага выкарыстоўваецца тэхніка Google XAK, а канкрэтна для нас можа выкарыстоўвацца вось такі запыт inurl: index.php? Option = com_jce. Пошукавік выведзе спіс сайтаў, на якіх усталяваны ўбудова JCE.

Каб абцяжарыць працу сканер і адначасова палепшыць SEO нашага сайта варта выкарыстоўваць ЧПУ-спасылкі:

Настройка joomla - уключыць ЧПУ

Гэта можна зрабіць перайшоўшы ў панэлі кіравання «Агульныя налады» -> «Сайт» -> «Настройкі SEO».

Абараніце панэль адміністравання

Панэль кіравання сайтам для CMS Joomla размешчана па адрасе site.com/administrator/. Калі сайт выкарыстоўвае стандартныя налады, то любы карыстальнік, ведаючы логін і пароль, можа кіраваць сайтам. Спадзявацца толькі на унікальнасць лагіна і стойкасць пароля не дастаткова.

Пачынаючы з версіі 3.2.0 ў CMS ўкаранёна магчымасць выкарыстання двухфакторную аўтэнтыфікацыі. Мы настойліва раім ўключыць гэтую опцыю. У гэтым выпадку акрамя пароля карыстачу трэба ведаць яшчэ і унікальны ключ.

Настройка joomla - уключэнне двухфакторную аўтэнтыфікацыі

Уключыць і наладзіць гэтую опцыю можна ў раздзеле «Карыстальнікі» -> «Менеджэр карыстальнікаў» -> Імя вашага карыстальніка -> «двухфакторную аўтэнтыфікацыя». Скарыстайцеся адным з механізмаў: Google Authenticator або YubiKey (мы пратэставалі Google Authenticator - усё зарабіла з першага разу).

Вось так будзе выглядаць форма ўваходу ў панэль адміністравання:

Вось так будзе выглядаць форма ўваходу ў панэль адміністравання:

Настройка joomla - двухфакторную аўтэнтыфікацыя

Для змены адрасы формы ўваходу можна скарыстацца убудовай AdminExile. З яго дапамогай можна ўсталяваць ключ, які прадаставіць доступ для ўваходу ў панэль адміністравання (напрыклад, site.com/administrator/index.php?myadmin). Калі яго не паказаць, то адбудзецца аўтаматычны рэдырэкт на галоўную старонку вашага сайта.

Настройка joomla - убудова adminexile

Гэты ж убудова дасць магчымасць устанавіць спіс ip-адрасоў, для якіх дазволены доступ у панэль кіравання, і абароніць ад брутфорсу. Ўстанаўлівайце убудова версіяй ня нежи 2.3.6.

Абараніце канфігурацыйны файл configuration.php

Файл configuration.php размешчаны ў каранёвай дырэкторыі Joomla (http://example.com/configuration.php). У ім змяшчаюцца параметры падлучэння да базы дадзеных, ключ шыфравання, прэфікс табліц, параметры ftp (пры выкарыстанні).

Калі файл будзе даступны для зламыснікаў, то ў іх з'яўляецца рэальны шанец атрымаць поўны доступ да вашага сайта. На вельмі многіх хостынгах ўсталяваная панэль кіравання базай дадзеных - phpMyAdmin. Выкарыстанне параметраў з файла configuration.php дазволіць прайсці аўтарызацыю ў гэтай панэлі.

Асноўная прычына даступнасці файла - небяспечная канфігурацыя. Досыць часта адміністратар сайта стварае рэзервовыя копіі выгляду:

  • сonfiguration.php.old
  • сonfiguration.php1
  • сonfiguration.php.test
  • сonfiguration.php ~

Пры выкарыстанні такіх імёнаў файлы перастаюць апрацоўвацца як php-скрыпты. Пры прамым запыце (напрыклад, http://example.com/сonfiguration.php.old) зламыснік атрымае ўсё змесціва.

Не захоўвайце рэзервовыя копіі канфігурацыйнага файла ў межах вашага сайта. Для дадатковай абароны змесціце наступны код у файл .htaccess, размешчаны ў корані сайта:

<Files ~ «^ configuration \.»>
Order allow, deny
Deny from all
Satisfy all
</ Files>

Так вы заблакуеце доступ да гэтага файлу (і ўсім яго копіях) сродкамі вэб-сервера.

Наладзьце правы доступу для ключавых файлаў і каталогаў

Як правіла, пры правядзенні нападу зламыснік спрабуе запісаць свой код ва ўжо існуючыя файлы сістэмы. Такім чынам ён хоча дапоўніць гэтыя файлы схаваным функцыяналам. Для таго каб максімальна абцяжарыць яго задачу неабходна выставіць пэўныя правы на ключавыя файлы і дырэкторыі. Для CMS Joomla:

  • 444 на site.ru/index.php
  • 444 на site.ru/configuration.php
  • 444 на site.ru/templates/ваш шаблон / index.php
  • 555 на дырэкторыю site.ru/templates/ваш шаблон /

Не забудзьцеся часова змяніць правы на 644 для файла configuration.php, калі будзеце ўносіць змены ў панэлі адміністравання.

Забароніце свабодную рэгістрацыю карыстальнікаў

Калі бізнес-мадэль вашага сайта не мае на ўвазе рэгістрацыю карыстальнікаў, то вам неабходна яе адключыць у панэлі кіравання CMS. Па змаўчанні яна ўключаная.

Для адключэння перайдзіце ў панэль «Карыстальнікі» -> «Менеджэр карыстальнікаў» -> «Настройкі».

Настройка joomla - забарона на рэгістрацыю

Некаторыя ўразлівасці патрабуюць для сваёй рэалізацыі зарэгістраванага карыстальніка. Пры адключэнні авторегистрации эксплуатацыя будзе абцяжараная. Калі ж рэгістрацыя патрэбна, тады уключыце апавяшчэнне адміністратара.

Перанясіце дырэкторыі «logs /» і «tmp /» за межы сайта

Службовыя дырэкторыі logs і tmp па змаўчанні знаходзяцца ў каранёвай дырэкторыі сайта. Мы рэкамендуем перанесці іх за межы «бачнасьці». Як правіла гэта на адзін узровень вышэй іх бягучага становішча на файлавай сістэме.

Спачатку перамесціце дырэкторыі, а потым выберы адпаведны шлях у панэлі адміністравання ( «Агульныя налады").

Настройка joomla - перанос логаваў

Настройка joomla - перанос логаваў

Настройка joomla - перанос tmp

Выкарыстоўвайце убудовы бяспекі

Досыць шмат пашырэнняў для павышэння бяспекі CMS прадстаўлена ў афіцыйным рэпазітары. Ёсць сярод іх як платныя, так і бясплатныя рашэння. Паспрабуйце пачаць з «Admin Tools«. Яго асноўныя магчымасці:

  • экстраны пераклад сайт у афлайн рэжым
  • спіс ip-адрасоў, для якіх дазволены доступ у панэль адміністравання
  • рэдагаванне прэфікса табліц у базе дадзеных
  • Web Application Firewall
  • менеджэр пашырэньні файлаў
  • дадатковая абарона панэлі адміністравання з дапамогай .htaccess

Настройка joomla - пашырэнне admin tools

Блакіруйце небяспечныя запыты

Для абароны ад найбольш небяспечных тыпаў уразлівасцяў (sql-ін'екцый і lfi) вы можаце скарыстацца убудовай Marco's SQL Injection.

Для абароны ад найбольш небяспечных тыпаў уразлівасцяў (sql-ін'екцый і lfi) вы можаце скарыстацца убудовай Marco's SQL Injection

Настройка joomla - пашырэнне marcos

Асноўныя магчымасці пашырэння:

  • фільтраванне і блакаванне sql-ін'екцый і lfi у запытах GET, POST, REQUEST
  • апавяшчэнне адміністратара па электроннай пошце
  • белы спіс кампанентаў, для якіх не ўжываць абарону
  • блякаваньне ip-адрасы зламысніка

Выкарыстоўвайце механізмы для актыўнага аўдыту

Калі вы чыталі нашу артыкул аб абароне блога на WordPress, то ў адным з пунктаў мы расказвалі пра сканары WPScan. Ён дазваляе прасканаваць блог звонку і вызначыць найбольш слабыя месцы.

На жаль аналагічнага ўзроўню сканара для Joomla ў цяперашні час няма. Joomscan ад OWASP можна не браць у разлік. Прадукт не абнаўляўся з мая 2013 года, спіс уразлівых убудоў таксама далёкі ад сённяшняга дня.

Для вонкавага аўдыту бяспекі скарыстайцеся нашым SaaS-рашэннем: weBBez . Непасрэдна для CMS Joomla мы ўмеем:

  • шукаць копіі канфігурацыйнага файла
  • ажыццяўляць пошук уразлівых убудоў
  • выяўляць памылкі адміністравання CMS
  • ажыццяўляць пошук сігнатур Joomla-вірусаў на вашым сайце

Выснова. Для абароны вашага сайта на аснове cms Joomla рэкамендуецца выканаць наступныя крокі і рэкамендацыі:

  • выкарыстоўвайце згенераваны прэфікс табліц
  • прыдумайце імя адміністратара - не «admin»
  • не выкарыстоўвайце FTP
  • выдаліце ​​дырэкторыю «installation /»
  • абнаўляць ядро, устаноўленыя убудовы і тэмы
  • не выкарыстоўвайце непадтрымоўваныя версіі Joomla: 1.0х, 1.5х, 1.6х і 1.7х
  • праверце выкарыстоўваюцца ўбудовы ў спісе уразлівых
  • выкарыстоўвайце прадстаўляецца .htaccess-файл
  • выкарыстоўвайце ЧПУ-спасылкі
  • абароніце панэль адміністравання
  • абароніце канфігурацыйны файл configuration.php
  • наладзьце правы доступу для ключавых файлаў і каталогаў
  • забароніце свабодную рэгістрацыю карыстальнікаў
  • перанясіце дырэкторыі «logs /» і «tmp /» за межы сайта
  • выкарыстоўвайце убудовы бяспекі
  • блакіруйце небяспечныя запыты
  • выкарыстоўвайце механізмы для актыўнага аўдыту

Спасылкі на згаданыя праграмныя прадукты і сэрвісы:

  • Joomla - http://joomla.org
  • афіцыйны рэпазітар - http://extensions.joomla.org
  • ProFiles - http://extensions.joomla.org/extensions/core-enhancements/file-management/24160
  • Akeeba Backup - http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606
  • Migrate Me - extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/24238
  • спіс уразлівых пашырэньні - http://vel.joomla.org/index.php/live-vel
  • AdminExile - http://extensions.joomla.org/extensions/access-a-security/site-security/login-protection/15711
  • Admin Tools - http://extensions.joomla.org/extensions/access-a-security/site-security/site-protection/14087
  • Marco's SQL Injection - http://extensions.joomla.org/extensions/access-a-security/site-security/site-protection/12731
  • Joomscan - http://sourceforge.net/projects/joomscan/
  • phpMyAdmin - http://www.phpmyadmin.net/home_page/index.php
  • WPScan - http://wpscan.org/
  • weBBez - http://webbez.ru/

Php?
Php?