క్లౌడ్ అంశాలపై మా మునుపటి విషయాలలో, మేము
WAF అంటే ఏమిటి
75% కంటే ఎక్కువ హ్యాకర్ దాడులు వెబ్ అప్లికేషన్లు మరియు వెబ్సైట్ల దుర్బలత్వాలను లక్ష్యంగా చేసుకున్నాయి: ఇటువంటి దాడులు సాధారణంగా సమాచార భద్రతా మౌలిక సదుపాయాలు మరియు సమాచార భద్రతా సేవలకు కనిపించవు. వెబ్ అప్లికేషన్లలోని దుర్బలత్వాలు వినియోగదారు ఖాతాలు మరియు వ్యక్తిగత డేటా, పాస్వర్డ్లు మరియు క్రెడిట్ కార్డ్ నంబర్ల రాజీ మరియు మోసానికి సంబంధించిన ప్రమాదాలను కలిగి ఉంటాయి. అదనంగా, వెబ్సైట్లోని దుర్బలత్వాలు కార్పొరేట్ నెట్వర్క్లోకి దాడి చేసేవారికి ఎంట్రీ పాయింట్గా ఉపయోగపడతాయి.
వెబ్ అప్లికేషన్ ఫైర్వాల్ (WAF) అనేది వెబ్ అప్లికేషన్లపై దాడులను నిరోధించే రక్షిత స్క్రీన్: SQL ఇంజెక్షన్, క్రాస్-సైట్ స్క్రిప్టింగ్, రిమోట్ కోడ్ ఎగ్జిక్యూషన్, బ్రూట్ ఫోర్స్ మరియు ఆథరైజేషన్ బైపాస్. జీరో-డే దుర్బలత్వాలను ఉపయోగించుకునే దాడులతో సహా. అప్లికేషన్ ఫైర్వాల్లు HTML, DHTML మరియు CSSతో సహా వెబ్ పేజీ కంటెంట్ను పర్యవేక్షించడం ద్వారా మరియు హానికరమైన HTTP/HTTPS అభ్యర్థనలను ఫిల్టర్ చేయడం ద్వారా రక్షణను అందిస్తాయి.
మొదటి నిర్ణయాలు ఏమిటి?
వెబ్ అప్లికేషన్ ఫైర్వాల్ను రూపొందించడానికి మొదటి ప్రయత్నాలు 90ల ప్రారంభంలో జరిగాయి. కనీసం ముగ్గురు ఇంజనీర్లు ఈ రంగంలో పనిచేసినట్లు తెలిసింది. మొదటిది పర్డ్యూ యూనివర్సిటీకి చెందిన కంప్యూటర్ సైన్స్ ప్రొఫెసర్ జీన్ స్పాఫోర్డ్. అతను ప్రాక్సీ అప్లికేషన్ ఫైర్వాల్ యొక్క నిర్మాణాన్ని వివరించాడు మరియు దానిని 1991లో పుస్తకంలో ప్రచురించాడు
బెల్ ల్యాబ్స్కు చెందిన సమాచార భద్రతా నిపుణులు విలియం చెస్విక్ మరియు మార్కస్ రనమ్ రెండవ మరియు మూడవవారు. వారు మొదటి అప్లికేషన్ ఫైర్వాల్ ప్రోటోటైప్లలో ఒకదాన్ని అభివృద్ధి చేశారు. ఇది DEC ద్వారా పంపిణీ చేయబడింది - ఉత్పత్తి SEAL (సెక్యూర్ ఎక్స్టర్నల్ యాక్సెస్ లింక్) పేరుతో విడుదల చేయబడింది.
కానీ SEAL పూర్తి స్థాయి WAF పరిష్కారం కాదు. ఇది అధునాతన కార్యాచరణతో కూడిన క్లాసిక్ నెట్వర్క్ ఫైర్వాల్ - FTP మరియు RSHపై దాడులను నిరోధించే సామర్థ్యం. ఈ కారణంగా, ఈ రోజు మొదటి WAF పరిష్కారం పర్ఫెక్టో టెక్నాలజీస్ (తరువాత శాంక్టమ్) యొక్క ఉత్పత్తిగా పరిగణించబడుతుంది. 1999లో ఆమె
AppShield అదే సమయంలో (2002లో), మొదటి ఓపెన్ సోర్స్ WAF కనిపించింది. అతడు అయ్యాడు
ఫలితంగా, డెవలపర్లు తమ లక్ష్యాన్ని సాధించగలిగారు - కొత్త WAF పరిష్కారాలు మార్కెట్లో కనిపించడం ప్రారంభించాయి, వీటిలో మోడ్సెక్యూరిటీ ఆధారంగా నిర్మించబడ్డాయి.
మూడు తరాలు ఇప్పటికే చరిత్ర
సాంకేతికత అభివృద్ధితో అభివృద్ధి చెందిన మూడు తరాల WAF వ్యవస్థలను వేరు చేయడం ఆచారం.
మొదటి తరం. సాధారణ వ్యక్తీకరణలతో (లేదా వ్యాకరణాలు) పని చేస్తుంది. ఇందులో మోడ్సెక్యూరిటీ కూడా ఉంది. సిస్టమ్ ప్రొవైడర్ అప్లికేషన్లపై దాడుల రకాలను అధ్యయనం చేస్తుంది మరియు చట్టబద్ధమైన మరియు హానికరమైన అభ్యర్థనలను వివరించే నమూనాలను రూపొందిస్తుంది. WAF ఈ జాబితాలను తనిఖీ చేస్తుంది మరియు నిర్దిష్ట పరిస్థితిలో ఏమి చేయాలో నిర్ణయిస్తుంది - ట్రాఫిక్ను నిరోధించాలా వద్దా.
సాధారణ వ్యక్తీకరణల ఆధారంగా గుర్తించే ఉదాహరణ ఇప్పటికే పేర్కొన్న ప్రాజెక్ట్
సాధారణ వ్యక్తీకరణలు కూడా చాలా ఎక్కువ తప్పుడు సానుకూల రేటును కలిగి ఉంటాయి. ప్రసిద్ధ భాషా శాస్త్రవేత్త నోమ్ చోమ్స్కీ వ్యాకరణాల వర్గీకరణను ప్రతిపాదించాడు, అందులో అతను వాటిని నాలుగు షరతులతో కూడిన సంక్లిష్టత స్థాయిలుగా విభజించాడు. ఈ వర్గీకరణ ప్రకారం, సాధారణ వ్యక్తీకరణలు నమూనా నుండి వ్యత్యాసాలను కలిగి ఉండని ఫైర్వాల్ నియమాలను మాత్రమే వివరించగలవు. దాడి చేసేవారు మొదటి తరం WAFని సులభంగా "ఫూల్" చేయగలరని దీని అర్థం. హానికరమైన డేటా యొక్క లాజిక్ను ప్రభావితం చేయని, కానీ సంతకం నియమాన్ని ఉల్లంఘించే అప్లికేషన్ అభ్యర్థనలకు ప్రత్యేక అక్షరాలను జోడించడం దీనిని ఎదుర్కోవడానికి ఒక పద్ధతి.
రెండవ తరం. WAFల పనితీరు మరియు ఖచ్చితత్వ సమస్యలను అధిగమించడానికి, రెండవ తరం అప్లికేషన్ ఫైర్వాల్లు అభివృద్ధి చేయబడ్డాయి. వారు ఇప్పుడు ఖచ్చితంగా నిర్వచించబడిన దాడుల రకాలను (HTML, JS, మొదలైనవి) గుర్తించడానికి బాధ్యత వహించే పార్సర్లను కలిగి ఉన్నారు. ఈ పార్సర్లు ప్రశ్నలను వివరించే ప్రత్యేక టోకెన్లతో పని చేస్తాయి (ఉదాహరణకు, వేరియబుల్, స్ట్రింగ్, తెలియని, సంఖ్య). సంభావ్య హానికరమైన టోకెన్ సీక్వెన్సులు ప్రత్యేక జాబితాలో ఉంచబడతాయి, WAF వ్యవస్థ క్రమం తప్పకుండా తనిఖీ చేస్తుంది. ఈ విధానం మొదటిసారిగా బ్లాక్ హ్యాట్ 2012 సమావేశంలో C/C++ రూపంలో చూపబడింది
మొదటి తరం WAFలతో పోలిస్తే, ప్రత్యేక పార్సర్లు వేగంగా ఉంటాయి. అయినప్పటికీ, కొత్త హానికరమైన దాడులు కనిపించినప్పుడు సిస్టమ్ను మాన్యువల్గా కాన్ఫిగర్ చేయడంలో ఉన్న ఇబ్బందులను వారు పరిష్కరించలేదు.
మూడవ తరం. మూడవ తరం డిటెక్షన్ లాజిక్లోని పరిణామం మెషీన్ లెర్నింగ్ మెథడ్స్ని ఉపయోగించడాన్ని కలిగి ఉంటుంది, ఇది డిటెక్షన్ వ్యాకరణాన్ని రక్షిత సిస్టమ్ల యొక్క నిజమైన SQL/HTML/JS వ్యాకరణానికి వీలైనంత దగ్గరగా తీసుకురావడం సాధ్యం చేస్తుంది. ఈ డిటెక్షన్ లాజిక్ ట్యూరింగ్ మెషీన్ను పునరావృతంగా లెక్కించదగిన వ్యాకరణాలను కవర్ చేయడానికి స్వీకరించగలదు. అంతేకాకుండా, గతంలో నాడీ ట్యూరింగ్ యంత్రాల యొక్క మొదటి అధ్యయనాలు ప్రచురించబడే వరకు అనుకూల ట్యూరింగ్ యంత్రాన్ని సృష్టించే పని పరిష్కరించబడలేదు.
మెషిన్ లెర్నింగ్ అనేది మొదటి తరం గుర్తింపులో అవసరమైన విధంగా మాన్యువల్గా సంతకం జాబితాలను సృష్టించకుండా మరియు Memcached, Redis, Cassandra, SSRF ఇంజెక్షన్ల వంటి కొత్త అటాక్ రకాల కోసం కొత్త టోకెనైజర్లు/పార్సర్లను అభివృద్ధి చేయకుండా, ఏ రకమైన దాడినైనా కవర్ చేయడానికి ఏదైనా వ్యాకరణాన్ని స్వీకరించే ప్రత్యేక సామర్థ్యాన్ని అందిస్తుంది. , రెండవ తరం పద్దతి ప్రకారం అవసరం.
డిటెక్షన్ లాజిక్ యొక్క మూడు తరాలను కలపడం ద్వారా, మేము ఒక కొత్త రేఖాచిత్రాన్ని గీయవచ్చు, దీనిలో మూడవ తరం గుర్తింపును ఎరుపు రంగు రూపురేఖలు సూచిస్తాయి (మూర్తి 3). ఈ తరంలో వెబ్ అప్లికేషన్ల అనుకూల రక్షణ కోసం ప్లాట్ఫారమ్ డెవలపర్ మరియు Wallarm API డెవలపర్ అయిన Onsekతో కలిసి మేము క్లౌడ్లో అమలు చేస్తున్న పరిష్కారాలలో ఒకటి.
డిటెక్షన్ లాజిక్ ఇప్పుడు అప్లికేషన్ నుండి ఫీడ్బ్యాక్ను స్వీయ-ట్యూన్ చేయడానికి ఉపయోగిస్తుంది. మెషిన్ లెర్నింగ్లో, ఈ ఫీడ్బ్యాక్ లూప్ను “బలోపేతము” అంటారు. సాధారణంగా, అటువంటి ఉపబలంలో ఒకటి లేదా అంతకంటే ఎక్కువ రకాలు ఉన్నాయి:
- అప్లికేషన్ ప్రతిస్పందన ప్రవర్తన యొక్క విశ్లేషణ (నిష్క్రియ)
- స్కాన్/ఫజర్ (యాక్టివ్)
- ఫైల్లు/ఇంటర్సెప్టర్ విధానాలు/ట్రాప్లను నివేదించండి (వాస్తవం తర్వాత)
- మాన్యువల్ (సూపర్వైజర్ ద్వారా నిర్వచించబడింది)
ఫలితంగా, మూడవ తరం గుర్తింపు తర్కం ఖచ్చితత్వం యొక్క ముఖ్యమైన సమస్యను కూడా పరిష్కరిస్తుంది. తప్పుడు పాజిటివ్లు మరియు తప్పుడు ప్రతికూలతలను నివారించడం మాత్రమే కాకుండా, కంట్రోల్ ప్యానెల్లో SQL కమాండ్ ఎలిమెంట్ వినియోగాన్ని గుర్తించడం, వెబ్ పేజీ టెంప్లేట్ లోడ్ చేయడం, జావాస్క్రిప్ట్ ఎర్రర్లకు సంబంధించిన AJAX అభ్యర్థనలు మరియు ఇతరాలు వంటి చెల్లుబాటు అయ్యే నిజమైన ప్రతికూలతలను గుర్తించడం కూడా ఇప్పుడు సాధ్యమవుతుంది.
తరువాత, మేము వివిధ WAF అమలు ఎంపికల యొక్క సాంకేతిక సామర్థ్యాలను పరిశీలిస్తాము.
హార్డ్వేర్, సాఫ్ట్వేర్ లేదా క్లౌడ్ - ఏది ఎంచుకోవాలి?
అప్లికేషన్ ఫైర్వాల్లను అమలు చేయడానికి ఎంపికలలో ఒకటి హార్డ్వేర్ పరిష్కారం. ఇటువంటి వ్యవస్థలు ఒక సంస్థ తన డేటా సెంటర్లో స్థానికంగా ఇన్స్టాల్ చేసే ప్రత్యేకమైన కంప్యూటింగ్ పరికరాలు. కానీ ఈ సందర్భంలో, మీరు మీ స్వంత పరికరాలను కొనుగోలు చేయాలి మరియు దాన్ని సెటప్ చేయడానికి మరియు డీబగ్ చేయడానికి ఇంటిగ్రేటర్లకు డబ్బు చెల్లించాలి (కంపెనీకి దాని స్వంత IT విభాగం లేకపోతే). అదే సమయంలో, ఏదైనా పరికరం పాతది మరియు నిరుపయోగంగా మారుతుంది, కాబట్టి వినియోగదారులు హార్డ్వేర్ అప్గ్రేడ్ల కోసం బలవంతంగా బడ్జెట్ను కేటాయించవలసి వస్తుంది.
WAFని అమలు చేయడానికి మరొక ఎంపిక సాఫ్ట్వేర్ అమలు. పరిష్కారం కొన్ని సాఫ్ట్వేర్లకు యాడ్-ఆన్గా ఇన్స్టాల్ చేయబడింది (ఉదాహరణకు, ModSecurity Apache పైన కాన్ఫిగర్ చేయబడింది) మరియు దానితో అదే సర్వర్లో నడుస్తుంది. నియమం ప్రకారం, అటువంటి పరిష్కారాలను భౌతిక సర్వర్లో మరియు క్లౌడ్లో అమలు చేయవచ్చు. వారి ప్రతికూలత పరిమిత స్కేలబిలిటీ మరియు విక్రేత మద్దతు.
మూడవ ఎంపిక క్లౌడ్ నుండి WAFని సెటప్ చేయడం. ఇటువంటి పరిష్కారాలను క్లౌడ్ ప్రొవైడర్లు సబ్స్క్రిప్షన్ సేవగా అందిస్తారు. కంపెనీ ప్రత్యేక హార్డ్వేర్ను కొనుగోలు చేయడం మరియు కాన్ఫిగర్ చేయడం అవసరం లేదు; ఈ పనులు సర్వీస్ ప్రొవైడర్ భుజాలపై పడతాయి. ఒక ముఖ్యమైన విషయం ఏమిటంటే, ఆధునిక క్లౌడ్ WAF ప్రొవైడర్ ప్లాట్ఫారమ్కు వనరులను తరలించడాన్ని సూచించదు. సైట్ను ఎక్కడైనా, ఆవరణలో కూడా అమర్చవచ్చు.
ప్రజలు ఇప్పుడు క్లౌడ్ WAF వైపు ఎందుకు ఎక్కువగా చూస్తున్నారో మేము మరింత వివరిస్తాము.
క్లౌడ్లో WAF ఏమి చేయగలదు
సాంకేతిక సామర్థ్యాల పరంగా:
- నవీకరణలకు ప్రొవైడర్ బాధ్యత వహిస్తాడు. WAF సబ్స్క్రిప్షన్ ద్వారా అందించబడుతుంది, కాబట్టి సర్వీస్ ప్రొవైడర్ అప్డేట్లు మరియు లైసెన్స్ల ఔచిత్యాన్ని పర్యవేక్షిస్తుంది. అప్డేట్లు సాఫ్ట్వేర్కు మాత్రమే కాకుండా హార్డ్వేర్కు కూడా సంబంధించినవి. ప్రొవైడర్ సర్వర్ పార్క్ను అప్గ్రేడ్ చేసి, దానిని నిర్వహిస్తారు. ఇది లోడ్ బ్యాలెన్సింగ్ మరియు రిడెండెన్సీకి కూడా బాధ్యత వహిస్తుంది. WAF సర్వర్ విఫలమైతే, ట్రాఫిక్ వెంటనే మరొక యంత్రానికి దారి మళ్లించబడుతుంది. ట్రాఫిక్ యొక్క హేతుబద్ధమైన పంపిణీ ఫైర్వాల్ విఫలమైన ఓపెన్ మోడ్లోకి ప్రవేశించినప్పుడు పరిస్థితులను నివారించడానికి మిమ్మల్ని అనుమతిస్తుంది - ఇది లోడ్ను భరించదు మరియు అభ్యర్థనలను ఫిల్టర్ చేయడం ఆపివేస్తుంది.
- వర్చువల్ ప్యాచింగ్. డెవలపర్ దుర్బలత్వాన్ని మూసివేసే వరకు వర్చువల్ ప్యాచ్లు అప్లికేషన్ యొక్క రాజీపడిన భాగాలకు యాక్సెస్ను నియంత్రిస్తాయి. ఫలితంగా, క్లౌడ్ ప్రొవైడర్ యొక్క కస్టమర్ ఈ లేదా ఆ సాఫ్ట్వేర్ యొక్క సరఫరాదారు అధికారిక “ప్యాచ్లను” ప్రచురించే వరకు ప్రశాంతంగా వేచి ఉండే అవకాశాన్ని పొందుతాడు. వీలైనంత త్వరగా దీన్ని చేయడం సాఫ్ట్వేర్ సరఫరాదారుకి ప్రాధాన్యత. ఉదాహరణకు, Wallarm ప్లాట్ఫారమ్లో, వర్చువల్ ప్యాచింగ్కు ప్రత్యేక సాఫ్ట్వేర్ మాడ్యూల్ బాధ్యత వహిస్తుంది. హానికరమైన అభ్యర్థనలను నిరోధించడానికి నిర్వాహకుడు అనుకూల సాధారణ వ్యక్తీకరణలను జోడించవచ్చు. సిస్టమ్ కొన్ని అభ్యర్థనలను "కాన్ఫిడెన్షియల్ డేటా" ఫ్లాగ్తో గుర్తించడాన్ని సాధ్యం చేస్తుంది. అప్పుడు వారి పారామితులు ముసుగు చేయబడతాయి మరియు ఎటువంటి పరిస్థితుల్లోనూ అవి ఫైర్వాల్ పని ప్రాంతం వెలుపల ప్రసారం చేయబడవు.
- అంతర్నిర్మిత చుట్టుకొలత మరియు దుర్బలత్వ స్కానర్. DNS ప్రశ్నలు మరియు WHOIS ప్రోటోకాల్ నుండి డేటాను ఉపయోగించి IT అవస్థాపన యొక్క నెట్వర్క్ సరిహద్దులను స్వతంత్రంగా నిర్ణయించడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది. తర్వాత, చుట్టుకొలత లోపల నడుస్తున్న సేవలను WAF స్వయంచాలకంగా విశ్లేషిస్తుంది (పోర్ట్ స్కానింగ్ చేస్తుంది). SQLi, XSS, XXE, మొదలైనవి - మరియు సాఫ్ట్వేర్ కాన్ఫిగరేషన్లో లోపాలను గుర్తించడం, ఉదాహరణకు, Git మరియు BitBucket రిపోజిటరీలకు అనధికారిక యాక్సెస్ మరియు Elasticsearch, Redis, MongoDBకి అనామక కాల్లు వంటి అన్ని సాధారణ రకాల దుర్బలత్వాలను ఫైర్వాల్ గుర్తించగలదు.
- దాడులు క్లౌడ్ వనరుల ద్వారా పర్యవేక్షించబడతాయి. నియమం ప్రకారం, క్లౌడ్ ప్రొవైడర్లు పెద్ద మొత్తంలో కంప్యూటింగ్ శక్తిని కలిగి ఉంటారు. ఇది అధిక ఖచ్చితత్వం మరియు వేగంతో బెదిరింపులను విశ్లేషించడానికి మిమ్మల్ని అనుమతిస్తుంది. ఫిల్టర్ నోడ్ల క్లస్టర్ క్లౌడ్లో అమర్చబడి ఉంటుంది, దీని ద్వారా ట్రాఫిక్ మొత్తం వెళుతుంది. ఈ నోడ్లు వెబ్ అప్లికేషన్లపై దాడులను నిరోధించి, గణాంకాలను విశ్లేషణ కేంద్రానికి పంపుతాయి. ఇది అన్ని రక్షిత అప్లికేషన్ల కోసం నిరోధించే నియమాలను నవీకరించడానికి మెషిన్ లెర్నింగ్ అల్గారిథమ్లను ఉపయోగిస్తుంది. అటువంటి పథకం యొక్క అమలు అంజీర్లో చూపబడింది. 4. ఇటువంటి రూపొందించిన భద్రతా నియమాలు తప్పుడు ఫైర్వాల్ అలారంల సంఖ్యను తగ్గిస్తాయి.
సంస్థాగత సమస్యలు మరియు నిర్వహణ పరంగా క్లౌడ్ WAFల లక్షణాల గురించి ఇప్పుడు కొంచెం:
- OpExకి మార్పు. క్లౌడ్ WAFల విషయంలో, అన్ని హార్డ్వేర్ మరియు లైసెన్స్లు ఇప్పటికే ప్రొవైడర్ ద్వారా చెల్లించబడినందున, అమలు ఖర్చు సున్నా అవుతుంది; సేవ కోసం చెల్లింపు చందా ద్వారా చేయబడుతుంది.
- విభిన్న టారిఫ్ ప్లాన్లు. క్లౌడ్ సేవ వినియోగదారు అదనపు ఎంపికలను త్వరగా ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు. విధులు ఒకే నియంత్రణ ప్యానెల్ నుండి నిర్వహించబడతాయి, ఇది కూడా సురక్షితమైనది. ఇది HTTPS ద్వారా యాక్సెస్ చేయబడుతుంది, అంతేకాకుండా TOTP (టైమ్-బేస్డ్ వన్-టైమ్ పాస్వర్డ్ అల్గారిథమ్) ప్రోటోకాల్ ఆధారంగా రెండు-కారకాల ప్రమాణీకరణ విధానం ఉంది.
- DNS ద్వారా కనెక్షన్. మీరు DNSని మీరే మార్చుకోవచ్చు మరియు నెట్వర్క్ రూటింగ్ని కాన్ఫిగర్ చేయవచ్చు. ఈ సమస్యలను పరిష్కరించడానికి వ్యక్తిగత నిపుణులను నియమించడం మరియు శిక్షణ ఇవ్వడం అవసరం లేదు. నియమం ప్రకారం, ప్రొవైడర్ యొక్క సాంకేతిక మద్దతు సెటప్లో సహాయపడుతుంది.
WAF సాంకేతికతలు సాధారణ ఫైర్వాల్ల నుండి మెషిన్ లెర్నింగ్ అల్గారిథమ్లతో సంక్లిష్ట రక్షణ వ్యవస్థల వరకు అభివృద్ధి చెందాయి. అప్లికేషన్ ఫైర్వాల్లు ఇప్పుడు 90లలో అమలు చేయడం కష్టంగా ఉన్న అనేక రకాల ఫీచర్లను అందిస్తోంది. అనేక విధాలుగా, క్లౌడ్ టెక్నాలజీల కారణంగా కొత్త కార్యాచరణ యొక్క ఆవిర్భావం సాధ్యమైంది. WAF పరిష్కారాలు మరియు వాటి భాగాలు అభివృద్ధి చెందుతూనే ఉన్నాయి. సమాచార భద్రతకు సంబంధించిన ఇతర రంగాల మాదిరిగానే.
క్లౌడ్ ప్రొవైడర్ #CloudMTSలో ఇన్ఫర్మేషన్ సెక్యూరిటీ ప్రొడక్ట్ డెవలప్మెంట్ మేనేజర్ అలెగ్జాండర్ కర్పూజికోవ్ ఈ టెక్స్ట్ని సిద్ధం చేశారు.
మూలం: www.habr.com