Zero-day заплахи: какво е добре да знаете за тях
Zero-day или 0-day (oh day) – “нулев ден” на български – е клас уязвимости (vulnerability) или методи за атака (exploit). Използването на този термин стартира през 90-те години на миналият век в warez BBS средите.
Малко история
Определението Х-day, където Х е брой дни – 30, 60 и т.н., се е използвало за да се отбележи колко време е необходимо, за да се изготви пиратска версия (крак) за даден софтуер, след първоначалното му публикуване. Най-търсен и елитен е бил пиратският софтуер, маркиран със 0-day етикет, понеже официално не е бил публикуван никъде и най-вероятно за набавянето му е била хакната компанията, която го разработва.
0-day днес – какво се е променило
В наши дни терминът има съвсем друго значение – характеризира клас уязвимости (слабост/недостатък/пропуск), открити от независими субекти (изследователи в областта на информационната сигурност) преди собственика/разработчика на съответния софтуер/хардуер.
Интерпретацията на “0” може да бъде доста разновидна, но двете най-точни определения са:
- 0 дни за подготовка от страна на защитаващата страна, за да се предпази от атаките на недоброжелатели
- 0 дни, за да се изготви fix/patch от страна на производителя/разработчика на засегнатият софтуер/хардуер
И в двата случая можем да преведем 0-day като „никакво време”.
0-day уязвимости и 0-day атаки
0-day може да бъде както уязвимост, така и експлойт/вектор за атака. Когато става дума за 0-day уязвимост, то тя може да бъде теоретична или много трудна за експлоатиране, да има определени условия/изисквания, за да бъде успешна атака и т.н.
0-day атаки/експлойти, от друга страна, са много „по-страшни“ и изискват спешни действия за справяне с тях. Не забравяйте, че някой вече е намерил съответната уязвимост, разучил я е и успешно осъществява атаки „in the wild“ (в реални условия срещу реални жертви).
Още малко теория
Може да срещнете, макар и доста рядко, терминът Forever-day vulnerability. Това означава, че откритият 0-day няма да бъде поправен от разработчика/вендора. Причините може да са, че продуктът вече не се поддържа (End-of-Life) или разработчикът няма интерес да поправи пропуските.
В такава ситуация имате две възможности:
- Да потърсите алтернативен продукт (софтуер/хардуер), който не ви излага на риск
- Да приложите заобиколен начин (workaround) за смекчаване/отстраняване на уязвимостта
Времевата линия при откриването на 0-day
Дефинирането и точното описание на 0-day уязвимост или експлойт е доста трудно. Повече детайли можете да откриете в блог поста Like Nailing Jelly to the Wall: Difficulties in Defining “Zero-Day Exploit”.
Кой, как и защо търси 0-day уязвимости
Пропуски, слабости и бъгове в софтуерни и хардуерни продукти се намират постоянно и по най-различни начини, канали и поводи.
В зависимост от целта обаче, можем да разделим субектите, занимаващи се със 0-day уязвимости и/или експлойти, в следните категории:
- Добронамерени изследователи (security researchers)
Независими или работещи за дадена компания, тези професионалисти търсят 0-day уязвимости за да ги докладват на производителите/вендорите.
Процесът по докладване се нарича “responsible disclosure” или “coordinated disclosure”. Случва се изследователите да не могат да осъществят контакт, да не срещнат съдействие или дори да бъдат заплашени със съд от страна на производителя.
При такива обстоятелства, изследователите извършват Full Disclosre, т.е. правят своето откритие публично достояние и то без да спестяват детайли. Неписано правило е, че ако 90 дни след Responsible Disclosure, вендорът не е взел мерки и не е публикувал patch, адресиращ уязвимостта, то изследователят има право да сподели своето откритие, без това да се счита за неморално.
Случва се също изследовател да постъпи неетично и да публикува откритията си, дори преди да е направил опит да предупреди производителя. Това обикновено има негативни последствия за имиджа на изследователя, тъй като поставя потребителите и клиентите на въпросния производител в риск.
- Самите производители
Една част от 0-day уязвимостите биват откривани от разработчика на съответния продукт/услуга и биват отстранявани без да е необходимо да бъдат публично оповестявани.
Когато съществуват съмнения, че тези уязвимости са били експлоатирани „in the wild“, вендорите би трябвало да следват добрите практики и да направят Full Disclosure. Такъв пример е 0-day атаките срещу Sophos XG NGFW през пролетта на 2020 г.
- Криминални организации и злонамерени хакери
Те имат същите професионални умения като добронамерените изследователи, но често, финансово мотивирани, се “крият в сенките” и опитват да се възползват максимално от своите открития.
- Шпионски, военни и спонсорирани от държавата организации (Advanced Persistent Threats – APT)
Някои от вас ще си помислят, че се шегувам и ще кажат: “Този е гледал твърде много филми за агент 007 и прекарва твърде много време в разнищването на конспирации!”.
Тези, които имат задълбочен опит в сферата на киберсигурността ще потвърдят, че именно тези организации са най-големият “производител” на 0-day експлойти!
Няма как да сте забравили за NotPetya и WannaCry! А помните ли, че EternalBlue експлойтите, използвани в тези червеи (worms), са всъщност 0-days изтекли от NSA (No Such Agency?!).
Ще освежа паметта ви с The “Shadow Brokers” Story и със скорошните атаки, експлоатиращи 0-days в Exchange сървъри.
На най-недоверчивите препоръчвам The Perfect Weapon, Zero Days, Countdown to Zero Day: Stuxnet and the Launch of the World’s First Digital Weapon, DARKNET DIARIES EP 29: STUXNET
Zero-day по света
Наскоро FireEye публикува изследване, включващо географското разпределение на 0-day уязвимости/атаки през последните няколко години:
Game Theory: Why System Security Is Like Poker, Not Chess предлага една по-различна перспектива по темата.
Бизнесът със 0-days
Като оставим настрана шпионските игри, 0-days са чист бизнес, който цели генериране на финансова печалба или имидж. Ето кои са едни от най-големите играчи:
- Zerodium: Компания, която търгува със 0-day уязвимости и създава експлойти. Цената на някои 0-days е внушителна (2,5 млн. USD). Компанията често е обект на критика, поради липсата на прозрачност относно клиентите ѝ.
- ZeroDayInitiative (ZDI): Платформа, финансирана от Trend Micro. Напълно прозрачна относно процеса и възнагражденията (макар и доста по-малки от тези на Zerodium), предлагани в замяна на 0-day уязвимости и експлойти. ZDI са организатор на Pwn2Own състезанието, за което сме писали няколко пъти. Горещо препоръчвам DARKNET DIARIES EP 82: MASTER OF PWN
- NSO Group и Cellbrite: Kомпании, фокусирани върху предлагането на продукти и услуги, използващи 0-day експлойти. Често са обект на критика, защото търгуват с държави, управлявани чрез диктатура. NSO Group стана най-известна след разкритията на канадската CitizenLab: HIDE AND SEEK Tracking NSO Group’s Pegasus Spyware to Operations in 45 Countries
- Google Project Zero: Мисията им е да направят откриването и експлоатацията на 0-day уязвимости от недоброжелатели по-трудни, съответно да подобрят значително безопасността и сигурността на Интернет за всички. Публикуват и поддържат таблицата 0-day “In the Wild”. Наскоро откриха 11 0-day уязвимости, използвани в изключително сложна атака срещу Windows, Android и iOS потребители (за сравнение – Stuxnet използва 4).
- MSRC – Microsoft Security Response Center и TALOS са подорганизации съответно на Microsoft и Cisco. Те също се занимават с откриването и отстраняването на уязвимости, независимо от производителя.
Как да се предпазите
Макар да няма “универсална” защита и стратегия срещу 0-day експлойти, спазването на добра работна хигиена е задължителна:
- Следете новините, за да сте информирани за новооткритите 0-day уязвимост или експлойти
- Поддържайте системите актуални (up-to-date)
- Минимизирайте повърхността за атака (attack surface)
- Следвайте всички добри практики в сферата на киберсигурността