Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Defender for Storage mendukung berbagai cara untuk menangani file berbahaya. Pilih opsi remediasi yang sesuai dengan skenario Anda:
- Kemampuan remediasi bawaan
- Alur kerja otomatis untuk memindahkan atau menghapus file berbahaya
- Alur kerja otomatis untuk memindahkan atau menyerap file bersih ke tujuan lain
Dengan menggunakan pemindaian malware, Anda dapat membangun remediasi otomatis dengan menggunakan opsi hasil pemindaian ini:
- Defender untuk Cloud pemberitahuan keamanan
- Peristiwa Event Grid
- Indeks tag blob
Tip
Untuk menjelajahi pemindaian malware di Defender untuk Storage, coba lab interaktif. Modul pelatihan Ninja memberikan instruksi langkah demi langkah untuk:
- Menyiapkan pemindaian malware
- Menguji fitur secara ujung ke ujung
- Menyiapkan respons remediasi
Lab ini adalah bagian dari seri pelatihan Pertahanan Microsoft untuk Cloud dan memberikan pengalaman praktis dengan fitur keamanan.
Opsi remediasi untuk deteksi malware
Remediasi malware otomatis bawaan untuk blob berbahaya
Defender for Storage Malware Protection memiliki kemampuan bawaan yang menyederhanakan dan mengotomatiskan proses remediasi untuk blob berbahaya, sehingga Anda mengurangi risiko distribusi malware. Ketika Defender for Storage mendeteksi blob berbahaya selama pemindaian malware on-upload atau sesuai permintaan, ia secara otomatis memulai penghapusan sementara untuk mengkarantina blob dengan aman dan membuatnya dapat dipulihkan untuk analisis lebih lanjut.
Jika Anda belum mengaktifkan penghapusan sementara untuk blob di akun penyimpanan, Defender for Storage akan mengaktifkannya ketika Anda mengaktifkan fitur penghapusan sementara untuk blob berbahaya. Fitur soft delete blob berbahaya mengurangi langkah pengaturan dan langsung meningkatkan respons keamanan.
Skenario penggunaan
Remediasi distribusi malware secara otomatis dengan:
- Penghapusan sementara blob untuk mencegah akses
- Mempertahankan blob untuk penyelidikan dan pemulihan
- Menghapus kebutuhan akan otomatisasi eksternal atau langkah manual
Biarkan admin keamanan atau analis SOC menjaga penyimpanan tetap bersih dengan upaya manual minimal
Memungkinkan organisasi dengan cepat memperbaiki ancaman tanpa alur kerja yang kompleks
Catatan fitur
Penghapusan lembut untuk blob berbahaya hanya berfungsi pada blob berbahaya. Ini nonaktif secara default.
Anda dapat mengaktifkan penghapusan lunak untuk blob berbahaya di tingkat langganan atau akun penyimpanan.
Saat Anda melakukan hapus lunak pada blob, blob tetap berada di kontainer blob yang sama. Anda dapat memulihkan blob dalam periode retensi. Untuk informasi selengkapnya, lihat Penghapusan sementara untuk blob.
Jika Anda mengaktifkan Penerapan Versi untuk Blob di akun penyimpanan Anda, lihat Mengelola dan memulihkan penghapusan sementara untuk blob untuk mempelajari cara memulihkan blob yang dihapus sementara.
Blob yang terdeteksi sebagai berbahaya dan dihapus sementara akan selalu ditandai dengan tag indeks. Jika Anda telah memilih untuk tidak menyimpan hasil pemindaian dalam tag indeks, tag ini akan dihapus setelah memulihkan blob yang dihapus sementara.
Periode retensi default adalah tujuh hari jika Anda mengaktifkan fitur penghapusan sementara blob berbahaya, tetapi Anda dapat mengubahnya (rentang: 1–365 hari). Anda dapat mengubah periode retensi default di pengaturan akun penyimpanan Anda.
Jika Anda menonaktifkan pengaturan properti penghapusan sementara di akun penyimpanan setelah mengaktifkannya, blob berbahaya tidak akan dihapus. Dalam hal ini, Defender for Storage tidak mengaktifkan kembali penghapusan sementara, dan membuat peringatan.
Penghapusan dapat gagal karena kesalahan konfigurasi atau izin yang hilang. Pemberitahuan menunjukkan alasan kegagalan tersebut.
Penyimpanan blob yang dihapus sementara selama periode retensi memiliki biaya yang sama dengan data aktif. Untuk informasi selengkapnya, lihat Penghapusan sementara untuk blob.
Jika Anda memulihkan blob, Azure menghitungnya sebagai transaksi tulis. Untuk informasi selengkapnya, lihat Memetakan setiap operasi REST ke harga.
Menyiapkan remediasi kustom untuk blob berbahaya
Anda dapat mengotomatisasi remediasi dengan memblokir akses ke file yang belum dipindai atau berbahaya, menghapus atau memindahkan blob berbahaya, atau mengarahkan file bersih berdasarkan hasil pemindaian:
Memblokir akses ke file yang tidak dipindai atau berbahaya dengan menggunakan ABAC (kontrol akses berbasis atribut)
Dengan menggunakan otorisasi kontrol akses berbasis Atribut Microsoft Entra (ABAC), Anda dapat memblokir akses ke file berbahaya dan tidak dipindai. Anda dapat mengatur akses bersyarat ke blob berdasarkan hasil pemindaian, dan memungkinkan aplikasi serta pengguna mengakses hanya file yang dipindai yang bersih.
Untuk mengatur otorisasi ABAC untuk akses blob berdasarkan hasil pemindaian, ikuti instruksi dalam walkthrough pengaturan ABAC untuk kontrol akses blob berbasis pemindaian (video).
Menghapus atau memindahkan blob berbahaya
Gunakan otomatisasi kode atau alur kerja untuk menghapus atau memindahkan file berbahaya ke karantina.
Menyiapkan lingkungan Anda untuk menghapus atau memindahkan
Hapus file berbahaya - Sebelum menyiapkan penghapusan otomatis, aktifkan penghapusan sementara di akun penyimpanan. Ini memungkinkan Anda untuk "membatalkan penghapusan" file jika ada positif palsu atau dalam kasus di mana profesional keamanan ingin menyelidiki file berbahaya.
Pindahkan file berbahaya ke karantina - Pindahkan file ke kontainer penyimpanan khusus atau akun penyimpanan yang dianggap sebagai "karantina". Anda mungkin hanya ingin pengguna tertentu, seperti admin keamanan atau analis SOC, memiliki izin untuk mengakses kontainer khusus atau akun penyimpanan ini.
- Menggunakan ID Microsoft Entra untuk mengontrol akses ke penyimpanan blob adalah praktik terbaik. Untuk mengontrol akses ke kontainer penyimpanan karantina khusus, Anda dapat menggunakan penetapan peran tingkat kontainer menggunakan kontrol akses berbasis peran (RBAC) Microsoft Entra. Pengguna dengan izin tingkat akun penyimpanan mungkin masih dapat mengakses kontainer "karantina". Anda dapat mengedit izin mereka menjadi tingkat kontainer atau memilih pendekatan yang berbeda dan memindahkan file berbahaya ke akun penyimpanan khusus.
- Jika Anda harus menggunakan metode lain, seperti token SAS (tanda tangan akses bersama) pada akun penyimpanan yang dilindungi, pindahkan file berbahaya ke akun penyimpanan lain (karantina). Kemudian, berikan izin Microsoft Entra untuk mengakses akun penyimpanan yang dikarantina.
Menyiapkan otomatisasi
Opsi 1: Aplikasi Logika berdasarkan peringatan keamanan Microsoft Defender untuk Cloud
Respons berbasis Logic App adalah pendekatan sederhana tanpa kode untuk mengatur respons remediasi otomatis. Namun, waktu respons lebih lambat dibandingkan aplikasi Function yang berbasis event berbasis event Grid event.
Sebarkan templat DeleteBlobLogicApp Azure Resource Manager (ARM) dengan menggunakan portal Microsoft Azure.
Pilih Aplikasi Logika yang telah Anda terapkan.
Untuk mengizinkan Aplikasi Logika menghapus blob dari akun penyimpanan Anda, tambahkan penetapan peran:
Masuk ke Identitas di menu samping dan pilih Penugasan peran Azure.
Tambahkan penetapan peran di tingkat langganan dengan peran Kontributor Data Blob Penyimpanan.
Buat otomatisasi alur kerja untuk pemberitahuan Microsoft Defender untuk Cloud:
- Buka Microsoft Defender untuk Cloud di portal Azure.
- Pergi ke Otomatisasi Alur Kerja di menu samping.
- Tambahkan alur kerja baru: Di bidang Nama pemberitahuan berisi, isi File berbahaya yang diunggah ke akun penyimpanan dan pilih aplikasi Logika Anda di bagian Tindakan.
- Pilih Buat.
Opsi 2: Aplikasi Fungsi berdasarkan peristiwa Event Grid
Aplikasi Fungsi memberikan performa tinggi dengan waktu respons latensi rendah.
Langkah 1: Membuat topik kustom Event Grid
Sebelum menyambungkan Aplikasi Fungsi, siapkan topik kustom Event Grid untuk menerima hasil pemindaian.
- Di portal Azure, cari Topik Event Grid dan pilih Buat.
- Atur Wilayah ke wilayah yang sama dengan akun penyimpanan Anda. Pengiriman lintas wilayah tidak didukung untuk peristiwa pemindaian malware.
- Pilih Skema Event Grid sebagai jenis skema.
- Di bawah Jaringan, izinkan akses dari alamat IP publik. Topik yang hanya menggunakan titik akhir privat tidak dapat menerima peristiwa dari Defender for Storage.
- Setelah membuat topik, salin Titik Akhir Topik dan kunci akses — Anda memerlukannya untuk mengonfigurasi Defender untuk Penyimpanan.
Untuk mengonfigurasi Defender for Storage agar mengirim hasil pemindaian ke topik kustom Event Grid yang Anda buat, lihat Atur Event Grid untuk pemindaian malware.
Langkah 2: Membuat dan mengonfigurasi Aplikasi Fungsi
Buat Aplikasi Fungsi di grup sumber daya yang sama dengan akun penyimpanan yang dilindungi Anda.
Tambahkan penugasan peran untuk identitas Function App.
- Buka Identitas di menu samping, pastikan status ditetapkan sistem adalah Aktif, dan pilih Penetapan peran Azure.
- Tambahkan penetapan peran di tingkat langganan atau akun penyimpanan dengan peran Kontributor Data Blob Penyimpanan .
Di topik Event Grid, pilih + Langganan Peristiwa, atur jenis titik akhir ke fungsi Azure, dan pilih Aplikasi Fungsi Anda sebagai titik akhir.
Langkah 3: Pilih templat Aplikasi Fungsi
Pilih templat yang cocok dengan tujuan remediasi Anda:
| Tujuan | Template |
|---|---|
| Pindahkan blob berbahaya ke karantina | MoveMaliciousBlobEventTrigger |
| Menghapus blob berbahaya secara otomatis | Gunakan templat pemindahan sebagai dasar; ganti logika salin+hapus dengan memanggil Hapus Blob secara langsung setelah memeriksa scanResultType == "Malicious". Aktifkan soft delete terlebih dahulu agar data dapat dipulihkan jika ada positif palsu. |
| Kirim peringatan atau notifikasi | Tambahkan panggilan HTTP ke titik akhir pemberitahuan Anda (misalnya, webhook Teams, PagerDuty, atau ServiceNow) saat scanResultType == "Malicious". Lihat pengikatan output HTTP Azure Functions untuk detailnya. |
Sebagai alternatif, gunakan operasi penyalinan blob Azure Storage untuk menyalin blob ke tempat lain, lalu hapus blob dari sumbernya.
Untuk setiap hasil pemindaian, peristiwa dikirim sesuai dengan skema berikut.
Struktur pesan acara
Pesan peristiwa adalah objek JSON yang berisi pasangan kunci-nilai yang memberikan informasi terperinci tentang hasil pemindaian malware. Berikut adalah perincian setiap kunci dalam pesan peristiwa:
id: Pengidentifikasi unik untuk peristiwa tersebut.
subjek: Sebuah string yang menggambarkan jalur sumber daya dari blob (file) yang dipindai pada akun penyimpanan.
data: Objek JSON yang berisi informasi tambahan tentang peristiwa:
correlationId: Pengidentifikasi unik yang dapat Anda gunakan untuk menghubungkan beberapa peristiwa yang terkait dengan pemindaian yang sama.
blobUri: URI dari blob (file) yang telah dipindai di dalam akun penyimpanan.
eTag: ETag dari blob yang telah dipindai (file).
scanFinishedTimeUtc: Tanda waktu UTC saat pemindaian selesai.
scanResultType: Hasil pemindaian, seperti Berbahaya atau Tidak ada ancaman yang ditemukan.
scanResultDetails: Objek JSON yang berisi detail tentang hasil pemindaian:
malwareNamesFound: Array nama malware yang ditemukan dalam file yang dipindai.
sha256: Hash SHA-256 dari file yang dipindai.
eventType: String yang menunjukkan jenis peristiwa, dalam hal ini, Microsoft.Security.MalwareScanningResult.
dataVersion: Nomor versi skema data.
metadataVersion: Nomor versi skema metadata.
eventTime: Tanda waktu UTC saat peristiwa dibuat.
topik: Jalur sumber daya topik Event Grid tempat peristiwa berada.
Berikut adalah contoh pesan peristiwa:
{
"id": "aaaa0000-bb11-2222-33cc-444444dddddd",
"subject": "storageAccounts/<storage_account_name>/containers/app-logs-storage/blobs/EICAR - simulating malware.txt",
"data": {
"correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
"blobUri": "https://<storage_account_name>.blob.core.windows.net/app-logs-storage/EICAR - simulating malware.txt",
"eTag": "0x000000000000000",
"scanFinishedTimeUtc": "2023-05-04T11:31:54.0481279Z",
"scanResultType": "Malicious",
"scanResultDetails": {
"malwareNamesFound": [
"DOS/EICAR_Test_File"
],
"sha256": "AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00"
}
},
"eventType": "Microsoft.Security.MalwareScanningResult",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-05-04T11:31:54.048375Z",
"topic": "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.EventGrid/topics/<event_grid_topic_name>"
}
Dengan memahami struktur pesan peristiwa, Anda dapat mengekstrak informasi yang relevan tentang hasil pemindaian malware dan memprosesnya dengan sesuai.
Contoh payload untuk pengujian
Gunakan contoh payload ini untuk menguji logika penanganan aktivitas Anda sebelum menyambungkan ke hasil pemindaian langsung.
Tidak ada ancaman yang ditemukan:
{
"id": "bbbb1111-cc22-3333-44dd-555555eeeeee",
"subject": "storageAccounts/<storage_account_name>/containers/uploads/blobs/clean-document.pdf",
"data": {
"correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
"blobUri": "https://<storage_account_name>.blob.core.windows.net/uploads/clean-document.pdf",
"eTag": "0x111111111111111",
"scanFinishedTimeUtc": "2023-05-04T11:32:00.0000000Z",
"scanResultType": "No threats found",
"scanResultDetails": {
"malwareNamesFound": [],
"sha256": "BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11"
}
},
"eventType": "Microsoft.Security.MalwareScanningResult",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-05-04T11:32:00.0000000Z",
"topic": "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.EventGrid/topics/<event_grid_topic_name>"
}
Tidak dipindai (blob terlalu besar):
{
"id": "cccc2222-dd33-4444-55ee-666666ffffff",
"subject": "storageAccounts/<storage_account_name>/containers/uploads/blobs/large-archive.zip",
"data": {
"correlationId": "cccc2222-dd33-4444-55ee-666666ffffff",
"blobUri": "https://<storage_account_name>.blob.core.windows.net/uploads/large-archive.zip",
"eTag": "0x222222222222222",
"scanFinishedTimeUtc": "2023-05-04T11:32:10.0000000Z",
"scanResultType": "Not Scanned",
"scanResultDetails": {
"notScannedReason": "SAM259206: Not scanned - blob exceeded the maximum allowed size of 50 GB."
}
},
"eventType": "Microsoft.Security.MalwareScanningResult",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-05-04T11:32:10.0000000Z",
"topic": "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.EventGrid/topics/<event_grid_topic_name>"
}
Membaca kode kesalahan SAM dari pesan Event Grid
Saat Event Grid tidak dapat memindai blob, Event Grid menggunakan jenis hasil Tidak Dipindai dan menyertakan kode kesalahan SAM di notScannedReason bidang .
Jika scanResultType diatur ke Not Scanned, kode kesalahan SAM muncul sebagai bagian dari nilai data.scanResultDetails.notScannedReason. Kode kesalahan adalah awalan sebelum titik dua (:).
Contohnya:
"scanResultType": "Not Scanned",
"scanResultDetails": {
"notScannedReason": "SAM259206: Not scanned - blob exceeded the maximum allowed size of 50 GB."
}
Buat aplikasi dan aliran data Anda mengetahui hasil pemindaian malware
Pemindaian malware berjalan mendekati real time, dan biasanya ada jendela waktu singkat antara mengunggah file dan memindainya. Karena penyimpanan bukan komputasi, file berbahaya tidak dapat berjalan di penyimpanan Anda. Risikonya adalah pengguna atau aplikasi menggunakan file berbahaya dan menyebarkannya ke seluruh organisasi.
Anda dapat membuat aplikasi dan aliran data Anda mengetahui hasil pemindaian malware. Metode ini memastikan file tidak digunakan atau diproses hingga:
- Pemindaian selesai
- Hasil pemindaian tersedia
- Anda mengambil tindakan yang sesuai berdasarkan hasilnya
Aplikasi menyerap data berdasarkan hasil pemindaian
Gunakan pola ini agar aplikasi hilir hanya dapat memproses blob setelah pemindaian malware Defender for Storage melaporkan hasil yang bersih.
Opsi 1: Aplikasi memeriksa "Tag indeks" sebelum memproses
Perbarui semua aplikasi yang menggunakan akun penyimpanan. Setiap aplikasi memeriksa hasil pemindaian untuk setiap file, dan jika hasil pemindaian tag Indeks adalah tidak ditemukan ancaman, aplikasi membaca blob.
Opsi 2: Menyambungkan aplikasi Anda ke Webhook dalam Event Grid
Hubungkan aplikasi Anda ke Webhook pada peristiwa Event Grid dan gunakan peristiwa tersebut untuk memicu proses yang relevan untuk file dengan hasil pemindaian tidak ada ancaman yang ditemukan. Pelajari selengkapnya tentang penggunaan dan pengiriman event Webhook serta memvalidasi endpoint Anda.
Menggunakan akun penyimpanan perantara sebagai DMZ
Siapkan akun penyimpanan perantara untuk konten yang tidak tepercaya (DMZ) dan lalu lintas unggah langsung ke DMZ. Pada akun penyimpanan yang tidak tepercaya, aktifkan pemindaian malware dan hubungkan Event Grid serta Fungsi Aplikasi untuk memindahkan hanya blob yang dipindai dengan hasil tidak ada ancaman ditemukan ke akun penyimpanan tujuan.
Mengatasi masalah pengiriman peristiwa
Jika peristiwa hasil pemindaian tidak tiba di titik akhir Anda, gunakan pemeriksaan berikut untuk mengidentifikasi dan menyelesaikan masalah.
Peristiwa tidak dikirimkan ke Aplikasi Fungsi atau webhook
| Gejala | Kemungkinan penyebabnya | Resolution |
|---|---|---|
| Tidak ada peristiwa yang diterima setelah unggahan file | Topik Event Grid tidak dikonfigurasi pada akun penyimpanan | Verifikasi bahwa topik kustom Event Grid diatur di bawah pengaturan Microsoft Defender untuk Cloud akun penyimpanan. Lihat Menyiapkan Event Grid untuk pemindaian malware. |
| Tidak ada peristiwa yang diterima setelah unggahan file | Langganan acara tidak dibuat | Periksa apakah langganan peristiwa ada di topik kustom dengan Aplikasi Fungsi atau webhook Anda sebagai titik akhir. |
| Peristiwa dikirimkan tetapi Aplikasi Fungsi tidak memicu | Validasi titik akhir langganan peristiwa tertunda | Event Grid mengirimkan peristiwa validasi saat Anda membuat langganan. Jika titik akhir Anda tidak merespons dengan kode validasi, pengiriman akan ditangguhkan. Lihat Pengiriman peristiwa Webhook. |
| Event berhenti dikirim | Titik akhir menampilkan kesalahan HTTP 4xx atau 5xx | Event Grid mencoba kembali pengiriman dengan backoff eksponensial hingga 24 jam. Periksa log Aplikasi Fungsi Anda di Application Insights atau tab Monitor untuk detail kesalahan. |
Kesalahan Hak Akses
- Event Grid tidak dapat menerbitkan ke topik kustom: Pastikan bahwa prinsipal layanan Microsoft Defender for Storage memiliki peran EventGrid Data Sender pada topik Event Grid Anda, atau bahwa topik tersebut memungkinkan penerbitan anonim. Defender untuk Storage menggunakan identitas layanannya sendiri untuk menerbitkan peristiwa.
- Aplikasi Fungsi tidak dapat menghapus atau memindahkan blob: Konfirmasikan identitas terkelola yang ditetapkan sistem Aplikasi Fungsi memiliki peran Kontributor Data Blob Penyimpanan pada akun penyimpanan sumber (dan akun tujuan, jika dikarantina). Periksa penetapan penolakan akses yang mungkin memblokir identitas tersebut.
Masalah jaringan dan firewall
- Topik Event Grid di balik titik akhir privat: Defender for Storage tidak dapat mengirim ke topik Event Grid yang hanya menerima koneksi titik akhir privat. Topik kustom harus mengizinkan akses dari alamat IP publik.
- Aplikasi Fungsi dalam jaringan virtual: Jika Aplikasi Fungsi berjalan di jaringan virtual dengan batasan keluar, pastikan Aplikasi Fungsi dapat menjangkau akun penyimpanan dan layanan lain yang perlu dipanggil (seperti titik akhir pemberitahuan).
Validasi langganan
Saat Anda membuat atau memperbarui langganan peristiwa yang menggunakan titik akhir webhook, Event Grid mengirimkan peristiwa validasi langganan. Endpoint Anda harus merespons dengan validationCode dari isi permintaan. Alasan umum validasi gagal:
- Endpoint belum di-deploy atau belum menerima koneksi saat langganan dibuat.
- Titik akhir mengembalikan kode status HTTP non-200.
- Endpoint tidak mengembalikan
validationCodedalam isi respons.
Untuk memicu kembali validasi, hapus dan buat ulang langganan peristiwa, atau gunakan opsi Validasi Ulang di portal Azure.
Memverifikasi pengiriman peristiwa di portal Azure
- Buka topik kustom Event Grid Anda.
- Pilih Metrik dan tinjau jumlah Peristiwa yang Diterbitkan, Peristiwa yang Cocok, dan Pengiriman Gagal.
- Pilih Langganan Acara dan periksa status kesehatan langganan.
- Untuk pengiriman yang gagal, pilih Surat Mati (jika dikonfigurasi) untuk memeriksa peristiwa yang tidak terkirim.