Об анализе качества кода системно и архитектурно

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

Она отражает все необходимые аспекты, которые надо учитывать при разработке качественного, надежного и безопасного кода. Тут и вопросы архитектуры и дизайна (включая и инструменты по моделированию атак), и требования к разработке (включая шаблоны /паттерны/ атак и уязвимостей), и требования к написанию кода, и вопросы управления проектом по созданию ПО, и вопросы приобретения стороннего ПО, проведения обучения персонала, создания бизнес-кейсов, и вопросы тестирования и анализа кода (включая столь любимые многими пентесты). Учтено все 😉

В оригинале эта картинка является интерактивной — каждый ее элемент является ссылкой на подробное и детальное описание, содержащее лучшие практики, полезные сведения или инструменты, решающие ту или иную задачу в части повышения качества ПО. Оригинал расположен на одном из лучших сайтов по данной тематике — «Build Security In«, запущенном и поддерживаемом Министерством национальной безопасности США (DHS). Там есть все — статьи, инструментарий, курсы, книги, ссылки, рекомендации и т.д. Является хорошей отправной точкой для погружения в тему повышения качества ПО с точки зрения ИБ.

Но это, разумеется, не все ресурсы, которые могут помочь в освоении описываемой темы. Еще одной классикой является сайт института Карнеги-Меллона, который одним из первых обратился к этой теме в контексте ИБ (аккурат в 1988-м году после эпидемии червя Морриса). Сегодня этот сайт содержит немалое количество полезных ресурсов по теме — подкасты, видео, тренинги, книги и т.д.

Еще одним ресурсом послужит Software Assurance Marketplace (SWAMP) — ресурс, помогающий разработчикам open source понять как правильно разрабатывать и, самое важное, тестировать свои приложения; особенно критические. SWAMP является хорошим примером государственно-частного партнерства, которого так не хватает в России. Может быть Digital Security, которая так часто заявляет о своей лидирующей и пионерской роли в части анализа качества ПО, перестать флеймить и возглавит такую публичную инициативу, создав схожий ресурс (но на русском языке)? Это поможет всем, а заодно и покажет, что Digital Security может не только болтать, пытаясь ужаться в 140 символов твита, но и реально что-то делает на благо России, о которой так пафосно говорит ее генеральный директор? Больших усилий по созданию первой версии такого ресурса (как аггрегатора ссылок и «советов бывалых») там не потребуется.

Наконец, последним интересным ресурсом по теме анализа качества ПО является специализированный портал МинОбороны США — Cyber Security and Information Systems Information Analysis Center. Сразу предупрежу, что на нем не так много открытой информации — много чего доступно только для представителей государственных и военных структур США. Но и того, что выложено в открытый доступ достаточно для понимания тех усилий, которые МинОбороны США прикладывают для решения поставленной задачи. Особенно мне нравится их картинка, отражающая структуру нормативных актов, связанных с ИБ и качеством ПО.

Всего 4 ресурса! Но какая кладезь полезной информации скрыта на них…

Оцените статью
Бизнес без опасности
Есть что добавить? Добавьте!

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

  1. Rebz

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

    Ответить
  2. ilya

    В целом, ты прав — такой русскоязычный ресурс (проект) нужен. Как и работа по продвижению и популяризации этой крайне важной темы. Спасибо.

    Теперь, в частности, пара небольших комментов.

    Ты знаешь, что мы очень давно (года с 06) специализируемся на безопасности бизнес приложений (начали с Oracle, потом SAP, потом и сейчас все остальное) и честно стараемся развивать эту область как можем. Кроме своих исследований, сотен найденных уязвимостей, выступлений, новостей, статей, публикаций и даже одной книги (Oracle глазами аудитора) коих было множество за последние более чем 6 лет (хотя это может и не считается, так как это "личное"), мы также реализовали и возглавили две относительно "общественные" инициативы в этой области:

    — ZeroNights, где тема безопасности бизнес приложений является основной, начиная с первой конфереции 2011 года. На третьей ZN в 2013 году она также будет основной

    — OWASP Enterprise Application Security Project (https://www.owasp.org/index.php/OWASP_Enterprise_Application_Security_Project) — международный проект по безопасности бизнес приложений плюс англоязычный ресурс аналогичный тем, о которых ты пишешь, который мы возглавляем и развиваем по мере сил последние года 3 (точно не помню). Просто сильно об этом не кричим, да и, как и всегда, сделать там хотелось бы гораздо больше.

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

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

    Ответить
  3. Алексей Лукацкий

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

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

    Ответить
  4. ilya

    Видимо под понятием "делать" мы понимаем все-таки несколько разные вещи.
    С моей скромной точки зрения "просто" написать только одну книгу на русском по этой теме — это уже много чего сделать.

    Я вроде все КОНКРЕТНО перечислил, что мы КОНКРЕТНОГО сделали по развитию и продвижению этой темы в последние годы. Нет? Чем этот конкретный перечень тебя не устраивает? Конкретно, чем? Чем это не вклад в развитие темы?

    Если весь этот перечень — это ничего конкретного, то, повторюсь, у нас с тобой совершенно разное понимание, что такое на практике безопасность бизнес приложений; что такое "делать" и "развивать"; и что такое "продвигать".

    Если ты считаешь, что "сделать" — это создать популярный инфопортал или блог на эту тему, куда надо собирать переводную инфу со всего мира то да, не сделали. Ну так это никто в мире не сделал — тема очень узкая. Да и не интересно нам компиляцией заниматься. Не наш это метод.

    Мы же считаем, что в основе всего должны лежать собственные ЗНАНИЯ и ОПЫТ, полученные на глубоких исследованиях предметной области — это наш конек, хоть это сложно и дорого. Это основа, это наша база. И на основе этой базы уже затем генерится все остальное (исследования, стандарты, статьи, книги, выступления и тд). Чем мы и занимаемся. Уж как можем. Вот это наш подход.

    А в остальном, работаем. Планы есть разные. Всему свое время 🙂

    Ответить
  5. Алексей Лукацкий

    Илья, ты видимо даже не кликал по ссылкам в посте. Это и есть порталы с множеством материалов по теме, которые и сводят все в одном месте. Зайдя на buildsecurity, можно неделями читать то, что на эту тему написано. И институт Карнеги-Меллона тоже у себя много информации свел в одном месте. Так что не стоит говорить, что этого никто не сделал.

    Что касается КОНКРЕТНОГО перечисления, то в Twitter'е тебе toxa написал, что вы это сделали ДЛЯ СЕБЯ (да и ты в последнем абзаце это подтверждаешь). Не для России, не для сегмента повышения качества ПО. Твой посыл достаточно четкий и не вызывает нареканий — "Приходите к нам и мы вам все сделаем за ваши деньги". Обычная позиция коммерческой компании. Если бы ты так и говорил, то никаких вопросов бы не было. Вон Positive Technologies не кричат, что они отрасль с колен поднимают, что они так устали на мировых конференциях одни Россию представлять, что они… и т.д. Они просто делают дело и зарабатывают на нем (хотя и у них есть ряд проектов, о которых они просто не кричат). Ты же постоянно бьешь себя пяткой в грудь, ссылаясь на свое лидерство, пионерство, патриотизм… Ну так я и предлагаю сделать что-то не для своего бизнеса, а для России. Сделаешь — честь и хвала.

    Насчет уязвмимостей. Офигенная работа. Честно. Снимаю шляпу. И? Как это помогает повысить качество ПО в России? Бифит, R-Style, ЦФТ, 1C стали лучше писать и тестить код от того, что вы нашли сотню дыр в SAP? Что-то берут меня сомнения. Я даже не буду приводить твои же высказывания из интервью bankur.ru, где ты говоришь, что забесплатно ты для российских разработчиков ДБО работать не будешь. И про дискуссию в LinkedIn'e тоже не буду напоминать, где ты говорил, что в России этот сегмент рынка убогий и развивать его шансов нет, поэтому надо смотреть на Запад. Наверное я неправильно тебя понял — ты патриот 😉

    Ваших выступлений про software assurance не слышал, к своему глубокому сожалению. Много публикаций тоже не видел. Видимо мы разные конференции посещаем и разные источники читаем. Вполне допускаю. За Сашину книгу ему респект и уважуха.

    Ну про ZN я уже высказывался в LinkedIn. Большинство презентаций касается не безопасности приложений, а их незащищенности. Там на глубоком уровне рассказывается как ломать и обходить, но не так уж и много говорится о том, как сделать так, чтобы нельзя было ломать и обходить. Т.е. о том, как выстраивать SDLC, как правильно писать безопасный код, ну и т.п. Нужен ли контент, который давался на ZN? Наверное, да. Относится ли он к развитию темы повышения качества ПО с точки зрения ИБ? Не уверен.

    Ответить
  6. Алексей Лукацкий

    Что у нас там еще из ваших конкретных действий осталось? OWASP EAS. Из пяти десятков активных и трех десятков неактивных проектов OWASP найти его нелегко. Но ничего, в разделе "Инкубатор" мы его находим. Заходим, смотрим. Раздел "Development of guides". Will be added soon. Десятка EASAD и EASFD интересна. Но где подробное описание каждой из уязвимостей? Хотелось бы видеть такое же, как и в классической десятке OWASP (https://www.owasp.org/index.php/Top10#OWASP_Top_10_for_2010). Статистика? Ее там почти нет. Enterprise Business Application Security Implementation Assessment Guide и Enterprise Business Application Security Vulnerability Testing Guide v1 еще нет. Бесплатных тулзов тоже пока нет. Вообще по многим разделам EAS — "coming soon" (хотя ты пишешь, что уже 3 года его развиваете).

    Может я не ценю ваши усилия по EAS? Ни в коем случае. Это будет достойный проект, я уверен. В нем задействованы классные специалисты, но… статус "Инкубаторский" означает, что он в самой начальной стадии. Может стрельнет, может нет (надеюсь что первое). Говорить "мы реализовали" в данном контексте как-то несолидно, чтоли (если не сказать по-другому). Я думаю, что ты просто в горячке так написал.

    Что осталось? А больше ничего ;-( Так что же вы все-таки для России сделали? На невысказанный вопрос о том, что никто в России ничего в этой области не сделал, сразу отвечу — это неправда.

    Руст про анализ кода постоянно на конференциях говорит, приводит различные примеры, описывает проблемы, кейсы и т.д. Он хочет повторить успех Инфовотч в DLP-сегменте и я верю, что он это сделает. Женя Родыгин постоянно пишет в блоге про это. Позитивщики, которых ты не любишь, ведут несколько проектов в интересах некоторых некоммерческих организаций по данной тематике (вот они про эти проекты действительно не кричат). Я вот пописываю помаленьку про эту тему. Не могу сказать, что это моя личная заслуга, но в документы ФСТЭК тема анализа качества ПО в контексте ИБ (анализ кода, пентесты, SDLC) попала не без моего участия. Ассоциация РусКрипто будет секцию в рамках "РусКрипто 2013" (http://www.ruscrypto.ru/conference/program/protection-technologies/) проводить, посвященную именно анализу кода.

    Все что-то делают, но не кричат, что они лидеры, пионеры, патриоты. Может и тебе перестать? И все само собой устаканится и уляжется. Этот сегмент будет развиваться (с вами или без вас) — все будут довольны.

    Ответить
  7. ilya

    Леша, я не кричу, а говорю спокойно.
    Про лидерство это ты сам сказал, не я, но все равно — тем более, тебе за это спасибо :).
    Что касается дел — мы делаем то что мы считаем нужным и так как считаем нужным. По мере сил, что называется — мы коммерческая компания. И мы считаем, что для рынка ИБ в РФ это тоже полезно, как и многое другое, собственно. Но мы не говорим, что мы альтруисты, хотя это не значит, что мы не болеем за индустрию.
    Почему полезно, то что мы делаем — потому что это развивает техническое сообщество. Волки, санитары леса, становятся более злые и умелые, наши разрабы и безопасники более умные — все это автоматом выводит индустрию ИБ на более высокий уровень и делает нащи системы более защищенными. "Кто предупрежден — тот вооружен" — это лозунг первой Атаки.

    А что касается вопросов про то как защищать и что ZN для хакеров, как и все что мы делаем, Леша, ну это разговоры времен 96-97 года и первой Атаки, когда мне говорили, а зачем вы рассказываете в деталях механизмы атак. А я отвечал на это — а вы хотите быть страусом? Ведь очевидно, чтобы уметь защищаться, надо знать и понимать от чего именно.

    Поэтому давай оставим этот спор. Он совершенно ни о чем.
    Просто не стоит при таких раскладах категорично в ультимативной форме да еще и предельно саркастично в который раз уже говорить, что от нашей деятельности нет никакого проку с точки зрения развития рынка ИБ. Это, мягко говоря, СПОРНОЕ утвержение, сродни "хакеры никому не нужны". Это ОЧЕНЬ спорно, если говорить предельно мягко.

    И хочешь простой пример. Я всегда был и хакером и остаюсь им так или иначе. Так вот на 100% хакерская "Атака через Интернет" от 97 и 99 годов — как ты считаешь, повлияла она тогда на развитие рынка ИБ в РФ? Оставила она свой след в целом поколении спецов того времнеи? Дала ли она что-то для развития рынка? Ну на этот вопрос можно и не отвечать, потому что тут нет предмета спора — в целом в этой дискуссии. Она, пардон, ни о чем.

    Я считаю и всегда считал, что хакеры развивают индустрию ИБ. Это мое мнение и думаю, что я тут не одинок. Ты считаешь иначе — имеешь право. Но, повторяю, не стоит говорить целой индустрии хакеров-исследователей, что они никому не нужны и не развивают рынок. Это, как минимум, не есть истина в последней инстанции, а всего лишь твое частное мнение, и, самое главное, это не очень корректно по отношению к талантливым людям. Поэтому подобное твое частное мнение, на которое ты БЕЗУСЛОВНО имеешь право, лучше выражать в более спокойной и дискуссионой форме, не столь резко и ультимативно. Это просто совет, уж извини.
    И тем более не стоит упрекать ПРАКТИКОВ в отсутствии дел, влияния на развитие и тд — это как-то странно звучит и очень режет мне слух.

    А влияют эти дела или нет на отрасль — да какая разница в конце концов?? Упрекать нас, что нет — ну нет, так и нет — отрасли виднее. К чему упреки то? Работаем всю сознательную жизнь (уже 20 лет), что-то делаем, что нам интересно и прикольно, и если это еще и полезно другим людям — да и хорошо. И делаем мы это не с целью развить что-то там мифическое и кому-то там понравиться. А потому что нам это по фану; и за этот фан нам еще и платят, потому что ценят то что мы умеем.
    А быть хакером — это фан! Уж поверь :). Я за 20 лет ни разу не пожалел.

    Ответить
  8. Алексей Лукацкий

    Я смотрю тебя задело, когда стали разбирать конкретные факты 😉 Так я тебе лишний раз поясню причину моего столь активного внимания к твоей персоне. Именно ты постоянно возмущаешься, что я про вас не пишу и не упоминаю, говоря про качество ПО в контексте ИБ. Именно ты говоришь, что вы пионеры и лидеры этого сегмента. Именно ты говоришь, что вы делаете очень много для развития этого сегмента в России. Не я — ты! И именно поэтому я постоянно с тобой дисскутирую, потому что мне лично не нравится такое восхваление себя без конкретизации фактов, доказывающих это восхваление. Вот собственно и все.

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

    Спор про ZN действительно ни о чем — я остался при своем мнении и ты меня ни сейчас ни тогда не переубедил. И именно поэтому ни CISO, ни менеджеры к вам и не пойдут — даже озвученные тобой в Твиттере 5% — это потолок, выше которого не прыгнешь. Да и не надо, наверное. У вас и так желающих будет немало. Но только опять — давай без пафоса и разговоров о том, что без ZN CISO прожить не смогут. Смогут. И живут. И будут жить. Это не их тусовка. Особенно после обещаний молодых писателей сплойтов посетить конференцию "бумажных безопасников", чтобы "порыбачить" и показать, кто "настоящий" безопасник.

    Ответить
  9. ilya

    Совершенно не задело — наоборот. Факты я люблю — их у нас много и все с доказательствами причем. Практики мы — у нас все ходы записаны 🙂

    "Именно ты говоришь, что вы "пионеры" и "лидеры" этого сегмента" — откуда ты все это берешь, Леш :)? Где я это сказал "лидеры", "пионеры", "патриотизм"? Я такими словами вообще не пользуюсь. И где ты вообще увидел у нас пафос — ты часом не перепутал с другой, дословно, "эпической" конференцией :)? Честно, не было пафоса. Гордость за то что мы сделали и делаем, да есть, но и то не здесь. Но пафоса точно нет. Спокойный тон. Может ты просто через определенную призму смотришь не ту — так смени давно ее и все. Осенние баталии в LI давно в прошлом. Мы вообще совершенно не пафосные, а вполне себе нормальные.

    А то что мы не альтруисты — так я этого никогда не скрывал. Не бывает компаний-альтруистов. Мы просто фанаты.

    Ответить
  10. ilya

    Просто за наш фанатизм нам еще и платят. Иногда :).

    Ответить
  11. Алексей Лукацкий

    И напоследок. Кто тебе вообще сказал, что я считаю, что хакеры никому не нужны и ничего там не развивают? Где я это вообще говорил. Первичный спор начался из-за того, что какой-то безбашенный неудовлетворенный пацан (который мне почти в сыновья годится, что характерно) наехал на меня, высказав мнение, что я не специалист. Я даже не ставлю вопрос из "Золотого теленка" "да ты кто такой". У меня претензия к его безапелляционности и непонимании той простой мысли, которой в мое время учили в классе 2-м или 3-м — "все профессии нужны, все профессии важны". Это стишок Джанни Родари очень хорошо показывает, что ИБ — это не только (а в России и не столько) написание сплойтов. Это администрирование СЗИ, это обучение по ИБ, это написание политик, это общение с руководством, это расчет рисков, это разработка законодательства. Это то, что молодая поросль, которой ты потакаешь, называет "бумажной безопасностью". И проблема не в том, что, как ты почему решил, я против технарей и хакеров, а в том, что кучка школоты, занимающейся деятельностью на грани и за гранью закона, считает вправе учить других, что такое безопасность, даже не пытась понять точку зрения оппонента.

    На Хабре, в Твиттере, в блоге кто-то считает, что я испугался, что я признал правоту этой школоты, что я начал оправдываться и т.д. Я всех разочарую — моя мотивация совершенно иная. Я вступал в дискуссию в Твиттере только с одной целью — все-таки попробовать донести свою идею, что ИБ — это многогранная задача, в которой есть место и поиску дыр и написанию законов и обсуждению терминов. Увы. Тут я просчитался. Сначала мне показалось, что надежда есть и отдельные личности все-таки признали и мое право быть правым. Но почитав вчера и позавчера высказывания этих "молодых дарований" в Твиттере, направленных не мне, а своим "френдам", я понял, что сильно заблуждался. Они считают себя безоговорочно правыми. При этом, повторюсь, позволяют себе хамить оппоненту, использовать ненормативную лексику, полностью игнорировать правила русского языка. И это, к сожалению, не поддается лечению. Именно им посвящен 10-й слайд с презентации "Как стать звездой ИБ" (http://lukatsky.blogspot.com/2013/02/blog-post_18.html). Они никогда не осознают своей некомпетентности и никогда не обратятся за внешней оценкой. Им это не дано в этом возрасте. И именно поэтому я их внес в черный список — не хочу тратить свое время на общение с такими представителями высших приматов и не хочу, чтобы они засоряли мне твиттер.

    И последнее. Не решай за меня, что я думаю и чем руководствуюсь, делая те или иные поступки. Ты в любом случае не можешь знать моих мотивов и моего целеполагания. Отвечай только за себя! Спасибо.

    Ответить
  12. ilya

    И еще момент.
    " Именно ты говоришь, что вы делаете очень много для развития этого сегмента в России. Не я — ты!"

    В том то и дело, что это ты 🙂
    Я первый никогда не говорю на эту тему (или почти никогда) — только когда меня спрашивают и просто оперирую фактами на основе того, что мы реально сделали и кем мы реально являемся — без каких-либо прекрас.
    Я в данном конкретном случае просто отвечаю на твои очередные упреки в бездействии — и кратко перечисляю что конкрентного мы сделали — ты сам просил, я тут не причем.

    А ты это воспринимаешь, так как воспринимаешь. Так смени уже призму восприятия и все будет ок ;). Не надо так кидаться: "Сложно найти черную кошку в темной комнате, особенно когда ее там нет". Нет пафоса, нет :). И не было.

    Мы уважаем, что ты делаешь на своем поприще. Ты нас, надеюсь, все-таки тоже за наши дела. "А это значит мы уважаемые люди" :). На этом можно и остановиться. И не искать черную кошку, которой нет.

    Ответить
  13. ilya

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

    Ответить
  14. Rebz

    Алексей Лукацкий, аплодирую 🙂
    По крайне мере в аргументах, Вы убедительнее, нежели Илья.

    Ответить