Защита Касперского. Кто и как делает самые известные секьюрити-продукты.

Здесь может быть ваша реклама
Уверен, не мне одному всегда было интересно узнать, как создаются большие, известные во всем мире программы. Кто их делает? Как устроена команда? На чем они разрабатываются, тестируются, как поддерживаются?Сегодня мы попытаемся заглянуть «под капот» популярнейшего в наших (и не только наших) краях антивирусного продукта — Kaspersky Internet Security для всех устройств. Мы попробуем разобраться, как организована разработка, какие решения и компоненты используются, а также расскажем, как попасть в команду «Лаборатории Касперского». А поделятся с нами всеми этими секретами сразу три руководителя отделов разработки — под Windows, Mac и Android соответственно.

Руководители отделов

К нашим экспертам вопросов было много, поэтому мы разбили их на тематические блоки.

Блок 1. Принцип работы антивируса

Общий принцип работы антивируса читателям знаком, так что в этом блоке хотелось бы узнать, какие компоненты входят в состав KIS и какие технологии/принципы обеспечивают работу этих компонентов. Например, было бы интересно узнать о каких-то авторских ноу-хау, патентах в области антивирусной защиты. Если можно, с номерами патентов, чтобы посмотреть по базе Роспатента.

Комментирует Андрей Рубин:

В антивирусе для macOS (а с этого года Apple решили поменять название своей операционной системы именно на такое, чтобы оно перекликалось с iOS, watchOS и прочими tvOS) используются ровно те же компоненты и технологии защиты компьютера от зловредов, что и у «старшего брата» — антивируса для Windows. Это сканирование, постоянная защита, проверка сетевого трафика и так далее. Конечно, несмотря на то что сами компоненты защиты ровно те же самые, что у Windows, и собираются из ровно тех же исходников, у антивируса для Mac есть свои специфичные поставщики данных и событий, которые внедрены в систему и, собственно, обеспечивают компоненты защиты работой: драйверы, или, как их тут называют, «кексты» (сокращение от KErnel EXTension) для файлового и сетевого перехвата, расширения браузеров для перехвата URL’ов и содержимого страниц.

Дальше все эти данные скармливаются в платформенно-независимые движки, и те уже выдают вердикт — казнить или помиловать. Пару лет назад в Kaspersky Internet Security для Mac мы добавили технологию защиты от сетевых атак (кстати, построенную на основе моего патента), а в прошлом году — технологии защиты от несанкционированного подключения к веб-камере и сбора данных на веб-сайтах, которые таким образом таргетируют пользователя рекламой.

Рис. 1. Московский офис «Лаборатории Касперского»

Рис. 1. Московский офис «Лаборатории Касперского»

Есть ли необходимость в антивирусе для macOS? Насколько часто macOS инфицируется? Ведь Mac ближе к UNIX, следовательно, если нет root-прав, то особо ничего и не сделаешь.

Да, вредоносного ПО для macOS, прямо скажем, не так много, как для Windows или Android. Хотя последние несколько лет количество вредоносного ПО для платформы macOS неуклонно росло. Так, только за 2015 год, по данным «Лаборатории Касперского», было зафиксировано почти шесть миллионов уникальных атак на Mac-девайсы. Всего же за время изучения вредоносного ПО для Mac компания обнаружила более 24 тысяч образцов разных зловредов для этой платформы, причем интенсивный рост наблюдается недавно — всего с 2014 года (рис. 2).

Рис. 2. Количество вредоносных файлов для OS X

Рис. 2. Количество вредоносных файлов для OS X

Но тут дело скорее в рыночной доле, или, другими словами, в количестве пользователей, которое у macOS сильно меньше, чем у Windows или Android. В этом смысле macOS напоминает того неуловимого Джо из анекдота, который никому особо не нужен. А что касается защиты — macOS не так уж принципиально отличается от остальных систем, будь то Windows, Android или UNIX (который еще более неуловимый Джо, чем macOS). Исключение составляет iOS, где операционка запрещает установку и запуск программ из сторонних источников. Если же этого не запрещать, то система в принципе не может быть на 100% безопасна: защита операционки будет работать ровно до тех пор, пока проблема не возникнет в прокладке между стулом и клавиатурой, то есть пользователе. А пользователя можно обмануть, «социально заинжинирить» и так далее. Тем более что пользователи Mac настолько уверены в своей неуязвимости (ибо так завещал Стив Джобс), что зачастую не соблюдают элементарных правил компьютерной гигиены, которые у пользователей Windows уже сидят в генетической памяти поколений.

Но дело даже не в пользователях. Всегда есть и будут «зеродэи» (уязвимости нулевого дня) — такие уязвимости в программном коде операционной системы или широко распространенных программ, про которые знают «плохие парни» и еще не знают «хорошие парни». А через эти уязвимости компьютер можно заразить и без участия пользователя. И Apple тут находится, по моему мнению, позади Microsoft, которая ест эти уязвимости пачками все последние двадцать лет и на самом деле уже научилась и безопасно разрабатывать, и быстро реагировать на обнаруженные уязвимости. Apple, при всем уважении, находится если не в начале, то по крайней мере в середине этого большого пути, хотя их крестовый поход против джавы и флеша, как самых дырявых компонентов на операционке, заслуживает похвалы. Но живой пример: мы обнаружили remote DoS (под названием Darwin Nuke) в одной из последних операционок, и фикс вышел только через несколько месяцев после обнаружения. А все эти месяцы любого пользователя Mac и iPhone можно было нюкнуть одним пакетом (конечно, если только у него не стоял Kaspersky Internet Security для Mac).

Аналогичный вопрос мы решили задать Виктору Яблокову, руководителю управления мобильных решений:

Нужен ли антивирус на Android-устройстве, если root-права не были получены?

Операционная система Android достаточно открыта, и для работы большинства вредоносных программ хватает стандартных привилегий, получаемых через механизм пермишенов. Безусловно, наличие root-прав позволяет зловредам получать бОльшие возможности, включая практически неограниченный контроль над устройством и пользовательскими данными, а также скрывать свое присутствие на устройстве, но подобные привилегии могут быть получены и на нерутованном устройстве без участия пользователя, например при помощи эксплоитов.

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

Что касается необходимости в антивирусе на Android: на данный момент «Лаборатории Касперского» известно более двадцати миллионов уникальных вредоносных пакетов под Android, на фоне таких масштабов необходимость в антивирусе у большинства пользователей не вызывает никаких сомнений.

Представим, что есть типичный пользователь Android-устройства. Телефон без root-прав, приложения устанавливаются только с Play Market. Какие угрозы меня поджидают и как мне может помочь ваш продукт?

Во-первых, Google Play не является гарантированно чистым источником, вредоносные программы есть и там. Во-вторых, зловреды могут попадать на устройство и в обход Google Play без ведома владельца устройства с использованием специальных уязвимостей в Android OS, например при серфинге в интернете или при подключении телефона к компьютеру.

Кроме вредоносного ПО, пользователя могут поджидать и другие угрозы — спам, фишинг, таргетированные атаки, нежелательный веб-контент, потеря или компрометация данных при краже устройства.

Kaspersky Internet Security для Android относится к классу комплексных решений для защиты пользователя и позволяет обеспечить всестороннюю безопасность пользователя и его данных.

К выбору антивируса, кстати, нужно относиться осторожно, не все продукты предлагают одинаковый уровень защиты, что показывают тесты независимых лабораторий, таких как AV-Test и AV-Comparatives.

Какие типы вирусов преобладают для macOS?

Комментирует Андрей Рубин:

Конечно же, трояны. Как я уже сказал, пользователи Mac крайне доверчивы, особенно если картинки красивые и тексты написаны без ошибок и сулят всякое.

Но есть еще один вид угроз, который важен в контексте защиты Мака. Дело в том, что поскольку компьютеры Mac — это все-таки премиальный сегмент, то часто пользователи Мака — люди не простые, или даже наоборот: большинство таких людей, скорее всего, пользователи Мака. Это бизнесмены, топ-менеджеры, знаменитости. То есть самые вероятные цели для так называемых таргетированных атак. Например, несколько лет назад целью такой атаки был далай-лама, который как раз и пользуется Маком.

Хочется прояснить некоторые детали относительно антивирусных баз.

  • Существует ли отдельная команда или отдел в компании, который занимается именно обновлением баз и следит за тем, чтобы оно было своевременным?
  • Насколько автоматизирован процесс обновления баз?
  • Каковы принципы отнесения того или иного кода к вредоносному?
  • Каковы принципы выделения сигнатур и правил для эвристики? Понятно, что это попадает под NDA, но хотя бы в общих чертах.

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

Блок 2. Процесс разработки

Переходим к не менее интересному блоку, в котором будут раскрыты тайны разработки KIS: что и на каком языке пишется, какая IDE и какие средства отладки используются, какие применяются сторонние библиотеки.

Рис. 3. Процесс разработки: вид сверху

Рис. 3. Процесс разработки: вид сверху

Какие компоненты и на чем пишутся? Используется ли один язык программирования для всех компонентов антивируса?

Андрей Рубин:

Как я уже сказал, в компании практически под все платформы используются единые компоненты защиты. А для этого все они должны быть написаны на таком языке, который позволяет собирать код под все платформы, а кроме того, максимально эффективен с точки зрения производительности, ну и желательно с достаточно высокими уровнями абстракции, чтобы можно было построить развесистую архитектуру. На наше счастье, такой язык есть, и зовут его C++. Да-да, не джава, не питон, ничего в этом роде. Только C++, только хардкор.

С другой стороны, так как мы пишем под macOS, то мы вынуждены использовать Objective-C, потому что весь пользовательский интерфейс под macOS (и iOS) пишется исключительно на API, который доступен только на этом языке. На наше счастье, Objective-C интероперабелен с C++ (они могут вызывать друг друга как в одну, так и в другую сторону). В результате все нутро продукта пишется на C++, а пользовательский интерфейс — на Objective-C.

К сожалению, новомодное изобретение Apple под названием Swift, при всей его красивости по сравнению с Objective-C (который, конечно, объективно страшен), не обладает таким важным качеством, как интероперабельность с C++, поэтому применение Swift ограничено. Если вспомнить шаблон проектирования под названием Model — View — Controller, то Свифту уготована участь быть языком контроллеров, а модель продолжат писать на Objective-C, чтобы по-прежнему можно было вызывать плюсовые «кишки» продукта.

Виктор Яблоков:

Практически все мобильные платформы позволяют писать код на С++. Использование нативных компонентов позволяет создавать кросс-платформенный переиспользуемый код, он более быстр и эффективен по сравнению с интерпретируемым Java-кодом, поэтому большая часть базовых технологий у нас написана на C++. На Java пишется часть бизнес-логики, UI и взаимодействие с операционной системой.

Что касается среды разработки — мы стараемся без лишней необходимости не ограничивать разработчиков в выборе средств, а среда разработки — это дело привычки и вкуса. Тем не менее большинство разработчиков пишут код в Android Studio, некоторые — в Eclipse, iOS-разработчики используют Xcode.

Тимур Амирханов:

Компонентов защиты, да и не только защиты, в продукте много. Основной язык разработки — С++, но им дело не ограничивается. Используются и другие языки: C#, Pascal, JavaScript, Nemerle.

Какая используется среда разработки (IDE)?

Андрей Рубин:

Мы используем Xcode, и нет смысла для разработки для Мака брать что-то другое.

Тимур Амирханов:

Инструментов используем много, но основная среда для разработки Windows-продуктов — Microsoft Visual Studio.

Используются ли сторонние библиотеки/решения? Если да, то какие?

Андрей Рубин:

Конечно, нынче ни один уважающий себя проект не обходится без стороннего кода с одним из вариантов свободной лицензии. Зачем писать себе велосипед, когда их раздают бесплатно? Но все, кто так думает, должны помнить про бесплатный сыр и мышеловку. Проблема заключается в том, что этот сторонний код, хотя он и открытый и якобы просмотрен и перепроверен миллионами бескорыстных контрибьюторов, может содержать, содержит и будет содержать такие уязвимости, что, когда они вскрываются, у всех дыбом встают последние волосы. А так как этот код используется ну просто везде, то уязвимым становится внезапно весь мир. Так что все любители стороннего кода должны быть готовы очень и очень быстро выпускать заплатки.

Виктор Яблоков:

Современную разработку ПО сложно представить без использования сторонних библиотек, и мы тут не исключение. В ряде проектов используется Dagger 2, из других Java-библиотек могу выделить android-support-library v7, Guava, Apache Commons, из С++ — Boost, STL, OpenSSL, cURL, Breakpad. Полный список внешнего кода можно посмотреть в интерфейсе любого нашего продукта в разделе «Сторонний код». При использовании сторонних библиотек особое внимание мы уделяем их качеству: тестируем безопасность, следим за появляющимися уязвимостями, при необходимости оперативно переходим на новые версии библиотек.

Тимур Амирханов:

Конечно, используются. Много известных библиотек, у которых свободная лицензия.

Как разрабатывается интерфейс пользователя? Продукт довольно удобный и понятный, поэтому созревает вполне логичный вопрос: наверное, есть специальный отдел, который прорабатывает интерфейс пользователя до мелочей?

Андрей Рубин:

Да, есть специальный отдел дизайнеров, а в нем существуют две роли: проектировщик интерфейса, задача которого именно в продумывании структуры и наполнения интерфейса пользователя, и графический дизайнер, который «делает красиво» — подгоняет пиксели так, чтобы Джони Айв если бы вдруг увидел, то одобрил бы. Но успех пользовательского интерфейса, по моему мнению, даже не в дизайнерах, а в синергии между дизайнерами и продукт-менеджером. Ведь продукт-менеджер — это тот человек, задача которого — сделать пользователя продукта счастливым, и он спит и видит, как он еще может это сделать. И он просматривает и отбраковывает десятки вариантов до тех пор, пока не дойдет до именно того единственного, который принесет максимальное количество счастья.

Тимур Амирханов:

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

Как устроена коллективная работа над продуктом? Какая система используется для контроля версий, как организовано взаимодействие между разработчиками?

Андрей Рубин:

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

С какими сложностями столкнулись разработчики при создании Android-версии? Пришлось ли использовать какие-то хаки, например недокументированный API?

Виктор Яблоков:

Несмотря на миллионы известных вредоносных приложений, Google считает платформу достаточно защищенной и не интегрирует в ОС Android специальные API, предназначенные для реализации антивирусных продуктов. Вендоры вынуждены искать обходные пути, зачастую использовать API двойного назначения. Я бы не стал называть такой подход хаком, тем не менее он требует значительной изобретательности и смекалки, нам постоянно приходится искать все новые и новые пути реализации системных перехватчиков, что нам позволяет повышать качество защиты. Что касается документированности — исходный код платформы Android открыт, а нет лучшей документации, чем код. Безусловно, это нам помогает.

Расскажите немного о правилах, которым следуют ваши разработчики: обязательные паттерны, наименование классов и методов и так далее.

За более чем двенадцать лет существования направления мобильной разработки в «Лаборатории Касперского» мы попробовали множество различных практик и остановились на самых подходящих и наиболее зрелых, с нашей точки зрения. У нас есть корпоративный стандарт по написанию кода, который базируется на лучших мировых практиках, например Java Coding Convention под Android адаптирует лучшее из Oracle Java Code Conventions и Google Java Style Guide, учитывая при этом особенности продуктов нашей компании.

Автоматическая проверка стиля написания кода, наряду с другими практиками, интегрирована в систему Continues Integration, построенную на базе Jenkins. Сборочный конвейер остановит сборку, если обнаружит нарушение стиля или других правил статического анализатора кода, ровно так же, как тестовый конвейер выдаст ошибку, если какие-либо автоматические тесты не пройдут.

В Android-мире целый зоопарк устройств с совершенно разными версиями ОС. Есть ли отличия по функциональным возможностям или UI в зависимости от версии ОС?

Android — одна из самых динамично развивающихся платформ, на текущий момент актуальна 24-я версия API (Android 7.0). Понятно, что никто из разработчиков уже не поддерживает устаревшие версии ОС, отсутствующие у пользователей, тем не менее, согласно статистике, версии API с 14 (Android 4.0) достаточно популярны, и их необходимо поддерживать. Каждая версия API приносит с собой новые возможности, часть API становится deprecated и перестает работать. Производители устройств, в свою очередь, пытаются выделяться на фоне других, зачастую путем интеграции в платформу новых модулей, переопределения исходных или даже исключения целых подсистем.

Все это приводит к катастрофической фрагментации платформы Android. И если такие приложения, как, например, игры, абстрагируются от нижнего слоя платформы и, как правило, не используют специфических API, для секьюрити-решений ситуация обратна: они сильно зависимы от версии ОС и характеристик устройств — и функционально, и в плане реализации. Нам приходится учитывать специфику отдельных устройств и постоянно дорабатывать продукты, улучшая их работу на отдельных девайсах.

Блок 3. Оптимизация, тестирование и отладка кода

Помню, «древние» версии антивируса Касперского работали не очень быстро и система под их защитой откровенно подтормаживала. Современные версии работают очень быстро и на явно слабых системах. Недавнее исследование «Хакера» это подтвердило. Поэтому вопрос: какие технологии используются для оптимизации кода?

Андрей Рубин:

Тут дело даже не в самой по себе оптимизации кода, как можно было бы подумать, средствах компилятора или чем-то еще, а в оптимизации алгоритмов. Этим занимается специальный отдел — большие эксперты в вопросах производительности. Во-первых, они делают регулярные замеры производительности на куче сценариев, и таким образом мы сразу же мы узнаем, если вдруг наша производительность стала ухудшаться. Кроме этого, они выявляют и исследуют критические места в коде, где случаются самые затупки, думают, как это можно оптимизировать, вносят изменения, опять прогоняют свои тесты производительности, смотрят, насколько и как изменился результат, и повторяют процесс сначала.

Как происходит процесс отладки? Используются ли встроенные инструменты среды разработки или какие-то сторонние?

Андрей Рубин:

Мы используем lldb в качестве отладчика, ну либо его версию, встроенную в Xcode. Но самое сложное не это. Когда ты разрабатываешь продукт для конечного пользователя, которых в мире миллионы, то бывает, что продукт не работает у конкретного пользователя, а нужно понять почему, и отладчиком ты к нему не подцепишься. Поэтому все продукты опционально пишут подробные трассировки, а в случае падения записывают краши и дампы, а потом программист по этим артефактам должен умудриться понять, что же пошло не так. По моему мнению, это самое сложное, что бывает в разработке продукта.

Виктор Яблоков:

Мы используем стандартные инструменты разработки, предоставляемые разработчиками операционных систем, Apple и Google, в случае с Google работаем с Java-кодом, как правило, в Android Studio. Как правило — потому что мы стараемся без лишней необходимости не ограничивать наших разработчиков конкретными инструментами. Например, если сотрудник привык писать код в Eclipse, мы не будем силой переводить его на Android Studio. Eclipse, кстати, гораздо более подходит для работы с нативным кодом, чем Android Studio. Отладка обычно ведется в средах разработки, для нативного кода полезны утилиты lldb и gdb, для поиска утечек памяти используется Memory Analyzer.

Как организован процесс тестирования? Какие инструменты используются для тестирования продукта в Маке?

Андрей Рубин:

Используется тестер и компьютер Mac. Тестер нажимает на клавиши, водит мышкой и сравнивает то, что видит, с тем, что должно быть.

Но на самом деле это умирающий способ. Будущее, безусловно, за автотестами, где все то же самое делает специально обученный робот. У нас автотестируется где-то половина наших сценариев, систему автотестирования мы разработали сами и пишем ее на Питоне, который, как мне кажется, очень подходит для таких задач.

Какие инструменты используются для тестирования Android-версии?

Виктор Яблоков:

Тестирование построено по всем канонам: для каждого продукта существует стратегия тестирования, есть тест-планы, тестируемые конфигурации, создаются функциональные, регрессионный и приемочный тест-планы. Особое внимание мы уделяем автоматизации тестирования, значительная часть кода покрыта модульными тестами, автоматизируются функциональные, нагрузочные и UI-тесты, применяются практики исследовательского тестирования. Для релизов со значительными изменениями проводятся внешние бета- и пилотные тестирования. Цена ошибки для продуктов в сфере информационной безопасности значительно выше, чем, скажем, для игры, поэтому мы уделяем большое внимание мониторингу качества уже выпущенных продуктов, выявляем ошибки, краши и ANR’ы. Мы устанавливаем себе довольно амбициозные цели по времени исправления недочетов и в подавляющем большинстве случаев выдерживаем их.

Блок 4. Организационные вопросы

Как распределены роли в команде?

Андрей Рубин:

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

Как можно попасть в команду разработчиков? Какие требования к кандидату?

Андрей Рубин:

Надо хотеть программировать на Маке и под Мак, это главное. Надо хорошо знать C++ и/или Objective-C — у нас есть специализация с уклоном в сторону либо C++, либо Objective-C, но и другой язык в какой-то степени надо знать тоже.

Рис. 4. Рабочие места девелоперов

Рис. 4. Рабочие места девелоперов

Виктор Яблоков:

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

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

Тимур Амирханов:

Попасть просто — прийти к нам на собеседование. Требования разные. Зависит от позиций. Например, по разработчикам С++: хорошие знания С++, хорошее знание Windows (знаний на основе книги Рихтера нам достаточно :)).

Роли в команде тоже, в общем-то, стандартные: аналитики, дизайнеры, архитекторы, девелоперы, девлиды, тестеры, тестлиды. Думаю, что по названию этих ролей понятна их функция.

Есть ли социальный пакет, какой график работы?

Андрей Рубин:

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

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

Как обстоят дела с премиями и отпусками?

С отпусками и премиями хорошо. Без них — плохо. Если серьезно, то летом, конечно, многие в отпуске. А премии — это не сейчас, а по результатам года.

Что нужно, чтобы стать тестером «Лаборатории Касперского»? Возможна ли удаленная работа?

Удаленной работы у нас в компании нет. Тестеров мы берем либо в ручное тестирование (тут требования примерно как у среднего сисадмина), либо в автотестирование (а тут будет, по сути, программирование на питоне).

Самый провокационный вопрос: установлен ли на вашем личном компьютере антивирус, и если да, то какой?

Конечно. Kaspersky Internet Security для Mac последней версии, а также Kaspersky Password Manager, Kaspersky Safe Kids — другие наши неантивирусные продукты для Мака.

Рис. 5. Крыша мира

Рис. 5. Крыша мира

Заключение

На этом все!

Надеемся, что эта статья пролила свет на процесс создания популярнейшего защитного решения Kaspersky Internet Security и дала понять, чем живут его разработчики.

Источник — xakep.ru

5 things patriots fans need to know about jacoby brissettThe staff hopes that rookie WR Devon Wylie (Fresno) can add the much needed element of speed to the unit. Wylie is a Wes Welker replica and should thrive in the slot. To understand the game properly, players should be taught the basics. The objective in this game is to move the football down the field by passing and running. There was no wholesale jerseys china trace of stardust clinging to Peter Baker. But while the supremely athletic, sharply intelligent right back was underrated for his part in Tottenham Hotspur becoming the first club in the 20th century to lift the League and FA Cup double, the acknowledged heroes of that triumph harboured not the slightest doubt of his immense importance to their cause.. Through the partnership, Harman and its JBL brand will become the official headphone, speaker, and audio partner of the NBA, WNBA, NBA D League, and USA Basketball. This marks the NBA’s cheap oakleys first deal in the category and gives Harman its first major sports league deal. 3) The NFL already has an exemption from the antitrust laws for its television deals with CBS, NBC, and Fox. In the 1950’s, the NFL teams agreed to pool their broadcast rights together and sell them as a package to the networks. For the third time in a month, Dish Network customers are missing out on popular programming due to a dispute with a channel owner. This time it’s NBA Jerseys Cheap Fox News, one of the most popular cable channels in the United States. The Seahawks have gushed all of training camp over Christine Michael and it looks like he may end up getting a majority of the carries as the season begins. Ezekiel Elliott Cheap Football Jerseys is supposed to be the «next big thing» so time will tell if he’s worthy of the first cheap nfl jerseys round pick the Gamblers used on him. Evaluation:Having one of the top 5 picks is easy since you could make a case for any of those cheap jerseys running backs. After that, it is a bit sketchy as there is great depth at tight end and quarterback this year. Seattle was down 20 6 going into the fourth quarter and was obviously struggling on offense because of the loss of three starting offensive linemen. However, quarterback Russell Wilson led one TD drive and star cornerback Richard Sherman came up with a 58 yard interception return against Texans quarterback Matt Schaub to force overtime.. Netflix (NASDAQ:NFLX) is one of those stocks where I had a really hard time understanding oakley sunglasses outlet why it kept on going up. The more I looked at its financials, the more I got perplexed. Jackson University is one of the member schools for the Thurgood Marshall Scholarship Fund. Financial aid is available to students willing to study at Jackson University in the form of grants, scholarships and work study programs.
5 groundbreaking firsts that your history books lied aboutAs of August 8, 2009 the deal was not yet complete. However, both parties have Fake Oakleys agreed on the matter at least verbally. Once the deal is finalized, he will be signed through the 2015 season and will cement his role as the Giants premier quarterback.. How I See It Personally, I am an UGA fan. I have been my whole life. I NFL Jerseys Cheap was ten years old when UGA won the 1980 national championship. Later on, our energy level decreases when our cells eventually become unhealthy, and they do not produce hockey jerseys any more energy as much as before. This can be seen as different health disturbances, for example, different aches, sleeping problems, concentration problems. Little by little, we may get more and more serious medical conditions (allergies, asthma, cardiovascular diseases, obesity, etc). Before deciding to sew your own basketball jersey, consider how experienced you are in sewing. If you are not, then beware that the jersey you sew may take a very long time and it may not turn out the way you planned. Consider how many people you are sewing for. SummaryCheribundi cherry juice is very popular, both as a drink, and as a pain fake Oakleys reliever, sleep inducer, and an exercise relaxant, according to the experts. Some of the researchers say it helps the heart. Other brands exist, also sold by Amazon. Wholesale Jerseys In my opinion, however,while the major technical improvements to the game play itself over the past two+ decades have compounded to drastically enhance the actual gaming experience itself, the most important changes that are made to the game are made as a matter of course each cheap nfl jerseys and every time the new year’s version of the game is released. I’m speaking, of course, of how each year the game incorporates the updated NFL rosters into the game, which in my experience immediately renders the previous year’s version an inferior product. Being a long time die hard J E T S fan, no matter what my financial situation has been over the years, money was not an issue fake Oakleys as I anxiously looked forward to seeing how my team’s newest players would enhance my Madden talents.. By using angled decks and radar absorbing materials on the hull, an enemy’s radar beam is either deflected or absorbed. As a result, an 8,600 ton, 505 foot long destroyer looks no bigger on an enemy’s radar screen than a fishing boat. The angled superstructure that stealth technology dictated on the after part of Benfold resembles the screen of an old drive in movie theater.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *