В современном «высокосвязанном» мире количество путей, по которым можно развить атаку на систему, взломав ее один-единственный компонент, — огромно. Поэтому при создании безопасной системы закономерно возникает сложность: нужно тщательно защищать и проверять все ее компоненты. Но учитывая высокий процент стороннего кода в большинстве информационных систем и их многокомпонентность, «защитить все» на практике — непосильная задача.
Решение все же есть: надо разделить все компоненты системы на три группы — в соответствии с поставленными целями безопасности.
Важная часть работы тренера в командных видах спорта — эффективно расположить игроков друг относительно друга. Так и здесь: важно расставить три категории компонентов с умом. Недоверенные размещаем на границе системы, доверенные — в самом центре, а высокодоверенные — между ними.
При такой расстановке для недоверенных компонентов достаточно только базовой защиты и проверки, ведь от них достижение целей безопасности не зависит. Требования к защите и проверке доверенных компонентов по определению высоки, но их можно смягчить, поскольку эти компоненты «прикрыты» высокодоверенными и оказываются как бы в тылу. И только сами высокодоверенные компоненты, которых обычно немного, необходимо защищать и проверять максимально тщательно.
Таким образом получаем неоднородную систему, в которой тщательно защищать и проверять нужно только малую долю компонентов. Как в принципе Парето: тратя 20% усилий, получаем 80% результата. На практике соотношение может получиться даже лучше.
Именно такой метод «трех маркеров» используется при разработке кибериммунных решений. Он помогает создать систему, которой можно доверять, из компонентов, большинству из которых доверять нельзя. Подробнее про кибериммунный подход к разработке — здесь и в следующих постах.
В современном «высокосвязанном» мире количество путей, по которым можно развить атаку на систему, взломав ее один-единственный компонент, — огромно. Поэтому при создании безопасной системы закономерно возникает сложность: нужно тщательно защищать и проверять все ее компоненты. Но учитывая высокий процент стороннего кода в большинстве информационных систем и их многокомпонентность, «защитить все» на практике — непосильная задача.
Решение все же есть: надо разделить все компоненты системы на три группы — в соответствии с поставленными целями безопасности.
Важная часть работы тренера в командных видах спорта — эффективно расположить игроков друг относительно друга. Так и здесь: важно расставить три категории компонентов с умом. Недоверенные размещаем на границе системы, доверенные — в самом центре, а высокодоверенные — между ними.
При такой расстановке для недоверенных компонентов достаточно только базовой защиты и проверки, ведь от них достижение целей безопасности не зависит. Требования к защите и проверке доверенных компонентов по определению высоки, но их можно смягчить, поскольку эти компоненты «прикрыты» высокодоверенными и оказываются как бы в тылу. И только сами высокодоверенные компоненты, которых обычно немного, необходимо защищать и проверять максимально тщательно.
Таким образом получаем неоднородную систему, в которой тщательно защищать и проверять нужно только малую долю компонентов. Как в принципе Парето: тратя 20% усилий, получаем 80% результата. На практике соотношение может получиться даже лучше.
Именно такой метод «трех маркеров» используется при разработке кибериммунных решений. Он помогает создать систему, которой можно доверять, из компонентов, большинству из которых доверять нельзя. Подробнее про кибериммунный подход к разработке — здесь и в следующих постах.