Мазмұнға өту
N1
Legacy · қауіпсіздік · аудиторлық із

Қорапты Bitrix24 қауіпсіздігі және реттеуші талаптарына сай аудиторлық із

Клиент: Қаржы компаниясы, NDA Санат: Legacy Стек: PHP 8, Bitrix24 D7, .env, RSA-OAEP (WebCrypto), syslog, cron, gzip, JavaScript Мерзім: шамамен бір ай
Мәселе

Қаржы компаниясының қорапты Bitrix24-і жылдар бойы скрипттермен толығып келген: олардың бір бөлігі анонимді сұраныс бойынша әкімші сессиясын беретін, API токенсіз сұраныстарды өткізетін, қолжетімділік деректері кодта жататын, ал ЖСН мен телефондары бар журналдар ротациясыз жинала беретін. Сонымен қатар қаржы нарығы реттеушісінің аудиторлық ізге қойылатын талаптары орындалмайтын.

Шектеулер

Продты тоқтатуға болмайды, ағымдағы мінез-құлыққа ондаған интеграция тәуелді; аудит қауіпсіз әдепкі мәндері бар жалаушалармен қосылуы керек, ал дербес деректер жауаптарға да, журналдарға да түспеуі тиіс.

Не істедім
  • Анонимді сұраныс бойынша әкімші сессиясын беретін 6 орын және 6 API-эндпоинттегі авторизацияны айналып өту жабылды; жауаптардан stack-trace алынып тасталды
  • Анонимді эндпоинттерге rate-limit қойылды, ЖСН ақылы сыртқы шақыруларға дейін валидацияланады; жұмыс интерфейстеріндегі IDOR мен CSRF жабылды
  • Кіру формасындағы құпиясөз браузерде шифрланады (RSA-OAEP, 4096 биттік кілт); кодқа қатаң жазылған 50-ге жуық қолжетімділік деректері .env-ке шығарылды
  • Жалаушалармен басқарылатын аудиторлық із: сәтсіз кірулер, API-ға жүгінулер журналы, syslog-қа айна; журнал ротациясын және міндетті 2FA регрессін күн сайын қадағалайтын бақылаушы скрипт
  • Логгер ЖСН, телефондар мен карталарды бүркемелейді; ротация 90 күн және 400 күндік архив; хэштерді жалған бүркемелеу 200 000 мәнде 5,1%-дан 0%-ға дейін төмендеді
  • Графиктері және сұраныс id-сы бойынша барлық журналдар арқылы іздеуі бар журнал қарау құралы; health-API медианаға қарағандағы қателер секірісін, тыныштықты және үнсіз тоқтаған ротацияны ұстайды
Архитектура
Портал мен API кіру нүктелері → Авторизация, лимиттер, CSRF → Дербес деректерді бүркемелейтін логгер → Ротация және архив → Қарау құралы және health-API
Нәтиже

Жинақталған журналдар архивтелді: 2041 МБ көлеміндегі 6344 файл бақылау сомалары бар 120 МБ архивке сығылды, local/ каталогы 2,6 ГБ-тан 578 МБ-қа дейін кішірейді. Қолжетімділіктің сыни осал тұстары жабылды, журналдарда шу емес, инцидент көрінеді.

Нені қайта қолдануға болады
Дербес деректерді бүркемелейтін және хэштерді қорғайтын логгер Архиві және бақылаушы скрипті бар журнал ротациясы Журналдардың health-API-ы: медианаға қарағандағы секіріс және тыныштық