DevSecOps වලට ඇති බිය සහ පිළිකුල

අපට කේත විශ්ලේෂක 2ක්, ගතික පරීක්ෂණ මෙවලම් 4ක්, අපේම අත්කම් සහ ස්ක්‍රිප්ට් 250ක් තිබුණා. වර්තමාන ක්‍රියාවලියේදී මේ සියල්ල අවශ්‍ය බව නොවේ, නමුත් ඔබ DevSecOps ක්‍රියාත්මක කිරීමට පටන් ගත් පසු, ඔබට අවසානය දක්වා යා යුතුය.

DevSecOps වලට ඇති බිය සහ පිළිකුල

ප්රභවය. චරිත නිර්මාතෘ: ජස්ටින් රොයිලන්ඩ් සහ ඩෑන් හර්මන්.

SecDevOps යනු කුමක්ද? DevSecOps ගැන කුමක් කිව හැකිද? වෙනස්කම් මොනවාද? යෙදුම් ආරක්ෂාව - එය කුමක් ගැනද? සම්භාව්‍ය ප්‍රවේශය තවදුරටත් ක්‍රියා නොකරන්නේ ඇයි? මේ හැම ප්‍රශ්නයකටම උත්තර දන්නවා යූරි ෂබාලින් සිට කඩු මාළු ආරක්ෂාව. යූරි සෑම දෙයකටම විස්තරාත්මකව පිළිතුරු සපයන අතර සම්භාව්‍ය යෙදුම් ආරක්ෂණ ආකෘතියේ සිට DevSecOps ක්‍රියාවලියට සංක්‍රමණය වීමේ ගැටළු විශ්ලේෂණය කරනු ඇත: ආරක්ෂිත සංවර්ධන ක්‍රියාවලිය DevOps ක්‍රියාවලියට ඒකාබද්ධ කිරීමට නිසි ලෙස ප්‍රවේශ වන්නේ කෙසේද සහ කිසිවක් බිඳ නොදමන්නේ කෙසේද, ප්‍රධාන අදියර හරහා යන්නේ කෙසේද. ආරක්ෂක පරීක්ෂණ, භාවිතා කළ හැකි මෙවලම් මොනවාද, සහ ඒවා වෙනස් වන්නේ කුමක්ද සහ අන්තරායන් වළක්වා ගැනීම සඳහා ඒවා නිවැරදිව වින්‍යාස කරන්නේ කෙසේද.


කථිකයා ගැන: යූරි ෂබාලින් - සමාගමේ ප්රධාන ආරක්ෂක ගෘහ නිර්මාණ ශිල්පියා කඩු මාළු ආරක්ෂාව. යෙදුම් විශ්ලේෂණ මෙවලම් ඒකාබද්ධ සංවර්ධන සහ පරීක්ෂණ පරිසර පද්ධතියකට සමස්ත ඒකාබද්ධ කිරීම සඳහා SSDL ක්‍රියාත්මක කිරීම සඳහා වගකීම දරයි. තොරතුරු ආරක්ෂාව පිළිබඳ වසර 7 ක පළපුරුද්ද. මෘදුකාංග සංවර්ධනය සහ සේවා සපයන Alfa-Bank, Sberbank සහ Positive Technologies හි සේවය කර ඇත. ZerONights, PHDays, RISSPA, OWASP ජාත්‍යන්තර සම්මන්ත්‍රණවල කථානායක.

යෙදුම් ආරක්ෂාව: එය කුමක් ගැනද?

යෙදුම් ආරක්ෂාව - යෙදුම් ආරක්ෂාව සඳහා වගකිව යුතු ආරක්ෂක අංශය මෙයයි. මෙය යටිතල පහසුකම් හෝ ජාල ආරක්ෂාව සඳහා අදාළ නොවේ, නමුත් අප ලියන දේ සහ සංවර්ධකයින් වැඩ කරන දේ සඳහා - මේවා යෙදුමේම අඩුපාඩු සහ දුර්වලතා වේ.

අධ්යක්ෂණය SDL හෝ SDLC - ආරක්ෂක සංවර්ධන ජීවන චක්රය - Microsoft විසින් සංවර්ධනය කරන ලදී. රූප සටහන මඟින් කැනොනිකල් SDLC ආකෘතිය පෙන්වයි, එහි ප්‍රධාන කාර්යය වන්නේ අවශ්‍යතා සිට මුදා හැරීම සහ නිෂ්පාදනය දක්වා සංවර්ධනයේ සෑම අදියරකදීම ආරක්ෂාවට සහභාගී වීමයි. කර්මාන්තයේ බොහෝ දෝෂ ඇති බවත්, ඒවායින් වැඩි ගණනක් ඇති බවත්, ඒ ගැන යමක් කළ යුතු බවත් මයික්‍රොසොෆ්ට් තේරුම් ගත් අතර, ඔවුන් මෙම ප්‍රවේශය යෝජනා කළ අතර එය කැනොනිකල් බවට පත්ව ඇත.

DevSecOps වලට ඇති බිය සහ පිළිකුල

යෙදුම් ආරක්‍ෂාව සහ SSDL සාමාන්‍යයෙන් විශ්වාස කරන පරිදි අවදානම් හඳුනා ගැනීම අරමුණු කර ගෙන නොව, ඒවා සිදුවීම වැළැක්වීමයි. කාලයාගේ ඇවෑමෙන්, මයික්‍රොසොෆ්ට් හි කැනොනිකල් ප්‍රවේශය වැඩි දියුණු කර, සංවර්ධනය කර, ගැඹුරු, වඩාත් සවිස්තරාත්මක කිමිදීමකට හඳුන්වා දී ඇත.

DevSecOps වලට ඇති බිය සහ පිළිකුල

කැනොනිකල් SDLC විවිධ ක්‍රමවේදවල ඉතා සවිස්තරාත්මක වේ - OpenSAMM, BSIMM, OWASP. ක්‍රමවේද වෙනස්, නමුත් පොදුවේ සමාන වේ.

පරිණත මාදිලියේ ආරක්ෂාව ගොඩනැගීම

මම එයට වඩාත්ම කැමතියි BSIMM - පරිණත මාදිලියේ ආරක්ෂාව ගොඩනැගීම. ක්‍රමවේදයේ පදනම වන්නේ යෙදුම් ආරක්ෂණ ක්‍රියාවලිය වසම් 4කට බෙදීමයි: පාලනය, බුද්ධිය, SSDL ස්පර්ශක ස්ථාන සහ යෙදවීම. සෑම වසමකටම ක්‍රියාකාරකම් 12ක් ඇත, ඒවා ක්‍රියාකාරකම් 112ක් ලෙස නිරූපණය කෙරේ.

DevSecOps වලට ඇති බිය සහ පිළිකුල

එක් එක් ක්‍රියාකාරකම් 112 ක් ඇත පරිණත මට්ටම් 3 ක්: ආරම්භක, අතරමැදි සහ උසස්. ඔබට පරිචයන් 12ම කොටසින් කොටස අධ්‍යයනය කළ හැකිය, ඔබට වැදගත් වන දේවල් තෝරා ගත හැකිය, ඒවා ක්‍රියාත්මක කරන්නේ කෙසේදැයි සොයා බලා ක්‍රමයෙන් මූලද්‍රව්‍ය එකතු කළ හැකිය, උදාහරණයක් ලෙස, ස්ථිතික සහ ගතික කේත විශ්ලේෂණය හෝ කේත සමාලෝචනය. තෝරාගත් ක්‍රියාකාරකම් ක්‍රියාත්මක කිරීමේ කොටසක් ලෙස ඔබ සැලැස්මක් ලියා ඒ අනුව සන්සුන්ව වැඩ කරන්න.

ඇයි DevSecOps

DevOps යනු ආරක්ෂාව සැලකිල්ලට ගත යුතු සාමාන්‍ය, විශාල ක්‍රියාවලියකි.

මුලින් දේ ආරක්ෂක චෙක්පත් සම්බන්ධ කර ඇත. ප්‍රායෝගිකව, ආරක්ෂක කණ්ඩායම් සංඛ්‍යාව දැනට වඩා බෙහෙවින් කුඩා වූ අතර, ඔවුන් ක්‍රියා කළේ ක්‍රියාවලියට සහභාගිවන්නන් ලෙස නොව, එය මත අවශ්‍යතා පනවන සහ නිකුතුව අවසානයේ නිෂ්පාදනයේ ගුණාත්මකභාවය පරීක්ෂා කරන පාලන සහ අධීක්ෂණ ආයතනයක් ලෙස ය. මෙය සම්භාව්‍ය ප්‍රවේශයක් වන අතර, ආරක්ෂක කණ්ඩායම් සංවර්ධනයේ සිට බිත්තිය පිටුපස සිටි අතර ක්‍රියාවලියට සහභාගී නොවීය.

DevSecOps වලට ඇති බිය සහ පිළිකුල

ප්රධාන ගැටළුව වන්නේ තොරතුරු සුරක්ෂිතභාවය සංවර්ධනයෙන් වෙන් වී තිබීමයි. සාමාන්යයෙන් මෙය යම් ආකාරයක තොරතුරු ආරක්ෂණ පරිපථයක් වන අතර එය විශාල හා මිල අධික මෙවලම් 2-3 ක් අඩංගු වේ. සෑම මාස හයකට වරක්, පරීක්ෂා කළ යුතු මූල කේතය හෝ යෙදුම පැමිණෙන අතර, වසරකට වරක් ඒවා නිෂ්පාදනය කරනු ලැබේ pentests. මේ සියල්ල කර්මාන්තය සඳහා නිකුත් කරන දිනය ප්‍රමාද වන අතර, සංවර්ධකයා ස්වයංක්‍රීය මෙවලම් වලින් විශාල අවදානම් සංඛ්‍යාවකට නිරාවරණය වේ. මේ සියල්ල විසුරුවා හැර අලුත්වැඩියා කිරීම කළ නොහැක්කකි, මන්ද පෙර මාස හය සඳහා ප්‍රති results ල නිරාකරණය නොවූ නමුත් මෙන්න නව කණ්ඩායමක්.

අපගේ සමාගමේ ක්‍රියාකාරකම් අතරතුර, සියලුම ක්ෂේත්‍රවල සහ කර්මාන්තවල ආරක්ෂාව එකම රෝදය මත සංවර්ධනය කිරීමට සහ කැරකීමට කාලය එළඹ ඇති බව අපට පෙනේ. ඉක්මන්. DevSecOps සුසමාදර්ශය සෑම නිකුතුවකටම සහ පුනරාවර්තනයකටම කඩිසර සංවර්ධන ක්‍රමවේදය, ක්‍රියාත්මක කිරීම, සහාය සහ සහභාගීත්වය සමඟ හොඳින් ගැලපේ.

DevSecOps වලට ඇති බිය සහ පිළිකුල

DevSecOps වෙත සංක්‍රමණය

ආරක්ෂක සංවර්ධන ජීවන චක්‍රයේ වැදගත්ම වචනය වන්නේ "ක්රියාවලිය". මෙවලම් මිලදී ගැනීම ගැන සිතීමට පෙර ඔබ මෙය තේරුම් ගත යුතුය.

DevOps ක්‍රියාවලියට මෙවලම් ඇතුළත් කිරීම ප්‍රමාණවත් නොවේ - ක්‍රියාවලි සහභාගිවන්නන් අතර සන්නිවේදනය සහ අවබෝධය වැදගත් වේ.

මිනිසුන් වඩා වැදගත් ය, මෙවලම් නොවේ.

බොහෝ විට, ආරක්ෂිත සංවර්ධන ක්‍රියාවලියක් සඳහා සැලසුම් කිරීම ආරම්භ වන්නේ මෙවලමක් තෝරා ගැනීම සහ මිලදී ගැනීමෙන් වන අතර, මෙවලම වර්තමාන ක්‍රියාවලියට ඒකාබද්ධ කිරීමට උත්සාහ කිරීමෙන් අවසන් වේ, එය උත්සාහයන් ලෙස පවතී. මෙය අවාසනාවන්ත ප්රතිවිපාකවලට තුඩු දෙයි, මන්ද සියලු මෙවලම් ඔවුන්ගේම ලක්ෂණ සහ සීමාවන් ඇත.

පොදු අවස්ථාවක් වන්නේ ආරක්ෂක දෙපාර්තමේන්තුව පුළුල් හැකියාවන් සහිත හොඳ, මිල අධික මෙවලමක් තෝරාගෙන, එය ක්රියාවලියට ඒකාබද්ධ කිරීමට සංවර්ධකයින් වෙත පැමිණි විටය. නමුත් එය ක්‍රියාත්මක නොවේ - ක්‍රියාවලිය ව්‍යුහගත කර ඇත්තේ දැනටමත් මිලදී ගෙන ඇති මෙවලමෙහි සීමාවන් වර්තමාන සුසමාදර්ශයට නොගැලපෙන ආකාරයට ය.

පළමුව, ඔබට අවශ්‍ය ප්‍රතිඵලය සහ ක්‍රියාවලිය කෙබඳු වේදැයි විස්තර කරන්න. මෙම ක්රියාවලිය තුළ මෙවලම සහ ආරක්ෂාව පිළිබඳ භූමිකාවන් තේරුම් ගැනීමට උපකාර වනු ඇත.

දැනටමත් භාවිතයේ ඇති දේ සමඟ ආරම්භ කරන්න

මිල අධික මෙවලම් මිලදී ගැනීමට පෙර, ඔබ දැනටමත් ඇති දේ දෙස බලන්න. සෑම සමාගමකටම සංවර්ධනය සඳහා ආරක්ෂක අවශ්‍යතා ඇත, චෙක්පත්, පෙන්ටෙස්ට් තිබේ - මේ සියල්ල සෑම කෙනෙකුටම තේරුම් ගත හැකි සහ පහසු ආකෘතියක් බවට පරිවර්තනය නොකරන්නේ මන්ද?

සාමාන්‍යයෙන් අවශ්‍ය වන්නේ රාක්කයක ඇති කඩදාසි ටැල්මුඩ් ය. අපි කම්පැනි එකකට ඇවිල්ලා Processes බලලා Software එකේ Security Requirements බලන්න කියලා කේස් එකක් තිබ්බා. මේ සම්බන්ධයෙන් කටයුතු කළ විශේෂඥයා දිගු කලක් සොයමින් සිටියේ:

- දැන්, සටහන් වල කොතැනක හෝ මෙම ලේඛනය පිහිටා ඇති මාර්ගයක් තිබුණි.

එහි ප්‍රතිඵලයක් ලෙස සතියකට පසුව අපට ලේඛනය ලැබිණි.

අවශ්‍යතා, චෙක්පත් සහ වෙනත් දේවල් සඳහා, උදා: පිටුවක් සාදන්න. ස්තුති කිරීම - එය සෑම කෙනෙකුටම පහසු වේ.

ඔබට දැනටමත් ඇති දේ නැවත ආකෘතිකරණය කිරීම සහ ආරම්භ කිරීමට එය භාවිතා කිරීම පහසුය.

ආරක්ෂක ශූරයන් භාවිතා කරන්න

සාමාන්‍යයෙන්, සංවර්ධකයින් 100-200 ක් සිටින සාමාන්‍ය සමාගමක, කාර්යයන් කිහිපයක් ඉටු කරන එක් ආරක්ෂක විශේෂ ist යෙකු සිටින අතර සෑම දෙයක්ම පරීක්ෂා කිරීමට භෞතිකව කාලය නොමැත. ඔහු උපරිමයෙන් උත්සාහ කළත්, ඔහු පමණක් සංවර්ධනය උත්පාදනය කරන සියලුම කේතය පරීක්ෂා නොකරයි. එවැනි අවස්ථා සඳහා, සංකල්පයක් සකස් කර ඇත - ආරක්ෂක ශූරයන්.

ආරක්ෂක ශූරයන් යනු ඔබේ නිෂ්පාදනයේ ආරක්ෂාව ගැන උනන්දුවක් දක්වන සංවර්ධන කණ්ඩායම තුළ සිටින පුද්ගලයින්ය.

DevSecOps වලට ඇති බිය සහ පිළිකුල

ආරක්ෂක ශූරයා සංවර්ධන කණ්ඩායමට ඇතුල් වන ස්ථානයක් වන අතර ආරක්ෂක එවැන්ජලිස්තවරයෙකු එකකට පෙරළේ.

සාමාන්‍යයෙන්, ආරක්ෂක විශේෂඥයෙක් සංවර්ධන කණ්ඩායමක් වෙත පැමිණ කේතයේ දෝෂයක් පෙන්වූ විට, ඔහුට පුදුම පිළිතුරක් ලැබේ:

- සහ ඔබ කවුද? මම ඔයාව මුලින්ම දකින්නේ. මා සමඟ සෑම දෙයක්ම හොඳයි - මගේ ජ්‍යෙෂ්ඨ මිතුරා මට කේත සමාලෝචනයේදී “අයදුම් කරන්න” ලබා දුන්නේය, අපි ඉදිරියට යමු!

මෙය සාමාන්‍ය තත්වයකි, මන්ද සංවර්ධකයා රැකියාවේදී සහ කේත සමාලෝචනයේදී නිරන්තරයෙන් අන්තර් ක්‍රියා කරන ජ්‍යෙෂ්ඨයන් හෝ හුදෙක් කණ්ඩායම් සගයන් කෙරෙහි වැඩි විශ්වාසයක් පවතින බැවිනි. ආරක්ෂක නිලධාරියා වෙනුවට ආරක්ෂක ශූරයා වරද සහ ප්‍රතිවිපාක පෙන්වා දෙන්නේ නම්, ඔහුගේ වචනයට වැඩි බරක් ලැබෙනු ඇත.

එසේම, සංවර්ධකයින් ඔවුන්ගේ කේතය ඕනෑම ආරක්ෂක විශේෂඥයෙකුට වඩා හොඳින් දනී. ස්ථිතික විශ්ලේෂණ මෙවලමක අවම වශයෙන් ව්‍යාපෘති 5 ක් ඇති පුද්ගලයෙකුට, සාමාන්‍යයෙන් සියලු සූක්ෂ්මතා මතක තබා ගැනීම දුෂ්කර ය. ආරක්ෂක ශූරයින් ඔවුන්ගේ නිෂ්පාදනය දන්නවා: කුමක් සමඟ අන්තර්ක්‍රියා කරන දේ සහ මුලින්ම බැලිය යුතු දේ - ඒවා වඩාත් ඵලදායී වේ.

එබැවින් ආරක්ෂක ශූරයන් ක්රියාත්මක කිරීම සහ ඔබේ ආරක්ෂක කණ්ඩායමේ බලපෑම පුළුල් කිරීම සලකා බලන්න. මෙය ශූරයාටම ප්‍රයෝජනවත් වේ: නව ක්ෂේත්‍රයක වෘත්තීය සංවර්ධනය, ඔහුගේ තාක්ෂණික ක්ෂිතිජය පුළුල් කිරීම, තාක්ෂණික, කළමනාකරණ සහ නායකත්ව කුසලතා වැඩි දියුණු කිරීම, වෙළඳපල වටිනාකම වැඩි කිරීම. මෙය සමාජ ඉංජිනේරු විද්යාවේ සමහර අංගයකි, සංවර්ධන කණ්ඩායමේ ඔබේ "ඇස්".

පරීක්ෂණ අදියර

සුසමාදර්ශය 20 සිට 80 දක්වා උත්සාහයෙන් 20% ක් ප්‍රතිඵලවලින් 80% ක් නිපදවන බව පවසයි. මෙම 20% ස්වයංක්‍රීය කළ හැකි සහ කළ යුතු යෙදුම් විශ්ලේෂණ භාවිතයන් වේ. එවැනි ක්‍රියාකාරකම් සඳහා උදාහරණ ස්ථිතික විශ්ලේෂණය - SAST, ගතික විශ්ලේෂණය - DAST и විවෘත මූලාශ්ර පාලනය. ක්‍රියාකාරකම් ගැන මෙන්ම මෙවලම් ගැනද, ඒවා ක්‍රියාවලියට හඳුන්වා දීමේදී අපට සාමාන්‍යයෙන් හමු වන විශේෂාංග මොනවාද සහ එය නිවැරදිව කරන්නේ කෙසේද යන්න ගැන මම ඔබට වැඩි විස්තර කියන්නම්.

DevSecOps වලට ඇති බිය සහ පිළිකුල

මෙවලම්වල ප්රධාන ගැටළු

සියලුම උපකරණ සඳහා අදාළ වන සහ අවධානය යොමු කළ යුතු ගැටළු මම ඉස්මතු කරමි. ඒවා තවදුරටත් නැවත නොකිරීමට මම ඒවා වඩාත් විස්තරාත්මකව විශ්ලේෂණය කරමි.

දිගු විශ්ලේෂණ කාලය. කැපවීමෙන් නිදහස් කිරීමට සියලු පරීක්ෂණ සහ එකලස් කිරීම සඳහා මිනිත්තු 30ක් ගතවේ නම්, තොරතුරු ආරක්ෂණ පරීක්ෂා කිරීම් සඳහා දිනක් ගතවනු ඇත. එබැවින් කිසිවෙකු ක්රියාවලිය මන්දගාමී නොවනු ඇත. මෙම අංගය සැලකිල්ලට ගෙන නිගමන උකහා ගන්න.

ඉහළ මට්ටමේ ව්‍යාජ සෘණ හෝ ව්‍යාජ ධනාත්මක. සියලුම නිෂ්පාදන වෙනස් වේ, සියල්ලම විවිධ රාමු සහ තමන්ගේම කේතීකරණ විලාසය භාවිතා කරයි. විවිධ කේත පදනම් සහ තාක්ෂණයන් මත, මෙවලම් විවිධ මට්ටම්වල ව්‍යාජ සෘණ සහ ව්‍යාජ ධනාත්මක පෙන්විය හැක. ඒ නිසා හරියටම මොකක්ද කියලා බලන්න ඔබගේ සමාගම් සහ සඳහා ඔබේ යෙදුම් හොඳ සහ විශ්වසනීය ප්රතිඵල පෙන්වනු ඇත.

පවතින මෙවලම් සමඟ ඒකාබද්ධ කිරීම් නොමැත. ඔබ දැනටමත් භාවිතා කරන දේ සමඟ ඒකාබද්ධ කිරීම් අනුව මෙවලම් දෙස බලන්න. උදාහරණයක් ලෙස, ඔබට Jenkins හෝ TeamCity තිබේ නම්, ඔබ භාවිතා නොකරන GitLab CI සමඟ නොව, මෙම මෘදුකාංගය සමඟ මෙවලම් ඒකාබද්ධ කිරීම පරීක්ෂා කරන්න.

අභිරුචිකරණයේ නොමැතිකම හෝ අධික සංකීර්ණත්වය. මෙවලමකට API නොමැති නම්, එය අවශ්‍ය වන්නේ ඇයි? අතුරුමුහුණත තුළ කළ හැකි සෑම දෙයක්ම API හරහා ලබා ගත යුතුය. ඉතා මැනවින්, මෙවලමට චෙක්පත් අභිරුචිකරණය කිරීමේ හැකියාව තිබිය යුතුය.

නිෂ්පාදන සංවර්ධන මාර්ග සිතියමක් නොමැත. සංවර්ධනය නිශ්චල නොවේ, අපි සෑම විටම නව රාමු සහ කාර්යයන් භාවිතා කරමු, පැරණි කේතය නව භාෂාවලට නැවත ලියන්නෙමු. අප මිලදී ගන්නා මෙවලම නව රාමු සහ තාක්ෂණයන්ට සහාය දක්වන බවට සහතික වීමට අපට අවශ්‍යය. එමනිසා, නිෂ්පාදනයේ සැබෑ සහ නිවැරදි බව දැන ගැනීම වැදගත්ය මාර්ග සිතියමක් සංවර්ධනයක්.

ක්රියාවලි ලක්ෂණ

මෙවලම්වල ලක්ෂණ වලට අමතරව, සංවර්ධන ක්රියාවලියේ ලක්ෂණ සැලකිල්ලට ගන්න. නිදසුනක් වශයෙන්, සංවර්ධනයට බාධා කිරීම පොදු වැරැද්දකි. සැලකිල්ලට ගත යුතු වෙනත් විශේෂාංග මොනවාද සහ ආරක්ෂක කණ්ඩායම අවධානය යොමු කළ යුතු දේ බලමු.

සංවර්ධනය අතපසු නොකිරීමට සහ නියමිත කාලසීමාවන් මුදා හැරීම සඳහා, නිර්මාණය කරන්න විවිධ නීති සහ වෙනස් නැවතුම් පෙන්වන්න - දුර්වලතා ඉදිරියේ ගොඩනැගීමේ ක්‍රියාවලිය නැවැත්වීමේ නිර්ණායක - විවිධ පරිසරයන් සඳහා. උදාහරණයක් ලෙස, වත්මන් ශාඛාව සංවර්ධන ස්ථාවරය හෝ UAT වෙත යන බව අපට වැටහේ, එයින් අදහස් වන්නේ අපි නතර වී මෙසේ නොකියමු:

"ඔබට මෙහි දුර්වලතා ඇත, ඔබ තවදුරටත් කොහේවත් නොයනු ඇත!"

මෙම අවස්ථාවේදී, අවධානය යොමු කළ යුතු ආරක්ෂක ගැටළු ඇති බව සංවර්ධකයින්ට පැවසීම වැදගත් වේ.

දුර්වලතා පැවතීම වැඩිදුර පරීක්ෂණ සඳහා බාධාවක් නොවේ: අත්පොත, ඒකාබද්ධ කිරීම හෝ අත්පොත. අනෙක් අතට, අපි කෙසේ හෝ නිෂ්පාදනයේ ආරක්ෂාව වැඩි කළ යුතු අතර, සංවර්ධකයින් ඔවුන් ආරක්ෂිත යැයි සොයා ගන්නා දේ නොසලකා හරිනු නොලැබේ. එමනිසා, සමහර විට අපි මෙය කරන්නෙමු: ස්ථාවරයේදී, එය සංවර්ධන පරිසරයට පෙරළන විට, අපි සංවර්ධනයට දැනුම් දෙන්නෙමු:

- යාලුවනේ, ඔබට ගැටළු තිබේ, කරුණාකර ඔවුන් වෙත අවධානය යොමු කරන්න.

UAT අදියරේදී අපි නැවතත් අවදානම් පිළිබඳ අනතුරු ඇඟවීම් පෙන්වන අතර මුදා හැරීමේ අදියරේදී අපි මෙසේ කියමු:

- යාලුවනේ, අපි ඔබට කිහිප වතාවක්ම අනතුරු ඇඟෙව්වා, ඔබ කිසිවක් කළේ නැහැ - අපි ඔබට මෙය එළියට දාන්නේ නැහැ.

අපි කේතය සහ ගතිකත්වය ගැන කතා කරන්නේ නම්, මෙම විශේෂාංගයේ දැන් ලියා ඇති එම විශේෂාංග සහ කේතයන් පමණක් දුර්වලතා පෙන්වීමට සහ අනතුරු ඇඟවීමට අවශ්ය වේ. සංවර්ධකයෙකු බොත්තමක් පික්සල 3කින් ගෙන ගියහොත්, ඔහුට එහි SQL එන්නතක් ඇති බවත්, එම නිසා ඉක්මනින් නිවැරදි කළ යුතු බවත් අපි ඔහුට පැවසුවොත්, මෙය වැරදිය. දැන් ලියා ඇති දේ සහ යෙදුමට එන වෙනස දෙස පමණක් බලන්න.

අපට යම් ක්‍රියාකාරී දෝෂයක් ඇතැයි කියමු - යෙදුම ක්‍රියා නොකළ යුතු ආකාරය: මුදල් මාරු නොකෙරේ, ඔබ බොත්තමක් මත ක්ලික් කළ විට ඊළඟ පිටුවට සංක්‍රමණයක් නොමැත, නැතහොත් නිෂ්පාදනය පූරණය නොවේ. ආරක්ෂක දෝෂ - මේවා එකම අඩුපාඩු වේ, නමුත් යෙදුම් ක්‍රියාකාරිත්වය අනුව නොව ආරක්ෂාව තුළ.

සියලුම මෘදුකාංග තත්ත්ව ගැටළු ආරක්ෂක ගැටළු නොවේ. නමුත් සියලුම ආරක්ෂක ගැටළු මෘදුකාංගයේ ගුණාත්මකභාවය හා සම්බන්ධ වේ. ෂෙරිෆ් මන්සූර්, එක්ස්පීඩියා.

සියලුම දුර්වලතා එකම දෝෂ බැවින්, ඒවා සියලු සංවර්ධන දෝෂ මෙන් එකම ස්ථානයක පිහිටා තිබිය යුතුය. එබැවින් කිසිවෙකු කියවන වාර්තා සහ බියජනක PDF ගැන අමතක කරන්න.

DevSecOps වලට ඇති බිය සහ පිළිකුල

මම සංවර්ධන සමාගමක වැඩ කරන විට, මට ස්ථිතික විශ්ලේෂණ මෙවලම් වලින් වාර්තාවක් ලැබුණි. මම එය විවෘත කර, භීතියට පත් වී, කෝපි සාදා, පිටු 350 ක් අතුරා, එය වසා දමා වැඩට ගියෙමි. විශාල වාර්තා මළ වාර්තා වේ. සාමාන්යයෙන් ඔවුන් කොහේවත් යන්නේ නැත, ලිපි මකා දමනු ලැබේ, අමතක වී ඇත, නැති වී යයි, නැතහොත් ව්යාපාරය පවසන්නේ එය අවදානම් පිළිගන්නා බවයි.

කුමක් කරන්න ද? අපි සොයාගත් තහවුරු කළ අඩුපාඩු සංවර්ධනය සඳහා පහසු පෝරමයක් බවට පරිවර්තනය කරමු, උදාහරණයක් ලෙස, අපි ඒවා ජිරා හි පසුබෑමක තබමු. අපි ක්‍රියාකාරී දෝෂ සහ පරීක්ෂණ දෝෂ සමඟින් දෝෂවලට ප්‍රමුඛත්වය දී ඒවා ප්‍රමුඛතා අනුපිළිවෙලින් ඉවත් කරමු.

ස්ථිතික විශ්ලේෂණය - SAST

මෙය දුර්වලතා සඳහා කේත විශ්ලේෂණයකි., නමුත් එය SonarQube හා සමාන නොවේ. අපි රටා හෝ මෝස්තර සඳහා පමණක් පරීක්ෂා නොකරමු. විශ්ලේෂණයේ දී ප්රවේශයන් ගණනාවක් භාවිතා කරනු ලැබේ: අවදානම් ගස අනුව, අනුව දත්ත ප්රවාහය, වින්‍යාස ගොනු විශ්ලේෂණය කිරීමෙන්. කේතයම අදාළ වන්නේ මෙයයි.

ප්රවේශයේ වාසි: සංවර්ධනයේ මුල් අවධියේදී කේතයේ ඇති දුර්වලතා හඳුනා ගැනීමතවමත් ස්ථාවර හෝ සූදානම් කළ මෙවලම් නොමැති විට, සහ වර්ධක ස්කෑනිං හැකියාව: වෙනස් වී ඇති කේතයේ කොටසක් පරිලෝකනය කිරීම සහ ස්කෑන් කිරීමේ කාලය අඩු කරන අප දැනට කරමින් සිටින විශේෂාංගය පමණි.

මිනිසු - මෙය අවශ්‍ය භාෂා සඳහා සහය නොමැතිකමයි.

අවශ්ය ඒකාබද්ධ කිරීම්, මගේ ආත්මීය මතය අනුව මෙවලම්වල තිබිය යුතු දේ:

  • ඒකාබද්ධ කිරීමේ මෙවලම: Jenkins, TeamCity සහ Gitlab CI.
  • සංවර්ධන පරිසරය: Intellij IDEA, Visual Studio. සංවර්ධකයෙකුට තවමත් මතක තබා ගත යුතු නොතේරෙන අතුරු මුහුණතක් සැරිසැරීමට නොව, ඔහුගේම සංවර්ධන පරිසරය තුළ සේවා ස්ථානයේ දී ඔහු විසින්ම සොයාගත් අවශ්‍ය සියලු ඒකාබද්ධ කිරීම් සහ දුර්වලතා දැකීම වඩාත් පහසු වේ.
  • කේත සමාලෝචනය: SonarQube සහ අතින් සමාලෝචනය.
  • දෝෂ ට්රැකර්: ජිරා සහ බග්සිලා.

ස්ථිතික විශ්ලේෂණයේ හොඳම නියෝජිතයන් කිහිපයක් පින්තූරයේ දැක්වේ.

DevSecOps වලට ඇති බිය සහ පිළිකුල

වැදගත් වන්නේ මෙවලම් නොව ක්‍රියාවලියයි, එබැවින් ක්‍රියාවලිය පරීක්ෂා කිරීම සඳහා හොඳ විවෘත මූලාශ්‍ර විසඳුම් තිබේ.

DevSecOps වලට ඇති බිය සහ පිළිකුල

SAST විවෘත මූලාශ්‍රය විශාල අවදානම් සංඛ්‍යාවක් හෝ සංකීර්ණ දත්ත ප්‍රවාහයන් සොයා නොගනු ඇත, නමුත් ක්‍රියාවලියක් ගොඩනැගීමේදී ඒවා භාවිතා කළ හැකි අතර භාවිතා කළ යුතුය. ක්‍රියාවලිය ගොඩනඟන්නේ කෙසේද, දෝෂ වලට ප්‍රතිචාර දක්වන්නේ කවුද, වාර්තා කරන්නේ කවුද සහ වාර්තා කරන්නේ කවුද යන්න තේරුම් ගැනීමට ඒවා උපකාරී වේ. ඔබගේ කේතයේ ආරක්ෂාව ගොඩනැගීමේ ආරම්භක අදියර සිදු කිරීමට ඔබට අවශ්‍ය නම්, විවෘත මූලාශ්‍ර විසඳුම් භාවිතා කරන්න.

ඔබ ඔබේ ගමනේ ආරම්භයේ සිටින අතර කිසිවක් නොමැති නම් මෙය ඒකාබද්ධ කළ හැක්කේ කෙසේද: CI නැත, ජෙන්කින්ස් නැත, TeamCity නැත? ක්රියාවලියට ඒකාබද්ධ කිරීම සලකා බලමු.

CVS මට්ටමේ ඒකාබද්ධ කිරීම

ඔබට Bitbucket හෝ GitLab තිබේ නම්, ඔබට මට්ටමින් ඒකාබද්ධ කළ හැකිය සමගාමී අනුවාද පද්ධතිය.

සිදුවීම අනුව - ඉල්ලීම අදින්න, කැප කරන්න. ඔබ කේතය ස්කෑන් කරන අතර ගොඩනැගීමේ තත්ත්වය ආරක්ෂක පරීක්ෂාව සමත් වූවාද අසාර්ථක වූවාද යන්න පෙන්වයි.

ප්රතිපෝෂණය. ඇත්ත වශයෙන්ම, ප්රතිපෝෂණ සෑම විටම අවශ්ය වේ. ඔබ පසෙකින් ආරක්ෂාවක් කළේ නම්, එය පෙට්ටියක දමා කිසිවෙකුට ඒ ගැන කිසිවක් නොකියා, පසුව මාසය අවසානයේදී දෝෂ සමූහයක් විසි කළේය - මෙය නිවැරදි නොවන අතර හොඳ නැත.

කේත සමාලෝචන පද්ධතිය සමඟ ඒකාබද්ධ වීම

වරක්, අපි වැදගත් ව්‍යාපෘති ගණනාවක තාක්ෂණික AppSec පරිශීලකයෙකු සඳහා පෙරනිමි සමාලෝචකයා ලෙස ක්‍රියා කළෙමු. නව කේතයේ දෝෂ හඳුනාගෙන තිබේද නැතහොත් දෝෂ නොමැතිද යන්න මත පදනම්ව, සමාලෝචකයා ඇදීමේ ඉල්ලීමෙහි තත්ත්වය “පිළිගන්න” හෝ “වැඩ අවශ්‍යයි” ලෙස සකසයි - එක්කෝ සියල්ල හරි, නැතහොත් හරියටම වැඩිදියුණු කළ යුතු දේට සබැඳි වැඩිදියුණු කළ යුතුය. නිෂ්පාදනයට යන අනුවාදය සමඟ ඒකාබද්ධ කිරීම සඳහා, අපි තොරතුරු ආරක්ෂණ පරීක්ෂණය සමත් නොවන්නේ නම් ඒකාබද්ධ කිරීමේ තහනමක් සක්‍රීය කර ඇත. අපි මෙය හස්තීය කේත සමාලෝචනයට ඇතුළත් කළ අතර, ක්‍රියාවලියේ අනෙකුත් සහභාගිවන්නන් මෙම විශේෂිත ක්‍රියාවලිය සඳහා ආරක්ෂක තත්ත්වයන් දුටුවේය.

SonarQube සමඟ ඒකාබද්ධ වීම

බොහෝ දෙනෙකුට තිබේ ගුණාත්මක ගේට්ටුව කේතයේ ගුණාත්මකභාවය අනුව. එය මෙහි සමාන වේ - ඔබට එකම ගේට්ටු සෑදිය හැක්කේ SAST මෙවලම් සඳහා පමණි. එකම අතුරු මුහුණතක්, එකම ගුණාත්මක ගේට්ටුවක් ඇත, එය පමණක් කැඳවනු ලැබේ ආරක්ෂක ගේට්ටුව. තවද, ඔබට SonarQube භාවිතයෙන් ක්‍රියාවලියක් තිබේ නම්, ඔබට එහි ඇති සියල්ල පහසුවෙන් ඒකාබද්ධ කළ හැකිය.

CI මට්ටමින් ඒකාබද්ධ කිරීම

මෙහි සෑම දෙයක්ම ඉතා සරල ය:

  • ස්වයංක්‍රීය පරීක්‍ෂණවලට සමගාමීව, ඒකක පරීක්ෂණ.
  • සංවර්ධන අදියර අනුව බෙදීම: dev, test, prod. විවිධ නීති රීති හෝ විවිධ අසාර්ථක කොන්දේසි ඇතුළත් විය හැකිය: එකලස් කිරීම නවත්වන්න, එකලස් කිරීම නවත්වන්න එපා.
  • සමමුහුර්ත/අසමමුහුර්ත දියත් කිරීම. ආරක්‍ෂක පරීක්‍ෂණ අවසන් වනතුරුත් නැතත් අපි බලා සිටිමු. එනම්, අපි ඒවා දියත් කර ඉදිරියට යමු, එවිට අපට සියල්ල හොඳ හෝ නරක යන තත්ත්වය ලැබේ.

ඒ සියල්ල පරිපූර්ණ රෝස ලෝකයක. සැබෑ ජීවිතයේ එවැනි දෙයක් නැත, නමුත් අපි උත්සාහ කරමු. ආරක්ෂක චෙක්පත් ක්රියාත්මක කිරීමේ ප්රතිඵලය ඒකක පරීක්ෂණවල ප්රතිඵලවලට සමාන විය යුතුය.

උදාහරණයක් ලෙස, අපි විශාල ව්‍යාපෘතියක් ගෙන දැන් අපි එය SAST - OK සමඟ ස්කෑන් කරන බව තීරණය කළෙමු. අපි මෙම ව්‍යාපෘතිය SAST වෙත තල්ලු කළෙමු, එය අපට අවදානම් 20 ක් ලබා දුන් අතර දැඩි කැමැත්තෙන් ගත් තීරණයකින් අපි සියල්ල හොඳින් බව තීරණය කළෙමු. 000 අවදානම් අපගේ තාක්ෂණික ණය වේ. අපි ණය පෙට්ටියකට දමන්නෙමු, අපි එය සෙමින් ඉවත් කර දෝෂ සහිත ට්රැකර් වෙත දෝෂ එකතු කරන්නෙමු. අපි සමාගමක් කුලියට ගනිමු, සෑම දෙයක්ම අප විසින්ම කරමු, නැතහොත් ආරක්ෂක ශූරයින් අපට උදව් කරමු - එවිට තාක්ෂණික ණය අඩු වනු ඇත.

තවද නව කේතයේ අලුතින් මතුවන සියලුම දුර්වලතා ඒකකයක හෝ ස්වයංක්‍රීය පරීක්ෂණ වලදී ඇති වන දෝෂ මෙන් ම ඉවත් කළ යුතුය. සාපේක්ෂ වශයෙන්, රැස්වීම ආරම්භ විය, අපි එය ධාවනය කළෙමු, පරීක්ෂණ දෙකක් සහ ආරක්ෂක පරීක්ෂණ දෙකක් අසාර්ථක විය. හරි - අපි ගියා, මොකද වුණේ කියලා බැලුවා, එක දෙයක් නිවැරදි කළා, තවත් දෙයක් නිවැරදි කළා, ඊළඟ වතාවේ එය ක්‍රියාත්මක කළා - හැම දෙයක්ම හොඳයි, නව දුර්වලතා මතු වුණේ නැහැ, කිසිම පරීක්ෂණයක් අසාර්ථක වුණේ නැහැ. මෙම කාර්යය වඩාත් ගැඹුරු නම් සහ ඔබ එය හොඳින් තේරුම් ගත යුතු නම්, හෝ අවදානම් නිවැරදි කිරීම ආවරණය යටතේ ඇති විශාල ස්ථරවලට බලපායි: දෝෂයක් ට්රැකර් වෙත දෝෂයක් එකතු කර ඇත, එය ප්රමුඛත්වය දී නිවැරදි කරනු ලැබේ. අවාසනාවකට මෙන්, ලෝකය පරිපූර්ණ නොවන අතර පරීක්ෂණ සමහර විට අසාර්ථක වේ.

ආරක්‍ෂක ගේට්ටුවක උදාහරණයක් වන්නේ කේතයේ ඇති දුර්වලතා සහ සංඛ්‍යාව අනුව ගුණාත්මක ගේට්ටුවක ප්‍රතිසමයකි.

DevSecOps වලට ඇති බිය සහ පිළිකුලඅපි SonarQube සමඟ ඒකාබද්ධ කරමු - ප්ලගිනය ස්ථාපනය කර ඇත, සෑම දෙයක්ම ඉතා පහසු සහ සිසිල්.

සංවර්ධන පරිසරය සමඟ ඒකාබද්ධ වීම

ඒකාබද්ධ කිරීමේ විකල්ප:

  • කැපවීමට පෙර සංවර්ධන පරිසරයෙන් ස්කෑන් පරීක්ෂණයක් ධාවනය කිරීම.
  • ප්රතිඵල බලන්න.
  • ප්‍රති .ල විශ්ලේෂණය.
  • සේවාදායකය සමඟ සමමුහුර්තකරණය.

සේවාදායකයෙන් ප්‍රතිඵල ලැබීමට පෙනෙන්නේ මෙයයි.

DevSecOps වලට ඇති බිය සහ පිළිකුල

අපේ සංවර්ධන පරිසරය තුළ බුද්ධි IDEA ස්කෑන් කිරීමේදී එවැනි දුර්වලතා අනාවරණය වූ බව ඔබට දන්වන අතිරේක අයිතමයක් දිස්වේ. ඔබට වහාම කේතය සංස්කරණය කළ හැකිය, නිර්දේශ බලන්න සහ ප්රවාහ ප්රස්ථාරය. මේ සියල්ල සංවර්ධකයාගේ සේවා ස්ථානයේ පිහිටා ඇත, එය ඉතා පහසු වේ - වෙනත් සබැඳි අනුගමනය කර අමතර දෙයක් බැලීමට අවශ්‍ය නොවේ.

විවෘත කේතය

මේක මම ආසම මාතෘකාවක්. සෑම කෙනෙකුම විවෘත මූලාශ්‍ර පුස්තකාල භාවිතා කරයි - ඔබට දැනටමත් සියල්ල ක්‍රියාත්මක කර ඇති සූදානම් කළ පුස්තකාලයක් ගත හැකි විට කිහිලිකරු සහ බයිසිකල් පොකුරක් ලියන්නේ ඇයි?

DevSecOps වලට ඇති බිය සහ පිළිකුල

ඇත්ත වශයෙන්ම, මෙය සත්‍යයකි, නමුත් පුස්තකාල ද ලියා ඇත්තේ මිනිසුන් විසිනි, ඒවාට යම් යම් අවදානම් ද ඇතුළත් වන අතර වරින් වර හෝ නිරන්තරයෙන් වාර්තා වන අවදානම් ද ඇත. එබැවින්, යෙදුම් ආරක්ෂාවේ ඊළඟ පියවර තිබේ - මෙය විවෘත මූලාශ්‍ර සංරචක විශ්ලේෂණයයි.

විවෘත මූලාශ්‍ර විශ්ලේෂණය - OSA

මෙවලම විශාල අදියර තුනක් ඇතුළත් වේ.

පුස්තකාලවල ඇති දුර්වලතා සෙවීම. උදාහරණයක් ලෙස, අපි යම් පුස්තකාලයක් භාවිතා කරන බව මෙවලම දනී, සහ එය තුළ CVE හෝ පුස්තකාලයේ මෙම අනුවාදයට අදාළ දෝෂ ලුහුබැඳීම් වල යම් යම් දුර්වලතා තිබේ. ඔබ එය භාවිතා කිරීමට උත්සාහ කරන විට, මෙවලම පුස්තකාලය අවදානමට ලක්විය හැකි බවට අනතුරු ඇඟවීමක් නිකුත් කරන අතර අවදානම් නොමැති වෙනත් අනුවාදයක් භාවිතා කිරීමට උපදෙස් දෙයි.

බලපත්ර සංශුද්ධතාවය විශ්ලේෂණය. මෙය තවමත් මෙහි විශේෂයෙන් ජනප්‍රිය නැත, නමුත් ඔබ විදේශයක සේවය කරන්නේ නම්, භාවිතා කිරීමට හෝ වෙනස් කිරීමට නොහැකි විවෘත මූලාශ්‍ර සංරචකයක් භාවිතා කිරීම සඳහා වරින් වර ඔබට එහි බද්දක් ලබා ගත හැකිය. බලපත්‍රලාභී පුස්තකාල ප්‍රතිපත්තියට අනුව අපට මෙය කළ නොහැක. එහෙම නැත්තම් අපි ඒක modify කරලා පාවිච්චි කරනවා නම් අපි අපේ code එක දාන්න ඕනේ. ඇත්ත වශයෙන්ම, කිසිවෙකුට ඔවුන්ගේ නිෂ්පාදනවල කේතය ප්‍රකාශයට පත් කිරීමට අවශ්‍ය නැත, නමුත් ඔබට මෙයින් ආරක්ෂා විය හැකිය.

කාර්මික පරිසරයක භාවිතා වන සංරචක විශ්ලේෂණය. අපි අවසානයේ සංවර්ධනය සම්පූර්ණ කර අපගේ මයික්‍රො සර්විස් හි නවතම නිකුතුව නිකුත් කර ඇති බවට උපකල්පිත තත්වයක් සිතමු. ඔහු එහි අපූරු ලෙස ජීවත් වේ - සතියක්, මාසයක්, අවුරුද්දක්. අපි එය එකතු නොකරමු, අපි ආරක්ෂක පරීක්ෂාවන් සිදු නොකරමු, සෑම දෙයක්ම හොඳින් ඇති බව පෙනේ. නමුත් හදිසියේම, නිකුත් වී සති දෙකකට පසු, කාර්මික පරිසරය තුළ මෙම විශේෂිත ගොඩනැගීමේදී අප භාවිතා කරන විවෘත මූලාශ්‍ර සංරචකයේ තීරණාත්මක අවදානමක් දිස්වේ. අප භාවිතා කරන්නේ කුමක්ද සහ කොතැනද යන්න අප වාර්තා නොකරන්නේ නම්, එවිට අපට මෙම අවදානම නොපෙනේ. සමහර මෙවලම් වලට දැනට කර්මාන්තයේ භාවිතා වන පුස්තකාලවල ඇති දුර්වලතා නිරීක්ෂණය කිරීමේ හැකියාව ඇත. එය ඉතා ප්රයෝජනවත් වේ.

අවස්ථා:

  • සංවර්ධනයේ විවිධ අවධීන් සඳහා විවිධ ප්‍රතිපත්ති.
  • කාර්මික පරිසරයක සංරචක නිරීක්ෂණය කිරීම.
  • සංවිධානය තුළ පුස්තකාල පාලනය.
  • විවිධ ගොඩනැගීම් පද්ධති සහ භාෂා සඳහා සහාය.
  • ඩොකර් පින්තූර විශ්ලේෂණය.

විවෘත මූලාශ්‍ර විශ්ලේෂණයේ යෙදී සිටින කර්මාන්ත නායකයින්ගේ උදාහරණ කිහිපයක්.

DevSecOps වලට ඇති බිය සහ පිළිකුල
එකම නිදහස් එක මේකයි යැපීම-පරීක්ෂා කරන්න OWASP වෙතින්. ඔබට පළමු අදියරේදී එය සක්රිය කළ හැකිය, එය ක්රියා කරන ආකාරය සහ එය සහාය දෙන දේ බලන්න. මූලික වශයෙන්, මේ සියල්ල වලාකුළු නිෂ්පාදන හෝ පරිශ්‍රයේ ඇත, නමුත් ඒවායේ පදනම පිටුපස ඒවා තවමත් අන්තර්ජාලයට යවනු ලැබේ. ඔවුන් ඔබේ පුස්තකාල නොව, හැෂ් හෝ ඔවුන්ගේම අගයන් යවයි, ඔවුන් ගණනය කරන අතර, අවදානම් පවතින බව පිළිබඳ තොරතුරු ලබා ගැනීම සඳහා ඔවුන්ගේ සේවාදායකයට ඇඟිලි සලකුණු යවයි.

ක්රියාවලි ඒකාබද්ධ කිරීම

පුස්තකාල පරිමිතිය පාලනය කිරීම, බාහිර මූලාශ්ර වලින් බාගත කර ඇත. අපට බාහිර හා අභ්‍යන්තර ගබඩා ඇත. උදාහරණයක් ලෙස, Event Central Nexus ධාවනය කරන අතර, අපගේ ගබඩාව තුළ “විවේචනාත්මක” හෝ “ඉහළ” තත්ත්වයකින් කිසිදු අවදානමක් නොමැති බව සහතික කිරීමට අපට අවශ්‍යය. Nexus Firewall Lifecycle මෙවලම භාවිතයෙන් ඔබට ප්‍රොක්සි කිරීම වින්‍යාසගත කළ හැක, එවිට එවැනි අවදානම් කපා හැර අභ්‍යන්තර ගබඩාවේ අවසන් නොවේ.

CI වෙත ඒකාබද්ධ කිරීම. ස්වයං පරීක්ෂණ, ඒකක පරීක්ෂණ සහ සංවර්ධන අදියරවලට බෙදීම සමඟ එකම මට්ටමේ: dev, test, prod. සෑම අදියරකදීම, ඔබට ඕනෑම පුස්තකාලයක් බාගත කළ හැකිය, ඕනෑම දෙයක් භාවිතා කළ හැකිය, නමුත් "විවේචනාත්මක" තත්ත්වය සමඟ දුෂ්කර යමක් තිබේ නම්, සමහර විට එය නිෂ්පාදනයට මුදා හැරීමේ අදියරේදී සංවර්ධකයින්ගේ අවධානය යොමු කිරීම වටී.

පුරාවස්තු සමඟ ඒකාබද්ධ කිරීම: Nexus සහ JFrog.

සංවර්ධන පරිසරයට ඒකාබද්ධ වීම. ඔබ තෝරා ගන්නා මෙවලම් සංවර්ධන පරිසරයන් සමඟ ඒකාබද්ධ විය යුතුය. සංවර්ධකයාට ඔහුගේ සේවා ස්ථානයෙන් ස්කෑන් කිරීමේ ප්‍රතිඵල වෙත ප්‍රවේශය තිබිය යුතුය, නැතහොත් CVS වෙත යොමු වීමට පෙර කේතය පරිලෝකනය කර පරීක්ෂා කිරීමේ හැකියාව තිබිය යුතුය.

CD ඒකාබද්ධ කිරීම. මෙය මා සැබවින්ම කැමති සහ මම දැනටමත් කතා කර ඇති සිසිල් විශේෂාංගයකි - කාර්මික පරිසරයක නව අවදානම් මතුවීම නිරීක්ෂණය කිරීම. එය මේ වගේ දෙයක් ක්රියා කරයි.

DevSecOps වලට ඇති බිය සහ පිළිකුල

අපිට තියෙනවා පොදු සංරචක ගබඩා - පිටත සමහර මෙවලම්, සහ අපගේ අභ්යන්තර ගබඩාව. අපට එය විශ්වාසදායක සංරචක පමණක් අඩංගු වීමට අවශ්‍යයි. ඉල්ලීමක් ප්‍රොක්සි කරන විට, බාගත කළ පුස්තකාලයේ දුර්වලතා නොමැති බව අපි පරීක්ෂා කරමු. එය අප විසින් සකස් කරන ලද සහ අවශ්‍යයෙන්ම සංවර්ධනය සමඟ සම්බන්ධීකරණය කරන ඇතැම් ප්‍රතිපත්ති යටතට වැටේ නම්, අපි එය උඩුගත නොකරන අතර වෙනත් අනුවාදයක් භාවිතා කිරීමට පොළඹවනු ලැබේ. ඒ අනුව, පුස්තකාලයේ ඇත්ත වශයෙන්ම විවේචනාත්මක හා නරක දෙයක් තිබේ නම්, සංවර්ධකයාට ස්ථාපන අදියරේදී පුස්තකාලය නොලැබෙනු ඇත - ඔහුට ඉහළ හෝ පහළ අනුවාදයක් භාවිතා කිරීමට ඉඩ දෙන්න.

  • ගොඩනඟන විට, කිසිවෙකු නරක කිසිවක් ලිස්සා නැති බවත්, සියලුම සංරචක ආරක්ෂිත බවත්, කිසිවෙකු ෆ්ලෑෂ් ධාවකය මත භයානක කිසිවක් ගෙන නොමැති බවත් අපි පරීක්ෂා කරමු.
  • අපට ගබඩාවේ ඇත්තේ විශ්වාසදායක සංරචක පමණි.
  • යෙදවීමේදී, අපි නැවත වරක් පැකේජයම පරීක්ෂා කරන්නෙමු: එය ප්‍රතිපත්තියට අනුකූල බව සහතික කිරීම සඳහා යුද්ධය, භාජනය, DL හෝ ඩොකර් රූපය.
  • කර්මාන්තයට ඇතුල් වන විට, කාර්මික පරිසරය තුළ සිදු වන දේ අපි නිරීක්ෂණය කරමු: විවේචනාත්මක දුර්වලතා පෙනෙන්නට හෝ නොපෙනේ.

ගතික විශ්ලේෂණය - DAST

ගතික විශ්ලේෂණ මෙවලම් පෙර පවසා ඇති සියල්ලට වඩා මූලික වශයෙන් වෙනස් වේ. මෙය යෙදුම සමඟ පරිශීලකයාගේ වැඩ අනුකරණය කිරීමකි. මෙය වෙබ් යෙදුමක් නම්, අපි ඉල්ලීම් යවමු, සේවාදායකයාගේ වැඩ අනුකරණය කරමින්, ඉදිරිපස ඇති බොත්තම් මත ක්ලික් කරන්න, පෝරමයෙන් කෘතිම දත්ත යවන්න: උපුටා දැක්වීම්, වරහන්, විවිධ කේතීකරණවල අක්ෂර, යෙදුම ක්‍රියා කරන ආකාරය සහ ක්‍රියා කරන ආකාරය බැලීමට. බාහිර දත්ත.

විවෘත මූලාශ්‍රය තුළ සැකිලි දුර්වලතා පරීක්ෂා කිරීමට එම පද්ධතියම ඔබට ඉඩ සලසයි. අප භාවිතා කරන්නේ කුමන විවෘත මූලාශ්‍රයද යන්න DAST නොදන්නා බැවින්, එය සරලව "ද්වේෂ සහගත" රටා විසි කර සේවාදායකයේ ප්‍රතිචාර විශ්ලේෂණය කරයි:

- ඔව්, මෙහි deserialization ගැටලුවක් ඇත, නමුත් මෙහි නොවේ.

මේකේ ලොකු අවදානම් තියෙනවා, මොකද පරීක්ෂකයන් වැඩ කරන බංකුවක ඉඳන්ම මේ ආරක්‍ෂක පරීක්‍ෂණය කළොත් අමිහිරි දේවල් වෙන්න පුළුවන්.

  • යෙදුම් සේවාදායක ජාලයේ ඉහළ බරක්.
  • ඒකාබද්ධ කිරීම් නොමැත.
  • විශ්ලේෂණය කළ යෙදුමේ සැකසුම් වෙනස් කිරීමේ හැකියාව.
  • අවශ්ය තාක්ෂණයන් සඳහා කිසිදු සහායක් නොමැත.
  • සැකසීමේ අපහසුතාව.

අපි අවසානයේ AppScan දියත් කරන විට අපට තත්වයක් ඇති විය: අපි යෙදුමට ප්‍රවේශය ලබා ගැනීමට බොහෝ කාලයක් ගත කළෙමු, ගිණුම් 3 ක් ලබාගෙන සතුටු විය - අපි අවසානයේ සියල්ල පරීක්ෂා කරන්නෙමු! අපි ස්කෑන් පරීක්ෂණයක් දියත් කළ අතර, AppScan කළ පළමු දෙය නම් පරිපාලක පැනලය තුළට ගොස්, සියලු බොත්තම් සිදුරු කර, දත්ත වලින් අඩක් වෙනස් කර, පසුව එහි ඇති සේවාදායකය සම්පූර්ණයෙන්ම විනාශ කිරීමයි. තැපැල් පෝරමය-ඉල්ලීම්. පරීක්ෂණය සමඟ සංවර්ධනය පැවසුවේ:

- යාලුවනේ, ඔයා මට විහිළු කරනවද?! අපි ඔබට ගිණුම් ලබා දුන්නා, ඔබ ස්ථාවරයක් සකස් කළා!

විය හැකි අවදානම් සලකා බලන්න. ඉතා මැනවින්, තොරතුරු ආරක්ෂාව පරීක්ෂා කිරීම සඳහා වෙනම ස්ථාවරයක් සකස් කරන්න, එය අවම වශයෙන් කෙසේ හෝ සෙසු පරිසරයෙන් හුදකලා වනු ඇත, සහ පරිපාලක පැනලය කොන්දේසි සහිතව පරීක්ෂා කරන්න, වඩාත් සුදුසු අතින් අතින්. මෙය පෙන්ටෙස්ට් එකකි - අප දැන් සලකා බලන්නේ නැති උත්සාහයේ ඉතිරි ප්‍රතිශත.

ඔබට මෙය බර පරීක්ෂා කිරීමේ ප්‍රතිසමයක් ලෙස භාවිතා කළ හැකි බව සලකා බැලීම වටී. පළමු අදියරේදී, ඔබට නූල් 10-15 ක් සහිත ගතික ස්කෑනරයක් සක්රිය කර කුමක් සිදුවේදැයි බලන්න, නමුත් සාමාන්යයෙන්, ප්රායෝගිකව පෙන්නුම් කරන පරිදි, හොඳ කිසිවක් නැත.

අපි සාමාන්යයෙන් භාවිතා කරන සම්පත් කිහිපයක්.

DevSecOps වලට ඇති බිය සහ පිළිකුල

උද්දීපනය කිරීම වටී බර්ප් සූට් ඕනෑම ආරක්ෂක වෘත්තිකයෙකු සඳහා "ස්විස් පිහියක්" වේ. සෑම කෙනෙකුම එය භාවිතා කරන අතර එය ඉතා පහසු වේ. Enterprise සංස්කරණයේ නව demo version එකක් දැන් නිකුත් කර ඇත. මීට පෙර එය ප්ලගීන සහිත ස්වාධීන උපයෝගීතාවයක් නම්, දැන් සංවර්ධකයින් අවසානයේ විශාල සේවාදායකයක් සාදමින් සිටින අතර එමඟින් නියෝජිතයින් කිහිප දෙනෙකු කළමනාකරණය කිරීමට හැකි වනු ඇත. මෙය නියමයි, ඔබ එය උත්සාහ කිරීමට මම නිර්දේශ කරමි.

ක්රියාවලි ඒකාබද්ධ කිරීම

ඒකාබද්ධ කිරීම ඉතා හොඳින් හා සරලව සිදු වේ: සාර්ථක ස්ථාපනයකින් පසු ස්කෑන් කිරීම ආරම්භ කරන්න ස්ථාවරය සඳහා අයදුම්පත් සහ සාර්ථක ඒකාබද්ධතා පරීක්ෂණයකින් පසු ස්කෑන් කිරීම.

අනුකලනය ක්‍රියා නොකරයි නම් හෝ stubs සහ mock functions තිබේ නම්, එය නිෂ්ඵල සහ නිෂ්ඵල වේ - අපි කුමන රටාවක් යැවුවත්, සේවාදායකය තවමත් ප්‍රතිචාර දක්වන්නේ එකම ආකාරයටයි.

  • ඉතා මැනවින්, වෙනම පරීක්ෂණ ස්ථාවරයක්.
  • පරීක්ෂා කිරීමට පෙර, පිවිසුම් අනුපිළිවෙල ලියන්න.
  • පරිපාලන පද්ධතිය පරීක්ෂා කිරීම අතින් පමණි.

ක්රියාවලිය

සාමාන්යයෙන් ක්රියාවලිය ගැන සහ විශේෂයෙන් එක් එක් මෙවලමෙහි වැඩ ගැන ටිකක් සාමාන්යකරණය කර ඇත. සියලුම යෙදුම් වෙනස් වේ - එකක් ගතික විශ්ලේෂණය සමඟ වඩා හොඳින් ක්‍රියා කරයි, තවත් එකක් ස්ථිතික විශ්ලේෂණය සමඟ, තුන්වැන්න OpenSource විශ්ලේෂණය, pentests හෝ වෙනත් යමක් සමඟින්, උදාහරණයක් ලෙස, සිදුවීම් සමඟ වෆි.

සෑම ක්රියාවලියකටම පාලනය අවශ්ය වේ.

ක්‍රියාවලියක් ක්‍රියාත්මක වන ආකාරය සහ එය වැඩිදියුණු කළ හැක්කේ කොතැනින්ද යන්න තේරුම් ගැනීමට, නිෂ්පාදන ප්‍රමිතික, මෙවලම්වලින් ප්‍රමිතික සහ දෝෂ ලුහුබැඳීම් ඇතුළුව ඔබට අතට ගත හැකි සෑම දෙයකින්ම ඔබ ප්‍රමිතික එකතු කළ යුතුය.

ඕනෑම තොරතුරක් ප්රයෝජනවත් වේ. මෙම හෝ එම මෙවලම වඩා හොඳින් භාවිතා කරන්නේ කොතැනද යන්න විවිධ කෝණවලින් බැලීම අවශ්‍ය වේ, එහිදී ක්‍රියාවලිය විශේෂයෙන් පහත වැටේ. කාලය මත පදනම්ව ක්‍රියාවලිය වැඩිදියුණු කළ යුත්තේ කොතැනදැයි බැලීමට සංවර්ධන ප්‍රතිචාර වේලාවන් බැලීම වටී. දත්ත වැඩි වන තරමට, ඉහළ මට්ටමේ සිට එක් එක් ක්‍රියාවලියේ විස්තර දක්වා වැඩි කොටස් ගොඩනගා ගත හැකිය.

DevSecOps වලට ඇති බිය සහ පිළිකුල

සියලුම ස්ථිතික සහ ගතික විශ්ලේෂකයින්ට ඔවුන්ගේම API, ඔවුන්ගේම දියත් කිරීමේ ක්‍රම, මූලධර්ම ඇති බැවින්, සමහරක් උපලේඛන ඇත, අනෙක් ඒවා නැත - අපි මෙවලමක් ලියන්නෙමු. AppSec Orchestrator, නිෂ්පාදනයෙන් සම්පූර්ණ ක්‍රියාවලියට තනි පිවිසුම් ලක්ෂ්‍යයක් නිර්මාණය කිරීමට සහ එය එක් ලක්ෂයකින් කළමනාකරණය කිරීමට ඔබට ඉඩ සලසයි.

කළමනාකරුවන්ට, සංවර්ධකයින්ට සහ ආරක්ෂක ඉංජිනේරුවන්ට එක් පිවිසුම් ලක්ෂ්‍යයක් ඇත, එයින් ඔවුන්ට ධාවනය වන දේ බැලීමට, වින්‍යාස කිරීමට සහ ස්කෑන් එකක් ධාවනය කිරීමට, ස්කෑන් ප්‍රතිඵල ලබා ගැනීමට සහ අවශ්‍යතා ඉදිරිපත් කිරීමට හැකිය. අපි ලේඛන කටයුතු වලින් ඈත් වීමට උත්සාහ කරන්නේ, සංවර්ධනය විසින් භාවිතා කරන සෑම දෙයක්ම මනුෂ්‍ය එකක් බවට පරිවර්තනය කිරීමට - තත්ත්‍වය සහ ප්‍රමිතික සමඟ සංගමේ පිටු, ජිරා හි දෝෂ හෝ විවිධ දෝෂ ලුහුබැඳීම්, හෝ CI හි සමමුහුර්ත/අසමමුහුර්ත ක්‍රියාවලියකට ඒකාබද්ධ කිරීම. /සීඩී.

යතුරු රැගෙන යාම

මෙවලම් ප්රධාන දෙය නොවේ. මුලින්ම ක්රියාවලිය හරහා සිතන්න - ඉන්පසු මෙවලම් ක්රියාත්මක කරන්න. මෙවලම් හොඳ නමුත් මිල අධිකයි, එබැවින් ඔබට ක්රියාවලිය සමඟ ආරම්භ කර සංවර්ධනය සහ ආරක්ෂාව අතර සන්නිවේදනය සහ අවබෝධය ගොඩනගා ගත හැකිය. ආරක්ෂිත දෘෂ්ටි කෝණයකින්, සෑම දෙයක්ම "නැවැත්වීම" අවශ්ය නොවේ. සංවර්ධන දෘෂ්ටි කෝණයෙන්, ඉහළ මෙගා සුපිරි විවේචනාත්මක යමක් තිබේ නම්, එය ඉවත් කිරීම අවශ්ය වන අතර, ගැටලුව දෙස ඇස් වසා නොගන්න.

නිෂ්පාදන ගුණාත්මකභාවය - පොදු ඉලක්කය ආරක්ෂාව සහ සංවර්ධනය යන දෙකම. අපි එක දෙයක් කරන්නෙමු, සෑම දෙයක්ම නිවැරදිව ක්‍රියාත්මක වන බවත් කීර්තිමත් අවදානම් හෝ මූල්‍ය පාඩු නොමැති බවත් සහතික කිරීමට අපි උත්සාහ කරමු. සන්නිවේදනය වැඩිදියුණු කිරීමට සහ නිෂ්පාදනයේ ගුණාත්මක භාවය වැඩි දියුණු කිරීමට අපි DevSecOps, SecDevOps ප්‍රවේශයක් ප්‍රවර්ධනය කරන්නේ එබැවිනි.

ඔබට දැනටමත් ඇති දේ සමඟ ආරම්භ කරන්න: අවශ්යතා, ගෘහ නිර්මාණ ශිල්පය, අර්ධ චෙක්පත්, පුහුණු කිරීම්, මාර්ගෝපදේශ. සියලුම ව්‍යාපෘති සඳහා සියලු භාවිතයන් වහාම යෙදිය යුතු නැත - නැවත නැවතත් ගමන් කරන්න. තනි ප්‍රමිතියක් නොමැත - අත්හදා බැලීම සහ විවිධ ප්රවේශයන් සහ විසඳුම් උත්සාහ කරන්න.

තොරතුරු ආරක්ෂණ දෝෂ සහ ක්‍රියාකාරී දෝෂ අතර සමාන ලකුණක් ඇත.

සියල්ල ස්වයංක්‍රීය කරන්නචලනය වන බව. චලනය නොවන ඕනෑම දෙයක්, එය චලනය කර එය ස්වයංක්රීය කරන්න. යමක් අතින් සිදු කරන්නේ නම්, එය ක්‍රියාවලියේ හොඳ කොටසක් නොවේ. සමහර විට එය සමාලෝචනය කිරීම සහ එය ස්වයංක්රීය කිරීම වටී.

IS කණ්ඩායමේ ප්‍රමාණය කුඩා නම් - ආරක්ෂක ශූරයන් භාවිතා කරන්න.

සමහර විට මම කතා කළ දේ ඔබට නොගැලපෙන අතර ඔබ ඔබේම දෙයක් ඉදිරිපත් කරනු ඇත - එය හොඳයි. එහෙත් ඔබේ ක්‍රියාවලිය සඳහා අවශ්‍යතා මත පදනම්ව මෙවලම් තෝරන්න. මේ ටූල් එක නරකයි මේක හොඳයි කියලා සමාජය කියන දේ බලන්න එපා. සමහරවිට ඔබේ නිෂ්පාදනය සඳහා ප්රතිවිරුද්ධය සත්ය වනු ඇත.

මෙවලම් සඳහා අවශ්යතා.

  • පහත් මට්ටමේ වැරදි ධනාත්මක.
  • ප්රමාණවත් විශ්ලේෂණ කාලය.
  • භාවිතයේ පහසුව.
  • ඒකාබද්ධ කිරීම් ලබා ගැනීමේ හැකියාව.
  • නිෂ්පාදන සංවර්ධන මාර්ග සිතියම අවබෝධ කර ගැනීම.
  • මෙවලම් අභිරුචිකරණය කිරීමේ හැකියාව.

යූරිගේ වාර්තාව DevOpsConf 2018 හි හොඳම එකක් ලෙස තෝරා ගන්නා ලදී. ඊටත් වඩා රසවත් අදහස් සහ ප්‍රායෝගික අවස්ථා දැන ගැනීමට, මැයි 27 සහ 28 දිනවල Skolkovo වෙත පැමිණෙන්න. DevOpsConf තුළ උත්සවය RIT++. වඩා හොඳයි, ඔබ ඔබේ අත්දැකීම් බෙදා ගැනීමට සූදානම් නම්, එසේ නම් අයදුම් කරන්න වාර්තාව සඳහා අප්රේල් 21 දක්වා.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න