Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
694f87f
Create be.yml
saivan4ick Feb 28, 2023
85e635b
Create best-practices.md
saivan4ick Feb 28, 2023
c8d3148
Create building-community.md
saivan4ick Feb 28, 2023
53551ad
Update README.md
saivan4ick Feb 28, 2023
89ea0a5
Create code-of-conduct.md
saivan4ick Feb 28, 2023
5e0c2d2
Update code-of-conduct.md
saivan4ick Feb 28, 2023
8354991
Update code-of-conduct.md
saivan4ick Feb 28, 2023
a77bbe4
Create finding-users.md
saivan4ick Feb 28, 2023
5b180cf
Translation into Belarusian
saivan4ick Mar 1, 2023
5a0b3ca
Translation into Belarusian
saivan4ick Mar 1, 2023
55148b9
Translated into Belarusian
saivan4ick Mar 1, 2023
47fddb6
Translation into Belarusian
saivan4ick Mar 1, 2023
fdec1db
Translation into Belarusian
saivan4ick Mar 1, 2023
b4a9d62
Translation into Belarusian
saivan4ick Mar 1, 2023
5c90cd1
Translation into Belarusian
saivan4ick Mar 1, 2023
93ebdfb
Translation into Belarusian
saivan4ick Mar 1, 2023
b778f54
Translation into Belarusian
saivan4ick Mar 2, 2023
29f311b
Translation into Belarusian
saivan4ick Mar 2, 2023
1d353fa
Delete google19d329aaa468a71f.html
saivan4ick May 11, 2026
c20d11f
Update README.md
saivan4ick May 12, 2026
2e3f9c2
Merge branch 'main' into main
saivan4ick May 12, 2026
bb2db55
Create maintaining-balance-for-open-source-maintainers.md
saivan4ick May 12, 2026
2a4d543
Update legal.md
saivan4ick May 12, 2026
c942315
Update articles
saivan4ick May 13, 2026
120e9f7
Fix formatting and link issues in best-practices.md
saivan4ick May 13, 2026
4fe0ebc
Correct image links and enhance community guidelines
saivan4ick May 13, 2026
8f6376a
Fix formatting and links in code of conduct
saivan4ick May 13, 2026
e1ef8b4
Fix formatting and links in finding-users.md
saivan4ick May 13, 2026
590fd1b
Update getting-paid.md
saivan4ick May 13, 2026
5b8f9ad
Update how-to-contribute.md
saivan4ick May 13, 2026
70d4b21
Update leadership-and-governance.md
saivan4ick May 13, 2026
4bb5e39
Update metrics.md
saivan4ick May 13, 2026
311b8b8
Update security-best-practices-for-your-project.md
saivan4ick May 13, 2026
d659945
Update starting-a-project.md
saivan4ick May 13, 2026
307a323
Update best-practices.md
saivan4ick May 13, 2026
0de7bb1
Update finding-users.md
saivan4ick May 13, 2026
3855e58
Update getting-paid.md
saivan4ick May 13, 2026
310540a
Update leadership-and-governance.md
saivan4ick May 13, 2026
ab530ef
Update building-community.md
saivan4ick May 13, 2026
acd5f96
Update finding-users.md
saivan4ick May 13, 2026
5486848
Update building-community.md
saivan4ick May 13, 2026
f02f16f
Update how-to-contribute.md
saivan4ick May 13, 2026
a9c6402
Update leadership-and-governance.md
saivan4ick May 13, 2026
6592d83
Update starting-a-project.md
saivan4ick May 13, 2026
42e5198
Update building-community.md
saivan4ick May 13, 2026
47d5ac1
Update how-to-contribute.md
saivan4ick May 13, 2026
9083624
Update how-to-contribute.md
saivan4ick May 13, 2026
0f3de0f
Update how-to-contribute.md
saivan4ick May 13, 2026
736df4e
Update starting-a-project.md
saivan4ick May 13, 2026
b266fd6
Update building-community.md
saivan4ick May 13, 2026
2e8b0a0
Update how-to-contribute.md
saivan4ick May 13, 2026
4a86e84
Update leadership-and-governance.md
saivan4ick May 13, 2026
0b78ea6
Update how-to-contribute.md
saivan4ick May 13, 2026
a316142
Fix formatting and duplicate rules in best-practices.md
saivan4ick May 13, 2026
0f37b2c
Update building-community.md
saivan4ick May 13, 2026
7e5e4ff
Update code-of-conduct.md
saivan4ick May 13, 2026
8ed93bd
Update maintaining-balance-for-open-source-maintainers.md
saivan4ick May 13, 2026
c3b9c37
Update finding-users.md
saivan4ick May 13, 2026
d523177
Update getting-paid.md
saivan4ick May 13, 2026
e707ed9
Update how-to-contribute.md
saivan4ick May 13, 2026
14b4d8e
Update how-to-contribute.md
saivan4ick May 13, 2026
232d63e
Update leadership-and-governance.md
saivan4ick May 13, 2026
35efdb0
Update metrics.md
saivan4ick May 13, 2026
d561d64
Update starting-a-project.md
saivan4ick May 13, 2026
489a108
Update best-practices.md
saivan4ick May 13, 2026
fcd29e9
Update how-to-contribute.md
saivan4ick May 13, 2026
4d34adb
Update how-to-contribute.md
saivan4ick May 13, 2026
d91fc31
Update metrics.md
saivan4ick May 13, 2026
85b0386
Add faraday-retry gem to Gemfile
saivan4ick May 13, 2026
de22ac9
Update tests.yml
saivan4ick May 13, 2026
e86b874
Update tests.yml
saivan4ick May 13, 2026
7f7be47
Update tests.yml
saivan4ick May 13, 2026
14726fc
Update tests.yml
saivan4ick May 13, 2026
967b9d2
Update tests.yml
saivan4ick May 13, 2026
320747f
Delete Gemfile.lock
saivan4ick May 13, 2026
f46fb81
Merge branch 'github:main' into main
saivan4ick May 14, 2026
0a77d2f
Fix error Github Actions
saivan4ick May 14, 2026
3243aa2
Fix errors GitHub Actions
saivan4ick May 14, 2026
9acc730
Fix error GitHub Actions
saivan4ick May 14, 2026
6758044
Update Gemfile
saivan4ick May 30, 2026
40fcad8
Returned Gemfile.lock
saivan4ick May 30, 2026
acc1871
Merge branch 'github:main' into main
saivan4ick May 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
278 changes: 278 additions & 0 deletions _articles/be/best-practices.md

Large diffs are not rendered by default.

275 changes: 275 additions & 0 deletions _articles/be/building-community.md

Large diffs are not rendered by default.

114 changes: 114 additions & 0 deletions _articles/be/code-of-conduct.md

Large diffs are not rendered by default.

134 changes: 134 additions & 0 deletions _articles/be/finding-users.md

Large diffs are not rendered by default.

171 changes: 171 additions & 0 deletions _articles/be/getting-paid.md

Large diffs are not rendered by default.

519 changes: 519 additions & 0 deletions _articles/be/how-to-contribute.md

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions _articles/be/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
layout: index
title: Кіраўніцтва па адкрытым праграмным забеспячэнні
lang: be
permalink: /be/
---
143 changes: 143 additions & 0 deletions _articles/be/leadership-and-governance.md

Large diffs are not rendered by default.

127 changes: 127 additions & 0 deletions _articles/be/legal.md

Large diffs are not rendered by default.

219 changes: 219 additions & 0 deletions _articles/be/maintaining-balance-for-open-source-maintainers.md

Large diffs are not rendered by default.

124 changes: 124 additions & 0 deletions _articles/be/metrics.md

Large diffs are not rendered by default.

83 changes: 83 additions & 0 deletions _articles/be/security-best-practices-for-your-project.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
lang: be
title: Лепшыя практыкі бяспекі для вашага праекта
description: Умацуйце будучыню свайго праекта, умацоўваючы давер з дапамогай асноўных метадаў забеспячэння бяспекі-ад шматфактарнага аўтэнтыфікацыі і сканавання кода да бяспечнага кіравання залежнасцямі і канфідэнцыйных справаздач аб уразлівасцях.
class: security-best-practices
order: -1
image: /assets/images/cards/security-best-practices.png
---

Акрамя выпраўлення памылак і дадання новых функцый, доўгатэрміновае існаванне праекта залежыць не толькі ад яго карыснасці, але і ад даверу, якое ён заслугоўвае ў карыстальнікаў. Надзейныя меры бяспекі важныя для захавання гэтага даверу. Ніжэй прыведзены ключавыя дзеянні, якія вы можаце зрабіць, каб значна павысіць бяспеку вашага праекта.

## Пераканайцеся, што ўсе прывілеяваныя ўдзельнікі ўключылі двухфакторную аўтэнтыфікацыю (MFA)

### Зламыснік, якому ўдасца выдаць сябе за ўдзельніка з прывілеяваным доступам, можа нанесці катастрафічны ўрон.

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

MFA забяспечвае дадатковы ўзровень абароны ад захопу ўліковага запісу. Пасля ўключэння вы павінны ўвайсці з лагінам і паролем, а таксама забяспечыць дадатковую форму аўтэнтыфікацыі, да якой у вас ёсць доступ (напрыклад, аднаразовы код з прыкладання).

## Забяспечце бяспеку кода ў рамках працэсу распрацоўкі

### Уразлівасці ў кодзе танней выпраўляць на ранніх этапах, чым пасля выхаду ў прадакшн.

Выкарыстоўвайце інструмент статычнага аналізу бяспекі (SAST), каб выяўляць уразлівасці ў кодзе. Гэтыя інструменты працуюць на ўзроўні кода і не патрабуюць выкананай асяроддзя, таму іх можна запускаць на ранніх этапах і лёгка інтэграваць у звычайны працэс распрацоўкі — на этапе зборкі або пры праверцы кода.

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

Як выбраць SAST-інструмент?
Праверце ліцэнзію: некаторыя інструменты бясплатныя для open-source праектаў, напрыклад GitHub CodeQL або SemGrep.
Праверце падтрымку вашых моў праграмавання.

* Выбірайце інструмент, які лёгка інтэгруецца з ужо выкарыстоўванымі вамі сродкамі і працэсамі. Напрыклад, лепш, калі абвесткі будуць адлюстроўвацца ў рамках Вашага бягучага працэсу праверкі кода, а не ў асобным інструменце.
* Сцеражыцеся ілжывых спрацоўванняў! Вы не хочаце, каб інструмент запавольваў вашу працу без прычыны!
* Праверце функцыянальнасць: некаторыя інструменты вельмі магутныя і падтрымліваюць аналіз патокаў дадзеных (напрыклад, GitHub CodeQL), іншыя прапануюць выпраўлення, згенераваныя ІІ, трэція спрашчаюць напісанне карыстацкіх запытаў (напрыклад, SemGrep).

## Не захоўвайце і не публікуйце свае сакрэты

### Канфідэнцыйныя дадзеныя, такія як API-ключы, токены і паролі, часам выпадкова трапляюць у рэпазітар.

Уявіце сітуацыю: вы-суправаджалы папулярнага open-source праекта, у які ўносяць ўклад распрацоўшчыкі з усяго свету. Аднойчы ўдзельнік выпадкова камітаў ў рэпазітар API-ключы іншага сэрвісу. Праз некалькі дзён хтосьці знаходзіць гэтыя ключы і выкарыстоўвае іх для несанкцыянаванага доступу. Сэрвіс аказваецца скампраметаваны, карыстальнікі вашага праекта сутыкаюцца з прастоем, а рэпутацыя праекта пакутуе. Як суправаджалы, вы цяпер вымушаныя адклікаць скампраметаваныя ключы, высветліць, якія дзеянні зламыснік мог здзейсніць з гэтым доступам, паведаміць пацярпелых карыстальнікаў і ўкараніць выпраўлення.

Каб прадухіліць такія інцыдэнты, існуюць рашэнні для сканавання сакрэтаў, якія дапамагаюць выяўляць такія дадзеныя ў вашым кодзе. Некаторыя інструменты, напрыклад Github Secret Scanning і Trufflehog ад Truffle Security, могуць прадухіліць адпраўку сакрэтаў у выдаленыя галінкі, а некаторыя аўтаматычна адклікаюць выяўленыя ключы.

## Правярайце і абнаўляйце залежнасці

### Уразлівасці ў залежнасці ад вашага праекта могуць падарваць яго бяспеку. Ручное абнаўленне залежнасцяў-працаёмкая задача.

Уявіце: праект пабудаваны на трывалай аснове шырока выкарыстоўванай бібліятэкі. Пазней у гэтай бібліятэцы выяўляецца сур'ёзная ўразлівасць, але распрацоўшчыкі прыкладання пра гэта не даведаюцца. Канфідэнцыйныя дадзеныя карыстальнікаў застаюцца адкрытымі, і зламыснік, скарыстаўшыся гэтай уразлівасцю, выкрадае іх. Гэта не тэорыя-менавіта так адбылося з Equifax ў 2017 годзе: яны не абнавілі залежнасць Apache Struts пасля паведамлення аб крытычнай уразлівасці. Яна была эксплуатаваная, і ў выніку ўцечкі пацярпелі дадзеныя 144 мільёнаў карыстальнікаў.

Каб пазбегнуць падобнага, інструменты аналізу складу па (SCA), такія, як Dependabot і Renovate, аўтаматычна правяраюць залежнасці на наяўнасць вядомых уразлівасцяў з публічных баз дадзеных (напрыклад, NVD або GitHub Advisory Database) і ствараюць pull request'ы для абнаўлення да бяспечных версій. Падтрыманне залежнасцяў ў актуальным стане абараняе ваш праект ад патэнцыйных рызык.

## Абараніце асноўныя галіны ад непажаданых змен

### Неабмежаваны доступ да асноўных галін можа прывесці да выпадковых або шкоднасных змен, якія выклічуць уразлівасці або парушаць стабільнасць праекта.

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

## Наладзьце механізм прыёму справаздач аб уразлівасцях

### Добрай практыкай з'яўляецца спрашчэнне працэсу паведамленні пра памылкі, але галоўнае пытанне: як карыстальнікі могуць бяспечна паведаміць аб уразлівасці, не прыцягваючы ўвагу зламыснікаў?

Уявіце: даследчык бяспекі выяўляе ўразлівасць у вашым праекце, але не знаходзіць зразумелага або бяспечнага спосабу паведаміць пра яе. Без выразнага працэсу ён можа Стварыць публічны issue або абмеркаваць праблему ў сацсетках. Нават калі ён дзейнічае добрасумленна і прапануе выпраўленне, пры публічным pull request'е іншыя ўбачаць ўразлівасць да яе выпраўлення! Такое раскрыццё зробіць ўразлівасць даступнай для зламыснікаў да таго, як вы зможаце яе ліквідаваць, што можа прывесці да эксплуатацыі «ў нуль» і атацы на ваш праект і яго карыстальнікаў.

### Палітыка бяспекі

Каб пазбегнуць гэтага, Апублікуйце палітыку бяспекі. Палітыка бяспекі, апісаная ў файле `SECURITY.md', дэталізуе крокі для паведамлення аб праблемах бяспекі, стварае празрысты працэс каардынаванага раскрыцця і вызначае абавязкі каманды праекта па ліквідацыі паведамленых праблем. Палітыка можа быць простай: "калі ласка, не публікуйце дэталі ў публічных issue або PR, адпраўце нам ліст на "security@example.com" , але таксама можа ўтрымліваць дадатковыя звесткі, напрыклад, калі чакаць адказу. Любая інфармацыя, якая дапаможа зрабіць працэс раскрыцця эфектыўным і хуткім, карысная.

### Прыватнае паведамленне аб уразлівасцях

На некаторых платформах можна спрасціць і ўзмацніць працэс кіравання ўразлівасцямі — ад прыёму да абвесткі-з дапамогай прыватных зваротаў. У GitLab гэта рэалізавана праз прыватныя issue. У GitHub гэта называецца прыватным паведамленнем аб уразлівасцях (PVR). PVR дазваляе суправаджаюць атрымліваць і апрацоўваць справаздачы аб уразлівасцях прама ў GitHub. GitHub аўтаматычна стварае прыватны форк для напісання выпраўленняў і чарнавік security advisory. Усё гэта застаецца канфідэнцыйным, пакуль вы не вырашыце раскрыць праблему і выпусціць выпраўлення. У завяршэнне, security advisory публікуюцца і інфармуюць, а таксама абараняюць ўсіх вашых карыстальнікаў праз іх SCA-інструменты.

## Заключэнне: некалькі крокаў для вас-велізарнае паляпшэнне для вашых карыстальнікаў

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

## Удзельнік

### Вялікі дзякуй усім суправаджальнікам, якія падзяліліся з намі сваім вопытам і парадамі для гэтага кіраўніцтва!

Гэта кіраўніцтва было напісана [@nanzggits](https://github.com/nanzggits) і [@xcorail](https://github.com/xcorail) пры ўдзеле:

[@JLLeitschuh](https://github.com/JLLeitschuh)
[@intrigus-lgtm](https://github.com/intrigus-lgtm) + [многія іншыя](https://github.com/github/opensource.guide/graphs/contributors)!
Loading
Loading