Изумлённые
Компания Anthropic, занимающаяся разработкой нейросетей, объявила о запуске системы Mythos, которая, как они утверждают, опережает специалистов в области кибер-безопасности по способности находить, эксплуатировать и исправлять уязвимости. Исправление нас не интересует, потому что будет предлагаться, кому надо и за большие деньги. Да, простите за прямоту, но именно для такого вымогательства такие системы и создают. Важны два других качества: способность находить и эксплуатировать. Если это действительно так, то в ближайшее время все чрезмерно усложнённые системы могут подвергнуться нападениям с самыми разными целями: отказ потребителям в доступе, воровство данных и программного кода, совершение несанкционированных операций и т.д.
Да, совершенно очевидно, что программный код, снабжённый необходимыми данными, может опережать человека в способности решать задачи. Он не устаёт, не отвлекается на перекуры и болтовню, его не смущают оскорбления или нападки, он не участвует в интригах и заговорах внутри организации, а также он не мечтает о карьерном росте и не подсиживает окружающих. Ничто не отвлекает его от конкуренции с человеком. В итоге он может победить системных администраторов, архитекторов и разработчиков, которые внедрили средства обеспечения безопасности в Интернет. Единственным спасением для таких систем может стать упрощение.
В чём заключалось длительное, тридцатилетнее усложнение? Изначально протокол HTTP, по которому работают все без исключения сайты в Интернет, разрабатывался для двунаправленного общения клиента и сервера без сохранения состояния. Клиент посылал запрос, а сервер реагировал на него и возвращал содержание страницы. Этот протокол оказался недостаточно гибким и не содержал достаточно возможностей, которые предприниматели хотели предоставлять потребителям. Та же история с форматом HTML, в котором создавались сами страницы: он не поддерживал всего разнообразия функций, о которых мечтали предприниматели. И HTTP, и HTML стали дополнять подпорками и костылям, о некоторых из которых автор уже писал в этой серии статей про Интернет и информационные технологии.
Разумеется, расширение возможностей привело к усложнению всего комплекса технологий в Интернет! Иначе и быть не могло. Появился язык программирования, активизируемый на страницах веб-сайтов: JavaScript. Поначалу он лишь обрабатывал события на страницах, но предприниматели оказались ненасытными, и этот язык стал самодостаточным и независимым, что привело к появлению целых приложений в Интернет, выполненных в виде одной страницы: огромной программы на JavaScript, меняющей и отрисовывающей своё содержание в зависимости от действий пользователя. Побочный эффект этого двояк: колоссальное усложнение сайтов и стопроцентная открытость кода, к которому имеют доступ все, кто их видят.
По пути к этому добавилась богатая стилизация страниц, технология двунаправленного обмена данными WebSockets для обновления страниц в реальном времени, файлы «куки» для сохранения состояния, сети хранения и доставки содержимого, виртуализация, контейнеризация, и многое другое. Сайты раздробились на слои и микросервисы, превратившись из одной сущности в двумерный или даже трёхмерный набор сущностей. Это колоссальное усложнение, если задуматься. И это автор даже не заглядывает за кулисы, где технологически ПО раздробилось ещё в одном измерении — на разные языки и СУБД, потому что одного каждого теперь маловато будет! Ненасытное человечество незаметно для себя проехало отметку, у которой следовало задать себе вопрос: а способно ли оно контролировать такую сложность?
Какие-то из этих мер хорошие и оказали положительное влияние на развитие глобальной инфраструктуры ИТ; какие-то дисциплинировали и развили участников этой сферы; какие-то помогли им снизить объём работ и упростить процесс создания решений. Но даже они сопровождались усложнением самого ПО и самой инфраструктуры, потому что ничего в этом лучшем из миров не даётся бесплатно, и за каждое упрощение исходного кода приходится платить раздуванием компиляторов, библиотек, сред, операционных систем и т.д. Об этом автор уже писал в предыдущих статьях. Увы, этот процесс часто проходит незаметно, и о нём забывают, а зря: чем сложнее система в целом, тем больше в ней ошибок и уязвимостей. А мы продолжаем докидывать туда совковой лопатой.
Экспоненциальный рост объёма кода, его дробление на неявно и неочевидно связанные слои и компоненты, часть которых размещается в облаках, над 100% поведения которых заинтересованные организации и лица не имеют контроля, заведомо не может способствовать улучшению обстановки с безопасностью. Он заведомо приведёт к появлению уязвимостей и привлечёт желающих ими воспользоваться, потому что автор не единственный, кому это очевидно, хотя вполне может статься, что единственный, кто готов об этом открыто говорить. У автора лишь отсутствует интерес к их сокрытию и эксплуатации, в отличие от неизвестного количества миллионов злоумышленников всех мастей и во всех регионах планеты и слоях общества.
Простейший экскурс в историю: операционная система Windows прошла долгий путь развития. При этом её размер некоторое время удваивался с каждой новой версией, как и требования к оперативной памяти. Это у всех на виду и на слуху. Похожим путём развивались все другие ОС: Linux и Android, BSD и даже QNX, поставлявшаяся изначально на трёх дискетах, но впоследствии превратившаяся в никому не нужное 6-гигабайтное чудовище. То же самое произошло и со средствами разработки, библиотеками, СУБД и многими другими продуктами. Автор уже писал об этом.
Что там, в недрах бинарного кода дистрибутивов этих продуктов? Никто не знает, у кого не бездонные карманы на обратный инжиниринг, де-компиляцию и пошаговую отладку. Ни таких денег, ни столько времени нет ни у кого, потому что одна компания Microsoft, являющаяся автором самых распространённых ОС, СУБД, средств разработки и некоторых других продуктов, обладает много-триллионной капитализацией и использует для разработки труд десятков или даже сотен тысяч сотрудников в Китае и Индии. Пересилить отладчиком этот поток программного кода на нашей планете не под силу никому. Да что там Windows с её закрытым кодом! Даже разобраться, соответствует ли ядро Linux, поставляемое в бинарном виде с дистрибутивом какого-нибудь Ubuntu или Debian, его исходному коду, тоже задача нетривиальная. Вас доконает не компиляция самого кода, а создание среды, в которой он откомпилируется. Удачи в этом! И это лишь два примера из многих миллионов.
В сфере ИТ есть два пути укрепления безопасности и устранения уязвимостей: это добавление кода, целью которого является защита, и удаление уязвимого кода. Третьего не дано. Человечество с момента зарождения кибернетики шло по первому пути, но ничто не длится вечно! Когда-нибудь этот метод исчерпал бы себя, и вот сейчас по мнению автора наступил как раз такой момент. В силу изменения положения в отрасли, в силу появления технологий, отсутствовавших раньше, катиться по накатанной дальше не получится. Придётся упрощать системы и менять подход к безопасности, потому что человек больше не способен физически её контролировать.
Технологический скачок произошёл примерно между 2015 и 2020 годами. Именно тогда традиционные архитектуры интернет-приложений, состоящих из трёх классических слоёв: базы данных, программного кода, и страниц на HTML с минимальным количеством JavaScript, раздробились на ещё большее количество слоёв, между которыми влезли очереди сообщений, кэши, контейнеры, оркестрации контейнеров, сети хранения и распространения содержимого, средства непрерывного запуска в производство, и всё это оказалось соединено воедино нагромождениями файлов сценариев на множестве новомодных языков и размещено во множестве облаков. Само же ПО совершило трансформацию из бинарных, откомпилированных файлов в интерпретируемые файлы сценариев. Всё это время на замедление ПО из-за его раздувания отвечали набросом ещё больше ПО на вентилятор.
Автор уже задавал вопрос: а кому ещё, кроме владельца и самих себя, эти облака предоставляют доступ к программному коду и данным? Их собственным нейросетям ведь наверняка предоставляет, ведь соблазн неудержимый: опередить конкурентов, узнав всё на свете обо всех и использовав эти знания себе на пользу. Не говорите мне, что против такого соблазна может кто-то устоять, ведь высокие моральные качества не демонстрируют никто из владельцев самых популярных облаков. Их послужной список в области воровства информации и слежки за пользователями всем известен. Картина вырисовывается не внушающая оптимизма.
Итак, мои дорогие владельцы информационных систем и инфраструктуры ИТ: если вы продолжите идти на поводу у навязываемых вам идеалов и моды, усложнять свой исходный код, ПО и инфраструктуру, дробить их, предоставлять доступ к ним и контроль над ним неизвестно кому и неизвестно где, упрощать доступ злоумышленникам и к коду, и к данным, то вас взломают, всё украдут, всё узнают о том, как и с кем вы ведёте дела, и выдавят вас с рынка. Это в лучшем случае, а в худшем поймают на нарушениях и шантажом выжмут из вас всё, мягко говоря, накопленное. Это уже происходит, хотя жертвы пока и не кричат об этом на каждом углу, чтобы избежать как гнева потребителей, так и преследования регуляторами.
Ещё один важный фактор, подрывающий безопасность глобальной индустрии ИТ — это стремительная скорость внесения изменений. Взгляните на абсолютно любой сайт в Интернет: все они постоянно меняются. Не успел привыкнуть к его пользовательскому интерфейсу, а он раз, и изменился. Даже если они визуально те же самые, некоторые могут в одночасье перестать работать в нынешней версии браузера и потребовать его обновления. Это тоже следствие внесения изменений, хоть и не визуальных. У вас, мои дорогие владельцы информационных систем и инфраструктуры ИТ, ненадолго сохранится возможность нестись с такой бешеной скоростью, потому что ошибки и уязвимости, неизбежно возникающие при поспешном внесении изменений в код и данные, теперь смогут эксплуатировать нейросети, более работоспособные и внимательные, чем ваши сотрудники. Притормозите, пока не поздно! А ведь есть ещё одна сторона этой медали: вы понятия не имеете, что там в новой версии браузеров, которую теперь требует ваш сайт, поскольку стремительное обновление браузеров тоже привносит ошибки и уязвимости.
Устал повторять: Интернет — не детская площадка с доброй няней, чистым песочком и куличиками. Это театр военных действий с наёмниками, мародёрами и стаями бешеных собак. Те, кто идут на поводу у навязываемых им моделей поведения в Интернет, будут укушены и заражены в буквальном смысле слова. Если в проекте вашего ПО сам чёрт ногу сломит, если он состоит из неконтролируемого множества компонентов с хлипкими связями из туалетной бумаги и соплей, если для его работы требуются услуги множества сторонних служб с сомнительными лояльностью, надёжностью, легальностью и доступностью, если в каналы передачи данных между ними могут вмешиваться неизвестные посторонние, если код и данные хранятся в местах, доступных посторонним, а главное, если для сборки и ввода в эксплуатацию вашего ПО нужны средства, разработанные невесть где, невесть кем и невесть с какими целями, то ваш проект слишком сложен, чтобы быть надёжным. Завтра вас решат отменить и отменят, или решат взломать и взломают, и плакать будет поздно.
Свидетельство о публикации №226091801652