*Текстът е предоставен от SiteGround
Или как работи вътрешната система и екип за сигурност на SiteGround
Разказва Георги Чорбаджийски, R&D Lead в SiteGround
Жоро Чорбаджийски е един от първите хора в България, които не само знаят какво е интернет и как работи, а всъщност е част от хората, които изграждат и създават интернета (инфраструктура, технологии, приложения) в страната ни. Въпреки това той не е програмист по образование, а по призвание. В SiteGround работи от седем години. Първата му роля е в Operations екипа, където пише софтуер за сървърите и отговаря за поддръжката. Тогава екипът е едва от 5-6 души. В течение на годините Жоро расте с компанията – екипът става по-голям, Жоро отговаря за все повече процеси и проекти, а сървърите на компанията се увеличават 10 пъти. Естествено идва моментът, в който той става Team Lead на проект, в който се създава софтуер за контрол върху сървърите на компанията.
Сред технологичните компании има поговорка, че ако не можете да си позволите да платите за сигурност, не можете да си позволите пробив в сигурността. Последствията от пробив могат да бъдат доста скъпи по отношение на загуба на данни, човешко участие, разходи за възстановяване на бизнеса, щети на репутацията и много други. Ето защо големите компании харчат милиони, за да защитят данните си и отделят значително време за внедряване и поддържане на процедури за безопасност на данните и стратегии за сигурност. Естествено, малките бизнеси не могат да си позволят нищо от това и обикновено имат ограничен бюджет, предназначен за сигурност. Това е моментът и мястото, където използването на услугите на добре защитен уеб хостинг доставчик става критично важно.
Месецът на киберсигурността мина, но нуждата от надеждна защита остава. Въпреки че уеб хостовете не могат да бъдат единствено отговорни за сигурността на вашия уебсайт, добрите могат да направят много, за да ви помогнат да останете в безопасност и да предотвратите най-лошото да се случи. В SiteGround разработихме централизирана система за сигурност от корпоративен клас за защита на сайтовете, приложенията и данните на нашите клиенти. Истината е, че тази система е резултат от многото години опит в сферата на хостинг услугите.
Цели на системата
Като продуктова компания SiteGround предлага огромен списък от услуги на клиентите си. Ето някои от тях:
- Web hosting services
- Email services (SMTP, IMAP, POP)
- File management services (SFTP, FTP, SSH)
- Database services (MySQL, PostgreSQL, Redis)
- Other services – DNS, CDN, Website Security Scanner, etc.
Всеки системен администратор и мрежов инженер би се притеснил за сигурността на горните услуги само при виждането на този списък. Задачата става още по-трудна, ако се фокусираме над първа точка от горния списък и факта, че SiteGround има на сървърите си хиляди различни web апликации и всяка има своите специфики – WordPress, Drupal, Magento, Joomla, Symfony based websites, и дори Perl, Python и Ruby on Rails софтуерни решения.
Като доставчик на всички услуги по-горе SiteGround трябва да гарантира сигурността на данните на клиентите. Предизвикателствата са огромни, особено като нямаш контрол над софтуера, който клиентите използват и качват по сървърите на компанията. Ето само някои от проблемите, които SiteGround бори постоянно:
- DDoS атаки от различен тип
- Web specific attacks – SQL injection, XSS, etc.
- Brute Force attacks
- Phishing/Scam attacks
- Zero-day exploits
- DNS attacks
- Malware-based attacks
Да, за всички изброени неща по-горе има готови решения. Проблемите с тях са, че са доста скъпи и не винаги решават специфични аспекти, свързани със сигурността. Точно поради тази причина инженерите в SiteGround съставят голямо количество код под формата на модули към централна система, която адресира всеки един от горните типове атаки.
Градивни елементи и философия на системата
Системата следва модулярен дизайн, който ѝ дава следните основни характеристики:
- Лесна е за разширяване. Добавянето на нови модули се случва по много добре стандартизиран начин.
- Лесна е за поддръжка. Всеки модул си има отговорен екип, който го следи и развива.
- Предлага добра скалируемост от гледна точка на производителност и от гледна точка на брой хора, които могат да работят по системата едновременно.
Различните модули в системата, както и как те взаимодействат един с друг, са описани по-долу.
Как работи системата?
Всички наши сървъри имат инсталиран, основен софтуер за сигурност и системи, настроени да работят локално на всеки сървър – защитна стена за мрежов трафик (network firewall), защитна стена за уеб приложения (WAF), IDS/IPS (системи за откриване/предотвратяване на проникване, като предотвратяване на brute-force атаки), задълбочен HTTP анализ на метаданни, DDOS защита и др. Това са класически и много ефективни средства за филтриране на лош трафик и предотвратяване на злонамерени атаки, инжектиране на злонамерен софтуер, отказ на услуга и много други, на които ние силно разчитаме. Под компетентното управление на нашите инженери и системни администратори и на DevOps, тези системи непрекъснато се подобряват и всички те заедно филтрират приблизително 1 терабайт лош трафик и повече от 300 милиона лоши заявки към нашите сървъри дневно!
Модулите могат да бъдат малки или по-големи като количество код. Имаме десетки модули и следният списък включва някои от най-важните от тях:
● WAF система с над 5000 правила, които SiteGround security engineers пишат на ежедневна база. Правилата са резултат от десетки security бюлетини, които следим всеки ден и при всеки сигнал за потенциална заплаха, реагираме, за да предпазим клиентите си, които използват outdated апликации, плъгини, теми и т.н.
● IDS/IPS модул, който спира brute force атаки и така предпазва клиентите ни от хакери, които се опитват да им познаят паролите чрез множество опити за login. Този модул работи на доста услуги: FTP, SMTP, IMAP/POP и дори за различни апликации – WordPress, Joomla, Magento, etc. С различни конфигурации повече от X login attempts се блокират.
● CAPTCHA модул, който показва captcha на хора/автоматизирани системи като се прецени от системата на базата на различни правила, че даден HTTP request трябва да се пусне само след решаване на captcha.
● File Upload Malware Scanner and Quarantine – модул, който в реално време спира зловреден код и го карантинира в отделна папка. По този начин дори на някой клиент да му хакнат сайта, зловредният код се изолира и на практика не достига до изпълнение. Комбинирано с нотификации към клиентите, този модул предотвратява главоболия за клиентите ни, свързани с разходи по чистенето на сайтовете им и допълнителната им защита.
● Модул, който работи на ниво WordPress като част от всеки един WP site – предоставя 2FA и допълнителни фини настройки на сигурността на ниво WordPress апликация.
● Мрежови firewall, който се използва за спиране на атаки на ниво TCP/UDP/ICMP/SMTP/IMAP/POP, etc. протоколи.
Всички тези модули работят като самостоятелни бойни единици и са много ефективни в специфичните задачи, които вършат.
Централизиран анализ на атаките
Ако тези модули работят самостоятелно, само на ниво сървър, се появяват следните проблеми: в случай, че хакер заплаши сървър А, дори, ако индивидуалните системи за сигурност на сървъра могат да предпазят сървъра, те не могат да спрат хакера от опит за същата атака срещу сървъри B, C и т.н. За да гарантираме, че всички наши сървъри са защитени по всяко време, ние изградихме нашата централна система за сигурност, която постоянно събира и анализира данни от всички отделни системи за сигурност на сървърите и разпространява интелигентни правила за предотвратяване на атаки. Тези правила се прилагат и защитават всички машини, част от платформата на SiteGround.
Нашата система за централна сигурност разчита на данните, които получава от всички останали системи на ниво сървър и анализира различните източници на атаки, открива по-големи тенденции и блокира много повече атаки глобално на цялата платформа. По-долу ще разгледаме два примера:
Интегриран WAF
Както споменахме всеки сървър има WAF, чиято основна отговорност е да защитава уеб приложения като WordPress, Magento, Joomla, Drupal и други от различни атаки като междусайтови скриптове (XSS), SQL инжектиране и др. В момента, в който разберем за заплаха за сигурността (уязвимости на софтуера), нашите инженери по сигурността пишат ново правило, за да го коригират и добавят това правило към нашите локални WAF.
Всяка заявка, която не е премахната на ниво мрежа, се филтрира от сървъра WAF. Ако заявката отговаря на параметрите на WAF правило, WAF изпраща информация за това до централната система за сигурност. Централната система регистрира и анализира всички заявки, които засягат правилата на WAF във всички наши сървъри (например техните IP и други метаданни). Ако открие модел, като множество заявки в много сървъри, идващи от един и същ IP адрес, централната система ще блокира този IP и ще разпространи правило до всички машини в нашата инфраструктура. В зависимост от конкретния случай и правилото, системата може да ограничи подозрителните IP заявки да бъдат оспорени от captcha или изцяло да ограничи трафика от нея към някой от нашите сървъри за определен период (часове, дни, седмици или дори за постоянно).
Brute Forcing
Като част от нашата стратегия за предотвратяване на bruteforce атаки, внедрихме локални системи за наблюдение на всички наши сървъри. Те наблюдават опитите за влизане във всички хоствани от нас приложения и докладват всеки неуспешен на централната система за сигурност. Системата се уведомява за опита заедно с цялата важна информация за сигурността, свързана с него, като IP адрес, брой заявки, IP репутация и др. На всеки 60 секунди Централната система за сигурност преглежда обобщените данни и анализира обема и честотата на повтарящи се метаданни, търсейки модели. Когато моделите са ясно идентифицирани, системата създава правила за блокиране, които се разпространяват до всички сървъри.
Пример за това биха били множество неуспешни опити за влизане в един или повече сървъри, идващи от един и същ IP адрес в рамките на кратък период от време (различни времеви прагове са зададени за по-висока прецизност и ефективност). В случай като този нашата система ще маркира IP адреса и бъдещите заявки, идващи от него към някой от нашите сървъри, ще бъдат предизвикани с captcha.
Много системи изпращат данни към нашата централна система за сигурност
Има много начини, по които захранваме системата си за централна сигурност с данни – като наблюдение на опити за влизане в услуги на ниво сървър като FTP, exim, dovecot и т.н.; преглед на XML-RPC трафик на WordPress сайтове; въвеждане на различни модели на трафик от системи на трети страни и други като honey pot сървъри.
Колкото по-подходящи източници на данни въвеждаме, толкова по-голям става наборът от данни, което значително подобрява аналитичната мощ и точността на Централната система за сигурност. С течение на времето способността на системата за ефективно предотвратяване на атаки става все по-голяма и по-голяма.
AI/ML
Последната нишка в голямата картинка е работата на AI и machine learning екипите на SiteGround. Те анализират всичкия трафик и базирано на предишната точност на системата, както и на ръчните промени, които правят системните администратори и DevOps инженери, използваме модели, които може да класифицират даден трафик като лош или пък обратното – да пуснат трафик, който вече е бил идентифициран като лош. Това спестява огромно количество ръчна работа и увеличава точността и ефикасността на тази система.
Друго предимство е, че моделите, с които боравим, могат да предлагат и написване на нови WAF правила или пренаписването на някои съществуващи с идеята да се спести процесорно време и да се хванат повече лоши заявки.
Статистика за цялата система
Време за имплементация: две години активно разработване, базирани на 10+ години реален опит
Екипи включени в изработката: DevOps Engineers, System Administrators, Linux Kernel Developers, Cloud Engineers, Network Administrators, Database Administrators, AI/ML Engineers, Frontend and Backend Software Engineers, InfoSec Experts, Technical Project Managers
Хора работили по проекта: Ядро на екипа от 10 души. 50+ души, които са
участвали под някаква форма.
Числа относно ефективността и размера на системата:
- Над 1TB трафик блокиран дневно
- Над 260М web requests challenged with an internal captcha system. Само около 40К успяват да решат captcha-та, което води до над 99,99% ефективност
- Над 50К IP адреса, блокирани в системата
- Над 5К WAF правила, написани вътрешно в компанията
- 98% of software is compiled and built internally (Exim, Nginx, Apache, MySQL, Dovecot, PHP, etc.)
- Over 600 Linux kernel patches added
Използвани езици за програмиране и технологии в системата:
- C/C++
- Python
- Lua
- Perl
- Go
- PHP
- JavaScript
- Consul
- ELK (Elastic, Logstash, Kibana) stack
- K8s
- Google Cloud/AWS Managed services
- Redis
- PostgreSQL
- YARA
- Nginx, Apache
- Jenkins