Път 03Урок 4 / 6

Проверете какво влиза в пусканата версия

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

Практическо ниво10 минПрегледано

Публикувано от Как пишем

Проверете разбирането сиСканиране на зависимости не отчита известни уязвимости. Какво установява това?Направете упражнението
Сканиране на зависимости не отчита известни уязвимости. Какво установява това?

Какво ще научите

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

Попитайте дали зависимостта е нужна

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

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

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

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

Зависимостите могат да изпълняват код при инсталация или изграждане. Ограничете данните за удостоверяване и мрежовия достъп в тези среди. Не разкривайте продукционни тайни стойности на задача, която обработва недоверен pull request.

Използвайте lockfile, записан в хранилището, когато екосистемата го поддържа. Изисквайте изграждането да спазва този файл. Преглеждайте промените в lockfile заедно с промяната в кода, включително неочаквани транзитивни пакети. Фиксирането на версии подобрява възпроизводимостта, но не прави уязвима версия безопасна.

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

Разграничете инвентара от произхода

Software bill of materials, или SBOM, описва компонентите в софтуера. Помага да определите засегнатите версии, когато компонент стане повод за притеснение. Сам по себе си не установява, че компонентите са безопасни.

Данните за произхода описват как е произведен артефактът. SLSA определя формат за информация за изграждането и входовете му. Проверката трябва да свърже тази информация с доверен производител и артефакта, който възнамерявате да използвате. Файл с име „provenance“ не е достатъчен. Произход по SLSA.

За услугата за експорт запишете верига, която можете да прегледате:

  1. Прегледаният commit определя приетия изходен код.
  2. Изграждането определя своите входове и среда за изпълнение.
  3. Артефактът има стабилен digest.
  4. Проверките определят артефакта или изходния код, който са изследвали.
  5. Внедряването записва артефакта, поставен в целевата среда.

Избягвайте различно повторно изграждане след одобрение без определен процес за проверка. Променяем tag като latest може по-късно да сочи към друг образ.

Решете какво означава констатацията

Констатация за уязвимост изисква контекст: засегната версия, поведение, което може да бъде достигнато, излагане на риск, налична поправка и последствия. Записвайте доказателствата зад всяко временно изключение. Определете отговорник, срок и условие за преразглеждане.

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

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

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

Направете упражнението

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

Изтеглете работния лист (Markdown)
Проверете разбирането си ↑

Продължете ученето

Източници и допълнително четене

Свързани материали от Taiga

Предишен урок: Третирайте извлеченото съдържание като недоверен вход