Top.Mail.Ru

Вопросы безопасности в проектах

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

  • обеспечить контроль над всей разрабатываемой системой;
  • защитить данные пользователей от краж и порчи.

Любая разработка, которая осуществлялась без закрытия вопросов безопасности в
проектах — это возможная цель киберпреступников, которые могут применять ее
уязвимости для нанесения вреда системе, серверам, самому ресурсу или его
пользователям.

Важно ли безопасное программирование

Разработка с учетом вопросов безопасности в проектах — это уже практически
норма в профессиональном программировании. Возможно, где-то, малоопытные
начинающие программисты и делают что-то небезопасное, но это временно, пока не
столкнуться с какой-нибудь серьезной проблемой или вообще не потеряют свой
ресурс. И следующая их разработка точно будет максимально безопасной.
Безопасное программирования — это не просто набор однообразный решений. Как
правило, под каждый конкретный проект, разрабатываются собственные требования
к безопасности. Тут учитывается специфика:

  • специфика проекта;
  • ожидаемые угрозы;
  • условия эксплуатации проекта;
  • цикл жизни проекта.

«Соль» в том, чтобы изначально, при старте разработке, уже закладывать
фундамент для безопасного программирования. Потому что уже в рабочих, больших
проектах — это сделать довольно трудно и дорого.
Условно обеспечение безопасности разделяется на 2 части:

  • физическая часть;
  • логическая часть.

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

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

Эти принципы призваны обобщить все подходы по обеспечению защищенности при
разработке программного обеспечения.

Виды уязвимостей и ущерб от них

Уязвимости в ПО часто возникают в результате простых или несложных ошибок. Но
их «простота» обманчива, так как зачастую они могут привести к катастрофическим
последствиям. Все уязвимости, наверное не реально перечислить, так как они
появляются «как грибы после дождя».
Самые распространенные ошибки в программировании, которые приводят к
уязвимостям в ПО:

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

Почему мы говорили про «простые ошибки», которые приводят к большим
проблемам. Примером такого исхода может послужить ситуация, когда впервые был
обнаружен червь Blaster. Его распространением послужила единственная ошибка,
которая занимала всего 2 строчки кода.


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


К примеру, самый известный «сетевой червь» – вирус Морриса, в 1988-м году смог
заразить около 6 000 компьютеров. На тот момент — это было очень плачевно.
Счетная палата США «насчитала» нанесенный ущерб от этого вируса в размере
около 90 млн долларов. Уже в наше время «рекордным» по ущербу считается 2016-
й год, когда всего экономике мира был нанесен ущерб примерно в 451 млрд
долларов. Самым «успешным» в наше время считается вирус WannaCry, который в
2017-м нанес ущерб примерно в 1 млрд долларов США.
Поэтому, как видите, недооценивать безопасное программирование не стоит вообще.

Заключение

Коротко подытожим. Безопасное программирование — это важно. Любая ваша
разработка должна касаться вопросов безопасности проекта. Лучше разрабатывать
стратегию безопасности в самом начале, перед стартом самого кодинга, чтобы в
процессе это все правильно осуществить.

Возможно вам будет интересно почитать статью “Преимущества и недостатки Python”

Каждый отдельный проект — это собственное безопасное программирование, со
своей собственной стратегией, ориентированной на «жизнь» самого проекта. И
последнее, пренебрегать безопасностью не стоит вообще, и неважно что вы
планируете разработать: приложение для своей команды в 10 человек или ПО
мирового масштаба. Программируйте правильно — программируйте безопасно.

Text.ru - 100.00%
Поделись статьей с друзьями!

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *