Active Directory'mi uzaktaki kullanıcılar için genel İnternet'e mi maruz bırakmalıyım?


46

İş gücü tamamen uzak çalışanlardan oluşan ve Apple ve Windows 7 PC / dizüstü bilgisayarların bir karışımını kullanan bir müşterim var.

Kullanıcılar şu anda bir etki alanına karşı kimlik doğrulaması yapmıyor, ancak kuruluş çeşitli nedenlerden dolayı bu yönde hareket etmek istiyor. Bunlar şirkete ait makinelerdir ve şirket hesap devre dışı bırakma, grup politikası ve bazı hafif veri kaybını önleme (uzak medya, USB, vb. İşlevini devre dışı bırakma) üzerinde bir kontrol sahibi olmayı hedeflemektedir. Özellikle uzak çalışan bir çalışanın kesişme noktasında hantal olacaktır ve uzaktaki bir makinede önbelleğe alınmış kimlik bilgileri.

Kuruluştaki çoğu hizmet Google tabanlıdır (posta, dosya, sohbet vb.), Bu nedenle tek etki alanı hizmetleri DNS ve Cisco ASA VPN'lerinin yetkisidir.

Müşteri , etki alanı denetleyicilerini halka maruz bırakmanın neden kabul edilebilir olmadığını anlamak ister . Buna ek olarak ne olduğunu dağıtılmış uzak işgücü için daha kabul edilebilir alanı yapısı?

Düzenle:

Centrify , bir avuç Mac istemcisi için kullanılmaktadır.


4
BURADA ilgili bir soru var . Harici hizmetlerin AD'nize senkronize veya kimlik doğrulaması yapmasına izin vermek korkunç bir uygulama değildir, ancak etki alanı denetleyicilerinizi açık bir DMZ'ye yerleştirmek, özellikle de istediğiniz gibi çok güvensizdir. Güvenlik mevcut değilse, çeşitli potansiyel saldırılar ve sorunlar talep ediyorsunuz. Buna karşı şiddetle tavsiye ediyorum ve yerel cihaz kullanıcıları ile Sonicwall gibi bir güvenlik duvarından bir VPN veya VPN istemcisi öneririm.
Mike Naylor

10
Her zaman açık, makine çapında, otomatik olarak yeniden bağlanan, sertifika tabanlı bir VPN kurun. (OpenVPN, DirectAccess, vb.) VPN kimlik doğrulaması kullanıcı hesaplarına bağlı değildir ve kullanıcının VPN yazılımı ile doğrudan bir etkileşimi yoktur.
Zoredache

DA mükemmel, ancak müşterinin karşılamadığı ciddi son nokta gereksinimleri var (Mac, elbette.)
mfinni

1
+10 - Zoredache'in önerisi için.
Evan Anderson

7
Son kullanıcı cihazlarını yedeklüyorsanız, yanlış yaparsınız. Son kullanıcı cihazlarını USB üzerinden yedeklüyorsanız, gerçekten yanlış yapıyorsunuzdur.
MDMarra

Yanıtlar:


31

Bunu temel olarak cevap olarak gönderiyorum çünkü herkesin BT içindeki deneyime, 3. parti bilgisine, duyarsızlığa ve kabile bilgisine dayanan kendi "eğitimli görüşü" var, ancak bu daha çok doğrudan Microsoft'tan yapılan alıntıların ve okumaların bir listesi. Fiyat teklifi kullandım çünkü çalışanlarının fikirlerini tam olarak filtreleyemediklerinden eminim, ancak authoritativeMicrosoft'tan doğrudan referans alıyorsanız, bunun da faydası olmalı .


BTW, ayrıca DOMAIN CONTROLLER == ACTIVE DIRECTORY'i söylemenin çok kolay olduğunu düşünüyorum. AD FS proxy'leri ve diğer araçlar (OWA, EAS vb. İçin kimlik doğrulaması temelli formlar), müşterilerin en azından DC'leri göstermeden AD üzerinden kimlik doğrulaması yapmalarını sağlamak için AD'yi web'e "gösterme" yolu sunar. Birinin OWA sitesine gidin ve giriş yapmaya çalışın ve AD , bir arka uç DC'de kimlik doğrulama talebinde bulunacak , böylece AD ​​teknik olarak "açık" kalıyor, ancak SSL üzerinden güvence altına alınıyor ve bir Exchange sunucusu üzerinden proksize ediliyor.


Alıntı # 1

Windows Azure Sanal Makinelerinde Windows Server Active Directory'yi Dağıtma Yönergeleri

Gitmeden önce "Azure AD değil" ... ADDS'yi bir Azure VM'de dağıtabilirsiniz.

Ancak ilgili bitleri alıntılamak için:

STS'leri asla doğrudan Internet'e maruz bırakmayın.

En iyi güvenlik yöntemi olarak, STS örneklerini bir güvenlik duvarının arkasına yerleştirin ve Internet'e maruz kalmamak için bunları şirket ağınıza bağlayın. Bu önemlidir, çünkü STS rolü güvenlik belirteçleri yayınlar. Sonuç olarak, bir etki alanı denetleyicisi ile aynı koruma düzeyiyle işlem görmeleri gerekir. Bir STS'nin tehlikeye atılması durumunda, kötü niyetli kullanıcılar, güvenen kuruluşlardaki bağlı uygulamalara ve diğer STS'lere güvenmeyi seçtikleri iddialarını içeren erişim belirteçleri yayınlama olanağına sahiptir.

ergo ... etki alanı denetleyicilerini doğrudan Internet’e maruz bırakma.

Alıntı # 2

Active Directory - AD LDS'nin UnicodePwd Gizemi

Etki alanı denetleyicisini Internet’e maruz bırakmak normalde kötü bir uygulamadır; maruz kalmanın doğrudan üretim ortamından mı yoksa bir çevre ağı üzerinden mi geldiği. Doğal alternatif, çevre ağında çalışan Active Directory Basit Dizin Hizmetleri (AD LDS) rolüne sahip bir Windows Server 2008 sunucusu yerleştirmektir.

Alıntı # 3 - MS'ten değil ... ama hala ileriye bakmakta yararlı

Hizmet Olarak Active Directory? Azure, Intune bulut tarafından barındırılan bir AD geleceğine yönelik ipucu

Sonunda, bir Azure alternatifi karşılığında AD sunucusunun ofisini kurmayı hedefleyen büyük bir "kısa" cevap yoktur. Microsoft, müşterilerin Azure'da Server 2012 ve 2008 R2 Kutularındaki Active Directory Etki Alanı Hizmetlerini Azure'da barındırmasına izin verme konusunda endişeli olsa da, yararları yalnızca çalışanlarınız için toplayabileceğiniz VPN bağlantısı kadar iyidir. DirectAccess, çok umut verici bir teknoloji olsa da, talihsiz sınırlamaları nedeniyle ellerini bağladı.

Alıntı # 4

Tek oturum açma ve Windows Azure Sanal Makineleri ile AD DS veya AD FS ve Office 365'i dağıtma

Etki alanı denetleyicileri ve AD FS sunucuları hiçbir zaman doğrudan Internet’e maruz bırakılmamalı ve yalnızca VPN üzerinden erişilebilir olmalıdır


Bu, makul bir cevaptır, ancak ilk alıntı, tavsiyeyi dikkate almazsanız ne kötü şeyler olabileceği hakkında bir şeyler söylese de
Casey,

19

Active Directory (AD) bu tür bir dağıtım için tasarlanmamıştır.

Ürünün tasarımında kullanılan tehdit modelleri, ağ sınırında filtrelenen bazı düşmanca oyuncularla "güvenlik duvarının arkasında" konuşlandırmayı varsayar. Windows Server'ı genel ağa maruz kalacak şekilde kesinlikle sertleştirebilseniz de, Active Directory'nin doğru çalışması, halka açık ağlar için sertleştirilmiş bir ana bilgisayardan kesinlikle daha gevşek olan bir güvenlik duruşu gerektirir. AD'nin düzgün çalışması için bir çok hizmet Etki Alanı Denetleyicisinden (DC) maruz bırakılmalıdır.

Zoredache'ın yorumlarda önerisi, özellikle makine genelinde hizmet sertifikası doğrulaması olarak çalışan OpenVPN gibi bir şeye gönderme yapmak, sadece uygun olabilir. DirectAccess, diğerlerinin de belirttiği gibi, tam olarak ihtiyacınız olan şeydir, ancak istediğiniz platformlar arası desteğe sahip olmaması dışında.

Bir kenara olarak: AD'yi doğrudan İnternet'e göstermek için sertifika tabanlı taşıma modu IPSEC kullanma fikrini kullandım, ancak bunu yapmak için gerçekten hiç zamanım olmadı. Microsoft, sözde bunu mümkün kılan sözde Windows Server 2008 / Vista zaman diliminde değişiklikler yaptı ancak ben aslında hiç kullanmadım.


2
Bir hizmet olarak çalışan OpenVPN için +1, bu yaklaşımı yol savaşçılarıyla geçmişte başarıyla kullandım. Yine de, Sr sys yöneticilerinden gelen karışık duygular vardı, çünkü özellikle bir makine tehlikeye girerse , bu ağa otomatik bir arka kapı gibi geliyordu . Elbette geçerli kaygılar, her ortam için olsa da, yararların riske ağır basıp basmadığını sormaları gerekir ....?
MDMoore313

2
Microsoft, IPSec ile ortak ağda kendi şirket ağlarını yönetmektedir. Yani yapılabilir.
Michael Hampton

1
@MichaelHampton ancak Windows Güvenlik Duvarı ve IPSec ile etki alanı yalıtımı kullanıyorlar, bu nedenle "Internet'te AD" değil "internette AD ve bunun yerine güvenlik duvarının ana bilgisayar tabanlı güvenlik duvarı kurallarını kullanarak sağlayacağı bir güvenlik bölgesinde" değil
MDMarra

2
@ MDMoore313 - Sertifika iptal FTW, kullanıcının çalınan makineyi hızlı bir şekilde rapor etmesi gerekebilir.
Evan Anderson,

Bağlantıdan sonra oturumu kapatmak için belirli VPN istemcilerinin (örneğin Ardıç) kullanmasının da yolları vardır. Eski GINA'nın aşıladığı kadar hoş değil, ancak VPN'de AD'ye kimlik doğrulaması yapması ve GPO'ları alması için kullanıcının tekrar giriş yapmasını sağlıyor. Önbelleğe alınmış kimlik bilgileriyle giriş yapın, gerekirse VPN'i başlatın ve sizi derhal kapatır ve tekrar giriş yaparken bağlantıda kalır.
TheCleaner

15

Diğerlerinin söylediği. Christopher Karel'in bahsettiği kaba kuvvet girişimleri konusunda özellikle gerginim. Son Def Con'da bir sunum konuyla ilgiliydi:

Yani, Etki Alanı Denetleyicinizin Güvenli Olduğunu Sence?

JUSTIN HENDRICKS GÜVENLİK MÜHENDİSİ, MICROSOFT

Etki Alanı Denetleyicileri bir kuruluşun taç mücevherleridir. Düştüklerinde, etki alanındaki her şey düşer. Kuruluşlar, etki alanı denetleyicilerini güvence altına almak için çok fazla çaba harcarlar, ancak genellikle bu sunucuları yönetmek için kullanılan yazılımı düzgün şekilde güvenceye almazlar.

Bu sunum, kurumların kullandığı ve kullandığı yaygın olarak kullanılan yönetim yazılımını kötüye kullanarak etki alanı yöneticisi kazanmak için geleneksel olmayan yöntemleri kapsayacaktır.

Justin Hendricks, kırmızı takım, penetrasyon testi, güvenlik araştırması, kod inceleme ve araç geliştirme konularında çalıştığı Office 365 güvenlik ekibinde çalışıyor.

Eminim başka birçok örnek bulabilirsin. Etki alanı denetleyicileri hakkında makaleler arıyordum ve DC'nin ne kadar hızlı bir şekilde bulunacağını, vb. Açıklamasını alma umuduyla haberi alıyordum, ancak bunun için yapacağımı düşünüyorum.


1
İşte Hendricks'in sunum videosu: youtube.com/watch?v=2d_6jAF6OKQ DefCon 21 videolarını izlemek istiyorum ve bununla başlayacağımı düşünüyorum.
Evan Anderson

14

Yönetimi ikna etmeye çalışıyorsanız, iyi bir başlangıç ​​olacaktır:

It goes against Microsoft's Best Practices for Active Directory Deployment.

Güncelleme : Etki alanı denetleyicilerini saldırılara karşı güvence altına almakla ilgili bu teknik makaleye ve bunun başlıklı bölüme bakın Perimeter Firewall Restrictions:

Perimeter firewalls should be configured to block outbound connections
from domain controllers to the Internet. 

Ve Blocking Internet Access for Domain Controllershangi başlıklı bölüm :

Launching web browsers on domain controllers should be prohibited not only
by policy, but by technical controls, and domain controllers should not be
permitted to access the Internet

Bu konuda bazı Microsoft belgelerini hazırlayabileceğinize eminim, o kadar. Buna ek olarak, böyle bir hareketin tehlikelerini, aşağıdakiler boyunca bir şeyi belirtebilirsiniz:

A gaping hole would be created, possibly resulting in severe data loss and/or loss of company secrets.

Önbelleğe alınmış kimlik bilgileri tam olarak bu - önbelleğe alınmış. Etki alanına bağlanamadığında yerel makine için çalışırlar , ancak bu hesap devre dışı bırakılırsa herhangi bir ağ kaynağı için çalışmaz (svn, vpn, smb, fbi, cia, vb.), Bu yüzden endişelenmeleri gerekmez. . Ayrıca, kullanıcıların zaten zaten yerel bir makinedeki profil klasöründeki herhangi bir dosya (ve muhtemelen çıkarılabilir medya) üzerindeki tüm haklarına sahip olduklarını, bu nedenle devre dışı bırakılmış kimlik bilgilerinin bu verilerle istediklerini yapabileceklerini unutmayın. Ayrıca, ağa yeniden bağlandığında yerel makine için çalışmazlar.

LDAP gibi Active Directory veya bir Etki Alanı Denetleyicisinin sağladığı hizmetlerden mi bahsediyorsunuz? Öyleyse, LDAP genellikle kimlik doğrulama ve dizin sorgulama amacıyla güvenli bir şekilde bozulur, ancak yalnızca Windows Güvenlik Duvarı'nı kapatmak (veya gerekli tüm bağlantı noktalarını halka açmak - bu örnekte aynı şey) ciddi sorunlara neden olabilir.

AD, Mac'leri gerçekten yönetmiyor , bu nedenle ayrı bir çözüm gerekli olacak (OS X Server'ı düşünün). Bir Mac'e bir etki alanına katılabilirsiniz, ancak bu, ağ kimlik bilgileriyle kimlik doğrulamalarına izin vermekten çok daha fazlasını yapar, etki alanı yöneticilerini mac'ta yerel yöneticiler olarak ayarlar, vb. Grup politikası yok. MS, uygulamaları mac'lara ve * nix kutularına dağıtabildiğini iddia eden daha yeni SCCM sürümleriyle bu temeli atmaya çalışıyor, ancak henüz bir üretim ortamında görmedim. Ayrıca, mac'ları AD tabanlı dizininize doğrulayacak olan OS X Server'a bağlanacak şekilde yapılandırabileceğinize inanıyorum, ancak hatalı olabilirim.

Bununla birlikte, Evan'ın bir hizmet olarak OpenVPN'i kullanma önerisi ve bu çalışanın gitmesine izin verme zamanı geldiğinde makine sertifikasını devre dışı bırakmak gibi bazı yaratıcı çözümler tasarlanabilir.

Her şey Google tabanlı gibi görünüyor, bu yüzden Google ldap sunucunuz olarak mı hareket ediyor? Müvekkilimin mümkün olduğunca mümkünse bu şekilde kalmasını tavsiye ederim. İşletmenizin doğasını bilmiyorum, ancak git veya redmine sunucusu gibi web tabanlı uygulamalar için, evde kurulum OAuth ile kimlik doğrulaması yapabiliyor olsa bile, bir Google hesabından yararlanarak.

Son olarak, bunun gibi bir roadwarrior kurulum neredeyse ediyorum gerektiren başarılı olmak için VPN. Makineler ofise getirildikten ve yapılandırıldıktan sonra (veya komut dosyasıyla uzaktan yapılandırılmışsa), yapılandırmada herhangi bir değişiklik almanın bir yoluna ihtiyaç duyarlar.

Mac'lerin VPN'ye ek olarak ayrı bir yönetim yaklaşımına ihtiyacı olacak, artık gerçek mac sunucuları yapamayacakları çok kötü, ancak en son kontrol ettiğimde (birkaç yıl önce OS X Server'da bazı iyi politika uygulamaları yapmışlardı) ).


Aslında, Centrify bu ortamda bir avuç Mac sistemiyle ilgili politikayı yönetmek için kullanılıyor.
ewwhite

@wwhite, neyi kastediyorsunuz? Merkezi bir kimlik doğrulama yardımcı programından başka bir şeye benzemiyor.
MDMoore313

@ MDMoore313 birkaç saat geç kaldın, kazandım: chat.stackexchange.com/transcript/127?m=13626424#13626424 - :)
TheCleaner

@ TheCleaner haha ​​öyle görünüyor, Bu sefer sen kazandın, Google Fu’nun sanatını iyi biliyorsun, ama tekniğin seni korkutuyor Kung Fu’da korkunç dudaklar sesiyle. Cevabınızı gönderdikten sonra , sizinkilerin bir kopyası olmayan birini bulmak için iki kat daha katı bir şekilde arama yapmak zorunda kaldım !
MDMoore313

2
LOL, endişelenme ... bir dahaki sefere zaferle karşılaştığımızda senin olabilir. (korkunç
lipsync

7

DirectAccess’in yalnızca Win7 + Enterprise Edition’da kullanılabilir olması talihsizdir, çünkü isteğiniz için özel olarak hazırlanmıştır. Ancak sürümünüzü bilmemek ve MacOS'unuz olduğunu görmek işe yaramaz.

/ Edit - bazı üçüncü taraflar Unices için DA müşterileri olduğunu iddia ediyor gibi görünüyor: http://www.centrify.com/blogs/tomkemp/what_is_microsoft_directaccess_and_unix_linux_interoperability.asp

İhtiyaçlarınızı karşılamak için çalışabilecek MDM çözümleri vardır; bunlardan birini (MAAS360) benzer pozisyondaki bir müşteriye ulaştırıyoruz.


5

Bu tabii ki önemli bir güvenlik riski olacaktır. Ayrıca, muhtemelen istediğiniz kadar iyi çalışmaz. İnternetteki rastgele kişiler AD ortamınıza giriş yapmayı deneyebiliyorsa, tüm kullanıcılarınızın kilitleneceği ihtimalleri yüksektir. Sonsuza dek. Kilitleme gereksinimlerinin kaldırılması, basit şifreler için kaba kuvvet kontrolü yapılmasının oldukça kolay olduğu anlamına gelir.

Daha da önemlisi, AD sunucularını doğrudan erişilebilir yapmadan hedefinizi (etki alanı kimlik bilgilerine sahip bir dizüstü bilgisayarda oturum açan son kullanıcılar) uygulamada sorun yaşamamalısınız. Yani, Windows makineleri en son başarılı X oturum açma bilgilerini önbelleğe alabilir, böylece bu aynı kimlik bilgilerinin bağlantısı kesildiğinde çalışır. Bu, son kullanıcıların AD sunucularınıza dokunmaya gerek kalmadan giriş yapıp yararlı işler yapabileceği anlamına gelir. Diğer büyük kurumsal kaynaklara bağlanmak için VPN kullanmaları gerektiği ve aynı zamanda AD / GPO ayarlarını yenileyebilecekleri açıktır.


2
AD, bildiğim kadarıyla hiçbir şey için yayınları kullanmaz (ya da en azından buna bağlı olarak). Bazı teknolojiler WINS sunucusu gerektirebilir, ancak genel olarak AD ile ilgili değilse, yayın isteklerine geri dönebilen WINS gerektirebilir. Yayınlara bağlı olsaydı, yerel DC'ler olmadan uzaktaki kullanıcılarınız olamazdı.
mfinni

2
Bu sırayı düzeltildi. Giriş için teşekkürler. Tabii ki benim gibi bir Linux adamı Windows'ta konuk etmemeli.
Christopher Karel

Öyle "bariz" olsaydı bir soru olmazdı, değil mi?
Casey,

2

Ewwhite,

Sorunuz son derece geçerli ve dikkatli bir incelemeyi hak ediyor.

Tüm güvenlik uzmanları, SPI Güvenlik Duvarları, IDS, Ana Bilgisayar Tabanlı Güvenlik Duvarları, vb. Dahil, herhangi bir ağ kaynağının önünde güvenlik katmanları önerir. Mümkünse, her zaman ISA gibi bir proxy çevre ağ geçidi güvenlik duvarı kullanmalısınız.

Bununla birlikte, Microsoft Active Directory 2003+ 'in genel olarak duyurulan önemli bir güvenlik açığı olmadığı söyleniyor. LDAP teknolojisi ve karma algoritmaları genellikle çok güvenlidir. Eğer bu SSL VPN OpenSSL kullanıyorsa ve kalpten kırılgansa savunmasız, SSL VPN'den daha güvenlidir.

5 şeyi uyarırdım:

  1. Terminal Server, DNS Servisleri, CIFS ve özellikle IIS gibi ağla karşılaşan diğer güvenlik hizmetleriyle ilgili endişe duyun.

  2. Telin üstünde net metin alanı kimlik bilgilerinin aktarılmasını önlemek için LDAPS'yi bir güvenlik sertifikasıyla kullanın. Bu Sertifika Hizmetleri'ni yükledikten sonra otomatik olarak gerçekleşir (PKI için ayrı bir makine kullanın)

  3. Arayüze bir paket dinleyici koyun ve trafiğinizi izleyin, açık metin şifrelerini düzeltin, çünkü güvenlik duvarı olsun veya olmasın, VPN veya LDAPS kullanmıyorsanız, bazı eski sistemler açık metin şifreleri gönderir.

  4. MITM saldırılarının yerel kimlik doğrulama mekanizmalarını, şifreleri zayıflatmaya ve zayıf NTLM kimlik doğrulamasına maruz bırakmaya zorlayabileceğini bilin.

  5. Hala mevcut olabilecek bazı kullanıcı numaralandırma açıklıklarından haberdar olun.

Bununla birlikte, Active Directory güvenlik açısından mükemmel bir geçmişe sahiptir. Ayrıca, MS Active Directory şifreleri saklamaz, yalnızca bir uzlaşmanın ciddiyetini azaltan hash'ler de saklar.

Daha kesintisiz bir güvenlik altyapısından faydalanabilir, özel DNS sunucuları ayarlamanız veya domain.local kullanmanız gerekmez ve gerçek alan adınızı domain.com gibi herkese açık internet üzerinden kullanabilirsiniz.

Profesyonel fikrime göre, Active Directory gibi güvenlik teknolojilerini halka açık bir şekilde kullanmanın önemli bir faydası var; Exchange ve DNS ve Web Sunucuları gibi diğer teknolojilerin fayda ve risk almıyorlar.

Not: Active Directory'yi dağıtırsanız, bir DNS sunucusu içerecektir. DNS sunucularınızdaki özyinelemeyi devre dışı bırakmak için CERTAIN olun (varsayılan olarak etkindir) yoksa kesinlikle hizmet reddi saldırılarına katılıyor olacaksınız.

Alkış,

-Brian


-3

Dell (Quest'i satın alarak (Vintela'yı satın alarak)) bu açık amaç için F500 işletmelerinde sıkça kullanılan bir çapraz platform çözümüne sahiptir .

Düşünülmesi gereken şeyler...

  1. Kullanıcılarınız her zaman bağlı mı? Öyleyse, en çok sayıda aktif kullanıcı LDAP’i zorladığında esnek olabilecek, VM tabanlı esnek bir barındırma ortamına sahip olacaksınız.
  2. Birden fazla fiziksel veri merkezinde mi çalışıyorsunuz? Kullanıcılar ve sistemleriniz arasındaki atlama sayısını azaltmak için AD hizmetlerinin önündeki coğrafi yük dengelemeyi düşünün
  3. Ayrıca, # 2’nin cevabı evet ise, ormanınızı burada gösterildiği gibi çoğaltmak için özel ağ kaynakları kurduğunuzdan emin olun.

Ayrıca güvenlik duvarı çözümünüzün, yüksek çıkışlı bağlantılarda, gürültülü wifi merkezlerinden bağlanma vb.


Bu, Windows makinelerini nasıl yönetir veya internete maruz kalan bir DC gibi herhangi bir şeyi nasıl güvenli hale getirir? Hiç de olduğu gibi okumuyor.
mfinni
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.