4.9

Tazama kwa Kiingereza

4.9 Mzunguko salama wa uendelezaji wa programu

Muhtasari na msukumo

Kasoro nyingi za usalama si za ajabu. Ni makosa ya kawaida: ukaguzi wa uidhinishaji uliokosekana, ingizo lililoaminiwa, utegemezi ambao hakuna aliyeusasisha, siri iliyobandikwa kwenye faili ya usanidi. Kinachozifanya ziwe ghali ni wakati zinapokamatwa. Dosari inayopatikana wakati wa kuandika sharti inagharimu mazungumzo. Dosari ileile inayopatikana kwenye jaribio la kupenya wiki moja kabla ya uzinduzi inagharimu mbio, na ikipatikana kwenye uzalishaji inagharimu tukio, ufichuzi, na kupoteza uaminifu. Mzunguko salama wa uendelezaji wa programu (SSDLC) ni nidhamu ya kukamata dosari hizi mapema na mfululizo, kwa kujenga usalama ndani ya kila awamu ya jinsi unavyopanga, kubuni, kujenga, kupitia, kusafirisha, na kuendesha programu, badala ya kubandika jaribio la usalama mwishoni.

Sura hii ni uti wa mgongo wa mchakato wa Sehemu ya 4. Inaunganisha ulinzi wa kiwango cha programu wa sura ya 4.2 (jinsi unavyoandika msimbo unaopinga shambulio) na nidhamu ya wakati wa kuendesha ya sura ya 4.4 (jinsi unavyogundua na kujibu ulinzi unapojaribiwa), inarithi mtazamo wake kutoka sura ya 4.1 (misingi ya usalama na utamaduni), na inazalisha ushahidi ambao sura ya 4.6 (uzingatiaji na utawala) inaugeuza kuwa mabaki ya ukaguzi. Pale sura hizo zinaposhughulikia nini na kwa nini, sura hii inashughulikia lini na vipi: katika hatua ipi ya mtiririko wako wa utoaji kila kidhibiti kinapaswa kuwa, nani anakimiliki, na lango gani kinalilinda.

Kwa timu kubwa, faida ni kiegemeo. Mamia ya wahandisi wanapoamua kila mmoja kivyake usalama kiasi gani wa kufanya, kiungo dhaifu zaidi huweka mfiduo wenu halisi. Mzunguko ulioainishwa hufanya njia salama kuwa njia ya chaguo-msingi, ili mhandisi wa kawaida asafirishe programu salama kwa kiasi cha kuridhisha bila ushujaa. Kwa mashirika makubwa, uthabiti huo hupunguza gharama ya kila ukaguzi na uunganishaji. Kwa serikali, ambapo raia hawawezi kuchagua mtoa huduma mwingine wa data yao ya kodi au manufaa, mzunguko ulioandikwa mara nyingi ni sharti la kisheria la kufanya kazi, na mifumo katika sura hii inaoana na wajibu huo.

Kanuni kuu

  • Sukuma usalama upande wa kushoto: pata na urekebishe dosari katika awamu ya bei nafuu zaidi, ambayo daima ni ya mapema zaidi.
  • Fanya usalama kuwa sifa ya bomba, si ya mtu: otomatisha malango ili njia salama iwe njia rahisi.
  • Mpe kila awamu mmiliki na lango, kuanzia mahitaji hadi operesheni, kwa masharti wazi ya kupita.
  • Simamia hatari, si visanduku vya kuweka alama: weka kipaumbele dosari zinazojalisha kwa uwezekano wa kunyonywa na athari, na upendelee ukaguzi mdogo mwingi endelevu kuliko ukaguzi mmoja mrefu wa mwisho wa mzunguko.
  • Chukulia utegemezi na mifumo ya ujenzi kama sehemu ya uso wako wa shambulio, kwa sababu washambulizi hufanya hivyo.
  • Pima programu, kwa sababu mzunguko usioweza kuupima ni mzunguko usioweza kuuboresha.

Mapendekezo

Sukuma usalama upande wa kushoto kuvuka mzunguko mzima

Majaribio ya kushoto yanamaanisha kuhamisha uthibitishaji mapema zaidi katika mtiririko wa utoaji, kuelekea wakati uamuzi unapofanywa badala ya wakati kabla ya toleo. Yakitumika kwa usalama, yanapanga upya lengo: hujaribu usalama mwishoni, unausanifu na kuujenga ndani tangu mwanzo, kisha kuthibitisha mfululizo. Uchumi uko wazi. Sharti lililoandikwa upya kwenye kikao cha kupanga ni karibu bure; dosari ya usanifu inayorekebishwa baada ya msimbo kuwepo inagharimu siku; udhaifu unaopachikwa kwenye uzalishaji unagharimu tukio. Kusukuma kushoto kuna hali yake ya kushindwa, hata hivyo: kuwatupia wasanidi rundo la zana za usalama na kuita imekamilika. Kikifanywa vizuri, kinaoanisha kila ukaguzi wa mapema na msaada wa kuchukua hatua, ili matokeo yafike na muktadha, pendekezo la suluhisho, na mmiliki.

Andika mahitaji ya usalama na kesi za matumizi mabaya

Usalama huanza kabla ya msimbo wowote, katika jinsi unavyopanga kazi. Kando ya mahitaji ya kiutendaji yanayosema mfumo unapaswa kufanya nini, andika mahitaji ya usalama yanayosema usichopaswa kufanya kamwe na unachopaswa kuhakikisha: data ipi ni nyeti, nani ameidhinishwa, nini kiandikwe kwenye kumbukumbu, kanuni zipi zinatumika. Kisha kamilisha hadithi zako za mtumiaji na kesi za matumizi mabaya na matumizi mabaya: simulizi fupi za jinsi mhusika mwenye uadui angejaribu kushinda kila kipengele. Pale hadithi ya mtumiaji inaposema “mteja anaweka upya nenosiri lake,” kesi ya matumizi mabaya inauliza “mshambulizi anaweka upya nenosiri la mtu mwingine,” na swali hilo huendesha sharti halisi kuhusu mipaka ya kiwango, kuisha kwa tokeni, na uthibitishaji. Hii hufichua madaraja mazima ya dosari zikiwa bado maneno kwenye skrini. Weka kesi za matumizi mabaya zimeambatanishwa na hadithi ili zisafiri kuingia kwenye usanifu, mapitio, na ufafanuzi wa kukamilika.

Weka lango la uundaji wa vitisho kwenye usanifu

Uundaji wa vitisho ni mazoea yaliyopangwa ya kuchunguza usanifu kupata nini kinaweza kwenda vibaya kabla ya kujenga: kutambua mali, kuchora jinsi data inavyotiririka kuvuka mipaka ya uaminifu, kuorodhesha vitisho, na kuamua juu ya kupunguza. Ni shughuli ya usalama yenye kiegemeo cha juu zaidi unayoweza kufanya, kwa sababu inafanya kazi kwenye usanifu wakati kuubadilisha bado ni nafuu. Ifanye lango jepesi kwa kipengele chochote kinachogusa uthibitishaji, data nyeti, fedha, au mpaka mpya wa uaminifu, ukipitia madaraja ya vitisho kama kuiga, kuchezea, kukana, kufichua taarifa, kunyima huduma, na kuinua upendeleo, orodha hakiki inayojulikana kwa kifupi STRIDE. Weka sherehe sawia: kikao cha saa moja chenye ubao mweupe, mchoro wa mtiririko wa data, na kesi za matumizi mabaya hunasa sehemu kubwa ya kile waraka rasmi ungenasa. Rekodi vitisho vilivyopatikana, hatua za kupunguza zilizochaguliwa, na hatari zilizokubaliwa kwa makusudi; rekodi hiyo inakuwa ushahidi wa awamu ya usanifu kwa sura ya 4.6 na ramani ya kuanzia ya usanifu salama wa sura ya 4.2. Ifunge kwa mabadiliko makubwa ya usanifu, la sivyo inaoza kuwa waraka ulioandikwa mara moja na kamwe usipitiwe tena.

Pokea viwango vya uandishi salama wa msimbo na chaguo-msingi salama

Wape wahandisi kiwango madhubuti cha uandishi salama wa msimbo kwa kila lugha na mfumo mnaotumia: jinsi ya kuweka vigezo kwenye maswali, jinsi ya kusimba matokeo, jinsi ya kuthibitisha ingizo, jinsi ya kushughulikia siri, maktaba ipi ya kriptografia ya kuita na ipi kutoibuni kwa mkono kamwe. Ioanishe na vipengele vya ujenzi salama kwa chaguo-msingi: maktaba za pamoja zinazofanya chaguo salama kuwa chaguo-msingi na lisilo salama kuwa gumu, ili mhandisi apate usimbaji wa matokeo au maswali yenye vigezo bure badala ya kukumbuka. Kiwango bora ni kile ambacho zana zenu zinakitekeleza, ili ukiukaji ushindwe ukaguzi badala ya kutegemea mpitiaji kuona. Kihariri dhidi ya katalogi inayojulikana ya udhaifu ili mfunike madaraja yanayosababisha uvunjaji kweli, na uondoe kanuni zinazozalisha kelele zaidi kuliko thamani.

Fanya usalama kuwa wazi katika mapitio ya msimbo

Mapitio ya msimbo (sura ya 2.5) ni lango la asili la usalama, kwa sababu mtu wa pili anayesoma badiliko yuko katika nafasi nzuri ya kuona ukaguzi wa uidhinishaji uliokosekana au ingizo lililoaminiwa. Fanya kipimo cha usalama kiwe wazi badala ya kutumaini wapitiaji wanakumbuka: ongeza orodha hakiki fupi ya usalama kwenye kiolezo chako cha mapitio, iliyofungwa kwa maeneo hatari ya ushughulikiaji wa ingizo, uidhinishaji, siri, kriptografia, na mabadiliko ya utegemezi. Elekeza mabadiliko ya msimbo nyeti, kama njia za uthibitishaji au malipo, kwa wapitiaji wenye kina cha usalama, na uweke alama njia hizo ili uelekezaji uwe wa kiotomatiki. Endesha ukaguzi wa kiotomatiki kabla ya mapitio ya binadamu, ili wapitiaji watumie umakini wao kwenye mantiki na nia ya usanifu (ya kimuktadha na mapya) badala ya matokeo ya kiwango cha lint ambayo zana tayari imeyanasa.

Weka lango sahihi la kiotomatiki mahali sahihi kwenye bomba

Madaraja kadhaa ya zana za usalama yanafaa kwenye bomba lenu la ujumuishaji na utoaji endelevu (sura ya 8.1), na kujua kila moja inafaa wapi kunawazuia kutarajia zana moja ifanye kazi ya nyingine. Majaribio tuli ya usalama wa programu (SAST) huchambua msimbo wa chanzo bila kuuendesha, yakinasa dosari kama uingizaji na matumizi yasiyo salama ya API kwa kila commit. Uchambuzi wa muundo wa programu (SCA) hukagua utegemezi wenu wa watu wa tatu na chanzo huria kwa udhaifu unaojulikana na masuala ya leseni, mkono wa bomba wa usimamizi wa utegemezi na mnyororo wa ugavi wa sura ya 2.18. Uchanganuzi wa siri hutafuta vitambulisho, tokeni, na funguo zilizowekwa kwa bahati mbaya, na unafaa kwenye commit (kupitia pre-commit hook) na kwenye bomba kama hifadhi ya ziada. Uchanganuzi wa miundombinu-kama-msimbo (IaC) hukagua Terraform, CloudFormation, au maelezo ya Kubernetes kwa usanidi usio salama, ukinasa ndoo ya uhifadhi iliyo wazi ikiwa bado ni diff.

Majaribio ya kidinamiki ya usalama wa programu (DAST) hujaribu programu inayoendesha kutoka nje, kama mshambulizi anayechunguza sehemu za mwisho, na yanafaa baadaye dhidi ya mazingira ya majaribio au ya maandalizi yaliyosambazwa. Majaribio shirikishi ya usalama wa programu (IAST) hupachika vifaa vya kupima kwenye programu inayoendesha kuiangalia kutoka ndani wakati wa majaribio ya kiutendaji, yakichanganya ufahamu tuli na ufikiaji wa kidinamiki na kupunguza matokeo ya uongo. Kama kanuni: SAST, SCA, uchanganuzi wa siri, na uchanganuzi wa IaC huweka lango la ujenzi; DAST na IAST huthibitisha mfumo unaoendesha. Rekebisha kila moja ishindwe kwa kinachojalisha na kuonya kwa kingine, kwa sababu lango linalolia mbwa-mwitu ni lango ambalo timu huzima.

Weka mabingwa wa usalama ndani ya timu za utoaji

Timu ya usalama ya kati haiwezi kupitia kila badiliko kwa mamia ya wahandisi, na kazi ya usalama inayofanya kazi kama mlinzi wa mbali huwa kizuizi ambacho timu hukipita pembeni. Mfano wa bingwa wa usalama hutatua hili kwa kuweka mhandisi mwenye mtazamo wa usalama ndani ya kila timu ya utoaji: si mtaalamu wa muda wote, bali msanidi anayepata mafunzo ya ziada, njia ya moja kwa moja kwa timu ya kati, na muda wazi wa kuinua kiwango cha usalama kwa ndani. Mabingwa huendesha vikao vya uundaji wa vitisho, hutunza kiwango cha uandishi wa msimbo kwa mrundiko wao, hupanga matokeo ya zana, na kutafsiri sera ya kati kuwa uhalisia wa timu yao, wakipanua ufikiaji wa timu ya kati bila kuongeza idadi ya wafanyakazi wake sawia. Wekeza kwa mabingwa kwa jumuiya ya mazoea, utambuzi, na saa halisi, la sivyo jukumu linaoza kuwa jina kwenye chati ya shirika.

Ng’oa programu kwenye mfumo ulioimarika

Huhitaji kubuni mzunguko kuanzia sifuri, kwa sababu mifumo iliyokomaa husimba miongo ya mafunzo na kuwapa wakaguzi msamiati wa pamoja. Microsoft Security Development Lifecycle (SDL) ni mfano unaotegemea mazoea, uliozaliwa kutoka mafunzo magumu ya Microsoft yenyewe, unaoagiza shughuli madhubuti kwa kila awamu. OWASP SAMM (Software Assurance Maturity Model) na BSIMM (Building Security In Maturity Model) ni miundo ya tathmini: SAMM ni ya maagizo, ikikupa lengo la ukomavu la kujenga kuelekea, wakati BSIMM ni ya maelezo, ikikuambia kile sampuli kubwa ya makampuni halisi inafanya ili uweze kulinganisha. Mfumo wa Uendelezaji Salama wa Programu wa NIST (SSDF), uliochapishwa kama Special Publication 800-218, ni seti fupi ya mazoea yanayolenga matokeo yanayozidi kuunga mkono mahitaji ya mnyororo wa ugavi wa programu wa serikali ya Marekani. Chagua mmoja kama uti wako wa mgongo badala ya kuchanganya wote wanne kuwa mkanganyiko. Mfumo ni ramani, si eneo lenyewe: pokea mazoea yanayolingana na hatari yako, na rekodi yapi uliyatekeleza, kwa sababu rekodi hiyo ndiyo hasa sura ya 4.6 na sura ya 10.2 (hatari, ukaguzi, na uhakikisho) zinahitaji.

Weka usalama katika ufafanuzi wa kukamilika na uendeshe urekebishaji kwa SLA

Lango linashikilia tu kama ni sehemu ya maana ya “imekamilika.” Panua ufafanuzi wa timu yako wa kukamilika ili badiliko lisiwe kamili hadi masharti yake ya usalama yatimizwe: hakuna matokeo ya kichanganuzi ya ukali wa juu yasiyoshughulikiwa, kielelezo cha vitisho kimesasishwa ikiwa usanifu ulibadilika, siri zinasimamiwa ipasavyo, na utegemezi hauna udhaifu muhimu unaojulikana. Hii hufanya usalama kuwa kigezo cha kawaida cha kukubali, si tukio maalumu. Kwa matokeo yanayotoroka kwenda uzalishaji, endesha mchakato wa usimamizi wa udhaifu wenye makubaliano ya kiwango cha huduma (SLA) ya urekebishaji wazi: muda wa juu zaidi wa kurekebisha, uliowekwa kwa ukali, ili dosari muhimu ipimwe kwa siku na ya ukali wa chini kwa dirisha refu zaidi, linalofuatiliwa. Weka kipaumbele kwa hatari halisi, ukichanganya alama za ukali na uwezekano wa kunyonywa na mfiduo, ili urekebishe dosari inayonyonyeka inayokabili mtandao kabla ya ile ya kinadharia nyuma ya ngome tatu. Fuatilia kila matokeo hadi kufungwa katika mfumo mmoja, na uripoti umri kama kipimo kingine chochote cha uendeshaji. SLA ambayo hakuna anayeipima ni tamanio.

Linda uadilifu wa mnyororo wa ugavi mwanzo hadi mwisho

Washambulizi wanazidi kulenga si msimbo wako bali njia unayosafiria: utegemezi ulioathirika, hatua ya ujenzi iliyotiwa sumu, mabaki yasiyosainiwa yaliyobadilishwa njiani. Hili ni shambulio la mnyororo wa ugavi, na kujilinda dhidi yake kunagusa awamu kadhaa. Zalisha orodha ya vifaa vya programu (SBOM) ili ujue hasa kilichomo kwenye kila toleo. Bandika na uthibitishe utegemezi, na uvute kupitia sajili ya ndani inayodhibitiwa badala ya moja kwa moja kutoka mtandao wa umma. Imarisha mfumo wa ujenzi wenyewe, kwa sababu seva ya ujenzi yenye ruhusa pana ni shabaha ya thamani ya juu, na uzalishe mabaki yaliyosainiwa, yanayoweza kuthibitishwa yenye asili ili mtumiaji athibitishe anachoendesha ndicho ulichojenga. Vituo hivi vinaunganika na nidhamu ya utegemezi ya sura ya 2.18 na wajibu wa uhakikisho wa sura ya 10.2. Chukulia bomba lako la ujenzi na toleo kama miundombinu ya uzalishaji, kwa sababu uvunjaji hapo unaathiri kila kitu cha chini ya mkondo mara moja.

Pima programu na urudishe matokeo

Unaboresha unachopima. Fuatilia viashiria vya mbele vinavyokuambia kama mzunguko unafanya kazi: ufikiaji wa vielelezo vya vitisho kwa mabadiliko makubwa, asilimia ya mabomba yenye malango yanayotarajiwa yaliyowashwa, muda wa wastani wa kurekebisha kwa ukali, kiwango cha kasoro zilizotoroka (dosari zinazopatikana kwenye uzalishaji ambazo lango lilipaswa kunasa), na viwango vya matokeo ya uongo vinavyotabiri kama timu zinaendelea kuamini zana. Rudisha matokeo: kasoro zilizotoroka hurekebisha malango yenu, zana zenye kelele hurekebishwa au kubadilishwa, na madaraja ya dosari yanayojirudia huendesha chaguo-msingi salama mpya na mafunzo. Mzunguko bila kipimo huteleza kuwa sherehe.

Mabadilishano: faida na hasara

MbinuFaidaHasara
Malango ya kushoto kwenye bombaMarekebisho ya bei nafuu zaidi; maoni ya haraka, endelevuMtawanyiko wa zana na uchovu wa tahadhari bila kurekebisha
Lango la uundaji wa vitisho kwenye usanifuHunasa dosari za usanifu zikiwa nafuu kurekebishaLinahitaji ujuzi na muda; huoza kama halipitiwi tena
Mabingwa wa usalama ndani ya timuHupanua usalama; umiliki na muktadha wa ndaniHudhoofika ikikosa rasilimali au utambuzi
Ulinzi wa kati wa usalamaKiwango thabiti; uwajibikaji waziHuwa kizuizi ambacho timu hukipita pembeni
Programu iliyong’olewa kwenye mfumo (SDL, SAMM, SSDF)Mazoea yaliyothibitishwa; msamiati tayari kwa ukaguziHatari ya sherehe; kuiga bila busara
SLA kali za urekebishajiMfiduo wenye mipaka; uwajibikaji unaopimikaKucheza na mfumo na kuweka alama visanduku ikiwa ukali unapimwa vibaya
Malango yanayozuia (kushindwa ujenzi)Uhakikisho imara hakuna kitu kibaya kinachosafirishwaHusimamisha utoaji kwa matokeo ya uongo; shinikizo la kupita

Mvutano wa msingi ni kati ya ukali na mtiririko. Sukuma kidogo mno kwenye bomba na dosari hutoroka hadi mahali ni ghali; sukuma mno bila kurekebisha na ama unazuia utoaji kwa kelele au unazoeza timu kubofya pita onyo hadi malango hayana maana. Tatua kwa kurekebisha bila huruma na kwa kulinganisha nguvu ya kila lango na hatari inayolinda: zuia ujenzi kwa kitambulisho kilichovuja au udhaifu muhimu unaojulikana, lakini onya tu kwa matokeo ya mtindo ya ukali wa chini. Msuguano anaohisi timu unapolingana na hatari, njia salama hubaki njia ya upinzani mdogo.

Maswali ya kujadili na timu yako

  1. Usalama unafanyika kweli katika awamu zipi za mtiririko wetu wa utoaji leo, na wapi unajifanya tu? Mashirika mengi hugundua juhudi zao halisi za usalama zimejikita mwishoni, katika uchanganuzi wa kabla ya toleo au jaribio la kupenya la kila mwaka, wakati awamu za mahitaji, usanifu, na mapitio zinataja usalama kwa matamanio tu. Chora mtiririko wenu wa sasa kwa uaminifu, awamu kwa awamu, na uweke alama pale shughuli ya usalama ina mmiliki halisi na lango halisi dhidi ya pale ni kauli mbiu. Leta kipengele cha hivi karibuni na ufuatilie kazi gani ya usalama ilifanyika kweli, kutoka sharti lake la kwanza hadi usambazaji wake. Mapengo mtakayopata ndiyo backlog yenu ya kushoto, na awamu ambazo ni kauli mbiu tupu bila lango ndipo dosari zinaingia kimyakimya kwenye bidhaa yenu.

  2. Kichanganuzi kinaporipoti matokeo, nini kinafuata, na tunaweza kuthibitisha? Thamani ya kila lango katika sura hii inategemea mtiririko wa kazi baada ya matokeo kuonekana. Pitia mfano halisi: zana ya SAST au SCA inaweka alama kitu, kisha nani anaarifiwa, ukali na uwezekano wa kunyonywa vinatathminiwaje, SLA ni ipi, inafuatiliwa wapi, na mnajuaje ilirekebishwa badala ya kuahirishwa? Timu nyingi zina zana za kuvutia na hakuna jibu, jambo linalomaanisha matokeo yao yanarundikana kwenye foleni ambayo kila mtu amejifunza kuipuuza. Kama huwezi kutoa, kwa robo iliyopita, orodha ya matokeo na muda wa kurekebisha kwa ukali, una mazoea ya kuchanganua lakini si programu ya usimamizi wa udhaifu, na tofauti hiyo ndiyo hasa mkaguzi na mshambulizi wote watachunguza.

  3. Mfumo upi mmoja unaongoza programu yetu, na kila timu inaweza kusema “usalama umekamilika” inamaanisha nini kwa kazi yao? Bila uti wa mgongo wa pamoja, kila timu inabuni ufafanuzi wake wa salama vya kutosha, na msimamo halisi wa shirika unakuwa wastani wa maamuzi mia ya kibinafsi. Amueni pamoja mfumo upi ulioimarika (Microsoft SDL, OWASP SAMM, BSIMM, au NIST SSDF) ndio rejeo lenu, kisha angalieni kama chaguo hilo limefika chini: je, timu ya utoaji inaweza kusoma masharti ya usalama katika ufafanuzi wake wa kukamilika na kuonyesha lango linalotekeleza kila moja? Linganisheni ufafanuzi wa kukamilika wa timu tatu tofauti. Kuungana kunamaanisha mzunguko ni halisi; kutofautiana kunamaanisha mna mfumo kwenye slaidi na kuboresha papo hapo kwenye mabomba.

  4. Matokeo yapi yanazuia ujenzi, yapi yanaonya tu, na nani aliamua mstari uko wapi? Nguvu ya kila lango ni chaguo la sera, na kulikosea upande wowote ni ghali: zuia kwa kelele na timu hujifunza kupita au kuzima malango chini ya shinikizo la utoaji; onya kwa kila kitu na yale muhimu yanapita bila kusomwa. Kwa shirika kubwa hatari ni kuteleza, ambapo kila timu inarekebisha kimyakimya vizingiti vyake hadi “bomba ni kijani” linamaanisha kitu tofauti katika kila kikundi na mfiduo wenu halisi hauwezi kujulikana kutoka kituoni. Leta sera ya sasa ya kupita au kushindwa kwa kila zana, kiwango cha matokeo ya uongo ambacho timu hupata kweli, na mfano wa hivi karibuni wa matokeo yaliyobatilishwa na kwa nini. Katika mazingira ya mashirika makubwa na serikali, ongeza nani ana mamlaka ya kukubali hatari na wapi ukubali huo unarekodiwa, kwa sababu tatizo muhimu lisilozuiwa bila mmiliki aliyetajwa wala sababu iliyoandikwa ndilo hasa pengo ambalo mkaguzi atalilaumu na mshambulizi atalipata.

  5. Mabingwa wetu wa usalama ni uwezo halisi au jina kwenye chati ya shirika, na gharama ya uaminifu ya kuwaweka halisi ni ipi? Mfano wa bingwa ndio jinsi timu ndogo ya kati inavyofikia mamia ya wahandisi, lakini unashindwa kimyakimya: jukumu linapewa, hakuna saa zinazolindwa, hakuna mafunzo yanayofika, na ndani ya robo ni cheo ambacho hakuna anayekitendea kazi. Vuta linaloshindana ni daima shinikizo la utoaji, kwa kuwa saa za usalama za bingwa ni jambo la kwanza kutolewa muhanga tarehe ya mwisho inapokaribia, kwa hiyo swali ni kama uongozi umeweka mpaka kuzunguka muda huo kweli au umeutamani tu. Leta orodha ya mabingwa waliotajwa, saa walizotumia kweli kwenye kazi ya usalama robo iliyopita, mafunzo na msaada wa jumuiya wanaopokea, na vikao vya uundaji wa vitisho walivyoendesha. Kwa shirika kubwa au wakala wa serikali ulioenea kuvuka timu nyingi na mifumo ya muda mrefu, uwezo huu ndio unaoweka mzunguko hai kati ya ukaguzi, kwa hiyo chukulia kuukosesha rasilimali kama uamuzi wa kuacha programu ioze badala ya uangalizi.

  6. Udhaifu muhimu ukitua leo mchana katika utegemezi unaotumika sana, tungepata kwa kasi gani kila huduma iliyoathirika na kuthibitisha tulirekebisha? Mfiduo wa mnyororo wa ugavi ndio hali ya kushindwa inayogeuza dosari moja ya juu ya mkondo kuwa tukio la shirika zima, na jibu linategemea kabisa misingi ambayo mlijenga mapema au hamkujenga: orodha ya vifaa vya programu (SBOM) kwa kila toleo, utegemezi uliobandikwa na kuthibitishwa unaovutwa kupitia sajili ya ndani inayodhibitiwa, na mfumo wa ujenzi ulioimarishwa. Mvutano ni uwekezaji dhidi ya kasi, kwa sababu kuzalisha na kuuliza SBOM na kuelekeza kila utegemezi kupitia sajili kunaongeza msuguano ambao timu huuchukia hadi siku utakapowaokoa. Leta orodha yenu ya sasa ya utegemezi, kama mnaweza kuiuliza kwa kifurushi na toleo kuvuka huduma zote, hali ya ruhusa za mfumo wenu wa ujenzi, na mara ya mwisho mlipofanyia mazoezi urekebishaji wa haraka. Kwa mashirika makubwa na vyombo vya serikali vyenye wajibu wa kisheria wa kuripoti na SLA za kimkataba za urekebishaji, uwezo wa kujibu “mifumo yetu ipi ina kijenzi hiki” kwa dakika badala ya wiki ndio tofauti kati ya ufichuzi uliodhibitiwa na uvunjaji mnaoujua kutoka kwenye habari.

Mtazamo wa sekta

Kampuni changa. Bila timu ya usalama na muda mfupi wa fedha, jenga mzunguko ndani ya zana badala ya wafanyakazi: SAST, uchambuzi wa muundo wa programu, na uchanganuzi wa siri kwenye kila ombi la kuvuta, ukishindwa ujenzi kwa matokeo ya ukali wa juu tu ili malango yabaki ya kuaminika. Mtaje mhandisi mmoja kama bingwa wa usalama na uendeshe kikao cha dakika thelathini cha uundaji wa vitisho kwa chochote kinachogusa fedha au data binafsi. Ruka nyaraka nzito na mifumo rasmi kwa sasa, lakini weka kumbukumbu za bomba, kwa sababu zinakuwa ushahidi wako wa ukaguzi mara tu mteja wako wa kwanza wa shirika kubwa anapouliza SOC 2.

Biashara ndogo. Huna mtaalamu wa usalama na bajeti finyu, kwa hiyo egemea chaguo-msingi salama unazonunua badala ya kujenga: hazina inayopangishwa inayoendesha uchanganuzi wa utegemezi na siri kwa ajili yako, bomba linalosimamiwa lenye malango yaliyowashwa, na mifumo yenye chaguo-msingi zenye busara. Pokea kiwango kifupi cha uandishi salama wa msimbo kilichokopwa badala ya kuandika kimoja, na uchague mazoea mepesi kutoka mfumo ulioimarika badala ya kubuni mzunguko. Pendelea zana zinazoshindwa ujenzi kwa hatari halisi kwa chaguo-msingi, ili usalama ushike bila mtu wa kuutunza kila siku.

Biashara kubwa. Kwa ukubwa kuvuka timu nyingi tatizo ni uthabiti na ushahidi: ng’oa kwenye mfumo mmoja, sawazisha malango ya bomba, na uweke bingwa wa usalama aliyefunzwa ndani ya kila timu ya utoaji aliyeunganishwa na kikundi cha kati cha usalama wa bidhaa. Fuatilia SLA za urekebishaji kati na uripoti umri kwa kamati za hatari, hifadhi vielelezo vya vitisho na matokeo ya uchanganuzi kama mabaki ya ukaguzi, na uelekeze utegemezi kupitia sajili ya ndani inayotoa SBOM kwa kila toleo. Lengo ni kwamba mhandisi anayehama kati ya vitengo vya biashara akutane na malango yaleyale kila mahali na toleo lolote liweze kufuatiliwa kutoka sharti hadi uzalishaji.

Serikali. Kanuni za ununuzi, wajibu wa uwazi, na uwajibikaji wa umma huumba kila uchaguzi, na mzunguko ulioandikwa mara nyingi ni sharti la kisheria la kufanya kazi. Oanisha na mfumo unaotambulika kama NIST SSDF na katalogi husika ya vidhibiti (kwa mfano NIST 800-53) inayooana na mahitaji yenu ya idhini ya kufanya kazi, fanya uundaji wa vitisho kuwa wa lazima na upitiwe na kazi huru ya uhakikisho, na utekeleze seti kamili ya malango ya uchanganuzi yenye mabaki yaliyosainiwa yanayobeba asili. Andika SLA za urekebishaji kwenye mikataba na uweke rekodi isiyobadilika ya matokeo na marekebisho, kwa sababu watumishi wa umma hurithi mifumo hii kwa miongo na nyayo za ukaguzi ndizo zinazoruhusu timu mpya kuiendesha kwa usalama na kuwajibika kwa umma.

Mifano

Kampuni changa. Kampuni changa ya fintech ya watu ishirini haiwezi kuajiri timu ya usalama, kwa hiyo inajenga mzunguko ndani ya zana na tabia zake. Kila ombi la kuvuta linaendesha SAST, SCA, na uchanganuzi wa siri, ujenzi ukishindwa kwa matokeo ya ukali wa juu tu ili malango yabaki ya kuaminika. Mhandisi mmoja anajitolea kama bingwa wa usalama, anaendesha kikao cha dakika thelathini cha uundaji wa vitisho kwa kipengele chochote kinachogusa fedha au data binafsi, na kuweka kiwango cha ukurasa mmoja cha uandishi salama wa msimbo. Ufafanuzi wa kukamilika unajumuisha “hakuna matokeo muhimu yasiyoshughulikiwa” na “siri kwenye hazina, si kwenye msimbo.” Wanapofuata baadaye mteja wao wa kwanza wa shirika kubwa na ukaguzi wa SOC 2, kumbukumbu za bomba na kifuatiliaji cha urekebishaji tayari ni ushahidi wanaouhitaji.

Biashara kubwa. Benki ya kimataifa yenye maelfu ya wahandisi inang’oa programu yake kwenye NIST SSDF, inapima ukomavu kwa OWASP SAMM, na inalinganisha na wenzao kwa BSIMM. Kila timu ya utoaji ina bingwa wa usalama aliyefunzwa aliyeunganishwa na kikundi cha kati cha usalama wa bidhaa. Uundaji wa vitisho ni lango la lazima kwa badiliko lolote linalovuka mpaka wa uaminifu, matokeo yake yakihifadhiwa kama ushahidi wa ukaguzi. Bomba linatekeleza SAST, SCA, uchanganuzi wa IaC, na uchanganuzi wa siri kwenye ujenzi, na DAST dhidi ya maandalizi, na utegemezi unatiririka kupitia sajili ya ndani tu inayozalisha SBOM kwa kila toleo. SLA za urekebishaji zinafuatiliwa kati na kuripotiwa kwa kamati za hatari, kwa hiyo mhandisi anayehama kati ya vitengo vya biashara anakuta malango yaleyale na wakaguzi wanaweza kufuatilia toleo lolote kutoka sharti hadi uzalishaji.

Serikali. Mamlaka ya kitaifa ya kodi inafanya kazi chini ya wajibu wa kisheria wa usalama na haiwezi kusafirisha programu ambayo haijapita mzunguko ulioainishwa. Inaoanisha mazoea yake na NIST SSDF na vidhibiti vya NIST 800-53, vinavyooana na mahitaji yake ya idhini ya kufanya kazi. Mahitaji ya usalama na kesi za matumizi mabaya zimeandikwa kwa kila huduma inayomkabili raia, vielelezo vya vitisho ni vya lazima na vinapitiwa na kazi huru ya uhakikisho (sura ya 10.2), na kila bomba linatekeleza seti kamili ya malango ya uchanganuzi yenye mabaki yaliyosainiwa yanayobeba asili. SLA za urekebishaji ni za kimkataba, na rekodi isiyobadilika ya matokeo na marekebisho inaunga mkono ukaguzi unaoidhinisha kuendelea kufanya kazi. Kwa kuwa watumishi wa umma hurithi mifumo hii kwa miongo, mzunguko ulioandikwa unaruhusu timu mpya kudumisha huduma kwa usalama muda mrefu baada ya waandishi wake kuhamia kwingine.

Kesi ya biashara: sababu, ROI, na TCO

Faida ya mzunguko salama ni gharama ya uvunjaji, matukio, na kazi za dharura za kurekebisha unazozuia, ukitoa gharama ya wastani, mara nyingi ya mara moja ya kujenga malango. Uchumi wote unaelekea upande mmoja: kadiri dosari inavyonaswa mapema, ndivyo inavyokuwa nafuu. Dosari ya usanifu iliyonaswa kwenye kielelezo cha vitisho ni mazungumzo ya ubao mweupe; dosari ileile iliyonaswa kwenye uzalishaji ni tukio lenye ufichuzi, urekebishaji, mfiduo wa udhibiti, na uharibifu wa sifa vilivyoambatana. Kwa kuwa malango ya kiotomatiki ni miundombinu inayotumika tena, gharama yake inalipwa mara moja na kugawanywa kuvuka kila badiliko la baadaye, wakati matukio yanayozuia kila moja lingegharimu zaidi sana kuliko programu nzima.

Jumla ya gharama ya umiliki inatawaliwa si na leseni za zana bali na kurekebisha na mtiririko wa kazi. Mzunguko usiorekebishwa unaofurika timu kwa matokeo ya uongo hupoteza umakini wa kihandisi, huzaa tahadhari zinazopuuzwa, na kuishia kwa malango yaliyozimwa, ambayo ni mabaya kuliko hakuna programu kwa sababu yanatengeneza imani ya uongo. Weka bajeti ya upande wa binadamu: muda wa mabingwa, mtiririko wa kupanga, na kurekebisha endelevu. Kuweka kesi kwa uongozi, unganisha mzunguko na vipimo wanavyofuatilia tayari: kiwango cha kasoro zilizotoroka, muda wa wastani wa kurekebisha, matokeo ya ukaguzi, na gharama ya muda wa mzunguko ya mshangao wa usalama wa hatua za marehemu. Katika mazingira yanayodhibitiwa na ya serikali, mzunguko ulioandikwa, unaotekelezwa mara nyingi ni sharti la kufanya kazi kabisa, ukigeuza usalama kutoka kituo cha gharama kuwa leseni ya kufanya biashara.

Mifumo mibaya na mitego

  • Maigizo ya usalama mwishoni: uchanganuzi mmoja wa kabla ya toleo au jaribio la kupenya la kila mwaka likichukua nafasi ya mzunguko, kwa hiyo dosari zinapatikana zinapokuwa ghali zaidi.
  • Mtawanyiko wa zana bila mtiririko wa kazi: kununua SAST, DAST, na SCA lakini bila mmiliki, SLA, wala upangaji, kwa hiyo matokeo yanarundikana kwenye foleni ambayo kila mtu anaipuuza.
  • Uchovu wa tahadhari kutoka malango yasiyorekebishwa: zana zenye kelele zinazoweka alama kila kitu, zikiwazoeza wahandisi kubofya pita onyo hadi malango hayana maana.
  • Kizuizi cha mlinzi: timu ya kati inayopaswa kuidhinisha kila badiliko, ikiwa foleni ambayo timu hupita pembeni au kuichukia.
  • Mabingwa kwa jina tu: jukumu limepewa lakini hakuna mafunzo, muda, wala utambuzi, kwa hiyo linaoza kuwa cheo tupu.
  • Kielelezo cha vitisho mara moja, kamwe tena: waraka wa awamu ya usanifu ulioandikwa wakati wa kuanza na kamwe haupitiwi tena usanifu unapobadilika.
  • Mifumo ya kuiga bila kufikiri: kupokea shughuli za SDL au SSDF kama ibada bila kuzirekebisha kwa hatari halisi au kuangalia zinabadilisha matokeo.
  • Mnyororo wa ugavi usiosimamiwa: kuvuta utegemezi moja kwa moja kutoka mtandao wa umma, bila kubandikwa wala kuthibitishwa, bila SBOM na mfumo wa ujenzi wenye upendeleo kupita kiasi.
  • SLA kwenye karatasi: tarehe za mwisho za urekebishaji ambazo hakuna anayezipima, kwa hiyo matatizo muhimu yanazeeka kimyakimya kupita tarehe zinazodhaniwa.

Kielelezo cha ukomavu

  • Ngazi ya 1, Kuanzisha: Usalama ni nyongeza ya marehemu na kwa kiasi kikubwa ya kuitikia. Majaribio yanatokea karibu na toleo kama kabisa, hakuna uundaji wa vitisho, uchanganuzi ni wa mkono au haupo, matokeo yanashughulikiwa papo hapo, na mnyororo wa ugavi haujasimamiwa. Kama kipengele fulani ni salama hutegemea kabisa nani alikiandika.
  • Ngazi ya 2, Kuendeleza: Mazoea ya msingi yanaonekana lakini yanatua bila usawa. Baadhi ya mabomba yanaendesha SAST au SCA na uchanganuzi wa siri, mapitio ya msimbo yanataja usalama, na matokeo muhimu yanarekebishwa, lakini ufikiaji una mashimo, uundaji wa vitisho ni nadra, urekebishaji hauna SLA zinazofuatiliwa, na kila timu inaboresha mbinu yake kwa hiyo kiwango kinatofautiana sana kati ya vikundi.
  • Ngazi ya 3, Kusawazisha: Mzunguko ulioandikwa uliong’olewa kwenye mfumo ulioimarika unatekelezwa shirika zima. Mahitaji ya usalama na kesi za matumizi mabaya, lango la uundaji wa vitisho, viwango vya uandishi salama wa msimbo, seti kamili ya malango ya bomba, usalama katika ufafanuzi wa kukamilika, SLA za urekebishaji zinazofuatiliwa, mabingwa wa usalama, na vidhibiti vya mnyororo wa ugavi ni kawaida kuvuka timu, kwa hiyo mhandisi anakutana na matarajio yaleyale popote anapofanya kazi.
  • Ngazi ya 4, Kusimamia: Programu inapimwa na kudhibitiwa dhidi ya vipimo vya msingi. Viashiria vya mbele vinafuatiliwa na kuripotiwa: ufikiaji wa vielelezo vya vitisho kwa mabadiliko makubwa, asilimia ya mabomba yenye malango yanayotarajiwa yaliyowashwa, muda wa wastani wa kurekebisha kwa ukali dhidi ya SLA, kiwango cha kasoro zilizotoroka, na viwango vya matokeo ya uongo kwa zana. Malengo yamewekwa, mikengeuko huchochea hatua, na maamuzi ya kwenda au kutokwenda yanategemea ushahidi badala ya maoni, ili uongozi uone kama mzunguko unashikilia kweli badala ya kudhania.
  • Ngazi ya 5, Kuratibu: Programu inaboreshwa mfululizo na kujirekebisha, ikiwa imeunganishwa kuvuka shirika. Kasoro zilizotoroka hurekebisha malango, zana zenye kelele zinapunguzwa, madaraja ya dosari yanayojirudia huendesha chaguo-msingi salama mpya na mafunzo, mabingwa wanaunda jumuiya hai, asili ya mnyororo wa ugavi inathibitishwa mwanzo hadi mwisho, na upangaji wa usalama umefumwa katika utoaji na usimamizi wa hatari ili mzunguko ujisawazishe upya picha ya vitisho na biashara vinavyohama.

Mawazo ya kujadili

  1. Awamu ipi ya mzunguko wenu ni dhaifu zaidi leo, na ingehitaji nini kuongeza lango halisi hapo badala ya kauli mbiu?
  2. Udhaifu muhimu katika utegemezi ukifichuliwa leo mchana, ingechukua muda gani hadi kila huduma iliyoathirika ipachikwe, na mnajuaje?
  3. Mstari uko wapi kati ya lango linalozuia ujenzi na lango linalowaonya tu, na nani anaamua matokeo yapi yako upande upi?
  4. Mabingwa wenu wa usalama wanapewa saa halisi na utambuzi, au jukumu ni cheo kinachooza kimyakimya?
  5. Mngeweza kutoa, kwa mkaguzi, vielelezo vya vitisho na matokeo ya uchanganuzi kwa toleo mlilosafirisha mwezi uliopita?
  6. Kipimo kipi kimoja, mkianza kukifuatilia sprint ijayo, kingebadilisha zaidi jinsi timu zenu zinavyotenda kuhusu usalama?

Mambo muhimu ya kukumbuka

  • Mzunguko salama wa uendelezaji wa programu hujenga na kuthibitisha usalama katika kila awamu, ukisukuma dosari kushoto hadi ziwe nafuu zaidi kurekebisha, na ni uti wa mgongo wa mchakato unaounganisha usalama wa programu (sura ya 4.2) na operesheni za usalama (sura ya 4.4).
  • Mpe kila awamu mmiliki na lango: mahitaji ya usalama na kesi za matumizi mabaya, lango la uundaji wa vitisho kwenye usanifu, viwango vya uandishi salama wa msimbo, usalama katika mapitio ya msimbo, na usalama katika ufafanuzi wa kukamilika.
  • Weka kila zana ya kiotomatiki mahali inapofaa: SAST, SCA, uchanganuzi wa siri, na uchanganuzi wa IaC huweka lango la ujenzi, wakati DAST na IAST huthibitisha mfumo unaoendesha, na urekebishe kila lango lishindwe kwa kinachojalisha na lisilie mbwa-mwitu.
  • Panua programu kwa mabingwa wa usalama walioko ndani ya timu, ing’oe kwenye mfumo ulioimarika (Microsoft SDL, OWASP SAMM, BSIMM, au NIST SSDF), na uendeshe urekebishaji kwa SLA wazi, zinazopimwa.
  • Linda mnyororo wa ugavi mwanzo hadi mwisho kwa SBOM, utegemezi uliothibitishwa, na mfumo wa ujenzi ulioimarishwa, na upime programu nzima ili iendelee kuboreka badala ya kuoza kuwa sherehe.

Marejeo na usomaji zaidi

  • Michael Howard and Steve Lipner, The Security Development Lifecycle
  • Adam Shostack, Threat Modeling: Designing for Security
  • Gary McGraw, Software Security: Building Security In
  • National Institute of Standards and Technology, Secure Software Development Framework (SSDF), Special Publication 800-218
  • OWASP Foundation, Software Assurance Maturity Model (SAMM)
  • Synopsys, Building Security In Maturity Model (BSIMM)
  • OWASP Foundation, OWASP Application Security Verification Standard (ASVS)
  • Laura Bell, Michael Brunton-Spall, Rich Smith, and Jim Bird, Agile Application Security