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

Голямото значение на практиките за сигурно кодиране е подчертано в актуализираните стандарти за информационна сигурност ISO/IEC 27002 и ISO/IEC 27001:2022. Като нова мярка ( контрол) за информационна сигурност, принципите за "сигурно кодиране" при разработването на софтуер влизат в каталога от мерки в приложение А на ISO/IEC 27001. Повече за значението на тази мярка за Вашата информационна сигурност и какво означава това за бъдещите одити вижте в нашата публикация в блога.

Уязвимости в сигурността на кода

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

При тези условия екипите за разработване трудно извършват непрекъснат преглед и последователно защитават кодирането на своя софтуер, както се вижда от многото уязвимости, които корпорацията с нестопанска цел MITRE Corporation публикува всяка година в своя списък CVE (Common Vulnerabilities and Exposures). Редовните пачове за сигурност дори на добре познати производители на софтуер са показател за сизифовската задача за отстраняване на грешки, свързани със сигурността, да не говорим за идентифицирането им още преди пускането им на пазара.

Код с отворен код - специален случай

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

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

На практика това доверие вече трябва да се оценява по диференциран и критичен начин. Най-сериозният пример е уязвимостта в сигурността от типа нулев ден Log4Shell в широко използваната библиотека за регистриране Log4J за Java приложения, която беше открита през ноември 2021 г. Може би сте чували за червеното ниво на предупреждение, издадено от Германската федерална служба за информационна сигурност (BSI) за Log4Shell. Библиотеката Log4J, разпространявана като надеждно функциониращ квазистандарт чрез Apache Foundation, се е установила в много системи от 2013 г. насам - включително в добре познати уеб услуги като Amazon AWS.

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

Друг фактор за несигурност на компонентите с отворен код са т.нар. атаки по веригата на доставките, т.е. умишлено вградени уязвимости от злонамерени участници, които се представят за част от общността с отворен код и помагат в разработването на кода. Такава уязвимост е изключително ефикасен начин за хакерите да атакуват голям брой потребителски организации надолу по веригата. Затова не е чудно, че този вектор на атака се разраства бързо: проучване на Sonatype диагностицира 650% увеличение при сравняване на 2020 и 2021 г.

webinar-dqs-junger-mann-mit-headset-sitzt-vor-einem-laptop
Loading...

Видео: Какво се променя с новия ISO/IEC 27001:2022

Новата версия на ISO/IEC 27001, адаптирана към съвременните информационни рискове, бе публикувана на 25 октомври 2022 г. Какво означава това за потребителите на стандарта? В записа на нашия безплатен уебинар ще научите за

  • Новите характеристики на ISO/IEC 27001:2022 - Рамка и Приложение А
  • ISO/IEC 27002:2022-02 - структура, съдържание, атрибути и хаштагове
  • График за прехода и вашите следващи стъпки

Контрол на информационната сигурност 8.28 сигурно кодиране

За да се защити своевременно процесът на разработване на софтуер, Международната организация по стандартизация (ISO - комитет ISO/IEC JTC 1/SC 27) включи "Сигурно кодиране" като нов контрол 8.28 в новите стандарти ISO/IEC 27002 и ISO/IEC 27001:2022, приложение А. Целта на техническата мярка за сигурно кодиране е превантивната защита на софтуера.

Създава се минимално ниво на сигурност още на етапа на писане въз основа на процедурни правила, като по този начин се свежда до минимум броят на потенциалните уязвимости в сигурността на софтуера. Нормативната уредба за създаване на сигурен код трябва да се прилага цялостно както към собствения програмен код на компанията, така и към софтуер от трети страни и източници с отворен код. Забележителни принципи за прилагане са Security by Design (Сигурност чрез проектиране) и Least Privilege (Най-малко привилегии), които също трябва да се вземат предвид при кодирането.

Принципи на безопасното кодиране

Мярка 8.28 разглежда така наречените принципи на сигурно кодиране няколко пъти. Насоки за това какви могат да бъдат те се предоставят от множество организации и институти, които редовно издават ръководства и най-добри практики за сигурно кодиране. Такива са например Практиките за сигурно кодиране на фондация OWASP, Стандартите за сигурно кодиране на Екипа за реагиране при компютърни инциденти (CERT) на Института за софтуерно инженерство (SEI) и каталогът с мерки за сигурност на уеб приложения на германския BSI. Въпреки различните източници, разработките показват много паралели, например по отношение на следните точки:

  • Валидиране на въведените данни
  • Защита на удостоверяването и управлението на паролите
  • Сигурен контрол на достъпа
  • Опростен и прозрачен код
  • Устойчиво тествани криптографски мерки и компоненти
  • Обработка и регистриране на грешки
  • Защита на данните
  • Моделиране на заплахите

В стандарта ISO/ISO 27002:2022 препоръчителните действия за контрол 8.28 са разделени на три раздела: "Планиране и предварително кодиране", "По време на кодирането" и "Проверка и поддръжка", чието основно съдържание е изложено по-долу.

Cyberattack - Bildschirm zeigt Zahlencodes mit Warnsignalen
Loading...

Това също може да Ви интересуваl:

Откриване и превенция в управлението на информационната сигурност

Планиране и предварително кодиране

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

Конфигурацията на инструментите за разработка, като например базирана на правила в интегрираните среди за разработка (IDE), трябва да налага създаването на сигурен код. Много важни са квалификацията на разработчиците и познаването на сигурните архитектури и стандарти за програмиране. Включването на експертни познания в областта на информационната сигурност в екипа на разработчиците се разбира от само себе си.

По време на процеса на кодиране

По време на процеса на кодиране основна роля играят практиките за кодиране и техниките за структурирано програмиране, като се вземат предвид конкретният случай на използване и неговите нужди за сигурност. Несигурните техники за проектиране - например твърдо кодирани пароли - трябва да бъдат последователно забранени. Кодът трябва да бъде адекватно документиран и прегледан, за да се отстранят по най-добрия начин грешките, свързани със сигурността. Прегледът на кода трябва да се извършва както по време на разработката, така и след нея, чрез статично тестване на сигурността на приложенията (SAST) или подобно. Методите за статично тестване подкрепят подхода на изместване наляво ("тествай рано и често"), като се изместват наляво в жизнения цикъл чрез ранно тестване на видимия код за съответствие с правилата.

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

Проверка и поддръжка

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

Отворен код

В областта на проверката и поддръжката Мярка 8.28 допълнително изброява изрични инструкции за използването на външни инструменти и библиотеки, като например софтуер с отворен код. Тези компоненти на кода трябва да се управляват, актуализират и поддържат в описи. Това може да се направи например чрез софтуерна спецификация (SBOM). SBOM е официален, структуриран запис на софтуерните пакети и библиотеки и техните взаимоотношения помежду им и в рамките на веригата за доставки, по-специално за проследяване на повторно използвания код и компонентите с отворен код. SBOM подпомага поддържането на софтуера и целенасочените актуализации на сигурността.

fragen-antwort-dqs-fragezeichen auf wuerfeln aus holz auf tisch
Loading...

Сертифициране съгласно ISO 27001

Какво трябва да направите, за да бъде Вашата ISMS сертифицирана в съответствие с ISO 27001? Получете информация безплатно и без задължения.

Очакваме с нетърпение да разговаряме с вас.

Заключение

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

С професионалния поглед на нашите опитни одитори ние Ви подкрепяме в съвместимото прилагане на мярката. С нашия опит в одитирането и сертифицирането от повече от 35 години ние сме Вашият идеален партньор за контакт и с удоволствие ще ви помогнем по темата за информационната сигурност и сертифицирането в съответствие със стандартите ISO/IEC 27001:2022.

Преразглеждане на ISO 27001: Какво означава актуализацията за Вашата сертификация?

Стандартът ISO/IEC 27001:2022 бе публикуван на 25 октомври 2022 г. Това води до следните крайни срокове и времеви рамки за преминаване на потребителите:

Последна дата за първоначални/ресертификационни одити съгласно "стария" ISO 27001:2013

  • След 30 април 2024 г. DQS ще извършва първоначални и ресертификационни одити само в съответствие с новия стандарт ISO/IEC 27001:2022

Преминаване на всички съществуващи сертификати съгласно "стария" стандарт ISO/IEC 27001:2013 към новия стандарт ISO/IEC 27001:2022

  • 3-годишен преходен период, който започна да тече от 31 октомври 2022 г.
  • Сертификатите, издадени в съответствие с ISO/IEC 27001:2013 или DIN EN ISO/IEC 27001:2017, са валидни най-късно до 31 октомври 2025 г. или трябва да бъдат оттеглени на тази дата.

DQS: Simply leveraging Security.

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

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

fragen-antwort-dqs-fragezeichen auf wuerfeln aus holz auf tisch
Loading...

Имате ли въпроси?

Свържете се с нас!

Без задължения и безплатно.

Автор
Markus Jegelka

DQS експерт по системи за информационна сигурност (ISMS) и дългогодишен одитор по стандарти ISO 9001, ISO/IEC 27001 каталог за ИТ сигурност съгласно параграф 11.1а от германския Закон за енергийната индустрия (EnWG)

Loading...