Джоанна Рутковска, основатель компании Invisible Things Lab, стала одним из ключевых докладчиков конгресса, состоявшегося в Москве в рамках выставки Interop 2007 в конце мая. Ее компания занимается поиском уязвимостей в программных продуктах. В прошлом году она выступила с критикой механизма безопасности, который корпорация Microsoft предлагала реализовать в своей новой операционной системе Windows Vista и в результате была названа в числе пяти хакеров, оставивших наиболее заметный след в 2006 году, составленный Internet-сайтом eWeek. При этом сама Рутковска хакером себя не считает, по ее мнению было бы «крайне здорово», если бы индустрия начала более тесно сотрудничать с компаниями вроде Invisible Things Lab с целью создания безопасного и надежного программного обеспечения.
В прошлом году вы продемонстрировали некоторые уязвимости Windows Vista. Было ли в ходе работы над этим проектом какое-либо сотрудничество между вами и Microsoft?
Нет, потому что Microsoft не являлась клиентом компании, для которой я проводила это исследование.
Как вы считаете, должны ли независимые исследователи работать над обнаружением ошибок в частных продуктах?
Без независимого исследования степени защиты частного программного обеспечения мы бы никогда не узнали, насколько оно надежно. В итоге, если мы будем только слушать вендоров, то они всегда будут рассказывать, насколько великолепны и безопасны их продукты… И точно так же, как мы не можем жить в подлинно демократической стране без независимых средств массовой информации, мы не сможем обезопасить Internet без независимых исследований в области безопасности.
Как вы считаете, готова ли ИТ-отрасль сотрудничать с независимыми экспертами и хакерскими группами по проблемам информационной безопасности?
Прежде всего, мне хотелось бы установить различие между исследователями в области информационной безопасности и хакерами. Я лично определяю первых, то есть исследователей, как людей, которые пытаются взломать некую, условно говоря, «технологию» (например средства защиты новой операционной системы) ради того, чтобы доказать, что она не так безопасна, как рассказывают в рекламе, или просто из любопытства. Хакеры, напротив, заинтересованы в проникновении в конкретные компьютерные системы, например банковские или корпоративные сети, используя все средства атаки — не только технологическую слабость, но и так называемый «человеческий фактор», используя методы социальной инженерии.
Я определенно вижу преимущества для отрасли от сотрудничества с толковыми исследователями в области информационной безопасности, которые смогут провести независимую оценку продуктов до того, как они появятся на рынке. Кроме того, крупные корпорации могут привлекать исследователей, чтобы провести непредвзятую оценку технологий, которые они собираются внедрять, или с их помощью определиться с выбором защитного программного обеспечения перед покупкой. Моя компания Invisible Things Lab как раз этим и занимается.
Не существует ли в таких отношениях намека на шантаж: «Вы сотрудничаете с нами, или у вас будут проблемы»?
Такое предложение, конечно же, можно классифицировать как шантаж. Но, честно говоря, я не думаю, что это происходит слишком часто.
Какова этическая сторона публикации исследований в области информационной безопасности? Что если результаты ваших изысканий попадут в плохие руки?
Ну, а если вам зададут вопрос «Какова этическая сторона публикации критической статьи в газете, которая разоблачает коррупционный скандал в правительстве?» Публикация информации о слабых сторонах и недостатках заставляет вендоров решать проблемы, которые в противном случае они бы предпочли игнорировать.
Касательно того, что произойдет, если результаты исследования попадут в «плохие руки», я думаю, будет разумным предположить, что любая ошибка или возможное направление атаки вероятнее всего будут обнаружены более чем одним человеком или группой. Сегодня, когда у такого большого количества людей есть доступ к одной и той же информации и технологиям, маловероятно, что только один человек и больше никто найдет что-то, что еще долгие годы так и останется неизвестным.
Другими словами, я уверена, что мы всегда должны предполагать, что так называемые «плохие ребята» рано или поздно обнаружат аналогичное направление атаки, независимо от того, попытаемся ли мы наложить гриф на результаты исследования или нет.
Насколько различается подход к безопасности программных продуктов в условиях моделей открытой и частной разработки?
И в случае использования открытого кода, и в случае использования закрытого кода разработчики совершают одни и те же ошибки, поскольку они применяют одинаковые технологии: модель операционной системы, языки программирования и так далее. Мне не нравится, когда люди говорят, что нечто является безопасным только потому, что это открытый код, в то время как что-то еще небезопасно по своей природе только потому, что это коммерческий продукт.
Что вы думаете о методике Microsoft Security Development Lifecycle (SDL), которую использует корпорация для улучшения надежности своего программного обеспечения?
Кажется, что качество недавнего кода Microsoft на самом деле улучшилось, поэтому SDL возможно действительно является шагом в правильном направлении. Мы должны помнить, что образования разработчиков и тестирования программного обеспечения никогда не достаточно, и что всегда будут существовать ошибки, которые будут проникать в процесс. Поэтому так важно целиком разрабатывать операционную систему таким образом, чтобы она «выживала», даже если другие приложения или сервисы подверглись атаке. Microsoft и разработчики других операционных систем, Linux и BSD, представили множество механизмов, защищающих от взлома. Но этого все равно не достаточно, поскольку мы видим примеры успешных атак, произошедших вследствие обхода этой защиты. Я уверена, что правильный подход к созданию безопасной операционной системы должен базироваться на архитектуре микро-ядра вместе с внедрением принципа минимальных привилегий — от приложений до драйверов.
При условии, что технологии постоянно эволюционируют, возможно ли создавать абсолютно безопасное программное обеспечение?
Сегодня программное обеспечение является настолько сложным, что многие люди начинают сомневаться, можно ли его вообще сделать надежным и безопасным… Однако, если посмотреть на авиастроительную отрасль, где удалось достичь чрезвычайно высокой надежности и безопасности в таких сложных конструкциях, как большие пассажирские лайнеры, то, я думаю, есть надежда и для софтверной индустрии.