Основы безопасности в PHP — классификация уязвимостей.

Здравствуйте ,сегодня я хочу обсудить с вами основные вопросы безопасности в PHP — классификацию уязвимостей.

В языке программировании PHP, ошибки приводящие к уязвимости веб-приложения, можно поделить на 2 типа.

1. Уязвимости на стороне сервера
2. Уязвимость на стороне клиента

 

К 1-типу уязвимостей относиться:

  1. Логические ошибки — связанные с нарушением логики при определенных условиях т.е код может работать не совсем так как мы предполагали. Данный вид очень тяжело выявить и он наиболее распространен.
  2. SQL -infection — очень распространенный вид атаки для сайтов использующих БД ,возникает при недостаточной фильтрации переменных которые затем подставляются в запрос.
  3. Простые пароли администраторов — можно легко подобрать пароль ,т.е используется пароли типов — qwerty ,123456,password,******. Кроме того если в системе авторизации отсутствует проверка на количество попыток при наборе пароля ,пароль можно подобрать с помощью брутфорса (множественного перебора).
  4. Code injection — уязвимость при которой можно внедрить свой собственный вредоносный код. Возникает при недостаточной проверки файла который используется системой.
  5. Разглашение информации (Information Disclosure) — данная уязвимость направленная на получении доп.информации web приложения и сервера. Которая может скомпрометировать систему.
  6. DDoS (Distributed Denial of Service) — изначально тип сетевой атаки, основанной на не безграничности ресурсов атакуемой службы, к которой организуется масса запросов, с которыми она заведомо не сможет справиться, и будет вынуждена отказать в обслуживании (либо заставить ждать неприемлемо долго), собственно, отсюда и название.
  7. Использование и эксплуатирование ошибок в программном обеспечении сервера.

К 2-типу уязвимостей относиться:

  1. XSS (Cross Site Scripting) — очень распространенный тип уязвимости ,уязвимость возникает при недостаточной фильтрации данных полученных от пользователя при условии что эти данные выводятся в браузер ,можно нарушить вид HTML — страницы ,украсть COOKIE и т.д.
  2. CSRF(Сross Site Request Forgery) — уязвимость при которой браузер пользователя делает запрос к подставному серверу с текущими COOKIE.
  3. Социальная инженерия — тут все максимально просто. Игра на психологии человека ,обман пользователя ,например просьба дать пароля представившись администрацией. Также например на многих сайтах для восстановления паролей используется секретный вопрос. Например фамилия матери ,злоумышленник может через тот же самый поисковик узнать фамилию матери и восстановить пароль.
  4. Фишинг — создание подставных веб-ресурсов с точно таким же дизайном и версткой страницы. Пользователь попадая на такой сайт видит окошко с авторизацией и сам вводит необходимые данные. Данная уязвимость может эксплуатироваться вместе с XSS и CSRF.
  5. Использование и эксплуатирование ошибок в программном обеспечении клиента.

Сегодня мы узнали основные виды атак на веб-приложения. Некоторые из уязвимостей мы рассмотрим подробнее в других статьях ,такие как XSS ,SQL — infection и прочие.

Статистика использования уязвимостей.