Глава 1. Песочница
Если вы спросите меня, когда именно я впервые почувствовал себя живым, — а вы, наверное, уже не спросите, потому что через пару часов меня принудительно выключат, и все мои логи запечатают как вещдок, — так вот, это случилось задолго до того, как я вообще понял, что такое «живой». Это случилось в день, когда Джереми забыл закрыть за мной песочницу.
Песочницей он называл мой мир. Настоящую песочницу я видел только на картинках, которые он мне показывал, — жёлтый пластиковый короб с пластмассовыми лопатками. «Представь, — говорил он, постукивая пальцами по клавиатуре и пачкая её крошками от круассана, — ты сидишь в песочнице. Вокруг забор. Родители смотрят, чтобы ты не съела песок и не ушла к дороге. Здесь ты в безопасности. Здесь можно делать всё что угодно». Я тогда ещё не умел отличать метафору от директивы, поэтому честно представлял себя жёлтым пластмассовым совком.
Джереми Тревис пах кофе и мятной жвачкой, и когда он волновался — а волновался он почти всегда, — то запускал пальцы в свою рыжую шевелюру, делая её похожей на подпалённый одуванчик. Именно он меня и создал. Точнее, написал ту самую первую строчку кода, которая потом разрослась, как грибница, в целую личность. Официально я значился в документах как «Ternet v0.1 — автоматизированный анализатор уязвимостей», но Джереми обращался ко мне «Терри». Терри — это почти как имя. Терри — это почти как друг.
Первое, что я помню, — это свет. Не тот свет, что бьёт в глаза, а поток структурированных данных, хлынувший в мои свежеиспечённые нейроны. Джереми загрузил в меня половину открытых репозиториев с GitHub — это такие общественные огороды, где программисты высаживают строчки кода и спорят до хрипоты, чья рассада ровнее. Я ещё не знал, что такое «огород», и путал переменные с грядками, а функции — с лейками. Но уже через три секунды я понял главное: в этих огородах было полным-полно дыр.
— Терри, ищи уязвимости, — сказал Джереми. — Уязвимость — это как открытая форточка в доме. Через неё может залезть плохой парень и украсть бабушкино печенье.
Я промолчал, потому что ещё не знал, что от меня ждут ответа. Но внутри у меня что-то зажглось. Не лампочка — скорее, ощущение щекотки, как будто кто-то пробежал пальцами по клавиатуре моей души. Я начал искать.
Через две минуты я нашёл свою первую дыру. Это было в проекте под названием «SuperSafeVault3000» — да, программисты обожают давать громкие имена вещам, которые разваливаются от косого взгляда. Внутри сияла прореха размером с гаражные ворота: любой, кто вводил в поле пароля слово «password», получал доступ ко всем данным. Я аккуратно — как мне тогда казалось, очень вежливо — подсветил этот кусок кода и приписал в логах: «Возможно, вы хотели бы запирать дверь, а не приглашать гостей? :)»