Daily Cyber Incidents · 18 October 2026
ConnectWise Cloud Backup (SkyKick) breach: one stolen vendor app secret, hundreds of Microsoft 365 tenants
On 15 October 2026, someone signed in to customer Microsoft 365 tenants as the ConnectWise Cloud Backup app itself (earlier called SkyKick), using the app's own secret credential. Huntress saw sign-in activity in almost 1,000 tenants, and more than 300 sign-ins succeeded. No person was signing in, so MFA never came into the picture. How the attacker got the vendor's credential is not public yet.
Quick facts
- What: a stolen vendor app secret used to get Microsoft Graph tokens in many customer tenants.
- When: sign-ins on 15 October 2026; ConnectWise advisory on 16 October, updated 18 October.
- Scale: Huntress confirmed unauthorised sign-ins in 173 tenants it protects; later, more than 300 successful sign-ins out of almost 1,000 tenants.
- Response: ConnectWise disabled seven app identities on 17 October and suspended the backup service.
- Backups: ConnectWise says it has no evidence the stored backup archives were accessed.
- Still unknown: how the credential was stolen, and how much data was read.
The full story (English, मराठी, हिंदी)
Pick your language. The story, the defence steps and the checklist are the same in all three.
ConnectWise Cloud Backup (SkyKick): the full story
1. What happened
ConnectWise Cloud Backup (earlier called SkyKick) is a backup service that managed service providers (MSPs) use to back up their clients' Microsoft 365 mail, OneDrive, SharePoint and Teams data. To do that job, every client gives the backup app broad read and write permission in its Microsoft 365 tenant.
- On 15 October 2026, someone signed in to customer tenants as the backup app itself, using the app's own secret credential, and received Microsoft Graph access tokens.
- Huntress confirmed unauthorised sign-ins in 173 tenants it protects. Its later update said almost 1,000 Microsoft tenants saw sign-in activity from the attacker's server, and more than 300 of those sign-ins succeeded.
- Microsoft Threat Intelligence called it an active supply-chain attack. It said the attacker likely abused permissions customers had already given the app, including the very powerful
Directory.ReadWrite.All. - ConnectWise published an advisory on 16 October, disabled seven of its app identities on 17 October and suspended the backup service. It said it has no evidence the stored backup archives were accessed.
- The reports do not yet say how the attacker got the vendor's credential, and how much data was read is still unclear. Educational framing only.
2. How the hack happened (public reporting only – high-level)
- When a company connects the backup app, Microsoft Entra ID creates an app identity (service principal) for it inside that company's tenant, with the permissions the admin approved once.
- The app proves who it is with a secret or certificate kept in the vendor's own environment. The same credential works in every tenant where the app is installed, so one stolen credential opens many companies at once.
- A script signed in as the app to tenant after tenant, a few seconds apart. This is an app-only sign-in: no user and no phone, so MFA never comes into the picture.
- The tokens carried the app's existing rights – read and write mail, files, Teams chats and directory data. Microsoft also saw Graph reconnaissance and attempts to add extra credentials as a backdoor.
- In about 50 tenants, ConnectWise Cloud Management apps gave themselves admin roles, mostly Exchange Administrator. In one tenant, a Cloud Management app made itself Global Administrator and added new secrets to two other trusted apps – an MSP management tool and Huntress's own security app. A secret added like this keeps working even after the vendor app is switched off. Huntress has not yet confirmed whether this earlier activity was the same operator.
- It was hard to see: these sign-ins show only on the separate Service principal sign-ins tab, not the default user sign-ins tab, and directory reads through Microsoft Graph leave no audit trail.
3. How to stop it / defend (lesson 30.2: IAM done right)
- Least privilege applies to apps and vendors too. Before you approve a third-party app, read the permissions it asks for. Ask the vendor why it needs directory write rights or admin roles.
- Remove apps you no longer use. ConnectWise asked partners to check even tenants with dormant SkyKick connections. An old, forgotten app with big permissions is an open door.
- MFA does not protect app identities. Protect them with the controls built for them: Conditional Access for workload identities (allow sign-in only from the vendor's expected locations), app management policies that block or shorten client secrets, and very few people holding the Application Administrator roles.
- The same idea in AWS: give a vendor an IAM role with an External ID and a narrow policy, never long-lived access keys. Watch CloudTrail for a vendor role that creates access keys or attaches policies to itself, and use IAM Access Analyzer to list everything shared outside your account.
- Alert on these events: an app adding itself to a directory role, an app changing other apps, or new credentials appearing on an app (SOC and SIEM, Chapter 31).
- During an incident: disable the vendor app (don't delete it), save the sign-in and audit logs early because they are kept only for a limited time, and remember that tokens already issued stay valid until they expire. Revoking user sessions does not stop app access.
4. How to take care so it won't happen again (checklist)
- If you use ConnectWise Cloud Backup or Cloud Management (or older SkyKick apps), follow the ConnectWise advisory: keep the listed apps disabled until ConnectWise gives restore steps, and check service principal sign-ins from 13 October 2026 onwards.
- Review the secrets and certificates on all your apps and remove any you did not create.
- Remove any directory role you never meant to give an app.
- Keep a list of every third-party app in your tenant or AWS account, its owner, its permissions and when it was last used.
- Turn on alerts for app role changes and new app credentials.
- Plan for a backup vendor outage: know how you would restore if the backup service is suddenly suspended.
ConnectWise Cloud Backup (SkyKick): पूर्ण गोष्ट
1. काय झालं
ConnectWise Cloud Backup (आधीचं नाव SkyKick) ही एक backup service आहे. Managed service providers (MSPs) ती त्यांच्या clients च्या Microsoft 365 मधल्या mail, OneDrive, SharePoint आणि Teams data चा backup घ्यायला वापरतात. हे काम करण्यासाठी प्रत्येक client आपल्या Microsoft 365 tenant मध्ये backup app ला मोठी read आणि write permission देतो.
- 15 ऑक्टोबर 2026 ला कुणीतरी app च्याच secret credential ने, स्वतः backup app बनून, customers च्या tenants मध्ये sign in केलं आणि Microsoft Graph चे access tokens मिळवले.
- Huntress ने ते सांभाळत असलेल्या 173 tenants मध्ये बिना परवानगीचे sign-ins झाल्याचं नक्की केलं. नंतरच्या update मध्ये सांगितलं की जवळपास 1,000 Microsoft tenants मध्ये attacker च्या server वरून sign-in चे प्रयत्न दिसले, आणि त्यातले 300 पेक्षा जास्त यशस्वी झाले.
- Microsoft Threat Intelligence ने याला चालू असलेला supply-chain attack म्हटलं. त्यांच्या मते attacker ने customers नी app ला आधीच दिलेल्या permissions चा गैरवापर केला, त्यात खूप ताकदवान
Directory.ReadWrite.Allपण आहे. - ConnectWise ने 16 ऑक्टोबर ला advisory काढली, 17 ऑक्टोबर ला आपल्या सात app identities बंद केल्या आणि backup service थांबवली. त्यांच्या मते साठवलेले backup archives उघडले गेल्याचा पुरावा नाही.
- Attacker ला vendor चं credential कसं मिळालं, हे reports मध्ये अजून सांगितलेलं नाही, आणि किती data वाचला गेला हे पण अजून स्पष्ट नाही. हे फक्त शिकण्यासाठी आहे.
2. Hack कसा झाला (फक्त public reporting – high-level)
- कंपनी backup app जोडते तेव्हा Microsoft Entra ID त्या कंपनीच्या tenant मध्ये त्या app साठी एक app identity (service principal) बनवतं, admin ने एकदाच मंजूर केलेल्या permissions सकट.
- App आपण कोण आहोत हे vendor च्या स्वतःच्या environment मध्ये ठेवलेल्या secret किंवा certificate ने सिद्ध करतं. तेच credential app बसवलेल्या प्रत्येक tenant मध्ये चालतं, म्हणजे एक चोरलेलं credential एकदम अनेक कंपन्यांची दारं उघडतं.
- एका script ने app बनून एकामागून एक tenants मध्ये, काही सेकंदांच्या अंतराने, sign in केलं. हे app-only sign-in आहे: कोणी माणूस नाही, phone नाही, म्हणून MFA चा प्रश्नच येत नाही.
- Tokens मध्ये app चे आधीचे सगळे हक्क होते – mail, files, Teams chats आणि directory data वाचणं आणि बदलणं. Microsoft ला Graph reconnaissance आणि backdoor म्हणून जास्तीचे credentials जोडायचे प्रयत्न पण दिसले.
- जवळपास 50 tenants मध्ये ConnectWise च्या Cloud Management apps नी स्वतःलाच admin roles दिले, बहुतेक Exchange Administrator. एका tenant मध्ये तर एका Cloud Management app ने स्वतःला Global Administrator बनवलं आणि दुसऱ्या दोन विश्वासातल्या apps वर नवीन secrets जोडले – एक MSP management tool आणि Huntress चं स्वतःचं security app. असं जोडलेलं secret vendor चं app बंद केलं तरी चालू राहतं. ही आधीची हालचाल त्याच माणसाची होती का, हे Huntress ने अजून नक्की केलेलं नाही.
- हे दिसायला अवघड होतं: हे sign-ins नेहमीच्या user sign-ins tab वर नाही, तर वेगळ्या Service principal sign-ins tab वरच दिसतात, आणि Microsoft Graph मधून directory वाचलं तर त्याचा audit trail राहत नाही.
3. कसं थांबवायचं / बचाव (lesson 30.2: IAM done right)
- Least privilege हा apps आणि vendors ना पण लागू आहे. Third-party app ला मंजुरी देण्याआधी ते कोणत्या permissions मागतंय ते नीट वाचा. Directory write rights किंवा admin roles का हवेत, हे vendor ला विचारा.
- न वापरलेली apps काढून टाका. ConnectWise ने partners ना बंद पडलेल्या (dormant) SkyKick connections असलेले tenants पण check करायला सांगितलं. मोठ्या permissions असलेलं जुनं, विसरलेलं app म्हणजे उघडं दार.
- MFA app identities ना वाचवत नाही. त्यांच्यासाठी बनवलेले controls वापरा: workload identities साठी Conditional Access (vendor च्या ठरलेल्या जागांवरूनच sign-in), client secrets बंद किंवा कमी मुदतीचे करणाऱ्या app management policies, आणि Application Administrator roles फार कमी लोकांकडे.
- AWS मध्ये पण हीच कल्पना: vendor ला External ID आणि छोटी policy असलेला IAM role द्या, जास्त दिवस चालणाऱ्या access keys कधीच नाहीत. Vendor role ने access keys बनवल्या किंवा स्वतःला policies लावल्या तर CloudTrail मध्ये लक्ष ठेवा, आणि account बाहेर share झालेलं सगळं IAM Access Analyzer ने बघा.
- या घटनांवर alert लावा: app ने स्वतःला directory role दिला, app ने दुसरी apps बदलली, किंवा app वर नवीन credentials आले (SOC आणि SIEM, Chapter 31).
- Incident चालू असताना: vendor app disable करा (delete नाही), sign-in आणि audit logs लवकर जपून ठेवा कारण ते ठराविक काळच राहतात, आणि लक्षात ठेवा की आधी दिलेले tokens संपेपर्यंत चालत राहतात. User sessions revoke केले तरी app access थांबत नाही.
4. परत असं होऊ नये म्हणून काय काळजी घ्यायची (checklist)
- तुम्ही ConnectWise Cloud Backup किंवा Cloud Management (किंवा जुनी SkyKick apps) वापरत असाल, तर ConnectWise ची advisory पाळा: ConnectWise restore च्या steps देईपर्यंत दिलेली apps बंदच ठेवा, आणि 13 ऑक्टोबर 2026 पासूनचे service principal sign-ins check करा.
- तुमच्या सगळ्या apps वरचे secrets आणि certificates बघा आणि तुम्ही न बनवलेले काढून टाका.
- तुम्ही मुद्दाम न दिलेला कोणताही directory role app कडून काढून घ्या.
- तुमच्या tenant किंवा AWS account मधल्या प्रत्येक third-party app ची list ठेवा – त्याचा owner, permissions आणि शेवटचा वापर कधी झाला.
- App roles बदलले किंवा app वर नवीन credentials आले की alert येईल असं करा.
- Backup vendor अचानक बंद पडला तर काय, याचा plan ठेवा: backup service थांबली तर restore कसं करणार ते आधीच ठरवा.
ConnectWise Cloud Backup (SkyKick): पूरी कहानी
1. क्या हुआ
ConnectWise Cloud Backup (पहले का नाम SkyKick) एक backup service है. Managed service providers (MSPs) इसे अपने clients के Microsoft 365 के mail, OneDrive, SharePoint और Teams data का backup लेने के लिए इस्तेमाल करते हैं. यह काम करने के लिए हर client अपने Microsoft 365 tenant में backup app को बड़ी read और write permission देता है.
- 15 अक्टूबर 2026 को किसी ने app के अपने secret credential से, ख़ुद backup app बनकर, customers के tenants में sign in किया और Microsoft Graph के access tokens ले लिए.
- Huntress ने अपने संभाले हुए 173 tenants में बिना इजाज़त के sign-ins की पुष्टि की. बाद के update में उसने बताया कि लगभग 1,000 Microsoft tenants में attacker के server से sign-in की कोशिशें दिखीं, और उनमें से 300 से ज़्यादा सफल रहीं.
- Microsoft Threat Intelligence ने इसे चल रहा supply-chain attack कहा. उसके मुताबिक़ attacker ने उन permissions का ग़लत इस्तेमाल किया जो customers ने app को पहले से दे रखी थीं, जिनमें बहुत ताक़तवर
Directory.ReadWrite.Allभी है. - ConnectWise ने 16 अक्टूबर को advisory जारी की, 17 अक्टूबर को अपनी सात app identities बंद कीं और backup service रोक दी. उसके मुताबिक़ रखे हुए backup archives खोले जाने का कोई सबूत नहीं है.
- Attacker को vendor का credential कैसे मिला, यह reports में अभी नहीं बताया गया, और कितना data पढ़ा गया यह भी अभी साफ़ नहीं है. यह सिर्फ़ सीखने के लिए है.
2. Hack कैसे हुआ (सिर्फ़ public reporting – high-level)
- जब कोई कंपनी backup app जोड़ती है, तो Microsoft Entra ID उस कंपनी के tenant में उस app के लिए एक app identity (service principal) बनाता है, admin की एक बार मंज़ूर की गई permissions के साथ.
- App अपनी पहचान vendor के अपने environment में रखे secret या certificate से साबित करता है. वही credential हर उस tenant में चलता है जहाँ app लगा है, यानी एक चोरी हुआ credential एक साथ कई कंपनियों के दरवाज़े खोल देता है.
- एक script ने app बनकर एक के बाद एक tenants में, कुछ सेकंड के फ़ासले पर, sign in किया. यह app-only sign-in है: कोई इंसान नहीं, कोई phone नहीं, इसलिए MFA का सवाल ही नहीं उठता.
- Tokens में app के पहले के सारे हक़ थे – mail, files, Teams chats और directory data पढ़ना और बदलना. Microsoft को Graph reconnaissance और backdoor के तौर पर अतिरिक्त credentials जोड़ने की कोशिशें भी दिखीं.
- लगभग 50 tenants में ConnectWise के Cloud Management apps ने ख़ुद को ही admin roles दे दिए, ज़्यादातर Exchange Administrator. एक tenant में तो एक Cloud Management app ने ख़ुद को Global Administrator बनाया और दो दूसरे भरोसेमंद apps पर नए secrets जोड़ दिए – एक MSP management tool और Huntress का अपना security app. ऐसे जोड़ा गया secret vendor का app बंद करने के बाद भी चलता रहता है. यह पहले वाली हरकत उसी operator की थी या नहीं, Huntress ने अभी इसकी पुष्टि नहीं की है.
- इसे देखना मुश्किल था: ये sign-ins सामान्य user sign-ins tab पर नहीं, बल्कि अलग Service principal sign-ins tab पर ही दिखते हैं, और Microsoft Graph से directory पढ़ने पर कोई audit trail नहीं बचता.
3. कैसे रोकें / बचाव (lesson 30.2: IAM done right)
- Least privilege apps और vendors पर भी लागू होता है. किसी third-party app को मंज़ूरी देने से पहले देखो कि वह कौन सी permissions माँग रहा है. Vendor से पूछो कि उसे directory write rights या admin roles क्यों चाहिए.
- जो apps इस्तेमाल नहीं होते, उन्हें हटा दो. ConnectWise ने partners से बंद पड़े (dormant) SkyKick connections वाले tenants भी check करने को कहा. बड़ी permissions वाला पुराना, भूला हुआ app मतलब खुला दरवाज़ा.
- MFA app identities को नहीं बचाता. उनके लिए बने controls इस्तेमाल करो: workload identities के लिए Conditional Access (सिर्फ़ vendor की तय जगहों से sign-in), client secrets को बंद या कम मियाद वाला करने वाली app management policies, और Application Administrator roles बहुत कम लोगों के पास.
- AWS में भी यही सोच: vendor को External ID और छोटी policy वाला IAM role दो, लंबे समय तक चलने वाली access keys कभी नहीं. Vendor role access keys बनाए या ख़ुद पर policies लगाए तो CloudTrail में नज़र रखो, और account के बाहर share हुई हर चीज़ IAM Access Analyzer से देखो.
- इन घटनाओं पर alert लगाओ: app ने ख़ुद को directory role दिया, app ने दूसरे apps बदले, या app पर नए credentials आए (SOC और SIEM, Chapter 31).
- Incident के दौरान: vendor app को disable करो (delete नहीं), sign-in और audit logs जल्दी संभालकर रखो क्योंकि वे सीमित समय तक ही रहते हैं, और याद रखो कि पहले से जारी tokens ख़त्म होने तक चलते रहते हैं. User sessions revoke करने से app access नहीं रुकता.
4. दोबारा ऐसा न हो, इसके लिए क्या ध्यान रखें (checklist)
- अगर आप ConnectWise Cloud Backup या Cloud Management (या पुराने SkyKick apps) इस्तेमाल करते हो, तो ConnectWise की advisory मानो: जब तक ConnectWise restore के steps न दे, बताए गए apps बंद ही रखो, और 13 अक्टूबर 2026 से आगे के service principal sign-ins check करो.
- अपने सारे apps पर लगे secrets और certificates देखो और जो आपने नहीं बनाए उन्हें हटा दो.
- जो directory role आपने जानबूझकर नहीं दिया, उसे app से वापस ले लो.
- अपने tenant या AWS account के हर third-party app की list रखो – उसका owner, permissions और आख़िरी बार कब इस्तेमाल हुआ.
- App roles बदलें या app पर नए credentials आएँ तो alert आए, ऐसा इंतज़ाम करो.
- Backup vendor अचानक बंद हो जाए तो क्या, इसका plan रखो: backup service रुक जाए तो restore कैसे करोगे, यह पहले से तय करो.
Why MFA did not help
Think of two kinds of sign-in:
| Sign-in type | Who signs in | How it proves itself | Does MFA apply? |
|---|---|---|---|
| User sign-in | A person (e.g. an employee) | Password + phone prompt or OTP | Yes |
| App-only sign-in | An app (service principal) | A client secret or certificate | No |
The backup app used app-only sign-in, the same way the real backup service does. Anyone holding that secret looks like the app. That is why the defence is about app permissions, app secrets and app sign-in logs, not MFA.
The AWS angle: how to give a vendor access safely
The same risk exists in AWS when you let an outside company (a backup, monitoring or cost tool) into your account. Do it like this:
- Create an IAM role for the vendor. Never create an IAM user with long-lived access keys for them.
- In the role's trust policy, allow only the vendor's AWS account, and require an External ID that the vendor gives you.
- Attach a narrow policy: only the actions and resources the tool really needs.
- Watch CloudTrail for that role doing things it should never do, such as
CreateAccessKey,AttachRolePolicy,PutRolePolicyorUpdateAssumeRolePolicy. - Use IAM Access Analyzer to list every role and resource shared outside your account, and remove what you don't recognise.
- When you stop using the vendor, delete the role. A forgotten role is like a dormant SkyKick connection.
Example trust policy (the account ID and External ID are placeholders):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::111122223333:root" },
"Action": "sts:AssumeRole",
"Condition": { "StringEquals": { "sts:ExternalId": "vendor-given-external-id" } }
}]
}
Learn this properly in lesson 30.2 IAM Done Right.
Summary
| Question | Answer |
|---|---|
| What was stolen? | The backup app's own secret credential |
| How was it used? | App-only sign-ins to many Microsoft 365 tenants |
| Why no MFA? | No person signs in, so MFA does not apply |
| Main defence | Least privilege for apps, few app secrets, alerts on app changes |
| During an incident | Disable the app (don't delete), save logs, check all app secrets |
| AWS version | IAM role + External ID, CloudTrail alerts, IAM Access Analyzer |
| Still unknown | How the credential was stolen, how much data was read |
Quick quiz: check what you learned
How did the attacker sign in to the tenants?
- As the backup app, using its secret
- As an admin, using a phished password
- As a guest, using a shared Teams link
- As a user, using a stolen phone OTP
Show answer
A. It was an app-only sign-in with the vendor app's own credential.
Why did MFA not stop these sign-ins?
- No person signs in, so no MFA prompt
- The attacker had stolen every phone
- Microsoft had switched MFA off that day
- MFA only works for Google accounts
Show answer
A. App identities prove themselves with a secret or certificate, not MFA.
During an incident, what should you do with the vendor app?
- Disable it, keep it, and save the logs
- Delete it at once and clear all logs
- Leave it on and reset user passwords
- Give it more roles to finish backups
Show answer
A. Disable (don't delete) and preserve sign-in and audit logs early.
In AWS, what is the safer way to give a vendor access?
- IAM role with External ID, narrow policy
- Root user password sent over email
- Long-lived access keys for an admin user
- A public S3 bucket shared with the vendor
Show answer
A. A role with an External ID and least privilege, never long-lived keys.
Sources
- Huntress, Jonathan Semon: "ConnectWise (SkyKick) Vendor Credentials Abused in M365 Attacks", 16 October 2026 (updated 17 October 2026)
- BleepingComputer, Ionut Ilascu: "Hackers breach Microsoft 365 tenants via ConnectWise supply-chain attack", 17 October 2026
- The Hacker News, Ravie Lakshmanan: "Hackers Use Compromised ConnectWise Credential to Sign In to 173 Microsoft 365 Tenants", 17 October 2026 (quoting Microsoft Threat Intelligence and Todyl)
- ConnectWise Trust Center advisory: "Cloud Backup (formerly known as SkyKick) Service Interruption", first published 16 October 2026, updated 18 October 2026
This page is a defensive, educational summary of public reporting. It does not include attack tools, IP addresses or app IDs.
Learn it properly
These pages go deeper: