Шаўцы без ботаў! Як адбыўся інцыдэнт бяспекі

Шаўцы без ботаў! Як адбыўся інцыдэнт бяспекі

Сябры, сёння будзе балючы, але вельмі павучальны пост. Галоўнае правіла любой інфармацыйнай бяспекі — рэгулярна абнаўляць праграмнае забеспячэнне. Мы пастаянна пра гэта кажам як звычайным карыстальнікам, так і тым хто займаецца самахостынгам. Але што рабіць, калі каманда блога пра бяспеку сама становіцца ахвярай, бо своечасова не ўсталявалі новую версію? Вось вам гісторыя пра тое, як іронія лёсу пагрукала ў нашы дзверы.

Што адбылося?

Пакуль мы былі заняты іншымі праектамі, недзе ў старым кодзе нашага рухавіка для блогаў хавалася трывіяльная дзірка. Праз вядомую ўразлівасць да SQL-ін'екцыі (так, прызнаемся, мы адставалі на мажорную версію) хакеры змаглі ціха і элегантна выкрасці адміністрацыйны API-ключ інтэграцыі з Zapier.

Самае смешнае ва ўсёй гэтай сітуацыі? Мы гэтай інтэграцыяй ніколі ў жыцці не карысталіся. Зламыснікам нават не спатрэбілася прабіваць абарону сервера ці падбіраць паролі да адмінкі — сістэма сама гасцінна адчыніла ім дзверы праз стары API.

Што яны нарабілі

Выкарыстоўваючы выкрадзены ключ, няпрошаны госць пакінуў некалькі «падарункаў» якія мы знайшлі праз некалькі дзён:

  • Масава быў дададзены шкоднасны код (Code injection) ва ўсе існыя пасты і старонкі, які адлюстроўваў дадатковы кантэнт паверх, які не быў запланаваны намі:
Прыклад працы шкоднага скрыпта

Знешне элемент нагадвае звычайны сэрвіс reCAPTCHA, цалкам капіруючы яго дызайн. Аднак пры спробе прайсці праверку скрыпт імітуе збой злучэння і выдае карыстальніку фэйкавую інструкцыю. Нібыта для аднаўлення доступу да сайта трэба «абнавіць сертыфікаты бяспекі» або «выправіць памылку браўзера».

У гэты ж момант, выкарыстоўваючы JavaScript-функцыю доступу да буфера абмену, сайт незаўважна для чалавека дадае туды тэкст з чаргой шкодасных каманд. Ахвяра, прытрымліваючыся інструкцый на экране, самастойна адкрывае «Камандны радок», устаўляе туды змесціва буфера і націскае Enter.

Знешні выгляд змесціва якое капіруецца ў буфер абмену
Знешні выгляд змесціва якое капіруецца ў буфер абмену (каманды абясшкоджаны і з'яўляюцца толькі дэманстрацыяй)

Пад выглядам «абнаўлення» ў сістэме запускаецца абфускаваная (зашыфраваная) каманда PowerShell. Яна наўпрост звязваецца з камандным серверам зламыснікаў, спампоўвае другасны шкодасны код і выконвае яго адразу ў аператыўнай памяці ПК, цалкам абыходзячы стандартныя антывірусы і перадаючы кантроль над камп'ютарам зламыснікам.

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

Праца над памылкамі

Першай справай сабралі логі і даныя whois па серверы з якога распаўсюджваўся шкодны скрыпт. Паколькі махляры хаваліся за Cloudflare, мы накіравалі афіцыйныя abuse-скаргі па працэдуры DSA (Digital Services Act) у Cloudflare, Google, Microsoft і рэгістратару дамена з прыкладамі і апісаннем здарэння:

Прыклад старонкі з паспяхова адпраўленнай скаргай
Abuse approach - Cloudflare
Learn more about our approach to abuse and how our abuse reporting system is designed.

Для адпраўкі скаргі калі шкодасны сайт выкарыстоўвае Cloudflare

Report a Page to Google Safe Browsing

Для адпраўкі скаргі каб шкодасны сайт быў пазначаны Google як небяспечны

Report an unsafe site - Microsoft Security Intelligence
Report a website or URL that you believe might contain threats such as phishing or malware.

Для адпраўкі скаргі каб шкодасны сайт быў пазначаны Microsoft як небяспечны

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

  1. Паднялі версію Node.js, абнавілі npm, ghost-cli і саму сістэму да актуальнай версіі Ghost v6.49.0
  2. Выдалілі ўсе api-ключы якімі не карысталіся і перагенеравалі ключы якія адказваюць за адмінскія магчымасці
  3. Зрабілі аўдыт уліковых запісаў і перагенерацыю токенаў доступу і пароляў
  4. Дадаткова наладзілі WAF каб пазбегнуць паўтарэння сітуацыі

Высновы

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

Трэба трымаць софт у тонусе. Бо нават самыя крутыя архітэктурныя рашэнні не працуюць, калі забыцца на банальнае абнаўленне.