10 лучших практик безопасности GitHub | Сник

Автору следует знать о новом алгоритме полезности накопления, который используется в Google с августа 2022 г.

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Четверг, 18 августа 2022 г.

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

Приоритет нужно отдавать контенту, ориентированному на людей

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

Как создать контент, который будет иметь высокий рейтинг в соответствии с требованиями? Стремитесь также предлагать пользователям материалы, ориентированные на людей, а не на поисковые системы. В этом случае встречаются наши советы и дополнительные рекомендации. Авторы такого содержания стараются сделать его очень популярным для пользователей и в то же время следят за рекомендациями по поисковой оптимизации, чтобы он был еще лучше. Если вы отвечаете «да» на связанные ниже вопросы, то вы на верном пути.

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

Не создавайте контент, ориентированный в первую очередь на поисковые системы

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

Читайте также:
Как резать бетон (Руководство для самодельщиков) - Боб Вила

Как сделать так, чтобы ваш контент не был ориентирован в первую очередь на поисковые системы? Если вы отвечаете «да» на представленные ниже вопросы, то вам стоит просмотреть свой подход к материалам для сайта.

  • Вы создаете содержание в первую очередь для привлечения посетителей из поисковых систем, а не для того, чтобы привлекать их внимание?
  • В надежде, что какая-то страница открывается на первых местах в местах поиска?
  • Вы часто используете инструменты для сбора различных тем?
  • В своих публикациях вы преимущественно пересказываете чужие материалы, не добавляя в них ничего от себя?
  • Только потому, что они актуальны, а не потому, что они могут заинтересовать вашу аудиторию?
  • После обнаружения вашего контента у вас появляется ощущение, что им требуется дополнительная информация из других источников?
  • Вы пишете статьи, что нашли, потому что слышали или читали, что Google считает ее уникальной? (Это не так.)
  • Вы решили публиковать материалы о том, в чем плохо разбираетесь, только для привлечения поискового трафика?
  • Ваш контент обещает дать ответ на вопрос, на который на самом деле нет ответа (например, он касается предполагаемой даты выпуска продукции, фильма или следствия, которая не была подтверждена)?

Как работают новые принципы ранжирования Google

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

Невысокий рейтинг в Google. Качественные заявки займут места выше. В этом случае мы рекомендуем вам удалить малополезный контент со своей страницы, чтобы повысить их должность в управлении.

У многих возникает естественный вопрос: как быстро сайт поднимется в администрацию поиска, если удалить бесполезный контент? Это может быть несколько месяцев. Наш классификатор будет сохраняться как новые, так и обнаружение сайтов на предмет соответствия установленному критерию. Если сайт перестанет передавать аудиосигналы в его реестре, то со временем позиция в Google может улучшиться.

Читайте также:
Ковер какого размера должен быть под кроватью размера «king-size»?

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

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

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

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

Автор: Крис Нельсон (Chris Nelson), представитель команды по оценке качества поиска

Если не указано иное, содержимое этой страницы находится под лицензией Creative Commons Attribution 4.0, а образцы кода — под лицензией Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.

10 лучших практик безопасности GitHub

Памятка по 10 рекомендациям по безопасности на GitHub

Во второй части нашей серии шпаргалок мы расскажем, как вы можете быть более безопасными в качестве пользователя или участника GitHub. Многое из этого относится к лучшим практикам GitHub, но и в шпаргалке, и в этом блоге есть общие советы, применимые к другим репозиториям исходного кода. Вы можете скачать шпаргалку по безопасности GitHub здесь. Если вы пропустили нашу первую шпаргалку о том, что нужно и что нельзя делать при выводе типов в Java, представленном в Java 10, обязательно ознакомьтесь и с ней.

Читайте также:
Типы мелкозаглубленных фундаментов и их характеристики I Geotech doo I

Итак, давайте начнем с нашего списка 10 лучших практик безопасности GitHub, начиная с классической ошибки людей, добавляющих свои пароли в свои репозитории GitHub!

1. Никогда не храните учетные данные в виде кода/конфигурации в GitHub.

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

Доступно множество отличных инструментов, таких как git-secrets, которые могут статически анализировать ваши коммиты с помощью Git Hook перед фиксацией, чтобы убедиться, что вы не пытаетесь отправить какие-либо пароли или конфиденциальную информацию в свой репозиторий GitHub. Фиксации будут отклонены, если инструмент соответствует любым настроенным шаблонам регулярных выражений, предназначенным для поиска конфиденциальной информации. Это может немного замедлить толчки, но оно того стоит.

Вы также можете использовать такие инструменты, как git-secrets, в конвейерах CI и CD, чтобы активно прерывать сборки при обнаружении конфиденциальной информации в коде или файле конфигурации. Наличие общекомандных правил, которые предотвращают это, — отличный способ контролировать плохие действия в существующем рабочем процессе разработчика. Предпочтительный способ хранения или передачи конфиденциальной информации — через переменные среды выбранных инструментов конвейера CI/CD, которые вы используете, таких как Jenkins или TeamCity. Вы также можете использовать такой инструмент, как Vault, чтобы упростить управление секретами в производственной среде. Наконец, рассмотрите возможность использования цепочки инструментов управления идентификацией и пользователями, такой как Keycloak (в настоящее время поддерживается рядом разработчиков в Red Hat), а также другие.

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

Читайте также:
Как удалить пятно ржавчины с унитаза

2. Удалите конфиденциальные данные из ваших файлов и истории GitHub.

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

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

Проверьте свой репозиторий GitHub на наличие уязвимостей

Находите и устраняйте уязвимости в вашем репозитории бесплатно

3. Жесткий контроль доступа

Здесь, в Великобритании, когда становится очень-очень жарко (читай, слегка тепло), мы, британцы, обычно открываем все окна в доме, чтобы убедиться, что он не превращается в сауну. Однако, когда мы выходим из дома, мы дважды запираем входную дверь, часто оставляя многие окна частично открытыми, чтобы обеспечить движение воздуха. Конечно, это не имеет смысла, так как любой, кто хочет взломать, не будет пытаться взломать входную дверь! Они будут искать более легкий путь, возможно, пролезая через одно из удобно открытых окон. Мы часто применяем тот же подход к защите наших приложений. Мы можем очень сильно сосредоточиться на более сложных векторах атаки, но с треском провалимся против некоторых из самых простых.

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

    в учетной записи GitHub каждого участника.
  • Никогда не позволяйте пользователям делиться учетными записями/паролями GitHub.
  • Любые ноутбуки/устройства с доступом к вашему исходному коду должны быть надлежащим образом защищены.
  • Администраторы репозитория должны управлять групповым доступом к данным. Предоставляйте участникам доступ только к тем данным, которые им необходимы для работы.
  • Учетные записи GitHub часто являются личными и не исчезают естественным образом, когда пользователи покидают компанию. Убедитесь, что вы старательно отменяете доступ для пользователей, которые больше не работают с вами.
Читайте также:
Идеи цвета интерьера бревенчатой ​​хижины

4. Добавьте файл SECURITY.md

Для большинства владельцев и сопровождающих проектов естественно добавить файл README.md в свой репозиторий. На самом деле, в наши дни это довольно неодобрительно, если кто-то отсутствует. Кроме того, становится все более распространенным добавлять файл SECURITY.md, который выделяет информацию, связанную с безопасностью для вашего проекта. Это не только дает пользователям важную информацию о безопасности, которая им нужна, но также заставляет специалистов по сопровождению думать о том, как им следует поступать с раскрытием информации о безопасности, обновлениями и общими методами обеспечения безопасности.

Вот общий обзор некоторых из предложенных тем, которые вы должны осветить в файле SECURITY.md:

Политика раскрытия информации.

Отчет Snyk State of Open Source Security за 2020 год показывает, что только 21% респондентов проверяют политику ответственного раскрытия информации. В то же время очень важно определить процедуру, согласно которой репортер может полностью и ответственно раскрывать проблемы безопасности. Это должно включать, с кем связаться и как. Это чрезвычайно важно, так как позволяет вам получать важную обратную связь от ваших пользователей.

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

Политика обновлений безопасности.

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

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

Читайте также:
Электрический камин для гостиной

В 2020 году Сник обнаружил прототип загрязнения в Лодаше. В то время популярная библиотека npm использовалась в 4.35 млн проектов только на GitHub. У проекта было чуть меньше 40 тысяч звезд проекта GitHub, а библиотеку загружали более 80 миллионов раз в месяц. Команда заранее открыла тысячи автоматических запросов на исправление для своих пользователей, чтобы устранить уязвимость.

Файл SECURITY.md — хорошее место для такой информации в репозитории, и если у вас есть веб-сайт, рассмотрите возможность отдельной страницы для него — см. в качестве примера страницу безопасности Express.js.

Конфигурация, связанная с безопасностью.

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

Примеры включают в себя включение HTTPS, добавление уровня авторизации и, конечно же, замену паролей по умолчанию (рекомендации, которые многие пользователи MongoDB хотели бы получить). Помните, что пользователи, как правило, имеют довольно низкое представление о безопасности, поэтому любой совет, которым вы можете поделиться, очень им поможет.

Известные пробелы в безопасности и будущие улучшения.

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

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

Хорошие примеры файлов SECURITY.md в дикой природе можно увидеть в репозиториях Apache Storm и TensorFlow.

Читайте также:
Кирпичные стены подвала| Журнал Бетонное Строительство

5. Тщательно проверяйте свои приложения GitHub

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

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

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

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

6. Добавьте тестирование безопасности в PR

GitHub имеет мощную платформу Git Hook, управляемую событиями, которая позволяет отправлять HTTP-запросы POST в службу по вашему выбору при запуске событий. Существует огромное количество событий, на которые вы можете воздействовать, но одним из наиболее полезных для тестирования ваших добавочных изменений кода является событие pull_request. Существует множество инструментов статического анализа кода, которые поддерживают Git Hooks, так что при создании PR запускается HTTP POST, чтобы предложить им протестировать ваши последние обновления. Это отличный момент, чтобы убедиться, что вносимые изменения в код и конфигурацию соответствуют вашим ожиданиям в отношении безопасности.

Давайте возьмем Snyk в качестве примера (немного бессовестный плагин, но, тем не менее, хороший пример). Snyk статически анализирует ваш репозиторий, чтобы найти уязвимые зависимости, которые вы можете использовать, и помочь вам исправить их. Вы можете протестировать свои репозитории через пользовательский интерфейс Snyk, чтобы найти проблемы, а также удержать пользователей от добавления новых уязвимых библиотек, протестировав запросы на вытягивание и провалив тест, если была введена новая уязвимость.

Читайте также:
Как удалить пятна крови с одежды и мебели

Помимо удобной интеграции с GitHub, пулл-реквесты лучше, чем «сломать сборку», тем, что им не нужно блокировать слияние (по сути, они носят информационный характер по умолчанию), и их способность тестировать ваши изменения, а не просто результат (например, сбой, только если вы ввели уязвимую библиотеку, а не если она уже была там).

В дополнение к Snyk вам также следует рассмотреть возможность использования SonarCloud или CodeClimate для выполнения автоматических проверок кода безопасности.

Проверьте свои пулл-реквесты на наличие уязвимостей

Находите и устраняйте уязвимости перед слиянием, чтобы обеспечить безопасную доставку

7. Используйте правильное предложение GitHub для обеспечения безопасности

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

Взгляните на полностью локальное предложение GitHub Enterprise, которое позволяет полностью размещать репозитории GitHub в вашей организации. Это означает, что вы можете быть отключены от Интернета и по-прежнему иметь внутренний доступ к своим проектам в репозиториях GitHub Enterprise. Даже GitHub не имеет доступа к вашей кодовой базе!

8. Меняйте ключи SSH и токены личного доступа

Доступ к GitHub обычно осуществляется с использованием ключей SSH или личных токенов пользователя (вместо пароля, поскольку вы включили 2FA!). Но что произойдет, если эти токены будут украдены, а вы не знали? Обязательно периодически обновляйте свои ключи и токены, уменьшая любой ущерб, вызванный утечкой ключей.

9. Создавайте новые проекты с учетом безопасности

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

Читайте также:
Живопись - Техники и методы | Британика

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

10. Аудит любого кода, который вы импортируете в GitHub

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

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

Защитите свой репозиторий GitHub бесплатно

Найдите уязвимости в своем репозитории и быстро исправьте с помощью автоматических запросов на исправление.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: