Значение при практикуването на сигурно кодиране

Как започнах своето пътуване

Започнах да уча за програмиране, откакто бях в 8 клас, и за етично хакване, откакто бях в 11. Тъй като имам страст към етичното хакване, разгледах уебсайтове чрез техните публично достъпни интерфейси, за да видя как бих могъл да променя техните функционалност.

С корона епидемията всички мои A/L класове преминаха от физически към онлайн. Точно там ми беше дадена възможност да се опитам да проникна в уебсайтовете на тези класове.

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

Въпреки че не използвах тази информация или бъгове, които открих, по никакъв незаконен начин, аз се забавлявах да откривам тези бъгове. Съобщих за някои грешки на съответните органи.

Как са се появили повечето от тези грешки? Съществува

В повечето случаи такива грешки се дължат на грешки на програмистите. Някои се дължат на логически пропуски в техните кодове.

Като програмист понякога може да мислите само за очаквания поток на програмата. Чрез изработване на произволни заявки към съответните крайни точки, хакерите са в състояние да получат чувствителни данни, ако тези крайни точки не се обработват правилно.

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

Възпроизвеждането на видео се извършва от някои сигурни онлайн услуги за стрийминг. Мислете, че има крайна точка на website_url/class/video. Чрез изпращане на POST заявка до тази крайна точка с необходимия идентификатор на видео, някои удостоверявания, необходими за възпроизвеждане на видео, се генерират в сървъра и се изпращат на искания потребител. Ако кодът на сървъра изпрати тези подробности, без да провери дали потребителят, който прави заявката, има разрешение за достъп до видеото, тези сценарии може да доведат до проблеми със сигурността.

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

Според мен бекенд програмистите трябва да научат за разбиване на код, за да могат да пишат неразбиваем код.

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

Брус Шнайер