Uygulama Güvenliği 
&
Özgür Yazılım ve Linux Günleri
2016

Ruby on Rails Web Framework 
ve 
Güvenlik

Muhammet Dilmaç

[*] Karabük Üniversitesi - Bilgisayar Mühendisliği

[*] ADEO - Siber Güvenlik Danışmanı

[*] Pisi Linux - Geliştiricisi

[*] Geliştirici

WEB

[*] HTTP/ - 1990

[*] Artan istekler

[*] Statik sayfalardan -> Dinamik Sayfalara

[*] Sade mimariden -> Karmaşık mimariye

Web Development

[*] Bir zamanlar dünya çok güzeldi HTML bile yoktu.

[*] Sonra HTML/CSS ve JS geldi.

[*] Ve diğerleri...

[*] FrontEnd - BackEnd ve Designer

BackEnd

[*] Sunucu tarafında yapılan web yazılımı bacağı.

[*] Gözükmeyen abiler.

[*] İş çok...

[*] Web Çatısı

Ruby on Rails

[*] Ruby ile geliştirildi.(2005)

[*] Açık kaynak kodlu.

[*] (M)odel(V)iew(C)ontroller

[*] Don't repeat yourself!

[*] Keyifli kod ^^

Security

[*] Güvenlik zafiyetleri sadece klasik PHP'de yoktur.

[*] Framework kullanıyorum beni bağlamaz değil :)

[*] Yazılımcı bağımsız değildir!

SQL Injection

[*] Active Record
[*] Elle SQL sorgusu yazma ihtiyacı
[*] O değişkeni o sorguya bodozlama katma kardeşim :(

[*] Mutlaka Prepare Statement'ı kullanın!

XSS

[*] Gelen geçsin, geçen gitsin ile olmaz bu işler :(

[*] HTML Safe dedikte gerçekten de safe mi?
[*] Sanitize ile çıktı kontrol edilmeli!

[*] Loofah ile girdiler kontrol edilmeli!

CSRF

[*] Ruby on Rails kullanıcısıysanız pek bir derdiniz yok bu konuda zira application controller'da bunun için korumamız mevcuttur. (protect_from_forgery with: :exception)

Security Headers

[*] Güvenlik amaçlı kullanılan bir çok http headerı twitter tarafından yayınlanan secureheaders gemi ile edinebilirsiniz.

Bulunan headerlar;

[*] Content Security Policy
[*] HTTP Strict Transport Security

[*] X-Frame-Options
[*] X-XSS-Protection
[*] X-Content-Type-Options
[*] X-Download-Options
[*] X-Permitted-Cross-Domain-Policies
[*] Public Key Pinning

Static Code Analyz

[*] Çeşitli statik kod inceleme araçları ile yazmış olduğunuz kodları inceletebilir ve bir sorun var  ise sizi uyarmalarını sağlayabilirsiniz.

Buna örnek olabilecek araçlarımız;

[*] Brakeman
[*] CodeSake Dawn

Önerilenler

[*] Kullanıcı yetkisine göre parametre ayarlamayı unutmayın :(
[*] Mutlaka hackerone gibi bug bounty programları yapan yerleri takip edin.
[*] SSH güvenliğini önemseyin.
[*] Dinç kafa ile yazın :(
[*] Kodları lütfen inceletin.
[*] Kullandığınız gemleri mutlaka inceleyin(star, issue, last commit)

Contact

[*] Twitter: /m_dilmac
[*] Github: /MuhammetDilmac
[*] Mail:      iletisim@muhammetdilmac.com.tr

Made with Slides.com