האם חוויתי מתקפה Office 365

העולם נחלק לשניים, אלה שחוו מתקפה בעבר ואלה שיחוו מתקפה בעתיד. מה הסטטוס שלך?

Image result for there are two types of companies those who have been hacked fbi

המשפט הזה שנמצא איתנו משנת 2012 עדיין נכון לימינו ותקף להמון ארגונים, בנוסף לכך בתוך המשפט של those that have been hacked מסתתר לו מסר קטן, ארגונים שאינם יודעים או בטוחים שלא שהותקפו.

לחוות אירוע אבטחה אינו אומר שארגון צריך להיות מושבת, אלא יכול להיות משהו נקודתי, למשל אירוע אבטחה ברמת משתמש בודד שחווה גניבת זהויות וכן הלאה.

אז איך יודעים האם הארגון חווה מתקפה, איך יודעים שאין מישהו אשר מסתתר לו באיזה תחנת קצה רדומה ומחכה לזמן המתאים? האם המערכות בארגון מספיק אמינות? ומה עושים בענן? ישנם דרכים שונות המפאשרות בדיקה האם החשבון היה חלק מתוך מתקפה כלשהיא, ובכדי לבדוק האם חווית מתקפה כלשהיא או האם היית חלק ממנה ניתן לעיתים לבדוק גם ללא המערכות הארגוניות.

האם חוותי מתקפה בשירות Office 365

בכדי לבדוק האם חווית מתקפה כלשהיא או האם ישנו משתמש קצה אשר היה שייך למתקפה, ניתן לבדוק באמצעות PowerShell Script ובאמצעות מאגר הנתונים של Have I been Pwned.

קצת רקע על Have I been Pwned, מאגר הנתונים Have I been Pwned המאפשר בדיקה של חשבונות אשר הותקפו באירועי אבטחה שונים בעולם מבוסס על בסיס נתונים עצום ומכיל בין היתר:

  • 5 מיליארד חשבונות
  • 2 מיליון חשבונות מייל אקטיבים
  • 300 אירועי אבטחה ידועים
  • מכיל בסביבות 300 מיליון סיסמאות (כאלה שנאספו)

איסוף המידע נעשה בכל יום מול אלפי בסיסי נתונים שונים (database dumps) וכן מול אתרי pastes למינהם המכילים מידע עצום (מידע אשר נשמר ברובו על plain text) של חשבונות אשר נפרצו ולעיתים חלקם מפורסמים עם הסיסמה.

האיסוף האוטומטי נעשה ע"י Dump Monitor אשר בודק באמצעות Twitter Bot מסדי נתונים אשר מכילים מידע לגבי חשבונות שנפרצו.

איך זה מתחבר לחשבונות Office 365? מכיוון שישנו API למאגר הנתונים של Have I been Pwned הוא מאפשר גישה מתוך API של Office 365 ובאמצעות כך לבדוק האם ישנם כתובות דואר של Office 365 אשר נמצאים במאגר הנתונים. כלומר נפרצו בעבר או היו חלק מתוך מתקפה כלשהיא.

2019-01-09_00h32_05.png

איך בודקים?

בכדי לבצע בדיקה יש להריץ את הסקריפט הבא עם משתמש בעל הרשאות נמוכות לקריאה בלבד

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Connect-MsolService
$headers = @{
"User-Agent" = "$((Get-MsolCompanyInformation).DisplayName) Office 365 Account Check"
"api-version" = 2
}
$baseUri = "https://haveibeenpwned.com/api"
$users = Get-msoluser -All
foreach ($user in $users) {
$emails = $user.proxyaddresses | Where-Object {$_ -match "smtp:" -and $_ -notmatch ".onmicrosoft1.com"}
$emails | ForEach-Object {
$email = ($_ -split ":")[1]
$uriEncodeEmail = [uri]::EscapeDataString($email)
$uri = "$baseUri/breachedaccount/$uriEncodeEmail"
$breachResult = $null
try {
[array]$breachResult = Invoke-RestMethod -Uri $uri -Headers $headers -ErrorAction SilentlyContinue
}
catch {
if($error[0].Exception.response.StatusCode -match "NotFound"){
Write-Host "No Breach detected for your company $email" -ForegroundColor Green
}else{
Write-Host "Cannot retrieve results due to rate limiting or suspect IP. You may need to try again from different workstation"
}
}
if ($breachResult) {
foreach ($breach in $breachResult) {
$breachObject = [ordered]@{
Email = $email
UserPrincipalName = $user.UserPrincipalName
LastPasswordChange = $user.LastPasswordChangeTimestamp
BreachName = $breach.Name
BreachTitle = $breach.Title
BreachDate = $breach.BreachDate
BreachAdded = $breach.AddedDate
BreachDescription = $breach.Description
BreachDataClasses = ($breach.dataclasses -join ", ")
IsVerified = $breach.IsVerified
IsFabricated = $breach.IsFabricated
IsActive = $breach.IsActive
IsRetired = $breach.IsRetired
IsSpamList = $breach.IsSpamList
}
$breachObject = New-Object PSobject -Property $breachObject
$breachObject | Export-csv D:\temp\Office365BreachedAccounts.csv -NoTypeInformation -Append
Write-Host "Breach detected for $email – $($breach.name)" -ForegroundColor Yellow
Write-Host $breach.description -ForegroundColor DarkYellow
}
}
Start-sleep -Milliseconds 2000
}
}

בסיום הרצת הסקריפט נקבל את הפלט הבא, במידה וחווית מתקפה הפלט יכלול מידע לגבי סוג המתקפה וימוקר באדום

2019-01-09_00h27_20.png

וכאן עולה השאלה המתבקשת? האם בטוח להריץ את הסקריפט מול מאגר הנתונים של Have I been Pwned? עד כה לא ידוע על מקרים שבהם נסרקו סיסמאות של חשבונות אשר ביצעו בדיקה, אך יחד עם זאת באינטרנט אנו לא סומכים על אף אחד ולכן מריצים עם חשבונות בעל הרשאות נמוכות בלבד.

שאלות לגבי חשבונות וסיסמאות שעמם מבצעים בדיקה ומידע נוסף באתר have i been pwned

You may also like...

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *