Кіріспе
Бағдарламалық кодты жан-жақты талдау – бағдарламалық жобадағы бастапқы кодты қателерді, қауіпсіздік бұзушылықтарын немесе бағдарламалау ережелерін бұзуды анықтау мақсатындағы толыққанды талдау. Бұл, бағдарламалық жасақтама шығарылмас бұрын қателерді азайтуға бағытталған қорғаныс бағдарламалау үлгісінің маңызды бөлігі болып табылады. C және C++ бастапқы кодтары ең көп аудиттенетін кодтар болып табылады, себебі Python сияқты көптеген жоғары деңгейдегі тілдерде осал болатын функциялар аз (мысалы, шекараларды тексермейтін функциялар).
A software code audit is a comprehensive analysis of source code in a programming project with the intent of discovering bugs, security breaches or violations of programming conventions. It is an integral part of the defensive programming paradigm, which attempts to reduce errors before the software is released. C and C++ source code is the most common code to be audited since many higher level languages, such as Python, have fewer potentially vulnerable functions (e. g., functions that do not check bounds).
Нұсқаулар
Бағдарламалық жасақтаманы тексеру кезінде әрбір маңызды компонент жеке және бүкіл бағдарламамен бірге тексерілуі керек. Жоғары тәуекелді осалдықтарды бірінші кезекте іздеп, содан кейін төмен тәуекелді осалдықтарға көшу орынды. Жоғары және төмен тәуекел арасындағы осалдықтардың болуы жағдайға және аталған кодтың қалай қолданылуына байланысты. Қолданбаға енуді тексеру, бағдарламалық жасақтамадағы осалдықтарды анықтау үшін мүмкіндігінше көп белгілі шабуыл әдістерін қолданып, ықтимал кіру нүктелеріне шабуыл жасау арқылы қолданбаны істен шығаруға тырысады. Бұл – кең таралған тексеру әдісі, ол нақты осалдықтардың бар-жоғын анықтауға мүмкіндік береді, бірақ олардың бастапқы кодта қай жерде екенін көрсетпейді. Кейбір мамандар цикл соңындағы тексеру әдістері бағдарламашыларды шаршатып, команданы көптеген мәлімделген проблемалармен, бірақ нақты жақсартуларсыз қалдыратынын айтады; мұндай жағдайларда, балама ретінде үзіліссіз тексеру әдісі ұсынылады.
Қажеттіліктерден тәуелділік
Егер төменгі шекті мәнге орнатылса, бағдарламалық қамтамасыздылуды тексеру құралдарының көпшілігі көптеген осалдықтарды анықтайды, әсіресе егер код бұрын тексерілмеген болса. Дегенмен, осы ескертулердің нақты маңыздылығы қолданбаның қалай қолданылуына да байланысты. Зыянды кодпен байланыстырылуы мүмкін кітапхана (және оған қарсы қорғаныш болуы керек) барлық қайтарылған дерек құрылымдарын көшіру сияқты қатаң талаптарға ие, себебі жүйені бұзуға бағытталған қасақана әрекеттер күтілуде. Зыянды кіріске (мысалы, веб-сервердің артқы бөлігі сияқты) ғана ұшырауы мүмкін бағдарлама, ең алдымен осы кіріске (буфер асып кету, SQL инъекциясы және т.б.) назар аударуы керек. Мұндай шабуылдар қорғалған инфрақұрылымдағы уәкілетті пайдаланушылар ғана қолданатын ішкі бағдарлама үшін ешқашан орын алмауы мүмкін.