Aracılığıyla paylaş


Office Çözümleri İçin Güvenlikle İlgili Belirli Önemli Noktalar

.NET Framework ve Microsoft Office tarafından sağlanan güvenlik özellikleri, olası güvenlik tehditlerine karşı Office çözümlerinizi korumaya yardımcı olabilir. Bu konuda, bu tehditlerin bazılarını anlatılır ve onlara karşı koruma sağlamak için öneriler sağlanır. Ayrıca Microsoft Office güvenlik ayarlarının Office çözümlerini nasıl etkilediği hakkında bilgi içerir.

Uygulama alanı: Bu konudaki bilgiler, Microsoft Office 2010 ve 2007 Microsoft Office sisteminin belge düzeyi projelerine ve uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz: Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Güvenilir Kod Yeni, Kötü Amaçlı Belgede Yeniden Tasarlanır

Saldırgan, belli bir amaç için olan güvenilir kodu alabilir (örn. iş başvurusu için olan kişisel bilgileri yüklemek) ve başka bir belgede onu yeniden kullanabilir (çalışma sayfası gibi.) Kod, özgün belgenin çalıştığını bilmez ve farklı bir kullanıcı tarafından açıldığında başka iş parçacıklarını da açabilir (örn. kişisel bilgiyi gösterme veya arttırılmış ayrıcalıklarla kodu çalıştırma). Alternatif olarak, saldırgan çalışma sayfasındaki veriyi kolaylıkla değişebilir, örneğin belge kurbana yollandığında, beklenmedik şekilde çalışır. Koda bağlı çalışma sayfasının değerleri, formülleri veya sunu özelliklerini değiştirerek, kötü amaçlı kullanıcının diğer kullanıcıya değiştirilmiş dosyayı yollayarak saldırması olasıdır. Kullanıcıların, çalışma sayfasındaki değerleri değiştirerek görmemesi gereken bilgileri de görmesi olasıdır.

  • Derleme konumunun ve belge konumunun her ikisi de çalıştırmak için yeterli kanıta sahip olduğu için, bu saldırıyı çıkarmak kolay değildir. Örneğin, e-posta eklerindeki belgeler veya güvenilmeyen intranet sunucuları çalıştırmak için yeterli izine sahip değildirler.

  • Bu saldırıyı yapmak için, kodun kendisinin potansiyel olarak güvenilmeyecek veriye bağlı bir şekilde yazılması gerekir. Veritabanı sunucusunun adını içeren gizli bir hücreye sahip çalışma sayfasını oluşturmak buna bir örnektir. Kullanıcı, SQL kimlik doğrulaması ve sabit kodlanmış SA parolası kullanan sunucuya bağlanmayı deneyen çalışma sayfasını ASPX sayfasına gönderir. Saldırgan, gizli hücrenin içeriğini farklı bir bilgisayar ismiyle değiştirebilir ve SA parolasını alabilir. Bu problemden kaçınmak için, hiçbir sabit kodlu parolayı kullanmayın ve her zaman sunucu kimliğini, sunucuya erişmeden önce iyi olarak bilinen sunucuların iç listesine karşı denetleyin.

Öneriler

  • Girişi ve veriyi, kullanıcıdan, belgeden, veritabanından, Web servisinden veya herhangi kaynaktan gelip gelmediğini her zaman doğrulayın.

  • Belli işlevsellik türlerini oluştururken dikkatli olun, örn. kullanıcı adına ayrıcalıklı veri alma ve onu güvenilmeyen bir çalışma sayfasına koyma.

  • Uygulamanın türüne bağlı olarak, herhangi bir kodu çalıştırmadan önce özgün belgenin çalıştığını doğrulamak mantıklı olabilir (örn. bilinen ve güvenli konumda olan bir belgeden çalıştığını doğrulamak).

  • Eğer uygulamanız herhangi bir ayrıcalıklı eylemi gerçekleştiriyorsa, belge açıldığında uyarı görüntülemek iyi bir fikir olabilir. Örneğin, uygulamanın kişisel bilgilere erişeceğini söyleyen karşılama ekranı veya başlangıç iletişim kutusu oluşturabilirsiniz ve kullanıcının devam veya iptal etmeyi seçmesini sağlayabilirsiniz. Eğer son kullanıcı zararsız görünen bir belgeden öyle bir uyarı alırsa, herhangi bir şey ele geçirilmeden uygulamadan çıkabilir.

Outlook Nesne Modeli Koruyucusu Tarafından Kod Engellenir

Microsoft Office, kodun nesne modelindeki bazı özellikleri, yöntemleri ve nesneleri kullanmasını engelleyebilir. Bu nesnelere erişimi kısıtlayarak, Outlook e-posta solucan ve virüslerinin kötü amaçlı nedenlerden dolayı nesne modelini kullanmasını engeller. Bu güvenlik özelliği Outlook nesne model güvenliği koruyucusu olarak bilinir. Nesne modeli koruyucusu etkinken eklenti sınırlı bir özelliği veya yöntemi kullanmayı denerse, Outlook kullanıcının işlemi iptal etmesini sağlayan veya özellik ya da yönteme kısa bir süre için erişimini sağlayan güvenlik uyarısı görüntüler. Eğer kullanıcı işlemi durdurursa, Visual Studio Tools for Office kullanılarak oluşturulan Outlook eklentisi, COMException yaratır.

Nesne modeli koruyucusu Outlook'un Microsoft Exchange Server ile kullanılıp kullanılmamasına bağlı olarak eklentileri farklı yollarda etkileyebilir:

  • Eğer Outlook, Exchange ile kullanılmıyorsa, yönetici bilgisayardaki tüm eklentiler için nesne modeli koruyucusunu etkinleştirebilir veya devre dışı bırakabilir.

  • Eğer Outlook Exchange ile kullanılıyorsa, yönetici bilgisayardaki tüm eklentiler için nesne modeli koruyucusunu etkinleştirebilir veya devre dışı bırakabilir ya da yönetici bazı eklentilerin, nesne modeli koruyucusuyla karşılaşmadan çalışacağını belirtebilir. Yöneticiler, nesne modelinin belli alanları için nesne modeli koruyucusunun davranışını da değiştirebilir. Örneğin, yöneticiler nesne modeli koruyucusu etkin olsa bile eklentilerin programlı bir şekilde e-posta yollamalarına otomatik olarak izin verebilir.

Outlook 2007, Outlook güvenliğini sağlarken geliştirici ve kullanıcı deneyimini geliştirmek için nesne modeli koruyucusunun davranışını değiştirebilir. Daha fazla bilgi için bkz: Outlook 2007'deki güvenlik değişiklikleri kod.

Nesne Modeli Koruyucusu Uyarılarını En Aza İndirme

Sınırlı özellikleri ve yöntemleri kullandığınızda güvenlik uyarılarından kaçınmak için, eklentinizin Outlook nesnelerini projenizdeki ThisAddIn sınıfının Application alanından aldığına emin olun. Bu alan hakkında daha fazla bilgi için, bkz. Uygulama Düzeyi Eklentileri Programlama.

Sadece bu nesneden elde edilen Outlook nesnelerine, nesne modeli koruyucusu kullanarak güvenilebilir. Buna karşı olarak, yeni bir Microsoft.Office.Interop.Outlook.Application nesnesinden elde edilen nesneler güvenilmezdir ve sınırlı özellikler ve yöntemler, eğer nesne modeli koruyucusu etkinse güvenlik uyarıları verir.

Aşağıdaki kod örneğinde nesne modeli koruyucusu etkinse güvenlik uyarısı görüntülenir. Microsoft.Office.Interop.Outlook.MailItem sınıfının To özelliği nesne modeli koruyucu tarafından sınırlanır. Microsoft.Office.Interop.Outlook.MailItem nesnesi güvenilmezdir çünkü kod onu Application alanından elde etmek yerine, new kullanılarak oluşturulan Microsoft.Office.Interop.Outlook.Application'dan alır.

Private Sub UntrustedCode()
    Dim application As New Microsoft.Office.Interop.Outlook.Application
    Dim mailItem1 As Microsoft.Office.Interop.Outlook.MailItem = _
        TryCast(application.CreateItem( _
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem),  _
        Microsoft.Office.Interop.Outlook.MailItem)
    mailItem1.To = "someone@example.com"
    MessageBox.Show(mailItem1.To)
End Sub
private void UntrustedCode()
{
    Microsoft.Office.Interop.Outlook.Application application =
        new Microsoft.Office.Interop.Outlook.Application();
    Microsoft.Office.Interop.Outlook.MailItem mailItem1 =
        application.CreateItem(
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem) as
        Microsoft.Office.Interop.Outlook.MailItem;
    mailItem1.To = "someone@example.com";
    MessageBox.Show(mailItem1.To);
}

Aşağıdaki kod örneğinde, nesne modeli koruyucusu tarafından güvenilen Microsoft.Office.Interop.Outlook.MailItem nesnesinin sınırlı To özelliğinin nasıl kullanıldığı gösterilir. Kod, Microsoft.Office.Interop.Outlook.MailItem almak için güvenilir Application alanını kullanır.

Private Sub TrustedCode()
    Dim mailItem1 As Microsoft.Office.Interop.Outlook.MailItem = _
        TryCast(Me.Application.CreateItem( _
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem),  _
        Microsoft.Office.Interop.Outlook.MailItem)
    mailItem1.To = "someone@example.com"
    MessageBox.Show(mailItem1.To)
End Sub
private void TrustedCode()
{
    Microsoft.Office.Interop.Outlook.MailItem mailItem1 =
        this.Application.CreateItem(
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem) as
        Microsoft.Office.Interop.Outlook.MailItem;
    mailItem1.To = "someone@example.com";
    MessageBox.Show(mailItem1.To);
}

Not

Eğer Outlook Exchange ile kullanılırsa, tüm Outlook nesnelerini ThisAddIn.Application'dan elde etmek, eklentinizin tüm Outlook nesne modeline erişebileceğini garantilemez. Örneğin, eğer Exchange yöneticisi Outlook'u, Outlook nesne modeli kullanarak adres bilgilerine erişme denemelerini otomatik olarak reddetmek için ayarlarsa, kod örneği güvenilir ThisAddIn.Application alanını kullansa bile, Outlook önceki kodun To özelliğine erişmesine için vermez.

Exchange Kullanırken Hangi Eklentiye Güvenileceğini Belirtme

Outlook, Exchange ile kullanıldığında, yöneticiler belli eklentilerin nesne modeli koruyucusuyla karşılaşadan çalışabileceklerini belirleyebilirler. Visual Studio Tools for Office kullanılarak oluşturulan Outlook eklentileri tek tek güvenilir değildir; sadece grup olarak güvenilebilir olurlar.

Outlook, eklentinin giriş noktası DLL'inin karma koduna bağlı olarak eklentiye güvenir. Tüm Outlook hedefleyen eklentileri Visual Studio Tools for Office çalışma zamanı modülü aynı giriş noktası (VSTOLoader.dll) dll kullanın. Tüm hedefler eklentisi bir yöneticinin güvendiği yani Visual Studio Tools for Office çalışma zamanı modülü nesne modeli guard, sonra tüm diğer hedefler eklentileri karşılaşıyor olmadan çalıştırmak için Visual Studio Tools for Office çalışma zamanı modülü de güvenilirdir. Belirli nesne modeli guard karşılaşıyor olmadan çalıştırmak için eklentiler güvenme hakkında daha fazla bilgi için bkz: belirt Outlook virüs önleme özellikleri yönetmek için kullandığı yöntem.

İzin Değişiklikleri Hemen Etki Göstermez

Eğer yönetici, belge veya derleme için izinleri ayarlarsa, kullanıcılar çıkmalı ve ardından tüm Office uygulamalarını bu değişikliklerin zorlanması için yeniden başlatmalıdır.

Microsoft Office uygulamalarını barındıran diğer uygulamalar yeni izinlerin zorlanmasını engelleyebilir. Kullanıcılar, güvenlik ayarları değiştiğinde, barındırılan veya tek başına Office kullanan tüm uygulamalardan çıkmalıdırlar.

Microsoft Office Sistemindeki Güven Merkezi Ayarları, Eklentileri veya Belge Düzeyi Özelleştirmelerini Etkilemez

Kullanıcılar, Güven Merkezi içindeki seçeneği ayarlayarak eklentilerin yüklenmesini engelleyebilir. Fakat, Visual Studio Tools for Office kullanılarak oluşturulan uygulama düzeyi eklentileri ve belge düzeyi özelleştirmeleri bu güven ayarlarından etkilenmez.

Eğer kullanıcı eklentilerin yüklenmesini, Güven Merkezi'ni kullanarak engellerse, aşağıdaki eklenti türleri yüklenmez:

  • Yönetilen ve yönetilmeyen COM eklentileri.

  • Yönetilen ve yönetilmeyen akıllı etiketler.

  • Yönetilen ve yönetilmeyen belgeler.

  • Yönetilen ve yönetilmeyen Automation eklentileri.

  • Yönetilen ve yönetilmeyen gerçek zamanlı veri bileşenleri.

Not

Excel 2010 ve Word 2010'de akıllı etiketlerin kullanımı terk edilmiştir. Daha fazla bilgi için bkz. Akıllı Etiketlere Genel Bakış.

Aşağıdaki yordamda, kullanıcıların Güvenlik Merkezi'ni 2007 Microsoft Office sisteminde eklentilerin yüklenmesini sınırlamak için nasıl kullanabilecekleri anlatılır. Bu yordamlar, Visual Studio Tools for Office kullanılarak oluşturulmuş eklentileri veya özelleştirmeleri etkilemez.

Microsoft Office 2010 uygulamaları, Excel 2007, PowerPoint 2007 veya Word 2007'de eklentiler devre dışı bırakmak için

  1. Tıklatın Dosya sekmesinde (Microsoft Office 2010 uygulamaları) veya Microsoft Office düğmesi (2007 Microsoft Office uygulamaları).

  2. ApplicationName Seçenekleri düğmesini tıklatın.

  3. Kategoriler bölmesinde Güven Merkezi seçeneğini tıklatın.

  4. Detaylar bölmesinde, Güven Merkezi Ayarları'nı tıklatın.

  5. Kategoriler bölmesinde Eklentiler seçeneğini tıklatın.

  6. Detaylar bölmesinde, Uygulama Eklentisinin Güvenilir Yayımcı Tarafından İmzalanması Gerekir'i veya Tüm Uygulama Eklentilerini Devre Dışı Bırak'ı seçin.

InfoPath 2007, Outlook 2007, Project 2007 veya Visio 2007 eklentileri devre dışı bırakmak için

  1. Araçlar menüsünde Güven Merkezi'ni tıklatın.

  2. Kategoriler bölmesinde Makro Güvenliği’ni çift tıklatın.

  3. Detaylar bölmesinde, Uyarı Yok ve Tüm Makroları Devre Dışı Bırak'ı veya İmzalanmış makrolar için uyarılar; tüm imzalanmamış makrolar devre dışı'nı seçin.

  4. Kategoriler bölmesinde Eklentiler seçeneğini tıklatın.

  5. Detaylar bölmesinde, Yüklenen eklentilere makro güvenlik ayarlarını uygula'yı seçin.

Ayrıca bkz.

Diğer Kaynaklar

Office Çözümlerinin Güvenliğini Sağlama