Интернет с иммунитетом или почему бог не играет в лего

    Большинство программистов учатся постоянно. Мы читаем книги гуру и смотрим код профессионалов. И спорим какой метод лучше и какое решение красивее.
    Но представим себе что есть суперпрофессионал, код которого нам удалось посмотреть. Чему мы можем научиться у него? И какие выводы мы сможем сделать?
    image
    Итак — искусственные иммунные системы.


    Реальная иммунная система — крайне сложная и до конца непонятая вещь, состоящая из клеток с долговременной памятью, чей вес сопоставим с весом человеческого мозга.
    Описывать всю иммунную систему — дело затратное, и подробная статья больше подошла бы для портала страдающих бессонницей, чем для Хабра. Поэтому я очень поверхностно пробегусь по ключевым точкам, пропустив многие не столь критичные с точки зрения воспроизведения in silico (хотя и очень важные in vivo).

    Сама иммунная система (далее ИС) обычно разделяется на две части — врожденная и адаптивная. Однако природа — плохой системный архитектор, и уровни абстракции не любит. Зато любит использовать унаследованные решения. Человеческая ИС — это конгломерат древних алгоритмов и более новых разработок и не всегда их легко разделить.
    Поэтому попробуем сначала перечислить объекты и процессы.

    1. Лимфоциты. Клетки составляющие основу иммунной системы, абстрактный базовый класс для специальных версий клеток (B-клеток и T-клеток). Некоторые типы лимфоцитов несут на своей поверхности молекулярный детектор (Major histocompatibility complex, MHC), отвечающий за связывание с молекулой белка (ближайшая аналогия – пара ключ и замок). Этот детектор может быть уникален в пределах системы. Многие типы лимфоцитов могут менять свой тип в ходе созревания, имеют состояния, которые переключаются под воздействием различных активаторов.
    1.1. T-лимфоциты. Клетки, насчитывающие много подвидов и специализаций. От данного базового класса наследуются различные типы, которые могут менять свою специализацию.
    1.1.1 T-киллеры (Tk), клетки киллеры. Штатные палачи на службе тотального контроля, зачищающие территорию от своих. Они уничтожают раковые клетки, поврежденные клетки, или клетки инфицированные вирусом.
    1.1.2 T-хелперы (Th). Клетки, осуществляющие активацию других клеток и переносящие информацию.
    1.2. B-cells. Клетки, отвечающие за адаптивную реакцию организма. B-cells за время жизни могут менять свой геном и отращивать себе разные детекторы на разных стадиях развития.
    1.2.1 Плазматические B-клетки. Основной поставщик антител.
    1.2.2 Клетки долговременной памяти, несут информацию о механизме производства антител.
    2. Антиген-презентующие клетки (APC). Группа клеток, к которым относятся макрофаги и дендритные клетки (DC). Их назначение – «показать» другим клеткам иммунной системы фрагменты белка, дайджесты, образовавшиеся из клеточных белков путем расщепления их на фрагменты. Фрагмент привязывается к MHC и выставляется на клеточной мембране. Фактически это имитация «замка» для подбора ключа.
    2.1. DC, дендритные клетки. Именно с ними связана в первую очередь концепция “теории опасности”. Большую часть жизни они неактивны, однако в случае проблем активизируются и начинают работать.
    3. Антиген (Ag). Та часть внешней угрозы, которая детектируется иммунной системой. Обычно это белки или токсины.
    4. Антитело. Белки специальной Y-образной формы со способностью связывания с антигеном, они же иммуноглобулины. Включают в себя молекулярные “шарниры”, позволяющие удерживать различные дайджесты. Токсины блокируются связыванием с антигеном напрямую. Если же поражена клетка — то антитело связывается с комплексами на поверхности клетки и метит ее для последующего уничтожения.

    Когда мы говорим о метафоре “ключ-замок,” то надо понимать что это только метафора.
    Ключ либо подходит к замку, либо не подходит – это бинарный атрибут. У молекулярного детектора значение “подходит-не подходит” — вещественное и называется сродством (affinity). Это очень важный момент и он используется для подстройки сродства на лету.

    Определенная часть ИС (в первую очередь врожденная подсистема) в принципе соответствует традиционной схеме детектор-реакция, которая применяется и в современных антивирусах. Но не вся. В реальной ИС есть кое-что не существующее в наших системах защиты, процессы делающие атаку нулевого дня очень маловероятной.

    Впрочем к этому мы еще вернемся, а пока перейдем к описанию процессов (очень сокращенному).

    1. Апоптоз — это контролируемая гибель клеток, обычный геноцид в отдельно взятом организме с согласия центральной власти и широкой общественности. Иногда по каким-то причинам клетку собственного организма надо уничтожить. Плановый вывод использованного материала из употребления. Сборщик мусора, он же биореактор. При этом целостность мембраны сохраняется до конца.
    2. Некроз — это внеплановое разрушение, например внешней атакой. При этом проницаемость мембраны падает, из клетки происходит выброс и организм в состоянии зафиксировать массовую гибель. Эта смерть, вызванная внешними причинами, и является сигналом для старта. После этого сигнала мобилизуются силы организма, повышается температура (с повышением скорости необходимых химических реакций), ускоряется кровоток, включаются механизмы клеточного обучения, чтобы атака была встречена во всеоружии.

    В разнице этих двух процессов лежит сущность того, что называется Danger Theory.
    Это относительно новая теория, ее рождение относят к 1994 году и связывают с именем легендарной Полли Метцингер. Принципиальная граница между понятиями лежит в том, что организм (в отличие от традиционного антивируса) реагирует не на внешние сигналы, а на комбинации внутреннего состояния и внешних реакций. Или, говоря другими словами, система является существенно рефлексивной. Она может не знать, что кто-то ее атакует. Но она знает когда ей плохо.

    Это очень критичная граница.
    Фактически мы переходим от простого классификатора “свой-чужой” к сложному детектору аномалий, определяющему момент, когда система начинает терять целостность и необходимо что-то предпринимать. И данный детектор аномалий имеет великолепную поддержку дрейфа концепции (concept drift).

    Впрочем, реакция на внешние паттерны в реальной иммунной системе тоже есть.
    Костный мозг непрерывно создает B- и T-клетки, многие с рандомизированной частью генома, отвечающей за детекцию. Затем сенсорная часть проверяется на реакцию с антигенами своего организма и любая клетка детектирующая хоть что-то, из себя любимого, немедленно уничтожается. Так обеспечивается жесткий zero false positive критерий. И заодно создается огромный массив сенсоров со случайной ответной частью, обеспечивающий максимальное покрытие возможных атак, но без покрытия самого организма. Этот этап называется негативной селекцией.
    Фактически это первая ступень того, что в компьютерном мире называется детектором аномалий (novelty detector).
    Последняя точка — это то, что называется affine maturation. Это скоростное изменение генома, соматическая гипермутация. При активации в случае опасности клетка начинает случайно модифицировать геном, подстраивая тем самым детектор, меняя при этом генерализацию, расширяя или сужая пространство захвата, получая возможность более точно ловить конкретный вариант атаки.

    А теперь представим себе весь массив сенсоров, разбросанных по организму себя любимого. Все эти миллионы клеток, вес которых сопоставим с весом мозга.
    И каждая из которых имеет уникальный детектор.
    Лично меня впечатляют масштабы и возможности подобной системы.
    Ни один современный суперкомпьютер несравним с вычислительной мощностью иммунной системы среднего гопника, жующего семки, не говоря уже о мобильном кластере таких гопников.
    Впрочем, не будем забывать о том, что PM данного проекта (да не пропадут его бэкапы) имел неограниченное финансирование и неопределенные сроки, т.е. то, о чем мы можем только мечтать. Не исключено, что с таким бюджетом мы бы сделали лучше.

    По логике повествования я должен был бы дальше описать эквивалент иммунной системы in silico. Однако это занятие более неблагодарное, чем перечислять все варианты генетических алгоритмов.
    Дам только названия основных методов, созданных на основе анализа иммунных сетей и показавшихся интересными лично мне. Желающие могут найти описание в соответствующих журналах или просто нагуглить много текста в формате pdf.

    DCA – dendritic cell algorithm.
    AIRS – artificial immune recognition system
    FIN – formal immune networks
    CLONALG – clonal selection algorithm
    aiNet – artificial immune network для кластеризации и фильтрации
    libtissue – библиотека для экспериментов в области иммунных систем

    Для профессионалов могу также указать сайт www.dangertheory.com.
    Практиков возможно заинтересует сайт www.artificial-immune-systems.org/algorithms.shtml
    Ряд алгоритмов портирован в Weka и с ними можно поиграться в личной песочнице.

    Перейдем теперь к более близкой автору теме – обсуждению практической реализации в коде. Я имею в ввиду не реализацию алгоритмов, надерганных из кусков препарированной живой системы. Нас интересует целостное понимание.

    Ревью кода Главного Программиста, случайно попавшего нам в руки может быть более полезным чем чтение книг практиков С++. Паттерны проектирования Природы сильно отличаются от наших политкорректых ограничений и правил “хорошего” кода. Поэтому в этой статье я делаю акцент именно на общих идеях, а не на конкретных алгоритмах – их слишком много и, следовательно, ни один из них не является полностью рабочим.

    Изучение иммунных систем межпрофильными коллективами с участием биологов, математиков и программистов было очень полезным этапом, распределившим немалое количество грантов среди заинтересованных лиц. Open-source библиотеки, алгоритмы DCA, красивый термин Immunocomputing и новый взгляд на проблемы информационной безопасности — это тоже достижения и достижения немалые.
    Но что мы хотим получить в конечном результате?
    Чему мы можем научиться у Главного Системного Архитектора?
    Непосредственно воспроизводить решения природы в железе глупо — иначе на наших автомобилях вместо колес стояли бы металлические ноги. Нейронные сети имеют не так много общего с биологическими нейронами, генетические алгоритмы не являются абсолютной копией реальных процессов воспроизведения двойной спирали.

    Ниже я выскажу скромное мнение инженера, не так уж сильно разбирающегося в иммунологии.

    1. Мы привыкли классифицировать процессы по своим примитивам, субъективным и строго человеческим. Поэтому все вышеперечисленные алгоритмы реализуют лишь часть того, что мы сумели понять в живой природе. Должна ли будущая AIS иметь в составе детектор аномалий, кластеризатор, обучение с учителем или без него?
    Реальная иммунная система не имеет таких компонент в ярко выраженном виде. В отличие от нас, Бог не играет в Лего. Настоящее назначение иммунной системы – даже не разграничение «Я-неЯ», как считалось ранее. Поддержание собственной целостности — это то, чему нет броского названия в буклетах IT-маркетологов. Поэтому когда мы говорим, что AIS включает в себя какой-то компонент – это не совсем правильно. AIS не похожа на классификатор, детектор аномалий или data fusion, хотя имеет соответствующий функционал. Это отдельный термин, при разложении которого на компоненты что-то теряется.
    2. Система безопасности не является надстройкой над объектом защиты. Она является частью этого объекта. Она защищает не от атак — мы все живем в постоянной обороне от внешнего мира. Она поддерживает жизнеспособность и целостность объекта в недружелюбной среде. Поэтому глубокая рефлексивность защищаемой системы заложена в нее изначально, ее нельзя прикрепить снаружи отдельным уровнем.
    3. Как следствие глубокой рефлексивности, внутренние сенсоры должны быть случайной выборкой из максимально возможного списка состояний компонент и их комбинаций. Тогда защита может отслеживать собственное состояние достаточно полно. В пределе система должна иметь доступ ко всем собственным данным, включая свой код на произвольном уровне детализации. В современных коммерческих системах это выглядит малореальным, если вспомнить все политкорректные правила «хорошего» кодирования и закрытость кода компонент. Машину Геделя сложно создать, придерживаясь стиля и общепринятых практик программирования или рекомендаций экспертов.
    4. Система безопасности является индивидуальной по отношению к объекту защиты. Компьютер секретарши в банке может быть защищен от игры в пасьянс. Сендбокс в антивирусной лаборатории должен быть открыт к заражению трояном. В каждом случае понятия “норма” и “опасность” — разные. Бухгалтерский сервер и рендер-ферма слишком отличающиеся вещи и строить их оборону с помощью однократного списка фильтров, паттернов и акцесс-листов бессмысленно.
    Для кого-то прочитать политический пост за нелюбимого президента — попытка вторжения. И, следовательно, его киндл должен быть защищен от таких текстов. Понятие “опасность” расширяется в “нежелательное поведение”. Спам-фильтры, порнофильтры, фильтры мнений — это другие рынки, но AIS может быть использована в каждом, создавая в пределе Лемовскую Этикосферу в информационном пространстве.
    5. Многоуровневая система защиты — и это не то, про что пишут маркетологи антивирусных компаний. Это конгломерат подсистем, в котором не только каждая компонента имеет свою иммунную систему, но и сам конгломерат защищается с помощью своих правил, независимых от защиты компонентов. Теоретически можно создать защиту корпоративной сети вместе с индивидуальной защитой каждого компьютера – угрозы для компьютера и родительской сети отличаются. И в теории можно создать защиту всего интернета – система масштабируется очень легко.
    6. Защита должна быть адаптивной. Это не означает необходимость ее тренировки каждый раз при новой инсталляции. Но она должна эволюционировать с появлением новых угроз не дожидаясь апдейтов модного антивируса.
    7. Реальная иммунная система – вещь с большим количеством объектов, но малым количеством типов отношений, такой низкий уровень связности малодоступен современным архитекторам. Не существует единого центра координации, хотя дендритные клетки и сама среда выполняют часть работы по взаимодействию. Это чистая распределенная система, максимально использующая распределенность и параллелизм.
    8. Самый главный и последний пункт. Не существует бизнес-модели для массового применения подобных систем, как не существовало бизнес-модели пиринговых сетей до Напстера и индустрии CDS. Это было подтверждено людьми из нескольких антивирусных компаний, с которыми я общался. Впрочем, это было ясно с самого начала, антивирусный рынок слишком велик и капитализирован для резких движений и революционных изменений.

    И, в заключение, несколько мыслей по возможной реализации прототипа.

    Детекторы аномалий — ключевая точка. Их существует много, от one-class классификаторов, до вероятностных моделей. Однако это очень грубый уровень, дающий множество FP в реальных ситуациях. Для исследовательских прототипов можно было бы попробовать инкрементальные деревья решений, например асимметричные random forests из one-class very fast decision tree.
    В идеале это должна быть генетика, если забыть ее жадность к ресурсам и слабую генерализацию.

    Сенсоры — случайная комбинация состояний системы с хорошей селективностью. Возможно получать их с помощью генетики (что несколько затратно), либо простым Монте-Карло. В любом случае конструирование сенсора должно производиться полностью автоматически, без участия человека – их должно быть слишком много.
    Одним из примеров реализации является DASTON — набор программных сенсоров с минимальным интеллектом в хипе исполняемой программы.

    Дрейф концепта (concept drift). Компьютер могут передать от бухов девам или геймерам. И “нормальное” состояние сразу станет “ненормальным”. Система должна иметь возможность забыть неважное для нового окружения. Но помнить общее для обеих моделей поведения. Т.е. должен быть характерный период переинициализации или переобучения. Сама техника affine maturation позволяет это сделать, однако ограничения этой техники пока не ясны.

    Система должна уметь отделять общее от частного, обмен правилами и компонентами детекторов между компьютерами возможен, но как вариант коэволюции, без возможности компроментации со стороны соседней машины. Что даже в случае коэволюции достаточно сложно гарантировать.

    Реальная иммунная система часто рассматривается как детектор аномалий. Как я уже упоминал ранее это в корне неверно. Организм знает, что он болен. Как компьютер или сеть могут получить сигнал о том, что что-то не так?
    Это очень непростой вопрос. Не существует формальных признаков «больной» системы. Троян отличается от браузера только авторством – оба допускают удаленное управление и закачку апдейтов без согласия пользователя, оба коллекционируют пароли и могут сохранять их удаленно. Что есть здоровый компьютер и что есть больной? Живой организм способен отличить инфекцию от случайного изменения своего состояния наблюдая уровень некроза. Что может наблюдать компьютер? Реакцию пользователя? Счетчик битых файлов? Изменение Колмогоровской сложности системы?
    Как только мы ослабляем требования и от «некроза» переходим к абстракции – мы теряем определенную часть логики работы AIS.

    Понять, что произошла аномалия — просто. Как автоматически, без участия человека, принять решение на тему — что делать дальше?
    Блокировать сетевой адрес являющийся источником аномалий несложно. Большинство коммерческих применений алгоритмов AIS занимаются как раз анализом сетевого трафика. Хотя не факт, что это не корпоративный бухгалтерский сервер на который попал троян. И даже если это так — надо ли из-за этого останавливать начисление зарплаты тысяче злых рабочих, которые имеют свой взгляд на процесс, бухгалтерию и программистов.
    Блокировать поток исполнения на компьютере тоже несложно. Ну а если это подмененный драйвер файловой системы? Тогда такое действие равносильно выключению компьютера и это, безусловно, высшая мера информационной защиты, только вот полезна ли она?
    По условию задачи система должна стабилизировать свое функционирование. И минимизировать ущерб от атак. Выключение компьютера или остановка сервера для чистки или восстановления его из бэкапа — уже ущерб, DoS в чистом виде.
    И вот это — та часть иммунной системы, которую пока никому не удалось воспроизвести.
    Возможно самая главная.
    Универсального решения мне, увы, не попадалось, пока все что можно сделать – онлайновый откат на точку восстановления.

    И да, теперь со всем этим барахлом на борту надо еще и взлететь. Система не должна тратить 146% своих ресурсов на собственную защиту. Добавочную нагрузку хотелось бы держать в рамках логарифма от общей сложности системы. Уже на этом этапе использование генетики или SVM начинает быть проблематичным.

    И напоследок три ложки дегтя в бочку с вареньем.
    Использование внутреннего состояния в качестве источника для обучения — штука мощная, но крайне опасная.
    При резком изменении количества данных могут (и должны) возникать циклы обратной связи, которые бывают, как известно отрицательные (т.е. очень полезные для нас), так и положительные (с очень неприятным эффектом).
    Последний вариант приводит к перетренировке и самоподтверждению — система тратит ресурсы на обучение себя любимой своим же собственным изменениям.
    Такое вот форсированное самопознание, ведущее к аутизму, мало кому понравится когда бухгалтерский сервер уйдет в компьютерный дзен.
    Второй минус иммунных систем — это их несовершенство, заметное любому аллергику. Автоиммунные болячки множатся с каждым годом. И вирус СПИД, который цепляется к helper T-cells, блокируя всю иммунную систему сразу, в компьютере тоже возможен. Более того, процессы старения в организме во многом связаны с разрегулировкой иммунной системы – например артрит.
    Третий минус субъективен. У меня есть глубокая убежденность в том, что серебряные пули либо плохо попадают в цель, либо дорого стоят. За все надо платить свою цену, и в случае AIS эта цена пока не определена.
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 23

      +9
      Почему-то так и представляется модуль, начинающий рандомно удалять все новые исполняемые файлы на компьютере, когда уменьшается объем коммитов в день.
        +3
        Проблема живых организмов в их очень узкой приспособленности. Мы можем жить в узком диапазоне условий и решать ограниченное число задач.
        Эти ограничения присущи всем нашим компонентам, не исключая иммунную систему. Её задача — каждодневная борьба с атаками. А теперь мы живём в практически стерильных условиях, что приводит к, упомянутым Вами, аутоиммунным процессам.
        Я думаю никому не нужен антивирус, который начнёт стирать данные пользователя.

        Про
        доступ ко всем собственным данным
        Вы немного заблуждаетесь. У нас есть свои «песочницы», например, гемато-энцефалический барьер (кстати, по моему мнению, это очередной костыль созданные эволюцией, чтобы защитить наши бренные тела от нас самих и такой «совершенной» иммунной системы).
          +4
          Ну, сенная лихорадка известна с времен, когда детская смертность еще была главным демографическим фактором.
          Т.е. аутоиммунные нарушения — вещь все же старая, доспидовая.

          Гемато-энцефалический барьер имхо больше «фаерволл» (причем в докомпьютерной терминологии), чем «песочница».
          Но разграничения доступа в организме безусловно существуют, хотя и связь «каждый с каждым» в пределах подсистемы тоже наличествует.

          В любом случае, уровень рефлексивности живого организма не сравним с компьютерными системами, возможно это и есть одно из ключевых отличий жизни. Ну или наших представлений о ней.

          На этот момент я и обращал внимание.
            +1
            Рефлексия одна из функций сознания. Вполне возможно, что задача воспроизведения в AIS имунной системы человека эквивалентна по сложности созданию сильного искусственного интеллекта.
            0
            Только недавно статья была про геном человека и наличие в нем цепочек вирусных днк/рнк, что вроде как пока что еще не подтвержденным данным вызывает развитие раковых опухолей. Вполне возможно что аутоиммунные заболевания из той же серии.
          +2
          Афигеть. Это невероятно интересно. Сам сижу пишу обзор иммунных систем, не думал что в рунете /печатных изданиях встречу что-то реально интересное.
            +1
            4. Антитело. Белки специальной Y-образной формы со способностью связывания с антителом, они же иммуноглобулины

            Наверное, с антигеном? Несколько раз перечитал — смысл едва понял.
              0
              fixed, спасибо
              +1
              Прочитал вашу статью как захватывающий боевик. Спасибо.
                0
                >кто-то читает теги — но зачем
                улыбнуло
                  –1
                  Про эволюционные процессы говорить нужно, это так. Но следует помнить о том, что все что творится на компьютере делается под нужды пользователя, а следовательно эволюционные процессы подразумевают что пользователь что-то сделает миллион раз, и за это время компьютер может проэволюционировать свое поведение. Но это идиллия, т.к. пользователь нетерпелив — не будем забывать, что большинство программ пишутся для сиюминутной наживы (написать, продать, получить денежку). Никто не пишет софт с заделом лет 20 вперед, т.к. через 20 лет тоже захочется кушать, сответственно можно позаниматься поддержкой и выпустить версию 7.0.

                  Если говорить про кодогенерацию и анализ кода (эти темы мне ближе чем антивирусы), то тут мы бы могли учиться на примерах кода пользователя и подсказывать «в контексте», т.е. вместо того чтобы предлагать шаблонные рефакторинги, смотреть на то как пользователи по всему миру на самом деле рефакторят код, учиться этому и потом повторять такие возможности. К сожалению, написать алгоритм который обобщает поведение программиста и формализует его — задача нетривиальная, да и ресурсов наверняка требует много.
                    0
                    «написать алгоритм который обобщает поведение программиста и формализует его»
                    тсс… мы не хотим потерять работу
                    0
                    Можно объяснить, почему Linux и Mac более защищены от вирусов?
                    Я так понимаю, так как мембраны между клетками очень хорошие (все программы работают в своей песочнице) и для доступа в общий кровоток, пользователь должен подтвердить это своим паролем?
                      +1
                      Я бы на самом деле не стал сравнивать безопасность ОС и кода с иммунной системой, тк здесь играет роль социальная составляющая. Если какой-либо ОС пользуются большей частью гики и профи, не важно — из-за высокого входного порога или по еще каким-то причинам, то из-за просто разумного использования такая ОС будет выглядеть безопаснее.
                      Если все же проводить аналогии с иммунной системой и например linux, то все проще гораздо — представьте, что вы создали новый искусственный организм, быть может он несовершенен, но имеющиеся паразиты, взять хотя бы вирусы — они в принципе не могут встроиться в новую, «неизвестную» им клетку. Но при росте популяции паразиты вполне могут появиться.
                      0
                      Автор, вы мой кумир. Описать сложные биологические процессы на привычном и понятном для меня языке и знакомыми словами — я потрясён. Спасибо.
                        +1
                        Я давно подозревал, что браузер мой — враг мой. (Точнее, даже не только и не столько конкретный браузер, сколько прижившиеся стандарты веба.) В рамках иммунологической концепции вижу хорошее тому объяснение:
                        Троян отличается от браузера только авторством – оба допускают удаленное управление и закачку апдейтов без согласия пользователя, оба коллекционируют пароли и могут сохранять их удаленно.
                          +1
                          А вот мне интересен алгоритм работы объектов и процессов ИС на конкретном примере.
                          Например — организм подцепил грипп (абстрактно). Как система запускается, что происходит далее?
                          Можно в упрощенной форме, но по перечню перечисленных вами объектов и процессов.
                            +1
                            Распишу обязательно.
                            Просто у меня через два часа поезд, в котором вайфай (к сожалению) не предусмотрен. Потому где-то на выходных, не раньше.

                            Отвечу в этой ветке или же сделаю апдейт к статье.

                            Но там самое интересное — при повторной инфекции.
                            Поэтому грипп может быть не самым удачным примером.

                              0
                              Спасибо, очень буду ждать.

                              Можете вместо гриппа заразить подопытного тем, что вам кажется более интересным и наглядным. Так даже лучше.
                              Плюс, если ответ окажется объемным (а я думаю, так и будет), то можно оформить отдельной статьей.
                                0
                                Боюсь, ответ уже получается сильно объемным, а полную статью я буду очень уж долго писать, даже если забыть о предновогодних дедлайнах…
                                :-(

                                Я пока кину просто несколько роликов, где в картинках расписан процесс.
                                Но самого интересного с точки зрения программиста — клеток памяти например или соматической гипермутации, там не показано.

                                www.youtube.com/watch?v=Rpj0emEGShQ
                                (грипп, да)

                                www.youtube.com/user/kandrew5v5
                                достаточно интересный канал, почти комиксы на тему ИС.

                                PS
                                Я собственно не биолог, я программист, и некоторое время работал в области нестандартных средств защиты информации.
                                Соответственно мое знание натуральных ИС достаточно специфичное и фрагментарное, биолог может объяснить получше.
                                А вот искусственные ИС я проработал довольно плотно, есть рабочие имплементации некоторых кусков, которые несут боевую вахту на живых серверах уже годами.

                                Возможно попытаюсь сделать отдельную статью по биологической ИС позже, но опыт подсказывает что-то пессимистическое — вот этот пост я обещал написать год назад.
                            0
                            А ведь кто-то наверное уже давно применяет те же подходы и методы для совершенствования атак…

                            Only users with full accounts can post comments. Log in, please.