Bir yığın izlemesi kullanıcıya sunulan hata mesajında ​​mı olmalıdır?


45

İşyerimde biraz tartışmıştım ve kimin doğru olduğunu ve yapılacak doğru şeyin ne olduğunu anlamaya çalışıyorum.

Bağlam: müşterilerimizin muhasebe ve diğer ERP işleri için kullandığı bir intranet web uygulaması.

Kullanıcıya sunulan bir hata mesajının (işler çökerken) yığın izlemesi de dahil olmak üzere mümkün olduğunca fazla bilgi içermesi gerektiği kanısındayım. Tabii ki, büyük, dostça bir harfle güzel bir "Hata oluştu, lütfen geliştiricilere aşağıdaki bilgileri gönderin" ile başlamalıdır.

Akıl yürütme, çökmüş uygulamanın ekran görüntüsünün çoğu zaman kolayca ulaşılabilen tek bilgi kaynağı olacağı yönündedir. Elbette, müşterinin sistem yöneticisini (yöneticilerini) tutmaya çalışabilir, günlük dosyalarınızın nerede olduğunu açıklamayı deneyebilirsiniz, ancak bu muhtemelen yavaş ve acı verici olacaktır (çoğunlukla müşteri temsilcilerine danışın).

Ayrıca, anında ve eksiksiz bir bilgiye sahip olmak, istisnada ihtiyacınız olanı bulmak için günlük dosyalarını araştırmak zorunda kalmayacağınız gelişimde son derece kullanışlıdır. (Ancak bu bir yapılandırma anahtarıyla çözülebilir.)

Ne yazık ki, bir tür "Güvenlik denetimi" olmuştur (kaynaklar olmadan nasıl yaptıkları hakkında hiçbir fikriniz yoktu ... ama her neyse) ve onları bir güvenlik tehdidi olarak nitelendiren istisna mesajlarından şikayetçi olmuşlardır. Doğal olarak, müşteriler (bildiğim en az bir tane) bunu gerçek değeri ile almış ve şimdi mesajların temizlenmesini talep ediyor.

Potansiyel bir saldırganın daha önce çözemediği bir şeyi bulmak için yığın izini nasıl kullanabileceğini göremiyorum. Hiç kimse var mı, bunu yapan herhangi birinin belgelenmiş bir kanıtı var mı? Bence bu aptalca fikirle savaşmalıyız, ama belki de aptalım, yani ...

Kim haklı?


25
Vay. Sadece ... vay. " Unfortunately there has been some kind of "Security audit"" - Cidden mi? Bu ne biçim bir tutum? Güvenlik denetimleri sizin yararınıza - sistemlerinizi daha iyi hale getirmek, kötü adamlardan önce sorunları bulmak için. Gerçekten onlarla çalışmayı denemelisin, onlara karşı değil. Ayrıca, Bilgi Güvenliği'ndeki Güvenlik PoV'u hakkında daha fazla bilgi edinmeyi deneyebilirsiniz .
AviD

7
Ve btw, bir güvenlik denetiminin mutlaka kaynak koduna erişmesi gerekmez, muhtemelen kötü niyetli bir kullanıcının ne yapabileceğini simüle eden bir kara kutu penetrasyon testi yaptılar - uygulamaya bir kullanıcı olarak saldırmaya çalışın. Kaynak koduna erişimin çok daha etkili bir denetim şekli sağlayabileceğini kabul etmeme rağmen. :-)
AviD

1
@AviD - gerçekte, neyi analiz ettiklerini bilmiyorum, ancak bazı raporlardan bana kara kutu testi gibi göründüğünü gördüm. Dürüst olmak gerekirse, onlara karşı çalışmak istemiyorum. Gerçekten, duyduğumda haberi beğendim. Ancak onların bu "kırılganlığı" bana aptalca geliyor. Her güvenlik kararında, kullanılabilirliği azaltma konusundaki tehdit azaltmasını değerlendirmek zorundasınız. Bu durumda, kullanılabilirliği güvenliği artırdığından daha fazla azalttığını düşünüyorum.
Vilx

1
Tartım konusunda çok katılıyorum, ancak başvurusu konusunda aynı fikirde değilim. Güvenliği düşündüğünüzden daha fazla zedeliyor ve ayrıca sizin tarzınızdan da (bazılarını konuştuğum sürece, bunu kendi başıma yaptım .....) kullanılabilirlik için daha kötü olduğunu düşünüyorum. Bunu göreve yönelik terimlerle düşünün - @ Jon'un cevabının dediği gibi, kullanıcının işini çok daha iyi hale getirir. Kullanıcının yığınla ilgilenmesi gerekmez (kullanıcılarınız geliştiriciler değilse ...) Ancak uzmanlığım güvende - ve riskler gerçek.
AviD

1
@AviD - Belki bir yığın izlemenin nasıl tehlikeli olabileceğini açıklayan bazı kaynakları bana gösterebilirsin? Bunu kabul etmeye hazırım, ancak "sadece neye ihtiyacın olduğunu göster" in genel ilkesinden daha fazlasını istiyorum.
Vilx

Yanıtlar:


73

DB'de veya dosyada bir uygulama günlüğü oluşturma eğilimindeyim ve tüm bu bilgileri buna kaydederim. Ardından, kullanıcıya hatanın hangi günlük öğesine bağlı olduğunu belirten bir hata numarası verebilir, böylece geri alabilirsiniz. Bu model, kullanıcılar onları yanınıza almakla uğraşmasalar bile hataları izleyebildiğiniz için kullanışlıdır, böylece sorunların nerede olduğu hakkında daha iyi bir fikir edinebilirsiniz.

Siteniz bir müşterinin ortamına kuruluysa ve erişemiyorsanız, sizi hata no'ya dayalı olarak bir miktar özü göndermesi için yerinde BT departmanından alabilirsiniz.

Dikkate alabileceğiniz diğer bir şey de, sistemdeki hataları ayrıntılarını gördüğünüz bir posta kutusuna e-postayla göndermektir, bu nedenle sorunların ne zaman gittiğini bilirsiniz.

Temel olarak, bir şey doğru olmadığında bağırsaklarını döken bir sisteme sahip olmak, teknik olmayan kullanıcılara güven vermez - bir şeyi çok yanlış olduğunu düşünmeye korkutma eğilimindedir (örneğin, ne kadar BSOD anlıyorsunuz ve nasıl biri geldiğinde hissedebiliyor musun?

İstifte:

Net'te yığın izlemesi tam izlemenin temelini MS kaynaklı meclislere gösterecek ve kullandığınız teknolojiler hakkında detaylar ve olası sürümleri de ortaya çıkaracaktır. Bu, davetsiz misafirlere, sömürülebilecek olası zayıflıklar hakkında değerli bilgiler verir.


6
Cevabını sevdim çünkü “orta yol” sunuyor - gösterme, ama istisnaların aranmasını kolaylaştır. Şimdi bunun için zorlamaya çalışacağım, umarız kabul edeceklerdir. Teşekkür ederim!
Vilx

2
Sanırım bu hemen hemen standart "olgun" yaklaşım. Ayrıca, stacktrace bilgi hazinesi veriyor, ancak henüz durum bilgisini stacktrace ile birlikte otomatik olarak kaydedebilecek bir çözüm bulamadım (her yerde kod değişikliği olmadan). Kendi hata ayıklayıcınızı yazmanız ve takmanız, bunun mümkün bir yoludur, ancak uygulanması önemsizdir.
Daniel B,

@DanielB: Web uygulamalarında oturum / önbellekten bazı genel şeyleri (userid, clientid vb.) Almak mümkündür - "küresel olarak" devam ettiği için, bu kadar bilgi bile hataları çoğaltmanıza yardımcı olabilir. Bundan daha zerre dediğin gibi çok zor.
Jon Egerton

2
Çok kritik uygulamaların bazı kullanıcıları normal iş akışını engelleyen herhangi bir hatanın derhal çözümlenmesini ister. Sadece hata çözücünün hata yığınını ele alması için çeşitli disiplinleri içeren tüm iletişim süreci, hata gece veya hafta sonları geç saatlerde meydana geldiğinde, 1 saat veya daha fazla tüketebilir.
Tulains Córdova

1
@ user1598390: Anlaşılan, bu durumda, hata ayrıntılarının izlenen bir destek posta kutusuna kopyalanması, destek personelinin kullanıcı tarafından bile bir şeyler bozulduğunu bildiği noktaya kadar bilgi toplanmasını hızlandırabilir.
Jon Egerton

29

Evet, çok var.

Bir yığın izi ortaya çıkarabilir

  • hangi şifreleme algoritmasını kullanıyorsunuz
  • Uygulama sunucunuzda varolan bazı yollar nelerdir?
  • Düzgün bir şekilde temizliği sağlayıp sağlamadığınız
  • nesneleriniz dahili olarak nasıl referans verilir?
  • veritabanının hangi sürümü ve markası sizin önünüzün arkasında

... Liste uzayıp gidiyor. Temel olarak, büyük bir uygulamadaki her tasarım kararı güvenlikle ilgili olabilir ve neredeyse hepsi yöntem veya modül adları ile verilebilir. Sizi unutmayın, bu, gönderildiği ortam güvenliyse (örneğin internete bakan bir web sitesi yerine bir intranet), yığın izlemenin görüntülenmesinin mantıklı olmadığı anlamına gelir, ancak güvenlikteki maliyet kesinlikle sıfır değildir .


6
Çoğunlukla aynı fikirdeyim, ama bunlardan bazıları önemli olmamalı. Örneğin, kullandığınız şifreleme algoritmasının sisteminizi güvenceye almak için gizli olması gerekmez.
Oleksi

3
Önemli olmamalı, ama dünya kusurlu ve sık sık. Bu nedenle derinlemesine savunma (aynı anda mükemmel olsaydı yeterli olması gereken birçok şeyi yapmak ) önemlidir.
Kilian Foth

3
Açıkçası, eğer bir yığın izi bir saldırgana yardım edebilecek herhangi bir şey ortaya çıkarsa , o zaman yanlış yaparsınız !
Mark Booth,

3
@MarkBooth istatistiksel muhtemelen, konuşma vardır yanlış yapıyor. Hayır, tırmalamak - bir kısmını yanlış anladığınızın istatistiksel kesinliği . Gerçekten, saldırganların sizden önce güvenlik hatalarınızı bulmasına izin vermek istiyor musunuz?
AviD

1
@AviD - Hayır, kullanıcılara yığın izlerini göstermemenin en zorlayıcı nedeni, onlarla ne yapacakları konusunda hiçbir fikirlerinin bulunmamasıdır ve kayıt sisteminiz ekran kapmaktan çok daha fazla durum yakalayabilmeli hiç bir web sayfasının.
Mark Booth,

15

Mesele şu ki, işleri daha kolay hale getirmek bizim öncelikli işimiz değil. Son kullanıcıdaki işleri kolaylaştırmak bizim işimiz. Bize göre bir yığın iz, bir geliştirici sağlamak için son derece yararlı bir bilgi parçasına benziyor. Bir kullanıcı için, hiçbir işe yaramazsa, tamamen saçma gibi gözüküyor. Onlara aksi söyleseniz bile, içselleştirmezler. Bu bilgiyi sistem yöneticilerinden almanın zor olduğunu düşünüyorsanız, bunu son kullanıcılardan almak daha da kötüdür.

Güvenlik söz konusu olduğunda, bir masaüstü uygulaması olsaydı bir noktaya sahip olabilirsiniz. Bu durumda, yığın izleme yazdırmak, saldırganın bilmediği bir şey sağlamıyor. Bir web uygulamasında, bu bilgiler bir saldırgan için zaten mevcut değil. Gerçekten de bir saldırıyı çok kolaylaştıracak iç detayları açığa çıkarıyorsunuz .

Neden her iki kaygı kaynağını atlamıyor ve istisna raporlarını size otomatik olarak göndermiyorsunuz? Bu şekilde, insanlar hata bildirmediği için endişelenmenize gerek kalmaz.


2
Kullanıcılar, yığın izlemesinin sağladığı bilgiler sayesinde sorunlarının hızlı bir şekilde çözülmesinden yararlanır. Ama ben senin fikrini anlıyorum.
Tulains Córdova,

11

IT Security SE'nin bu sorusuna bir göz atın . Kısacası, yığın izleme saldırgana çalışması için daha fazla bilgi verebilir. Saldırganın sahip olduğu bilgi ne kadar fazlaysa sisteminize girme olasılığı da o kadar artar. Güvenliğimi yığın izlerinin her zaman gizli olduğu gerçeğine dayandırmazdım, ama bu aynı zamanda bu bilgiyi saldırganlara vermeniz gerektiği anlamına gelmez.

Faydaların çoğunu yine de doğru arka uç günlüğünden alabilirsiniz. Biraz daha az uygun, ancak muhtemelen sisteminizin güvenliğini riske atmaya ve müşterilerinizi üzmeye değmez.


8

Aşağıdaki nedenlerle bir yığın izlemesi göstermemeyi düşünebilirsiniz.

Güvenlik

Bir yığın iz gösterilmesi, bilgisayar korsanları olabilecek olası saldırı yüzeylerini ortaya koymaktadır. İntranetler, bilgisayar korsanlarına karşı bağışık değildir. Eğer sorumlu olduğunuz bir uygulama nedeniyle ağınız hacklendiyse, bu size kötü bir şekilde yansır.

Kullanıcı deneyimi

Kullanıcının en iyi deneyimi için, bir zorlama izi çok fazla bilgidir. Evet, bir hata durumuyla ilgili doğru bilgiler günlüğe kaydedilmeli ve bir mühendis tarafından dikkat edilmelidir. Ancak, bir kullanıcıyı otomatik hale getirebildiğiniz şeyi yapmak için kullanmak, kullanıcı için en iyisi olmayacaktır.

İtibarınız

Bir web sitesinde bir yığın iz gösterildiğinde, kötü görünüyor. Çoğu insan ne olduğu hakkında hiçbir fikre sahip değildir ve bu da web sitesinin kendileri için uygun olmadığını düşündürmektedir. Ne olduğunu bilenler için, uygulamanın iyi düşünülmediğinin bir göstergesi olabilir. Çok kötü yazılmış uygulamalar, ASP.Net gibi bazı çerçevelerde varsayılan olduğu için yığın izlerini çok sık gösteriyor.


6
Bir Yazılım geliştiricisi olarak, ekranda bir yığın izi gördüğümde, derhal "Benim hatalarla uğraşmak hakkında hiçbir şey bilmeyen, onlar için daha az ve belki de kullanıcılar hakkında daha az umursayan bir bozo". Diğerleri "Bu berbat bir yazılımdır, işe yaramazsa, hata işlemesi işe yaramaz" ve "WTF ...." Bu adamlar işini onun için yapmıyorum "etrafında dönüyorlar. Bunu düzeltmek için yapması gerekiyor. Yığın izi bunu nasıl yapar?
mattnz

6

Kısa cevap: Bir extranet veya internet sitesinde, yığın izini göstermemek mantıklıdır. Bir intranette, top yığınını göstermenin yararları, onu gizleme avantajlarını aştı.

Uzun cevap:

Aynısı işte bana da oldu. Bir uygulama başarısız olursa, gürültünün arızalanması gerektiğini düşünürdüm.

Fakat daha sonra bana, potansiyel bir hackerın bir yığından çok şeyleri infekte edebileceğini açıkladılar.

Bence kanıtlamaya gerek yok. Bir bilgisayar korsanı platformunuz hakkında ne kadar çok şey bilirse, onun için o kadar iyi olduğu ve bir bilgisayar korsanının platformunuz hakkında ne kadar az şey bildiği açıktır .

Ayrıca şirketler bir bilgisayar korsanının sistemlerine nasıl girdiğini açıklamaya istekli değillerdir.

Öte yandan, bu bir intranet , ve bir günlük dosyasını aramak zorunda kaldığında derhal neyin yanlış gittiğini bilmenin avantajlarının büyük bir avantaj olduğunu düşünüyorum ve şirketinizin sınırları içinde bir yığınlık göstermenin güvenlik riskleri kadar yüksek değil. onlar söylüyor.


1
Bazıları “anında neyin yanlış gittiğini bilmenin avantajları” nelerdir ve neden bir günlük dosyasından alınamıyorlar? Bir İntranet ile, bir günlük dosyasına bir istemci sitesinden daha kolay erişebiliyorsunuz.
Wonko Sane

Senaryomda "7/24" önceliği olan kritik uygulamalar var. Kullanıcı çağrısı yardım masası, eğer sorun bir uygulama hatası veya istisna ise, yardım masası belki tesis dışından bakıcıyı arar. Hata bilgisiyle, uzman bir şirket kişisine geçici bir çözüm önerebilir ... Çoğu zaman uygulama iş için kritik öneme sahipse, zaman tasarrufu çok önemlidir. Eğer öncüllerin dışında şirkete bağlanmak, kayıt defterinde aramak, vb. konusunda uzman varsa, kritik bir iş fonksiyonu gereksiz yere bekliyor olabilir.
Tulains Córdova

3
@ user1598390 bir kayıt görüntüleme mekanizması oluşturun. Basit bir web sayfası, olay kimliğini girin ve yardım masası ilgili kaydın tamamını görebilir. Tabii ki bu özelliğe erişimin sınırlanması ve bunun gibi ...
AviD

Bir uygulamanın şirketinizin intranetinde olması, üzerinde kötü amaçlı kullanıcı olmadığı anlamına gelmez. Bir iç sistemi kendi çıkarları için kötüye kullanma ihtimali olan hoşnutsuz çalışanlar var. Bu çalışanlar şirket ve politikaları hakkında çok şey bildikleri için, bir iç bilgisayar korsanından daha tehlikeli olabilirler. Günlük dosyalarını incelemek, özellikle iyi bir uygulama izliyorsanız ve ayrıca belirli bir hata günlüğü dosyasına hataları günlüğe kaydederseniz, oldukça önemsiz bir iştir.
cliff.meyers

5

Teslim edilen herhangi bir üründe, bu hata türünün beklenen sayısı sıfır olmalıdır. Bu bilgilerin müşteriye faydası sıfırdır. Her iki durumda da yığın izi sunmak için hiçbir neden yoktur. Yararlı bir bağlam varsa, yığın izlemesi olarak değil, müşteri dostu bir şekilde sunulmalıdır.

Öte yandan, gerçek olay sayısı sıfır değilse, bu bilgilere umutsuzca ihtiyacınız vardır ve müşteriye size göndermesi için güvenmemelisiniz. Zamanın% 99,99'unu almayacaklar. Bilgileri otomatik olarak gönderen ve müşteriden sadece "tamam" olan bir hata raporlama sistemi kurmalısınız.


Bu cevabı yalnızca aşağıdaki satır için geçersiz kıldım: "Bu bilgilerin müşteriye faydası sıfırdır." . Ürünün iç kısımları ile ilgili tüm teknik detaylar, ürünün son kullanıcısı için basitlik ve kullanılabilirlik nedeni ile yapılmaması için iyi bir neden olmadıkça gizlenmelidir.
Kjartan
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.