Наиболее распространенные ошибки безопасности, допускаемые JavaScript-разработчиками

При JavaScript-разработке ошибки безопасности возникают постоянно, но некоторые из них более серьезны и распространены, чем другие. Всякий раз, когда происходит серьезный взлом, СМИ подробно освещают то, кто стоял за этим, почему они это сделали и что именно было сделано. Однако гораздо менее активно обсуждается то, как это было сделано, а ведь это самая важная часть любой подобной головоломки.

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

Ошибка 1: Доверять стороннему коду

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

Ошибка 2: Жестко прописанные бэкдор-аккаунты

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

Ошибка 3: Неверифицированные SQL-включения

SQL-включения, пожалуй, одна из самых частых и опасных из существующих уязвимостей. SQL-включение так или иначе связано со всеми серьезными взломами, произошедшими за последние 10 лет. Проблема заключается в том, что разработчики верят, что данные вводятся из внешнего источника, но SQL-запрос может быть изменен злонамеренным субъектом, чтобы извлечь из базы данных что-то, что программист не предполагает, например, логины и пароли пользователей, информацию о банковских картах и ​​т. д.».

Ошибка 4: Удаленные включения файлов

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

Ошибка 5: Небезопасная обработка данных

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

Ошибка 6: Неудачное шифрование данных

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

Ошибка 7: Отказ от использования безопасной криптографической системы

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

Ошибка 8: Игнорирование «уровня 8»

Программисты часто забывают о людях, использующих программное обеспечение, известное как «уровень 8». Хотя руководство по безопасности часто описывает хакерские атаки и кибератаки, стержнями атак часто оказываются добропорядочные пользователи или администраторы с благими намерениями. Это называется социальной инженерией, и это означает, что людьми манипулируют, обнажая уязвимость.

Ошибка 9. Действия пользователей

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

Данная публикация является переводом статьи «The Most Common Security Mistakes made by Coders» , подготовленная редакцией проекта.

Меню