Yazar Arşivi ·

Onur Yalazı

·...

YemekSepeti’nden gelen cevap ve yorumlarım

4 yorum

2 gün önce YemekSepeti ile ilgili parolaların düz metin olarak saklandığına dair bir yazı yazmıştım. Bunun üzerine YemekSepet’inden bir eposta aldım, Aynen aktarıyorum:

Sayın Yalazı;

yalazi.org sitenizden paylaşmış olduğunuz yorumunuz değerlendirilmiştir. Yemeksepeti kullanıcılarının şifreleri, veritabanı ortamında AES 128 (Rijndael)  algoritması ile şifrelenerek saklanmaktadır. Bu algoritma, bilinen tüm saldırı yöntemlerine (bruteforce dahil) karşı dayanıklı olarak kabul edilmektedir.  Yemeksepeti içerisinde kullanıcı yetkilendirme işlemlerini yürüten sistem yazılımları haricinde, kullanıcı şifrelerini çözen hiç bir yazılım bulunmamaktadır. Ayrıca Yemeksepeti kullanıcı şifreleri login sırasında network üzerinden hashlenerek yollanmakta ve bu şekilde ağ izleme (sniffing) yöntemiyle ele geçirilmesi engellenmektedir.

Yardımcı olabileceğimiz farklı bir konu olursa tekrar bilgilerinizi paylaşmanızı rica ederiz. İlginiz için teşekkürler.

Saygılarımızla.

Yemeksepeti.com Kullanıcı İlişkileri
info@yemeksepeti.com
212 359 18 18
444 5 445

Burada, yaptığım yanlışlığı düzeltmem gerekiyor. YemekSepeti parolaları düz metin oalrak saklamıyor. Ancak; kendilerine yazdığım aşağıdaki mesaj ile durumun çok da farklı olmadığını anlattım kendilerine.

On 14-04-2011 17:37, Yemeksepeti.com wrote:

Sayın Yalazı;

yalazi.org sitenizden paylaşmış olduğunuz yorumunuz değerlendirilmiştir. Yemeksepeti kullanıcılarının şifreleri, veritabanı ortamında AES 128 (Rijndael) algoritması ile şifrelenerek saklanmaktadır.

AES 128 verdiğiniz bağlantıdan da görüldüğü üzere simetrli bir kriptografi yöntemidir. Yani gerekli anahtarlara sahip olan herhangi bir yazılım/ insan temiz metin olara bu bilgiye erişebilir. Sisteminiz içerisinde bu anahtarların saklı olmadığını iddia etmediğinizi sanıyorum. Bu şartlarda, sistemlerinize erişim sağlayan herhangi bir kişi/yazılım bu anahtarlara ve simetrik kriptolanmış parolalara da erişecektir.

Şifre hatırlatma sisteminiz, hem kriptolu parolalara, hem de anahtarlara erişemeden paroları düz metin haline getiremeyeceğine göre, parolalar ile anahtarların birbirinden izole olduğunu da düşünemeyiz.

Bu algoritma, bilinen tüm saldırı yöntemlerine (bruteforce dahil) karşı dayanıklı olarak kabul edilmektedir.

Burada sorun saldırı yöntemleri değil, kripto anahtarları ile şifrelerin birbirinden izole olmamasıdır. Yani düz metin olarak saklamasanız da bir kaç adım ile çözülebilecek biçimde durduğu ortadadır.

Yemeksepeti içerisinde kullanıcı yetkilendirme işlemlerini yürüten sistem yazılımları haricinde, kullanıcı şifrelerini çözen hiç bir yazılım bulunmamaktadır. Ayrıca Yemeksepeti kullanıcı şifreleri login sırasında network üzerinden hashlenerek yollanmakta ve bu şekilde ağ izleme (sniffing) yöntemiyle ele geçirilmesi engellenmektedir.

Ancak eposta içerisinde bana gönderirken arada sniffing / midm gibi saldırılara açık olduğunu göz ardı edemezsiniz.

Yardımcı olabileceğimiz farklı bir konu olursa tekrar bilgilerinizi paylaşmanızı rica ederiz. İlginiz için teşekkürler.

Bu konuda cevabınızı da aldıktan sonra iletişimimizi yine blogum üzerinden yayınlayacağım..

Saygılarımızla.

Yemeksepeti.com Kullanıcı İlişkileri
info@yemeksepeti.com
212 359 18 18
444 5 445

Kendilerinden henüz teknik bir cevap gelmedi. Sadeceaşağıdaki şu yarı otomatik cevap geldi :)

Sayın Yalazı;
Şifre bilgileri şirketimiz bünyesinde çalışanlarımızca dahi görüntülenememektedir. Ancak yorumlarınız bilgi işlem departmanımız ile paylaşılmıştır.
“Siparişleriniz ile ilgili destek hattımıza hemen ulaşmak için yemeksepeti.com ana sayfamızda bulunan canlı yardım butonuna tıklayabilirsiniz.” 

Saygılarımızla.

Yemeksepeti.com Kullanıcı İlişkileri
info@yemeksepeti.com
212 359 18 18
444 5 445

Sanırım şablon cevap epostasını tam olarak temizlemeden göndermişler. O kadar hata kadı kızında da olur diyoruz :) Tabii parolaların saklanmasının yanında önemsiz bir durum bu.

Yemeksepeti şifreleri düz metin olarak saklıyor

12 yorum

Az önce uzun zamandır giriş yapmadığım Yemeksepeti’ne giriş yapamayınca, parolamı unuttum linkini kullanarak parolamı sıfırlamak istedim. Daha doğrusu ön tanımlı olarak parolamın sıfırlanacağını düşündüm. Ancak bilmediğim 2 şey vardı,

1. YemekSepeti, parolamı düz metin olarak sakladığı için bana eposta içinde hali hazırda kullandığım parolamı gönderdi.
2.Tarayıcımda no-script eklentisi kullanarak bir çok jsnin ve flashın çalışmamasını sağlıyorum. Bu yüzden Javascript kapalı olduğu için YemekSepeti girişi yapamıyormuşum.

 

YemekSepeti lütfen parolalarımızı sil! Ve bu işi düzgün yap.. Kullanıcı girişi yapmak için neden js zorunlu olsun ki?!?!

Squeryl Yazarı Maxime Lévesque ile buluştuk

yorum yok

Scala camiasından, Squeryl ORM yazarı Maxime Lévesque 1 aylık tatilini İstanbul’da Mısırlı Ahmet’ten darbuka eğitimi almak için kullanıyor.

Maxime, Türkiye’ye geldiği gibi Türkiye Scala camisasından insanlarla tanışmak için scala-tr.com dan Hasan Özgan ile iletişime geçmiş. Dün de bu buluşmayı gerçekleştirdik.

Önce Mihrimah Sultan’da güzel bir rakı sefası yaptık, ardından Bade’de votka ile geceye devam ettik. Bade’de bize katılan Gökhan Goralı ve arkadaşları ile çok güzel bir gece geçirdik.

Maxime ile müzikten, siyasetten, genetikten, programlamadan, kız erkek ilişkilerinden, mimariden yani neredeyse her konudan sohbet ederek çok eğlendik.

En kısa zamanda tekrar Maxime ile buluşmak dileğiyle ;)

Maxime, Thank you for an incredible night. We really enjoyed every minute of it. Have a nice stay!
Ps: We are eager to listen to you playing Darbuka :)

Bir karakterin ettikleri

1 yorum

‘da genellikle lamp yapısı kullanıyoruz. Tabii php ile ciddi anlamda gelistirme yaptığımız için bazı garipliklerle karşılaştığımız oluyor.

Bu garipliklerden biri yüzünden, Bugunbugece üzerinde çalışırken bir kaç aydır php hatalarını alamıyorduk. Bu da hata yakalama konusunda çok büyük zaman kaybı yaşatıyordu bize. İşin garibi, hataları bazen alıyor bazen alamıyorduk.

Aylardır süren bu duruma yeter artık diyerek dün ve bugün çok ciddi biçimde hata takibine giriştim. Açıkçası, sistem yöneticisi olmamın verdiği deneyim ile öncelikle geliştirme sunucumun ayarlarını tekrar tekrar kontrol ettim.

display_errors on, error_reporting E_ALL, log_errors on, log_file atanmış olduğu halde, ne hatalar ekrana ne de loga gidiyordu. Bu noktadan sonra sorunun sunucu ayarlarında olmadığından emin olmak için php_info() ile php.ini’nin doğru yerden alındığını doğruladım. Hala bir sorun bulunmuyordu. .htaccess veya apache conf içinden de php ayarlarında bir değişiklik yapılmadığından emin olduktan sonra bu isin uygulamadan kaynaklandığına ikna oldum.

Sorunu uygulamada aramaya başlayınca ilk olarak kullandığımız alt yapı olan symfony uygulama ayarlarını kontrol etim. Ne elle yaptığımız bir error_reporting ayarı ne de Symfony’nin kaynak kodunda bir hatalı ayar bulamadım. Ne grep faydalı oldu ne de gözlerim.

Buraya kadar gelince artık hatayı tekrar edip nerede problemin olustuğunu bulmam gerektiğinde karar kıldım. Son yaptığım hatayı aynen yerine koydum. Evet beyaz sayfayı almayı başardım. Ama neden hiç bir hata çıkmıyordu? Hatanın olustuğu satırdan hemen önce ini_get_all ile tüm ayarları aldım.

display_errors, global ve yerel ayarları doğru.
error_logging, global ve yerel ayarları doğru.
error_reporting global ayarı doğru ama yerel ayarı 0!!!! Ama nasıl olur? Ben uygulama ve symfony de hiç error_reporting kodu bulamadım??? Biraz geriye doğru error_reporting değeri takip etmeye başladım. viewler  ve layout içinde değer doğruydu.

Kısa süre içinde ilk ipucunu bulmayı başardım. İpucu 1, daha önce farketmediğimiz bir ayrıntı, hatayı view veya layout içinde yaparsak görebiliyoruz. Peki action içinde yaparsak? Evet görüyoruz. Model katmanında yaparsak? Bazen görüyor, bazen görmüyoruz??? En  sevdiğim türden hata.

Ardından ipucu 2 geldi, hata model katmanında veya modelleri init ettiğimiz bir noktada.

Burada uygulamızın kendine has bir özelliğinden bahsetmem doğru olacaktır. Uygulamamızda, actionlar içinde kendine has modelleri olan ve partial olarak isimlendirdiğimiz view öğeleri kullanıyoruz. Bu öğelerin nerede ne zaman kullanılacagını da db içerisinde saklıyoruz. Yani bu modelleri dbye bakıp init eden ve actionların başında olan bir kod parçamız var. İşte sorun da bu kod parçasında init edilen modellerde ortaya çıkıyor. Ancak kod içinde error_reporting ayarı yapılmadığına göre bu değer model içinde nasıl bozulabilir?! İşte burada bizim pek kulanmadığımız hatta hiç sevmediğimiz bir php özelliği kullanılmış. Eski bir geliştiricimiz, bu modellerin init edildiği satırın başına bir ‘@’ karakteri koymus!

Hemen svn blame yapalım,  11. ayın başında. Bu @ karakteri kullanıldığı satırda error_reporting değerini 0 lıyor. Tabii bu satır içinde bir model init edildiği için, modelin yerel hata raporlama değeri 0 olarak kalıyor.

İşte bir @ karakteri 5 geliştiricinin 4 ay boyunca hata takibi yapamamasina neden oldu..

Bir @ diyip geçmeyin..

Bir teşekkür yazısı

yorum yok

Yeditepe üniversitesi ile son zamanlarda yollarımız fazlaca kesişiyor. Bir kaç ay önce hepimizin bildiği gibi Yeditepe Üniversitesinde Özgür Web Teknolojileri Günleri isminde bir etkinlik olmuştu ve bu etkinlikte de Mobilada olarak 3 adet sunum yapmıştık.

Daha sonra, daha önceden zeitin‘den tanıdığımız, Yeditepe üniversitesi öğrencisi Zafer Çakmak, “yorgun penguen” yarı zamanlı web uygulama geliştirici olarak bizimle birlikte çalışmaya başladı.

Tabii bütün kesişimler bunlarla sınırlı kalmadı, Yeditepe Üniversitesi‘nin sosyal iletişim ve tanıtım ofisinin çok güzel bir tanıtım projesi için bana güzel bir hediye gönderdiler. Bu projede sosyal medyada aktif olan kişilere içinde şahsa özel bir not içeren ajanda, kalem ve bardak gönderiyorlar. Bu projenin görünen yüzü Gabriela Olaru‘ya ve tüm Yeditepe üniversitesine bu güzel jest için teşekkür ediyorum.

Ama bu ajandada benim için daha anlamlı olan 2. bir not daha bulunuyordu. Projenin daha az görünen bir yüzü olan Zeynep Kulan ajandayı doldururken bana özel bir sayfa daha doldurmuş. Bu notu aldığımda ne kadar sevindiğimi anlatamam. Gerçi ne kadar sevindiğimi kendilerine gönderdiğim hediyeyi yerken farkettiklerinden eminim.

Buradan, Zeynep’e, Gabi’ye ve tüm Yeditepe Üniversitesi’ne tekrar teşekkürlerimi iletmek istiyorum.

Php Uygulama Geliştirici Arıyoruz

yorum yok

Mobilada olarak,

  • Symfony bilen, ya da öğrenecek
  • Özgür Yazılım CMS sistemlerde uygulama geliştirebilecek veya uygulamaları düzenleyebilecek
  • Linux’dan korkmayan

şartlarına uyan iş arkadaşları arıyoruz.

İş yerimiz:

Halil Rıfat Paşa Mah. Perpa Ticaret Merkezi
A Blok Kat 11 No 1436, 34384 Istanbul
0212 320 0755

ilgilenenler için özgeçmiş göndermek için epsota adresi: ik <- at -> mobilada <- dot -> com

PureFTP adam mı seçiyor?

1 yorum

Bugün, yeniden başlatılan bir sunucumda (tamamen isp nin suçu!) ftp kullanıcıları kabul edilmemeye başladı. Bağlantı yapılıyor ve ardından bağlantı servis tarafından koparılıyordu.

Kendi yaptığım bağlantılar ise hiç bir şey yokmuş gibi devam ediyordu. Biraz araştırınca, kopan bağlantıların syslog da:

pure-ftpd: (?@?) [ERROR] Sorry, invalid address given

şeklinde log ürettiğini gördüm. Biraz araştırınca, PureFTP’nin ters dns sorgusu yapıp, bulduğu isim ile dns sorgusu yaparak gelen ipleri karşılaştırdığını öğrendim. Yani eğer ters dns kaydınız var ama ters dns kaydının dns kaydı yoksa PureFTP sizi reddediyor.

Bu durumda ya kullanıcılarınızın servis sağlayıcılarını dize getireceksiniz, (TTNET ile mümkün değil :) ) ya da PureFTP ye bu davranışından vazgeçmesini söyleyeceksiniz.

PureFTP -H parametresi ile başlatılırsa bu davranışından vazgeçiyor. Tabii siz de benim gibi bir Debian kullanıcısıysanız,

/etc/pure-ftpd/conf/DontResolve

dosyası içine “yes” yazıp pureftp yi yeniden başlatarak bu sorunu çözebilirsiniz.

Linux Berbattır!

2 yorum

Bu cümlenin benden geldiğini duyunca şaşırmış olabilirsiniz. Hatta “Birileri şaka mı yapıyor? Hesaplarını mı çaldılar?” gibi düşünmüş olabilirsiniz. Böyle düşünmekte haklısınız doğal olarak. Çünkü bu cümle bana ait değil. Hatta bu cümlenin arkasında duracak da değilim.

Bu cümle Bryan Lunduke’a ait. 2009 Yılında yaptığı bir sunumun adı. Ben yeni karşılaştım. Ya da daha önce karşılaştıysam da dikkatimi çekmemişti :) Lunduke, bu sunumunda Linux’un masaüstünde neden başarılı olamadığını tartışmaya açıyor. Ve bu sayede de Linux’un daha iyiye gitmesini istiyor.

İsterseniz  sunumu izleyin.

Bryan Lunduke http://lunduke.com/?p=429

Ciddi OpenSSL Açığı???

yorum yok

The Register’ın bir haberine göre, openssl içinde “ciddi” bir açık bulundu. Habere göre, openssl in hata düzeltme için kullandığı kullandığı crypto kütüphanesinin bir “hatası” sayesinde her bir hata da, özel anahtarın 4 bitlik bir kısmı ortaya çıkartılabiliyor.

Bu hatayı araştıran saldırganlar, donanımın, kripto hesapları yaptığı sırada, güç kaynağına müdahale ederek 8000 in üzerinde hata durumu üretmişler. Ve daha sonra yaklaşık 80 makinelik bir küme üzerinde 100 saat kadar özel bir algoritma ile elde ettikleri verileri işlemişler. Sonuç olarak sistemdeki 1024bitlik özel anahtara ulaşmayı başarmışlar.

Ciddi bir açık. Güç kaynaklarınızı güvenceye almayı sakın unutmayın.

http://www.theregister.co.uk/2010/03/04/severe_openssl_vulnerability/

analytics kodunun etiketlerine bile dokunmayın

1 yorum

Eğer, bir uygulamanın satır içi betiklerini topluyorsanız, ve satır içi olarak google analytics kodu varsa, sakın ama sakın, bu “script” etiketi burada kapanmış, tekrar açılmış ne gereği var diyerek silmeyin. Üzülürsünüz. biz üzüldük.

Switch to our mobile site