cyberpower
New Member
Здравейте колеги,
Последно време засичам все повече хора които смятат че open source системите за управление на съдържанието като wordpress, joomla, drupal и т.н. са в пъти по несигурни от това да имаш затворена система (собствена CMS). Заблуждението идва основно от 2 фактора:
1. Хората мислят че когато нещо е с отворен код и хакерите имат достъп до кода много по лесно могат да хакнат даден сайт, което не е точно така защото освен хакерите до кода имат достъп и стотици security експерти, които разработват системи или предлагат услуги на база тази open source система и имат интерес тя да е максимално сигурна. При по сериозните системи практиката е още като се забележи потенциална заплаха за сигурноста тя да бъде отстранена независимо от това дали реално някой може да се възползва от тази слабост и другото което е в security групите винаги има хора които следят световните тенденции и вграждат най-надеждните технологии в системата си.
Да видим обаче и другата страна на нещата да речем че позвате custom система за управление на съдържанието. Подобни системи обикновенно се създават и поддържат от малка група хора да речем от 5-10 човека и реално погледнато вероятноста да направят грешка или неволно да оставят вратичка на хакерите е много по голяма, просто защото гледат на нещата от по малко гледни точки. Сега някой ще каже и да направят какво хакера не може да види кода и няма да знае че има грешка, истината обаче е че хакерите не седят по цял ден в сайта на wordpress да търсят за слабости, просто защото при следващия update най-вероятно ще бъде отстранена и само ще са си загубили времето, вместо това използват скенери за уязвимости които сканират(обикновено комплексно сървър, cms и т.н) и когато скенера открие уязвимост хакера я използва(най често с готов експлойт) за да добие достъп и това че не вижда кода не му пречи да се възползва от слабост в него.
За да подкрепя горните твърдения ще дам примери: Да взeмем Windows и Linux, Windows е система от затворен тип докато Linux е с отворен код, мисля че няма спор че Linux е много по сигурна система. Другият ми пример е че все повече големи компании избират да базират web сайтовете и услугите си на системи с отворен код, даже сайта на белия дом е базиран на система с отворен код(drupal).
2. Другия фактор са хората които са им хакнали сайта и разправят наляво на дясно колко несигурна е дадена система. Истината е че в над 90% това се случва по тяхна вина, защото са инсталирали калпави модули или не са си update-вали системата с месеци понякога дори и с години, а най-често проблема даже не е в CMS-та а в троянци и кийлогъри по техните компютри.
Ето и няколко добри практики спазването на които ще подобри значително сигурноста на вашия сайт:
-Редовно обновявайте системата си и модулите към нея.
-Изберете хостинг с редовен backup
-Когато инсталирате допълнителни модули към системата, направете проучване за дадения модул дали се update-ва редовно; колко хора работят по модула; имало ли е дупки в сигурноста в миналото; може да проучите и авторите по какви други проекти са работили. Идеята е да се убедите че модула е стабилен, обновява се редовно, по него работят стабилни хора които си разбират от работата.
-Не инсталирайте модули в dev или beta етап или такива които се поддържат от само един човек(даже избягвайте и само 2ма, освен ако не са от авторитетни автори). Не инсталирайте и модули които няма да се обновяват повече.
-Много внимавайте с модули предназначени за въвеждане на информация като: коментари; текст; файлове и т.н. ако текстовете и файловете не се филтрират правилно много лесно хакерите могат да добият достъп.
-За връзка към сървъра използвайте Secure FTP и се свързвайте към сървъра само от сигурни компютри.
-Избягвайте footprints(отпечатаци) което ще рече да променяте default текстовете и url-та които се генерират от системата и модулите. Задължително махнете "powered by ***" и задайте собствени правила за генериране на url адреси. Това се прави със следната цел да речем че аз съм хакер и съм открил слабост в някой модул да речем на wordpress следващото нещо което ще направя е да потърся в google за сайтове които ползват този модул за целта ще разгледам какви текстове и адреси генерира този модул по default и примерно ако модула се казва "X Comments" и генерира текст преди коментарите "Comments with X" а самите коментари имат адрес от сорта на http:/domain.com/index?xcoments=views?*** мога да пусна в google следните заявки:
заявка1: "comments with X" "powered by wordpress" или заявка2:"comments with X" inurl:xcoments или заявка3:"powered by wordpress" inurl:xcoments
И трите заявки ще свършат сходна работа и ще ми изведат сайтове които са на wordpress и ползват "X Comments"
-Ако имате статичен IP адрес може да зададете през Apache кои IP адреси да имат достъп по административните страници на CMS-та
-Ако горните неща не помогнат или искате по високо ниво на сигурност може да се замислите да ползвате reverse proxy или някоя инлайн услуга като cloudflare.com
Ако някой се сеща за други добри практики или не е съгласен с нещо или иска да допълни нещо ще се радрам на една добра дискусия по въпроса.
Последно време засичам все повече хора които смятат че open source системите за управление на съдържанието като wordpress, joomla, drupal и т.н. са в пъти по несигурни от това да имаш затворена система (собствена CMS). Заблуждението идва основно от 2 фактора:
1. Хората мислят че когато нещо е с отворен код и хакерите имат достъп до кода много по лесно могат да хакнат даден сайт, което не е точно така защото освен хакерите до кода имат достъп и стотици security експерти, които разработват системи или предлагат услуги на база тази open source система и имат интерес тя да е максимално сигурна. При по сериозните системи практиката е още като се забележи потенциална заплаха за сигурноста тя да бъде отстранена независимо от това дали реално някой може да се възползва от тази слабост и другото което е в security групите винаги има хора които следят световните тенденции и вграждат най-надеждните технологии в системата си.
Да видим обаче и другата страна на нещата да речем че позвате custom система за управление на съдържанието. Подобни системи обикновенно се създават и поддържат от малка група хора да речем от 5-10 човека и реално погледнато вероятноста да направят грешка или неволно да оставят вратичка на хакерите е много по голяма, просто защото гледат на нещата от по малко гледни точки. Сега някой ще каже и да направят какво хакера не може да види кода и няма да знае че има грешка, истината обаче е че хакерите не седят по цял ден в сайта на wordpress да търсят за слабости, просто защото при следващия update най-вероятно ще бъде отстранена и само ще са си загубили времето, вместо това използват скенери за уязвимости които сканират(обикновено комплексно сървър, cms и т.н) и когато скенера открие уязвимост хакера я използва(най често с готов експлойт) за да добие достъп и това че не вижда кода не му пречи да се възползва от слабост в него.
За да подкрепя горните твърдения ще дам примери: Да взeмем Windows и Linux, Windows е система от затворен тип докато Linux е с отворен код, мисля че няма спор че Linux е много по сигурна система. Другият ми пример е че все повече големи компании избират да базират web сайтовете и услугите си на системи с отворен код, даже сайта на белия дом е базиран на система с отворен код(drupal).
2. Другия фактор са хората които са им хакнали сайта и разправят наляво на дясно колко несигурна е дадена система. Истината е че в над 90% това се случва по тяхна вина, защото са инсталирали калпави модули или не са си update-вали системата с месеци понякога дори и с години, а най-често проблема даже не е в CMS-та а в троянци и кийлогъри по техните компютри.
Ето и няколко добри практики спазването на които ще подобри значително сигурноста на вашия сайт:
-Редовно обновявайте системата си и модулите към нея.
-Изберете хостинг с редовен backup
-Когато инсталирате допълнителни модули към системата, направете проучване за дадения модул дали се update-ва редовно; колко хора работят по модула; имало ли е дупки в сигурноста в миналото; може да проучите и авторите по какви други проекти са работили. Идеята е да се убедите че модула е стабилен, обновява се редовно, по него работят стабилни хора които си разбират от работата.
-Не инсталирайте модули в dev или beta етап или такива които се поддържат от само един човек(даже избягвайте и само 2ма, освен ако не са от авторитетни автори). Не инсталирайте и модули които няма да се обновяват повече.
-Много внимавайте с модули предназначени за въвеждане на информация като: коментари; текст; файлове и т.н. ако текстовете и файловете не се филтрират правилно много лесно хакерите могат да добият достъп.
-За връзка към сървъра използвайте Secure FTP и се свързвайте към сървъра само от сигурни компютри.
-Избягвайте footprints(отпечатаци) което ще рече да променяте default текстовете и url-та които се генерират от системата и модулите. Задължително махнете "powered by ***" и задайте собствени правила за генериране на url адреси. Това се прави със следната цел да речем че аз съм хакер и съм открил слабост в някой модул да речем на wordpress следващото нещо което ще направя е да потърся в google за сайтове които ползват този модул за целта ще разгледам какви текстове и адреси генерира този модул по default и примерно ако модула се казва "X Comments" и генерира текст преди коментарите "Comments with X" а самите коментари имат адрес от сорта на http:/domain.com/index?xcoments=views?*** мога да пусна в google следните заявки:
заявка1: "comments with X" "powered by wordpress" или заявка2:"comments with X" inurl:xcoments или заявка3:"powered by wordpress" inurl:xcoments
И трите заявки ще свършат сходна работа и ще ми изведат сайтове които са на wordpress и ползват "X Comments"
-Ако имате статичен IP адрес може да зададете през Apache кои IP адреси да имат достъп по административните страници на CMS-та
-Ако горните неща не помогнат или искате по високо ниво на сигурност може да се замислите да ползвате reverse proxy или някоя инлайн услуга като cloudflare.com
Ако някой се сеща за други добри практики или не е съгласен с нещо или иска да допълни нещо ще се радрам на една добра дискусия по въпроса.