Практычныя прытамулкі: Я створыў сканер безпекі MCP, які ператварае трафік QA на
Практычныя прытамулкі: Я створыў сканер безпекі MCP, які ператварае трафік QA на контракты, перакрыцця і слоты для коду для команд, якія викорыстоўваюць гэты патэрн.
У гэтым карыце парадоксу перадстаўляецца шлях ад сыр'ёчных матэрыялаў да рабочай системы для праекту: «Я створыў сканер безпекі MCP, які ператварае трафік QA на тэсты безпекі». Акцэнт ставяцца на практычныя крокі, чыстае перакананне і код, які можна проста дадаць у репазітарый без неабязковасці з'ясоўвання меты. У стадзіі агульнага відгледу неабходна з'явіць вхідныя даны, адпаведальнага за крок і критэрыя завершэння прычыму перад змінайом коду. Аператары должны магчымае перадзначыць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць парадзельной ад коду прыкладнення. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыяй должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаяўшы весь граф».
Проблема
Калі працуеце над стадзіяй «Проблема», спачатку запісайце умовы кантракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў ёсць часткай продукту, а не пазнейшым дапрацоўкам. Зявляйце логі з назвай інструмента, хэшам аргументаў, часам затрымкі і рэзультатам кожнага вызову. Без такога следу дэбаггінгавы агент траціць гадзіны на безрезультатныя циклы.
З тэставання якосці да тэставання безпекі
Калі працуеце над пераводам з режыму QA Traffic у стадію выпрацоўкі, спачатку запісайце умовы контракту: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список пераконтроўкі дапамагае заліцварыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптаў. Калі якісь крок не выйшоў, невыпанне павінна вказваць на адную адпаведальнасць, а не на заплутаны процес. Запішыце назву інструмента, хэш аргументаў, час затрымкі і рынак кожнага вызову. Без такога следу дэбаггін агента губіць гадзіны.
QA Automation
│
▼
HTTP Traffic
│
▼
HAR File
│
▼
Security Scanner
│
▼
Security Findings
І так вы створылі ўсё
Калі працуеце над стадзіяй «So you Built One», спачатку запісайце контракт: неабяжлівыя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Спрэчвайце гэтую стадзію як контракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце правіла пераканання успеху і не падзэлвайце задачу на часткі без адпаведных падтверджэнняў. Запісвайце назву інструмента, хэш аргументаў, час адпаведзі і рэзультат кожнага вызову. Без такога лёгкага следу дэбагаванне губіць гадзіны. Калі працуеце над стадзіяй «So you Built One», спачатку запісайце контракт: неабяжлівыя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Зберагайце настройкі параду ўнутры коду прыемлівача. Файлы сераўнавання сяродовішча, храненні секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжлівага чытання всей структуры.
Playwright
│
▼
Network Traffic
│
▼
HAR File
│
▼
HAR Parser
│
▼
Normalized Transactions
│
▼
Security Rules
│ │
▼ ▼
MCP Tool CLI Gate
│ │
▼ ▼
AI CI/CD
Што ён выявляе?
Этап «Што гэта выклікае» працюе наяўней, калі яго розглядаць як вимерную паверхню. Зафіксавайце адна ідеальная транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Дакументавайце як шлях успеху, так і шлях вярнення да нормальнага стану разам. Перапрыбуткі, людзкія перакрыцці та обробка некоректных паведамленняў є частью продукту, а не наступным этапам дорабкі. Адкройце інструменты з вузкімі схемамі та чыткімі пазначкамі пра побачныя эфекты. Хостам неабходна знаты, якія вызовы мутуюць стан, перш чым вони автаматычна схваляюць ўпраўленні.
Відсутны HSTS
Этап HSTS, які не працюе, найэфектыўней работае, калі яго розглядаць як мерыемую аб’ектнае прастора. Запісайце адну ідеальную транскрыпцыю, адзін прыклад неудачы і прыметку па поверненню да пярвінскага стану пры расшырэнні масштаба. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Адкройце інструменты з вузкімі схемамі та чысткімі пазначэннямі побачных наследкаў. Хостам неабходна знаты, якія вызовы меняюць стан, перш чым яны автаматычна схваляюць іх.
Strict-Transport-Security
HTTP у чыстаму тексте
Этап HTTP з простым тэкстам работае найкраща, калі яго спрыяваць як меравальную плошчу. Зберагачыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Спрыявайце этап як кантракт межа вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Даўайце назвы артыфактам, задаюце критэрыя успеху і не падтрымайце тыхі частковыя завершэння. Адкройце інструменты з вузкімі схемамі та чысткімі пазначэннямі побачных наследкаў. Адпаведальныя за хоставанне должны знать, якія вызовы мутуюць стан, перш чым автаматычна ўзяць іх на спрыт. Этап HTTP з простым тэкстам работае найкраща, калі яго спрыяваць як меравальную плошчу. Зберагачыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Зберагачыце настройкі за межамі коду прыемлівача. Файлы сяродавішча, хранільнікі секрэтных данных та флагі функцый должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжнага чытання всіх элементаў.
http://
https://
Небезпечныя кукі
Для стадіі «Небяспечныя куклі» неабяжна ўзначыць вхідныя даны, адпаведальнага за этап і крэтыры завершэння перад змянай коду. Аперацыёныя працавнікі должны магчымае запускаць этап з вядомай точкі контролю, не падозрываючы схованы стан. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Автентыфікуйцеся на шлюзе і паўторна автарызуйцеся на роўні дадзенняў. Толькі токэн-носіцель не є межай арендаванага ресурсу.
Secure
HttpOnly
SameSite
Магчымая адкрыць таёмных даных
Для стадіі можлівага выяўлення секрэтных даных неабходна з’явіць вакуларыясць ў парадактах вводу, адпаведальнай особе за выкананне крока і крэтарыях завершэння працы перад змінай коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не прабуючы спадарожваць схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выканаецца, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Автентыфікуйцеся на входзе і паўторна автарызуйцеся на роўні дадзеных. Толькі токэн-носіцель не є межай адпаведальнасці.
{
"apiKey": "..."
}
Чулыя параметры ў URL-адрэсах
У стадії «Чулыя параметры ў URL» перш чым зменіць код, неабходна задаць вхідныя даны, адпаведальнага за этап і крэтырыя завершэння. Аператары должны магчымаць перзапуск этапа з вядомай точкі контролю, не спрабоўваючы здогадвацца пра схованы стан. Спрыяйце цій стадіі як даговору межы вхідных даных і перакананых выходных рэзультатаў. Даць назвы артыфактам, задаць перакананні на успех і адмовіцца ад беззвучнага частковага завершэння. Аутентыфікуйцеся на воратах і паўтарна автарызуйцеся на роўні дадзенняў. Толькі токэн-носіцель не є межай аренды. У стадії «Чулыя параметры ў URL» перш чым зменіць код, неабходна задаць вхідныя даны, адпаведальнага за этап і крэтырыя завершэння. Аператары должны магчымаць перзапуск этапа з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Зберагачыце настройкі параду ад коду прыемліка. Файлы сераўнавальнага сяродовішча, хранілішчы секрэтных дадзенняў і флагі функцый должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабходнасці чытання всей структуры.
/api/user?token=...
Нумеры платежных карт, які пасуюць за правилам Luhn
Калі працюеце над этапам выканання пераказа з платежнымі картамі, які пасуюць за правилам Luhn, спачатку запісайте умовы кантракту: неабяжлівыя даны, сигнал успеху і тое, што відбываецца у разе частковай нявыполненасці. Такі список контроля дапамагае залічыць змяны ў кодзе пасля таго. Запісуйце адночасна як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не дадатковыми етапамі доопрацоўкі. Фіксуйце назву інструмента, хэш параметраў, час адклікання і рынак кожнага вызову. Без такіх задапісаваных дадзенняў адлагоджванне працуюць гэтымі цикламі марнуе гадзіны.
Неправильная налашоўка CORS
Калі працуеце з стадіяй канфігурацыі CORS, спачатку запісайце умовы: неабяжлівыя данні, сігнал успеху і тое, што выходзіць пад частковым няўспэхам. Такі список контроля дапамагае заліцьварыць пасляэйшныя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, няўспэх должен вказываць на адну конкретную адпаведальнасць, а не на заплутаны ланцюг задач. Запісвайце назву інструмента, хэш параметраў, час адклікання і рынак кожнага вызову. Без такога следу дэбаггін займае гадзіны.
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Чаму MCP?
Калі працюеце над стадзіяй «Чаму MCP», спачатку запісайце контракт: неабяжлівыя даннэ, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Спрэчвайце гэтую стадзію як контракт межа даннэмі і перакананымі выходамі. Дайце назву артыфактам, задаце правілы пераканання успеху і не падзэльвайце задачу на часткі без адпаведных падтверджэнняў. Запісвайце назву інструмента, хэш аргументаў, час адклікання і рэзультат кожнага вызову. Без такога лёгкага следу дэбагаванне губіць гадзіны. Калі працюеце над стадзіяй «Чаму MCP», спачатку запісайце контракт: неабяжлівыя даннэ, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Зберагайце настройкі параду ўнутры коду прыемлівача. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжлівага чытання всей структуры.
secscan_scan_har
HAR File
│
▼
MCP Server
│
▼
Security Scanner
│
▼
Security Findings
│
▼
AI Client
│
▼
Explain / Investigate
Але ж вы не хацелі, каб ШІ прымала рашэнні па кантролі безпекі
Фраза «Але ж вы не хацелі…» работае наўперады, калі яе расследжваць як мэркаваную плошчу. Запісаце адны ідеальны прыклад, адзін прыклад неудачы і прыметку па адвярненню перад расшырэнням масштаба. Дакументавайце як успішны, так і вярнучыся шляхы адгукавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не наступным этапам дорабачання. Адкройце інструменты з вузкімі схемамі та чыткімі пазначкамі пра побачныя эфекты. Хостам неабходна знать, якія вызовы мутуюць стан, перш чым яны будуць автаматычна затверджаны.
npm run gate -- test-results/network.har
AI-Assisted Analysis
HAR
↓
MCP
↓
AI
↓
Explain / Investigate / Triage
Deterministic Security Gate
HAR
↓
Scanner
↓
Critical Finding?
↓
FAIL BUILD
Дзе CI/CD становіцца цікавым
Прыцэпленне CI/CD да стадзій працуе найкраща, калі яго спрыявае можлівасць вимеры. Зберагачыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра абяроŭненне, перш чым расширваць сферу прыменення. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якаясь ступеня не выконваецца, прычына неудачы павінна вказваць на адную адпаведальнасць, а не на заплутаны процес. Адкройце інструменты з вузкімі схемамі та чысткімі пазначэннямі побачных наследкаў. Хостам неабходна знаты, якія вызовы мутуюць стан, перш чым яны автаматычна схваляюць ўпраўленні.
- name: Run Playwright tests
run: npx playwright test
- name: Security Gate
run: npm run gate -- test-results/network.har
Code
│
▼
Build
│
▼
Playwright Tests
│
▼
Capture HAR
│
▼
Passive Security Scan
│
▼
Security Gate
│
▼
Deploy
Адна з найважлівейшых рэчаў, якія вы выучылі
Этап «The One of the Biggest» працюе найкраща, калі яго розглядаць як вимерную паверхню. Зафіксавце адны ідеальны прыклад, адну справу з бягам і прыметку па вярнэнні да пачатковага стану пры расшырэнні масштаба. Разглядзайце этап як кантракт межа вхіднымі даннымі і пераканаленымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падтрымайце тыхія частковыя завершэння. Адкройце інструменты з вузкімі схемамі та чыткімі пазначэннямі побачных эфектаў. Адпаведальныя за хоставанне должны знать, якія вызовы мутуюць стан, перш чым автаматычна схваліць іх. Этап «The One of the Biggest» працюе найкраща, калі яго розглядаць як вимерную паверхню. Зафіксавце адны ідеальны прыклад, адну справу з бягам і прыметку па вярнэнні да пачатковага стану пры расшырэнні масштаба. Зберагачце настройкі праза код аплікацыі. Файлы сяродавішняе сераўісу, хранілішчы секрэтных данных і флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжнага чытання всіх элементаў.
HAR
│
▼
Parser
│
▼
Transaction
│
▼
Security Rules
Што далей?
Для стадіі «Што далей» неабяцо пазначыць вхідныя даны, адпаведальнага за крок і крэтырыя для завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы схованы стан. Неабяцо задокументаваць як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Автентыфікуйцеся на воратах і паўторна автарызуйцеся на роўні дадзенняў. Толькі токэн-носіцель не ёсць межай арендаванага ресурсу.
Што ўжо правілы безпекі
У стадії правіл адынаковай безпекі неабяжна практычна вызначыць параметры вводу, адміністратара крока і критэрыя завершэння пры змены коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выконваецца, прычына нехарактэрыстыкі должна вказываць на адзін конкрэтны элемент, а не на заплутаны ланцюг задач. Автентыфікуйцеся на входзе і парадэкстрыруйце правыя на роўні обробкі дадзэнняў. Толькі токен-носіцель не ёстся межой адпаведнай часткі системы.
Лепшая адчытнасць
Для стадіі адміністрування For the Better неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перайсці цей крок з вядомага пункта контролю, не спрабоўваючы здогадвацца пра схованы стан. Спрыяйце цій стадіі як даговору межы вхідных даных і перакананых выходных рэзультатаў. Даць назвы артыфактам, узначыць перакананні на успех і адмовіцца ад безгучнага частковага завершэння. Автентыфікуйцеся на в’язку і паўтарна автарызуйцеся на роўні дадзенняў. Толькі токэн-носіцель не ёстся межай аренды. Для стадіі адміністрування For the Better неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перайсці цей крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Зберагайце настройкі параду ад коду прыемлівання. Файлы сераўіса, хранільнікі секрэтных дадзенняў і флагі функцыйяй должны знаходзіцца ў аднам месцы, якое працавнікі можуць аудытаваць, не чытаючы весь ляс.
Finding
Severity
Rule
Evidence
Request
Response
Impact
Remediation
Лепшая трыажура за дапамогай AI
Калі працуеце над стадзіяй трыажуры за дапамогай AI, спачатку запісаце контракт: неабяжлівыя даннэ, сігнал успеху і тое, што выканаецца у разы ўзельнага неякшага выкарыстоўвання. Такі чэрніцкі ліст дапамагае залічыць змяны ў кодзе пазней. Дакументаваць трэба як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не пазнейшымі дапрацоўкамі. Фіксаваць назву інструмента, хэш аргументаў, час затрымкі і рынак кожнага вызову. Без такога следу дэбагаванне ціклам агента губіць гады.
Інтеграцыі CI/CD
Калі працуеце над стадзіяй інтэграцыі CI CD, спачатку запісайце умовы: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць у разе частковага няўспэху. Такі список контроля дапамагае заліцьварыць чыстасцю пазнейшых змян у кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, няўспэх должен адносіцца да адной адпаведальнасці, а не да заплутанага лянцюга задач. Запісвайце назву інструмента, хэш параметраў, час адклікання і рынак кожнага вызову. Без такога следу дэбагаванне агента губіць гадзіны.
Чаму вы гэта створылі
Калі працуеце над этапам «Чаму вы створылі гэта», спачатку запісайце контракт: неабяжлівыя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заліцваліць пазнейшыя змены ў кодзе. Спрэцьвуйце да гэтага этапу як да контракта межа вхіднымі данымі та перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаць правіла пераканання ў успеху та адмовіцеся ад мовчанкавага частковага завершэння. Запісвайце назву інструмента, хэш аргументаў, час адклікання та рэзультат кожнага вызову. Дыбаггін без такога следу марнуюць гадзіны. Калі працуеце над этапам «Чаму вы створылі гэта», спачатку запісайце контракт: неабяжлівыя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заліцваліць пазнейшыя змены ў кодзе. Зберагаюце настройкі паза кодам прыемлі. Файлы сераўнавання сяродовысці, храненні секрэтных данных та флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжлівага чытання всей структуры.
Большая ідея
Этап «Большая ідея» працюе найэфектывней, калі яго спрыяваць як до мерыям падатлів. Запісаце адна ідеальная версія, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Дакументавайце як успішны, так і вярнучыся шляхы развіцця. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў ёсць часткай продукту, а не чымось, што дадаецца пазней.
QA Automation
+
Application Security
+
AI
+
DevSecOps
Заключныя меркі
Этап «Завершальная думка» працюе найкраща, калі яго розглядаць як вимерную плошчу. Зафіксавце адны «золаты» транскрыпт, адны прыклад неудачы і прыметку па вярнэнні да пачатковага стану пры расшырэнні масштаба. Валіце вароць малыя, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Адкрывайце інструменты з вузкімі схемамі та чысткімі пазначэннямі побачных наследкаў. Адпаведальныя за эксплуатацыю людзі павінны знать, якія вызовы мутуюць стан, перш чым автаматычна схваліць іх.
Чэк-ліст эксплуатацыі
Этап «Чэк-ліст эксплуатацыі» працюе найкраща, калі яго розглядаць як вимерную плошчу. Зафіксавце адны «золаты» транскрыпт, адны прыклад неудачы і прыметку па вярнэнні да пачатковага стану пры расшырэнні масштаба.
Запісвайце часы выканання і косты токенаў або запытак разам з функцыйнальнымі рэзултатамі. Відразувыя даны пра косты запобегаюць неспакоўным рахункам, калі процес пераходзіць з дэмовай среды ў спакульную.
Адаптавайце інструменты з вузкімі схемамі та чытальнымі пазначэннямі побачных эфектаў. Хостам неабходна знать, якія запыткі мутуюць стан, прычым яны можаць автаматычна санкціонаваць іх.
Калі дозволяе бюджет, дадзіце тэст на працяванне критычнага маршруту ў системе CI з викорыстанням фіксатываў, а не рэальных платных API.
Зберагаюце настройкі праза код аплікацыі. Файлы сяродавішча, хранільнікі секрэтных дадзеных та пазначкі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх элементаў.
Адаптавайце інструменты з вузкімі схемамі та чытальнымі пазначэннямі побачных эфектаў. Хостам неабходна знать, якія запыткі мутуюць стан, прычым яны можаць автаматычна санкціонаваць іх.
Перад апраноўкай стака заморажавайце версіі, зафіксавайце ідеальны транскрыпт критычнага маршруту та паказвайце крокі для адвярнення змян. У спадзеленых сяродавішчах неабходны ліміты частоты запыткаў, пераказкі прыналежнасці та чыстае вяліканство для змены секрэтных дадзеных. Валіце простую надзяйнасць працы над крэатывнымі, адзінразовымі дамах.
Запіскі для пакета 8b0e77ff0645: не класты ключі прадаўцоў у репазітарыю, задаць максымальны ліміт токена на сесію, а таксама зберагчы транскрыпціі праза фіксатуры адлічэння, каб пазнейшыя замены моделей заставаліся порównанымі.