Sift е безплатен инструмент от команден ред с отворен код, който търси пароли, API ключове и друга чувствителна информация на местата, където дадена компания съхранява работните си данни: локални дискове, споделени ресурси във Windows, цял Active Directory домейн, SharePoint, OneDrive, канали в Teams, съобщения в Slack, както и Jira и Confluence. Компанията за тестове за проникване Stratus Security го разработва за собствените си нужди и го публикува безплатно.

Колин Уотсън, главен технологичен директор (CTO) в Stratus Security, сам участва в тестовете. „Например, по време на последния ми тест за проникване, този инструмент откри хиляди компрометирани данни за достъп в коментари към тикети в Jira. Предишният им специалист по тестове за проникване не ги бе забелязал в продължение на 5 години, тъй като те не фигурират в стандартните инструменти и методологии“, споделя той пред Help Net Security.

Уотсън посочва, че констатацията е променила съветите, които неговата фирма дава, но не чрез създаване на категоризиран списък по рискови зони. „Това определено промени препоръките ни, но никое от местата не е с по-висок приоритет от останалите. Препоръчваме да се проверяват абсолютно всички възможни услуги еднакво.“ Основният извод е, че чистото сканиране на споделените файлови ресурси дава информация единствено за тях и за нищо друго.

По-висока скорост на сканиране

Stratus тества Sift спрямо Snaffler 1.0.244 в синтетични хранилища на файлове. Сканирането на 250 000 малки файла отнема на Sift едва 10,61 секунди в сравнение с 25,48 секунди за Snaffler. Преминаването през 5,5 GiB съдържание отнема 0,69 секунди срещу 6,32 секунди. При дълбоко и разклонено директорийно дърво Sift се справя за 1,12 секунди спрямо 2,37 секунди.

Разликата в използваната памет е още по-голяма. Snaffler използва средно 337 MiB и достига пик от 429,5 MiB, докато Sift използва средно 92 MiB с пик от 102,2 MiB. Stratus отстранява недостатък в Snaffler, за да съобщава за завършване веднага, вместо да чака ежеминутната си проверка, с което се премахва изкуственото предимство за Sift.

По подразбиране скоростта на пренос е неограничена, но прекалено интензивното сканиране може да натовари производствения сървър. Поради тази причина са предвидени параметри за брой нишки и скорост на четене. Всички команди за сканиране записват контролни точки, така че прекъснат процес продължава от мястото на спиране, вместо да започва отначало.

Интеграция с локален езиков модел

Сканирането за тайни често генерира фалшиви резултати (false positives), затова Sift може да препредава съвпаденията към локален езиков модел за филтриране. Моделът се изпълнява чрез Ollama на контролирана от вас машина, без никакви данни да напускат системата, което е от изключително значение, когато въпросните данни са паролите на клиента.

Поддръжка на проекта с отворен код

Преди създаването на Sift, Stratus поддържа собствен разклонен вариант (fork) на Snaffler, но го изоставя, когато натрупаните промени стават по-трудни за поддръжка отколкото пренаписването на нов инструмент.

Правилата за откриване са обикновени JSON файлове, така че добавянето на ново правило изисква единствено текстов редактор, а не компилатор. Готовите изпълними файлове (binaries) все още нямат цифров подпис, затова се препоръчва проверка на SHA256 сумите при изтегляне.

Sift е достъпен безплатно в GitHub.