మా వద్ద 2 కోడ్ ఎనలైజర్లు, 4 డైనమిక్ టెస్టింగ్ టూల్స్, మా స్వంత క్రాఫ్ట్లు మరియు 250 స్క్రిప్ట్లు ఉన్నాయి. ప్రస్తుత ప్రక్రియలో ఇవన్నీ అవసరమని కాదు, కానీ మీరు DevSecOpsని అమలు చేయడం ప్రారంభించిన తర్వాత, మీరు ముగింపుకు వెళ్లాలి.
మూలం. పాత్ర సృష్టికర్తలు: జస్టిన్ రోయిలాండ్ మరియు డాన్ హార్మోన్.
SecDevOps అంటే ఏమిటి? DevSecOps గురించి ఏమిటి? తేడాలు ఏమిటి? అప్లికేషన్ భద్రత - దాని గురించి ఏమిటి? క్లాసిక్ విధానం ఎందుకు పని చేయదు? ఈ ప్రశ్నలన్నింటికీ సమాధానం తెలుసు యూరి షబాలిన్ నుండి స్వోర్డ్ ఫిష్ సెక్యూరిటీ. యూరి ప్రతిదానికీ వివరంగా సమాధానం ఇస్తారు మరియు క్లాసిక్ అప్లికేషన్ సెక్యూరిటీ మోడల్ నుండి DevSecOps ప్రక్రియకు పరివర్తన సమస్యలను విశ్లేషిస్తారు: DevOps ప్రక్రియలో సురక్షిత అభివృద్ధి ప్రక్రియ యొక్క ఏకీకరణను ఎలా సరిగ్గా సంప్రదించాలి మరియు దేనినీ విచ్ఛిన్నం చేయకూడదు, ప్రధాన దశల ద్వారా ఎలా వెళ్ళాలి భద్రతా పరీక్ష, ఏ సాధనాలను ఉపయోగించవచ్చు, అవి ఏమి విభిన్నంగా ఉంటాయి మరియు ఆపదలను నివారించడానికి వాటిని ఎలా సరిగ్గా కాన్ఫిగర్ చేయాలి.
స్పీకర్ గురించి:యూరి షబాలిన్ - కంపెనీలో చీఫ్ సెక్యూరిటీ ఆర్కిటెక్ట్ స్వోర్డ్ ఫిష్ సెక్యూరిటీ. ఒక ఏకీకృత అభివృద్ధి మరియు పరీక్ష పర్యావరణ వ్యవస్థలో అప్లికేషన్ విశ్లేషణ సాధనాల మొత్తం ఏకీకరణ కోసం, SSDL అమలుకు బాధ్యత వహిస్తుంది. సమాచార భద్రతలో 7 సంవత్సరాల అనుభవం. సాఫ్ట్వేర్ను అభివృద్ధి చేసి సేవలను అందించే ఆల్ఫా-బ్యాంక్, స్బేర్బ్యాంక్ మరియు పాజిటివ్ టెక్నాలజీస్లో పని చేస్తున్నారు. ZerONights, PHDays, RISSPA, OWASP అంతర్జాతీయ సమావేశాలలో స్పీకర్.
అప్లికేషన్ భద్రత: దాని గురించి ఏమిటి?
అప్లికేషన్ భద్రత - ఇది అప్లికేషన్ భద్రతకు బాధ్యత వహించే భద్రతా విభాగం. ఇది ఇన్ఫ్రాస్ట్రక్చర్ లేదా నెట్వర్క్ భద్రతకు వర్తించదు, కానీ మనం వ్రాసే వాటికి మరియు డెవలపర్లు దేనిపై పని చేస్తారు - ఇవి అప్లికేషన్లోని లోపాలు మరియు దుర్బలత్వాలు.
దిశ SDL లేదా SDLC - భద్రతా అభివృద్ధి జీవితచక్రం - మైక్రోసాఫ్ట్ అభివృద్ధి చేసింది. రేఖాచిత్రం కానానికల్ SDLC మోడల్ను చూపుతుంది, అవసరాల నుండి విడుదల మరియు ఉత్పత్తి వరకు అభివృద్ధి యొక్క ప్రతి దశలో భద్రతలో పాల్గొనడం దీని ప్రధాన పని. పరిశ్రమలో చాలా బగ్లు ఉన్నాయని మైక్రోసాఫ్ట్ గ్రహించింది, వాటిలో ఎక్కువ ఉన్నాయి మరియు దాని గురించి ఏదైనా చేయవలసి ఉంది మరియు వారు ఈ విధానాన్ని ప్రతిపాదించారు, ఇది కానానికల్గా మారింది.
అప్లికేషన్ సెక్యూరిటీ మరియు SSDL సాధారణంగా విశ్వసిస్తున్నట్లుగా దుర్బలత్వాలను గుర్తించడం లక్ష్యంగా పెట్టుకోలేదు, కానీ వాటి సంభవించకుండా నిరోధించడం. కాలక్రమేణా, మైక్రోసాఫ్ట్ యొక్క కానానికల్ విధానం మెరుగుపరచబడింది, అభివృద్ధి చేయబడింది మరియు లోతైన, మరింత వివరణాత్మక డైవ్లో ప్రవేశపెట్టబడింది.
కానానికల్ SDLC వివిధ పద్ధతులలో చాలా వివరంగా ఉంది - OpenSAMM, BSIMM, OWASP. పద్ధతులు భిన్నంగా ఉంటాయి, కానీ సాధారణంగా ఒకే విధంగా ఉంటాయి.
మెచ్యూరిటీ మోడల్లో బిల్డింగ్ సెక్యూరిటీ
నాకు చాలా ఇష్టం BSIMM - మెచ్యూరిటీ మోడల్లో బిల్డింగ్ సెక్యూరిటీ. పద్దతి యొక్క ఆధారం అప్లికేషన్ సెక్యూరిటీ ప్రాసెస్ను 4 డొమైన్లుగా విభజించడం: గవర్నెన్స్, ఇంటెలిజెన్స్, SSDL టచ్పాయింట్లు మరియు డిప్లాయ్మెంట్. ప్రతి డొమైన్కు 12 అభ్యాసాలు ఉన్నాయి, ఇవి 112 కార్యకలాపాలుగా సూచించబడతాయి.
ప్రతి 112 కార్యకలాపాలు ఉన్నాయి పరిపక్వత యొక్క 3 స్థాయిలు: బిగినర్స్, ఇంటర్మీడియట్ మరియు అడ్వాన్స్డ్. మీరు సెక్షన్ల వారీగా మొత్తం 12 అభ్యాసాల విభాగాలను అధ్యయనం చేయవచ్చు, మీకు ముఖ్యమైన అంశాలను ఎంచుకోవచ్చు, వాటిని ఎలా అమలు చేయాలో గుర్తించండి మరియు క్రమంగా అంశాలను జోడించవచ్చు, ఉదాహరణకు, స్టాటిక్ మరియు డైనమిక్ కోడ్ విశ్లేషణ లేదా కోడ్ సమీక్ష. ఎంచుకున్న కార్యకలాపాల అమలులో భాగంగా మీరు ఒక ప్రణాళికను వ్రాసి, దాని ప్రకారం ప్రశాంతంగా పని చేయండి.
ఎందుకు DevSecOps
DevOps అనేది సాధారణ, పెద్ద ప్రక్రియ, దీనిలో భద్రతను పరిగణనలోకి తీసుకోవాలి.
ప్రారంభంలో DevOps భద్రతా తనిఖీల్లో పాల్గొన్నారు. ఆచరణలో, భద్రతా బృందాల సంఖ్య ఇప్పుడు కంటే చాలా తక్కువగా ఉంది మరియు వారు ప్రక్రియలో పాల్గొనేవారు కాదు, కానీ దానిపై అవసరాలు విధించే మరియు విడుదల ముగింపులో ఉత్పత్తి నాణ్యతను తనిఖీ చేసే నియంత్రణ మరియు పర్యవేక్షక సంస్థగా వ్యవహరించారు. ఇది ఒక క్లాసిక్ విధానం, దీనిలో భద్రతా బృందాలు అభివృద్ధి నుండి గోడ వెనుక ఉన్నాయి మరియు ప్రక్రియలో పాల్గొనలేదు.
ప్రధాన సమస్య ఏమిటంటే సమాచార భద్రత అభివృద్ధి నుండి వేరు. సాధారణంగా ఇది ఒక రకమైన సమాచార భద్రతా సర్క్యూట్ మరియు ఇది 2-3 పెద్ద మరియు ఖరీదైన సాధనాలను కలిగి ఉంటుంది. ప్రతి ఆరు నెలలకు ఒకసారి, తనిఖీ చేయవలసిన సోర్స్ కోడ్ లేదా అప్లికేషన్ వస్తుంది మరియు సంవత్సరానికి ఒకసారి అవి ఉత్పత్తి చేయబడతాయి పెంటెస్ట్లు. పరిశ్రమ విడుదల తేదీ ఆలస్యం కావడం మరియు డెవలపర్ ఆటోమేటెడ్ టూల్స్ నుండి భారీ సంఖ్యలో దుర్బలత్వాలకు గురికావడానికి ఇవన్నీ దారితీస్తాయి. వీటన్నింటినీ విడదీయడం మరియు మరమ్మత్తు చేయడం అసాధ్యం, ఎందుకంటే మునుపటి ఆరు నెలల ఫలితాలు క్రమబద్ధీకరించబడలేదు, కానీ ఇక్కడ కొత్త బ్యాచ్ ఉంది.
మా కంపెనీ పని చేస్తున్నప్పుడు, అన్ని ప్రాంతాలు మరియు పరిశ్రమలలో భద్రత ఒకే చక్రంలో అభివృద్ధి చెందడానికి మరియు స్పిన్ చేయడానికి సమయం ఆసన్నమైందని మేము అర్థం చేసుకున్నాము. చురుకైన. DevSecOps నమూనా చురుకైన డెవలప్మెంట్ మెథడాలజీ, అమలు, మద్దతు మరియు ప్రతి విడుదల మరియు పునరావృత్తిలో భాగస్వామ్యంతో సరిగ్గా సరిపోతుంది.
DevSecOpsకి మార్పు
సెక్యూరిటీ డెవలప్మెంట్ లైఫ్సైకిల్లో అత్యంత ముఖ్యమైన పదం "ప్రక్రియ". మీరు సాధనాలను కొనుగోలు చేయడం గురించి ఆలోచించే ముందు మీరు దీన్ని అర్థం చేసుకోవాలి.
కేవలం DevOps ప్రాసెస్లో సాధనాలను చేర్చడం సరిపోదు-ప్రాసెస్లో పాల్గొనేవారి మధ్య కమ్యూనికేషన్ మరియు అవగాహన ముఖ్యం.
వ్యక్తులు చాలా ముఖ్యమైనవి, సాధనాలు కాదు.
తరచుగా, సురక్షితమైన అభివృద్ధి ప్రక్రియ కోసం ప్రణాళిక అనేది ఒక సాధనాన్ని ఎంచుకోవడం మరియు కొనుగోలు చేయడంతో ప్రారంభమవుతుంది మరియు ప్రస్తుత ప్రక్రియలో సాధనాన్ని ఏకీకృతం చేసే ప్రయత్నాలతో ముగుస్తుంది, ఇది ప్రయత్నాలుగా మిగిలిపోయింది. ఇది దురదృష్టకర పరిణామాలకు దారితీస్తుంది, ఎందుకంటే అన్ని సాధనాలు వాటి స్వంత లక్షణాలు మరియు పరిమితులను కలిగి ఉంటాయి.
భద్రతా విభాగం విస్తృత సామర్థ్యాలతో మంచి, ఖరీదైన సాధనాన్ని ఎంచుకున్నప్పుడు మరియు దానిని ప్రక్రియలో ఏకీకృతం చేయడానికి డెవలపర్ల వద్దకు వచ్చినప్పుడు ఒక సాధారణ సందర్భం. కానీ అది పని చేయదు - ఇప్పటికే కొనుగోలు చేసిన సాధనం యొక్క పరిమితులు ప్రస్తుత నమూనాకు సరిపోని విధంగా ప్రక్రియ నిర్మించబడింది.
ముందుగా, మీకు కావలసిన ఫలితం మరియు ప్రక్రియ ఎలా ఉంటుందో వివరించండి. ఇది ప్రక్రియలో సాధనం మరియు భద్రత యొక్క పాత్రలను అర్థం చేసుకోవడానికి సహాయపడుతుంది.
ఇప్పటికే ఉపయోగంలో ఉన్న వాటితో ప్రారంభించండి
ఖరీదైన సాధనాలను కొనుగోలు చేసే ముందు, మీరు ఇప్పటికే కలిగి ఉన్న వాటిని చూడండి. ప్రతి కంపెనీకి అభివృద్ధి కోసం భద్రతా అవసరాలు ఉన్నాయి, తనిఖీలు, పెంటెస్ట్లు ఉన్నాయి - ఇవన్నీ అందరికీ అర్థమయ్యే మరియు సౌకర్యవంతంగా ఉండే రూపంలో ఎందుకు మార్చకూడదు?
సాధారణంగా అవసరాలు షెల్ఫ్లో ఉండే కాగితం టాల్ముడ్. మేము ప్రాసెస్లను చూడటానికి ఒక కంపెనీకి వచ్చినప్పుడు మరియు సాఫ్ట్వేర్ కోసం భద్రతా అవసరాలను చూడమని కోరినప్పుడు ఒక సందర్భం ఉంది. దీనితో వ్యవహరించిన నిపుణుడు చాలా కాలం వెతుకుతున్నాడు:
- ఇప్పుడు, నోట్స్లో ఎక్కడో ఈ పత్రం ఉన్న మార్గం ఉంది.
ఫలితంగా, మేము ఒక వారం తర్వాత పత్రాన్ని అందుకున్నాము.
అవసరాలు, తనిఖీలు మరియు ఇతర విషయాల కోసం, ఉదా.లో పేజీని సృష్టించండి. కూడలి - ఇది అందరికీ అనుకూలమైనది.
మీరు ఇప్పటికే కలిగి ఉన్న వాటిని మళ్లీ ఫార్మాట్ చేయడం మరియు ప్రారంభించడానికి దాన్ని ఉపయోగించడం సులభం.
సెక్యూరిటీ ఛాంపియన్లను ఉపయోగించండి
సాధారణంగా, 100-200 మంది డెవలపర్లు ఉన్న సగటు కంపెనీలో, అనేక విధులు నిర్వర్తించే ఒక భద్రతా నిపుణుడు ఉన్నారు మరియు భౌతికంగా ప్రతిదీ తనిఖీ చేయడానికి సమయం ఉండదు. అతను తన శాయశక్తులా ప్రయత్నించినప్పటికీ, అభివృద్ధి సృష్టించే అన్ని కోడ్లను అతను మాత్రమే తనిఖీ చేయడు. అటువంటి సందర్భాలలో, ఒక భావన అభివృద్ధి చేయబడింది - సెక్యూరిటీ ఛాంపియన్స్.
సెక్యూరిటీ ఛాంపియన్లు డెవలప్మెంట్ టీమ్లోని వ్యక్తులు మీ ఉత్పత్తి భద్రతపై ఆసక్తి కలిగి ఉంటారు.
సెక్యూరిటీ ఛాంపియన్ డెవలప్మెంట్ టీమ్లోకి ఎంట్రీ పాయింట్ మరియు ఒక సెక్యూరిటీ సువార్తికుడు ఒకరిగా చేరాడు.
సాధారణంగా, ఒక భద్రతా నిపుణుడు డెవలప్మెంట్ బృందం వద్దకు వచ్చి కోడ్లోని లోపాన్ని ఎత్తి చూపినప్పుడు, అతను ఆశ్చర్యకరమైన సమాధానాన్ని అందుకుంటాడు:
- మరియు మీరు ఎవరు? నిన్ను మొదటి సారి చూస్తున్నాను. నాతో అంతా బాగానే ఉంది - కోడ్ సమీక్షలో నా సీనియర్ స్నేహితుడు నాకు “దరఖాస్తు” ఇచ్చాడు, మేము కొనసాగుతాము!
ఇది ఒక సాధారణ పరిస్థితి, ఎందుకంటే డెవలపర్ పనిలో మరియు కోడ్ సమీక్షలో నిరంతరం పరస్పర చర్య చేసే సీనియర్లు లేదా సహచరులపై ఎక్కువ నమ్మకం ఉంటుంది. భద్రతా అధికారికి బదులుగా, సెక్యూరిటీ ఛాంపియన్ తప్పు మరియు పరిణామాలను ఎత్తి చూపినట్లయితే, అతని మాటకు మరింత బరువు ఉంటుంది.
అలాగే, డెవలపర్లు తమ కోడ్ని ఏ సెక్యూరిటీ స్పెషలిస్ట్ కంటే మెరుగ్గా తెలుసుకుంటారు. స్టాటిక్ అనాలిసిస్ టూల్లో కనీసం 5 ప్రాజెక్ట్లను కలిగి ఉన్న వ్యక్తికి, సాధారణంగా అన్ని సూక్ష్మ నైపుణ్యాలను గుర్తుంచుకోవడం కష్టం. సెక్యూరిటీ ఛాంపియన్లకు వారి ఉత్పత్తి గురించి తెలుసు: దేనితో సంకర్షణ చెందుతుంది మరియు మొదట ఏమి చూడాలి - అవి మరింత ప్రభావవంతంగా ఉంటాయి.
కాబట్టి సెక్యూరిటీ ఛాంపియన్లను అమలు చేయడం మరియు మీ భద్రతా బృందం ప్రభావాన్ని విస్తరించడాన్ని పరిగణించండి. ఇది ఛాంపియన్కు కూడా ఉపయోగపడుతుంది: కొత్త రంగంలో వృత్తిపరమైన అభివృద్ధి, అతని సాంకేతిక పరిధులను విస్తరించడం, సాంకేతిక, నిర్వాహక మరియు నాయకత్వ నైపుణ్యాలను అప్గ్రేడ్ చేయడం, మార్కెట్ విలువను పెంచడం. ఇది సోషల్ ఇంజినీరింగ్ యొక్క కొంత అంశం, అభివృద్ధి బృందంలో మీ "కళ్ళు".
పరీక్ష దశలు
ఉదాహరణ 20 నుండి 80 20% ప్రయత్నం 80% ఫలితాలను ఇస్తుంది అని చెప్పారు. ఈ 20% అనువర్తన విశ్లేషణ పద్ధతులు, ఇది స్వయంచాలకంగా ఉంటుంది. అటువంటి కార్యకలాపాలకు ఉదాహరణలు స్టాటిక్ విశ్లేషణ - Sast, డైనమిక్ విశ్లేషణ - DAST и ఓపెన్ సోర్స్ నియంత్రణ. నేను కార్యకలాపాల గురించి, అలాగే సాధనాల గురించి మరింత వివరంగా చెబుతాను, ప్రాసెస్లో వాటిని పరిచయం చేసేటప్పుడు మనం సాధారణంగా ఏ లక్షణాలను ఎదుర్కొంటాము మరియు సరిగ్గా ఎలా చేయాలో.
సాధనాల యొక్క ప్రధాన సమస్యలు
అన్ని సాధనాలకు సంబంధించిన మరియు శ్రద్ధ అవసరమయ్యే సమస్యలను నేను హైలైట్ చేస్తాను. నేను వాటిని మరింత వివరంగా విశ్లేషిస్తాను, తద్వారా వాటిని పునరావృతం చేయకూడదు.
సుదీర్ఘ విశ్లేషణ సమయం. కమిట్ నుండి విడుదలకు అన్ని పరీక్షలు మరియు అసెంబ్లీకి 30 నిమిషాలు పట్టినట్లయితే, సమాచార భద్రతా తనిఖీలకు ఒక రోజు పడుతుంది. కాబట్టి ఎవరూ ప్రక్రియను మందగించరు. ఈ లక్షణాన్ని పరిగణనలోకి తీసుకోండి మరియు తీర్మానాలు చేయండి.
అధిక స్థాయి ఫాల్స్ నెగటివ్ లేదా ఫాల్స్ పాజిటివ్. అన్ని ఉత్పత్తులు భిన్నంగా ఉంటాయి, అన్నీ వేర్వేరు ఫ్రేమ్వర్క్లను మరియు వాటి స్వంత కోడింగ్ శైలిని ఉపయోగిస్తాయి. విభిన్న కోడ్బేస్లు మరియు సాంకేతికతలపై, సాధనాలు ఫాల్స్ నెగటివ్ మరియు ఫాల్స్ పాజిటివ్ల యొక్క వివిధ స్థాయిలను చూపవచ్చు. కాబట్టి సరిగ్గా ఏమి ఉందో చూడండి вашей కంపెనీలు మరియు కోసం మీ అప్లికేషన్లు మంచి మరియు నమ్మదగిన ఫలితాలను చూపుతాయి.
ఇప్పటికే ఉన్న సాధనాలతో ఏకీకరణలు లేవు. మీరు ఇప్పటికే ఉపయోగిస్తున్న వాటితో అనుసంధానాల పరంగా సాధనాలను చూడండి. ఉదాహరణకు, మీకు Jenkins లేదా TeamCity ఉంటే, మీరు ఉపయోగించని GitLab CIతో కాకుండా ఈ సాఫ్ట్వేర్తో సాధనాల ఏకీకరణను తనిఖీ చేయండి.
అనుకూలీకరణలో లేకపోవడం లేదా అధిక సంక్లిష్టత. సాధనం APIని కలిగి ఉండకపోతే, అది ఎందుకు అవసరం? ఇంటర్ఫేస్లో చేయగలిగే ప్రతిదీ API ద్వారా అందుబాటులో ఉండాలి. ఆదర్శవంతంగా, సాధనం తనిఖీలను అనుకూలీకరించగల సామర్థ్యాన్ని కలిగి ఉండాలి.
ఉత్పత్తి అభివృద్ధి రోడ్మ్యాప్ లేదు. అభివృద్ధి ఇప్పటికీ నిలబడదు, మేము ఎల్లప్పుడూ కొత్త ఫ్రేమ్వర్క్లు మరియు ఫంక్షన్లను ఉపయోగిస్తాము, పాత కోడ్ను కొత్త భాషలలోకి తిరిగి వ్రాస్తాము. మేము కొనుగోలు చేసే సాధనం కొత్త ఫ్రేమ్వర్క్లు మరియు సాంకేతికతలకు మద్దతు ఇస్తుందని మేము నిర్ధారించుకోవాలనుకుంటున్నాము. అందువల్ల, ఉత్పత్తి నిజమైనది మరియు సరైనది అని తెలుసుకోవడం ముఖ్యం రోడ్మ్యాప్ అభివృద్ధి.
ప్రాసెస్ లక్షణాలు
సాధనాల లక్షణాలతో పాటు, అభివృద్ధి ప్రక్రియ యొక్క లక్షణాలను పరిగణనలోకి తీసుకోండి. ఉదాహరణకు, అభివృద్ధిని అడ్డుకోవడం అనేది ఒక సాధారణ తప్పు. ఏ ఇతర లక్షణాలను పరిగణనలోకి తీసుకోవాలి మరియు భద్రతా బృందం దేనికి శ్రద్ధ వహించాలో చూద్దాం.
డెవలప్మెంట్ను కోల్పోకుండా మరియు గడువులను విడుదల చేయకుండా ఉండటానికి, సృష్టించండి వివిధ నియమాలు మరియు భిన్నమైనది షో స్టాపర్స్ - దుర్బలత్వాల సమక్షంలో నిర్మాణ ప్రక్రియను ఆపడానికి ప్రమాణాలు - వివిధ వాతావరణాల కోసం. ఉదాహరణకు, ప్రస్తుత బ్రాంచ్ డెవలప్మెంట్ స్టాండ్ లేదా UATకి వెళ్తుందని మేము అర్థం చేసుకున్నాము, అంటే మేము ఆగి చెప్పము:
"మీకు ఇక్కడ దుర్బలత్వం ఉంది, మీరు ఎక్కడికీ వెళ్లరు!"
ఈ సమయంలో, శ్రద్ధ వహించాల్సిన భద్రతా సమస్యలు ఉన్నాయని డెవలపర్లకు చెప్పడం ముఖ్యం.
దుర్బలత్వాల ఉనికి తదుపరి పరీక్షకు అడ్డంకి కాదు: మాన్యువల్, ఇంటిగ్రేషన్ లేదా మాన్యువల్. మరోవైపు, మేము ఏదో ఒకవిధంగా ఉత్పత్తి యొక్క భద్రతను పెంచాలి మరియు డెవలపర్లు వారు సురక్షితంగా ఉన్న వాటిని విస్మరించరు. అందువల్ల, కొన్నిసార్లు మేము దీన్ని చేస్తాము: స్టాండ్ వద్ద, అది అభివృద్ధి వాతావరణానికి చుట్టబడినప్పుడు, మేము కేవలం అభివృద్ధిని తెలియజేస్తాము:
- గైస్, మీకు సమస్యలు ఉన్నాయి, దయచేసి వాటిపై శ్రద్ధ వహించండి.
UAT దశలో మేము మళ్లీ దుర్బలత్వాల గురించి హెచ్చరికలను చూపుతాము మరియు విడుదల దశలో మేము ఇలా చెబుతాము:
- అబ్బాయిలు, మేము మిమ్మల్ని చాలాసార్లు హెచ్చరించాము, మీరు ఏమీ చేయలేదు - దీనితో మేము మిమ్మల్ని బయటకు పంపము.
మేము కోడ్ మరియు డైనమిక్స్ గురించి మాట్లాడినట్లయితే, ఈ ఫీచర్లో ఇప్పుడే వ్రాయబడిన లక్షణాలు మరియు కోడ్ల యొక్క దుర్బలత్వాలను మాత్రమే చూపడం మరియు హెచ్చరించడం అవసరం. డెవలపర్ ఒక బటన్ను 3 పిక్సెల్ల ద్వారా కదిలిస్తే, అతనికి అక్కడ SQL ఇంజెక్షన్ ఉందని, అందువల్ల అత్యవసరంగా పరిష్కరించాల్సిన అవసరం ఉందని మేము అతనికి చెబితే, ఇది తప్పు. ఇప్పుడు వ్రాసిన వాటిని మరియు అప్లికేషన్లో వచ్చే మార్పును మాత్రమే చూడండి.
మనకు నిర్దిష్ట ఫంక్షనల్ లోపం ఉందని చెప్పండి - అప్లికేషన్ పని చేయని విధానం: డబ్బు బదిలీ చేయబడదు, మీరు ఒక బటన్పై క్లిక్ చేసినప్పుడు తదుపరి పేజీకి ఎటువంటి మార్పు ఉండదు లేదా ఉత్పత్తి లోడ్ అవ్వదు. భద్రతా లోపాలు - ఇవి అదే లోపాలు, కానీ అప్లికేషన్ ఆపరేషన్ పరంగా కాదు, కానీ భద్రతలో.
సాఫ్ట్వేర్ నాణ్యత సమస్యలన్నీ భద్రతా సమస్యలు కావు. కానీ అన్ని భద్రతా సమస్యలు సాఫ్ట్వేర్ నాణ్యతకు సంబంధించినవి. షెరీఫ్ మన్సూర్, ఎక్స్పీడియా.
అన్ని దుర్బలత్వాలు ఒకే లోపాలు కాబట్టి, అవి అన్ని అభివృద్ధి లోపాల వలె ఒకే స్థలంలో ఉండాలి. కాబట్టి ఎవరూ చదవని నివేదికలు మరియు భయానక PDFల గురించి మరచిపోండి.
నేను డెవలప్మెంట్ కంపెనీలో పని చేస్తున్నప్పుడు, స్టాటిక్ అనాలిసిస్ టూల్స్ నుండి నాకు రిపోర్ట్ వచ్చింది. నేను దానిని తెరిచాను, భయపడ్డాను, కాఫీ తయారు చేసాను, 350 పేజీల ద్వారా ఆకులను తయారు చేసాను, దానిని మూసివేసి పనిని కొనసాగించాను. పెద్ద రిపోర్టులు డెడ్ రిపోర్టులు. సాధారణంగా వారు ఎక్కడికీ వెళ్లరు, అక్షరాలు తొలగించబడతాయి, మరచిపోతాయి, పోతాయి లేదా వ్యాపారాలు నష్టాలను అంగీకరిస్తాయని చెప్పారు.
ఏం చేయాలి? మేము కనుగొన్న ధృవీకరించబడిన లోపాలను అభివృద్ధికి అనుకూలమైన రూపంలోకి మారుస్తాము, ఉదాహరణకు, మేము వాటిని జిరాలో బ్యాక్లాగ్లో ఉంచుతాము. మేము లోపాలకు ప్రాధాన్యతనిస్తాము మరియు క్రియాత్మక లోపాలు మరియు పరీక్షా లోపాలతో పాటు ప్రాధాన్యతా క్రమంలో వాటిని తొలగిస్తాము.
స్టాటిక్ అనాలిసిస్ - SAST
ఇది దుర్బలత్వాలకు సంబంధించిన కోడ్ విశ్లేషణ., కానీ ఇది SonarQube వలె లేదు. మేము కేవలం నమూనాలు లేదా శైలి కోసం తనిఖీ చేయము. విశ్లేషణలో అనేక విధానాలు ఉపయోగించబడతాయి: దుర్బలత్వం చెట్టు ప్రకారం, ప్రకారం డేటా ఫ్లో, కాన్ఫిగరేషన్ ఫైళ్లను విశ్లేషించడం ద్వారా. ఇది కోడ్కు సంబంధించినది.
విధానం యొక్క ప్రోస్: అభివృద్ధి ప్రారంభ దశలో కోడ్లోని దుర్బలత్వాలను గుర్తించడంఇంకా స్టాండ్లు లేదా రెడీమేడ్ టూల్స్ లేనప్పుడు, మరియు పెరుగుతున్న స్కానింగ్ సామర్థ్యం: మార్చబడిన కోడ్ యొక్క విభాగాన్ని స్కాన్ చేయడం మరియు మేము ప్రస్తుతం చేస్తున్న ఫీచర్ మాత్రమే, ఇది స్కానింగ్ సమయాన్ని తగ్గిస్తుంది.
Минусы - ఇది అవసరమైన భాషలకు మద్దతు లేకపోవడం.
అవసరమైన ఏకీకరణలు, నా ఆత్మాశ్రయ అభిప్రాయం ప్రకారం ఇది సాధనాల్లో ఉండాలి:
ఇంటిగ్రేషన్ సాధనం: జెంకిన్స్, టీమ్సిటీ మరియు గిట్లాబ్ CI.
అభివృద్ధి వాతావరణం: Intellij IDEA, విజువల్ స్టూడియో. డెవలపర్కు ఇంకా గుర్తుంచుకోవలసిన అపారమయిన ఇంటర్ఫేస్ను నావిగేట్ చేయకుండా ఉండటం మరింత సౌకర్యవంతంగా ఉంటుంది, అయితే అతను తన స్వంత అభివృద్ధి వాతావరణంలో కార్యాలయంలో సరిగ్గా కనుగొన్న అన్ని అవసరమైన ఏకీకరణలు మరియు దుర్బలత్వాలను చూడటం.
కోడ్ సమీక్ష: SonarQube మరియు మాన్యువల్ సమీక్ష.
లోపం ట్రాకర్లు: జిరా మరియు బగ్జిల్లా.
చిత్రం స్టాటిక్ విశ్లేషణ యొక్క కొన్ని ఉత్తమ ప్రతినిధులను చూపుతుంది.
ఇది ముఖ్యమైన సాధనాలు కాదు, కానీ ప్రక్రియ, కాబట్టి ప్రక్రియను పరీక్షించడానికి కూడా మంచి ఓపెన్ సోర్స్ పరిష్కారాలు ఉన్నాయి.
SAST ఓపెన్ సోర్స్ భారీ సంఖ్యలో దుర్బలత్వాలను లేదా సంక్లిష్ట డేటాఫ్లోలను కనుగొనలేదు, కానీ ప్రక్రియను నిర్మించేటప్పుడు అవి ఉపయోగించబడతాయి మరియు ఉపయోగించబడతాయి. ప్రక్రియ ఎలా నిర్మించబడుతుందో, బగ్లకు ఎవరు ప్రతిస్పందిస్తారు, ఎవరు నివేదిస్తారు మరియు ఎవరు నివేదించాలో అర్థం చేసుకోవడానికి అవి సహాయపడతాయి. మీరు మీ కోడ్ యొక్క భద్రతను నిర్మించే ప్రారంభ దశను నిర్వహించాలనుకుంటే, ఓపెన్ సోర్స్ సొల్యూషన్లను ఉపయోగించండి.
మీరు మీ ప్రయాణం ప్రారంభంలో ఉండి, ఏమీ లేకుంటే దీన్ని ఎలా ఏకీకృతం చేయవచ్చు: CI లేదు, జెంకిన్స్ లేదు, టీమ్సిటీ లేదు? ప్రక్రియలో ఏకీకరణను పరిశీలిద్దాం.
CVS స్థాయి ఏకీకరణ
మీకు బిట్బకెట్ లేదా గిట్ల్యాబ్ ఉంటే, మీరు స్థాయిలో ఇంటిగ్రేట్ చేయవచ్చు ఏకకాల సంస్కరణల వ్యవస్థ.
ఈవెంట్ ద్వారా - అభ్యర్థనను లాగండి, కట్టుబడి. మీరు కోడ్ని స్కాన్ చేయండి మరియు భద్రతా తనిఖీ పాస్ అయ్యిందా లేదా విఫలమైందో లేదో బిల్డ్ స్థితి చూపుతుంది.
అభిప్రాయం వాస్తవానికి, అభిప్రాయం ఎల్లప్పుడూ అవసరం. మీరు భద్రతను పక్కన పెడితే, దానిని ఒక పెట్టెలో ఉంచి, దాని గురించి ఎవరికీ ఏమీ చెప్పకుండా, ఆపై నెలాఖరులో బగ్ల సమూహాన్ని పారేస్తే - ఇది సరైనది కాదు మరియు మంచిది కాదు.
కోడ్ సమీక్ష వ్యవస్థతో ఏకీకరణ
ఒకసారి, మేము అనేక ముఖ్యమైన ప్రాజెక్ట్లలో సాంకేతిక AppSec వినియోగదారు కోసం డిఫాల్ట్ రివ్యూయర్గా వ్యవహరించాము. కొత్త కోడ్లో లోపాలు గుర్తించబడ్డాయా లేదా లోపాలు లేవా అనేదానిపై ఆధారపడి, సమీక్షకుడు పుల్ అభ్యర్థనపై స్థితిని "అంగీకరించు" లేదా "పని కావాలి" అని సెట్ చేస్తాడు - ప్రతిదీ సరిగ్గా ఉంది లేదా ఖచ్చితంగా మెరుగుపరచాల్సిన వాటికి లింక్లు మెరుగుపరచాలి. ఉత్పత్తికి వెళ్లే సంస్కరణతో ఏకీకరణ కోసం, సమాచార భద్రతా పరీక్షలో ఉత్తీర్ణత సాధించకుంటే మేము విలీన నిషేధాన్ని ప్రారంభించాము. మేము దీన్ని మాన్యువల్ కోడ్ సమీక్షలో చేర్చాము మరియు ప్రాసెస్లో పాల్గొనే ఇతర వ్యక్తులు ఈ నిర్దిష్ట ప్రాసెస్ కోసం భద్రతా స్థితిగతులను చూసారు.
SonarQubeతో ఏకీకరణ
చాలామంది ఉన్నారు నాణ్యత గేట్ కోడ్ నాణ్యత పరంగా. ఇక్కడ కూడా అదే ఉంది - మీరు SAST సాధనాల కోసం మాత్రమే అదే గేట్లను తయారు చేయవచ్చు. అదే ఇంటర్ఫేస్, అదే క్వాలిటీ గేట్ ఉంటుంది, అది మాత్రమే పిలవబడుతుంది భద్రతా ద్వారం. అలాగే, మీరు SonarQubeని ఉపయోగించే ప్రక్రియను కలిగి ఉంటే, మీరు అక్కడ ఉన్న అన్నింటినీ సులభంగా ఇంటిగ్రేట్ చేయవచ్చు.
CI స్థాయిలో ఏకీకరణ
ఇక్కడ ప్రతిదీ కూడా చాలా సులభం:
ఆటోటెస్ట్లతో సమానంగా, యూనిట్ పరీక్షలు.
అభివృద్ధి దశల వారీగా విభజన: దేవ్, పరీక్ష, ఉత్పత్తి. వివిధ సెట్ల నియమాలు లేదా విభిన్న విఫలమైన పరిస్థితులు చేర్చబడవచ్చు: అసెంబ్లీని ఆపండి, అసెంబ్లీని ఆపవద్దు.
సమకాలిక/అసమకాలిక ప్రయోగం. భద్రతా పరీక్షల ముగింపు కోసం మేము వేచి ఉన్నాము లేదా. అంటే, మేము వాటిని ప్రారంభించాము మరియు ముందుకు సాగాము, ఆపై ప్రతిదీ మంచి లేదా చెడు అనే స్థితిని పొందుతాము.
ఇది ఒక ఖచ్చితమైన గులాబీ ప్రపంచంలో ఉంది. నిజ జీవితంలో అలాంటిదేమీ లేదు, కానీ మేము ప్రయత్నిస్తాము. భద్రతా తనిఖీలను అమలు చేసే ఫలితం యూనిట్ పరీక్షల ఫలితాల మాదిరిగానే ఉండాలి.
ఉదాహరణకు, మేము ఒక పెద్ద ప్రాజెక్ట్ని తీసుకున్నాము మరియు ఇప్పుడు దానిని SASTతో స్కాన్ చేయాలని నిర్ణయించుకున్నాము - సరే. మేము ఈ ప్రాజెక్ట్ను SASTలోకి నెట్టాము, ఇది మాకు 20 దుర్బలత్వాలను అందించింది మరియు దృఢ సంకల్ప నిర్ణయంతో అంతా బాగానే ఉందని మేము నిర్ణయించుకున్నాము. 000 దుర్బలత్వాలు మా సాంకేతిక రుణం. మేము రుణాన్ని ఒక పెట్టెలో ఉంచుతాము, మేము దానిని నెమ్మదిగా క్లియర్ చేస్తాము మరియు డిఫెక్ట్ ట్రాకర్లకు బగ్లను జోడిస్తాము. ఒక కంపెనీని అద్దెకు తీసుకుందాం, అన్నీ మనమే చేద్దాం లేదా సెక్యూరిటీ ఛాంపియన్లు మాకు సహాయం చేద్దాం - మరియు సాంకేతిక రుణం తగ్గుతుంది.
మరియు కొత్త కోడ్లో కొత్తగా ఉద్భవిస్తున్న అన్ని దుర్బలత్వాలను తప్పనిసరిగా యూనిట్లో లేదా ఆటోటెస్ట్లలోని లోపాల మాదిరిగానే తొలగించాలి. సాపేక్షంగా చెప్పాలంటే, అసెంబ్లీ ప్రారంభమైంది, మేము దానిని అమలు చేసాము, రెండు పరీక్షలు మరియు రెండు భద్రతా పరీక్షలు విఫలమయ్యాయి. సరే - మేము వెళ్ళాము, ఏమి జరిగిందో చూశాము, ఒకదాన్ని పరిష్కరించాము, మరొకదాన్ని పరిష్కరించాము, తదుపరిసారి దాన్ని అమలు చేసాము - అంతా బాగానే ఉంది, కొత్త దుర్బలత్వాలు కనిపించలేదు, పరీక్షలు ఏవీ విఫలం కాలేదు. ఈ పని మరింత లోతుగా ఉంటే మరియు మీరు దానిని బాగా అర్థం చేసుకోవాలి, లేదా దుర్బలత్వాలను పరిష్కరించడం హుడ్ కింద ఉన్న పెద్ద పొరలను ప్రభావితం చేస్తుంది: లోపం ట్రాకర్కు బగ్ జోడించబడింది, అది ప్రాధాన్యతనిస్తుంది మరియు సరిదిద్దబడుతుంది. దురదృష్టవశాత్తు, ప్రపంచం పరిపూర్ణంగా లేదు మరియు పరీక్షలు కొన్నిసార్లు విఫలమవుతాయి.
కోడ్లోని దుర్బలత్వాల ఉనికి మరియు సంఖ్య పరంగా నాణ్యమైన గేట్ యొక్క అనలాగ్ సెక్యూరిటీ గేట్కి ఉదాహరణ.
మేము SonarQubeతో ఏకీకృతం చేస్తాము - ప్లగ్ఇన్ వ్యవస్థాపించబడింది, ప్రతిదీ చాలా సౌకర్యవంతంగా మరియు చల్లగా ఉంటుంది.
అభివృద్ధి వాతావరణంతో ఏకీకరణ
ఇంటిగ్రేషన్ ఎంపికలు:
కమిట్ అయ్యే ముందు డెవలప్మెంట్ ఎన్విరాన్మెంట్ నుండి స్కాన్ని రన్ చేయడం.
ఫలితాలను వీక్షించండి.
ఫలితాల విశ్లేషణ.
సర్వర్తో సమకాలీకరణ.
సర్వర్ నుండి ఫలితాలను స్వీకరించడం ఇలా కనిపిస్తుంది.
మన అభివృద్ధి వాతావరణంలో ఇంటెల్లిజ్ IDEA స్కాన్ సమయంలో అటువంటి దుర్బలత్వాలు కనుగొనబడినట్లు మీకు తెలియజేసే అదనపు అంశం కనిపిస్తుంది. మీరు వెంటనే కోడ్ని సవరించవచ్చు, సిఫార్సులను చూడవచ్చు మరియు ఫ్లో గ్రాఫ్. ఇదంతా డెవలపర్ కార్యాలయంలో ఉంది, ఇది చాలా సౌకర్యవంతంగా ఉంటుంది - ఇతర లింక్లను అనుసరించాల్సిన అవసరం లేదు మరియు అదనపు వాటిని చూడవలసిన అవసరం లేదు.
ఓపెన్ సోర్స్
ఇది నాకు ఇష్టమైన అంశం. అందరూ ఓపెన్ సోర్స్ లైబ్రరీలను ఉపయోగిస్తున్నారు - మీరు ఇప్పటికే ప్రతిదీ అమలు చేయబడిన ఒక రెడీమేడ్ లైబ్రరీని తీసుకోగలిగినప్పుడు క్రచెస్ మరియు సైకిళ్ల సమూహాన్ని ఎందుకు వ్రాయాలి?
వాస్తవానికి, ఇది నిజం, కానీ లైబ్రరీలు కూడా వ్యక్తులచే వ్రాయబడ్డాయి, అవి కొన్ని ప్రమాదాలను కూడా కలిగి ఉంటాయి మరియు క్రమానుగతంగా లేదా నిరంతరంగా నివేదించబడే దుర్బలత్వాలు కూడా ఉన్నాయి. అందువల్ల, అప్లికేషన్ సెక్యూరిటీలో తదుపరి దశ ఉంది - ఇది ఓపెన్ సోర్స్ భాగాల విశ్లేషణ.
ఓపెన్ సోర్స్ విశ్లేషణ - OSA
సాధనం మూడు పెద్ద దశలను కలిగి ఉంటుంది.
లైబ్రరీలలో దుర్బలత్వాల కోసం వెతుకుతోంది. ఉదాహరణకు, మేము కొంత లైబ్రరీని ఉపయోగిస్తున్నామని మరియు అందులో ఉన్నామని సాధనానికి తెలుసు CVE లేదా లైబ్రరీ యొక్క ఈ సంస్కరణకు సంబంధించిన బగ్ ట్రాకర్లలో కొన్ని దుర్బలత్వాలు ఉన్నాయి. మీరు దీన్ని ఉపయోగించడానికి ప్రయత్నించినప్పుడు, సాధనం లైబ్రరీ హాని కలిగిస్తుందని హెచ్చరికను జారీ చేస్తుంది మరియు హాని లేని మరొక సంస్కరణను ఉపయోగించమని మీకు సలహా ఇస్తుంది.
లైసెన్స్ స్వచ్ఛత యొక్క విశ్లేషణ. ఇది ఇంకా ఇక్కడ ప్రత్యేకంగా ప్రాచుర్యం పొందలేదు, కానీ మీరు విదేశాలలో పని చేస్తున్నట్లయితే, ఎప్పటికప్పుడు మీరు ఉపయోగించలేని లేదా సవరించలేని ఓపెన్ సోర్స్ కాంపోనెంట్ని ఉపయోగించి అక్కడ పన్నును పొందవచ్చు. లైసెన్స్ పొందిన లైబ్రరీ విధానం ప్రకారం, మేము దీన్ని చేయలేము. లేదా, మేము దానిని సవరించి, ఉపయోగిస్తే, మన కోడ్ను పోస్ట్ చేయాలి. అయితే, ఎవరూ తమ ఉత్పత్తుల కోడ్ను ప్రచురించాలని కోరుకోరు, కానీ మీరు దీని నుండి మిమ్మల్ని మీరు రక్షించుకోవచ్చు.
పారిశ్రామిక వాతావరణంలో ఉపయోగించే భాగాల విశ్లేషణ. మేము చివరకు అభివృద్ధిని పూర్తి చేసాము మరియు మా మైక్రోసర్వీస్ యొక్క తాజా విడుదలను విడుదల చేసాము అనే ఊహాజనిత పరిస్థితిని ఊహించుకుందాం. అతను అక్కడ అద్భుతంగా నివసిస్తున్నాడు - ఒక వారం, ఒక నెల, ఒక సంవత్సరం. మేము దానిని సేకరించము, మేము భద్రతా తనిఖీలను నిర్వహించము, ప్రతిదీ బాగానే ఉన్నట్లు అనిపిస్తుంది. కానీ అకస్మాత్తుగా, విడుదలైన రెండు వారాల తర్వాత, పారిశ్రామిక వాతావరణంలో మనం ఈ నిర్దిష్ట బిల్డ్లో ఉపయోగించే ఓపెన్ సోర్స్ కాంపోనెంట్లో క్లిష్టమైన దుర్బలత్వం కనిపిస్తుంది. మనం దేనిని మరియు ఎక్కడ ఉపయోగిస్తున్నామో రికార్డ్ చేయకపోతే, మేము ఈ దుర్బలత్వాన్ని చూడలేము. కొన్ని సాధనాలు ప్రస్తుతం పరిశ్రమలో ఉపయోగిస్తున్న లైబ్రరీలలోని దుర్బలత్వాలను పర్యవేక్షించగల సామర్థ్యాన్ని కలిగి ఉంటాయి. ఇది చాలా ఉపయోగకరంగా ఉంది.
ఫీచర్స్:
వివిధ దశల అభివృద్ధి కోసం వివిధ విధానాలు.
పారిశ్రామిక వాతావరణంలో భాగాలను పర్యవేక్షించడం.
సంస్థలోని లైబ్రరీల నియంత్రణ.
వివిధ నిర్మాణ వ్యవస్థలు మరియు భాషలకు మద్దతు.
డాకర్ చిత్రాల విశ్లేషణ.
ఓపెన్ సోర్స్ విశ్లేషణలో నిమగ్నమై ఉన్న పరిశ్రమ నాయకులకు కొన్ని ఉదాహరణలు.
ఇది ఒక్కటే ఉచితం డిపెండెన్సీ-చెక్ OWASP నుండి. మీరు దీన్ని మొదటి దశల్లో ఆన్ చేయవచ్చు, ఇది ఎలా పని చేస్తుందో మరియు అది దేనికి మద్దతు ఇస్తుందో చూడండి. ప్రాథమికంగా, ఇవన్నీ క్లౌడ్ ఉత్పత్తులు లేదా ఆన్-ప్రాంగణంలో ఉంటాయి, కానీ వాటి స్థావరం వెనుక అవి ఇప్పటికీ ఇంటర్నెట్కు పంపబడతాయి. వారు మీ లైబ్రరీలను పంపరు, కానీ హ్యాష్లు లేదా వారి స్వంత విలువలను, వారు లెక్కించే వాటిని పంపుతారు మరియు దుర్బలత్వాల ఉనికి గురించి సమాచారాన్ని స్వీకరించడానికి వారి సర్వర్కు వేలిముద్రలను పంపుతారు.
ప్రక్రియ ఏకీకరణ
లైబ్రరీల చుట్టుకొలత నియంత్రణ, బాహ్య మూలాల నుండి డౌన్లోడ్ చేయబడినవి. మాకు బాహ్య మరియు అంతర్గత రిపోజిటరీలు ఉన్నాయి. ఉదాహరణకు, ఈవెంట్ సెంట్రల్ నెక్సస్ని నడుపుతుంది మరియు మా రిపోజిటరీలో “క్లిష్టమైన” లేదా “అధిక” స్థితితో ఎటువంటి దుర్బలత్వాలు లేవని మేము నిర్ధారించుకోవాలనుకుంటున్నాము. మీరు Nexus ఫైర్వాల్ లైఫ్సైకిల్ సాధనాన్ని ఉపయోగించి ప్రాక్సింగ్ను కాన్ఫిగర్ చేయవచ్చు, తద్వారా అటువంటి దుర్బలత్వాలు కత్తిరించబడతాయి మరియు అంతర్గత రిపోజిటరీలో ముగియవు.
CIలో ఏకీకరణ. ఆటోటెస్ట్లు, యూనిట్ టెస్ట్లు మరియు డెవలప్మెంట్ దశలుగా విభజించడంతో అదే స్థాయిలో: dev, test, prod. ప్రతి దశలో, మీరు ఏదైనా లైబ్రరీలను డౌన్లోడ్ చేసుకోవచ్చు, దేనినైనా ఉపయోగించవచ్చు, కానీ “క్లిష్టమైన” స్థితితో ఏదైనా కష్టం ఉంటే, ఉత్పత్తికి విడుదల చేసే దశలో డెవలపర్ల దృష్టిని దీనిపై ఆకర్షించడం విలువైనదే.
కళాఖండాలతో ఏకీకరణ: Nexus మరియు JFrog.
అభివృద్ధి వాతావరణంలో ఏకీకరణ. మీరు ఎంచుకునే సాధనాలు అభివృద్ధి పరిసరాలతో ఏకీకరణను కలిగి ఉండాలి. డెవలపర్ తప్పనిసరిగా తన కార్యాలయంలోని స్కానింగ్ ఫలితాలకు యాక్సెస్ను కలిగి ఉండాలి లేదా CVSకి పాల్పడే ముందు కోడ్ను స్కాన్ చేసి, హాని కోసం స్వయంగా తనిఖీ చేసే సామర్థ్యాన్ని కలిగి ఉండాలి.
CD ఇంటిగ్రేషన్. ఇది నేను నిజంగా ఇష్టపడే మరియు నేను ఇప్పటికే మాట్లాడిన మంచి ఫీచర్ - పారిశ్రామిక వాతావరణంలో కొత్త దుర్బలత్వాల ఆవిర్భావాన్ని పర్యవేక్షించడం. ఇది ఇలాంటి పని చేస్తుంది.
మన దగ్గర ఉంది పబ్లిక్ కాంపోనెంట్ రిపోజిటరీలు — బయట కొన్ని సాధనాలు మరియు మా అంతర్గత రిపోజిటరీ. ఇది విశ్వసనీయమైన భాగాలను మాత్రమే కలిగి ఉండాలని మేము కోరుకుంటున్నాము. అభ్యర్థనను ప్రాక్సీ చేస్తున్నప్పుడు, డౌన్లోడ్ చేయబడిన లైబ్రరీకి హాని లేదని మేము తనిఖీ చేస్తాము. ఇది మేము సెట్ చేసిన మరియు తప్పనిసరిగా డెవలప్మెంట్తో సమన్వయం చేసుకునే నిర్దిష్ట విధానాల పరిధిలోకి వస్తే, మేము దానిని అప్లోడ్ చేయము మరియు మరొక సంస్కరణను ఉపయోగించమని ప్రాంప్ట్ చేయబడతాము. దీని ప్రకారం, లైబ్రరీలో నిజంగా క్లిష్టమైన మరియు చెడు ఏదైనా ఉంటే, డెవలపర్ ఇన్స్టాలేషన్ దశలో లైబ్రరీని అందుకోరు - అతను ఎక్కువ లేదా తక్కువ సంస్కరణను ఉపయోగించనివ్వండి.
నిర్మించేటప్పుడు, ఎవరూ చెడుగా జారిపోలేదని, అన్ని భాగాలు సురక్షితంగా ఉన్నాయని మరియు ఫ్లాష్ డ్రైవ్లో ఎవరూ ప్రమాదకరమైన వాటిని తీసుకురాలేదని మేము తనిఖీ చేస్తాము.
మేము రిపోజిటరీలో విశ్వసనీయ భాగాలు మాత్రమే కలిగి ఉన్నాము.
అమలు చేస్తున్నప్పుడు, మేము ప్యాకేజీని మరోసారి తనిఖీ చేస్తాము: వార్, జార్, DL లేదా డాకర్ ఇమేజ్ పాలసీకి అనుగుణంగా ఉందని నిర్ధారించుకోవడానికి.
పరిశ్రమలోకి ప్రవేశించేటప్పుడు, పారిశ్రామిక వాతావరణంలో ఏమి జరుగుతుందో మేము పర్యవేక్షిస్తాము: క్లిష్టమైన దుర్బలత్వాలు కనిపిస్తాయి లేదా కనిపించవు.
డైనమిక్ విశ్లేషణ - DAST
డైనమిక్ విశ్లేషణ సాధనాలు ఇంతకు ముందు చెప్పిన ప్రతిదానికీ ప్రాథమికంగా భిన్నంగా ఉంటాయి. ఇది అప్లికేషన్తో వినియోగదారు పనిని అనుకరించడం. ఇది వెబ్ అప్లికేషన్ అయితే, మేము అభ్యర్థనలను పంపుతాము, క్లయింట్ యొక్క పనిని అనుకరిస్తూ, ముందు బటన్లపై క్లిక్ చేయండి, ఫారమ్ నుండి కృత్రిమ డేటాను పంపుతాము: కోట్లు, బ్రాకెట్లు, వివిధ ఎన్కోడింగ్లలోని అక్షరాలు, అప్లికేషన్ ఎలా పనిచేస్తుందో మరియు ప్రాసెస్ చేస్తుందో చూడటానికి బాహ్య డేటా.
అదే సిస్టమ్ ఓపెన్ సోర్స్లో టెంప్లేట్ దుర్బలత్వాలను తనిఖీ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. మేము ఏ ఓపెన్ సోర్స్ని ఉపయోగిస్తున్నామో DASTకి తెలియదు కాబట్టి, ఇది కేవలం “హానికరమైన” నమూనాలను విసిరి సర్వర్ ప్రతిస్పందనలను విశ్లేషిస్తుంది:
- అవును, ఇక్కడ డీరియలైజేషన్ సమస్య ఉంది, కానీ ఇక్కడ కాదు.
ఇందులో పెద్ద ప్రమాదాలు ఉన్నాయి, ఎందుకంటే మీరు పరీక్షకులు పనిచేసే అదే బెంచ్లో ఈ భద్రతా పరీక్షను నిర్వహిస్తే, అసహ్యకరమైన విషయాలు జరగవచ్చు.
అప్లికేషన్ సర్వర్ నెట్వర్క్లో అధిక లోడ్.
ఏకీకరణలు లేవు.
విశ్లేషించబడిన అప్లికేషన్ యొక్క సెట్టింగులను మార్చగల సామర్థ్యం.
అవసరమైన సాంకేతికతలకు మద్దతు లేదు.
కష్టం ఏర్పాటు.
మేము చివరకు AppScanని ప్రారంభించినప్పుడు మాకు ఒక పరిస్థితి ఉంది: మేము అప్లికేషన్ను యాక్సెస్ చేయడానికి చాలా కాలం పాటు ప్రయత్నించాము, 3 ఖాతాలను పొందాము మరియు సంతోషంగా ఉన్నాము - మేము చివరకు ప్రతిదీ తనిఖీ చేస్తాము! మేము స్కాన్ని ప్రారంభించాము మరియు AppScan చేసిన మొదటి పని అడ్మిన్ ప్యానెల్లోకి వెళ్లి, అన్ని బటన్లను కుట్టడం, డేటాలో సగం మార్చడం, ఆపై దానితో సర్వర్ను పూర్తిగా చంపడం మెయిల్ ఫారమ్- అభ్యర్థనలు. పరీక్షతో అభివృద్ధి చెప్పారు:
- గైస్, మీరు నన్ను తమాషా చేస్తున్నారా?! మేము మీకు ఖాతాలను అందించాము మరియు మీరు స్టాండ్ని సెటప్ చేసారు!
సాధ్యమయ్యే ప్రమాదాలను పరిగణించండి. ఆదర్శవంతంగా, సమాచార భద్రతను పరీక్షించడం కోసం ప్రత్యేక స్టాండ్ను సిద్ధం చేయండి, ఇది మిగిలిన పర్యావరణం నుండి కనీసం ఏదో ఒకవిధంగా వేరుచేయబడుతుంది మరియు షరతులతో అడ్మిన్ ప్యానెల్ను తనిఖీ చేయండి, ప్రాధాన్యంగా మాన్యువల్ మోడ్లో. ఇది పెంటెస్ట్ - మేము ఇప్పుడు పరిగణించని ప్రయత్నంలో మిగిలిన శాతాలు.
మీరు దీన్ని లోడ్ టెస్టింగ్ యొక్క అనలాగ్గా ఉపయోగించవచ్చని పరిగణనలోకి తీసుకోవడం విలువ. మొదటి దశలో, మీరు 10-15 థ్రెడ్లతో డైనమిక్ స్కానర్ను ఆన్ చేయవచ్చు మరియు ఏమి జరుగుతుందో చూడవచ్చు, కానీ సాధారణంగా, ఆచరణలో చూపినట్లుగా, ఏమీ మంచిది కాదు.
మేము సాధారణంగా ఉపయోగించే కొన్ని వనరులు.
హైలైట్ చేయడం విలువ బర్ప్ సూట్ ఏదైనా భద్రతా నిపుణుల కోసం "స్విస్ కత్తి". ప్రతి ఒక్కరూ దీన్ని ఉపయోగిస్తున్నారు మరియు ఇది చాలా సౌకర్యవంతంగా ఉంటుంది. ఎంటర్ప్రైజ్ ఎడిషన్ యొక్క కొత్త డెమో వెర్షన్ ఇప్పుడు విడుదల చేయబడింది. ఇంతకుముందు ఇది ప్లగిన్లతో ఒక స్టాండ్ ఎలోన్ యుటిలిటీ అయితే, ఇప్పుడు డెవలపర్లు చివరకు పెద్ద సర్వర్ను తయారు చేస్తున్నారు, దాని నుండి అనేక ఏజెంట్లను నిర్వహించడం సాధ్యమవుతుంది. ఇది బాగుంది, మీరు దీన్ని ప్రయత్నించమని నేను సిఫార్సు చేస్తున్నాను.
ప్రక్రియ ఏకీకరణ
ఇంటిగ్రేషన్ చాలా బాగా మరియు సరళంగా జరుగుతుంది: విజయవంతమైన సంస్థాపన తర్వాత స్కానింగ్ ప్రారంభించండి స్టాండ్ కోసం అప్లికేషన్లు మరియు విజయవంతమైన ఇంటిగ్రేషన్ పరీక్ష తర్వాత స్కానింగ్.
ఇంటిగ్రేషన్లు పని చేయకుంటే లేదా స్టబ్లు మరియు మాక్ ఫంక్షన్లు ఉంటే, అది అర్ధంలేనిది మరియు పనికిరానిది - మనం ఏ నమూనాను పంపినా, సర్వర్ ఇప్పటికీ అదే విధంగా ప్రతిస్పందిస్తుంది.
ఆదర్శవంతంగా, ప్రత్యేక టెస్టింగ్ స్టాండ్.
పరీక్షించే ముందు, లాగిన్ క్రమాన్ని వ్రాయండి.
పరిపాలన వ్యవస్థ యొక్క పరీక్ష మాన్యువల్ మాత్రమే.
ప్రక్రియ
సాధారణంగా ప్రక్రియ గురించి మరియు ప్రత్యేకంగా ప్రతి సాధనం యొక్క పని గురించి కొంచెం సాధారణీకరించబడింది. అన్ని అప్లికేషన్లు విభిన్నంగా ఉంటాయి - ఒకటి డైనమిక్ అనాలిసిస్తో మెరుగ్గా పనిచేస్తుంది, మరొకటి స్టాటిక్ అనాలిసిస్తో, మూడోది ఓపెన్సోర్స్ విశ్లేషణతో, పెంటెస్ట్లతో లేదా మరేదైనా మొత్తంగా, ఉదాహరణకు, ఈవెంట్లతో Waf.
ప్రతి ప్రక్రియకు నియంత్రణ అవసరం.
ప్రాసెస్ ఎలా పని చేస్తుందో మరియు ఎక్కడ మెరుగుపరచబడుతుందో అర్థం చేసుకోవడానికి, మీరు ఉత్పత్తి కొలమానాలు, సాధనాల నుండి కొలమానాలు మరియు లోపం ట్రాకర్లతో సహా మీరు పొందగలిగే ప్రతిదాని నుండి కొలమానాలను సేకరించాలి.
ఏదైనా సమాచారం ఉపయోగకరంగా ఉంటుంది. ఈ లేదా ఆ సాధనం ఎక్కడ బాగా ఉపయోగించబడుతుందో వివిధ కోణాల నుండి చూడటం అవసరం, ఇక్కడ ప్రక్రియ ప్రత్యేకంగా కుంగిపోతుంది. సమయం ఆధారంగా ప్రక్రియను ఎక్కడ మెరుగుపరచాలో చూడటానికి అభివృద్ధి ప్రతిస్పందన సమయాలను చూడటం విలువైనదే కావచ్చు. ఎక్కువ డేటా, ప్రతి ప్రక్రియ యొక్క వివరాలకు ఉన్నత స్థాయి నుండి మరిన్ని విభాగాలు నిర్మించబడతాయి.
అన్ని స్టాటిక్ మరియు డైనమిక్ ఎనలైజర్లు వాటి స్వంత APIలను కలిగి ఉన్నందున, వాటి స్వంత ప్రయోగ పద్ధతులు, సూత్రాలు, కొన్ని షెడ్యూలర్లను కలిగి ఉంటాయి, మరికొన్నింటిని కలిగి ఉండవు - మేము ఒక సాధనాన్ని వ్రాస్తున్నాము AppSec ఆర్కెస్ట్రేటర్, ఇది ఉత్పత్తి నుండి మొత్తం ప్రక్రియలో ఒకే ఎంట్రీ పాయింట్ని సృష్టించడానికి మరియు దానిని ఒక పాయింట్ నుండి నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది.
మేనేజర్లు, డెవలపర్లు మరియు సెక్యూరిటీ ఇంజనీర్లు ఒక ఎంట్రీ పాయింట్ను కలిగి ఉంటారు, దీని నుండి వారు ఏమి రన్ అవుతున్నారో చూడగలరు, స్కాన్ను కాన్ఫిగర్ చేసి రన్ చేయగలరు, స్కాన్ ఫలితాలను స్వీకరించగలరు మరియు అవసరాలను సమర్పించగలరు. మేము వ్రాతపని నుండి దూరంగా వెళ్లడానికి ప్రయత్నిస్తున్నాము, ఇది అభివృద్ధి ద్వారా ఉపయోగించబడుతుంది - స్థితి మరియు కొలమానాలతో సంగమంలోని పేజీలు, జిరాలో లోపాలు లేదా వివిధ లోపం ట్రాకర్లు లేదా CIలో సమకాలీకరణ/అసమకాలిక ప్రక్రియలో ఏకీకరణ. /CD.
కీ టేకావేస్
సాధనాలు ప్రధాన విషయం కాదు. మొదట ప్రక్రియ ద్వారా ఆలోచించండి - ఆపై సాధనాలను అమలు చేయండి. సాధనాలు మంచివి కానీ ఖరీదైనవి, కాబట్టి మీరు ప్రక్రియతో ప్రారంభించవచ్చు మరియు అభివృద్ధి మరియు భద్రత మధ్య కమ్యూనికేషన్ మరియు అవగాహనను పెంచుకోవచ్చు. భద్రతా కోణం నుండి, ప్రతిదానిని "ఆపివేయడం" అవసరం లేదు. అభివృద్ధి కోణం నుండి, ఏదైనా అధిక మెగా సూపర్ క్రిటికల్ ఉంటే, దాన్ని తొలగించాల్సిన అవసరం ఉంది మరియు సమస్యపై కళ్ళుమూసుకోకూడదు.
ఉత్పత్తి నాణ్యత- ఉమ్మడి లక్ష్యం భద్రత మరియు అభివృద్ధి రెండూ. మేము ఒక పని చేస్తాము, ప్రతిదీ సరిగ్గా పని చేస్తుందని మరియు ఎటువంటి కీర్తి నష్టాలు లేదా ఆర్థిక నష్టాలు లేవని నిర్ధారించుకోవడానికి మేము ప్రయత్నిస్తాము. అందుకే మేము కమ్యూనికేషన్ను మెరుగుపరచడానికి మరియు ఉత్పత్తి నాణ్యతను మెరుగుపరచడానికి DevSecOps, SecDevOps విధానాన్ని ప్రచారం చేస్తాము.
మీరు ఇప్పటికే కలిగి ఉన్న దానితో ప్రారంభించండి: అవసరాలు, ఆర్కిటెక్చర్, పాక్షిక తనిఖీలు, శిక్షణలు, మార్గదర్శకాలు. అన్ని ప్రాజెక్ట్లకు అన్ని పద్ధతులను వెంటనే వర్తింపజేయవలసిన అవసరం లేదు - పునరావృతంగా తరలించండి. ఒకే ప్రమాణం లేదు - ప్రయోగం మరియు విభిన్న విధానాలు మరియు పరిష్కారాలను ప్రయత్నించండి.
సమాచార భద్రత లోపాలు మరియు క్రియాత్మక లోపాల మధ్య సమాన సంకేతం ఉంది.
ప్రతిదీ ఆటోమేట్ చేయండిఅని కదులుతుంది. ఏది కదలదు, దానిని తరలించి ఆటోమేట్ చేయండి. ఏదైనా చేతితో చేస్తే, అది ప్రక్రియలో మంచి భాగం కాదు. బహుశా దీన్ని సమీక్షించడం మరియు ఆటోమేట్ చేయడం కూడా విలువైనదే కావచ్చు.
IS జట్టు పరిమాణం తక్కువగా ఉంటే - సెక్యూరిటీ ఛాంపియన్లను ఉపయోగించండి.
బహుశా నేను మాట్లాడినది మీకు సరిపోకపోవచ్చు మరియు మీరు మీ స్వంతదానితో ముందుకు వస్తారు - మరియు అది మంచిది. కానీ మీ ప్రక్రియ కోసం అవసరాల ఆధారంగా సాధనాలను ఎంచుకోండి. ఈ సాధనం చెడ్డది, ఇది మంచిది అని సంఘం చెప్పేది చూడకండి. బహుశా మీ ఉత్పత్తికి వ్యతిరేకం నిజం కావచ్చు.
సాధనాల కోసం అవసరాలు.
తక్కువ స్థాయి ఫాల్స్ పాజిటివ్.
తగినంత విశ్లేషణ సమయం.
వాడుకలో తేలిక.
ఏకీకరణల లభ్యత.
ఉత్పత్తి అభివృద్ధి రోడ్మ్యాప్ను అర్థం చేసుకోవడం.
సాధనాలను అనుకూలీకరించే అవకాశం.
యూరి యొక్క నివేదిక DevOpsConf 2018లో ఉత్తమమైన వాటిలో ఒకటిగా ఎంపిక చేయబడింది. మరింత ఆసక్తికరమైన ఆలోచనలు మరియు ఆచరణాత్మక కేసులతో పరిచయం పొందడానికి, మే 27 మరియు 28 తేదీలలో Skolkovoకి రండి DevOpsConf లోపల పండుగ RIT++. ఇంకా మంచిది, మీరు మీ అనుభవాన్ని పంచుకోవడానికి సిద్ధంగా ఉంటే, అప్పుడు దరఖాస్తు ఏప్రిల్ 21 వరకు నివేదిక కోసం.