Başlangıç

Linux – Komut satırından klavye dili değiştirme

Yorum bırakın


İngilizce Klavye:
setxkbmap us

Türkçe Klavye:
setxkbmap tr
Reklamlar

XSS ile yapabileceğiniz 21 şey

Yorum bırakın


  • Ad-Jacking – Bir web sitesinde XSS varsa, reklamlarınızı yayınlayarak para kazanılabilir.
  • Click-Jacking – Sayfada tıklandığında çalışacak kötü niyetli arayüzler oluşturabilirsiniz..
  • Session Hijacking – Çerezlerde HTTP ONLY bayrağı bulunmuyorsa, HTTP çerezlerine JavaScript tarafından erişilebilir.
  • Content Spoofing – JavaScript, bir web uygulamasının müşteri tarafı koduna tam erişime sahiptir ve bu nedenle, istediğiniz içeriği göstermek / değiştirmek için kullanabilirsiniz.
  • Credential Harvesting – Kimlik bilgilerini almak için bir pencere kullanabilirsiniz. WiFi ürün yazılımı güncellendi, kimlik doğrulaması için kimlik bilgilerinizi tekrar girin.
  • Forced Downloads – Kötü niyetli indirme yapmasını sağlayabiliriniz.
  • Crypto Mining – Kurbanın CPU’sunu sizin için biraz bitcoin madeni yapmak için kullanabilirsiniz!
  • Bypassing CSRF protection – POST isteklerini JavaScript ile yapılabilir, JavaScript ile bir CSRF belirteci toplayabilir ve gönderebilirsiniz.
  • Keylogging – Kurban bilgisayarındaki tüm girişleri toplayabilirsiniz..
  • Ses Kaydetme – Kullanıcıdan yetki alınması gerekir, ancak kurbanın mikrofonuna erişirsiniz. HTML5 ve JavaScript sayesinde.
  • Fotoğraf çekme – Kullanıcıdan yetki alınması gerekir, ancak mağdurun web kamerasına erişirsiniz. HTML5 ve JavaScript sayesinde.
  • Coğrafi konum – Kullanıcıdan yetki gerektirir, ancak mağdurun Coğrafi konumuna erişirsiniz. HTML5 ve JavaScript sayesinde. GPS’li cihazlarla daha iyi çalışır.
  • HTML5 web depolama verilerini çalmak – HTML5 yeni bir özellik olan web depolama özelliğini tanıttı. Artık bir web sitesi daha sonra kullanmak üzere tarayıcıda veri depolayabilir ve tabii ki, JavaScript bu depolamaya window.localStorage () ve window.webStorage () aracılığıyla erişebilir.
  • Tarayıcı ve Sistem Parmak İzi – JavaScript, tarayıcınızın adını, sürümünü, yüklü eklentilerini ve sürümlerini, işletim sisteminizi, mimariyi, sistem zamanını, dili ve ekran çözünürlüğünü bulmanızı sağlar.
  • Ağ Taraması – Kurbanın tarayıcısı JavaScript’i kullanarak portları ve hostları taramak için kötüye kullanılabilir.
  • Tarayıcıların Çökmesi -stuff ile tıkayarak çökertebilirsiniz.
  • Bilgi Çalmak – Web sayfasından bilgi alın ve sunucunuza gönderin.
  • Yönlendirme – Kullanıcıları seçtiğiniz bir web sayfasına yönlendirmek için javascript kullanabilirsiniz.
  • Tab-napping – Yeniden yönlendirmenin yalnızca süslü bir sürümü. Örneğin, bir dakikadan uzun süre klavye ya da fare olayı alınmadıysa, kullanıcının afk olduğu ve geçerli web sayfasını gizli bir sahtekarlıkla değiştirebileceğiniz anlamına gelebilir.
  • Ekran Yakalama – Yine HTML5 sayesinde bir web sayfasının ekran görüntüsünü alabilirsiniz.
  • Eylemleri Gerçekleştirin – Tarayıcıyı kontrol ediyorsunuz, gücü hissedemiyor musunuz? 

https://somdev.me/21-things-xss/

Twifo :Twitter Kullanıcısının Kullanıcı Bilgilerini Alma

Yorum bırakın


npm kurulumu için otomatik sh dosayası için tıklayın.

sh dosyası kurulumu:

chmod +x nodejs_kali_install.sh

./nodejs_kali_install.sh

npm install –global twifo-cli

twifo irtengunica

2019-01-26_19-31-56.png

YAPAY SİNİR AĞLARI KULLANILARAK KİMLİK AVI YAPAN WEB SİTELERİNİN TESPİTİ

Yorum bırakın


2018 yılının İnternet, sosyal medya ve mobil kullanıcı istatistiklerine göre (https://wearesocial.com/uk/), dünya nüfusunun %53’ü internet, dünya nüfusunun %68’i mobil kullanıcısı olduğu büyük bir pazardır. Doğal olarak kötü niyetli fikir ve uygulamalarda bu pazarla beraber büyümektedir.

2017 verilerine göre Kimlik Avı ve E-posta Dolandırıcılık İstatistikleri;

  • Spam e-postaların miktarı 2016’da 4 kat arttı (IBM)
  • Kimlik avı, veri ihlallerinin% 90’ını oluşturur
  • 2016 yılında 1/131 e-postada kötü amaçlı yazılım bulundu (Symantec)
  • Başarılı bir şekilde avlanan insanların %15’i, yıl içinde en az bir kez daha hedeflenecektir
  • BEC dolandırıcılığı Ekim 2013-Aralık 2016 (FBI) ‘dan 5 milyar $’ lık zarardan sorumludur.
  • 870 kuruluş, 2017’nin ilk 4 ayında W-2 kimlik avı e-postaları aldı (IRS)
  • Kimlik avı girişimleri geçen yıl% 65 arttı
  • Her ay yaklaşık 1,5 milyon yeni kimlik avı sitesi oluşturuluyor (Webroot)
  • Kuruluşların% 70’i 2017’de kimlik avına mağdur olduklarını bildirdi
  • İşletmelerin% 76’sı, geçen yıl bir kimlik avı saldırısının kurbanı olduğunu bildirdi
  • Kimlik avı iletilerinin% 30’u hedeflenen kullanıcılar tarafından açılır (Verizon)

(https://retruster.com/blog/2018-phishing-and-email-fraud-statistics)

Yukarıda bahsi geçen sorunlar bu çalışmanın hayati bir önemi olduğunu göstermektedir.

Bu çalışmada Kimlik Avı Web Sitelerine İlişkin Özelliklerinin veri setini kullanarak kimlik avı yapan web sitelerinin tahminini yapan rastgele ağırlıklı yapay sinir ağı oluşturup eğittik.  Eğitim sonrası yapılan tahminlerde %81.5864 doğruluk elde edilmiştir.

Anahtar sözcükler: YSA, Yapay Sinir Ağı, phishing, oltalama, kimlik avı, web, email, spam.

1.    GİRİŞ

Günlük hayatımızda vazgeçilmez bir yere sahip olan bilgisayarın, artık insanlar gibi karar verme ve öğrenme gerçekleştirme yeteneklerini kazanması ile kullanım alanları oldukça genişlemiştir. Matematiksel olarak ifade edilemeyen ve insanlar tarafından çözülmesi zor olan problemlerin çözümünde yapay zekâ yöntemleri kullanılmaktadır. Yapay zekâ yöntemlerinin en temel özelliği, olaylara ve problemlere çözümler üretirken örneklerden, tecrübeden, benzetmelerden öğrenme gerçekleştirme ve karar verebilme yeteneklerinin olmasıdır.

Makine öğrenimi için en popüler yaklaşımlardan biri yapay sinir ağlarıdır. Yapay sinir ağları, geleneksel hesaplama yöntemleri ile çözülemeyen problemlerin çözümünde yaygın olarak kullanılmaktadır.

Öğrenme, genelleme, doğrusal olmama, hata toleransı, uyum, paralellik gibi üstünlüklere sahip olan yapay sinir ağları; görüntü ve sinyal işleme, hastalık tahmini, gibi tıbbi uygulamalarda; mühendislik, üretim, finans, optimizasyon, sınıflandırma gibi çok farklı uygulama alanlarında kullanılmaktadır.

Çok katmanlı algılayıcı modeli geri yayılım algoritması kullanılarak tasarlanmıştır. Yazılımın çok katmanlı algılayıcı bölümünde, ağın yapısı, katman ve katmanlardaki nöron sayısı, verilerin normalizasyon yöntemi, katmanlarda kullanılan aktivasyon fonksiyonu, öğrenme oranı, momentum katsayısı, iterasyon sayısı, eğitimi sonlandırma koşulu, başlangıç ağırlıklarının şeçimi kullanıcı tarafından belirlenmektedir.

Test işleminden sonra ağın performansı ölçülebilmektedir. Ağın yapısı, kullanılan parametreler, eğitim ve test verisi, eğitilen ağın bağlantı ağırlıkları, eşik değerleri ve test işleminden sonra ağın çıktıları, eğitim ve test işleminin hata ve süre değerleri bir klasör içerisinde ki dosyalar ile dizine kaydedilmektedir.

Bu çalışmanın amacı günümüzde en yaygın siber saldırı türlerinden olan kimlik avı web sitelerinin belirlenen bazı öznitelikleri sınıflandırarak kimlik avı yapan web sitelerini tespit etmektir. Tek bir internet kullanıcısından dünyadaki en büyük şirketlere kadar ağ içindeki herkesi tehdit eden, finansal olarak da büyük zararların ortaya çıktığı bu saldırıların önlemesi, önceden sezilmesi ortaya çıkan zaman ve finansal katma değer açısından hayati derecede önemlidir.

Literatürde kimlik avı web sitelerini tahmin etmeye yönelik birçok makale yayınlanmış olsa da güvenli bir eğitim seti bulmak zordur. Çünkü kimlik avı web sayfalarını belirleyen kesin öznitelikler konusunda literatürde bir anlaşma yoktur. Yine de kullanmış olduğumuz veri setinde ki öznitelikler ile oluşturduğumuz yapay sinir ağının bu çalışmalara katkı yapacağı düşünülmüştür. İlerleyen bölümlerde gerekli açıklamalar ayrıntısıyla anlatılacaktır.

1.    MATERYAL VE YÖNTEM

1.1. Kullanılan Veritabanı

Yapılan çalışmada UCI Machine Learning Repository’den alınan Website Phishing Data Set veritabanı kullanılmıştır. Bu veri seti, Auckland Institute of Studies Enstitüsünden Neda Abdelhamid tarafından oluşturulmuştur. Veritabanında farklı kaynaklardan 1353 farklı web sitesi ve bu örneklere ait 9 farklı özellik bulunmaktadır. Sınıflandırma 3 sınıf üzerinden yapılmıştır. Veri setinde bulunan şüpheli web siteleri kullanıcıların gönderebileceği, doğrulayabildiği, izleyebileceği ücretsiz bir topluluk sitesi olan Phishtank veri arşivinden (www.phishtank.com), şüpheli olmayan Yahoo dizinlerinden toplanmıştır. Toplam 1353 web sitesinden 548 süpheli olmayan web URL’si, 702 kimlik avı URL’si ve 103 de şüpheli URL veri setinde bulunmaktadır. Kullanılan örneklerin özellikleri aşağıda belirtilmiştir.

Örnek Değişken Adı Ölçü Birimi
1.               SFH (Server From Handler) Sunucu Formu İşleyicisi {1,-1,0}
2.                popUpWidnow(Açılır Penceler) {-1,0,1}
3.               SSLfinal_State (SSL Durumu) {1,-1,0}
4.               Request_URL (URL isteme) {-1,0,1}
5.               URL_of_Anchor (URL Çapa Durumu) {-1,0,1}
6.               web_traffic (Web Trafiği) {1,0,-1}
7.               URL_Length (URL karakter uzunluğu) {1,-1,0}
8.               age_of_domain (Alan adı yaşı) {1,-1}
9.               having_IP_Address (IP adresi durumu) {0,1}
10.            Result {Yasal,Şüpheli,Kimlik avı(Phissing)} {00,10,01}

Yukarıda bulunan Örnek özelliklerden 1-9 arasındaki özellikler giriş bilgileridir ve tahminde kullanılır. 10.özellik ise sınıf bilgisini verir.

  1. SFH (Server From Handler) Sunucu Formu İşleyicisi {1,-1,0}:Kullanıcı bilgilerini gönderdikten sonra; Web sayfası bilgileri bir sunucuya aktarır, böylece işleyebilir. Bilgi, web sayfasının yüklendiği aynı alandan işlenir. Phishers, sunucu formu işleyicisini boş hale getirir ya da bilgiler yasal alandan farklı bir yere aktarılır.

Kural:

  • SFH ‘about : blank’ veya boş ise Phishy(Kimlik avı) (-1)
  • SFH farklı alana yönlendiriyorsa Şüpheli(0)
  • Değilse Yasal (1)
  1. popUpWidnow(Açılır Penceler) {-1,0,1} Genellikle doğrulanmış siteler, kullanıcılardan kimlik bilgilerini bir açılır pencereden göndermelerini istemez

Kural:

  • rightClick disabled (sağ tuş kapalı) Phishy(Kimlik avı) (-1)
  • rightClick (sağ tuş) Uyarı varsa Şüpheli(0)
  • Değilse Yasal (1)
  1. SSL final_State (SSL Durumu) {1,-1,0}:HTTPS protokolü bilgilerin aktarılmasında kullanılan güvenli bir protokoldür. Bununla birlikte, avcılar sahte bir HTTPS protokolü kullanabilir, böylece kullanıcılar aldatılabilir olabilir. HTTPS protokolünün GeoTrust, GoDaddy, VeriSign, vb. Gibi güvenilir bir yayıncı tarafından sunulduğunun kontrol edilmesi gerekir.

Kural :

  • https kullanımı & güvenilir yayıncı & yaş>=2 yıl ise Yasal (1)
  • https kullanımı & güvenli olmayan yayıncı ise Şüpheli(0)
  • Değilse Phishy(Kimlik avı) (-1)
  1. Request_URL (URL isteme) {-1,0,1}:Bir web sayfası genellikle metin ve resim ve videolar gibi bazı nesnelerden oluşur. Genellikle, bu nesneler, web sayfasının aynı sunucusundan web sayfasına yüklenir. Nesneler URL adres çubuğuna yazılandan başka bir alandan yüklendiyse, web sayfası potansiyel olarak şüphelidir.

Kural:

  • request URL < 22% ise Yasal (1)
  • request URL P 22% and < 61% arasındaysa Şüpheli(0)
  • Değilse Phishy(Kimlik avı) (-1)
  1. URL_of_Anchor (URL Çapa Durumu) {-1,0,1}: URL özelliğine benzer, ancak burada web sayfasındaki bağlantılar URL adres çubuğuna yazılan alan adından farklı bir alanı işaret edebilir.

Kural :

  • URL anchor < %31 ise Yasal (1)
  • URL anchor %32 and % 67 ise Şüpheli(0)
  • Değilse Phishy(Kimlik avı) (-1)
  1. web_traffic (Web Trafiği) {1,0,-1}: Yasal web siteleri, düzenli olarak ziyaret edilmeleri nedeniyle genellikle yoğun trafiğe sahiptir. Kimlik avı web siteleri normalde nispeten kısa bir ömre sahip olduğu için; Web trafiği yok veya düşük sıralamaya sahipler. Yasal bir web sayfasının, Alexa database’de 150.000’e eşit veya daha düşük bir sıraya sahip olması önerilmiştir (Alexa, Web Information Company, 2011).

Kural:

  • webTraffic < 150; 000 ise Yasal (1)
  • webTraffic > 150; 000 ise Şüpheli(0)
  • Değilse Phishy(Kimlik avı) (-1)
  1. URL_Length (URL karakter uzunluğu) {1,-1,0}: Kullanıcıların gönderdiği bilgileri yeniden yönlendirmek veya yüklenen sayfayı şüpheli bir alana yönlendirmek için URL’nin şüpheli kısmını gizler. Bilimsel olarak, kimlik avı URL’leri ile yasal olanları birbirinden ayıran standart güvenilir uzunluk yoktur. (Mohammad ve ark., 2012) URL uzunluğu 54 karakterden büyük olduğunda, URL phishy olarak kabul edilebilir.

Kural :

  • URL length < 54 ise Yasal (1)
  • URL length 54 ve 75 arasında ise Şüpheli(0)
  • Değilse Phishy(Kimlik avı) (-1)
  1. age_of_domain (Alan adı yaşı) {1,-1}: 1 yıldan kısa bir süredir çevrimiçi varlığa sahip web siteleri riskli kabul edilebilir.

Kural:

  • age_of_domain > 1 ise Yasal (1)
  • Değilse Phishy(Kimlik avı) (-1)
  1. having_IP_Address (IP adresi durumu) {0,1} : URL’nin alan adında bir IP adresi kullanmak, birinin kişisel bilgilere erişmeye çalıştığının göstergesidir. Bu hile, çoğu şirketin daha fazla kullanmadığı bir IP adresiyle başlayabilecek bağlantılar içerir. Verilerin% 20’si ‘‘ IP ’adresini içerir ve bunların hepsi phishy web siteleriyle ilişkilendirilir IP adresi http://91.121.10.211/~chems/webscr/verify gibidir, IP adresi http://0x58.0xCC.0xCA.0x62. onaltılık olarak dönüştürülür.

Kural :

  • URL’de IP adresi varsa Phishy(Kimlik avı) (-1)
  • Değilse Yasal (1)

10.Result (sonuç) {Yasal,Şüpheli,Kimlik avı(Phissing)} {00,10,01} : 1 yıldan kısa bir süredir çevrimiçi varlığa sahip web siteleri riskli kabul edilebilir.

Çıkışlar:

  • 00è Yasal
  • 10è Şüpheli(0)
  • 01è Phishy(Kimlik avı)

 

1.2. YAPAY SİNİR AĞLARI

Yapay Sinir Ağları, beynin fizyolojisinden yararlanılarak oluşturulan bilgi işleme modelleridir. Literatürde 100’den fazla YSA modeli vardır. Bazı bilim adamları, beynimizin güçlü düşünme, hatırlama ve problem çözme yeteneklerini bilgisayara aktarmaya çalışmışlardır. Bazı araştırmacılar ise, beynin fonksiyonlarını kısmen yerine getiren birçok modeli oluşturmaya çalışmışlardır.

Yapay sinir ağlarının hesaplama ve bilgi işleme gücünü, paralel dağılmış yapısından, öğrenebilme ve genelleme yeteneğinden aldığı söylenebilir. Genelleme, eğitim ya da öğrenme sürecinde karşılaşılmayan girişler için YSA’ların uygun tepkileri üretmesi olarak tanımlanır. Bu üstün özellikleri, YSA’ların karmaşık problemleri çözebilme yeteneğini gösterir.

Yapay sinir hücreleri, YSA’nın çalışmasına esas teşkil eden en küçük bilgi işleme birimidir. Geliştirilen hücre modellerinde bazı farklılıklar olmasıyla birlikte genel özellikleri ile çok girişli bir nöron modeli Şekil-2.3.’de gösterilmiştir. Bu hücre modelinde girişler, ağırlıklar, toplam fonksiyonu, aktivasyon fonksiyonu ve çıkış görülmektedir. Girişler (x) diğer hücrelerden ya da dış ortamlardan hücreye giren bilgilerdir. Bilgiler, bağlantılar üzerindeki ağırlıklar (w) üzerinden hücreye girer ve ağırlıklar ilgili girişin hücre üzerindeki etkisini belirler. Toplam fonksiyonu (Σ), bir hücreye gelen net girdiyi hesaplayan bir fonksiyondur ve genellikle net girdi, girişlerin ilgili ağırlıkla çarpımlarının toplamıdır.

Hücre modellerinde net girdiyi artıran +1 değerli ya da azaltan -1 değerli eşik girişi (b) bulunabilir. Aktivasyon fonksiyonu (f) ise toplama fonksiyonundan elde edilen net girdiyi bir işlemden geçirerek hücre çıktısını (t) belirleyen bir fonksiyondur. Nöron çıkışı seçilen özel aktivasyon fonksiyonuna bağlıdır. Böylece nöron giriş/çıkış ilişkilerinin bazı özel amaçlarda kullanılabilmesi için w ve b parametreleri öğrenme kuralları tarafından ayarlanabilir. Genel olarak hücre modelleri Şekil 2.1.  ve Şekil 2.2. ’deki gibi olmakla birlikte gerçekleştirdiği işleve göre hücreler statik ya da dinamik bir davranış gösterebilirler. Aşağıdaki şekilde ağırlıkların sabit olduğu ve hücrede geri besleme ya da geciktirilmiş sinyaller kullanılmadığı dikkate alınırsa bu hücre statik bir işlevi gerçekleştireceğinden bu model, statik bir hücre modeli olarak ifade edilebilir.

2019-01-24_12-43-05.png

2019-01-24_12-44-01.png

Şekil 2.3. ‘ye göre;

OèHesaplanan Çıkış Katmanı Çıkışları

Tèİstenen Çıkış Katmanı Değerleri

δèHesaplanan Çıkış Katmanı Hata Faktörleri

O’èHesaplanan Gizli Katman Çıkışları

δ’èHesaplanan Gizli Katman Hata Faktörleri

WèKatman Ağırlıkları

bèBias Değerleri

xèGiriş Değerleri

NèN adet Giriş Katmanı Nöronları

KèK adet Ara(Gizli) Katman Nöronları

Mè M adet Çıkış Katmanı Nöronları

1.1. BACKPROPAGATION (GERİYE YAYILIM) ALGORİTMASI

Karmaşık verilerin sınıflandırılmasında kullanılan YSA modellerinden birisi; ilk olarak Werbos tarafından düzenlenen daha sonra Parker , Rummelhart ve McClelland tarafından geliştirilen geri yayılım ağıdır (Backpropagation Network). Geri beslemeli YSA’da en az bir hücrenin çıkışı kendisine ya da diğer hücrelere giriş olarak verilir ve genellikle geri besleme bir geciktirme elemanı üzerinden yapılır. Geri besleme, bir katmandaki hücreler arasında olduğu gibi katmanlar arasındaki hücreler arasında da olabilir. Bu yapısı ile geri beslemeli yapay sinir ağı, doğrusal olmayan dinamik bir davranış gösterir. Dolayısıyla, geri beslemenin yapılış şekline göre farklı yapıda ve davranışta geri beslemeli YSA yapıları elde edilebilir. Yayılma (Propagate) ve uyum gösterme (Adapt) olmak üzere iki aşamada işlemleri gerçekleştiren Standart Backpropagation Algoritması (SBP), katmanlar arasında tam bir bağlantının bulunduğu çok katmanlı, ileri beslemeli ve öğreticili olarak eğitilen bir YSA modelidir.

Standart Backpropagation Algoritması; hataları geriye doğru çıkıştan girişe azaltmaya çalışmasından dolayı bu ismi almıştır. Geri yayılmalı öğrenme kuralı ağ çıkışındaki mevcut hata düzeyine göre her bir katmandaki ağırlıkları yeniden hesaplamak için kullanılmaktadır. Bir geri yayılımlı ağ modelinde giriş, gizli ve çıkış olmak üzere 3 katman bulunmakla birlikte, problemin özelliklerine göre gizli katman sayısını artırabilmek mümkündür.

Giriş katmanı; giriş veri gruplarının ağa sunulduğu terminallerdir. Bu katmanda nöron sayısı, giriş veri sayısı kadardır ve her bir giriş nöronu bir veri alır. Burada veri, işlenmeden bir sonraki katman olan gizli katmana geçer.

Gizli katman; ağın temel işlevini gören katmandır. Bazı uygulamalarda ağda birden fazla gizli katman bulunabilir. Gizli katman sayısı ve katmandaki nöron sayısı, probleme göre değişir. Bu katman; giriş katmanından aldığı ağırlıklandırılmış veriyi probleme uygun bir fonksiyonla işleyerek bir sonraki katmana iletir. Bu katmanda gereğinden az nöron kullanılması giriş verilerine göre daha az hassas çıkış elde edilmesine sebep olur. Aynı şekilde gerektiğinden daha çok sayıda nöron kullanılması durumunda da aynı ağda yeni tip veri gruplarının işlenmesinde zorluklar ortaya çıkar.

Çıkış katmanı; YSA’nın en uç katmanıdır. Gizli katmandan aldığı veriyi ağın kullandığı fonksiyonla işleyerek çıktısını verir. Çıkış katmanındaki nöron sayısı, ağa sunulan her verinin çıkış sayısı kadardır. Bu katmandan elde edilen değerler YSA’nın söz konusu problem için çıkış değerleridir. Bir geri yayılımlı ağ modelinde; bir katmandan bir başka katmana, aradaki katmanı atlayarak geçebilmek mümkün değildir.

Bir giriş verisi ağın ilk katmanında yer alan düğümlere uygulandığında en üst katman olan çıkış katmanına erişinceye kadar, bu veri üzerinde çeşitli işlemler gerçekleştirilir. Bu işlemlerin sonucunda elde edilen çıktı, olması gereken hedeflenen çıktı ile karşılaştırılır. YSA çıkışı ve hedeflenen çıkış değerleri arasındaki fark, her çıktı düğümü için bir hata sinyali olarak hesaplanır. Hesaplanan hata sinyalleri, her çıktı düğümüne karşı gelen ara katmandaki düğümlere aktarılır. Böylece ara katmandaki düğümlerin her biri toplam hatanın sadece hesaplanan bir kısmını içerir. Bu süreç her katmandaki düğümler toplam hatanın belirli bir kısmını içerecek şekilde giriş katmanına kadar tekrarlanır. Elde edilen hata sinyalleri temel alınarak, bağlantı ağırlıkları her düğümde yeniden düzenlenir. Bu düzenleme tüm verilerin kodlanabileceği bir duruma ağın yakınsamasını sağlar.

İleri besleme safhasında, giriş katmanındaki nöronlar veri değerlerini doğrudan gizli katmana iletir. Gizli katmandaki her bir nöron, kendi giriş değerlerini ağırlıklandırarak toplam değeri hesap eder ve bunları bir aktivasyon fonksiyonu ile işleyerek bir sonraki katmana veya doğrudan çıkış katmanına iletir. Katmanlar arasındaki ağırlıklar başlangıçta rastgele küçük rakamlardan seçilir.

Çıkış katmanındaki, her bir nöron ağırlıklandırılmış değeri hesaplandıktan sonra, bu değer yine aktivasyon fonksiyonu ile karşılaştırılarak mevcut hata minimize edilmeye çalışılır. Hata değeri belli bir mertebeye ininceye kadar iterasyon işlemine devam edilir ve böylece ağın eğitim aşaması tamamlanmış olur. Katmanlar arasındaki bağlantılardaki ağırlık değerleri eğitimi tamamlamış ağdan alınarak deneme safhasında kullanılmak üzere saklanır .

Backpropagation Algoritması, YSA araştırmaları için önemli bir buluştur. Ama birçok pratik uygulama için çok geri kalmaktadır. SBP Algoritmasının en büyük problemi, çok uzun eğitim süresine sahip olmasıdır. Pratik problemlerde temel SBP Algoritmasının kullanılması, YSA eğitiminin günlerce hatta  haftalarca sürebileceğinden dolayı mümkün değildir. Bu sebeple algoritmada yakınsamayı hızlandırmak için bazı metotlar geliştirilmiştir.

SBP Algoritmasının performansını iyileştirecek teknikler iki kategoride incelenir. Birinci kategori;

Sezgisel Yaklaşım (Heuristik) tekniklerin gelişimlerini içerir ki bu teknikler SBP Algoritmasının özel performans çalışmalarından ileri gelir. Bu sezgisel yaklaşım teknikleri momentum kullanılarak yapılır. Momentum katsayısı(g), YSA’nın daha hızlı toparlanmasına yardım eden bir faktördür. Öğrenme esnasında ağın salınımını önler. Momentum katsayısı 0 < g < 1 aralığında seçilir. YSA her adımda daha az hata değerine sahip bir noktaya gelmek isteyecektir. Birden çok iterasyon sonucunda sistem minimum hatalı olan noktaya erişecektir. Eğitim sırasında, YSA hatanın azaldığı yerde durmayı sürdürmek ister. YSA için local minima tuzağına düşmek doğaldır ve bu durum global minimuma ulaşmasına engel olabilir. Momentum öğrenme algoritmasını local minimumdan kaçacak şekilde önceki yönde tutmaya çalışır.

Diğer araştırma kategorisi ise, standart sayısal optimizasyon tekniklerini bir noktada toplar. İleri beslemeli yapay sinir ağları eğitiminde hataların karelerinin minimizasyonu basit bir sayısal optimizasyon problemidir.

Diğer Terimler;

Epoch: tüm giriş verilerinin işlenmesindeki tek bir iterasyon. Her epoch’da YSA öğrenir. Aynı girişleri çok kereler uygulamanın sonucu olarak, sistem kendini az bir hata ile eğitebilir hale gelir. Çok sayıda epoch ile sistem tam olarak eğitilmiş kabul edilir. Epoch’lar sistemin kendini eğitim verisine göre eğitebilmesi için gereklidir.

Öğrenme Oranı(η): Büyük öğrenme oranı: sistem veriyi çok hızlı öğrenir,toplam hata artar. Düşük öğrenme oranı: sistem çok yavaş öğrenir, eğitim zamanı artar ancak hata azalır.

Durdurma kriteri: Zaman eşik değerine ulaştığında bitebilir. Önceden tanımlı epoch değeri vardır. Algoritma bu epocha ulaştığında bitebilir. Önceden tanımlı hata değerine eriştiğinde bitebilir. İki epoch arasındaki hata değeri azaldığında eğitim bitebilir. Eğitim devam etse bile performansta çok fazla değişiklik olmayacağı hesap edilir.

1.2. YAPAY SİNİR AĞLARI KULLANILARAK KİMLİK AVI YAPAN WEB SİTELERİNİN TESPİTİ

Bu çalışmada örnek veri seti ile 9 farklı öznitelik kullanılarak Yapay Sinir Ağları Kullanılarak Kimlik Avı Yapan Web Sitelerinin Tespiti tahmin edilmektedir. Bu nedenle oluşturulan sinir ağının giriş katmanında 9 nöron bulunmaktadır. Çıkış katmanında ise Yasal(00), Şüpheli(10), Kimlik avı(Phissing)(01) şeklinde 3 farklı çıkış bilgisi elde edileceğinden 2 nöron kullanılmaktadır. Ara katmanda 10 nöron bulunmaktadır. Başlangıç aşamasında ağırlık ve bias için 0-1 arasında rastgele değerler alınmıştır. Alınan değerler eğitim aşamasında güncellenerek son değere ulaşılmıştır. Çıkış nöronlarından alınan hata bilgileri geri yayılım aşamasında kullanılarak hata oranı en aza indirilmiştir.

2019-01-24_12-45-38.png

Yapay sinir ağı Uygulamasında;

Giriş katmanında ki giriş sayısı (Xp1…Xp9) 9;

Gizli katmanda ki nöron sayısı 10;

Çıkış katmanındaki nöron sayısı 2;

Gizli katman çıkışları (O’p1… O’p10);

Gizli katman hata faktörleri (δ’P1… δ’P10);

Çıkış katman çıkışları (Op1, Op2);

Çıkış katman istenen çıkışları (Tp1, Tp2);

Çıkış katman hata faktörleri (δP1… δP2);

Öğrenme katsayısı(η) 0,6;

Momentum katsayısı(g) 0,4;

Hata faktörü 0,01;

Çürüme faktörü 0,01;(öğrenme ve momentum katsayısı değerleri her epoch sonunda belli oranda azaltılmasının eğitime katkısı gözlenmiştir.)

Tüm ağırlık ve bias değerleri random alınarak eğitime başlanmıştır. Tüm başlangıç ağırlık ve bias değişiklikleri ilk başta sıfır olarak alınmıştır.

Aktivasyon fonksiyonu olarak sigmoid fonksiyonu kullanılmıştır.

Yukarıda  ara katman çıkışlarını,  giriş katmanı bilgilerini,  ara katman ağırlıklarını,  ara katman biaslarını ifade eder.

çıkış katmanı çıkışlarını,  çıkış katmanı ağırlıklarını,  çıkış katmanı biaslarını ifade eder.

Güncellemeler sondan başa doğru yapılır.

2019-01-24_13-00-36.png

Yukarıda  ara katman çıkışlarını,  giriş katmanı bilgilerini,  ara katman ağırlıklarını,  ara katman biaslarını ifade eder.

2019-01-24_13-00-47.png

çıkış katmanı çıkışlarını,  çıkış katmanı ağırlıklarını,  çıkış katmanı biaslarını ifade eder.

Güncellemeler sondan başa doğru yapılır.2019-01-24_13-00-57.png

2019-01-24_13-01-11.png

2019-01-24_13-01-25.png

Kodlama işlemleri Matlab programı ile yapılmıştır. Matlab üzerinde herhangi bir hazır araç veya fonksiyon kullanılmamıştır. Matlab üzerinde yapılan kodlama aşağıdadır.

Xp1 Xp2 Xp3 Xp4 Xp5 Xp6 Xp7 Xp8 Xp9 T1 T2
1 -1 1 -1 -1 1 1 1 0 0 0
-1 -1 -1 -1 -1 0 1 1 1 1 0
1 -1 0 0 -1 0 -1 1 0 1 0
1 0 1 -1 -1 0 1 1 0 0 0
-1 -1 1 -1 0 0 -1 1 0 1 0
-1 -1 1 -1 -1 1 0 -1 0 1 0
1 -1 0 1 -1 0 0 1 0 0 1
1 0 1 1 0 0 0 1 1 0 1
-1 -1 0 -1 -1 -1 -1 1 0 0 0
-1 0 -1 -1 1 1 0 -1 0 1 0
-1 -1 0 -1 -1 1 -1 -1 0 1 0
1 0 1 1 1 -1 1 1 0 0 1
1 -1 0 -1 1 0 1 1 0 1 0
1 0 1 0 -1 1 0 -1 0 0 1
-1 -1 -1 1 -1 0 -1 1 0 1 0
0 0 -1 0 0 1 1 -1 1 1 0
-1 0 0 0 -1 1 -1 -1 0 1 0

Yukarıda bulunan Örnek özelliklerden 1-9 arasındaki özellikler giriş bilgileridir ve tahminde kullanılır. 10.özellik ise sınıf bilgisini verir.

 

 

1.    SONUÇLAR VE TARTIŞMA

Bu çalışmada örnek veri seti ile 9 farklı öznitelik kullanılarak Yapay Sinir Ağları Kullanılarak Kimlik Avı Yapan Web Sitelerinin Tespiti tahmin edilmektedir. Çalışma sonucu parametrelerle oynayarak Ağın başarı oranı %81.586402 olarak hesaplanmıştır. Aşağıda başka bir uygulamada Standart Backpropagation Algoritması ile Geliştirilmiş Backpropagation Algoritması arasındaki farkı açıkça göstermektedir.

Şekil 3 ve Şekil 4, standart BP algoritmasını ve geliştirilmiş BP algoritması tahminlerini, gerçek verileri ve tahmin hatasını göstermektedir. Aynı koşullar altında, standart BP algoritmasının tahmin verileri ve ve gerçek verileri arasında nispeten büyük bir fark olduğunu görmek kolaydır. 400’e kadar yineleme süreleri, aşağı doğru eğilimin ortalama kare hatası yavaşlar ve yineleme süreleri 2000’e ulaştığında, hata nispeten büyüktür; Geliştirilmiş BP algoritmasının tahmin verileri, standart BP algoritmasına göre gerçek verilere daha yakındır. İterasyon zamanlarının artmasıyla ortalama kare azalır. Yineleme sayısı 2,000’e yaklaştığında, ortalama kare hatası izin verilen hatayı karşılar. Standart BP algoritması ile karşılaştırıldığında, geliştirilmiş BP algoritması ağın doğruluğunu artırır ve eğitim hızını artırır.

Geliştirilmiş BP algoritması kullanımındaki paremetreler;

Momentum katsayısı(g), YSA’nın daha hızlı toparlanmasına yardım eden bir faktördür. Öğrenme esnasında ağın salınımını önler. Momentum katsayısı 0 < g < 1 aralığında seçilir. YSA her adımda daha az hata değerine sahip bir noktaya gelmek isteyecektir. Birden çok iterasyon sonucunda sistem minimum hatalı olan noktaya erişecektir. Momentum öğrenme algoritmasını local minimumdan kaçacak şekilde önceki yönde tutmaya çalışır.

Öğrenme Oranı(η), Büyük öğrenme oranı: sistem veriyi çok hızlı öğrenir,toplam hata artar. Düşük öğrenme oranı: sistem çok yavaş öğrenir, eğitim zamanı artar ancak hata azalır.

Durdurma kriteri: Zaman eşik değerine ulaştığında bitebilir. Önceden tanımlı epoch değeri vardır. Algoritma bu epocha ulaştığında bitebilir. Önceden tanımlı hata değerine eriştiğinde bitebilir. İki epoch arasındaki hata değeri azaldığında eğitim bitebilir. Eğitim devam etse bile performansta çok fazla değişiklik olmayacağı hesap edilir.

Çürüme faktörü (s),  momentum ve öğrenme oranlarını formüldeki oranda her epoch sonunda düşürerek eğitime artırması hedeflenmiştir. Literatür içinde yukarıda ki gibi kullanıldığı gibi  şeklinde de kullanılmaktadır.

Ayrıca Literatürde Ağırlık ve bias değişimlerinin güncellenmiş ağırlık ve biaslara katkısı için aşağıda ki gibi kullanılması önerilmektedir.

Esnek Geriye Doğrulamada gelişmiş ağ ağırlıklarının seçimi:

Esnek Geriye Doğrulamada gelişmiş bias seçimi:

Sonuç olarak;

  • Standart BP algoritması, bir dizi setin girdi / çıktı problemini doğrusal olmayan bir optimizasyon problemine dönüştüren bir tür öğrenme kuralıdır.
  • Gradyan iniş öğrenme kuralına göre yinelemeli hesaplamayı kullanarak ağ ağırlıklarını ayarlar.
  • Pratik uygulamalarda, standart BP algoritmasının çeşitli problemleri vardır, örneğin, yakınsama oranının düşük olması, yerel asgari düzeye düşmekten sorumludur.
  • Ağırlık ve eşik değerleri esnek güncelleme değeri ile değiştiren Esnek Geri Yayılım Algoritması (RPROP) kullanılarak yerel agari düzeye düşmekten kurtulur.
  • Ağ eğitim sürecinde öğrenme oranının neden olduğu salınım ve kararsız ağırlıkları Değişken Öğrenme Hızı Algoritması(Variable Learning Rate Learning Algorithm) ile çözülebilir.
  • Gizli Katmanda az nöron kullanılması giriş verilerine göre daha az hassas çıkış elde edilmesine sebep olur. Aynı şekilde gerektiğinden daha çok sayıda nöron kullanılması durumunda da aynı ağda yeni tip veri gruplarının işlenmesinde zorluklar ortaya çıkar. Gizli katmanda 10 nöron kullanılmıştır. Daha az nöron hata oranını artırmış, daha fazla nöron öğrenme süresini uzatmıştır.

Uygulamadaki Sonuçlar tabloda gösterilmiştir.

Rasgele Ağırlık ve Bias Değerleriyle
Öğrenme Oranı

η (0< η <1)

s=0,01

Moment.

g(0<g<1)

s=0,01

Hata(<) Ağırlık Değ. Bias Değişimi Akt.

Fonk.

Başarı Oranı (%)
0,6 Değ. 0,4 Değ 0,01 0 0 Sigm. 75.9206
0,6 Değ. 0,4 Değ 0,01 +Değ +Deg Sigm. 76.2039
0,6 Değ. 0,4 Değ 0,01 -Değ -Deg Sigm. 72.8045
-0,6 Değ. -0,4 Değ 0,01 -Değ -Deg Sigm. 68.5552
-0,6 Sab. -0,4 Sab. 0,01 -Değ -Deg Sigm. 69.1218
0,6 Sab. 0,4 Sab. 0,01 -Değ -Deg Sigm. 74.5042
0,6 Sab. 0,4 Sab. 0,01 0 0 Sigm. 71.9546
Önceden ayarlanmış Ağırlık ve Bias ile
0,6 Sab. 0,4 Sab. 0,01 0 0 Sigm. 77.9036
0,6 Sab. 0,4 Sab. 0,01 +Değ +Deg Sigm. 75.3541
0,6 Sab. 0,4 Sab. 0,01 -Değ -Deg Sigm. 71.9546
-0,6 Sab. -0,4 Sab. 0,01 -Değ -Deg Sigm. 78.4702
-0,6 Sab. -0,4 Sab. 0,01 +Değ +Deg Sigm. 75.3541
0,6 Değ. 0,4 Değ. 0,01 +Değ +Deg Sigm. 71.9546
0,6 Değ. 0,4 Değ. 0,01 -Değ -Deg Sigm. 73.6543
0,6 Değ. 0,4 Değ. 0,01 0 0 Sigm. 77.9036
0,6 Değ. 0,4 Değ. 0,01 0 0 Sigm. 81.5864

Hesaplanan Çıkış katman çıkışları (Op1, Op2) değerleri tabloda 0,8’den büyükse 1 değilse 0 olarak kabul edilmiştir. Sadece tablonun son satırında 0,5’ den büyükse 1 değilse 0 kabul edilmiştir.

matlab kodu:

clc;

x=egitim’;%girisler

noronsayisi=10;

girissayisi=9;

cikissayisi=2;

w=rand(noronsayisi,girissayisi);%ara katman ağırlıkları

%w=wbass;

dw=rand(noronsayisi,girissayisi);%ara katman ağırlıkları değişimi

b=rand(noronsayisi,1);% arakatman biasları

%b=bbass;

db=zeros(noronsayisi,1);%ara katman bias değişiklikleri

o=zeros(noronsayisi,1); %ara katman çıkışları

rpp=zeros(noronsayisi,1);%ara katman hata faktörler

wp=rand(cikissayisi,noronsayisi);%çıkış katman ağırlıkları

%wp=wpbass;

dwp=rand(cikissayisi,noronsayisi);%çıkış katmanı ağırlıklarındaki değişim

bp=rand(cikissayisi,1);%çikış katmanı biasları

%bp=bpbass;

dbp=zeros(cikissayisi,1);%çıkış katmanı biaslarındaki değişim

rp=zeros(cikissayisi,1);%çıkış katmanı hata faktörleri

y=zeros(cikissayisi,1);%üretilen çıkışlar

t=etarget’;%hedeflenen çikışlar

alpha=0.4;%momentum

n=0.1;%öğrenme oranı

s=0.01;%çürüme oranı (s)

hata=1;

for k=1:length(x)

hata=1;

while(hata>0.01)

%ara katman çıkışlarının bulunması

%O’1=f(x1.w’11+x2.w’12+…+xn.w’1n+b’1

for i=1:noronsayisi

top=0;

for n=1:girissayisi

top=top+x(n,k)*w(i,n);

end

o(i)=sigmoid(top+b(i));

end

%çikış katmalarının bulunması

%y1=f(O’1.w11+O’2.w12+…..+O’n.w1n+b1)

%y2=f(O’1.w21+O’2.w22+…..+O’n.w2n+b2

for n=1:cikissayisi

top=0;

for i=1:noronsayisi

top=top+o(i)*wp(n,i);

end

y(n)=sigmoid(top+bp(n));

end

%%çıkış katmanı güncellemesi

%çıkış hata faktörlerinin hesaplanması

%rp1=(tp1-y1).y1.(1-y1)

for i=1:cikissayisi

rp(i)=(t(i,k)-y(i))*y(i)*(1-y(i));

end

%çıkış ağırlıklarının güncellenmesi

%dw11=n.rp1.o’1+alpha.dw11

for i=1:cikissayisi

for j=1:noronsayisi

dwp(i,j)=n*rp(i)*o(j)+alpha*dwp(i,j);

end

end

wp=wp+dwp;

%çıkış katmanı biaslarının güncellenmesi

%db1=n*rp1+alpha*db1

for j=1:cikissayisi

dbp(j)=n*rp(j)+alpha*dbp(j);

end

bp=bp+dbp;

%%ara katman güncellemesi

 

%ara katman hata faktörlerinin hesaplanması

%rpp1=o’1.(1-o’1).(rp1.w11+rp2.w21)

for i=1:noronsayisi

rpp(i)=o(i)*(1-o(i))*(rp(1)*w(1)+rp(2)*w(2));

end

%ara katman ağırlıklarının güncellenmesi

for i=1:noronsayisi

for j=1:girissayisi

dw(i,j)=n*rpp(i)*x(j,k)+alpha*dw(i,j);

end

end

w=w+dw;

%ara katman biaslarının güncellemesi

for i=1:noronsayisi

%db(i)=n*o(i)*(1-o(i))*wp(1,i)*rp(1);

db(i)=n*rpp(i)+alpha*db(i);

end

b=b+db;

hata=(1/2)*((t(1,k)-y(1))^2+((t(2,k)-y(2))^2));

disp(hata)

alpha=alpha/(1+s*k);

n=n/(1+s*k);

end

y

hata

end

%%%TEST Aşaması

dogru=0;

test1=test’;

ttarget1=ttarget’;

 

for k=1:length(test1)

%ara katman çıkışlarının bulunması

for i=1:noronsayisi

top=0;

for n=1:girissayisi

top=top+test1(n,k)*w(i,n);

end

o(i)=sigmoid(top+b(i));

end

%çıkış katmanı çıkışlarının bulunması(testtttt)

for n=1:cikissayisi

top=0;

for i=1:noronsayisi

top=top+o(i)*wp(n,i);

end

y(n)=sigmoid(top+bp(n));

end

for i=1:cikissayisi

if y(i)>0.8

y(i)=1;

else

y(i)=0;

end

end

if (ttarget1(1,k)==y(1))&&(ttarget1(2,k)==y(2))

dogru=dogru+1;

end

end

yeee =sprintf(‘Verilen test verilerine göre ağın başarı oranı %f dir’,100*dogru/length(test))

dogrusay=sprintf(‘Doğru tahmin sayısı:%d’,dogru)

 

PCI Guru

A common sense approach to achieving PCI compliance and retaining your sanity

Penetration Testing Lab

Articles from the Pentesting Field

Bana Silverlight Anlat

meslek lisesi ders notları