• Sonuç bulunamadı

Nesnelerin İnterneti için Kural Denetleme Mekanizması

N/A
N/A
Protected

Academic year: 2021

Share "Nesnelerin İnterneti için Kural Denetleme Mekanizması"

Copied!
9
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Nesnelerin İnterneti için Kural Denetleme Mekanizması

Cengiz Toğay1[0000- 0001-5739-1784], Faik Özgür1[0000-0001-5363-5737], Gizem Kiraz

2[0000-0002-7637-6114] ve Durmuş Kurtuluş 2[0000-0002-1154-5300] 1 Uludağ Üniversitesi, Bilgisayar Mühendisliği Bölümü, Bursa

2 EMKO Elektronik, Bursa

ctogay@uludag.edu.tr,faikozgur@uludag.edu.tr, 501631002@ogr.uludag.edu.tr,

durmus.kurtulus@emkoelektronik.com.tr

Özet. Nesnelerin interneti için geliştirmiş olduğumuz platformumuzda nesneler

arasındaki iletişim içeriğinin denetlenmesi, anonimleştirilmesi ya da zenginleşti-rilmesi imkanına daha önceki çalışmalarımızda yer verilmişti. Mesajların içeri-ğine müdahale, çalışma zamanında doğrudan tatbik edilebilen Java Script tabanlı kurallar ile iletişimden sorumlu sunucuda gerçekleştirilebilmektedir. Ancak, bir-birleri ile etkileşimli kural sayısının fazla olmasına bağlı olarak yöneticilerin ku-ral tanımlamada yapacakları bir hata yeni kuku-ral ile etkileşimli tüm kuku-ralların ve dolayısı ile kuralların uygulandığı istemcilerin etkilenmesine neden olmaktadır. Sunulan çalışmada, hazırlanan yeni kuralın gerçek hayata uygulanmadan önce test edilmesi ve sonuçlarının gözlemlenmesine imkan sağlayan yöntem sunul-muştur. Ayrıca, çalışma zamanında kuralların işlenmesi sonucunda bir mesaj he-define ulaşamıyor ise hangi kuralın etkili olduğunun tespitinde fayda sağlamak-tadır.

Anahtar Kelimeler: Nesnelerin İnterneti, Kural Tabanlı Sistemler, Benzetim.

Rule Verification Mechanism for Internet of Things

Cengiz Toğay1[0000- 0001-5739-1784], Faik Özgür1[0000-0001-5363-5737], Gizem Kiraz 2[0000-0002-7637-6114] ve Durmuş Kurtuluş 2[0000-0002-1154-5300]

1 Uludağ Üniversitesi, Bilgisayar Mühendisliği Bölümü, Bursa 2 EMKO Elektronik, Bursa

ctogay@uludag.edu.tr,faikozgur@uludag.edu.tr, 501631002@ogr.uludag.edu.tr,

durmus.kurtulus@emkoelektronik.com.tr

Abstract. In our previous study, we have developed the platform for the internet

of things to control, anonymize, or enrich the communication content between things. The contents of the messages can be modified on the server responsible for communication with Java Script-based rules that can be applied directly at run time. However, due to the high number of rules interacting with each other,

(2)

any mistake that administrators make in rule definition affects all rules that inter-act with the new rule and related clients. In this study, we have presented a method that allows testing of the new rule before being applied to real-life and observing its results. In addition, this method helps to determine the cause, in this case the rule, if a message does not reach its destination as a result of processing the rules at run time.

Keywords: Internet of Things, Rule Based System, Simulation

1

Giriş

Nesnelerin Internet'i (IoT), Internet üzerinden, çok sayıda “Şeylerin”, algılama, iletişim ve çalıştırma özelliklerine sahip benzersiz olarak tanımlanabilen fiziksel nesneler ara-sındaki ara bağlantıyı temsil eder. Internet'e bağlı şu anda 8.4 milyar akıllı nesne bu-lunmaktadır ve bu sayının 2020'de 20 milyar olacağı beklenmektedir [1]. “Şeyler” sı-nırlı hafıza, işleme kapasitesi ve enerji kaynakları gibi özelliklere sahip olduklarından Internet'e entegrasyonlarında zorluklar bulunmaktadır. IoT uygulama sayısı her geçen gün artmaktadır. Akıllı ev, sağlık izleme, akıllı şehir, kamu hizmetleri, akıllı tarım ve hayvancılık, güvenlik ve acil durumlar, akıllı su, endüstriyel kontrol, akıllı ulaşım or-tamı izleme vb. bu uygulamalara örnek gösterilebilir.

IoT ortamı genişledikçe, IoT sistemlerine karşı yapılan saldırıların sayısı ve karma-şıklığı artmaktadır. IoT sistemlerine karşı yapılan saldırılar, hassas verileri çalmak, yan-lış bilgi enjekte etmek veya ağların ve hizmetlerin normal işlevselliğini bozmak ama-cını taşımaktadır [2]. Nesnelerin interneti sistemi, farklı iletişim protokollerine sahip cihazların kullanılması, bir mesajın birden fazla istemciye aktarılması ihtiyacı, yük den-geleme, ölçeklenebilirlik ve yüksek performans gereksinimleri nedeni ile yayıncı/abone mekanizmasına göre asenkron çalışan broker’ları temel almaktadır [3]. Tüm istemciler mesajlarını broker’a gönderirler, broker, mesajı sadece konuya abone olan tüm istem-cilere gönderir. Burada istemciler arasındaki anonimleştirme sağlanmış olunur. Tüm trafik broker üzerinden aktarıldığı için istemcilerin birbirlerinin IP bilgisini, kullanıcı adı gibi kimliğini ifade edecek bilgilere sahip olamazlar. Ancak, mesajın içerisinde is-temciler kendileri hakkında istedikleri bilgileri paylaşabilmektedirler. Geliştirmekte ol-duğumuz nesnelerin interneti için güvenlik platformu kapsamında broker üzerinde de-ğişiklikler yaparak istemciler arasındaki iletişim güvenliğini sağlamayı hedefledik. Platformda iletişimin şifreli olmasının yanı sıra verilerin belirli bir formatta olması, ve-rilerin belirli sınırlar dâhilinde olması, anonimleştirme, zenginleştirme gibi operasyon-lara imkan sağlandı [4]. Sistem, gelen mesajı konu ve gönderen bazında işleyebilmekte ve sonrasında yine kullanıcı bazında abonelerine göndermeden önce işleyebilmektedir.

IoT sistemlerine yapılacak saldırıları temelde 1) cihazın güncellenmesindeki açık-lardan faydalanılarak cihaza hacker’ın uygulamasının yüklenmesi ve tüm cihazın kont-rol edilmesi 2) cihazın sunucu ile olan bağlantısındaki açıklardan faydalanılarak veri-lerin okunması, değiştirilmesi, cihaz ya da sunucuya komut/veri gönderilmesi şeklinde

(3)

özetleyebiliriz. Platform kapsamında istemci ile broker arasındaki iletişimin güvenliği-nin iyileştirilmesine yönelik yaptığımız çalışmalar ile TLS haricinde de şifreli iletişime olanak sağladık [5].

Bu çalışmamızda ise iki numaralı atak türlerine karşılık önlemler hedeflenmektedir. Cihazlar, sunuculara durumları ya da durumlarındaki değişiklikleri gönderirken, sunu-cudan cihazın ayarlarına müdahale edilmesi ya da belirli bir komutların cihazda çalış-tırılması için gönderilir. IoT cihazlarının sınırlı bellek ve işlemci kapasiteleri nedeni ile mesajların içerik ve formatından kaynaklı hatalara karşı önlemler genelde alınmamak-tadır. Buna bağlı olarak uzaktan format dışı bir mesajla cihazın çalışması engellenebilir. Daha önce yapmış olduğumuz çalışmada cihaz ya da sunuculardan gelen mesajların belirli bir formatta uygun olmasının sağlanması, olmayanların engellenmesi, mesaj içe-riklerinin değiştirilmesi (anonimleştirme, veri eksiltme ya da zenginleştirme) mümkün hale gelmiştir [4]. Kurallar sisteme yüklenir yüklenmez aktif hale gelmekte ve mesaj-ların akışını doğrudan etkilemektedir. Kurallar arasındaki etkileşim yöneticilerin özel-likle dikkatinden kaçacak ve ciddi sorunlara neden olacak olayların gelişmesine neden olabilmektedir. Dolayısı ile mesajların sisteme olan etkilerinin mesajları aktif hale ge-tirilmeden ele alınması gerekmektedir. Sunulan çalışma, hazırlanan kuralın öncelikle bir simülasyon ortamında çalıştırılması ve beklentilere uygun bir şekilde çalıştığının görülmesi üzerine sunucuda aktif hale getirilmesini hedeflemektedir.

2

Literatür ve Önceki Çalışmalar

ActiveMQ [6], açık kaynak kodlu Apache 2.0 lisansı altında geliştirilmesi devam eden bir mesaj brokerdır. Java ile geliştirilmektedir. JMS 1.1 ve J2EE 1.4 desteği sun-maktadır. Java, C, C++, C#, Ruby, Perl, Python, PHP gibi farklı programlama dilleri için uygulama geliştirme imkanı sağlamaktadır ActiveMQ, nesnelerin internet proje-lerinde kullanılmakta olan standart iletişim protokollerini (MQTT [7], AMQP[8], Openwire, Websocket vb.) desteklemektedir. ActiveMQ farklı protokolleri destekleyen istemcileri arasındaki protokol değişimlerini gerçekleştirebilmektedir. Broker’lar saye-sinde protokol bağımsız bir iletişim alt yapısı kurulabilmektedir. Broker’lar Ya-yıncı/Abone (Publish/Subscribe) mekanizmasına göre çalışmaktadır. Broker’a bağlı is-temciler öncelikle broker’a kullanıcı adı ve parolası ile bağlanır. Bu bağlantı netice-sinde broker kullanıcıların hangi konulara yayıncı ya da abone olabileceklerini daha önce yönetici tarafından yapılan tanımlamalara göre kontrolünü sağlamaktadır. Ya-yıncı/Abone mekanizmasında sadece broker sistem kullanıcılarının IP’sini ve bir me-sajın kimin tarafından gönderildiğini bilmektedir. Dolayısı ile abonelere belirli bir ko-nuda bir mesaj gelir. Aboneler bu bilgilere göre hareket ederler. Burada istemciler be-lirli bir konuya yayınlama yetkisine sahip bir kullanıcı tarafından bir mesajın üretildiği ve broker’a gönderildiğini kabul ederler. Mesajın içerisinde varsayılan olarak kullanıcı bilgisi yoktur, eklenmiş olsa dahi herhangi kullanıcı bir başkasına ait bilgiyi mesaja ekleyip gönderebilmektedir. Dolayısı ile kaynağı abone tarafından doğrulanabilir bir bilgi değildir. Bu nedenle mesajların yayınlandıkları konular belirlenirken kullanıcıları tanımlayacak şekilde belirleme yoluna gidilmektedir. Örnek olarak “ABC/cihazId”

(4)

şeklinde konu belirlenebilir. Kullanıcı tanımlamalarına bu konuya bir kullanıcının ya-yıncı olabileceği ifade ediliyorsa sistem kullanıcılarının sadece yetkilendirilmiş olan kullanıcı tarafından mesajın oluşturulduğundan emin olabilirler. Herkesin yayıncı ola-bildiği anonim konular için hangi mesajı gerçekte kimin sisteme gönderdiği bilgisi bu-lunmamaktadır.

ActiveMQ üzerinde yaptığımız geliştirme çalışmaları neticesinde bir mesaj sunu-cuya geldiğinde ilgili kural olup olmadığının belirlenmesinin ardından yayıncı ve is-temci bazında kurallar ilgili mesaja uygulanabilmektedir [4]. Böylece, broker’a dina-mik kural işleme özelliği de kazandırılmıştır.

Kurallar, Javascript dili kullanılarak oluşturulmaktadır. Belirlenen koşulların sağlan-ması durumunda kuralların icrasının durdurulsağlan-ması, alınan mesaj içerinin tamamının veya bir kısmının değiştirilmesi ve değişmiş haliyle abonelere iletilmesi veya iletimin yapılmaması gibi imkanlar sağlanmıştır. Örnek olarak, Şekil 1’de gösterildiği üzere Active MQ[6] isimli broker’da topic ve/veya kullanıcıya bağlı olarak uygulanabilmek-tedir [4]. Sunucuya yayıncı olarak bağlı bulunan cihaz kendisine bağlı motorun hızı ve sıcaklık değeri hakkındaki bilgiyi broker’a iletmektedir. Broker daha önce cihaz kulla-nıcısına tanımlı bir kural var ise mesaj içeriğinin cihazdan beklenen bir mesaj olup ol-madığını denetlemektedir. Sonrasında mesaj ilgili konunun üyelerine (subscriber) me-sajı yine konu ve kullanıcı tanımlı kurallara göre işleyerek gönderimini sağlamaktadır. Şekil 1’de görüldüğü üzere Abone_1’e mesaj cihazın broker’a bağlanmak için kullan-dığı userId bilgisi ekleyerek (zenginleştirilerek) gönderilirken, Abone_2’ye “Bursa” değiştirilerek “Türkiye” şeklinde konumlandırılmıştır. Kurallar sayesinde mesaj içeri-ğinin değiştirilmesi ile mesaj içerisinde yer alan kişiye özel veriler kaldırılabilmekte veya genelleştirilerek (ör: kesin konum bilgisinin şehir veya bölge bilgisi ile değiştiril-mesi) kişisel mahremiyetin korunması sağlayacak olanaklar sunulmaktadır.

Bir konuya abone olan cihazlar belirli tipte mesajlar almayı beklerler. Beklenmedik mesaj içerikleri veya değerleri aldıkları zaman ise sistemde hatalar veya anomaliler oluşabilir. Kurallar ile cihazın yaptığı veya yapabileceği hataları broker da engelleyip, bu hatalar yüzünden sistemin hatalı bir şekilde çalışması engellenir. Örneğin sisteme düzenli olarak 0-25 aralığında sıcaklık gelirken birden 1000 değeri gelmesi anormal bir davranışı ifade eder. Broker konuya özel tanımlanmış bir kural ile sisteme bu cihazdan gelebilecek sıcaklığı aralığını bilir ve gelen aşırı durumları sisteme eklemez, bu sayede sistem bu tip ataklara karşı korunmuş olunur.

Kurallar çalışma zamanında sisteme uygulanabilmektedir. Bir kural tanımı yapıldı-ğında sunucuya kaydedilir kaydedilmez gelen ilk ilgili mesaja doğrudan uygulanabil-mektedir. Sağladığımız bu esnekliğin kötü tarafı hazırlanan hatalı bir kuralın sistemi doğrudan etkileyebilecek olmasıdır. Hazırlanan bir kuralın mevcut kurallar ile etkile-şimi de söz konusudur. Dolayısı ile kuralın mesajı etkileyebilecek sistemdeki mevcut kurallarla birlikte değerlendirilmesi gerekmektedir.

Her bir konu özelinde brokerın çalıştıracağı komutlar sıralı bir şekilde tanımlanabil-mektedir. Broker ilgili konuya gelen her mesaj için sıra ve öncelik değerlerini dikkate alarak kuralları art arda çalıştırmaktadır. Kuralların çalışması neticesinde oluşan mesa-jın son hali abone broker kullanıcısına gönderilmektedir. Kurallar her kullanıcı için farklı olabildiği için yayıncı tarafından gönderilen bir mesaj farklı kullanıcılara farklı içerik ile gitmesi sağlanabilmektedir.

(5)

Şekil 1. Kural işleme mekanizması

3

Materyal ve Yöntem

Geliştirmekte olduğumuz platform daha önce de ifade edildiği üzere mesajları işle-yebilmemize olanak sağlamaktadır. Platformun işleyişi ve ekranların tasarlamasında dil olarak Java kullanılmıştır. Java Script dilinde tanımlanan kurallar yönetici tarafından platforma yüklenmektedir. Yönetici her kuralın önceliğini, hangi kullanıcıları etkileye-ceğini, hangi konulara uygulanacağını sistemde tanımlamaktadır. Bu çalışmamızda ha-talı kuralların çalışma zamanında sistemin işleyişine zarar vermeden etkilerini görme-mizi sağlaması hedeflenmektedir. Kurallar Java Script dilinde Şekil 2 görüldüğü üzere hazırlanmakta ve sunucuya gönderilmektedir. Örnek uygulamamızda Şekil 2’de ifade edilen kural sisteme daha önce eklenmiştir. Kural gelen mesajın içeriğinde Yer, Ciha-zId, Kurum, Hız, Sicaklik ve UserId alanlarının olmasını zorunlu kılmaktadır. Bu bil-gilerden bir tanesi dahi olmazsa ya da beklenmeyen bir içerik olursa mesaj alıcılara ulaştırılmamaktadır. Örneğimizde sadece alan adları kontrolüne yer verilmiştir. Hazır-lanan kuralda verilerin içeriği ve belirli sınırlar dahilinde olması sağlanabilir ve denet-lenebilir. Şekil 3’de yönetim uygulamasından kayıtlı olan kurallardan Kural 1(Temp-lateCheck) seçilmiş ve test mesajı için değerlendirilmek üzere sunucuya gönderilmiştir. Sekil 4’de ise sunucudan gelen sonuç görülmektedir. Birden fazla kural seçilerek etki-leşimlerinin görülmesi sağlanabilmektedir.

(6)

function GMSRuleFunction (msg){

var isTemplateBased = utils.JSONUtility().isTemplateBased("{ Yer:"", CihazId:"", En-terpise:"", Hız:"", Sicaklik:"", UserId:""}",msg);

if(isTemplateBased){

return core.RuleResult(1, msg); }else{

return core.RuleResult(2, isTemplateBased); }

}

Şekil 2. Şablon kontrol kuralı

(7)

Şekil 4. Şablon kuralının test mesajı için sonuç ekranı

Şekil 5’de ise hazırlanan yeni kural ile mesaj içeriğinde bir aboneye gönderilmeden önce mesajın içeriğinden UserId bilgisinin çıkartılması sağlanmaktadır. Her iki kuralda tek başına doğru bir şekilde çalışmaktadır. Ancak, hazırlanan son kural, ilkinden daha öncelikli olacak olursa Şekil 2 ile ifade edilen kurala göre mesajda UserID bilgisi ol-madığı için mesajın hedefe ulaşması broker tarafından engellenecektir. Dolayısı ile ci-hazdan gelen bilgileri bekleyen abone uygulama ya da cihaz mesajın gelmemesi nedeni ile doğru çalışamayacaktır. Şekil 3’de gösterildiği üzere templateCheck ve Kural 2 bir-likte seçilerek sunucu üzerinde çalıştırılabilir. Bu durumda öncelik sırasına göre kural-lar çalıştırılacak ve sonucu yönetici tarafından görülecektir.

Hazırladığımız araç aynı zamanda bir bakım sırasında gelmeyen mesajın hangi kural tarafından nasıl engellendiğinin tespiti amacı ile de kullanılabilmektedir. Hedefe ulaş-mayan örnek mesaj ve ilgili kuralların çıktıları doğrudan denetlenebilmektedir.

(8)

function GMSRuleFunction (msg){ var start = msg.indexOf("UserId"); var end = msg.indexOf(",", start)-1; var u = msg.slice(start, end); var res = msg.replace(u, ""); return core.RuleResult(1, res); }

Şekil 5. Test edilecek olan kural

4

Sonuçlar ve Tartışma

Nesnelerin interneti için cihazların ya da uygulamaların kendi aralarındaki iletişimde sadece konu ve kullanıcı tabanlı yetkilendirmenin ötesinde içerik kapsamında değer-lendirme imkanını daha önce sunmuştuk. Kurallar sisteme yüklenir yüklenmez aktif hale gelmekte ve dolayısı ile şartları sağlayan ilk mesajdan itibaren uygulanmaya baş-lamaktadır. Sisteme yüklenecek kuralların içerik ve sayısına bağlı olarak yöneticilerin hata yapması ve sistemde beklenmeyen çıktıların oluşması bir fabrikada üretimin dur-ması gibi durumlar ortaya çıkabilir. Hazırlanan bir kural tek başına bir mesaja uygulan-mıyor olabilir. Bu durumda kurallar arasındaki etkileşim önem kazanmaktadır. Sunulan çalışmada kuralların aktif hale gelmesinden önce gerçek sistemde test mesajları üzerin-den tüm ilgili kuralların çalışması sonrasında elde edilecek çıktı beklenen ile aynı olup olmadığı değerlendirilmektedir. Hazırlanan yeni kuralın neden olacağı sonuçlar, siste-min gerçek hayata uygulanması öncesinde görülebilir buna göre kuralların içeriğinin ya da önceliğinin değiştirilmesi ele alınabilir hale gelmiştir. Sunulan çalışmanın bir di-ğer faydası da üretilen bir mesajın hedeflere neden ulaşmadığının bulunmasında kulla-nılabilmesidir. Mesaj broker tarafından bir kural nedeni ile engelleniyorsa ilgili kural ve kurallar arası etkileşimin incelenmesi ile sebep bulunabilmesine olanak sağlamakta-dır.

5

Teşekkür

Sunulan çalışma, TÜBİTAK 1505 (5170033) proje desteği kapsamında Bursa’da yer-leşik EMKO Elektronik ile birlikte yapılan araştırma ve geliştirme çalışmalarının bir neticesi olarak ortaya çıkmıştır.

Kaynakça

1. R. van der Meulen, “Gartner Says 8.4 Billion Connected ‘Things’ Will Be in Use in 2017, Up 31 Percent From 2016,” Gartner Press Release, 2017. [Online]: http://www.gartner.com/newsroom/id/3598917.

2. V. Bhuvaneswari and R. Porkodi, “The internet of things (IOT) applications and communication enabling technology standards: An overview,” in Proceedings - 2014

(9)

324–329.

3. D. Happ, N. Karowski, T. Menzel, V. Handziski, and A. Wolisz, “Meeting IoT platform requirements with open pub/sub solutions,” Ann. des Telecommun. Telecommun., vol. 72, no. 1–2, pp. 41–52, 2017.

4. C. Toğay, “Nesnelerin Interneti için Yeni Mesaj İşleme Mekanizması,” Uludağ Univ. J. Fac.

Eng., vol. 23, no. 2, pp. 55–66, Jun. 2018.

5. C. Toğay, G. Mutlu, D. Kurtuluş, and F. Özgür, “Nesnelerin İnterneti için Güvenli Ağ Geçidi,” Eur. J. Sci. Technol., no. 16, pp. 414–426, Aug. 2019.

6. “ActiveMQ.” [Online]: http://activemq.apache.org. 7. A. Banks and R. Gupta, “MQTT Version 3.1.1.” .

Şekil

Şekil 1. Kural işleme mekanizması
Şekil 3. TemplateCheck kuralını test mesajı için değerlendirilme ekranı
Şekil 4. Şablon kuralının test mesajı için sonuç ekranı

Referanslar

Benzer Belgeler

Experimental study on static and dynamic mechanical properties of steel fiber reinforced lightweight aggregate concrete, Construction and Building Materials,

Ortamdaki algılayıcı cihazlardan ve üretimdeki veri terminallerinden gelen, gerçek zamanlı sürekli veri akışı, merkezi bir noktada veya farklı Bulut

Besin alerjisiyle ortaya ç›kan önemli bir sorunsa, kimi zaman al›nan besine ba¤l› baflka rahats›zl›klarla kar›flt›r›lmas›. Mount Sinai araflt›rmac›lar›ysa ilk

Akım ve Gerilim Ölçümü: Güneş enerjili yarış aracında akım ve gerilimi doğru olarak ölçmek, aracın harcadığı enerji, kalan enerji, kalan enerjiye

Çok farklı cihaz ve sensörlerden toplanan bu veriler, büyük veri analizi (Big Data Analyze), yapay zeka (Artificial Intelligence-AI) yöntemleri ile insan kullanılmadan

YAZILIYA HAZIRLIK SORULARI Soru 1: 5 soruluk bir test sınavında her sorunun dört cevap şıkkı.. vardır.. Üst yüze

Bu dizimsel yapıda önce sonuç cümlesi yer almakta, sonra neden cümlesine yönelik bir soru cümlesi ve ardından cevap niteliğindeki neden cümlesi yer almakta,

Gerçekten akıllı olmak için bir IoT cihazı veya bileşeni veri toplayabilmeli ve analiz edebilmeli ve otomatik olarak analizine dayalı akıllı eylemler