Процесс разра­ботки программного обеспе­чения включает в себя отладочные работы и прове­дение тестов, помогающих обнаружить и устранить различные ошибки. Но далеко не все понимают необхо­ди­мость прове­дения тести­ро­вания безопас­ности отлаженного софта, предпо­лагая, что процедура отладки уже включает перечень мероприятий по выявлению “брешей” в коде. Попробуем более детально разъяснить порядок отладки ПО и доказать потреб­ность прове­дения тестов на уязви­мость кода от внешнего проник­но­вения, то есть обеспе­чения должного уровня безопас­ности разра­бо­танной и отлаженной программы.

Отладка

Процесс отладки программного обеспе­чения подра­зу­мевает поиск и устра­нение несоот­вет­ствий и ошибок, возникших во время работы над основным кодом, то есть не включает в себяте­сти­ро­вание безопас­ности — отлаженный софт будет выполнять лишь возло­женные на него функции с запла­ни­ро­ванным резуль­татом. Отладочные работы позволяют обнаружить некор­ректно выпол­няющие свои функции куски кода, то есть приво­дящие к незапла­ни­ро­ванным послед­ствиям. Итогом отладки станет полностью работо­спо­собная программа, настро­енная на корректное выпол­нение возло­женных на нее задач. Однако отлаженный софт не застра­хован от существо­вания элементов, исполь­зо­вание которых позволит злоумыш­лен­никам проникнуть в систему или получить доступ к имеющейся в ней инфор­мации. Именно для исклю­чения таких возмож­ностей и прово­дится соответ­ствующая проверка отлаженной программы.

А нужны ли тесты на безопасность?

Мы выяснили, что из себя представляет процесс тести­ро­вания безопас­ности отлаженного софта, теперь перейдем к вопросу необхо­ди­мости прове­дения этих действий. Не секрет, что деятель­ность практи­чески любого предприятия так или иначе связана с приме­нением компью­терной техники, подклю­ченной к сети Интернет, что позволяет существенно упростить и ускорить выпол­нение требуемой работы. Однако Глобальная Паутина несет в себе серьезную угрозу, заклю­ча­ю­щуюся в возмож­ности прове­дения атаки извне с целью проникнуть в электронную систему предприятия или получить доступ к конфи­ден­ци­альным данным, храня­щимся на серверах или жестких дисках. Чтобы полностью исключить вероят­ность успешного выпол­нения подобных действий, тести­ровщики проводят следующие мероприятия:

  • пытаются выяснить пароль, используя внешние средства;
  • атакуют систему с приме­нением специ­а­ли­зи­ро­ванных утилит проверки защиты;
  • пробуют подавить программу, анали­зируя ее способ­ность продолжать работу;
  • умышленно вводят ошибочные данные, чтобы получить доступ к системе в процессе ее восстановления;
  • анали­зируют незашиф­ро­ванные данные с целью найти ключ для проникновения.

Выводы, полученные в ходе прове­денного тести­ро­вания безопас­ности отлаженного софта, позволяют устранить обнару­женные угрозы, а также исключить вероят­ность их появления в процессе исполь­зо­вания программы. В подав­ляющем большинстве случаев это приводит к значи­тельному улучшению уровня защищен­ности сведения внутри системы, обычно представ­ляющих собой весьма важную инфор­мацию. С точки зрения предприятия, приме­ня­ющего данный софт, утрата контроля или потеря коммер­чески важных сведений грозит ощутимыми финан­совыми убытками.

Заклю­чение

Стоит особо подчеркнуть, что существующие сегодня методы взлома программного кода позволяют проникнуть сквозь самые совер­шенные системы защиты, разница состоит лишь во времени, которое будет для этого затрачено. Необхо­ди­мость тести­ро­вания безопас­ности отлаженного софта обусловлена значи­тельным увели­чением временных затрат на осуществ­ление взлома функци­о­ни­рующей системы. Если затра­ченные усилия превысят выгоду от добычи интере­сующих злоумыш­лен­ников сведений или получения контроля над системой, то степень защищен­ности программы можно назвать достаточным.