
सुरक्षित सॉफ़्टवेयर के डिज़ाइन, विकास, परीक्षण और अधिग्रहण के लिए सुरक्षा मानकों और दिशानिर्देशों को जोड़ने वाला इंटरैक्टिव प्लेटफ़ॉर्म। उद्योग मानकों के क्रॉस-रेफरेंस के साथ सामान्य आवश्यकताओं (CREs) की एक एकीकृत सूची प्रदान करता है।
OpenCRE को कार्य करते हुए देखने और अधिक स्पष्टीकरण के लिए https://www.opencre.org पर जाएँ। OpenCRE का अर्थ Open Common Requirement enumeration है। यह सुरक्षा मानकों और दिशानिर्देशों को एकीकृत करने के लिए एक इंटरैक्टिव सामग्री लिंकिंग प्लेटफ़ॉर्म है। यह सुरक्षित सॉफ़्टवेयर के डिज़ाइन, विकास, परीक्षण और क्रय के दौरान प्रासंगिक जानकारी तक आसान और मज़बूत पहुँच प्रदान करता है।
OpenCRE में शामिल हैं:
एप्लिकेशन या डेटा (कैटलॉग या मानक मैपिंग) में योगदान करने का तरीका जानने के लिए, Contributing देखें। हम आपका हार्दिक स्वागत करते हैं!
/rest/v1/openapi.yaml)रोडमैप के लिए कृपया issues देखें।
आप opencre.org पर सार्वजनिक opencre एप्लिकेशन का उपयोग करने के लिए स्वतंत्र हैं। इसके अलावा, यदि आप उदाहरण के लिए अपने स्वयं के सुरक्षा मानकों और दिशानिर्देशों को शामिल करना चाहते हैं, तो आप अपना स्वयं का चला सकते हैं। हम इसे myOpenCRE कहते हैं।
OpenCRE को स्थानीय रूप से चलाने का सबसे आसान तरीका प्रकाशित docker कंटेनर को चलाना है। आप इसे निम्न प्रकार से कर सकते हैं:
docker run -p 5000:5000 ghcr.io/owasp/opencre/opencre:latest
कंटेनर द्वारा दूरस्थ जानकारी डाउनलोड करना समाप्त करने के बाद आप इसे http://127.0.0.1:5000 पर एक्सेस कर सकते हैं।
यदि आप OpenCRE पर विकास करना चाहते हैं या आपके वातावरण में docker उपलब्ध नहीं है, तो आप इसे वैकल्पिक रूप से CLI के माध्यम से चला सकते हैं।
Docker के बाहर चलाने के लिए आपको OpenCRE स्थापित करना होगा। इस एप्लिकेशन को स्थापित करने के लिए आपको python3, yarn और virtualenv की आवश्यकता है।
रिपॉजिटरी को क्लोन करें:
git clone https://github.com/OWASP/OpenCRE
(अनुशंसित) Python वर्चुअल वातावरण बनाएँ और सक्रिय करें:
python3 -m venv venv
source venv/bin/activate
निर्भरताएँ स्थापित करें:
make install
अपस्ट्रीम से नवीनतम CRE ग्राफ़ डाउनलोड करने के लिए चलाएँ:
make upstream-sync
आयात के बाद आप स्थानीय gap-analysis कैश पूर्व-गणना कर सकते हैं:
make backfill-gap-analysis
CRE को स्थानीय रूप से चलाने के लिए आप निम्न कर सकते हैं:
make dev-flask
CLI एप्लिकेशन चलाने के लिए, आप चला सकते हैं:
python cre.py --help
CRE + मानक टैक्सोनॉमी को CSV में निर्यात करने के लिए (CI-अनुकूल), चलाएँ:
python cre.py --export --csv <path/to/output.csv>
उदाहरण:
python cre.py --export --csv artifacts/cres_and_standards.csv
नोट्स:
--export एक समर्पित निर्यात मोड है और CSV लिखने के बाद बाहर निकल जाता है।--export का उपयोग करते समय --csv आवश्यक है।किसी दूरस्थ CRE स्प्रेडशीट को स्थानीय रूप से डाउनलोड करने के लिए आप चला सकते हैं:
python cre.py --review --from_spreadsheet <google sheets url>
अपने स्थानीय डेटाबेस में दूरस्थ स्प्रेडशीट जोड़ने के लिए आप चला सकते हैं:
python cre.py --add --from_spreadsheet <google sheets url>
विकास के लिए वेब एप्लिकेशन चलाने के लिए आप चला सकते हैं:
make start-containers
make start-worker
# in a separate shell
make dev-flask
वैकल्पिक रूप से, आप dockerfile का उपयोग निम्न प्रकार से कर सकते हैं:
make docker && make docker-run
Gap Analysis जैसी कुछ सुविधाओं के लिए neo4j DB चालू होना आवश्यक है, आप इसे निम्न प्रकार से प्रारंभ कर सकते हैं:
make docker-neo4j
केवल लापता gap-analysis पेयर बैकफ़िल चलाने के लिए (Flask प्रारंभ किए बिना), उपयोग करें:
RUN_COUNT=8 bash scripts/backfill_gap_analysis.sh
उत्पादन संचालन के लिए scripts/db/ में समर्पित स्क्रिप्ट्स को प्राथमिकता दें। ये स्क्रिप्ट्स सुरक्षा गार्ड लागू करती हैं और DB परिवर्तनों से पहले हमेशा एक ताज़ा बैकअप लेती हैं।
APP_NAME=opencreorg scripts/db/backup-opencreorg.shAPP_NAME=opencreorg SOURCE_DB_URL="postgresql://cre:[email protected]:5432/cre" scripts/db/sync-local-to-opencreorg.shAPP_NAME=opencreorg scripts/db/surgery-opencreorg.sh --sql-file ./tmp/change.sqlविनाशकारी सर्जरी (DELETE, DROP, TRUNCATE, अपरिवर्तनीय ALTER) के लिए, उपयोग करें:
APP_NAME=opencreorg \
CONFIRM_DESTRUCTIVE=I_UNDERSTAND_OPENCREORG_PROD_DB_DESTRUCTIVE_ACTION \
scripts/db/surgery-opencreorg.sh --sql-file ./tmp/destructive-change.sql --destructive
रनबुक:
docs/runbooks/opencreorg-db-sync-and-surgery.mddocs/runbooks/opencreorg-db-destructive-ops-checklist.mdएप्लिकेशन के neo4jDB से कनेक्ट होने के लिए पर्यावरण चर (डिफ़ॉल्ट):
NEO4J_URL (neo4j//neo4j:password@localhost:7687)उत्पादन के लिए वेब एप्लिकेशन चलाने हेतु आपको gunicorn की आवश्यकता है और आप cre_sync निर्देशिका के भीतर से चला सकते हैं:
make prod-run
OpenCRE macOS पर पूर्ण रूप से समर्थित है। निम्नलिखित नोट्स वैकल्पिक हैं और macOS प्रणालियों पर OpenCRE को स्थानीय रूप से चलाने वाले योगदानकर्ताओं की सहायता के लिए हैं।
Homebrew का उपयोग करके आवश्यक उपकरण स्थापित करें:
brew install [email protected] yarn make
नोट: Python 3.11 अनुशंसित है। नए Python संस्करण निर्भरता असंगतताएँ पैदा कर सकते हैं।
Python संस्करण सत्यापित करें:
python3 --version
Python 3 का उपयोग करके स्पष्ट रूप से एक वर्चुअल वातावरण बनाएँ और सक्रिय करें:
python3 -m venv venv
source venv/bin/activate
pip अपग्रेड करें:
pip install --upgrade pip
मानक कार्यप्रवाह का उपयोग करके निर्भरताएँ स्थापित करें:
make install
यदि आपको बिल्ड समस्याएँ आती हैं, तो सुनिश्चित करें कि Xcode Command Line Tools स्थापित हैं:
xcode-select --install
अपस्ट्रीम CRE डेटा सिंक करें (इंटरनेट एक्सेस आवश्यक है):
make upstream-sync
फिर स्थानीय सर्वर प्रारंभ करें:
make dev-flask
एप्लिकेशन निम्न पर उपलब्ध होगा:
http://127.0.0.1:5000
सुझाव: अधिकांश macOS उपयोगकर्ताओं के लिए, Docker के माध्यम से चलाना सबसे सरल और विश्वसनीय तरीका है।
अपने स्वयं के सुरक्षा दिशानिर्देशों और मानकों को जोड़ने जैसे कार्यों के लिए OpenCRE API का उपयोग करने हेतु myOpenCRE उपयोगकर्ता मार्गदर्शिका देखें।
आप निम्न के साथ उत्पादन या विकास docker इमेज बना सकते हैं:
make docker-prod
make docker-dev
OpenCRE द्वारा उपयोग किए जाने वाले पर्यावरण चर हैं:
उदाहरण कॉन्फ़िगरेशन फ़ाइल की प्रतिलिपि बनाएँ:
cp .env.example .env
फिर .env को संपादित करें और अपने वातावरण के लिए उपयुक्त मान प्रदान करें।
DEV_DATABASE_URLNEO4J_URLREDIS_HOST, REDIS_PORT, REDIS_URL, REDIS_NO_SSLFLASK_CONFIG, INSECURE_REQUESTSNO_GEN_EMBEDDINGS, CRE_EMBED_MODEL, CRE_EMBED_EXPECTED_DIM, CRE_VALIDATE_EMBED_DIM_ON_INITCRE_LLM_CHAT_MODEL, CRE_EMBED_ALIGN_MODEL, , पूरी सूची और डिफ़ॉल्ट के लिए .env.example देखें।
OpenCRE LLM कॉल के लिए LiteLLM का उपयोग करता है। पर्यावरण चरों के माध्यम से मॉडल और प्रदाता क्रेडेंशियल कॉन्फ़िगर करें।
अनुशंसित न्यूनतम उदाहरण:
# Chat / completion models (LiteLLM model strings)
CRE_LLM_CHAT_MODEL=gemini/gemini-2.5-flash
CRE_EMBED_ALIGN_MODEL=gemini/gemini-2.5-flash
# Embedding model used for persisted vectors
CRE_EMBED_MODEL=gemini/gemini-embedding-001
CRE_EMBED_EXPECTED_DIM=3072
CRE_VALIDATE_EMBED_DIM_ON_INIT=1
# Retry policy
CRE_LLM_MAX_RETRIES=2
CRE_LLM_RETRY_SLEEP_SECONDS=15
# Provider credential (example for Gemini)
GEMINI_API_KEY=your-key
नोट्स:
CRE_EMBED_MODEL या CRE_EMBED_EXPECTED_DIM में परिवर्तन को डेटा माइग्रेशन घटना के रूप में मानें (आमतौर पर पुनः-एम्बेडिंग की आवश्यकता होती है)।CRE_EMBED_EXPECTED_DIM एक सुरक्षा गार्ड है: आयाम बेमेल होने पर लेखन तुरंत विफल हो जाता है।आप कंटेनरों को निम्न के साथ चला सकते हैं:
make docker-prod-run
make docker-dev-run
आप बैकएंड परीक्षण निम्न के साथ चला सकते हैं:
make test
आप निम्न के साथ कवरेज रिपोर्ट प्राप्त कर सकते हैं:
make cover
कवरेज को 70% से ऊपर रखने का प्रयास करें।
CRE_LLM_MAX_RETRIESCRE_LLM_RETRY_SLEEP_SECONDSOPENAI_API_KEY, GEMINI_API_KEY, GCP_NATIVEGOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_SECRET_JSON, LOGIN_ALLOWED_DOMAINSGCP_NATIVEOpenCRE_gspread_AuthCRE_ENABLE_HEALTH (GET /rest/v1/health डिप्लॉय/अपटाइम प्रोब सक्षम करें; डिफ़ॉल्ट रूप से बंद, अनसेट होने पर 404 लौटाता है), CRE_ENABLE_MYOPENCRE (GET /api/capabilities में MyOpenCRE उजागर करें; डिफ़ॉल्ट रूप से बंद), CRE_ENABLE_LOGIN (capabilities.login के माध्यम से लॉगिन/लॉगआउट UI उजागर करें; डिफ़ॉल्ट रूप से बंद)