Share via


Office çözümleri için özel güvenlik konuları

Microsoft .NET Framework ve Microsoft Office tarafından sağlanan güvenlik özellikleri, Office çözümlerinizi olası güvenlik tehditlerine karşı korumaya yardımcı olabilir. Bu konu başlığı altında bu tehditlerden bazıları açıklanır ve bunlara karşı korunmaya yardımcı olacak öneriler sağlanır. Ayrıca, Microsoft Office güvenlik ayarlarının Office çözümlerini nasıl etkilediği hakkında bilgiler de içerir.

Şunlar için geçerlidir: Bu konudaki bilgiler belge düzeyi projeler ve VSTO Eklenti projeleri için geçerlidir. Bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.

Güvenilen kod yeni, kötü amaçlı bir belgede yeniden tasarlanır

Saldırgan belirli bir amaca yönelik güvenilen kodu alabilir, örneğin, bir çalışma uygulaması için kişisel bilgileri indirebilir ve çalışma sayfası gibi başka bir belgede yeniden kullanabilir. Kod, özgün belgenin çalışmadığını bilmez ve farklı bir kullanıcı tarafından açıldığında kişisel bilgileri ortaya çıkarmak veya daha fazla ayrıcalıkla kod yürütmek gibi başka tehditler açabilir. Alternatif olarak, saldırgan çalışma sayfasındaki verileri, kurbana gönderildiğinde beklenmedik şekilde davranacak şekilde değiştirebilir. Koda bağlı bir çalışma sayfasının değerlerini, formüllerini veya sunu özelliklerini değiştirerek, kötü amaçlı bir kullanıcının değiştirilmiş bir dosya göndererek başka bir kullanıcıya saldırması mümkündür. Kullanıcıların, çalışma sayfasındaki değerleri değiştirerek görmemeleri gereken bilgilere erişmesi de mümkün olabilir.

Hem derleme konumunun hem de belge konumunun yürütülmesi için yeterli kanıt olması gerektiğinden, bu saldırıyı bağlamak kolay değildir. Örneğin, e-posta eklerindeki veya güvenilmeyen intranet sunucularındaki belgelerin çalıştırmak için yeterli izni yoktur.

Bu saldırıyı mümkün kılmak için kodun kendisi, güvenilir olmayabilecek verilere dayalı kararlar alınacak şekilde yazılmalıdır. Örnek olarak, veritabanı sunucusunun adını içeren gizli bir hücre içeren bir çalışma sayfası oluşturulur. Kullanıcı çalışma sayfasını, SQL kimlik doğrulaması ve sabit kodlanmış bir SA parolası kullanarak bu sunucuya bağlanmaya çalışan bir ASPX sayfasına gönderir. Saldırgan, gizli hücrenin içeriğini farklı bir bilgisayar adıyla değiştirebilir ve SA parolasını alabilir. Bu sorunu önlemek için parolaları asla sabit kodlayın ve sunucuya erişmeden önce sunucu kimliklerini her zaman iyi olduğu bilinen bir iç sunucu listesiyle karşılaştırın.

Öneriler

  • Kullanıcıdan, belgeden, veritabanından, web hizmetinden veya başka bir kaynaktan gelen girdileri ve verileri her zaman doğrulayın.

  • Kullanıcı adına ayrıcalıklı verileri alma ve korumasız bir çalışma sayfasına yerleştirme gibi belirli işlev türlerini ortaya çıkarma konusunda dikkatli olun.

  • Uygulamanın türüne bağlı olarak, herhangi bir kod yürütmeden önce özgün belgenin çalıştığını doğrulamak mantıklı olabilir. Örneğin, belgenin bilinen, güvenli bir konumda depolanan bir belgeden çalıştığını doğrulayın.

  • Uygulamanız ayrıcalıklı eylemler gerçekleştirirse belge açıldığında bir uyarı görüntülemek iyi bir fikir olabilir. Örneğin, uygulamanın kişisel bilgilere erişeceğini ve kullanıcının devam etmeyi veya iptal etmeyi seçmesini söyleyen bir giriş ekranı veya başlangıç iletişim kutusu oluşturabilirsiniz. Son kullanıcı görünüşte masum bir belgeden böyle bir uyarı alırsa, herhangi bir şey tehlikeye girmeden önce uygulamadan çıkabilecektir.

Kod Outlook nesne modeli koruyucusu tarafından engellendi

Microsoft Office, kodun nesne modelindeki belirli özellikleri, yöntemleri ve nesneleri kullanmasını kısıtlayabilir. Outlook, bu nesnelere erişimi kısıtlayarak e-posta solucanlarının ve virüslerin kötü amaçlı olarak nesne modelini kullanmasını önlemeye yardımcı olur. Bu güvenlik özelliği Outlook nesne modeli koruyucusu olarak bilinir. Bir VSTO Eklentisi nesne modeli koruyucusu etkinken kısıtlanmış bir özellik veya yöntem kullanmayı denerse, Outlook kullanıcının işlemi durdurmasına veya kullanıcının sınırlı bir süre için özellik veya yönteme erişim izni vermesine olanak tanıyan bir güvenlik uyarısı görüntüler. Kullanıcı işlemi durdurursa, Visual Studio'da Office çözümleri kullanılarak oluşturulan Outlook VSTO Eklentileri bir COMExceptionoluşturur.

Nesne modeli koruyucusu, Outlook'un Microsoft Exchange Server ile kullanılıp kullanılmadığına bağlı olarak VSTO Eklentilerini farklı şekillerde etkileyebilir:

  • Outlook Exchange ile kullanılmıyorsa, yönetici bilgisayardaki tüm VSTO Eklentileri için nesne modeli korumasını etkinleştirebilir veya devre dışı bırakabilir.

  • Outlook Exchange ile kullanılıyorsa, yönetici bilgisayardaki tüm VSTO Eklentileri için nesne modeli korumasını etkinleştirebilir veya devre dışı bırakabilir veya yönetici, belirli VSTO Eklentilerinin nesne modeli koruyucusuyla karşılaşmadan çalışabileceğini belirtebilir. Yönetici istrator'lar, nesne modelinin belirli alanları için nesne modeli koruyucusunun davranışını da değiştirebilir. Örneğin, yöneticiler nesne modeli koruyucusu etkinleştirilmiş olsa bile VSTO Eklentilerinin program aracılığıyla e-posta göndermesine otomatik olarak izin verebilir.

    Outlook 2007'den başlayarak, Outlook'un güvenliğinin korunmasına yardımcı olurken geliştirici ve kullanıcı deneyimini geliştirmek için nesne modeli koruyucusunun davranışı değiştirildi. Daha fazla bilgi için bkz . Outlook 2007'de kod güvenliği değişiklikleri.

Nesne modeli koruyucu uyarılarını simge durumuna küçültme

Kısıtlı özellikler ve yöntemler kullandığınızda güvenlik uyarılarını önlemeye yardımcı olmak için, VSTO Eklentinizin projenizdeki sınıfın ApplicationThisAddIn alanından Outlook nesneleri edindiğinden emin olun. Bu alan hakkında daha fazla bilgi için bkz . Program VSTO Eklentileri.

Yalnızca bu nesneden alınan Outlook nesnelerine nesne modeli koruyucusu tarafından güvenilebilir. Buna karşılık, yeni Microsoft.Office.Interop.Outlook.Application bir nesneden alınan nesnelere güvenilmez ve nesne modeli koruyucusu etkinleştirilirse kısıtlanmış özellikler ve yöntemler güvenlik uyarıları oluşturur.

Aşağıdaki kod örneği, nesne modeli koruyucusu etkinse bir güvenlik uyarısı görüntüler. To sınıfının özelliği Microsoft.Office.Interop.Outlook.MailItem nesne modeli koruyucusu tarafından kısıtlanır. Microsoft.Office.Interop.Outlook.MailItem Kod onu alandan almak yerine yeni işleç kullanılarak oluşturulan bir Microsoft.Office.Interop.Outlook.Application nesneden aldığından nesneye Application güvenilmez.

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ği, nesne modeli koruyucusu tarafından güvenilen bir Microsoft.Office.Interop.Outlook.MailItem nesnenin Restricted To özelliğinin nasıl kullanılacağını gösterir. Kod, almak Microsoft.Office.Interop.Outlook.MailItemiçin güvenilen Application alanı kullanır.

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

Outlook Exchange ile kullanılıyorsa, tüm Outlook nesnelerinin alınması ThisAddIn.Application VSTO Eklentinizin Outlook nesne modelinin tamamına erişebileceği garanti etmez. Örneğin, bir Exchange yöneticisi Outlook'u Outlook nesne modelini kullanarak adres bilgilerine erişim girişimlerinin tümünü otomatik olarak reddedecek şekilde ayarlarsa, kod örneği güvenilen ThisAddIn.Application alanı kullansa bile Outlook önceki kod örneğinin To özelliğine erişmesine izin vermez.

Exchange kullanırken hangi Eklentilerin güveneceğini belirtme

Outlook Exchange ile kullanıldığında, yöneticiler belirli VSTO Eklentilerinin nesne modeli koruyucusuyla karşılaşmadan çalışabileceğini belirtebilir. Visual Studio'da Office çözümleri kullanılarak oluşturulan Outlook VSTO Eklentilerine tek tek güvenilemez; yalnızca grup olarak güvenilir.

Outlook, VSTO Eklentisinin giriş noktası DLL'sinin karma kodunu temel alan bir VSTO Eklentisine güvenir. Office çalışma zamanı için Visual Studio Araçları hedefleyen tüm Outlook VSTO Eklentileri aynı giriş noktası DLL'sini (VSTOLoader.dll) kullanır. Başka bir deyişle, bir yönetici office çalışma zamanı için nesne modeli koruyucusuyla karşılaşmadan çalışması için Visual Studio Araçları hedefleyen herhangi bir VSTO Eklentisine güvenirse, Office çalışma zamanı için Visual Studio Araçları hedefleyen diğer tüm VSTO Eklentilerine de güvenilir. Nesne modeli koruyucusuyla karşılaşmadan çalıştırılacak belirli VSTO Eklentilerine güvenme hakkında daha fazla bilgi için bkz . Outlook'un virüs önleme özelliklerini yönetmek için kullandığı yöntemi belirtme.

İzin değişiklikleri hemen geçerli olmaz

Yönetici bir belge veya derlemenin izinlerini ayarlarsa, kullanıcıların bu değişikliklerin uygulanması için tüm Office uygulaması'leri kapatıp yeniden başlatması gerekir.

Microsoft Office uygulaması lications'ı barındıran diğer uygulamalar da yeni izinlerin uygulanmasını engelleyebilir. Kullanıcılar, güvenlik ilkeleri değiştirildiğinde barındırılan veya tek başına Office kullanan tüm uygulamalardan çıkmalıdır.

Microsoft Office sistemindeki güven merkezi ayarları Eklentileri veya belge düzeyinde özelleştirmeleri etkilemez

Kullanıcılar, Güven Merkezi'nde bir seçenek ayarlayarak VSTO Eklentilerinin yüklenmesini engelleyebilir. Ancak, Visual Studio'da Office çözümleri kullanılarak oluşturulan VSTO Eklentileri ve belge düzeyi özelleştirmeleri bu güven ayarlarından etkilenmez.

Kullanıcı, Güven Merkezi'ni kullanarak VSTO Eklentilerinin yüklenmesini engellerse, aşağıdaki VSTO Eklentileri türleri yüklenmez:

  • Yönetilen ve yönetilmeyen COM VSTO Eklentileri.

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

  • Yönetilen ve yönetilmeyen Otomasyon VSTO Eklentileri.

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

    Aşağıdaki yordamlarda, kullanıcıların VSTO Eklentilerinin Microsoft Office 2013 ve Microsoft Office 2010'da yüklenmesini kısıtlamak için Güven Merkezi'ni nasıl kullanabileceği açıklanmaktadır. Bu yordamlar, Visual Studio'da Office geliştirme araçları kullanılarak oluşturulan VSTO Eklentilerini veya özelleştirmelerini etkilemez.

Microsoft Office 2010 ve Microsoft Office 2013 uygulamalarında VSTO Eklentilerini devre dışı bırakmak için

  1. Dosya sekmesini seçin.

  2. ApplicationNameSeçenekleri düğmesini seçin.

  3. Kategoriler bölmesinde Güven Merkezi'ni seçin.

  4. Ayrıntılar bölmesinde Güven Merkezi Ayarlar'ni seçin.

  5. Kategoriler bölmesinde Eklentiler'i seçin.

  6. Ayrıntılar bölmesinde, Uygulama Eklentilerinin Güvenilen Yayımcı Tarafından İmzalanması Gerektir'i veya Tüm Uygulama Eklentilerini Devre Dışı Bırak'ı seçin.