Почему в информационной безопасности нет «серебряной пули»? Технический анализ
За последние два года компании по всему миру вложили в решения для информационной безопасности $156, 6 млрд. В 2015 году объем инвестиций составил $75 млрд, в 2016 году — $81,6 млрд. Для сравнения: расходная часть бюджета России на 2016 год — $236,6 млрд. Какой эффект дают столь огромные вложения? Увы, если мы посмотрим статистику инцидентов по информационной безопасности, то увидим: только в США число крупных утечек данных возросло за год на 40%, с 780 в 2015 году до 1093 в 2016 году.
А ведь интенсивность атак и их ущерб от их последствий только растут. Стоит ли напоминать про эпидемию вируса-шифровальщика файлов, которая длится с прошлой пятницы? А ведь причиной заражения стали уязвимости в программном обеспечении, а не один лишь человеческий фактор. Но уже и так сказано очень много на эту тему, так что не буду повторяться. В этой статье я бы хотел заострить внимание на очевидном вопросе: почему так происходит?
Что защищать?
Давайте зададимся простым вопросом, который может показаться наивным заглавием книжки для дошкольного возраста: «Как работает компьютер?» На самом деле в этом вопросе нет ничего простого и наивного. Более того, это один из самых тяжелых вопросов, которые я заданию на собеседованиях. Вот мы нажали кнопку на клавиатуре, а что происходит дальше — до того момента, как символ соответствующей буквы появляется на экране? Сработал емкостной датчик кнопки, пошел сигнал на контроллер клавиатуры, но как он устроен внутри, какой код там исполняется, кто его видел в глаза? И так шаг за шагом, по каждому компоненту, какое бы вычислительное устройство мы бы ни выбрали — от фитнес-трекера на руке до мейнфрейма в дата-центре. А ведь мы даже еще не затрагивали интернет, состоящий из миллионов разнообразных вычислительных машин. Надо себе отчет — мы уже давно перестали понимать «как это все работает».
Формально в вычислительной технике принято разделять реальные вычисления на слои абстракции, каждый из которых содержит собственную логику. Реальная же картина вычислителя представляет собой передачу данных между этими слоями с последующей обработкой на каждом слое. Чем-то напоминает большой слоеный пирог «Наполеон». Так вот, смею утверждать, что достоверно никто не представляет себе как работают все эти слои. Можно получить очень детальное описание — но не на 100% полноценное. Я потратил последние 11 лет на практические аспекты информационной безопасности, открывая для себя нюансы работы каждого из описанных слоев, и до сих продолжаю делать это, детализируя свое понимание и обнаруживая все новые и новые уязвимости на основе все новых осознанных аспектов.
Когда и почему мы забыли, как работает компьютер?
Анализируя историю развития вычислительной техники, можно выделить два важных события (хотя указать их точные даты не представляется возможным).
Первое из них — это отказ от документации. Формально исполняемый код, не имеющий описания того, как он работает и что именно делает, не является программой. Но большинство современных софтверных решений — именно такие. Попробуйте найти документацию на программы, которыми вы пользуетесь каждый день — например, браузера Google Chrome? В лучшем случае у вас получится отыскать краткие инструкции по работе с этими программами, но не документацию. Потому что ее просто не существует. Нельзя даже точно определить, является ли какая-то ошибка уязвимостью или закладкой, оставленной специально. Переход к поставке программ без документации произошел вместе с бурным развитием персональных компьютеров, обусловленной, ко всему прочему, появлением графических операционных систем. Немаловажную роль в этом сыграла знаменитая компания Apple. Появился «священный грааль» под названием «интуитивно понятный интерфейс». Его наличие позволило не тратить время на документирование и создавать программы быстрее, чего требовал быстрорастущий рынок.
Второе важное событие — это закрытый код. Прежде всего, закрытость самой архитектуры вычислительных машин и процессоров в частности. Достоверно никто не представляет что происходит внутри процессора. Уверен, что и работники производителей не смогут точно сказать, по какому пути пойдет ток в схеме вентилей, так как многоуровневая система схема резервирования каждый раз может срабатывать по-новому — в зависимости от слабых случайных электромагнитных полей внутри. Но даже не залезая так глубоко внутрь вычислительных машин, надо признать, что большинство компонент и прошивок для них в современных системах полностью закрыты. Это означает, что у потребителя нет возможности не только контролировать качество исполнения, но и просто узнать о всех возможностях компонента. Для любознательных рекомендую статью про Intel ME (компонент удаленного управления, присутствующий во всех процессорах компании, выпущенных в последние годы).
От чего защищать?
Наверное, если бы я сам читал эти строки 10 лет назад, то сильно удивился бы тому, что будет написано дальше. Я бы вообще не стал открывать статью в Forbes с таким названием, как эта, если уж совсем начистоту. Но вот прошло время, и теперь общее понимание парадигмы развития информационной безопасности кажется куда более значимым, чем все новые практические навыки эксплуатации двух-трех десятков типов уязвимостей различных приложений. Дело в том, что до сих пор не существует классификатора типов уязвимостей. Все, что мы имеем и с чем работаем, — не более чем неорганизованный список случаев компрометации информационных систем со случайным набором признаков. По этим признакам и выполняется группировка и причисление следующего случая к той или иной группе или создание новой группы. Зачастую за новым «типом» уязвимости стоит маркетинг и большие деньги, вложенные в него компанией-разработчиком защиты от «нового типа угроз». Наверное, непривычно слышать такие слова от директора компании-разработчика фаервола. Но это правда.
Причиной тому одна очень тонкая вещь: информационная безопасность — пока не наука. Наукой стала только одна, пусть и значительная ее часть — криптография, которую часто ассоциируют с термином «защита информации». Что же касается уязвимостей, то они не формализованы должным образом. И пока термин «уязвимость» не определен для машины Тьюринга или какой-то другой формальной модели программы, мы не увидим ни серебряной пули, ни даже бронзовой. Открою небольшой профессиональный секрет: в каждой компании, серьезно занимающейся разработкой продуктов по информационной безопасности, такие модели существуют. У каждой из них — собственные, нередко и защищенные патентами. Но общепринятого формального описания, с которым согласились бы все и которое стали бы преподавать в университетах наравне с физикой или с computer science, — до сих пор нет. Последним значимым достижением в области формализации понятия уязвимостей и методов их обнаружения стал конкурс Cyber Grand Challange, длившийся без малого два года и завершившийся прошлым летом. Агентство перспективных оборонных исследовательских проектов в составе министерства обороны США (DARPA) поставило перед участниками задачу: разработать средство полностью автоматического обнаружения и эксплуатации уязвимостей - различных, заранее известных, типов. В результате получилось эдакое первое в мире соревнование роботов-хакеров. Большой интерес к подобным исследованиям со стороны министерства обороны США, а также сам подход к проведению конкурса и постановка задачи свидетельствуют о большом интересе военных к формализации и автоматизации процессов поиска и эксплуатации уязвимостей. А стало быть — и к той самой «серебряной пуле», о которой идет речь.
Заключение
Итак, за 11 лет практической работы в сфере информационной безопасности, то есть поиска и эксплуатации уязвимостей различных вычислительных систем, я понял следующие вещи:
- Нельзя достоверно сказать, как в точности работает информационная система. Так как почти полностью отсутствует документация на любые программы и спецификация многих компонент не разглашается. Из этого следует вывод — мы всегда защищаем не саму информационную систему, а только некоторый ее «приблизительный слепок», выполненный с той или иной точностью.
- Вся информационная безопасность, выходящая за пределы криптографии, не является научной теорией. Это пока всего лишь набор разрозненных фактов, даже не классифицированных строго, а только объединенных между собой для удобства по некоторым признакам.
Из этого следует важный факт — пока в информационной безопасности не будет наведен формальный порядок, созданы строгие математические модели и классификаторы, разработана аксиоматика и теория, ни о каких «серебряных пулях» не стоит даже и мечтать. Более того, рост числа утечек данных будет пропорционален, как и сейчас, общему росту числа данных в интернете. Каждый год мы будем видеть все большее число новых инцидентов.
Какие сценарии возможны? Позволю себе пофантазировать на тему того, как события могут развиваться дальше.
Самый вероятный, на мой взгляд, сценарий, — это продолжение текущего курса развития индустрии, когда разные компании и корпорации имеют каждый свое представление о моделировании информационных систем и уязвимостей в них — и делают на его основе продукты. Каждый из этих продуктов уникален по-своему и по-своему решает задачу.
Второй сценарий — разработка и принятие сообществом единой научной теории уязвимостей информационных систем. Формализация группой или группами ученых проблемы, предложение модели и аксиоматики на основе машин Тьюринга или других математических объектов. Фактически это может означать появление новой ветви науки вычислительной техники.
Третий сценарий — гибрид первых двух. Вполне возможно, что описание аксиоматики и модели появятся частично. Например, будут приняты подходы победителей конкурса DARPA, о которых говорилось выше. С учетом развития технологий больших данных и искусственных нейронных сетей, а также больших финансовых возможностей компаний, работающих в этой сфере, этого вполне может оказаться достаточно для того, чтобы переломить ситуацию в лучшую сторону.
И в заключение. Все, что описано выше, касается только уязвимостей самих информационных систем, но не операторов, работающих с ними. Так что если вы до сих пор не пользуетесь двухфакторной авторизацией, открываете почтовые вложения и переходите по непроверенным ссылкам, никакие средства защиты не помогут тем данным, к которым вы имеете доступ.