An authorization framework with Oauth for fintech servers
Finansal teknoloji şirketleri için Oauth ile güvenli framework tasarımı
- Tez No: 592719
- Danışmanlar: DOÇ. DR. ŞERİF BAHTİYAR
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2019
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
- Sayfa Sayısı: 99
Özet
Finansal teknolojilerin kullamını gitgide artmaktadır. Finansal teknolojiler çözümü için genellikle mobil uygulamalar ile ödeme yapılmaktadır. Kredi kartlarının kullanımı, yavaşca yerini mobil uygulamalara bırakmaktadır. Finansal teknojiler bankaları kapsadığı gibi finansal sistemlerle çalışan diğer uygulamaları da kapsamaktadır. Paypal yada bankacılık lisansı alan Apple gibi firmalar ile sektörün boyutu gitgide artmaktadır. Artık sadece bankaların değil, farklı sektörlerden uygulamaların da para transferi işlemleri yaptığını göreceğiz. Bu sebepten dolayı finansal teknolojilerin popüleritisi devamlı artmaktadır. Müşterilerin datası finansal sistemler için en kritik bilgilerdir. Finansal sistemler için data genel anlamda paraya eşittir. Kullanıcı dataları kötü niyetli insanlar tarafından devamlı hedef olarak seçilmektedir. Sosyal mühendislik ve açık bulmaya odaklanarak, saldırganlar devamlı sızma girişimde bulunmaktadırlar. Bu sebepten dolayı datanın güvenliği sağlamak da firmalar için zorunluluk haline gelmektedir. Finansal teknolojilerin uyması gerektiği yasal zorunluluklar bulunmaktadır. Bunların başlıcaları Türkiye'de BDDK, yurtdışında ise GPDR, PCI DSS, PSD2 gibi yasal zorunluluklardır. Yasal zorunlulukların amacı müşterilerin datasını korumaktır. Eğer zorunluluk olmazsa, firmalar minimum güvenlik seviyesine yöneleceklerdir. PSD2 bankaların API'larını farklı firmalara açması için OAuth 2.0 kullanılmasını öneriyor. OAuth 2.0 yazılım geliştiriciler tarafından bilinçsizce kullanıldığında, güvenlik açıklıklarına neden olmaktadır. Örneğin state parametresi kullanılmadığında CSRF açıklığına izin vermektedir. OAuth 2.0 popüleritesinin artması nedeniyle, güvenlik araştırmacıları ve saldırganlar tarafından devamlı açık aranmaktadır. OAuth2.0, SAML ve OpenID Connect benzer amaçlara farklı yaklaşımlar önermektedir. OAuth2.0 sadece authorization için kullanılırken, OpenID Connect ve SAML yetki ve giriş için kullanılmaktadır. SAML, OAuth ve OpenID Connect'ten farklı olarak sertifika odaklı ilerlemektedir. Bunlara ek olarak Kerberos benzer bir amac için ticket sistemi kullanmaktadır. Ticket mekanizması, Key Distribution Center olarak Active Directory'u kullanmaktadır. OAuth2.0 için hali hazırda bilinen güvenlik açıklıkları bulunmaktadır. Redirect URI, CSRF ve impersonation açıklıklardan etkilenmektedir. Belirtilen açıklıklardan etkilendiği gibi yetki odaklı olduğu için mantık hatalarından da etkilenmektedir. SAML, sertifika odaklı olmasından dolayı farklı açıklıklardan etkilenmektedir. Arka planda XML kullanarak istekleri iletmektedir. XML özelindeki XXE açıklığından etkilenmektedir. SAML özelindeki güncel bir açıklık ise XML imzasının bypass edilerek farklı bir kullanıcının hesabına girilmesine izin vermesidir. OpenID Connect, authentication ve authorization için çözüm üretmektedir. Altyapı olarak OAuth2.0'ı kullanmaktadır. Bu nedenden dolayı OAuth2.0 açıklıklarından etkilenmektedir. Kimlik doğrulama içinde Openid kullanmaktadır. Yetki için OAuth2.0 ve giriş için OpenID'nin güçlerini birleştirerek OpenId Connect'i oluşmuştur. OpenID için olan SSRF açıklığından bölüm 3'te detaylı bahsedilmiştir. Kerberos ismini Roma mitolojisindeki 3 başlı yeraltı dünyasını koruyan köpekten almıştır. Kerberos ve SPNEGO giriş yöntemi olarak kullanılmaktadır. Kerberos yetki servisi olarak Active Directory'i kullanmaktadır. Sunucu ile Active Directory arasında keytab paylaşımı yaparak gerekli bilgilerin paylaşılmasını sağlamaktadır. Mobil ve JS kaynak kodlarına ulaşmak saldırganlar açısından çok kolay bir şekilde yapılabilmektedir. Bu nedenle mobil uygulamaya yada JS kodları içine hassas data koymak, saldırganların o dataları saldırı sırasında direk yada dolaylı yollardan kullanmasına neden olabilmektedir. Bu tip güvenlik açıklıklarından etkilenmemek için mobil ve JS tarafında token paylaşımı sırasında access token'ın header'a konulması back end tarafında yapılmalıdır. Single Page Application olarak geçen tek sayfa ile ön yüz işlemlerini yönetme işleminde benzer sorunlar olabilmektedir. SPA uygulamaların ön yüz uygulama tarafında cookie yapısı kullanması gerekmektedir. Çerezlerin etkilendiği CSRF ve XSS açıklıklarından korunmak için ek önlemlerin alınması gerekmektedir. JWT veri transferi için kullanılan popüler yöntemlerden biridir. Şifreleme yöntemi içermiyor olması nedeniyle data transferi yapılırken hassas bilgi paylaşma konusunda dikkatli olmak gerekmektedir. Bu noktada JWE ve JWK devreye girmektedir. JWT'nin popüler olması nedeniyle şifreleme yöntemi üzerine çalışılarak JWE ortaya çıkarılmıştır. JWK encryption için gereken key anlamına gelmektedir. Hibrid bulut yöntemi, özel ve herkese açık bulut yapısının birleşmesinden oluşmaktadır. Hibrid bulut yöntemi firmalar açısından kolaylığı ve esnek yapısı nedeniyle tercih edilmektedir. Tercih edilmesi ve popülerliğini artırması login ve yetki konularındaki referans bir mimariye ihtiyaç duymasına sebep olmaktadır. İlk önerdiğimiz mimaride odaklandığımız nokta, güvenliği en üst seviyede sağlayarak saldırganların kullanacağı açık noktaları kapatmaktı. Mutual TLS, güvenli proxy yapısı, veriler için kasa ve saldırıya uğrayan sunucuları anlamak için hash yapısı oluşturulmuştur. Oluşturulan referans mimari, halihazırdaki sistemlerdeki güvenlik açıklıklarını kapatıp kapatmadığına dair inceleme yapılmıştır. Yetki kodu açıklığını gidermek için yönlendirme url'ine ek güçlendirmeler eklendi. Beyaz liste ile halihazırda tanımlı olan url haricinde başka bir yönlendirme url'ine izin verilmemektedir. Redirect uri saldırılarında, saldırgan kendi hazırladığı url ile redirect uri kısmındaki url'i değiştirerek datanın kendi sayfasına gitmesini sağlamaktadır. Böylece yetki sunucusundan gelen data direk olarak saldırganın sunucusuna gidecektir. Saldırgan auhtorization code ile access kod almaya çalışacaktır. Token binding ile tokenlar sertifikalara kriptografik olarak bind edilecektir. Bu koruma yöntemi ile saldırgan access token'ı ele geçirse bile tokenın başkaları tarafından kullanılmasına izin vermeyecektir. Impersination saldırıları access token ile client ilişkilendirilmediği zaman access token'ın başka kişiler tarafından kullanılmasına olanak verebilmektedir. Mutual TLS ve token binding korumaları bu saldırı tipini önlemektedir. Malformed server, yetki ve hedef sunucusunun saldırganlar tarafından ele geçirildiğini anlamak için eklenen hash parametreleridir. Client ve backend uygulamaları hash'in doğruluğunu meydan okuma karşılık verme temelli kimlik doğrulama ile kontrol ederek olası saldırıları önlemeyi amaçlamıştır. Araya eklenen proxy ve datalar için olan kasa sunucu üzerinde gecikme oluşturacaktır. Performans konusunda çok ciddi kayıplara neden olmasa da ek bir gecikme süresi öngörülmektedir. İkinci önerdiğimiz mimari, hibrid bulut sistemleri üzerine olan çözüm önerisiydi. Firmalar kritik datalarını herkese açık bulut ortamına koymayı riskli görüyorlar. Bu sebepten dolayı kritik dataları iç network ortamına, kritik olmayan dataları da herkese açık bulut ortamına koymaktadırlar. Bu yaklaşım her iki bulut altyapısının risklerini ve açıklıklarına hakim olmayı gerektirmektedir. Hibrid bulut çözümü için yetki altyapısı nasıl olmalı üzerine araştırmalar yaparak mimari önerisinde bulunuldu. Mimari önerimiz için halihazırdaki bulut sistemleri güvenlik açıklıklarını incelendi. İncelediğimiz güvenlik açıklıklarını önerdiğimiz mimaride kapatmaya odaklanıldı. Önerdiğimiz mimaride hibrik bulut çözümlerine odaklanıldı. Çözümümüz sadece hibrid bulut ortamında değil aynı zamanda herkese açık ve iç networkte olan bulut çözümleri için de kullanılabilir.
Özet (Çeviri)
Financial technologies are increasing popularity everyday. Mobile applications are used for FinTech solution. Mobil applications are preferred to payment instead of credit card solution. Financial technologies are not only banks. With PSD2 bank must open API to the other companies that want to use these API's. Players in the FinTech sector will change in the next 5 years. FinTech sector are always hot topic because of data. Data is the most critical value for FinTech sector. Data is money for FinTech sectors. For this reason, attacker wants to hack FinTech servers to reach the data of user. Attacker wants to penetrate system with social engineering or other exploitation techniques. Data must be protected securely from FinTech companies. Regulations such as GPDR, PCI DSS, PSD2 must be compliant for FinTech companies. These regulations are prepared for protect customer. Otherwise, companies don't want to implement security related protection to their system. If there are security related controls, they will improve their system with this way. Regulations like PSD2 give suggestions to the banks for open their API's to the customer and other companies. For expose their API, companies can use OAuth and OpenID Connect. Implementing these technologies like OAuth and OpenID Connect require secure development. Otherwise, attacker can easily hack the flow. For example state parameter is used in the OAuth RFC. This parameter is used to prevent CSRF attacks. SAML, OAuth and OpenID Connect are used to solve same problems with different ways. Popularity of these technologies are increasing every day. Attackers are looking for new vulnerability in these areas. There are known vulnerability for OAuth2.0 such as Redirect URI, CSRF and impersonation attacks. Also logic errors are encountered in login flow that made by developer. For SAML, certificates are used for transfer data between client and server. XML language is used to ensure SAML communication. XXE attacks are used to get information from server for XML technologies. Another vulnerability is used to bypass signature mechanism of XML that used for SAML. OpenID Connect is used for authentication and authorization solution. OAuth2.0 is used for OpenID Connect. For that reason, OpenID connect is affected from OAuth related vulnerabilities. OpenID is used as authentication solution for OpenID Connect. OIDC is used to strongest point of OAuth and OpenID. Kerberos is the monstrous watchdog of the underworld in the Greek mythology. Kerberos and SPNEGO are used as login mechanism. Both of them are used Active Directory as authorization point. Keytab is used to trust mechanism between client and Active Directory. Another point is mobile and JS files. These files are easily readable from any user. For that reason, putting sensitive data to the JS and mobile file are dangerous from security perspective. For public clients like mobile and JS files, must be add tokens from back-end not from client. This issues also encountered SPA(Single Page Applications). For single page applications, token should be used from client side. For prevent security related attacks, cookie should be used for client side. Using cookie is required extra protection mechanisms for CSRF attacks. JWT is used for transfer data to the from one server to the another point. JWT do not contain encryption mechanism. JWE and JWK are used to add extra security for JWT. JWE is use to add encryption. JWK is used for key mechanism of JSON web objects. Hybrid cloud is the combination of private and public clouds. Cloud is preferred from companies because of flexibility and easy to reach from anywhere. The popularity of cloud led to the need for referenced architecture. Our first referenced architecture is focused to close common vulnerabilities that encountered during login flow for FinTech server. Mutual TLS, secure proxy, vault and malformed server are used to create our framework. As an analysis, common vulnerabilities are checked with our framework. These vulnerabilities are easily fixed our reference architecture. Redirect URL vulnerability is encountered on the top countries. For prevent this vulnerability, protection mechanism is added and increased. White list is used to prevent redirect uri mechanism. Redirect uri is checked from authorization server. Token binding is used to bind token to TLS certificate cryptographically. With this protection, access token can't used from attacker side.If token are not mapped to the client, impersonation attacks can be occurred. Mutual TLS and token binding are used to prevent these kind of attacks. Malformed server protection is used to understand hacked server. Challenge response algorithm is used to understand malformed server is hacked or not. Challenge data are sent to the resource server from back end. This response data will be created by resource server. This data are created by key and challenge. Result of the this combination is sent to back end. Response is decoded by back end application to reach the data. After this part, OK message is sent by back end application. From performance perspective, secure proxy and secret vault put extra delay to the response time. Response time is increased a little bit but not too much. Our second architecture is focused to authentication and authorization side of cloud platforms. Companies they want to put sensitive datas to the private cloud. Hybrid cloud is increased popularity. From this point, our referenced architecture is focused to solve authentication and authorization problems of hybrid cloud environment. Common vulnerabilities of cloud environment is analyzed. After this analysis, our referenced architecture is proposed. There are limited research for this area. To fix this problem, our reference solution can be used by companies that want to use private, public or hybrid cloud solutions.
Benzer Tezler
- Application of lightweight cryptography techniques in internet of things scenarios
Nesnelerin interneti senaryolarında hafif kriptografi tekniklerinin uygulanması
ÖZLEM ŞEKER
Doktora
İngilizce
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolDokuz Eylül ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. GÖKHAN DALKILIÇ
- Politik karar alma süreçlerinin bütçeyle ilişkilendirilmesi: Program bütçe uygulamalarının değerlendirilmesi
Association of political decision-making process with the budget: Evaluation of the program budget implementations
ERDOĞAN YILMAZ
Yüksek Lisans
Türkçe
2022
EkonomiAnkara ÜniversitesiKamu Ekonomisi (Maliye) Ana Bilim Dalı
DOÇ. DR. EDA ÖZDİLER KÜÇÜK
- Yeni kamu yönetimi anlayışı çerçevesinde bir yetki devri örneği olarak yetkilendirilmiş yükümlü statüsünün incelenmesi
Examination of the status of authorized economic operator as an example of transfer of authority within the framework of the new public management approach
GENCER KAPLAN
Yüksek Lisans
Türkçe
2022
Kamu Yönetimiİstanbul ÜniversitesiSiyaset Bilimi ve Kamu Yönetimi Ana Bilim Dalı
DR. ÖĞR. ÜYESİ MURAT ÖZLER
- İdare Hukuku yönüyle internet hizmeti ve internet güvenliği
Internet service and internet security in terms of Administrative Law
EGEMEN KARACA
- Secure ANTS: A Keynote implementation for active nocle transfer system
Güvenli ANTS: Active node transfer system için keynote uygulaması
TARIK ÇINAR
Yüksek Lisans
İngilizce
2001
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiPROF. DR. MEHMET BÜLENT ÖRENCİK