గ్రాడిట్ బహుళ ప్రోగ్రామింగ్ భాషలకు మద్దతు ఇస్తుంది మరియు కోడ్బేస్ భద్రతా పరీక్షను నేరుగా అభివృద్ధి ప్రక్రియలో ఏకీకృతం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
మూలం:
సాఫ్ట్వేర్ డెవలప్మెంట్ లైఫ్ సైకిల్లో టెస్టింగ్ ఒక ముఖ్యమైన భాగం. అనేక రకాల పరీక్షలు ఉన్నాయి, వాటిలో ప్రతి దాని స్వంత సమస్యను పరిష్కరిస్తుంది. ఈ రోజు నేను కోడ్లో భద్రతా సమస్యలను కనుగొనడం గురించి మాట్లాడాలనుకుంటున్నాను.
సహజంగానే, సాఫ్ట్వేర్ అభివృద్ధి యొక్క ఆధునిక వాస్తవాలలో, ప్రక్రియ భద్రతను నిర్ధారించడం చాలా ముఖ్యం. ఒక సమయంలో, DevSecOps అనే ప్రత్యేక పదం కూడా ప్రవేశపెట్టబడింది. ఈ పదం అప్లికేషన్లోని దుర్బలత్వాలను గుర్తించడం మరియు తొలగించడం లక్ష్యంగా ఉన్న విధానాల శ్రేణిని సూచిస్తుంది. ప్రమాణాలకు అనుగుణంగా బలహీనతలను తనిఖీ చేయడానికి ప్రత్యేకమైన ఓపెన్ సోర్స్ సొల్యూషన్స్ ఉన్నాయి
స్టాటిక్ అప్లికేషన్ సెక్యూరిటీ టెస్టింగ్ (SAST), డైనమిక్ అప్లికేషన్ సెక్యూరిటీ టెస్టింగ్ (DAST), ఇంటరాక్టివ్ అప్లికేషన్ సెక్యూరిటీ టెస్టింగ్ (IAST), సాఫ్ట్వేర్ కంపోజిషన్ అనాలిసిస్ మొదలైన భద్రతా సమస్యలను పరిష్కరించడానికి వివిధ విధానాలు ఉన్నాయి.
స్టాటిక్ అప్లికేషన్ సెక్యూరిటీ టెస్టింగ్ ఇప్పటికే వ్రాసిన కోడ్లో లోపాలను గుర్తిస్తుంది. ఈ విధానానికి అప్లికేషన్ అమలు చేయవలసిన అవసరం లేదు, అందుకే దీనిని స్టాటిక్ అనాలిసిస్ అంటారు.
నేను స్టాటిక్ కోడ్ విశ్లేషణపై దృష్టి పెడతాను మరియు ఆచరణలో ప్రతిదీ ప్రదర్శించడానికి ఒక సాధారణ ఓపెన్ సోర్స్ సాధనాన్ని ఉపయోగిస్తాను.
నేను స్టాటిక్ కోడ్ సెక్యూరిటీ విశ్లేషణ కోసం ఓపెన్ సోర్స్ సాధనాన్ని ఎందుకు ఎంచుకున్నాను
దీనికి అనేక కారణాలు ఉన్నాయి: ముందుగా, ఇది ఉచితం ఎందుకంటే మీరు ఇతర డెవలపర్లకు సహాయం చేయాలనుకునే సారూప్య వ్యక్తుల సంఘం అభివృద్ధి చేసిన సాధనాన్ని ఉపయోగిస్తున్నారు. మీకు చిన్న బృందం లేదా స్టార్టప్ ఉన్నట్లయితే, మీ కోడ్బేస్ యొక్క భద్రతను పరీక్షించడానికి ఓపెన్ సోర్స్ సాఫ్ట్వేర్ని ఉపయోగించడం ద్వారా డబ్బు ఆదా చేయడానికి మీకు గొప్ప అవకాశం ఉంది. రెండవది, ఇది మీరు ప్రత్యేక DevSecOps బృందాన్ని నియమించుకోవలసిన అవసరాన్ని తొలగిస్తుంది, మీ ఖర్చులను మరింత తగ్గిస్తుంది.
వశ్యత కోసం పెరిగిన అవసరాలను పరిగణనలోకి తీసుకుని మంచి ఓపెన్ సోర్స్ సాధనాలు ఎల్లప్పుడూ సృష్టించబడతాయి. అందువల్ల, వారు దాదాపు ఏ వాతావరణంలోనైనా ఉపయోగించవచ్చు, విస్తృత శ్రేణి పనులను కవర్ చేస్తుంది. డెవలపర్లు తమ ప్రాజెక్ట్లలో పని చేస్తున్నప్పుడు వారు ఇప్పటికే నిర్మించిన సిస్టమ్తో ఇటువంటి సాధనాలను కనెక్ట్ చేయడం చాలా సులభం.
కానీ మీరు ఎంచుకున్న టూల్లో అందుబాటులో లేని ఫీచర్ మీకు అవసరమైన సందర్భాలు ఉండవచ్చు. ఈ సందర్భంలో, దాని కోడ్ను ఫోర్క్ చేయడానికి మరియు మీకు అవసరమైన కార్యాచరణతో దాని ఆధారంగా మీ స్వంత సాధనాన్ని అభివృద్ధి చేయడానికి మీకు అవకాశం ఉంది.
చాలా సందర్భాలలో ఓపెన్ సోర్స్ సాఫ్ట్వేర్ అభివృద్ధి కమ్యూనిటీచే చురుకుగా ప్రభావితమవుతుంది కాబట్టి, మార్పులు చేయాలనే నిర్ణయం చాలా త్వరగా మరియు పాయింట్కి తీసుకోబడుతుంది: ఓపెన్ సోర్స్ ప్రాజెక్ట్ డెవలపర్లు వినియోగదారుల నుండి వారి నివేదికలపై అభిప్రాయం మరియు సూచనలపై ఆధారపడతారు. లోపాలు కనుగొనబడ్డాయి మరియు ఇతర సమస్యలు.
కోడ్ సెక్యూరిటీ అనాలిసిస్ కోసం గ్రాడిట్ని ఉపయోగించడం
స్టాటిక్ కోడ్ విశ్లేషణ కోసం మీరు వివిధ ఓపెన్ సోర్స్ సాధనాలను ఉపయోగించవచ్చు; అన్ని ప్రోగ్రామింగ్ భాషలకు సార్వత్రిక సాధనం లేదు. వాటిలో కొన్ని డెవలపర్లు OWASP సిఫార్సులను అనుసరిస్తారు మరియు వీలైనన్ని ఎక్కువ భాషలను కవర్ చేయడానికి ప్రయత్నిస్తారు.
ఇక్కడ మేము ఉపయోగిస్తాము
స్టాటిక్ కోడ్ విశ్లేషణ కోసం ఇలాంటి సాధనాలు ఉన్నాయి - రఫ్ ఆడిటింగ్ టూల్ ఫర్ సెక్యూరిటీ (RATS), సెక్యూరిటీ కంపాస్ వెబ్ అప్లికేషన్ అనాలిసిస్ టూల్ (SWAAT), ఫ్లాఫైండర్ మరియు మొదలైనవి. కానీ గ్రాడిట్ చాలా సరళమైనది మరియు కనీస సాంకేతిక అవసరాలు కలిగి ఉంటుంది. అయితే, గ్రాడిట్ పరిష్కరించలేని సమస్యలను మీరు కలిగి ఉండవచ్చు. అప్పుడు మీరు ఇక్కడ ఇతర ఎంపికల కోసం చూడవచ్చు
మేము ఈ సాధనాన్ని నిర్దిష్ట ప్రాజెక్ట్లో ఇంటిగ్రేట్ చేయవచ్చు లేదా ఎంచుకున్న వినియోగదారుకు అందుబాటులో ఉంచవచ్చు లేదా మా అన్ని ప్రాజెక్ట్లలో ఏకకాలంలో ఉపయోగించవచ్చు. ఇక్కడే గ్రాడిట్ యొక్క వశ్యత అమలులోకి వస్తుంది. కాబట్టి ముందుగా రెపోను క్లోన్ చేద్దాం:
$ git clone https://github.com/wireghoul/graudit
ఇప్పుడు గ్రాడిట్ని కమాండ్ ఫార్మాట్లో ఉపయోగించడానికి సింబాలిక్ లింక్ని క్రియేట్ చేద్దాం
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
.bashrc (లేదా మీరు ఉపయోగిస్తున్న ఏదైనా కాన్ఫిగరేషన్ ఫైల్)కి మారుపేరును జోడిద్దాం:
#------ .bashrc ------
alias graudit="~/bin/graudit"
రీబూట్:
$ source ~/.bashrc # OR
$ exex $SHELL
ఇన్స్టాలేషన్ విజయవంతమైందో లేదో చూద్దాం:
$ graudit -h
మీరు ఇలాంటివి చూస్తే, అంతా బాగానే ఉంది.
నేను ఇప్పటికే ఉన్న నా ప్రాజెక్ట్లలో ఒకదాన్ని పరీక్షిస్తాను. సాధనాన్ని అమలు చేయడానికి ముందు, నా ప్రాజెక్ట్ వ్రాయబడిన భాషకు సంబంధించిన డేటాబేస్ను పాస్ చేయాలి. డేటాబేస్లు ~/gradit/signatures ఫోల్డర్లో ఉన్నాయి:
$ graudit -d ~/gradit/signatures/js.db
కాబట్టి, నేను నా ప్రాజెక్ట్ నుండి రెండు js ఫైల్లను పరీక్షించాను మరియు గ్రాడిట్ నా కోడ్లోని దుర్బలత్వాల గురించి సమాచారాన్ని కన్సోల్లో ప్రదర్శించింది:
మీరు మీ ప్రాజెక్ట్లను అదే విధంగా పరీక్షించడానికి ప్రయత్నించవచ్చు. మీరు వివిధ ప్రోగ్రామింగ్ భాషల కోసం డేటాబేస్ల జాబితాను చూడవచ్చు
గ్రాడిట్ యొక్క ప్రయోజనాలు మరియు అప్రయోజనాలు
Graudit అనేక ప్రోగ్రామింగ్ భాషలకు మద్దతు ఇస్తుంది. అందువల్ల, ఇది విస్తృత శ్రేణి వినియోగదారులకు అనుకూలంగా ఉంటుంది. ఇది ఏదైనా ఉచిత లేదా చెల్లింపు అనలాగ్లతో తగినంతగా పోటీపడగలదు. మరియు ప్రాజెక్ట్కు ఇంకా మెరుగుదలలు చేయడం చాలా ముఖ్యం, మరియు సంఘం డెవలపర్లకు మాత్రమే కాకుండా, సాధనాన్ని గుర్తించడానికి ప్రయత్నిస్తున్న ఇతర వినియోగదారులకు కూడా సహాయపడుతుంది.
ఇది సులభ సాధనం, కానీ ఇప్పటివరకు ఇది అనుమానాస్పద కోడ్ ముక్కతో సమస్య ఏమిటో ఖచ్చితంగా గుర్తించలేదు. డెవలపర్లు గ్రాడిట్ని మెరుగుపరుస్తూనే ఉన్నారు.
ఏదేమైనా, ఇలాంటి సాధనాలను ఉపయోగిస్తున్నప్పుడు కోడ్లోని సంభావ్య భద్రతా సమస్యలపై దృష్టి పెట్టడం ఉపయోగకరంగా ఉంటుంది.
ప్రారంభం...
ఈ కథనంలో, నేను దుర్బలత్వాలను కనుగొనే అనేక మార్గాలలో ఒకదాన్ని మాత్రమే చూశాను - స్టాటిక్ అప్లికేషన్ సెక్యూరిటీ టెస్టింగ్. స్టాటిక్ కోడ్ విశ్లేషణ నిర్వహించడం సులభం, కానీ ఇది ప్రారంభం మాత్రమే. మీ కోడ్బేస్ భద్రత గురించి మరింత తెలుసుకోవడానికి, మీరు మీ సాఫ్ట్వేర్ డెవలప్మెంట్ లైఫ్సైకిల్లో ఇతర రకాల టెస్టింగ్లను ఏకీకృతం చేయాలి.
ప్రకటనల హక్కులపై
మూలం: www.habr.com