По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В данной статье мы посмотрим, что такое статические и динамические библиотеки. Местоположение библиотек по умолчанию. Определение используемых библиотек. Загрузка библиотек. Библиотеки это набор функций, которые могут использоваться в различных программах. Библиотеки могут быть статические (библиотека привязывается к определенной программе или софт содержит данную библиотеку в своем теле.) и динамическими (библиотеки грузятся в оперативную память и используются). Плюсы первого варианта нет проблемы совместимости, т. к. софт уже в себе содержит библиотеку, библиотека всегда с собой. Но при этом программы становятся большие по размеры и т.к каждая может загружать свои библиотеки, а иногда и одинаковые.  Второй вариант значительно лучше, сами программы по своему размеру меньше. Библиотека загружается один раз в оперативку. И следующая программа, которой необходимы такие же функции, берет и использует эти данные. По умолчанию библиотеки в Linux находятся в двух папках. Это корневая папка /lib в ней находятся библиотеки, которые используют программы, расположенные в корневой папке /bin. И есть вторая папка /usr/lib. В ней находятся библиотеки, которые используют программы расположенные /usr/bin.  Пути к библиотекам указаны файле /etc/ld.so.conf. Данный файл можно просмотреть стандартным способом, через утилиту cat. Видим, что написано включить все библиотеки, которые расположены по пути, указанном в файле. Те которые оканчиваются на .conf. Он просто включает в себя все настройки, которые находятся в конфигурационных файлах, в данной директории. Переходим в данную директорию. В данной директории мы можем видеть 2 файла конфигурации, в зависимости от версии и наполнения операционной системы их может быть и больше. Ну и соответственно в конфигурационных файлах находятся пути к директориям, где лежат необходимые для работы библиотеки. Если мы ставим какое, то свое программное обеспечение, которому необходимы дополнительные библиотеки, не идущие в составе дистрибутива linux, то в данной директории может создаться свой конфигурационный файл. Например: если мы используем систему виртуализации VMware, то к каждой VM устанавливаем VMware tools то данное программное обеспечение создаст свой конфигурационный файл с путями для своих библиотек. Переходим в директорию cd /etc/ и отсортируем так, чтобы в результатах все, что содержит ld. ls | grep ld. Получим следующее: Видим 3 основных конфигурационных файла. ld.so.conf - это файл конфигурации в котором написано откуда брать дополнительные библиотеки. Директория ls.so.conf.d в которой находятся дополнительные конфигурационные файлы и ld.so.cache это кэш библиотек. Он у нас выстраивается каждый раз для того, чтобы программы при необходимости при запросе библиотек не копались в файлах, а сразу брали из загруженного в оперативную память кэша. Т.е. если мы вносим какие-то изменения в файл конфигурации, добавляем какие-то конфигурационные файлы нам необходимо обновить этот кэш. Кэш обновляется командой ldconfig. Этого, собственно, достаточно, чтобы прогрузить все библиотеки в кэш. Давайте посмотрим, как, определить какими библиотеками пользуется какая программа. Для этого мы будем использовать команду ldd и путь к бинарному файлу. Например: Программа ls которая используется для вывода списка файлов в каталоге. Она находится в каталоге /bin/ls. В результате получим мы следующее: Мы видим, какие so использует данная программа и соответственно ссылки на них, где они расположены, собственно, so - это наши библиотеки в данном случае. Возможно добавление библиотек вручную, это может потребоваться если мы ставим совершенно стороннее программное обеспечение, которое очень трудно взаимодействует с Linux или устаревшее. Т.е. которое само не может создать конфигурационный файл и разнести библиотеки в системные директории Linux. Если мы хотим сделать это вручную, тогда нам необходим тот самый файл /etc/ld.so.conf. В данный файл мы можем дописать путь к файлу конфигурации библиотек тех, которые нам нужны. Либо есть более легкий вариант с использованием переменной export LD_LIBRARY_PATH и указать путь к тем особенным библиотекам, которые будет использовать наша "особенная" программа. Обычно все стороннее программное обеспечение устанавливается в папку /opt. Итоговый вариант будет выглядеть как: export LD_LIBRARY_PATH=/opt/soft/lib и когда пройдет экспорт, у нас попробует погрузится из этого пути библиотека, но перед этим необходимо не забыть сделать ldconfig.
img
Инъекции Инъекция происходит, когда злоумышленник пытается отправить данные в веб-приложение с намерением заставить его выполнить что-то, что не было предусмотрено при разработке приложения. Наиболее распространенным примером этой уязвимости является SQL-запрос, используемый с целью извлечения конфиденциальных данных организаций. Например, злоумышленник может ввести код SQL в форму, которая ожидает имя пользователя с открытым текстом. Если эта форма ввода не защищена должным образом, это приведет к выполнению этого кода базой данных. Таким образом злоумышленник может читать, изменять и удалять информацию базы данных, которая для него не предназначена. Все, что принимает параметры в качестве входных данных потенциально может быть уязвимо для атаки путем внедрения кода. Поскольку формы пользовательского ввода являются главным способом реализации таких атак, то лучшим подходом для предотвращения таких угроз является контроль и проверка пользовательского ввода. Процесс контроля направлен на проверку того, разрешен ли тип входных данных, представленных пользователем. Проверка ввода гарантирует, что это допустимый тип, формат и длинна. Обрабатывается только то значение, которое проходит проверку. Это помогает противодействовать любым командам, вставленным во входную строку. Так же для предотвращения угрозы используется функция экранирования символов для пользовательского ввода. Это делается чтобы СУБД не путала пользовательский запрос с SQL командой. Одним из лучших способов идентификации атак с использованием инъекций SQL является использование брандмауэра веб- приложений (WAF). WAF отслеживает трафик, который приходит на веб-сервер, и определяет шаблоны которые представляют угрозу. Таким образом для предотвращения данной атаки необходимо применять проверку ввода, параметризированные запросы, хранимые процедуры и экранирование в сочетании с надежным брандмауэром. Это повысит шансы успешной защиты от данной атаки. Нарушение системы аутентификации Уязвимости в системах аутентификации (входа в систему) могут предоставить злоумышленникам доступ к учетным записям пользователей и даже возможность компрометировать всю систему с помощью учетной записи администратора, Например, злоумышленник, обладая базой тысяч известных комбинаций имени пользователя и пароля, может, используя ручные или автоматические методы может выполнить атаку грубой силы. Из-за того, что многие пользователи не соблюдают требований к сложности пароля и веб-сервис не ограничивает количество попыток ввода пароля, злоумышленник может без труда получить доступ к интересующей его учетной записи. Для уменьшения вероятности успеха данной атаки рекомендуется применять многофакторную аутентификацию, чтобы предотвратить автоматизированный ввод данных, проверку на сложность пароля, а также ограничение или задержку повторных попыток входа. Практически полностью уменьшить вероятность такой угрозы может применение аутентификации по токенам. Незащищенность конфиденциальных данных Уязвимость конфиденциальных данных является одной из наиболее распространенных уязвимостей в списке OWASP. Уязвимость заключается в доступности критичных данных, которые должны быть защищены. Если веб-приложение не защищают конфиденциальные данные, такие как финансовая информация, медицинская информация и пароли, злоумышленники могут получить доступ к этим данным и использовать их в своих целях. Плохая реализация криптографической защиты информации и использование небезопасных протоколов основные причины популярности данной угрозы. Одним из популярных способов кражи конфиденциальной информации является реализация атаки "человек посередине". Такая атака осуществляется, когда злоумышленник подключается между веб-браузером и веб-сервисом и перехватывает или изменяет соединение. Затем злоумышленник может просматривать весь трафик и собирать информацию или выдавать себя за одну из двух сторон. Например, злоумышленник может находиться между пользователем и веб-сервисом, который пользователь собирается посетить и собирать его данные для входа. Это можно сделать с помощью перехвата HTTP-соединения между пользователем и веб-сервисом. Захват этого соединения позволяет действовать злоумышленнику как прокси-сервер, собирая и изменяя информацию, передаваемую между пользователем и сайтом. Кроме того, злоумышленник может украсть файлы cookie пользователя. Это небольшие фрагменты данных, созданные веб-сайтом и хранящиеся на компьютере пользователя для идентификации и других целей. Такие файлы могут быть использованы для захвата сеанса пользователя, позволяя злоумышленнику выдавать себя за этого пользователя. Отсутствие шифрования конфиденциальных данных является основной причиной, по которой эти атаки все еще широко распространены. Риск несанкционированного получения данных может быть сведен к минимуму путем шифрования всех конфиденциальных данных, а также отключение временного хранения конфиденциальной информации для повторного использования. Одним из способов защиты передаваемых данных является наличие на веб-сервисе сертификата SSL (Secure Sockets Layer). Это стандартная технология безопасности для установления зашифрованного канала связи между веб-сервисом и браузером. Данный сертификат помогает обеспечить целостность передаваемых данных при передаче между веб-сервером и клиентом. Более новой и надежной версией протокола SSL является протокол TLS. Также для защиты от таких атак используют протокол HTTP Strict Transport Security (HSTS), который обеспечивает безопасное соединение SSL/TLS с любым браузером или приложением, блокируя любые незащищенные HTTP соединения, а также предотвращает кражу cookie. Кроме того, администраторы и разработчики веб-сервисов следует не использовать лишнюю конфиденциальную информацию. Нарушение контроля доступа Управление доступом позволяет разграничивать доступ к информации или функциям для разных пользователей. Если управление доступом нарушено, злоумышленник, имеющий доступ к учетной записи, может использовать привилегии, которые не предназначены для этой учетной записи. Это позволяет обычной учетной записи читать и копировать файлы, которые должны быть доступны только администратору. Неправильная настройка элемента управления доступом позволяет злоумышленникам обходить авторизацию и выполнять задачи, которые доступны только привилегированным пользователям, администраторам. Например, веб-приложение может позволить пользователю изменить учетную запись, в которую он вошел, просто изменим часть url-адреса без какой-либо другой проверки. Это происходит из-за неправильной конфигурации или вовсе отсутствия настройки прав на администрирование и управление приложением. Предоставляя глобальный доступ к панели управления хостингом, серверу через FTP/SSH, базе данных или другим приложениям на сервере мы открываем доступ к функциям или просмотру конфиденциальных данных и файлов. Для снижения рисков использования нарушенного контроля доступа рекомендуется предоставление только необходимые функции для выполнения задачи и только в течение времени, необходимого для выполнения указанной задачи, применение многофакторной аутентификации ко всем возможным точкам доступа, аудит веб-сервера, удаление не использующихся служб и учетных записей. Для предотвращения нарушения доступа необходимо запретить глобальный доступ к функциям управления сервером. Каждый пользователь должен иметь доступ только к его информации. Небезопасная конфигурации Наличие безопасной конфигурации всех компонентов инфраструктуры требуется для безопасности веб-сервера. Небезопасные и уязвимые компоненты могут быть представлены в различных формах: фреймворки, веб-серверы, сервер баз данных, сетевые службы и сами приложения. По умолчанию настройки компонентов сервера в своем большинстве небезопасны и это открывает злоумышленникам поле для атаки. Например, использование настроек по умолчанию в серверах баз данных может привести к доступу ка закрытой службе через публичный IP-адрес, что в сумме с использованием установленным производителем по умолчанию паролем чревато очень серьезными проблемами с утечкой или потерей критичных, или конфиденциальных данных. Злоумышленник сможет изменять и читать данные в числе которых могут быть выводимые браузером данные для пользователя или же сессионные cookies, утечка которых может привести к использованию злоумышленником платежных данных пользователей или же другой секретной информации. Ежедневно исследователи находят уязвимости в системах и компонентах. От уязвимостей нулевого дня трудно защититься. Уязвимость нулевого дня является ошибкой при разработке программного обеспечения, которая несет угрозу безопасности программного обеспечения. Термин "нулевой день" относится к недавно обнаруженной уязвимости программного обеспечения. Поскольку разработчик не знает о возможной уязвимости при проектировании ПО то, когда он узнает о найденном недостатке неожиданно, разработчик не имеет возможности сразу исправить эту уязвимость, так как для этого нужно подготовить официальный патч или обновление для исправления проблемы. У разработчика есть "ноль дней" чтобы исправить проблему, которая была обнаружена и возможно уже используется злоумышленниками, чтобы успеть защитить своих пользователей. Использование небезопасных компонентов приводит к краже и широкомасштабным атакам. Когда приложение использует небезопасные компоненты, злоумышленники могут узнать все, что им нужно знать о серверах, компонентах и многом другом. Поэтому необходимо постоянно проверять актуальность программного обеспечения, так как уязвимости могут быть обнаружены в самых разных программных компонентах таких как сервера, базы данных и операционной системе. Для предотвращения угроз, связанных с использованием неправильной конфигурации системы, следует использовать только необходимые компоненты и функции, автоматизировать процесс для проверки эффективности конфигураций и параметров во всех средах, использовать методы сегментации и контейризации для ограничения поверхности атаки. Межсайтовое выполнение сценариев XSS (Cross Site Scripting) Межсайтовое выполнение сценариев это широко распространенная уязвимость, которая затрагивает многие веб-приложения. XSS-атаки состоят из внедрения вредоносных клиентских сценариев на веб-сайт и использование ве-сайта в качестве распространения. Риск XSS заключается в том, что он позволяет злоумышленнику вводить контент на веб-сайт и изменять способ его отображения, заставляя браузер жертвы выполнять код, предоставленный злоумышленником во время загрузки страницы. Такие уязвимости возникают, когда веб-приложение позволяет пользователям добавлять пользовательский код в URL-ссылку или на веб-сайт, который будет виден другим пользователям. Эта уязвимость может быть использована для запуска вредоносного кода JavaScript в браузере жертвы. XSS-атаки не направлены на конкретную цель. Злоумышленник просто использует уязвимость сайта или приложения, внедряя код через случайного пользователя и далее этот сайт или приложение становится центром рассылки вредоносных сценариев для множества других пользователей. Например, злоумышленник может отправить жертве электронное письмо, которые выглядит как официальное письмо от банка с ссылкой на веб-сайт этого банка. Однако эта ссылка может иметь какой-то вредоносный код JavaScript, оставленный в конце URL-адреса. Если сайт банка не будет должным образом защищен от межсайтового выполнения сценариев, то этот вредоносный код будет запущен в веб-браузере жертвы, когда он пройдет по ссылке. Уязвимость XSS дает злоумышленнику почти полный контроль на самым важным программным обеспечением компьютеров в настоящее время браузерами. Существует три типа межсайтовых скриптовых атак: Хранимые XSS (постоянные). Наиболее опасный тип уязвимостей, так как злоумышленник получает доступ к серверу и уже с него может управлять вредоносным кодом. Вредоносный код постоянно хранится на целевом сервере и выполняется каждый раз при обращении к сервису. Это может произойти на любых страницах с вводом данных пользователей, например, в полях комментариев, базе данных и может быть встроен как текст картинки, или рисунки. Отраженные XSS (непостоянные). Отраженная атака происходит, когда вредоносный сценарий не хранится на сервере, а содержится во входных данных, отправленных от пользователя к серверу. Это атака реализуется путем отправки жертве ссылки, содержащей вредоносный сценарий, на электронную почту или другим способом. Проходя по ссылке, жертва отправляет запрос с вредоносным кодом к серверу, который автоматически берет данные из вредоносной строки и отправляет модифицированный ответ жертве. В итоге браузер жертвы распознает запрос как надежный и выполняет вредоносный скрипт. DOM-модели. Третий тип атаки, известный как атака на основе DOM (Document Object Model) не является распространённой, но может произойти. Атака происходит, когда среда DOM изменяется в веб-браузере жертве и приводит к запуску вредоносного кода на стороне клиента. Атаки на основе DOM отличаются тем, что они используют уязвимости на стороне клиента, а не на стороне сервера. Для снижения рисков XSS-атаки используются межсетевые экраны, которые помогают смягчить такие атаки. Также для предотвращения таких атак рекомендуется осуществлять экранирование ненадежных данных HTTP-запроса или же использовать фреймворки, которые автоматически экранируют XSS. Небезопасная дессериализация Эта угроза нацелена на многие веб-приложения, которые часто сериализиуют или дессериализуют данные. Сериализация означает получение объектов из кода приложения и преобразование их в формат, который может использоваться для других целей, таких как хранение данных на диске или их потоковая передача. Дессериализация это обратное действие, преобразование сериализованных данных обратно в объекты, которые может использовать приложение. Когда поток данных преобразуется в объекты, вредоносные или измененные объекты могут вызвать серьезные проблемы безопасности. Небезопасное осуществление десериализации является результатом десериализации данных из ненадежных источников и может привести к серьезным последствиям, таким как DDoS-атака, удаленное выполнение кода и запуска программ. Несмотря на то, что можно предотвратить такие уязвимости используя мониторинг и проверку типов, единственным надежным способом защиты от атак десериализации является запрет десериализации из ненадежных источников. Если же это сделать невозможно, то для предотвращения таких атак также может быть осуществлена проверка целостности, например, при помощи цифровой подписи, применение строгих ограничений типа при создании объектов. Также изолирование и выполнение кода, который десериализуется в средах с низким уровнем привилегий. Использование компонентов с известными уязвимостями Значительная часть веб-сервисов состоит из множества специальных компонентов, такие как библиотеки и фреймворки (англ. - framework), которые поставляются сторонними компаниями. Эти компоненты являются частями программного обеспечения, которые помогают разработчикам сократить время, избежать выполнения избыточной работы и обеспечить необходимую функциональность. Например, популярный фреймворк, применяемый для разработки интерфейсов React или же библиотеки для проведения тестирования. Злоумышленники постоянного ищут уязвимости в таких компонентах и потом используют для организации атак. Обнаружив уязвимость в безопасности одного из компонентов приложения, злоумышленник может сделать уязвимыми сотни тысяч веб-сервисов. Разработчики компонентов часто выпускают обновления для устранения известных уязвимостей, однако администраторы и разработчики не всегда имеют возможность обновить компоненты до последней версии. Чтобы свести к минимуму риск запуска компонентов с известными уязвимостями, разработчикам следует удалять неиспользуемые компоненты из своих проектов, а также проверять актуальность обновлений и получать их от надежных источников. Недостаточный мониторинг и логирование Большинство веб-сервисов не предпринимают достаточных шагов для обнаружения нарушений безопасности данных. Среднее время обнаружения нарушений составляет около 200 дней после того, как оно произошло. Это дает злоумышленникам много времени, чтобы нанести ущерб, прежде чем происходит какая-то реакция. Логирование и мониторинг необходим, чтобы оставаться в курсе любых подозрительных изменений приложения.
img
В этой статье мы рассмотрим переменные, которые отвечают за локализацию и кодировку операционной системы. Данная тема достаточно важна, т.к. некоторые прикладные сервисы требуют нестандартной кодировки или региональной локализации. В Linux системах есть основная переменная $LANG – которая задает основной язык системы. Есть и другие переменные, но они берут изначально настройки с этой основной переменной $LANG. Можно настроить отдельные какие-то переменные, но можно все же давать значение основной переменной $LANG и она будет давать значение всем остальным. Есть так же переменная LC_ALL – которая позволяет нам разом перезаписать все языковые настройки. Есть также утилита locale которая показывает кучу переменных, которые относятся к языковым настройкам. $LANG= – данную переменную обычно используют для написания скриптов, чтобы те или иные настройки установить по умолчанию для выполнения скрипта. В большинстве случаев данная настройка включает английский язык по умолчанию. Есть такая команда env, которая выводит заданные переменные в системе. И тут в частности, есть переменная которая отвечает за языковые настройки. В нашем случае LANG=en_US.UTF-8, т.к скриншот делался на операционной системе с английской локализацией по умолчанию. Мы видим en_US в кодировке UTF-8. En_US – говорит о том, что у нас используется американский английский язык. Посмотреть все переменные относящиеся к данной локализации мы можем с помощью утилиты locale. Как вы видите все остальные переменные на данной установленной операционной системе тоже американские. Почему это важно? Во-первых, это важно для логгирования. С такими настройками система будет писать файлы системных и других логов в американском формате yyyy-mm-dd (год-месяц-день: 2006-12-31), в русском формате же правильно будет dd-mm-yyyy. И при передаче логов из одной системы в другую возникнут ошибки. Другой пример - бывают нестандартные решения, допустим хранение базы данных 1С в postgre. Для того чтобы сервер приложений корректно работал с базой опять же необходима русская локализация. И таких примеров взаимодействия можно привести достаточно много. Теперь, если у нас появилась необходимость поменять какую-нибудь, переменную, например, LC_TIME то делаем следующее: LC_TIME=ru_RU.UTF-8 – задаем переменную. export LC_TIME – загружаем переменную. Мы можем сразу все настройки изменить - LC_ALL=ru_RU.UTF-8 Далее export LC_ALL. Если мы ошибемся с вводом локали (языковой пакет настроек) или в системе не загружена такая локаль, то система нам выдаст ошибку: Надо выполнить инсталляцию языкового пакета sudo apt-get install language-pack-ru Генерация файла с обновленной информацией о добавленных пакетах в систему: sudo locale-gen И после этого опять попробовать сменить. Для возврата в исходное состояние настроек мы можем выполнить команду unset LC_ALL. После выполнения данной команды все настройки языковые системы вернутся в исходное состояние. Немного о кодировке. Кодировка - это представление символов в определенном виде. Самые распространенные кодировки, используемые в Linux: ASCII – 128 основных символов; ISO-8859 – большинство латинских символов; UTF-8 -символы Unicode. Для конвертации используется утилита iconv, но есть более практический инструмент. Если нам необходимо конвертировать какой-то файл в другой, то проще всего использовать Notepad++. Открываем файл, в меню выбираем пункт кодировка. Программа покажет текущую и меняем на интересующую нас. Затем сохраняем. В случае если у нас только консольное подключение, делаем это с помощью iconv. Общий вид команды: iconv [опция] [-f кодировка 1] [-t кодировка 2] [исходный файл] [целевой файл] Установка и настройка часовых зон. Утилита tzselect позволяет осуществить поиск нужной временной зоны. Появляется мастер пошаговый, который позволяет сделать свой выбор и в конце дает инструкцию, как сделать, чтобы выбор сохранился. Вторая утилита это date, которая выводит текущую дату и время, если запустить ее без параметров, а также позволяет установить их. Опции и форматы можно посмотреть при помощи команды man date Для установки даты и времени необходимы права суперпользователя. sudo date -s “yyyymmdd hh:mm” – обратите на формат вводимых данных.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59