15 Ръководство за най-добри практики за сигурност на DevOps

Според проучване на Verizon почти 58% от компаниите миналата година са били жертва на пробив в данните, а от тях 41% са се случили поради софтуерни уязвимости. Поради подобни нарушения организациите могат да загубят милиони долари и дори пазарната си репутация.

Но се случиха много модернизации в методологиите за разработка на приложения. Днес организациите следват принципите и инструментите на DevOps за разработване на приложение или софтуер. При подхода DevOps цялостното приложение не се доставя наведнъж, то се разработва и доставя итеративно. А в някои случаи освобождаванията също се случват ежедневно. Но намирането на проблеми със сигурността в ежедневните издания не е лесна задача. Ето защо сигурността е един от най-критичните фактори в процеса на DevOps.

Всеки екип, който работи върху разработването на приложение, като разработка, тестване, операции и производство, е отговорен за предприемането на необходимите мерки за сигурност, за да се гарантира, че приложението няма никакви уязвимости, водещи до пробив в сигурността. В тази статия ще говоря за най-добрите практики на DevOps Security за безопасно разработване и внедряване на приложения.

Внедрете модела DevSecOps

DevSecOps е друг актуален термин в областта на DevOps. Това е основната практика за сигурност при развод, която всяка ИТ организация започна да прилага. Както подсказва името, това е комбинацията от разработка, сигурност и операции.

DevSecOps е методология за използване на инструменти за сигурност в жизнения цикъл на DevOps. Така че от самото начало на разработването на приложения сигурността трябва да бъде част от него. Интегрирането на процеса DevOps със сигурността помага на организациите да създават сигурни приложения без уязвимости в тях. Тази методология също помага за премахване на силозите между операциите по разработка и екипите за сигурност в една организация.

По-долу са няколко основни практики, които трябва да приложите в модела DevSecOps:

  • Използвайте инструменти за сигурност като Сник, Checkmarx в тръбопровода за интегриране на развитието.
  • Всички автоматизирани тестове трябва да бъдат оценени от експерти по сигурността.
  • Екипите за разработка и сигурност трябва да си сътрудничат, за да създадат модели на заплахи.
  • Изискванията за сигурност трябва да имат висок приоритет в натрупания продукт.
  • Всички политики за сигурност на инфраструктурата трябва да бъдат прегледани преди внедряването.
  Spotify продължава да спира [Best Fixes]

Прегледайте кода в по-малък размер

Трябва да прегледате кода в по-малък размер. Никога не преглеждайте огромен код и не преглеждайте цялото приложение наведнъж, това би било грешка. Прегледайте кодовете на части, за да можете да ги прегледате правилно.

Внедрете процес на управление на промените

Трябва да приложите процес на управление на промените.

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

Така че всяка промяна, която трябва да се направи в приложението, трябва да премине през процеса на управление на промените. След като бъде одобрен, тогава разработчикът трябва да има право да направи промяна.

Продължете да оценявате приложенията в производство

Често организациите забравят сигурността, когато дадено приложение е активно в производство.

Трябва непрекъснато да преглеждате приложението. Трябва да продължите да преглеждате неговия код и да извършвате периодични тестове за сигурност, за да се уверите, че не са въведени нови вратички в сигурността.

Можете да използвате непрекъснат софтуер за сигурност, като напр Invicti, Вероятнои Натрапник.

Обучете екипа за разработка на сигурност

Що се отнася до насоките за сигурност, трябва също така да обучите екипа за разработка на най-добрите практики за сигурност.

Така че, например, ако нов разработчик се е присъединил към екипа и той или тя не знае за SQL инжектиране, трябва да се уверите, че разработчикът е наясно какво е SQL инжектиране, какво прави и каква вреда може да причини причина за приложението. Може да не искате да навлизате в техническите аспекти на това. Все пак трябва да се уверите, че екипът за разработка е актуализиран с новите насоки за норми за сигурност и най-добрите практики на широко ниво.

  Шест често срещани грешки в Smarthome, които правят начинаещите

Има много курсове за уеб сигурност, които да научите.

Разработване на процеси за сигурност и внедряване

Самата сигурност не може да работи без процеси, трябва да имате специфични процеси за сигурност във вашата организация и след това да ги внедрите.

И след внедряването ще има възможности, че ще трябва да преразгледате процесите, защото определени неща не работят според очакванията или процесът е твърде сложен. Може да има някаква причина, така че ще трябва да промените тези процеси за сигурност.

Но каквото и да се прави, трябва да сте сигурни, че след внедряването процесите на сигурност се наблюдават и одитират.

Прилагане и налагане на управление на сигурността

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

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

Стандарти за сигурно кодиране

Разработчиците се концентрират основно върху изграждането на функционалностите на приложението и пропускат параметрите за сигурност, тъй като това не е техен приоритет. Но с нарастващите киберзаплахи в наши дни трябва да се уверите, че вашият екип за разработка е наясно с най-добрите практики за сигурност, докато кодирате за приложението.

Те трябва да са наясно с инструментите за сигурност, които могат да им помогнат да идентифицират уязвимостите в техния код, докато го разработват, така че разработчиците да могат незабавно да променят кода и да коригират уязвимостите.

Трябва да започнете да използвате инструменти за автоматизация на сигурността в процесите на DevOps, за да избегнете ръчна работа.

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

Прилагане на оценка на уязвимостта

Трябва да приложите оценка на уязвимостта, за да идентифицирате уязвимостите на приложението и да ги премахнете, преди да бъдат внедрени в производствената среда.

  Как да получите нови функции на Office 365 до шест месеца по-рано

Това трябва да се прави често и каквито и пропуски в сигурността да се открият, екипът за разработка трябва да работи върху своя код, за да ги коригира. Налични са множество инструменти за сканиране и управление на уязвимости, които можете да използвате, за да идентифицирате слабите места на приложението.

Внедрете управление на конфигурацията

Трябва също да внедрите управление на конфигурацията.

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

Прилагане на модел с най-малко привилегии

В най-добрите практики за сигурност на DevOps, едно от критичните правила е използването на модел с най-малко привилегии. Никога не давайте на никого повече привилегии от изискваните.

Например, ако разработчикът не изисква ROOT или администраторски достъп, можете да зададете нормален потребителски достъп, така че да може да работи върху необходимите модули на приложението.

Отделете мрежата DevOps

Трябва да приложите мрежово сегментиране в организацията.

Активите на организацията, като приложения, сървъри, хранилище и т.н., не трябва да работят в една и съща мрежа, което води до проблем с една точка на отказ. Ако хакер може да влезе в мрежата на вашата организация, той ще може да поеме контрола върху всички активи на организацията. Така че за всяка логическа единица трябва да имате отделна мрежа.

Например средата за разработка и производствената среда трябва да работят в различни мрежи, изолирани една от друга.

Можете също така да използвате мрежови решения с нулево доверие.

Използвайте Password Manager

Не съхранявайте идентификационни данни в excel. Вместо това използвайте централизиран мениджър на пароли.

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

Приложете одит и преглед

Трябва също да прилагате одит и преглед на непрекъсната основа. Трябва да има редовни одити на кода на приложението и средата на процесите за сигурност, както и данните, които то събира.

Заключение

Това са някои критични най-добри практики за сигурност на DevOps, които една организация трябва да следва, за да изгради сигурни приложения и софтуер. Прилагането на практики за сигурност с процеса DevOps ще спести милиони за една организация. Така че започнете да прилагате практиките за сигурност, споменати в тази статия за сигурни и по-бързи версии на приложението.