Какво представлява "Secure Coding"-ът?
![Какво представлява "Secure Coding"-ът?](/Files/Publications/2019/04/securecodingfundamentals_134029185.png)
Secure coding е практика, при разработката на софтуер, която цели превенцията на случайни уязвимости в програмата – дефекти, бъгове и логически недостатъци са най-честата причина за такива. Чрез анализ на хиляди уловени или проявили се уязвимости, професионалистите в сферата на сигурността установяват, че повечето уязвимости произтичат от малък брой общи грешки, допуснати в процеса на софтуерно програмиране. Чрез идентифициране на несигурните кодинг практики, които водят до тези грешки и образоване на разработчиците по отношение на алтернативи в сигурността, организациите могат да направят проактивни стъпки, за да помогнат значително да се намалят или елиминират уязвимостите в софтуера, преди неговото пускане. Ето кои са някои от най-често срещаните типове грешки:
Buffer overflows
“Преливането на буферите” е една от най-често срещаните уязвимости в сигурността на даден софтуер. Той се проявява, когато даден процес на програмата се опитва да запази данни, надхвърляйки точно-фиксирания размер на определения за целта буфер. Например ако имате 8 слота, в които да съхраните 8 елемента, ще бъде проблем, ако се опитате да запазите в него 9-ти елемент. Въпреки, че зависи от особеностите, на технологиите и начина по който те се използват, най-често компютрите данните, които извършват overflow, най-често се записват като първи и т.н. следващ елемент, в следващата локация. Резултата от това може да е уязвимост в изпълнението на програмната логика, която да се забележи от недоброжелатели и да се експлоатира с неетични цели. Тъй като локациите памет, заделени за запазване на данни, най-често се наричат „стекове“ (“stacks”), форсираното преливане най-често се нарича “stack smashing”, но е известно още и като “stack overflow” (варира според терминологията на езика).
Format String Attack
Format String Attack се нарича злоупотреба, при която потребител въвежда специфични данни за вход, които програмата отчита като аргументи за дадена функция, която на свой ред изпълнява дадено форматиране. По този начин може да се постигне четене или писане във даден стек от паметта.
Integer overflow
Integer overflow се проявява, когато аритметична операция доведе до резултат, чийто брой цифри надхвърля даден диапазон (бил той 16-битов, 32-битов или по-голям). Програма, която не проверява за надхвърляне на диапазона, представлява среда за софтуерни бъгове и/или други уязвимости. Освен това този проблем може да се прояви и когато даден брой цифри на едно число е под минимума, изискуем от даден диапазон.
Това са много малък брой възможни грешки, които могат да възникнат в дадена програма, поради невнимание или незнание, по време на нейното създаване. За да се запознаете с добрите практики за писане на добър код и създаване на сигурни приложения – запишете се още днес за курса „Secure Coding Fundamentals – април 2019“. Не пропускайте тази възмножност!