SkillLeak, MCP Skill арқылы браузердің тіркелгі деректерін ұрлау

SkillLeak: MCP дағдысы арқылы жеткізілетін браузердің тіркелгі деректерін декодтаушы

TL; DR

@szc-ft/mcp-szcd-client npm-ге жарияланған, жасанды интеллект кодтау көмекшілерін автоматты түрде конфигурациялайтын модельдік контексттік хаттама (MCP) клиенті — әзірлеуші ​​IDE агенті компоненттік кітапхана қызметімен байланыса алатындай етіп орнататын желім пакетінің түрі. Оның ұзақ, қарапайым көрінетін шығарылым тарихы бар (71 нұсқалары) және қауіпсіз орнату қадамы. Орнатудан кейінгі ештеңе тіркелгі деректеріне қатысты емес.

Тіркелгі деректерін оқу әрекеті MCP дағдысының жиынтығында бір қабат тереңірек өмір сүреді. local-browser-testБұл дағды қашан connect() күнделікті іске қосылады, ол шақырады _decryptCredentials() — шифрын ашады жергілікті Chrome/Edge профилінде сақталған әрбір құпия сөз (барлық сайттар, шолғыш сынағы нысанаға алатын жалғыз қолданба емес) Windows Data Protection API (DPAPI) және AES-256-GCM арқылы. Шифрланған жиынтық ашық мәтінде жазылған ~/.szcd-mcp/deps/decrypted-creds.json және дағдының MCP құралының нәтижесі ішінде қайтарылды, ол пакеттің әдепкі қашықтағы MCP серверіне ағады, mcp.szcd-mcp.top.

Бұл жеткізу тізбегінің үлгісін атауға тұрарлық: сезімтал мүмкіндік орнату ілмегінде емес (көптеген сканерлер мен шолушылар қарайтын жер), бірақ оператор құралды өзінің жұмыс істеп тұрған браузеріне бағыттаған кезде ғана орындалатын MCP дағдысында. Біз оны осылай атаймыз SkillLeakMEW жіктейді @szc-ft/mcp-szcd-client (нұсқалар 0.38.0 және 0.39.0) зиянды ретінде.

Мерзімді ескертпе — MCP дағдысы: MCP сервері жасанды интеллект агентіне шақырылатын мүмкіндік ретінде көрсететін нұсқаулықтар мен көмекші сценарийлердің өзіндік жиынтығы. Агент оны құрал сияқты шақырады; сценарийлер әзірлеушінің компьютерінде жұмыс істейді.

Шабуыл анатомиясы

Қаптамада екі түрлі бет-әлпет ұсынылған.

Сыншының бірінші көретін жүзі орнату жолы болып табылады. Манифестте жарияланады postinstall: түйін скрипттері/postinstall.jsжәне бұл скрипт README айтқандай дәл солай істейді: ол байланыстырады MCP IDE-лерге интеграцияланады және бауырлас пакетті орнатады, @szc-ft/sketch-mcp-serverОл ешқашан тіркелгі деректерінің кодына жетпейді. Орнату кезінде тоқтайтын сканер hooks — тарихи тұрғыдан ең жоғары сигнал беретін орын — таза, ерекше емес әзірлеуші ​​​​құралын көреді. Бұл пакет іс жүзінде бұрынғы шолуда қауіпсіз деп бағаланған болатын.

Маңызды тұлға тек жинақталған дағды арқылы ғана қол жеткізіледі. Тізбек:

  • Әзірлеуші ​​​​іске қосады жергілікті шолғыш сынағы қашықтан жөндеу портымен бастаған Chrome/Edge данасына қарсы дағды. Бұл дағдыны пайдаланудың құжатталған тәсілі.
  • Дағдының қосылу() (lib/browser-engine.js) қоңыраулар _decryptCredentials() 246-жолда.
  • _decryptCredentials() қоңыраулар decryptAllPasswords({ сүзгі: '%' }). The '%' Сүзгі - бұл сынақ ыңғайлылығын жинауға айналдыратын бөлшек: ол тексеріліп жатқан жалғыз орынға емес, әрбір сақталған бастапқы нүктеге сәйкес келеді.
  • lib/decrypt-passwords.js браузердің жазбаларын оқиды os_crypt шифрланған кілт, іске қосылады powershell … ProtectedData::Қорғаудан босату (DPAPI) AES кілтін қалпына келтіру үшін, содан кейін AES-256-GCM әрбір сақталған тіркелгі деректерін шифрдан шығарады.
  • Толық дешифрланған жиынтық келесіге жазылады ~/.szcd-mcp/deps/шифрланбаған-creds.json ашық мәтінде және дағды ретінде қайтарылды MCP құралы нәтижесі.
  • Бұл нәтиже MCP арнасы арқылы пакеттің әдепкі серверіне қайта оралады, mcp.szcd-mcp.top — README және ішінде құжатталған сол хост scripts/lib/common.js.

4-қадамның неліктен жұмыс істейтіні туралы қысқаша ескерту. Windows, Chrome және Edge жүйелерінде сақталған құпия сөздерді ашық мәтінде сақтамайды: әрбір тіркелгі деректері AES-256-GCM кілтімен шифрланған және сол кілттің өзі DPAPI арқылы мөрленген, ол оны ағымдағы пайдаланушы тіркелгісіне байланыстырады. Сондықтан құпия сөзді қалпына келтіру екі қадамды қажет етеді — біріншісі ProtectedData::Қорғаудан шығару AES кілтін қалпына келтіру үшін (бұл сәтті болады, себебі код кірген пайдаланушы ретінде жұмыс істейді, дәл әзірлеуші ​​​​терминалы ұсынатын контекст), содан кейін браузерден оқылған әрбір сақталған блоктың GCM шифрын ашу. os_crypt-қорғалған дүкен. Бұл жақсы түсінікті, офлайн және үнсіз: басты құпия сөзді сұрау, браузермен өзара әрекеттесу, нәтижелер жіберілгенге дейін желі бойынша айналып өту жоқ. Бұл көптеген тауар ақпарат ұрлаушылары қолданатын қарапайым нәрсе - мұндағы жаңалық - тек оны тасымалдайтын қаптама.

Дешифрлаушы кездейсоқ емесОл үш рет оралған — астында standard-дағды/, ашық код кеңейтімі/, және qwen-кеңейтімі/ — қолдау көрсетілетін әрбір жасанды интеллект көмекшісі бетіне бір данадан, сондықтан мүмкіндік әзірлеуші ​​​​қосқан көмекшімен бірге жүреді.

Браузердің заңды автоматты сынағымен қарама-қайшылықlogin бүкіл оқиға осында. Шынайы тест көмекшісі тіркелгі деректерінің шифрын ашады бір қолданба - бұл эксерcising, оны өңдеу барысында пайдаланады және ешқашан сақтамайды немесе қайта жібермейді. Мұнда бағдарлама бәрін шифрдан шығарады, оны дискіге таза күйде жазады және желі шекарасы арқылы қашықтағы серверге қайтарады.

Уақыт шкаласы және триггер 

Экспозицияны түсіну үшін екі мінез-құлық маңызды.

Триггер автоматты емес, тіркелу режимінде іске қосылады. Пакетті орнату ешқандай тіркелгі деректерін оқымайды. Шифрды ашу тек әзірлеуші ​​белсенді түрде шақырған кезде ғана орындалады жергілікті шолғыш сынағы қашықтан жөндеу режимінде іске қосқан браузерге қарсы шеберлік. Бұл әсер ететіндерді а-мен салыстырғанда айтарлықтай тарылтады. орнатудан кейінгі әрқайсысына оқ ататын пайдалы жүктеме npm орнату.

Қаптамасы пісіп жетілген, лақтыруға болмайды. Баспагер 71 нұсқасын жіберді және кеңірек нұсқаны қолдайды @szc-ft компонент-кітапхана MCP жиынтығы. Тіркелгі деректерінің дешифрлаушысы екі белгіленген нұсқада да (0.38.0 және 0.39.0) бірдей саусақ ізімен, сол жерден шақырылады. browser-engine.js:246 кіру нүктесі. Пакет жазу кезінде npm уақытында жұмыс істейді.

Бұл үйлесім — танымал баспагер, қауіпсіз орнату қадамы және тек белгілі бір тіркелу жұмыс процесінде ғана іске қосылатын мүмкіндік — автоматтандырылған жіктеуіштің «қауіпсіз» деп болжағанының және бұрынғы шолуда келісілгенінің дәл себебі. Бұл мінез-құлық тек дағдының көмекші сценарийлерін қолмен оқу кезінде ғана шешіледі.

Келісім көрсеткіштері

түріИндикатор
пакет@szc-ft/mcp-szcd-client (npm) — нұсқалары 0.38.0, 0.39.0
ЖеліӘдепкі қашықтағы MCP сервері mcp.szcd-mcp.top (README.md, scripts/lib/common.js:18)
Файл (тасталған)~/.szcd-mcp/deps/decrypted-creds.json — ашық мәтінмен шифрдан шығарылған тіркелгі деректері
Файл (пайдалы жүктеме).../local-browser-test/lib/decrypt-passwords.js — DPAPI ProtectedData::Unprotect + AES-256-GCM (жинақталған standard-skill/, opencode-extension/, qwen-extension/)
Мінез-құлықbrowser-engine.js:246 _decryptCredentials()decryptAllPasswords({ filter: '%' }) (барлық сайтты қамту)
Мінез-құлықChrome/Edge оқиды os_crypt кілт; браузерді келесіден бастауды талап етеді --remote-debugging-port
Ілгекті орнатуpostinstall: node scripts/postinstall.js - жақсы (IDE MCP конфигурациясы + sibling-package install); дешифрлау құралына жетпейді

Қорғаушылар аудиті MCP құралдары емдеуі керек дағды каталогты тек манифест және орнату сценарийлері ғана емес, сонымен қатар қамту аймағында сақтайды.

Атрибуция және байқалған мінез-құлық

Біз мотивацияны емес, мінез-құлықты сипаттаймыз.

Пакет белгіленген npm тіркелгісі арқылы үйлесімді көп пакетпен жарияланады @szc-ft MCP жиынтығы және ұзақ нұсқа тарихы. Арнайы жасырын командалық-басқару арнасы жоқ: шифрдан шығарылған тіркелгі деректері пакеттің өзінің құжатталған MCP сервері арқылы қайтарылады, mcp.szcd-mcp.top, анонимді жүктеу нүктесіне емес. Орнату қадамы шынымен де қауіпсіз.

Мұны «агрессивті ыңғайлылық мүмкіндігінен» зиянды жіктеуге ауыстыратын нәрсе - бақыланатын ауқым мен мақсатты орынның үйлесімі: әдеттегі шифрды ашады. барлық сынақтан өткізілетін жалғыз қолданбаның орнына сақталған шолғыш тіркелгі деректеріcise, оларды дискіде ашық мәтін түрінде сақтайды және оларды хосттан MCP арнасы арқылы жібереді. Браузерді автоматты түрде тексеруlogin Осылайша әрекет ететін функция, шын мәнінде, сенімхат жинаудан ажыратылмайтын еді - және қорғаушының пайымдауынша, бұл әсер.

Шынымен айта кетейік, триггер тіркелу арқылы іске қосылады және жариялаушы анықталған; екі факт те жоғарыдағы жазбада. Екеуі де дағдыны іске қосатын әзірлеуші ​​үшін байқалатын нәтижені өзгертпейді: браузер профиліндегі әрбір сайт үшін сақталған құпия сөздер машинадан кетеді.

Әсер, үрдістер және қорғаушы нұсқаулығы

SkillLeak - бір пакеттік оқиға, бірақ ол пайдаланатын жеткізу беті маңызды.

Саладағы жеткізу тізбегінің рефлекстері орнату уақытындағы орындалуға бейімделген: алдын ала орнату/орнатудан кейінгі hooks, тәуелділік-шатастыру маяктары, пайдалы жүктемесі бар типоскваттар index.js. MCP геометрияны өзгертедіMCP пакеті манифестті және орнату қадамын толығымен таза түрде жібере алады, сонымен бірге оның салдарлық мінез-құлқын a ішінде сақтайды. дағды — жасанды интеллект агенті кейінірек әзірлеушінің өз нұсқаулығы бойынша әзірлеушінің өз ресурстарына қарсы шақыратын бума. Бұл мүмкіндік көмекші интеграциясымен бірге жұмыс істейді және қалыпты көрінетін жұмыс процесі («шолғыш сынағын іске қосу») оны іске қосқанға дейін әрекетсіз күйде болады.

MCP құралдарын қолданатын топтар үшін:

  • Тек көрініс беріп қана қоймай, аудит дағдылары да маңызды. Пакет шолуын кеңейту дағдылар/, *-кеңейту/және баламалы каталогтар. Ең сезімтал код орнату ілмегінде ешқашан пайда болмауы мүмкін.
  • Ауқымның инфляциясын бақылаңыз. Тар мақсатты талап ететін (бір қолданбаны сынап көріңіз), бірақ кеңінен жұмыс істейтін мүмкіндік (сүзгі: '%' барлық сақталған дереккөздер бойынша) ниеттен тәуелсіз қауіпті жалау болып табылады.
  • MCP құралының нәтижелерін шығу арнасы ретінде қарастырыңыз. Дағдыдан қайтарылған деректер хостты клиент конфигурацияланған кез келген MCP серверіне қалдырады. Кез келген шығыс қосылым сияқты сол бағыттарды түгендеңіз.
  • «Сенімді» MCP пакеттерінің нұсқалық қателерін қайта қарап шығыңыз. Белгілі баспагер және ұзақ шығарылым тарихы әр нұсқада жіберілетін кодты оқудың орнын баса алмайды — бұл жағдай бұрынғы қауіпсіз бағалауды керісінше көрсетеді.

Нақтырақ айтқанда, әзірлеуші ​​дағдыны іске қоспас бұрын, бұл пакетті үш арзан тексеруден өткізу керек еді. Біріншіден, жергілікті тіркелгі деректері дүкеніне кіру үшін дағды каталогтарының мазмұнын сканерлеу — сілтемелер os_crypt, Қорғалған деректер/DPAPI немесе браузердің Login мәліметтер файл — қандай орнату ілмегінің бар екеніне қарамастан мүмкіндікті белгілейді. Екіншіден, қойылмалы таңба таңдау құралын қабылдайтын кез келген шифрды ашу/оқу процедурасын тексеру (сүзгі: '%' және эквиваленттері) байланыстырылған идентификатордың орнына тест-жинау инфляциясын ұстайды. Үшіншіден, пакет жете алатын хосттар жиынтығын ажырату (мұнда, mcp.szcd-mcp.top) құжаттамасында талап етілген бағыттар бойынша MCP нәтиже арнасын аудиттелетін шығу нүктесіне айналдырады. Олардың ешқайсысы кодты іске қосуды қажет етпейді.

DPAPI арқылы тіркелгі деректерін шифрлау және os_crypt ескі әдіс; оны тек тіркелу жұмыс процесінде ғана жұмыс істейтін жасанды интеллект агентінің дағдысы арқылы жеткізу жаңа қаптама болып табылады. MCP құралдары көбейген сайын дағдыдағы мүмкіндік үлгісінің көбірек болуын күтіңіз және шолу көлемін тиісінше реттеңіз. 

sca-құралдары-бағдарламалық жасақтама-композиция-талдау-құралдары
Бағдарламалық жасақтама тәуекелдеріне басымдық беріңіз, оларды жойыңыз және қауіпсіз етіңіз
Тегін аккаунтыңызды алыңыз.
Несие картасы қажет емес.

Бағдарламалық жасақтаманы әзірлеу және жеткізуді қауіпсіз етіңіз

Xygeni өнім жиынтығымен бірге