вторник, августа 18, 2009

Панбагон 2.0 или Полное торжество демократии

Я не верю в профессиональные социальные сети. И особенно утопичной мне представляется социальная сеть для тестировщиков.

Есть мнение, что в силу специфики своей профессии тестировщики мало общаются друг с другом, но зато много общаются с разработчиками, аналитиками, службой техподдержки. Это приводит к замедленному обмену информацией, что не может не сказываться отрицательно на развитии нашей отрасли. Все проекты, которые мы строим вокруг портала Software-Testing.Ru, нацелены на преодоление этой "информационной блокады".

В интервью, которое я давал порталу www.it4business.ru чуть больше полугода тому назад, я говорил, что "вебдваноль" нам не грозит, что я не собираюсь всех агитировать публиковать свои творения на сайте Software-Testing.Ru. Наоборот, я всячески приветствую появление новых блогов, сайтов, тренингов, конференций и других мест для профессионального общения тестировщиков. И некоторые позитивные результаты имеются -- за год количество блогов о тестировании выросло почти в три раза!

Однако в какой-то момент я понял, что есть много тестировщиков, которые не готовы начать вести собственный блог, потому что его регулярное пополнение требует времени и сил. Ну и конечно надо придумать, о чём писать. Поэтому я решил, что создание тематических коллективных блогов будет хорошим способом преодоления этого барьера. Во-первых -- тема задана, а во-вторых -- не обязательно писать регулярно, блог будет пополняться "с миру по нитке".

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

Примерно три месяца назад был запущен первый коллективный проект Панбагон. Для тех, кто не в курсе, расшифрую значение названия этого проекта. Пантеон -- так в Древнем Риме назывался храм, посвящённый всем богам. А наш проект посвящён не бОгам, а бАгам, поэтому он так и называется. Здесь мы выставляем на всеобщее обозрение баги, найденные случайно или специально в тех программах, которые мы использовали, или на тех веб-сайтах, которые мы посещали. Целью является не простая фиксация чужих ошибок, не желание посмеяться над нерадивыми разработчиками и тестировщиками, которые пропустили дефект. Мне бы хотелось, чтобы не просто публиковались описания багов, но и были попытки понять и описать, чем вызван этот дефект, почему он остался необнаруженным, какие приёмы, техники, инструменты тестирования могли бы помочь в его поимке, как можно профилактическими мерами добиться того, чтобы такие баги вообще не возникали.

Панбагон жил некоторое время на платформе Blogger, но её возможности оказались ограничены. Хотелось добавить в Панбагон некий элемент "игры", а также сделать его более открытым для всех. Поэтому было принято решение о переходе на standalone-платформу. Теперь он будет работать на движке LiveStreet и жить здесь: http://community.software-testing.ru/blog/panbugon/.

Что нового появляется в Панбагоне после переезда?

Во-первых, открытая регистрация -- теперь жрецом может стать каждый, все ограничения отменены, полное торжество демократии!

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

Вперед, тестировщики, смелее!!!

Вне зависимости от набранных баллов рейтинга всем, кто опубликует заметку в первую неделю, рейтинг будет увеличен на 20 баллов, во вторую неделю на 15, третью на 10 и четвертую на 5 баллов.

Регистрируйтесь, пишите заметки, комментируйте, общайтесь!

вторник, августа 11, 2009

Инструменты статического анализа кода для поиска уязвимостей

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

Для понятности приведу пример одного такого известного мне инструмента – Pixy, я уже неоднократно упоминал про него на своих семинарах и собираюсь достаточно подробно рассказать и продемонстрировать его в работе на семинаре “Работа с программным кодом для тестировщиков”, который состоится через полторы недели.

Вкратце, суть работы таких инструментов в том, что инструмент сканирует исходный код и пытается строить графы потоков данных. И затем по этому графу прослеживается путь данных, которые поступают извне программы – от пользователя, из базы данных, от какого-нибудь внешнего плагина и т.п. Если такие данные без проверок и преобразований доходят до SQL-запроса – имеем уязвимость типа SQL injection. Если они добираются до вывода в HTML-код – извольте получить XSS.

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

Инструмент Pixy работает с языком PHP, и неплохо работает, но для полноты картины хочу найти аналогичные инструменты для других языков – Perl, Python, Ruby, Java, .Net или хотя бы понять, есть ли такие, сделал ли уже кто-нибудь или ниша пока открыта.

Инструменты для “обычного” статического анализа, которые анализируют только поток управления, не предлагать, я просмотрел большинство из них, они неплохо справляются с поиском низкоуровневых проблем типа неинициализированных переменных или дедлоков. А хочется найти инструменты, работающие на более высоком уровне абстракции. Именно поэтому меня интересуют именно те, которые умеют работать с потоками данных.

понедельник, августа 03, 2009

Защищенность правительственных сайтов

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

При этом я не обращал внимания на то, можно ли атаковать сервер целиком, проверял только сами сайты на наличие базовых уязвимостей – XSS, SQL-инъекции, инъекции команд. Просмотрел не все, штук сорок, то есть около половины. Из них:

  • 5 сайтов подвержены пассивному XSS,
  • 1 сайт подвержен слепой SQL-инъекции,
  • 1 сайт подвержен SQL-инъекции с возможностью внедрения UNION,
  • 3 сайта раскрывают некоторые детали внутреннего устройства, из них 2 предоставляют доступ к phpinfo, а 1 выдаёт сообщения об ошибках с отладочной информацией,
  • 1 сайт подвержен внедрению команд, это наиболее серьёзная проблема из всех, что мне встретились.

В общем, я бы не сказал, что всё плохо, несмотря на наличие отдельных проблем.

Но вот что я хотел бы узнать – имеется ли какая-то единая служба, которая отвечает за информационную защищенность всех сайтов министерств и ведомств (хотя бы за защищенность, функциональность оставим в стороне)? Или каждый отвечает сам за себя?

P.S. Да, кстати, для интересующихся – в тот же день пройдёт ещё семинар, посвящённый стандартам в области тестирования программного обеспечения.