27.7.15

Кто придумал SDLC?

Что-то заметка про мои первые труды навела на мысль, что стоит раскрыть тему про первенство SDLC. Тема эта модная, про нее все пишут и говорят, нормативка готовится. Однако сейчас мне хотелось бы обратиться к истории и вспомнить о том, кто был первым в этой области и сделал задел, которым пользуются сегодня многие. Как и в случае с многими другими технологиями, начинались соответствующие исследования в интересах военных - в американских NASA и DARPA. Очень активно им помогал Университет Калифорнии в Девисе, засветившийся во многих проектах ИБ агентства DARPA. Было это еще в самом начале 90-х. В России создавались первые подходы к оценке соответствия и писались РД Гостехкомиссии, а в США изучались подходы к повышению качества и защищенности ПО, поведение которого можно было бы предсказать во время отказа по той или иной причине.

Позже при активном участии Cigital Lab появился и первый в мире коммерческий статический сканер исходных кодов ITS4, задача которого была автоматизировать то, что раньше делалось утилитой grep. Именно ITS4 был лицензирован Fortify Software, позже купленной HP за 300 миллионов долларов. За почти двадцатилетнюю историю Cigital ее сотрудники написали около 20 книг по данной тематике, одной из самых известных из которых является "Software Security. Build Security In" Гэри МакГроу, пионер и гуру в области безопасного программирования.

"SDL" по версии МакГроу
Еще одним первопроходцем в этой области является известный институт Карнеги-Меллона, при котором был создан и первый CERT. Но помимо темы CSIRT, борьбы с внутренними угрозами, институт Карнеги-Меллона с конца 90-х - начала 2000-х годов активно занимается темой безопасного программирования. Помимо ведения собственного сайта институт вовлечен в поддержку еще одного ресурса, который схож по названию с книгой МакГроу - buildsecurityin.us-cert.gov. На этом официальном сайте Министерства национальной безопасности США хранится и распространяется огромный объем информации, включая и инструментарий, по данному вопросу.

Позже к этому процессу подключились и другие игроки, одним из самых известных из которых является Microsoft. Сегодня многие олицетворяют аббревиатуру SDL именно с Microsoft, которая после объявления Биллом Гейтсом инициативы Trustworthy Computing в 2002-м году, стала активно двигаться в этом направлении. SDL в варианте Microsoft оформился в 2004-м и с тех пор MS пытается эту инициативу двигать по всей своей продуктовой линейке.

В 2008-м году МакГроу решил проанализировать опыт Microsoft и нескольких десятков других компаний, которые занимались безопасным программированием и внедряли в свой процесс разработки отдельные инициативы по повышению защищенности ПО. Результатом работы МакГроу стал проект The Building Security In Maturity Model (BSIMM). На сегодняшний день опубликована уже пятая версия BSIMM, вобравшая опыт 67 инициатив по безопасной разработке. В текущей версии BSIMM-V описано 112 активностей, повышающих защищенности ПО, и по каждой из активностей проект BSIMM предлагает любому желающему оценивать себя и свою зрелость в области SDL.

Уровень зрелости десятка самых зрелых разработчиков ПО по BSIMM-V
Кстати, МакГроу не использует термин SDL, заменяя его на Security Touchpoints. Так сложилось, что не все компании участвуют в проекте BSIMM. В нем, как правило, нет, по понятным причинам, "железных" разработчиков (при разработке системотехники немного иные нюансы, проблемы и задачи стоят); также нет и ряда других известных софтверных компаний - Facebook, Twitter, Mozilla, Oracle и других. Поэтому оценить, кто лучше на этом поприще сложно. Тот же МакГроу считает, что среди участников BSIMM нет явных лидеров, но все достойны и делают большое дело.

Но дело DARPA и NASA продолжает жить и развиваться. Недавно Банк Америки зарегистрировал патент в этой области, заявив, что подходы МакГроу и Microsoft имеют серьезные недостатки, которые и устраняет подход Bank of America. Они же, кстати, являются автором патента по оценке защищенности Web-приложений. Вообще, достаточно интересно читать патенты в данной области. По ним можно смотреть, кто дальше всех продвинулся в этой области и кто больше всего ею занимается. Тут вам и Microsoft, и IBM, и уже упомянутая в начале статьи Cigital, и Coverity, и Veracode, и HP. Отечественных игроков рынка SDLC, к сожалению, среди авторов патентов нет.