суббота, 23 марта 2013 г.

Secure Software Development моими глазами.


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

Я хочу рассказать о конференции Secure Software Development, которая проходила в Москве 05.03.2013г в выставочном центре ИнфоПространство.

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

Данная конференция посвящена всестороннему обсуждению популярной и важной темы – минимизация уязвимостей программного обеспечения при его разработке.

На ней выступали эксперты Microsoft: Glenn Pittaway, руководитель команд, отвечающих за обеспечение целостности ПО и жизненный цикл безопасной разработки, Alex Lucas — лидер группы исследователей безопасности, Андрей Бешков – руководитель программы информационной безопасности, а также многие другие не менее важные личности.

Открывал конференцию Stive Lipner.
В своем докладе он рассказал о Capability Maturity Model Integration. CMMI - набор моделей (методологий) совершенствования процессов в организациях разных размеров и видов деятельности. CMMI содержит набор рекомендаций в виде практик, реализация которых, по мнению разработчиков модели, позволяет реализовать цели, необходимые для полной реализации определённых областей деятельности.
Набор моделей CMMI включает три модели: CMMI for Development (CMMI-DEV), CMMI for Services (CMMI-SVC) и CMMI for Acquisition (CMMI-ACQ). Наиболее известной является модель CMMI for Development, ориентированная на организации, занимающиеся разработкой программного обеспечения, аппаратного обеспечения, а также комплексных систем.

Также он коснулся темы SDL (Microsoft Security Development Lifecycle), откуда она взялась и немного истории её развития.
Для меня это новый опыт, позднее я попытаюсь более подробнее с ней познакомиться, сейчас приведу пару показавшихся мне интересных ресурсов по ней.

Конференцию продолжил Glenn Pittaway, он более подробнее остановился на SDL и CMMI.



Microsoft Security Development Lifecycle (SDL) является ведущим продуктом в отрасли программного обеспечения, обеспечение безопасности процесса, созданного Microsoft. Он используется в Microsofte с 2004 года, SDL сыграла важную роль в встраивание безопасности и конфиденциальности в программном обеспечения.
SDL Optimization Model:

Обновление этой модели построена около пяти возможность областей, которые примерно соответствуют фазы в жизненном цикле разработки программного обеспечения:
• Обучение персонала
• ТЗ, архитектура и дизайн
• Разработка
• Тестирование
• Выпуск и получение отзывов
Кроме того, модель теперь определяет четыре уровня зрелости для практики и возможности в этих областях - основной, стандартизированные, передовой и динамичный.



Любое совершенствование процессов подразумевает плавный/поэтапный процесс. В CMMI эти этапы формализованы - существует 5 уровней зрелости, каждый из которых указывает на зрелость процессов организации.
5. Фокус на совершенствование процессов
Оптимизируемый
4. Процессы измеряются и контролируются
Управляемый на основе
 количественных данных
3. Процессы определены на уровне всей организации. Процессы исполняются заблаговременно
Определенный
2. Процессы определены на уровне проектов. Зачастую процессы появляются в ответ на определенные события
Управляемый
1. Процессы непредсказуемые, слабо контролируемые. Процессы появляются в ответ на определенные события
Начальный

Андрей Бешков немного рассказал о тот, что происходит за кулисами Windows Update. 
В целом это были общие слова, но думаю если заменить уязвимость на баг, то неплохо бы ее применить у нас на работе в плане тестирования :-)

Тестировщики: 
Фиксирование бага -> воспроизведение -> определение приоритета бага по заведенным параметром (таблица с описанием классификаций бага) -> поиск подобных багов, определение перечня устройств которые подвержены ему -> передача разработчикам
Разработчики:
Фикс -> Создание регрессивных тестов-> автоматическое тестирование -> ручное тестирование -> передача в отдел тестирование
Тестировщики:
Если исправлена, то закрытие, если нет, то возвращаемся в начало c места воспроизведение.

Также рассказал о программе Microsoft Security Update Validation Program (SUVP) - обеспечение разработчиков версий обновлений и тд, на тестирование совместимости.

Также озвучил интересные цифры, что благодаря SDL удалось избавиться от большого количества уязвимость в своих продуктов:
WP7 - 2 уязвимости, WP8 - 0 уязвимостей, для сравнения в iphone последней прошивке было найдено более 200. Правда стоит оговориться, что WP пока не очень популярная система и я бы сказал так - нахождение и использование уязвимостей стало намного сложнее, а выгода пока не существенная.

Риски самостоятельной разработки бизнес-приложений и способы их снижения.
Читал его представитель Appercut Security Рустэм Хайретдинов.
Данная компания занимается аудитом ПО. Про рекламировал программу ApperScan.
Говорил много дельных мыслей, о том, что как правило производители ПО задумываются о качестве кода и его уязвимостях уже после происшествий, а следует задумываться на этапе проектирования или хотя бы перед релизом.
Процесс аудита и изучение рисков очень дорогой процесс и подходит к сожалению не каждому, но есть куча средств автоматизированных которые не дают того % что авто + ручное исследование  но существенно улучшает качество продукта, к одному из этих продуктов и относится ApperScan.

Дальше был очень скучный и неинтересный доклад "Сертификация по требованиям безопасности информации: как обойти подводные камни".
Если в двух словах: готовьте документацию по проекту заранее и смотрите ГОСТы.

После обеда была очередь одно из интереснейших докладов который читал Андрей Бешков "Насколько Windows Phone безопасен?".
Очень интересный доклад - видео с конференции 2 зал с 14.30 минуту.

Второй по значимости для меня был доклад "Инструменты Visual Studio для контроля качества и безопасности кода" который читал Александр Яковлев.
В состав студии из коробки (многие доступны только в макс. версия) входит большое количество интересных вещей о которых я уже знал и нет:
Средство оценки качества кода в MS Visual Studio - оценка метрик кода, анализ покрытия кода тестами. Не плохая статья на хабре.
Средства поиска повторений кода Code Clone.
Инструменты архитектурного анализа msdn.

Вообщем много вкусного... нужно изучать.

P.S. Видео с конференции







суббота, 2 марта 2013 г.

Слова любимым for Win8


Наконец-то у меня дошли руки до создания первого своего приложения под Windows8
Это стал парирования уже известного ранее приложения «Слова любимым» с платформы Windows Phone. Цель – посмотреть активность на данной платформе, да и аккаунт там был куплен уже давно.

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

Получилось, как я считаю сносно:




Для сбора статистики я использовал гугл аналитикс. На скидку работает нормально.
Также в приложение вошла реклама adduplex, к сожалению я пока не понял, как можно перебросить рекламный трафик с WinPhone на Win8 и возможно ли вообще.

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

Все у кого есть Win8 ставьте себе приложение и лайкайте его =)
Буду премного благодарен =)

P.S. поддержка adduplex'a ответила:
Windows Phone and Windows 8 exchange networks are separate, so unfortunately you can't use credits gained on one to promote your app on the other.
Печально...