Şirketiniz şifreleri şifrelemediğinde ne yapmalı?


13

Arka fon

Bir şirketin sunucularını korumasına yardımcı olmak için sözleşmem var. Bazı küçük PHP projeleri üzerinde çalışıyorum ama aynı zamanda performans sorunları ve son zamanlarda hackerlar için tarama günlükleri bakmak.

Bu adamlar bir süredir sunucularını çalıştırıyor ve son bacaklarında eski bir uygulama olarak adlandırdığım şeye sahipler. Sihirli tırnaklar, genel değişkenler ( $idüzerine yazılmasına izin verir $_GET['id']) kullanır, bazı durumlarda tek güvenlik olarak .htaccess kullanırsınız. Güvenlik ve programlama kabusu.

Geçmişte, çoğunlukla SLEEP(99999999)komutları çalıştıracak ve bir DOS saldırısı gibi davranacak SQL enjeksiyonları ile saldırıya uğramıştık . Neyse ki "küçük bobby masaları" çalıştırmadılar,

http://xkcd.com/327/

XKCD: http://xkcd.com/327/

Bu yüzden onların savunmasız SQL ifadelerini mysql_query()(mysqli değil) PDO işlemlerine yeniden yazdım . Ayrıca , kullanmadığımız ve enjeksiyonların sahip olduğu SLEEPve için olan sorguları da analiz ediyorum UNION. Çok uzak çok iyi.

Son Sayı

Son zamanlarda bize DB'deki kayıtların, e-posta adresleri gibi spam göndericiler tarafından yapılmış olanlara değiştirildiği söylendi.

Sütunlarının bir last_modifiedsütunu olmadığını fark ettim , bu yüzden kimin tarafından değiştirildiğini, ne zaman değiştirildiklerini bile bilemedik. Bu sütunu ekledim, ancak bu neredeyse ilk adım.

Bu tabloya bakarken, şifrelerin tuzlu olmadığını, hatta özetlenmediğini, sadece düz metin olarak kaydedildiğini fark ettim.

Müşteri İletişimi

Bir müteahhit olarak silahlarımı deli gibi sallamadan tüm durum hakkında onlara nasıl yaklaşabilirim? Herhangi bir tavsiye? Sakin bir yaklaşım düşünüyordum,

    SORUN 1
        özet
        Bu neden bir sorun
        Bu düzeltilmezse ne olabilir?
        Önerilen düzeltme

    SAYI # 2
        özet
        Bu neden bir sorun
        Bu düzeltilmezse ne olabilir?
        Önerilen düzeltme
        

Düşüncem, büyük bir hayır olan düz metin şifrelerinden bağımsız olarak. Tüm sorguları PDO olarak değiştirdiyseniz ve e-posta vb bölümünüzde değişiklik olmadığı sürece hazırlanmış ifadeler kullanıyorsanız. E-posta adreslerini değiştirmek için bir SQL sorgusu yürütememelidirler
Liam Sorsby

1
Ben / tüm / sorguları PDO değişmedi, üzgünüm, SQL enjeksiyonları etkilendiğini bulduk olanları değiştirdim.
bafromca

Daha iyi bir çözüm, bir PDO sınıfı eklemek ve daha sonra bu sınıfı site üzerinden uygulamak mıdır? sonra şifreleri hashing düşünün ve bir tuz kullanarak ancak bu belki biraz zaman tüketen bir "Legacy" app olduğunu söylemek adil bir az kullanıcı var varsayalım.
Liam Sorsby

5
Zaten saldırıya uğradığından ve kullanıcı kimlik bilgilerinin bilgisayar korsanlarının eline bırakıldığından, 'ne olabileceğini' 'neler olduğunu' gözden geçirin derim.
James Snell

Görünüşe göre sorunuz sadece müşterinizle iletişim kurmakla ilgili. Dürüst olmak gerekirse, irtibat kişilerini ve onlara nasıl yaklaşacağınızı bilmelisiniz. Sakin kalmak her zaman iyi bir stratejidir, sadece riskleri müşterinize yönlendirin ve aciliyete karar vermesine izin verin.
Doc Brown

Yanıtlar:


15

Önerdiğiniz sakin yaklaşım en iyisi olacaktır. Bu veriler açığa çıktığında, kullanıcılarınızın çoğunun parolanın yeniden kullanılması nedeniyle kimlik hırsızlığına karşı savunmasız olacağına dikkat çekiyor. Bu, bunun Hedef'i etkileyen aynı sorun olduğunu belirtmek için oldukça iyi bir zaman olacaktır (şirketin Hedef olmadığı varsayılarak). Ve yöneticiniz bunu değiştirmeye oldukça açık olmalıdır.

Verilerle ilgili yasal konularda, kullanıcı adının / şifrelerin CC Verileri, Kişisel Bilgiler vb. İle aynı kabul edildiğine inanmıyorum. Ancak, kullanıcılarınız için sahip olduğunuz bilgilere bağlı olabilir. Ben bir avukat değilim ve bu yönler en iyi vahiyinizde gündeme gelecektir ve yasallıkları belirlemek için şirketinizin hukuk departmanına getirilmelidir.

https://en.wikipedia.org/wiki/Information_privacy_law

Ve size yardımcı olacak bu XKCD'ye sahipsiniz:

resim açıklamasını buraya girin


4

Bu, gerçekten buna yaklaşmaya çalıştığınız kitleye bağlıdır. Sizin gibi ciddi güvenlik sorunları olan şirketlerde çalıştım, ancak onlara gösterene kadar duymayı reddettiler.

Mümkünse bir yaklaşım, temelde ne yapmak istediğinizi bir araya getirmektir. Kitleniz teknik değilse, muhtemelen bu tavizlerin sahip olabileceği işletme maliyetini belirtmeniz gerekir. Kesinlikle saldırıya uğramış hesaplar, sisteminizdeki güvenilirliği ve ürününüzün algılanan müşteri değerini azaltır. Kullanıcılar için düz metin şifreleri ve e-posta adresleri bulunan güvenliği ihlal edilmiş bir sistemden bahsetmemek ciddi bir dalgalanma etkisine neden olabilir.

Yapmanız gereken bir sonraki şey, eğer mümkünse, kanıtlamaktır. Bu sistemi bir test ortamında ayağa kaldırabilirseniz yapın. Ardından, uygulamanın istemci tarafında sistem üzerinde ne tür bir etki yaratabileceğinizi önlerinde gösterin. Teknoloji insanlarıyla bile bu benim için oldukça ikna edici oldu (yine de genellikle vakalarımda hareket etmediler).

Tabii ki, dediğin gibi, hangi önlemlerin alınması gerektiğini ve bunu başarma çabalarına ilişkin bir tahmin açıklamanız gerekir. Bazı yerler zaten umursamayacak olsa da, maliyeti haklı göstermelerine yardımcı olacaktır. En azından bilincini temizleyebilir ve denediğini bilerek ilerleyebilirsin.


2

Söylediğiniz gibi, sunucularını korumak için sözleşmeniz varsa, bu sözleşmenin işletim sisteminin bütünlüğü, güvenliği ve kullanılabilirliği, uygulama yazılımı ve tüm verilerin sağlanması gibi iş tanımı görevlerini içermesi gerekir! Sözleşmenin sunucunun güvenli olduğundan emin olmak için beklediği (ve sizi sorumlu tuttuğu) belirsiz bir ipucu varsa, iş davalarını bir araya getirmek için zaman kaybetmezdim ve sadece sorunların giderildiğinden emin olmak için iyi bir iş çıkarırım ( kod değişikliklerinizin geçmiş geçmişini koruyarak önceki ve sonraki yedeklemeler).

Böyle bir değişikliğin sabah değerinde bir işten daha fazlasını almasını beklemezdim ve eğer üzerinde çalıştığınız zamana ne harcadığınızı sorarlarsa, eylemlerinizi açıklamak ve haklı çıkarmak için bir günlük tutabilirsiniz. Sözleşmeniz kapsamında çalışmanız koşuluyla, burada herhangi bir sorun olmamalıdır. Bazen tüm güvenliklerin karar vericilerin önüne geçmesi paniğe neden olur veya en kötü durumda, bu sorunları umursamayacaklarını söyleme fırsatı yaratır, bu yüzden düzeltmeyin, bu arada sözleşmeniz sizi hala sorumlu tutar ihlal! Belki de bu her zaman iş dostu bir yaklaşım değildir, ancak profesyonel etiklerim dikkatimi çekmekten sorumlu olduğum herhangi bir sistemde şifrelenmemiş şifreleri bırakmama izin vermez.

Kişisel deneyimlerime göre, yeni bir işveren ya da müşteri için çalışmaya başladığımda, eğilim senaryoları ve beklentileri tartışmak sizin açınızdan büyük bir stres yaratabilir, örneğin: düzeltebileceğim herhangi bir güvenlik sorunu bulursanız, Her seferinde size gelmeden bu işi bitirip sadece şüpheli ihlal / olaylardan haberdar mı edeyim? Neredeyse her zaman buna evet derler, çünkü onların bakış açısından güvenlik veya bilgisayar işleri hakkında endişelenmek istemiyorlar - bu yüzden sizi işe aldılar! Belki de bu, soruyu beklediğiniz şekilde cevaplamaz, ancak umarım düşünce için yiyecek verir. Size en iyi dileklerimle ve sorunun giderilmesini umuyoruz!


Bu harika bir cevap. Bazen "ön cephedeki karar vericiler" ile ilgili meseleleri gündeme getirmek, değerinden daha fazla paniğe neden olur ve sadece perde arkasında düzeltmek daha akıllıca görünür. Maaşımı kimin ödediğinin arkasında çalışmaktan hoşlanmıyorum ama kişisel sorumluluk meselesi kilit bir argüman. Kolayca şifreleri tuz + karma ve her şey taşındığında opentext şifre sütununu kaldırabilirsiniz. Ancak, en büyük sorun parolaların zaten görüntülenmiş ve yakalanmış olmasıdır.
bafromca

Talihsiz gerçeklik, zamanın ihlalden önceki noktaya geri döndürülemeyeceğidir, bu yüzden iş, belki de müşterilerini ihlalden haberdar edip etmemeye karar vermeleri gerekse de, benim için en önemli şey her zaman daha fazla önlemek için harekete geçiyordu. ihlalleri. Yöneticiler kullanıcılara bir ihlali bildirmek istemiyorsa, bunun yerine müşterilere giriş yaptıktan sonra 'Web sitemizin güvenliğinde yapılan iyileştirmelerin ardından, büyük harf, küçük harf ve rakamlar dahil olmak üzere daha güvenli bir şifre seçmenizi istiyoruz. ve en az 8 karakter uzunluğunda olmalıdır: '.
richhallstoke

0

Şüphesiz, müşterinin e-posta adresini değiştirmek zaten gerçekleşiyorsa ve bu bir sorun olarak kabul ediliyorsa - şifreleri değiştirme yeteneği de bir sorundur.

Şimdi, DB'nin gelecekte olmasını önlemek için yeterince güvenli hale getirdiyseniz, herkesin kullanıcının şifresini düzenleyebilme şansı benzer şekilde sabittir ve sadece birisinin şifreyi şimdi okuyabilip okuyamayacağını düşünmeniz gerekir.

Tabii ki eğer yapabilirlerse veya ( olası bir durumda) DB'yi tamamen güvence altına almamışsanız, kesinlikle şifreleri şifrelemek gerekir - nasıl yapılır? Sadece "e-posta adreslerinin güncellenmesi" sorunu ile aynı bağlamda yerleştirin. Bunun uygulamanın değiştirilip değiştirilmemesi gerekip gerekmediği ve bunun "çok zor" bir sorun olup olmadığı onlarla gündeme getirilmesi gereken bir diğer konudur. Koda bakın ve önerilen düzeltmeyi yapmadan önce değiştirmenin maliyetinin ne kadar olacağını görün.

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.