सुरक्षा
यह पेज उस व्यवस्थापक के लिए है जो सर्वर चलाता है। यह नए इंस्टॉलेशन को हार्डन करने के चरणों से शुरू होता है और फिर हर सुरक्षा का विस्तार से वर्णन करता है।
प्रोजेक्ट बताता है कि थ्रेट मॉडल और बाहरी सुरक्षा समीक्षा अभी बाकी हैं। सर्वर को खुले इंटरनेट पर प्रकाशित न करें। उस तक केवल अपने क्लाइंट के नेटवर्क पहुँचें।
नया सर्वर हार्डन करें
- जब तक HTTPS काम करने लगे, डिफ़ॉल्ट लिसन पता
127.0.0.1रखें। नेटवर्क और HTTPS देखें। - HTTPS चालू करें और क्लाइंट नेटवर्क के लिए केवल HTTPS पोर्ट खोलें। डेटाबेस पोर्ट कभी न खोलें।
- व्यवस्थापकों के लिए व्यक्तिगत खाते बनाएँ। आपात स्थितियों के लिए पुनर्प्राप्ति कुंजी रखें। पुनर्प्राप्ति कुंजी देखें।
- हर टूल या CI सिस्टम को उसका अपना सेवा खाता और सबसे कम अधिकारों वाली कुंजी दें। कुंजियाँ और टोकन देखें।
- स्व-पंजीकरण बंद ही रहने दें। यह डिफ़ॉल्ट रूप से बंद है।
- अगर Arkvory के सामने कोई रिवर्स प्रॉक्सी है, तो
ARKVORY_TRUSTED_PROXIESसेट करें। साइन-इन सीमाएँ देखें। - एन्क्रिप्टेड vault (डिफ़ॉल्ट) इस्तेमाल करें और उसका रिकवरी किट सर्वर के बाहर रखें। उसे ऐसे एन्क्रिप्टेड वॉल्यूम पर भी रखें जिसे केवल सेवा खाता और बैकअप प्रशासक पढ़ सकें। देखें बैकअप।
- सीक्रेट फ़ाइलों की प्रतियाँ सर्वर के बाहर रखें। अपने सीक्रेट का बैकअप लें देखें।
- मेट्रिक्स और अलर्ट जोड़ें। मॉनिटरिंग देखें।
नेटवर्क और HTTPS
सर्वर डिफ़ॉल्ट रूप से 127.0.0.1:8080 पर सुनता है। HTTPS कॉन्फ़िगर करने के बाद नेटिव इंस्टॉलेशन किसी दूसरे पते पर सुन सकता है:
sudo arkvory configure --root /opt/proanima-arkvory --tls-cert /etc/arkvory/fullchain.pem --tls-key /etc/arkvory/privkey.pem --listen-host 0.0.0.0कमांड फ़ाइलें जाँचता है, सेवाएँ रीस्टार्ट करता है और सेवाएँ शुरू न होने पर पुरानी सेटिंग्स बहाल कर देता है। पूरी प्रक्रिया और Docker Compose के लिए, जिसे रिवर्स प्रॉक्सी चाहिए, HTTPS और रिवर्स प्रॉक्सी देखें।
- प्रमाणपत्र और कुंजी पढ़ी जानी चाहिए, मेल खानी चाहिए और समाप्त नहीं होनी चाहिए। अन्यथा API शुरू नहीं होता और कभी सादे HTTP पर वापस नहीं जाता।
- न्यूनतम TLS संस्करण 1.2 है। 1.3 की आवश्यकता के लिए
ARKVORY_TLS_MIN_VERSION=TLSv1.3सेट करें। क्लाइंट प्रमाणपत्र समर्थित नहीं हैं। - जब सर्वर स्वयं HTTPS परोसता है तो वह
Strict-Transport-Security: max-age=31536000के साथ उत्तर देता है। जब कोई प्रॉक्सी TLS समाप्त करता है तो वह हेडर उसका होता है। - नवीनीकृत प्रमाणपत्र फ़ाइलें बिना रीस्टार्ट के हर 300 सेकंड (
ARKVORY_TLS_RELOAD_SECONDS) में फिर पढ़ी जाती हैं। नए कनेक्शन नया प्रमाणपत्र पाते हैं। जो फ़ाइल पढ़ी नहीं जा सकती, वह काम कर रहे प्रमाणपत्र को यथावत् रखती है औरtls.reload_failedलिखता है। अंतिम 14 दिनों तकtls.expiringरोज़ लिखा जाता है। - बिना TLS और बिना भरोसेमंद प्रॉक्सी वाला नॉन-लूपबैक पता शुरू होते समय
http.plaintext_exposedचेतावनी लिखता है। क्लाइंट को अंदर आने देने से पहले उसे ठीक करें। - Arkvory अपने प्राप्त प्रमाणपत्र की जाँच कभी बंद नहीं करता: न मिरर के लिए, न हब के लिए, न कमांड-लाइन क्लाइंट में। मिरर के लिए
--mirror-ca-fileसे अपना प्रमाणपत्र प्राधिकरण जोड़ें।
रिवर्स प्रॉक्सी के पीछे API लूपबैक पर ही रहता है। प्रॉक्सी को बिना पूरी फ़ाइलें बफ़र किए बॉडी स्ट्रीम करनी चाहिए। प्रॉक्सी पर क्वेरी स्ट्रिंग लॉग न करें, क्योंकि डाउनलोड लिंक अपना सीक्रेट वहीं रखता है।
सर्वर पर सीक्रेट
इंस्टॉलर इन फ़ाइलों को इंस्टॉलेशन रूट में बनाते हैं। जो अनुमतियाँ इंस्टॉलर ने सेट की हैं, उन्हें वैसा ही रखें।
| फ़ाइल | सामग्री | एक्सेस |
|---|---|---|
config/bootstrap-token.txt | पुनर्प्राप्ति कुंजी। इसके पास व्यवस्थापक अधिकार हैं | Linux: केवल root (मोड 0600)। Windows: SYSTEM और Administrators |
config/keys.json | पुनर्प्राप्ति कुंजी और हेल्थ कुंजी के SHA-256 हैश, कुंजियाँ कभी नहीं | Linux: root लिखता है, सेवा समूह पढ़ता है (0640)। Windows: रूट से विरासत में |
config/health-token.txt | हेल्थ कुंजी deployment-health। इसके पास कोई रिपॉज़िटरी अधिकार नहीं | Linux: केवल root। Compose: कंटेनर में पठनीय |
config/runtime.json | सभी सर्वर सेटिंग्स, पासवर्ड सहित डेटाबेस URL समेत | Linux: root लिखता है, सेवा समूह पढ़ता है (0640)। Windows: रूट से विरासत में |
config/postgres.env | Compose इंस्टॉलेशन का डेटाबेस पासवर्ड | केवल root, या SYSTEM और Administrators |
github-token.txt | अपडेट के लिए वैकल्पिक GitHub टोकन | केवल root, या SYSTEM और Administrators |
config/mirrors/*.token | मिरर के स्रोत सर्वरों के लिए रीड कुंजियाँ | सेवा खाता |
| TLS कुंजी | प्रमाणपत्र की निजी कुंजी | स्थान आप चुनते हैं। केवल सेवा खाते को अनुमति दें |
Windows पर रूट SYSTEM और Administrators को पूरा नियंत्रण देता है। सेवा खाता LocalService रूट पढ़ता है और केवल data\, logs\ और अपडेट इनबॉक्स में लिखता है। डेटाबेस किसी दूसरे खाते के तहत चलता है, इसलिए API डेटाबेस फ़ाइलें नहीं पढ़ सकता।
सभी सीक्रेट के नियम:
- इन्हें फ़ाइलों या एनवायरनमेंट वेरिएबल में दें, कभी कमांड आर्गुमेंट में नहीं। आर्गुमेंट प्रोसेस सूची में दिखते हैं।
- पुनर्प्राप्ति कुंजी को क्लाइंट, CI सिस्टम या स्क्रिप्ट पर कॉपी न करें। रोज़ के काम के लिए खाते और सेवा कुंजियाँ बनाएँ।
- सर्वर अपने लॉग में कुंजियाँ, पासवर्ड, टोकन,
Authorizationहेडर या क्वेरी स्ट्रिंग कभी नहीं लिखता। मॉनिटरिंग देखें। - इंस्टॉलर का कमांड आउटपुट डेटाबेस URL, कुंजियाँ और लंबे सीक्रेट रीडैक्ट कर देता है।
पुनर्प्राप्ति कुंजी बदलने के लिए, फ़ाइल bootstrap-token.txt और config/keys.json में उसका हैश एक साथ बदलें, प्रविष्टि deployment-health रखें, और API तथा वर्कर रीस्टार्ट करें। कॉन्फ़िगरेशन देखें।
पासवर्ड और साइन-इन सीमाएँ
पासवर्ड में 12 से 128 वर्ण होते हैं और उन्हें केवल सॉल्टेड हैश (scrypt) के रूप में संग्रहीत किया जाता है। एक साइन-इन 12 घंटे चलता है। एक खाते में अधिकतम 32 सक्रिय सत्र होते हैं; नया साइन-इन सबसे पुराने को समाप्त कर देता है। पासवर्ड बदलने या रीसेट करने से खाते के सभी सत्र समाप्त हो जाते हैं और सभी व्यक्तिगत टोकन निरस्त हो जाते हैं।
Arkvory में कठोर लॉकआउट नहीं है, जो किसी नाम को जानने वाले किसी भी व्यक्ति को स्वामी को बाहर लॉक करने दे। यह हमलों को परतों में धीमा करता है:
| परत | सीमा |
|---|---|
| प्रति पता, साइन-इन | एक बार में 10 प्रयास, फिर हर 15 सेकंड में 1 और। सही पासवर्ड प्रयास वापस दे देता है। IPv6 प्रति /64 नेटवर्क गिना जाता है |
| प्रति पता, स्व-पंजीकरण | 3 प्रयास, फिर हर 20 मिनट में 1; प्रति प्रोसेस 20, फिर हर 3 मिनट में 1 |
| प्रति खाता | हर गलत पासवर्ड एक इकाई कर्ज़ जोड़ता है। कर्ज़ हर 6 सेकंड में 1 घटता है। 20 इकाइयों से ऊपर, हर गलत पासवर्ड 1 सेकंड से 2 मिनट तक दुगना होता जाने वाला इंतज़ार जोड़ता है। इंतज़ार के दौरान सही पासवर्ड को भी 429 मिलता है |
| एक साथ साइन-इन अनुरोध | अधिकतम 16, और अनुरोध की बॉडी 10 सेकंड के भीतर पहुँचनी चाहिए |
| पासवर्ड जाँच | अनाम और व्यवस्थापक जाँच अलग-अलग कतारों का उपयोग करती हैं, इसलिए साइन-इन की बाढ़ व्यवस्थापक को नहीं रोकती |
उत्तर 429 rate_limited होता है, कारण login_attempts और हेडर Retry-After के साथ। पते के काउंटर प्रोसेस में रहते हैं और रीस्टार्ट पर रीसेट हो जाते हैं। खाते का कर्ज़ डेटाबेस में होता है। व्यवस्थापक द्वारा पासवर्ड रीसेट उसे साफ़ कर देता है।
रिवर्स प्रॉक्सी के पीछे, ARKVORY_TRUSTED_PROXIES को प्रॉक्सी के पतों पर सेट करें (32 तक, IP या CIDR)। केवल ये पते X-Forwarded-For से क्लाइंट का पता बता सकते हैं। सेटिंग के बिना हर क्लाइंट प्रॉक्सी का पता साझा करता है, और कुछ विफल साइन-इन सभी को कुछ समय के लिए बाहर लॉक कर देते हैं।
कुंजियाँ, टोकन और समाप्ति
| क्रेडेंशियल | अवधि | रोटेशन |
|---|---|---|
| साइन-इन सत्र | 12 घंटे | फिर से साइन इन करें |
| व्यक्तिगत एक्सेस टोकन | डिफ़ॉल्ट रूप से 90 दिन, अधिकतम 365। स्कोप read या read-write। कभी व्यवस्थापक अधिकार नहीं | व्यक्तिगत एक्सेस टोकन में नया टोकन बनाएँ और पुराना निरस्त करें |
| सेवा कुंजी | डिफ़ॉल्ट रूप से 90 दिन, अधिकतम 365। जो कुंजी जारी होकर सक्रिय नहीं की गई वह 15 मिनट बाद समाप्त हो जाती है | रोटेट करें नई कुंजी जारी करता है। पुरानी कुंजी अधिकतम 24 घंटे और काम करती है। निरस्त करें कुंजी को तुरंत रोक देता है |
| डाउनलोड लिंक | कंसोल में एक घंटा | नया लिंक बनाएँ |
| पुनर्प्राप्ति कुंजी और हेल्थ कुंजी | ये समाप्त नहीं होतीं | इन्हें हाथ से बदलें। सर्वर पर सीक्रेट देखें |
व्यक्तिगत टोकन बनाएँ और पासवर्ड केवल साइन-इन किए सत्र में बदलें। एक टोकन टोकन नहीं बना सकता। व्यक्तिगत टोकन के पास व्यवस्थापक अधिकार नहीं होते, चाहे उसका स्वामी कोई भी हो।
टूल के लिए न्यूनतम विशेषाधिकार:
- सेवा एक्सेस में हर उपभोक्ता के लिए एक सेवा खाता बनाएँ, रिपॉज़िटरी अनुमतियाँ के साथ ठीक उन्हीं रिपॉज़िटरी और ठीक उन्हीं कार्रवाइयों पर जिनकी उसे ज़रूरत है। पढ़ने का प्रीसेट और प्रकाशन का प्रीसेट सामान्य सेट भर देते हैं।
- खाते और अनुदान बनाने के लिए पुनर्प्राप्ति कुंजी या किसी प्रत्यायोजन का अलग अधिकार चाहिए। प्रत्यायोजित प्रशासन स्वामी को सीमित अधिकार किसी ऑपरेटर को देने देता है। प्रत्यायोजित कुंजी कभी अपने जारीकर्ता की कुंजी से अधिक नहीं चलती।
- मेट्रिक्स स्क्रेपर को न्यूनतम अधिकारों वाली अपनी कुंजी दें।
- अनुदान निरस्त करना सक्रिय होने की प्रतीक्षा करती कुंजी को अवरुद्ध करता है, लेकिन पहले से सक्रिय कुंजियों को निरस्त नहीं करता। उन्हें स्वयं निरस्त या अक्षम करें। शुरू हो चुका डाउनलोड निरस्तीकरण के बाद भी जारी रहता है।
- अधिकारों का बदलाव अगले अनुरोध से लागू होता है। सर्वर हर अनुरोध के लिए, सूचियों, मेटाडेटा और फ़ाइल बाइट के लिए एक्सेस फिर जाँचता है।
ऑडिट लॉग
| जर्नल | इसमें क्या होता है | कहाँ पढ़ें |
|---|---|---|
| सुरक्षा जर्नल | साइन-इन और विफलताएँ, पंजीकरण, खातों, समूहों, अनुदानों, पासवर्ड और व्यक्तिगत टोकन में बदलाव, कर्ता, क्रेडेंशियल का प्रकार, लक्ष्य, परिणाम और क्लाइंट पता के साथ | GET /api/v1/security/audit, किसी व्यवस्थापक सत्र या पुनर्प्राप्ति कुंजी के लिए |
| कैटलॉग ऑडिट | किसी रिपॉज़िटरी में आर्टिफ़ैक्ट, पथ, एनोटेशन और स्टेज में बदलाव | GET /api/v1/repositories/{repository}/audit, ऑडिट पढ़ने की अनुमति के साथ |
| सेवा खाता गतिविधि | किसी सेवा खाते का निर्माण, बदलाव, जारी और निरस्त की गई कुंजियाँ | कंसोल में गतिविधि लॉग |
| प्रोसेस लॉग | प्रति अनुरोध एक http.access पंक्ति, principal और clientIp के साथ | मॉनिटरिंग देखें |
सुरक्षा जर्नल केवल जोड़ने वाला है: डेटाबेस किसी पंक्ति को बदलने या हटाने से इंकार करता है। सर्वर 365 दिन और अधिकतम 1,000,000 पंक्तियाँ रखता है, और सबसे पुरानी पंक्तियों को बैचों में हटाता है। जिन अनुरोधों को दर सीमाएँ अस्वीकार करती हैं वे जर्नल में नहीं जाते, इसलिए बाढ़ तालिका को नहीं बढ़ा सकती। अगर आपको लंबा इतिहास चाहिए तो जर्नल को अपने इवेंट स्टोर में एक्सपोर्ट करें।
curl -fsS -H "Authorization: Bearer $ARKVORY_KEY" "https://arkvory.example/api/v1/security/audit?limit=100"पुरानी पंक्तियाँ पढ़ने के लिए अंतिम ID के साथ after पैरामीटर इस्तेमाल करें।
कंसोल और ब्राउज़र
सर्वर कंसोल के उत्तरों पर ये हेडर सेट करता है:
| हेडर | मान |
|---|---|
Content-Security-Policy | default-src 'none'; img-src 'self' blob:; script-src 'self'; style-src 'self'; connect-src 'self'; worker-src 'self'; base-uri 'none'; form-action 'self'; frame-ancestors 'none' |
Referrer-Policy | no-referrer |
X-Content-Type-Options | nosniff |
Cache-Control | private, no-store |
X-Request-Id | उत्तर की अनुरोध ID |
हर API उत्तर में X-Content-Type-Options, Cache-Control और X-Request-Id भी होते हैं। CSP कोई इनलाइन स्क्रिप्ट, कोई बाहरी स्क्रिप्ट, कोई फ़्रेमिंग और किसी दूसरे होस्ट से कनेक्शन की अनुमति नहीं देता। blob: से आने वाली तस्वीरें वे स्क्रीनशॉट हैं जो आप फ़ीडबैक संदेश में जोड़ते हैं।
सर्वर कोई कुकी सेट नहीं करता। कंसोल कुंजी या सत्र टोकन केवल ब्राउज़र टैब की मेमोरी में रखता है। ब्राउज़र केवल थीम और भाषा का चुनाव, और डाउनलोड कतार की निजी फ़ाइलें संग्रहीत करता है। किसी दूसरे पते का ब्राउज़र पेज API को कॉल नहीं कर सकता: ARKVORY_CORS_ORIGINS डिफ़ॉल्ट रूप से खाली है। यह बाहरी कंसोल के लिए 16 तक सटीक ओरिजिन सूचीबद्ध करता है, HTTPS के साथ या लूपबैक पर HTTP के साथ। अनुमत ओरिजिन को कोई अतिरिक्त अधिकार नहीं मिलता, क्योंकि हर अनुरोध को कुंजी चाहिए।
अपडेट हस्ताक्षर
हर रिलीज़ में उसके संग्रह और इंस्टॉलर के SHA-256 वाला मैनिफ़ेस्ट arkvory-release.json, और हस्ताक्षर arkvory-release.json.sig होता है। हस्ताक्षर minisign फ़ॉर्मैट में Ed25519 हस्ताक्षर है। अपडेटर सार्वजनिक कुंजियाँ अपने कोड के भीतर रखता है।
- हब या GitHub से रिलीज़ तभी इंस्टॉल होता है जब उसका हस्ताक्षर किसी अंतर्निहित कुंजी से मेल खाए और SHA-256 मान मैनिफ़ेस्ट से मेल खाएँ। गलत हस्ताक्षर त्रुटि है, और अपडेटर किसी दूसरे स्रोत को नहीं खोजता।
- निजी हस्ताक्षर कुंजी मेंटेनर के पास रहती है और कभी आपके सर्वर पर नहीं होती। कुंजियाँ रोटेट करने के लिए रिलीज़ में पुरानी और नई सार्वजनिक कुंजी हो सकती हैं।
--artifactसे दिया जाने वाला स्थानीय फ़ोल्डर आपकी अपनी पसंद है। उसमें मौजूद हस्ताक्षर फ़ाइल की जाँच तभी होती है जब वह हो।- ग्राफ़िकल इंस्टॉलर और
.debतथा.rpmपैकेज अभी प्रकाशक प्रमाणपत्र से हस्ताक्षरित नहीं हैं। Windows प्रकाशक को अज्ञात दिखाता है। इन्हें केवल GitHub Releases से डाउनलोड करें और SHA-256 मानों की तुलनाrelease-checksums.jsonसे करें। - डेटाबेस स्कीमा बदलने वाला रिलीज़ तभी इंस्टॉल होता है जब सर्वर नया बैकअप बनाकर उसे सत्यापित कर चुका हो। अपडेट देखें।
ProAnimaStudio हब को क्या भेजा जाता है
अपडेट ProAnimaStudio के हब (https://hub.proanima.net) में स्वीकृत किए जाते हैं। सर्वर इन मामलों में उससे संपर्क करता है:
| डेटा | कब | सामग्री |
|---|---|---|
| अपडेट जाँच | हर 6 घंटे | वर्तमान संस्करण, ऑपरेटिंग सिस्टम और आर्किटेक्चर पते का हिस्सा होते हैं। सांख्यिकी चालू होने पर, हेडर X-Install-Id में एक यादृच्छिक इंस्टॉलेशन ID |
इवेंट updated | इंस्टॉल किए गए अपडेट के बाद, सांख्यिकी चालू होने पर | संस्करण और इंस्टॉलेशन ID |
| फ़ीडबैक | केवल जब कोई उपयोगकर्ता कंसोल में फ़ॉर्म भेजता है | पाठ, जवाब के लिए वैकल्पिक ईमेल पता, 6 तक स्क्रीनशॉट, और ब्राउज़र पेज का लॉग। एक व्यवस्थापक API लॉग का अंतिम 1.5 MiB और एक सिस्टम सारांश जोड़ सकता है। भेजने से पहले फ़ॉर्म यह सब दिखाता है (संलग्न सामग्री दिखाएँ) |
इंस्टॉलेशन ID config/install-id में एक यादृच्छिक UUID है। इसमें कोई नाम, पता या सामग्री नहीं होती। प्रोजेक्ट बताता है कि हब कोई IP पते, नाम या फ़ाइल सामग्री संग्रहीत नहीं करता। सांख्यिकी के बिना ID नहीं भेजी जाती, और हब किसी संस्करण को तभी प्रस्तुत करता है जब वह सभी इंस्टॉलेशनों के लिए जारी हो। सिस्टम सारांश में संस्करण, स्कीमा संख्या और अपडेट तथा मिरर की स्थिति होती है, बिना पते और सीक्रेट। API लॉग में भी कोई सीक्रेट नहीं होता।
इसे बंद करें:
sudo arkvory configure --root /opt/proanima-arkvory --statistics off
sudo arkvory configure --root /opt/proanima-arkvory --hub-off--statistics offइंस्टॉलेशन ID औरupdatedइवेंट रोक देता है। कंसोल में वही स्विच है: अपडेट में ProAnimaStudio को अनाम आँकड़े भेजें।--hub-offहब के साथ सारा संपर्क रोक देता है। तब अपडेट केवल GitHub से आते हैं, और सेवाओं के अगले रीस्टार्ट के बाद कंसोल फ़ीडबैक बंद रहता है। उपयोगकर्ताओं को इसके बजाय कंसोल में दिखाया गया संपर्क पता मिलता है।--hub-url https://hub.exampleसर्वर को किसी दूसरे हब की ओर इंगित करता है। केवल HTTPS, या लूपबैक पर HTTP स्वीकार किया जाता है।
हर 6 घंटे की जाँचें स्वचालित इंस्टॉलेशन बंद होने पर भी चलती हैं। बिना इंटरनेट पहुँच वाला सर्वर रिलीज़ की स्थानीय प्रति से इंस्टॉल करता है। अपडेट देखें।
अपने सीक्रेट का बैकअप लें
vault में कैटलॉग, पासवर्ड हैश और सभी प्रकाशित फ़ाइलें हैं। Arkvory उसे बनाते समय एन्क्रिप्ट करता है, और उसका रिकवरी किट सर्वर के बाहर रखना होगा (देखें बैकअप)। vault में आपके कॉन्फ़िगरेशन की फ़ाइलें नहीं हैं। इन फ़ाइलों की दूसरी प्रति सर्वर के बाहर किसी एन्क्रिप्टेड जगह रखें:
- बैकअप vault का रिकवरी किट: सर्वर और उसकी कुंजी फ़ाइल खो जाने पर बैकअप पढ़ने का यही एकमात्र तरीक़ा है; दो जगह दो प्रतियाँ रखें।
config/keys.jsonऔरconfig/bootstrap-token.txt(पुनर्प्राप्ति कुंजी),config/runtime.json,- TLS प्रमाणपत्र और कुंजी,
config/mirrors/, मिरर की कुंजियों के साथ,config/hub.jsonऔरgithub-token.txt, अगर आप इनका उपयोग करते हैं।
पुनर्स्थापना अपनी सेटिंग्स और अपनी कुंजी फ़ाइल वाला नया इंस्टेंस बनाती है। पुनर्स्थापना के बाद सत्र चले जाते हैं, व्यक्तिगत टोकन और सेवा कुंजियाँ निरस्त हो जाती हैं, और क्लीनअप तथा प्रतिधारण नीतियाँ बंद हो जाती हैं। नई कुंजियाँ जारी करें और नीतियाँ जान-बूझकर फिर चालू करें। पासवर्ड वैसे ही लौटते हैं जैसे स्नैपशॉट समय पर थे। इन फ़ाइलों की हर प्रति को सीक्रेट मानें। बैकअप देखें।
कमज़ोरी की रिपोर्ट करें
किसी सार्वजनिक issue में कमज़ोरी न बताएँ और न कुंजियाँ प्रकाशित करें। प्रोजेक्ट के स्वामी Ian Panaev हैं (GitHub खाता ProAnima)। प्रोजेक्ट ने सुरक्षा रिपोर्ट के लिए अभी कोई समर्पित निजी चैनल प्रकाशित नहीं किया है। प्रोजेक्ट के GitHub खाते के ज़रिए या कंसोल में दिखने वाले स्टूडियो पते info@proanima.net पर, बिना एक्सप्लॉइट विवरण वाला छोटा संदेश भेजें और आगे बढ़ने का निजी तरीका माँगें। रिपॉज़िटरी में SECURITY.md देखें।