Hüseyin Çelik

Embed Size (px)

Citation preview

TC KARADENZ TEKNK NVERSTES MHENDSLK FAKLTES BTRME ALIMASI

CAPTCHA BOT

HSEYN ELK

Tez Danman: Prof. Dr. Vasif V. NABIYEV

BLGSAYAR MHENDSL BLM ANABLM DALI

HAZRAN 2009 Trabzon

NSZ Captcha oluturma ve Captchann karakter tanma ve grnt ileme teknikleri ile analizini yapp Captchay zen bot program konulu bu alma Karadeniz Teknik niversitesi Mhendislik Fakltesi Bilgisayar Mhendislii Blmnde bitirme tezi olarak hazrlanmtr. Bitirme tez danmanlm stlenerek, konu seimi, almalarn yrtlmesi ve desteklenmesi srasnda yardmn ve deerli vaktini esirgemeyen saygdeer hocam Prof. Dr. Vasif V. NABYEVe, bana verdikleri manevi destekten tr aileme ve hocalarma teekkr ederim. Hseyin ELK Trabzon 2009

indekilernsz.......................................................................................................................................................ii indekiler...............................................................................................................................................iii zet.........................................................................................................................................................v 1.Bitirmede Kullanlan Teknolojiler ....................................................................................................... 6 1.1.SQL SERVER MANAGMENT .................................................................................................... 6 1.2. Visual Studio'nun Program Gelitirme Ortam............................................................................. 7 1.3.WebBrowser ................................................................................................................................ 14 1.4. C# ile Fare Kontrol ................................................................................................................... 15 1.5.HTML Element ........................................................................................................................... 17 2.Gvenlik ............................................................................................................................................. 18 2.1.Web Uygulamalarna Ynelik Saldrlarn Boyutlar .................................................................. 19 2.2.SALDIRI CETLER ................................................................................................................ 20 2.2.1.Cross-Site Scripting .............................................................................................................. 20 2.2.2.SQL Injection ....................................................................................................................... 20 3.Captcha Nedir? ................................................................................................................................... 21 3.1.Captcha Giri ............................................................................................................................... 21 3.2.Captcha Tarihi ............................................................................................................................. 21 3.3.Captchann Kullanm Alan ....................................................................................................... 22 3.4.Captcha Mant .......................................................................................................................... 23 3.5.Captchann Oluturulmas .......................................................................................................... 24 3.6.Kendi Yaptm Captcha ............................................................................................................. 25 3.7.Captcha Kullanmann nemi ...................................................................................................... 25 3.8. Captcha Ne e Yarar ................................................................................................................. 27 3.9. Turing Testi ................................................................................................................................ 28 3.10. Captcha eitleri ...................................................................................................................... 30 3.10.1. Mat Captcha ...................................................................................................................... 30 3.10.2. Asirra ................................................................................................................................. 30 3.10.3.KittenAuth .......................................................................................................................... 31

3.11.Captcha Krlmas ...................................................................................................................... 32 3.12.Captcha Ve Yapay Sinir Alar ................................................................................................. 34 4.Karakter Tanma Ve Grnt leme ................................................................................................. 36

4.1.Grnt leme le lgili Baz Terim ve Tanmlar ....................................................................... 36 4.1.1.leklendirme ...................................................................................................................... 36 4.1.2.Saysal Resim ....................................................................................................................... 36 4.2.Renkli' den Gri' ye ....................................................................................................................... 37 4.3.Threshold ..................................................................................................................................... 37 4.4. Gri Seviye'den Binary'e .............................................................................................................. 38 4.5. Histogram karma .................................................................................................................... 38 4.6.Karakterlerin Ayrtrlmas......................................................................................................... 39 4.7.Karakterlerin Saysallatrlmas ................................................................................................. 39 4.8.Geniletmek, Andrmak, Amak ve Kapatmak ........................................................................ 40 4.8.1. Geniletmek ......................................................................................................................... 40 4.8.2. Andrmak .......................................................................................................................... 40 4.8.3.Amak .................................................................................................................................. 41 4.8.4.Kapatmak.............................................................................................................................. 41 4.9.Filtreler ........................................................................................................................................ 41 4.10. Karakterin Tannmas ............................................................................................................... 42 5. Veri Tabannn Oluturulmas ........................................................................................................... 42 5.1.Karakter Ve Binary Halinin Veri Tabanna Eklenmesi ............................................................... 42 5.2.VeriTabann Eitilmesi ............................................................................................................... 43 6.Sonular .............................................................................................................................................. 43

ZET Bu bitirme tezinde; Captcha, Captcha gvenlii, Captchay otomatik olarak zen bot program ve Karakter tanma teknikleri hakknda bilgi verilerek Captchann nem verilmedii takdirde nasl byk hasarlara sebep olduu anlatlmaktadr. Captcha sisteme girenin bot program m yoksa insan m olduunu karar veren bir kontrol sistemidir. Eer sisteme giren insan ise bu servise erimesine izin verilir eer bot program ise servise eriim izni vermemektedir. Eer Captcha kontrol kullanlmaz ise rnein e-okul, yksek seim kurumu, Trk telekom ve benzeri veri tabanlarnn tm bilgileri bir gn gibi ksa bir srede alnm olur otomatik olarak. Bunun iin nce Captcha kontroll basit bir web sistem yaptm sistem kullanc girip telefon numarasn yazarak telefonun tm bilgilerini rnein sahibinin adn, adresi, borcu gibi tm bilgilerini renir. Eer Captcha kontrol olmaz ise yada Captcha zayf bir Captcha ise ki benim yaptm Captcha zayf bir Captcha o zaman yaptm bot program random olarak 10 haneli bir telefon oluturup telefon alanna koyar ve Captchay da karakter tanma teknikleri ile zp otomatik olarak yerine koyar sonra eer telefon geerli bir telefon ise o telefona ait tm detaylar webbrowser da gzkr bot programm ayn zaman da bu detaylar alp veritabanna ekliyor. Burada nemli olan udur benim yaptm bot program benim zayf Captcha ieren web sistemimi geip veritabanm bir nevi almaktadr. Burada sz konusu benim veritabanm ise sorun yok ama sz konusu Yksek seim kurumu ise yada Devlet kurumlar ise yada Trk telekom gibi kurumsal kurumlar ise o zaman veritabann korunmas byk nem tamaktadr. Eer Captcha zayf ise rnein sadece karakterler bitiik ve anlalr ise filtre uygulanarak karakter kolayca zlebilir. Burada Captchay olutururken karakter tanma yazlmlarn ve yapay zek yazlmlarnn gcn dikkate almalyz.

1.Bitirmede Kullanlan Teknolojiler

1.1.SQL SERVER MANAGMENT

SQL (Structured Query Language) veri tabanlarndaki verileri ilemek iin kullanlan yapsal sorgulama dilidir. Bu dil yardmyla veritabanlarndaki tm ilemler yaplabilir. Backup almadan tutunda bir tabloya veri girmeye varncaya kadar her ey. SQL temel olarak u ifadelerle kullanlr. SELECT, FROM, WHERE, ORDER BY, GROUP BY, HAVING, UPDATE, DELETE, INSERT. SELECT: Tablodan semek istediimiz alanlar belirtmek iin kullanlr. Eer tablodan tm alanlar semek istiyorsak o zaman alan isimleri yerine * iareti konur. FROM: zerinde ilem yaplacak tablo/tablolar belirtmek iin kullanlr. WHERE: Tablodan eer tm kaytlar deilde istediimiz baz kaytlar elde etmek istiyorsak kullanrz MAX, MIN, AVG: Verilen deerin en byn, en kn ve ortalamasn bulur. Projemde SQL Server Managment 2005 kullandm. nce bir SqlConnection nesnesi oluturdum. Aamalar aada gibidir. 1- SqlConnection nesnesi oluturdum. 2-balanty actm 3-Command nesnesi oluturdum 4-Command nesnesi oluturduktan sonra istediimiz sql komutunu icra edebiliriz. 5-En sonunda balanty kapatyoruz.

1.2. Visual Studio'nun Program Gelitirme Ortam

Visual Studio altrldnda yeni proje hazrlayabilmeniz veya mevcut projeleri aabilmeniz iin Start Page ekrana getirilmektedir. Bu sayfadaki Recent Projects kutusunda Open ad altnda gruplanan seenekler ile mevcut projeleri aabilirsiniz. Create ad altnda gruplanan 2 seenekten yararlanp yeni proje hazrlayabilirsiniz. Mevcut projelerden birisini amak istiyorsanz Open ad altnda gruplanan seeneklerden Projectitklamanz gerekir. Project seeneini tklarsanz geerli kullancya ait Belgelerim klasrnn altnda yer alan Visual Studio Projects klasrndeki projeler listelenir. Visual Studio ile hazrlanan her proje iin ayr bir klasr hazrlanmakta ve projeye ait dosyalar bu klasre kaydedilmektedir.

ekil 1.1: Visual Studionun Giri Ortam Visual Studio ile C# projesi hazrlamak zere Start Pagedeki Create ad altnda gruplanan 2 seenekten Projecti tklarsanz ekrana New Project diyalog kutusu gelir. Project

types kutusunda listelenen seenekler Visual Studionun bilgisayara kurulan bileenlerine gre deimektedir. Visual Studio 2008de proje hazrlarken .NET Frameworkn 2.0 3.0 veya 3.5

srmlerinden birisini seme imkann bulunmaktadr. New Project diyalog kutusunda seilen .NET Framework srmne gre Templates liste kutusunda listelenen ablonlar deimektedir. New Project diyalog kutusunun alt ksmnda Name seeneinden yararlanarak projenin adn girebilir ve Location seenei ile projenin kaydedilecei klasr belirleyebilirsiniz. Visual Studio ile hazrlanan C# projelerinin geerli kullancya ait Belgelerim klasrnn altnda bulunan Visual Studio Projects klasrne kaydedilecei varsaylmaktadr.

ekil 1.2: Windows Form Application Oluturma Ekran

Yukarda anlatlan ekilde proje hazrladnzda Visual Studio ayrca bir Solution hazrlamaktadr. Solutionlar proje grubu gibi ilev grmektedir. Balangta projenin ad ayn zamanda Solution ad olarak kullanlmaktadr.

ekil 1.3: Proje Formu

Balangta Solution Explorer ve Properties pencereleri Visual Studio penceresinin sa tarafna yuvalanm durumdadr. Sol tarafta ise Toolbox gizlenmi durumdadr. Proje hazrlanrken belirtilen klasrn altnda proje ile ayn ada sahip bir klasr hazrlanyor. Projeye ait klasre kaydedilen Form1.cs uzantl dosya projedeki formu temsil etmektedir. Formlarn grsel yaps ile ilgili bilgiler Designer.cs dosyalarnda tutulurken resx uzantl dosyalarda ise formla ilgili kaynaklar(resource) tutulmaktadr. Visual Studio tarafndan hazrlanan C# projesi dosyalarna csproj uzants verilmektedir. Visual Studio ile proje hazrladnzda ayn zamanda bir Solution hazrlanr ve zerinde altnz projeye hangi formlarn ve dosyalarn dahil edilmi olduunu grmek istiyorsanz Visual Studionun Solution Explorer penceresine bakabilirsiniz. Solution Explorer penceresinde bir bakma projeye ait klasrn ierii grntlenmektedir. Solution Explorer penceresinin balk ubuunu ift tklayp bamsz pencere olmasn salayabilirsiniz. Projeye 2. bir form dahil etmek demek gerekte .NET Framework ile gelen Form snfnn mirass 2. bir snf

hazrlamak demektir. Tpk Form1 snfnda olduu gibi Form2 snfnn bir yars Form2.cs dosyasnda, dier yars ise Form2.Designer.cs dosyasnda yer almaktadr. Solution ve proje hakknda bilgi ieren bu pencereyi View mensnden komut vererek veya Standard ara ubuundaki ilgili dmeyi tklayarak ekrana getirebilirsiniz. Windows Forms Application ablonu ile hazrlanan projenin kaydedildii klasre bakldnda Bin ve Obj adnda 2 klasrn hazrland grlr. Visual Studio balangta bu 2 klasr Solution Explorer penceresinde listelemiyor. zerinde altnz proje ile ilgili btn dosya ve klasrlerin listelenmesini istiyorsanz Solution Explorer penceresindeki Show All Files dmesini tklamanz gerekir. Bu dmenin ilevini aada grebilirsiniz. C# projesine dahil edilmi referanslar grmek istiyorsanz Solution Explorer penceresinde References seeneini tklamalsnz. Visual Studio 2008 ile hazrlanan C# projelerine 8 referans otomatik olarak dahil edilmektedir. Ek bir ilem yapmaya gerek kalmadan bu referanslarda bulunan namespacelerdeki snflar kullanabilirsiniz. DLL dosyalar veya buradaki adyla referanslar doalar gerei gerek duyulduunda bellee yklenirler.

ekil1.4: Otomatk Olarak eklenen Referanslar

imdiye kadar verilen ekran grntlerinden tespit olabileceiniz gibi yeni bir proje hazrlandnzda projeye otomatik olarak dahil edilen formun grsel yaps Visual Studio penceresinin Form Designer ad verilen orta ksmda grntlenmektedir.

ekil1.5: Grsel Form

Ak olan her form veya kod dosyas iin Windows Form Designer penceresinin st ksmnda bir sekme hazrlanmaktadr. Bu srada Solution Explorer penceresinde Form2.csnin zerinde ift tklama yaplrsa bu kod dosyas dhilinde hazrlanan Classn yani Form2nin grsel yaps grntlenir. Ak olan formlardan birisine ait kodlar grmek istiyorsanz o formu seip View mensnden Code komutunu vermelisiniz. Form2 aktif form iken View mensnden Code komutu verilirse bu formu oluturan kodlar grntlenir.

ekil 1.6: Visual Studo 2008 Kod Ekran Projedeki 2. formu temsil eden Form2 snfna ait kodlarn bir ksm bu dosyada iken dier yars Form2.Designer.cs dosyasnda bulunmaktadr. Visual Studio bilgisayara kurulup balatldnda ekrana getirilen bir dier pencere Toolbox penceresidir. Toolboxta formlarn zerine yerletirebileceiniz kontroller yani .NET Framework ile gelen hazr snflar listelenmektedir. Visual Studio penceresinin sol tarafnda Toolboxtan baka ayrca Server Explorer penceresini temsil eden bir dme bulunmaktadr. SQL Server veya Access veritabanlarna balanrken kullanlan SqlConnection ve OleDbConnection kontrolleri balangta Toolboxta yer almyor. Bu kontrollerden gerek duyulanlarn Toolboxa ait ksayol mensnden komut verip ekrana gelen Choose Toolbox Items diyalog kutusunda ayarlama yapmak mmkn. Visual Studio ile gelitirilen uygulamalara Solution ad verilmekte ve Solutionlarda projeler bulunmaktadr. zerinde altnz Solution hakknda bilgi edinmek istiyorsanz Solution Explorer penceresine bakabilirsiniz. Madem C# uygulamalarn gelitirirken Visual

Studio veya Express Edition kullanyoruz Visual Studionun hazrlad projeler hakknda bilgi edinmek gerekir. Visual Studio ile hazrlanan C# projelerinde formlardan ve formlar temsil eden kod dosyalarndan baka Program.cs adnda bir kod dosyas bulunmaktadr. Visual Studio veya Express Edition ile hazrlanan C# projeleri almaya bu dosyadan balamaktadr. nk C# projelerinin balang noktas olan Main() metodu bu kod dosyasnda bulunmaktadr.

ekil1.8: Program.cs Kodu

C# projeleri Main() metoduna sahip olmak zorundadr. nk C# projeleri tpk C ve C++ projelerinde olduu gibi Main() metodundan itibaren almaya balarlar. Ayrca Main() metodu public ve static olmaldr. Bu rnekte Main() metodu geriye bir deer dndurmedii voiddir. C# projelerinin ikinci nemli bileenleri formlar ve formlarla ilgili kod dosyalardr. Visual Studio projelere dahil edilen her form iin 3 ayr dosya hazrlamaktadr. Asl kod dosyalar yani programcnn yazd kodlar form ile ayn ada sahip CS uzantl dosyada saklanmaktadr. Formun grsel yaps ile ilgili bilgiler ise Designer.cs dosyasnda

tutulmaktadr.

Designer.cs

dosyasnn

ierii

genellikle

Visual

Studio

tarafndan

oluturulduu iin programclar pek ilgilenmezler. Yukarda belirtildii gibi Visual Studio ile yeni bir proje hazrladnzda ayrca bir Solution hazrlanmaktadr. Bu konuda adm adm bilgi vermek iin Visual Studionun File mensnden komut verip New Project diyalog kutusunu ekrana getirilir.

ekil 1.7: Yeni Proje Oluturma Ekran

1.3.WebBrowser Bitirme projem Windows uygulamasnda web sayfalarn ap, sayfa ierisindeki linkleri otomatik olarak tklama ile ilgilidir. Webbrowser bir web uygulamas ierisinde otomatik olarak gezerek gerekli testleri yapacak bir uygulama gelitirmek iin kullanlr. Otomatik tklama ilemini rnein Turk Telekom iin telefon numarasn otomatik olarak girmek ve CAPTCHAy otomatik olarak yerine koymak iin kullandm. Bir web sitesi iinde gezinerek sayfa ierisindeki HTML kontrolleri bulmak ve bu kontroller zerinde ilemler yapmak aslnda ok kolay bir itir. Bunu bu kadar kolay hale getiren ise .NET ile gelen WebBrowser kontroldr.

Bitirme projemde CAPTCHAs analiz edilecek web sayfasn ilemleri yapan uygulama yaptm.

aan ve istenilen

ekil1.9: Projem de KullandmWebBrowser Turk Telekom veya herhangi bir web sayfann adresine erimek iin Webbrowserin Navigate zeliinden yararlanlr.

1.4. C# ile Fare Kontrol CLR tarafndan ynetilmeyen kodlara eriebilmek iin C#'ta

System.Runtime.InteropServices isim alannda bulunan ve DllImprtAttribute snfn temsil eden DllImport nitelii kullanlmaktadr. DllImport nitelii ile harici bir kaynakta bulunan metoda referans vermek iin external anahtar szc kullanlr. Bir snf bildiriminin en banda external anahtar szc ve DllImport nitelii kullanlarak CLR(Common Language Runtime) tarafndan ynetilmeyen bir metot bildirimi yaplr. Tabi metodun gvdesi harici bir kaynakta zaten var olduu iin bizim metodun gvdesini yazmamzn bir anlam yoktur. Ardndan bu metot snfn istenildii yerinde kullanlabilir. Fare imlecinin yerini deitirmek olduka basit, direk olarak Cursor objesini kullanarak, fare imlecini ekranda istediiniz bir noktaya gtrebilirsiniz. Mesela aadaki kod ile, fare imlecini 10 pixel yukar kartabilirsiniz. Cursor.Position = new Point(Cursor.Position.X - 10, Cursor.Position.Y).

Fare tularn simule etmek iin ise user32.dlldeki baz fonksiyonlar kullanmanz gerekiyor.

[DllImport("user32.dll", CharSet = CharSet.Auto,EntryPoint = "mouse_event")] private static extern void Tikla(int flag, int a, int b, int c, int d); Tkla fonksiyonunun flag parametresini 0x06 ya setlediimiz zaman mousen bulunduu konuma sol tklar.rnein bir web sitesinde html ilemlerini yaptktan sonra bir butona tklamak istediimiz zaman bu fonksiyonu koarz.

DllImport nitelii ile ilgili dier zelliklere ve nemli noktalara bakalm. 1 - DllImport nitelii ile iaretlenmi metotlar mutlaka extern anahtar szc ile bildirilmelidir. 2 - DllImport niteliinin EntryPoint'in hariinde 4 tane isimli parametresi(named parameter) daha vardr. Bunlar: CallingConvention, CharSet, ExactSpelling, PreserveSig ve SetLastError parametreleridir. Bu parametrelerden nemlidir. 3 - CallingConvention : Bu paramtre CallingConvention numaralandrmas trndendir. Bu parametre ile harici metodun ne ekilde arlaca ile ilgili bilgi verilir. CallingConvention numaralandrmas 5 tane sembol ierir. Varsaylan olarak bu sembol Winapi olacak ekilde ayarlanmtr. Yani CallingConvention parametresini DllImport ile kullanmyorsak varsaylan olarak bu Winapi'dir. Dier semboller ise Cdecl, FastCall, ThisCall, StdCall eklindedir. En ok Winapi sembolu kullanld iin dier sembollerin ne anlama geldii anlatlmayacaktr. Dier sembollerin ne anlama geldiklerini MSDN ktphanesinden detayl bir ekilde renebilirsiniz. 4 - CharSet : Harici fonksiyonun armnda kullanlacak karekter setini belirler. Bu parametre CharSet numaralandrmas ile belirtilir. Varsaylan olarak CharSet.Auto eklindedir. CharSet numaralandrmasnn dier sembolleri Ansi, Unicode ve None eklindedir.

5 - ExactSpelling : EntryPoint ile belirtilen ismin ilgili fonksiyon ismine yazm biimi bakmndan tam uyumlu olup olmayacan belirtir. Bu zellik bool trndendir ve varsaylan olarak false deerdir.

1.5.HTML Element Bu class ile sistemlerdeki text box ve onlarn iceriklerine eriiyoruz.rnein aaidaki gibi turk telekomun borc sorgulama ksmna girip Hizmet no TextBoxn deerini herhangi bir telefona setlemek iin nce bu TextBox deerine aaidaki gibi eriiyoruz HtmlElement h2 = webBrowser1.Document.GetElementById("prmHizmetNo"); Bu kod id si prmHizmeetNo olan nesneyi(textbox) seciyoruz. Sonra eritiimiz bu deere aaidaki gibi herhangi bir deeri setleyebiliriz(ikinci parametre) h2.SetAttribute("value", Telefon[0]) sonra Cursorun posizyonunu sol altta bulunan Sorgula butonun uzerine getirip otomatik olarak tklatyoruz bylece sayfada girdiimiz telefonun bilgileri ekrana gelir(Telefon sahibi,adresi,borcu vs..)

ekil1.10: Projemde Kullandm WebBrowser Bu bilgileri veritabanna yukarda anlatlan class ve nesneleri kullanarak almak son derece basittir bylece Turk telekomun veritaban calinmi olur turk telekomun byle bir sakncann nune gecmek iin CAPTCHAsn salam yapmann yannda IP ve cerez kontrolu

yapmas lazm aksi halde salam bir OCR(Captchay amak iin)yazlm ile bir gnde Turk Telekom veritaban calnabilir ayns dier salk ve devlet sistemleri iin gecerlidir.

2.Gvenlik En ilkel calarda insanlarn gvenlik sorunlar sadece yabani hayat idi zamanla insanlar aras gruplar ckt ve gruplar aras sorunlar savaa dnt insanlar bundan korunmak iin yaadklar meknlarn etrafn itlerler rdler. Zamanla savalarda atlar kullanld ve bu atlar itleri ok rahat geiyorlard bu seferde kaleler yapld nlem olarak ta ki ateli silahlar icat edilene kadar. Ateli silahlarn icadndan sonra kalelerin bir nemi kalmad.Buradan anlalyor ki her zaman gvenlik zafiyeti olumamas iin nlem almak lazm yani bir tarafta ykmak iin uraan kt niyetliler br tarafta kt niyetli kiilere kar alnmas gereken gvenlik bu durum web sistemleri iin de geerlidir. Gnmzde web hayatn vazgeilmez bir paras olmutur, kullanm amalar ve alanlar hzla artmaktadr. Web sitelerinin hzla artmas ayn zamanda web sitesi saldrrlarna da ortam hazrlanmtr. Elbette bu saldrlarn artmasnn ve ska baarl olarak sonulanmasnn altnda web sitelerinin artmasndan ziyade web uygulamalarnn ve sistemlerinin gvenliine yeterince nem verilmemesi yatmaktadr. Web sistemleri hzl bir ekilde hazrlanp sunulmaktadr. zelikle forum, hazr web portal yazlmlar; Veritaban destei salayan sistemler (php,asp,jsp,cgi,bash vb) web sitelerinin ve web sistemlerinin en zayf halkalarn oluturmaktadr.Bu siteler hazrlanrken hi gvenlik kontrolnn yaplmadn ,kodlarda kullancdan girdi alnan ksmlarda ,alnan verinin hi kontrol edilmediini gzlenmektedir.zetle gvenlik, planma, gelitirme ve hatta test aamasnda gz ard edilmekte,bu da bir ok kullancnn dikkatsiz gelitirilmi uygulamalarda zarar grmesine neden olmaktadr. Bu olumsuz gidiat nedeniyle web uygulamalarnn gvenlii son zamanlarda nem kazanan bir konu haline gelmitir fakat ne yazk ki web gvenlii konusunda eitici uygulamalarnn says olduka azdr. Web gvenlii konusunda internet ortamnda bilgi edinilebilecek kaynaklardan biri MSDNde yer alan dkmanlardr. Fakat kullancya test etme, sonular gzlemleme gibi frsatlar verilmemekte ve gvenlik bal altnda tm konular toplamamaktadr. Bununla birlikte verilen bilgiler Microsoft rnleri odakldr.

Web uygulamalarnn yaygnlamas, bu uygulamalar gelitirmek iin yeni teknolojilerin kmas ve uygulamalarnn son kullancya salad hizmetlerin daha geni bir perspektife yaylmas, web uygulamalarnn gvenli klnmas noktasn daha da belirgin hale getirdi.

E-Devlet uygulamalar, internet bankacl ilemleri, online alveri ve benzeri birok web uygulamasnn ise hayatmzda nemli rol oynamaya balamas, hatta salk ve finans sektrleri gibi dorudan kiileri etkileyen sektrlerin web uygulamalar araclyla hizmet vermesi, hem kullanc bazl kiisel gvenliin nemini artrd hem de bu hizmetin kulland web uygulamalarnn gvenli olmasn zorunlu hale getirdi.

2.1.Web Uygulamalarna Ynelik Saldrlarn Boyutlar

Yukarda bahsettiimiz sektrlerin hepsinde ya son kullancya ynelik ya da hizmet ii yayn yapan web uygulamalar bulunmaktadr. Bu web uygulamalarnn ilevi; bulunduu sektr ve hizmet ettii amaca bal olarak deimektedir. Bir e-ticaret uygulamasnda rn pazarlamas ve sat yaplrken, bir salk sektrne ait web uygulamasnda ise hayati nem tayan bilgiler bulunabilmektedir. Web uygulamasnn konseptine gre de saldrlarn boyutlar ve aaca zararlar ekillenmektedir. Bu zararlar u ekilde kategorize edebiliriz;

Maddi zararlar, Manevi zararlar (saygnlk kayb, olumsuz grlerin olumas, gven kayb ve hatta mteri kayb) .Sz konusu kurumlar byk kurumlar veya devlet kurumlar ise manevi zarar daha byk nem arz etmektedir. Gecen aylarda MEBin veri tabann alan hackerlar retmenlerin tm zel bilgilerini forumlara tayarak MEBin prestijine darbe vurdular.

2.2.SALDIRI CETLER

Bu saldrlardan asl amacmz Captchann OCR teknikleri ile gvenirliliinin analizi ise de dier saldr trlerini bir gzden geirelim. 2.2.1.Cross-Site Scripting

Saldrgann HTML kodlarnn arasna istemci tabanl kod gmmesiyle yaplan saldr trdr. En ok kullanld iki ekli; Sayfa Ynlendirme Hedef kullanclarn erez bilgilerinin alnmas nlemler Encoding QueryString ve Form`lardan alnan deerlerin filtrelenmesi

2.2.2.SQL Injection

SQL Injection, web uygulamalarnda kullancdan alnan veriler ile oluturulan dinamik SQL sorgularnn maniple edilmesi eklinde yaplan saldrlardr. Hedef veritaban ynetim sisteminin ve kulland sorgulama dilinin standartlarna gre SQL Injection ataklar ile yapabilecekleriniz deimektedir. Genel manada veritabanndaki verilere ulamak amacyla kullanlr Kullancdan alnan verilerin filtrelenmemesi ve ham olarak SQL sorgusuna dinamik olarak eklenmesi, SQL Injection zafiyetini dourmaktadr.

nlemler Tm meta-karakterlerden kanlmaldr. Parameterised Query kullanmna dikkat edilmelidir.

3.Captcha Nedir?

Captcha Completely Automated Public Turing test to tell Computers and Humans Apart kelimelerinin ksaltmasdr. Web tabanl uygulamalarnda uygulamay altrann bir insan m yoksa bir bot mu olduunu tespit etmek iin kullanlan bir gvenlik uygulamasdr. Captcha insan dorulama iin en ok kullanlan yntem. Captcha harflerden oluan bir kelimeyi kutuya girmemizi istiyor. Kodu doru olarak okumay baarr ve gnderirseniz kar taraftaki yazlm istei yapann bir program deil de gerek bir bir insan olduuna karar veriyor. Aksi takdirde ilgili servisi kullanmanza izin vermiyor.

3.1.Captcha Giri Teknoloji hzla ilerliyor ilerleme kaydederken de beraberinde yeni ihtiyalarla ve yeni gelimelerle karmza kyor. Web 2.0 dnyasnda bu ihtiyalar gn getike artmakta ve zelliklede web tabanl sistemlerde ihtiyalarmzn yannda gvenlik zaafiyetleride ortaya kmaktadr.

3.2.Captcha Tarihi Carnegie Mellon School of Computer Science tarafndan gelitirilen bir proje olan CAPTCHAnn amac bilgisayar ile insanlarn davranlarnn ayrt etmek, istemcinin gerekten bir insan olduunu kantlamaktr. Bu ayrm yapmann daha fazla gerekli olduu web uygulamalarnda ok sk kullanlmaya balanmtr.

3.3.Captchann Kullanm Alan Diyelim ki mahallenizde gsterime giren bir konser iin internetten bilet alyorsunuz. Biletleri almadan nce bir testi gemelisiniz. Bu zor bir test deildir. Aslnda olayn nemi de buradadr. Sizin iin bu test gayet basit ve anlalrdr. Ama bir bilgisayar iin bu testin zm imknszdr. Bu testin ad Captcha'dr. Captcha'nn en yaygn kullanm formu yamultulmu harflerden oluan resimdir. stenilen yere o harflerle ifade edilen kelimenin dorusunu yazmak sizin iinizdir. Eer yazdnz kelimedeki harfler gereiyle rtrse testi geersiniz.

ekil 3.1: Google'n Gmail hizmetinde karmza kan Captcha rnei

Neden birisi insanla bilgisayar ayrt etmek iin bir test yapma ihtiyacn hissetsin ki? nk kt niyetli baz kullanclar sistemi aldatmaya urarlar. Onlar web sitesini altran bilgisayarn andan faydalanp sistemi aldatrlar. Bu tip insanlar tm web leminde aznlk saysnda da olsalar, yaptklar iler sayesinde milyonlarca web sitesi kullancsn etkileyebilirler. rnein, bedava bir e-mail hizmeti sitesi, otomatik bir program sayesinde defalarca hesap istemi bombardmanna maruz kalabilir. Yada daha da kts, bu otomatik program milyonlarca kiiye bir anda spam mailler gnderebilir. te Captcha testi hangi

kullancnn gerek bir insan hangisinin otomatik bilgisayar program olduunun farkna vardrr. Captcha testi ile ilgili bilinmesi gereken bir ilgin ey ise, bu testleri hazrlayan insanlar testleri baarsz olduu zaman hep zgn olmazlar. CAPTCHA testlerinin baarsz olmas demek baka birisinin bilgisayarna o testi nasl geebileceini retmi olmasdr. Bir baka deyile, her Captcha testinin zlmesi yapay zek adna atlm nemli bir admdr.

3.4.Captcha Mant

Sistemin almas ksaca yledir. Sunucu rastgele bir resim oluturur, istemci tarafndaki kiiden bu resimdeki yazy okuyup, ilgili alana girmesi istenir. Buradaki basit mantk o resimde sadece insan tarafndan okunabilecek, bir program tarafndan okunmas zor olan bir kelime oluturmaktr. OCR (optik karakter okuyucu) programlar, dzgn bir formda yazlm yazy bir resmin iinden okuyabilirler. Bu sebeple sunucu tarafndan retilen resmin iindeki yaznn bir insan tarafndan okunabilecek fakat OCR programlar tarafndan okunamayacak kadar zor, kark, anlalmaz, grltl ve bozulmu olmas gerekir. Gerekten de retilen karakterlerin bazen okunamamas veya ok gelimi OCR programlar tarafndan bazen resimlerin okunabiliyor olmas gibi zayflklarna ramen, DYPM (Did You Pass Math, 3 art sekiz ka eder? gibi sorular ynelterek otomatik yazlmlar engelleyen.) veya resimler arasndan duygusal baz kriterlerle seim yaplmasn isteyen v.b. gibi alternatif yntemlerden u an iin daha kullanl olmaya devam etmektedir. stenmeyen e-postalar veya bilinen yaygn adyla spam, amzn en byk internet sorunlarndan biri. Her gn milyarlarca spam gnderiliyor ve e-posta trafiinin ok byk bir ksmn oluturuyorlar

3.5.Captchann Oluturulmas Bir Captcha oluturmak iin ilk adm insanlarn ve makinelerin bilgiyi nasl iledikleri arasndaki farklar gzlemektir. Makineler verilen bir dizi emirleri yerine getirirler. Eer verilen emirler dnda herhangi bir ey gerekleirse makine burada ilevsiz hale der. Bir Captcha tasarmcs bir test hazrlamadan nce bunu hesaba katmaldr. rnein bir web sitesinde kullancnn gremedii grselin metadata'dan beslendii bir Captcha hazrlarsanz, bu program metadata ksmn gzleyen bir web uygulamas tarafndan ok ksa bir zamanda krlabilir. Benzer olarak, harfleri yada saylar yamultmayan bir CAPTCHA uygulamas oluturmak da ok akl ddr. Dzgn dizilimli bir karakter serisi ok gvenliksizdir. ou bilgisayar program metin ieren bir resmi tarayp bunu harflere ve saylara indirgeyebilir. Captcha olutururken ncelikle ne tip resimler ve zm metodlarn kullanlacan deerlendirmek gerekir. Bu yaklamda olas tm zmleri ieren bir database'e ihtiya duyulur. Microsoft'tan Kumar Chellapilla ve Patrice Simard'n yapt aratrmaya gre insanlarn Captcha'y zmedeki baar oranlar %80 iken bu oran makinalarda yalnzca % 0.01. Eer bir spam program tm olas zmlerin bulunduu dosyay bir ekilde elde ederse, o bu uygulamay o listedeki kelimeleri kullanarak brute force tekniiyle bombardmana tutabilir. Database'in iyi kalitede bir Captcha deposu saylabilmesi iin 10,000'den fazla rnei iermesi gerekir. Bir ksm Captcha uygulamalar ise rastgele srada harf ve saylar reterek bir kelime oluturur. Ayn serinin iki defa bile tutturulmas pek olas deildir. Bu metot sayesinde brute saldrdan korunulmu olunur. Bir botun doru srada harfleri girme olasl sfra yakndr. Bu seri ne kadar uzun olursa bot'un tutturma ans o kadar decektir. Captcha bir diziyi bozabilmek iin farkl metotlar izler. Bazlar kelimeyi sanki erimi bir camn arkasndaym gibi garip ekilde yamultur. Bazlar ise harflerin arkasna belli bir deseni olan (rnein kareli) arka plan ekler. Az ise arka plan olarak deiik renkte noktalardan oluan bir desen kullanr. Sonuta hepsinin amac ayndr: Bir bilgisayar programnn Captcha ifresini krmasn imknszlatrmak.

Tasarmclar ayrca insanlara kolay, makinelere ise zor gelen birtakm bulmacalar kullanr. Baz Captcha'lar doku alglama ve ekstrapolasyon tekniini kullanr. rnein, bir bulmacada ekillerden oluan bir seri verilir ve kullancdan srada hangi eklin geleceini tahmin etmeleri istenir. Bu teknik insanlarn yzde sekseni tarafndan baaryla tamamlanr. 3.6.Kendi Yaptm Captcha Captcha oluturma admlar: Bitmap nesnesi oluturulur Bu bitmap nesnesinin Font, Stil vs gibi zelikleri setlenir. Bir random nesnesi oluturulup bu random nesnesinin aralk deerlerini oluturmak iin ASCII tablosundan yararlanlr. Random deikeni oluturulur. Bu random stringi sessiona eklenir karlatrma iin, bylece kullancnn doru giri yapp yapmadn renmi oluruz. En sonunda istee gre grlt eklenir ve istenilirse karakter belli bir ac ile dndrlr OCR yazlmlarna nlem olarak. 3.7.Captcha Kullanmann nemi Captcha'nn en yaygn kullanm alanlarndan biri online anketlerdir. Slashdot anket firmas, online bir ankete filtre koyulmamas durumunda ne gibi skntlarla karlalacan gstermek iin bir rnek hazrlarlar. 1999'da, Slashdot, ziyaretilerine Bilgisayar Bilimleri dalnda hangi niversitenin en iyi olduunu semelerini isteyen bir anket hazrlad. Carnegie Mellon ve MIT'den iki renci kendi niversiteleri lehinde otomatik oy kullanan bot programlar gelitirdiler. Anket sonucunda bu iki niversitenin binlerce oyu karken dier niversitelerin ald oy saylar bir ka yz geememiti. Bir ankette oy kullanabilen programlar mevcutsa, artk online anketlere nasl gvenebiliriz ki? te bir Captcha formu programlarn bu anket sistemindeki avantajn ortadan kaldrr. nternetteki kayt formlar da genellikle Captcga ierir. rnein bedava bir e-mail hizmeti sunan Hotmail, Yahoo, Gmail, insanlara yeni e-mail hesab ama olanan salarlar. Genellikle kullanclar formda eitli kiisel bilgilerini verirler, ama bu servisler bu bilgileri

kontrol etmezler. Baz botlarn yzlerce hesap amasndan Captcha formlar kullanarak saknrlar.

ekil 3.2: Yahoo kayt olanlara kelime yerine alfanumerik Captcha'lar sorar.

TicketMaster (bizdeki Biletix) gibi bilet araclar da Captcha uygulamalar kullanr. uygulama sayesinde karaborsaclarn biletleti deerli olan nemli olaylarn ncesinde abart miktarlarda bilet almalar engellenir. Bu filtre uygulanmasayd, karaborsaclarn birka saniye iinde yzlerce hatta binlerce bileti sipari etmeleri kanlmaz olacakt. Biletlerin sata sunulmasndan birka dakika iinde tkenmesinden dolay meru mteriler kurban durumuna decek, karaborsaclar normal fiyattan aldklar bu biletleri mterilere fahi fiyattan satacaklard. Captcha program bu kt niyetli ii tamamen yok edemese de etkisini ok byk l de azaltr. Baz web sitelerinde kullanclarnn mesaj yazabilecekleri yada dorudan yneticiyle iletiim kurabilecekleri mesaj kutular ierir. Spam tehlikesine kar grltden korunmak iin bu sitelerin ou Captcha kullanr. Bir Captcha kt niyetli bir kullancnn kfrl bir mesaj yazmasn yada ynetime yazl taciz etmesinin nne geemez, ancak botlarn otomatik mesajlarna mani olabilir.

Captcha'nn en yaygn uygulamas kullancdan bir seri halinde verilen harfleri yada saylar yamultulmu ekilde verip kelimenin dorusunu yazmasn ister. Baz Captcha oluturucular "Kitaplar diitize etmek" gibi bir yola ynelmilerdir. Yani bu uygulamalarda kullanclara bir ksm scan edilmi kitap sayfann paras soru niyetine sorulur. nk bilgisayarlar sadece dijital metinleri alglayabildikleri iin bu metinlerin stesinden gelemezler. Bu dzen nasl alr? ncelikle, bu Captcha programnn yneticisi bir kitab dijital olarak scan eder. Sonra, Captcha program bu sayfadan rastgele iki kelime seer. Uygulama bunlardan birini tanmlamtr. Eer kullanc ilk kelimeyi doru olarak girerse, uygulama onun ikinciyi de doru gireceini varsayar. kinci kelime uygulamann dier kullanclar soraca kelimeleri ieren bir havuza gnderilir. Her kullanc bir kelimeyi girdiinde uygulama o kelimeyi orijinaliyle kyaslar. Bylece, uygulama metindeki her kelimenin yazln byk bir doruluk oranyla karm olur. Artk bu kelime onaylanm kelimelerin bulunduu havuza gidebilir. Bu ilem ok zaman alc gibi gzkebilir. Ama u unutulmamaldr ki, Captcha burada iki ayr grevi yerine getirmi olur. Dijitize edilmi bir kitabn kelimelerinin ne olduunu renmekle kalmayp ayn zamanda formu dolduranlarn insan olup olmadn da anlam olur. 3.8. Captcha Ne e Yarar Captcha gvenlik nlemidir. Web 2.0 platformlar gelitike ve komplike bir hal aldka bu platformlar (r. Facebook gibi ) ktye kullananlarda ortaya kmaya balad. Yani gvenlik zaafiyeti. Peki nasl ktye kullanlr? Mesela forum sitelerine bir bot program yazp bu bot foruma giri yapp ve yeni ye kayd yapp daha sonra ye girii yapp dier yelere zel mesajdan reklam gnderebilir herey otomatik . Bu sayede ktu niyetli kii internet sayfasina kurbann forumundaki yeleri tek tek arm oluyor ve hereyi bilgisayar yapyor. Her gn yeni bir isimle foruma ye oluyor ve srekli spam mesaj atabiliyor. Byle scriptler piyasada mevcut ve halada kullanlmakta. zelliklede Facebook, Forumlar ve Blog gibi sistemlere reklam mesajlar atmak iin

tretilmi farkl ilevleri olanlar da var. Bu sayede PC birka gnde yzbinlece insana bu program sayesinde ulaabiliyor. Hatta baz sitelerden kullanclarn e-mail adreslerini alp onlara spam yapanlar dhil var. Bunu nne nasl geilebilir dncesiyle ortaya km bir gvenlik sistemidir Captcha. Kullanc foruma, bloga yada benzeri bir Web 2.0 sistemine giri yapmak istedii zaman Kullanc ad ifresinin yannda birde Captcha (resim dorulama) dediimiz sistemle karsna kar. Tckimlik de grdmz bu resim dorulama artk hemen hemen her internet sayfasnda var. Size bir resim gsterir ve bu resimdeki harf ve rakamlar kutuya yazmanz ister. Bu sayede kullanc eer bir bilgisayar sistemi ise. Bu resimi gremeyecek doal olarak da ye kayt ilemini yada giri ilemini gerekletiremeyecektir. Bu sayede platform kt niyetli kiilerden korunmu olacaktr. Tabi her zaman iyiye ynelik olarak teknoloji ilerlemiyor kt niyetli kiilerde teknolojiyi kullanyorlar.. zelliklede bu resimi okuyabilen ve bu resimde kan harf ve rakamlar kutulara yazdrabilen bilgisayar programlarda kt. Buna karn koruma dzeyini Captcha artrd ve resimlerdeki harfleri yamultmaya hatta silik, birbirine girmi bir hale getirip bilgisayar programnn okuyamamasn salayabilir hale getirdiler. Ayn dzeyde kullancda okuyamaz hale gelebiliyor. Bununda nne geebilmek iin Captcha sistemi biraz daha gelitirdi ve ses ile okuyabilme zelliini eklediler. Resimi eer tam okuyamyorsanz ses butonuna basp size bilgisayar tarafndan harfler ve rakamlar sesli olarak okunabilir hale getiriliyor Yani sonu olarak Captcha; Sisteme giren yada ye olann bilgisayar m ? Yoksa insan m ? olduunu ayrt edebilmek iin gelitirilmi bir gvenlik nlemi olarak tanmlayabiliriz. Teknoloji ilerledike bu tip ihtiyalar artmaya balayacak zelliklede komplike sistemleri iyice karmaklatka gvenlik o derecede zaafiyet olarak ba gsterecektir. Bu tip gvenlik sistemleri artk kanlmaz olarak sistem yneticileri tarafndan olmazsa olmazlar haline gelmeye balayacaktr. 3.9. Turing Testi

Captcha teknolojisi Turing Testi deneyinin zerine ina edilmitir. lk olarak 1950 ylnda Mind adl felsefe dergisinde, nl ngiliz matematiki ve bilgisayar bilimcisi Alan

Turing'in Computing Machinery and Intelligence balkl nl makalesinde bahsedilmitir. Turing testi'nin amac bir makinenin dndn sylemenin mantksal olarak mmkn olup olmaddr. Turing testine gre makine, gnll bir insanla birlikte, sorgulaycnn gr alannn dnda bir yere saklanr. Sorgulayc yalnz soru sormak suretiyle, hangisinin insan hangisinin bilgisayar olduunu saptamaya alr. Sorgulaycnn sorular ve daha nemlisi ald yantlar,tamamen ses gizlenerek ,yani ya bir klavye sisteminde yazlarak veya bir ekranda gsterilerek verilir.Sorgulaycya,bu soru-cevap oturumunda elde edilen bilgiler dnda ,her iki taraf hakknda hi bir bilgi verilmez. Dizi halinde tekrarlanan testler sonucunda sorgulayc, tutarl bir ekilde, insan saptayamad takdirde makine Turing Testi'ni gemi saylr.

ekil 3.3: Turing Testinin Sembolize Eden ema

Tabiki Captcha testindeki temel ama insanlarn kolayca geebildii ama makinalarn geemedii bir test hazrlamaktr. u nemlidir ki bir Captcha uygulamas her kullanc iin farkl bir Captcha retir. Eer grn olarak statik harflerden meydana gelmi, her kullanc iin ayn Captcha resmi oluturulsayd, bir bilgisayar programnn o resimdeki ifreyi zp doru sonucu bulmas uzun zaman almayacakt.

Hepsinde olmasa da genelde Captcha'larda grsel bir test uygulanr. Bilgisayarlar grsel bir objeyi tanmlamakta insanlara gre daha acizdirler. Biz bir resme bakp ondaki dokular alglamakta bilgisayarlardan ok daha baarlyz. nsanlar gayet karmak yada ssl yazlar bile tanmlayabilir. te bir insan beyni hi alakasz resimler arasnda benzer dokulardan yola karak bir iliki bulabilir. Ama tm Captcha'lar grsel bir nesneye dayanmaz. Aslnda, grsele bir alternatif bulmak nemli bir itir. Yoksa, web site yneticisi grme engelli insanlar yok saym olur. Grsel testin en ok kullanlan alternatifi iitsel testtir. itsel bir Captcha 'da kullancya bir seri halinde harfler ve saylar okunur. Bir program iin dzgn bir sesi biraz bozmak zor bir i deildir. Ayrca bu tip seslere ierikle alakasz hafiften bir arka plan sesi de eklenir. Bu ilemler sayesinde bu testin ses tanma programlar tarafndan krlmas gletirilir. Bir Captcha oluturmann bir baka yolu ise, okuyucuya ksa bir metni seslendirmelerini istemektir. Otomatik programlar o metindeki kelimeleri okuyabildikleri halde onlar tam anlamlaryla yorumlayamazlar.

3.10. Captcha eitleri

3.10.1. Mat Captcha

ncelikle Math Captcha spami engellemek iin farkl bir Captcha modeli. "10 + 15' in sonucu nedir gir buraya " ya da "yirmi bl on ka eder" gibi kontrollere dayanyor. Aslnda math Captcha konsepti baya bir eski. Tabii ki gene de klasik botlarn hepsini engelleyecektir ancak siteye zel botlar bunu basite geebilir.

3.10.2. Asirra

Microsoft Research ekibi Asirra adnda Captcha benzeri bir sistem yapm. Klasik Captcha sistemlerinin aksine mantk zerine kurulmu sistemde kullanc alan

resimlerden kedi resimlerini seiliyor. Yalnz bu yntemde de kedi tanma bot program yapmak mmkn.

ekil 3.2: Microsoftun gelitirdii Asirra Resimleri petfinder.com'dan alan sistem her ykleyite farkl resimler yklyor

bylece sistemi bir resim veritaban oluturarak krma yntemini imkansz hale getiriyor.

3.10.3.KittenAuth KittenAuth Captchann yetersiz kald yerde devreye giriyor. Dadada ak olmak gerekirse yle sylenebilir. Captcha ya kar yaplan yazlmlar artk resimleri okuyabiliyor ve buna karn Captcha resimleri zorlatryor yamultuyor silikletiriyor ve harfleri birbirine geiriyor ie bu noktada aslnda sadece bilgisayarn okumasn engellemiyor kullanccnda okumasn engelliyor. Baz resimler o kadar zor ve anlalmaz bir hale geliyor ki kullanc okumakta zorluk ekiyor. te bu noktada KittenAuth sistemi devreye giriyor

ekil 3.3: KittenAuth yntemi KittenAuth da Captcha nn aksine kullancya resimde grnen yaz veya harfleri yazdrmyor. Birka tane resim karttrp ilerinden doru resmin tklanmasn istiyor.

Resimde de grdld gibi 9 resim arasndan 3 tane kedi resmini tklamansn istiyor. Eer 3 kediyi tklarsa kullanc sistem insan olduuna karar veriyor. KittenAuth; Captcha da insan m? Makine mi? Sorusuna grerek veya iiterek karar veriyordu. Size resimi sunuyor ve resimi aynen yazmanz istiyordu. KittenAuth ise size resimi sunuyor ve ilerinden seim yapmanz istiyor. KittenAuth ise size grsel olarak resimler sunmakta fakat Captcha nn aksine ok daha kolay ve basit birka mause tklamas ile sizin insan m? Makine mi? olduunuzu sezgisel olarak anlayabilir hale getirildi. KittenAuth sistemine bakarsak Captcha dan daha kolay ve makine programlarna kar ok daha zor bir hale geldi. zelliklede verilen resimlerin grsel olarak ekicilii insanlar pisikolojik olarakda bu seenee itmekte. Makineler yani bilgisayar programlar KittenAuth iin uanda bir kar yazlm gelitiremediler. KittenAuth zeka ya bakyor Captcha ise sadece grsel olarak tekrar istiyor. Makinelerin henz bir zekalar olmad iin KittenAuth u geebilmi deiller. Teknoloji byk bir hzla ilerlemekte. Sonuta KittenAuth galip gelmi ve Captcha nn tahtn elinden alabilecek bir nitelik kazanm olabilir. Ama unu unutmayalm teknoloji bu kadar hzl geliirken KittenAuth un da yenilemez olabileceini gstermiyor. Aksine bunuda aabilecek bir yazlm yada bilgisayar zekas gelitirilebileceini gstermekte.

3.11.Captcha Krlmas

Captcha'y krmada nemli olan ey mesajda ne yazdn okumak deildir, bunu insanlarn en az yzde sekseni zaten yapabilir. Asl zor ve nemli olan grev insanlarn bu ilemi nasl yaptn bilgisayara retmektir. ou durumda, Captcha'y krmaya alan insanlar bilgisayarlarn daha zeki duruma getirmek yerine problemi kolaylatrmay tercih ederler. Captcha'y krmaya niyetlenen programc, bu problemi fazlar eklinde

deerlendirmelidir. Onun algoritma tasarlamaldr. Algoritma bilgisayara adm adm ne yapacan syleyen emirler dizisidir. Bu senaryoya gre, ilk adm resmi siyah beyaz tonlara evirmek olabilir. Yani uygulama, resimdeki tm renkleri ortadan kaldrmal. Bylece Captcha'nn koyduu engellerden biri olan renklerden kurtulmu olunur.

Sonra, algoritmann dier adm bilgisayara ortaya kan ekildeki dokular tespit etmesini emretmek olacaktr. Yani program her harfi gerek harflerle bir-bir kyaslayp her harfin en ok hangi harfe benzediini bulmak olacaktr. Sadece ok az sayda harfi bile tespit etse ngilizce kelimeleri ieren bir database kullanarak ifrelenen kelimenin ne olduunu rahatlkla bulabilir. Daha sonra olabilecek kelime varyasyonlarn submit eder. Bu metod artc derecede etkilidir. Yzde yz baar orann tutturamasa da bu, spamclar iin ok deerli bir metottur.

ekil 3.5: Gimpy adl program 10 kelime verir ve n doru girmenizi ister.

Peki daha kompleks Captcha'lar iin ne yapmal? rnein Gimp Captcha adl bir program eri ekilde yazlm 10 adet kelime verir. Burada kelimelerin bazlar birbiri zerine binmitir. Kullancnn testi geebilmesi iin kelimeyi doru olarak yazmas gerekir. Bu metod ne kadar gvenilirdir? Aslnda bu metod bile bir Captcha krc algoritmann varlndan dolay pek de gvenli saylmaz. Greg Mori ve Jitendra Malik, Gimpy Captcha metodunu kran bir algoritma

tasarlayp bunu bir makaleyle yaynladlar. Bunlara yardmc olan en nemli argman Gimpy metodunun rastgele yerine gerek, anlaml kelimeleri kullanmasyd. Mori ve Malik bu algoritmay kullanan bir dizi test uygulad. Grdler ki algoritmalar Gimpy Captcha'larnn yzde 33'n zebiliyordu. Bu mkemmel saylmasa da baarl bir orandr. nk spamclar bu metodu kullanarak bir dakikada yzden fazla giriimde bulunabilirler. Bundan dolay iyi bir Captcha anlaml sz iermemelidir. Tamamen rastgele olmaldr. Web sistemlerinde resim olarak grdmz ey aslnda php, asp dilleriyle oluturulan resim formatndaki kodlardr. Bu kodlar php, asp ile oluturulduuna gre yine ayn yazlm veya benzeri yazlm dilleri ile krlmas mmkndr. Bu resimler php, asp, cgi, perl gibi programlama dilleri ile dinamik oluturuluyor ve iinde bulunan metin, oturum verileri (session data) ile yine kullancya zg olmak kayd ile sunucuda tutuluyor. Dzgn yaplandrlm bir sunucudan bu resimleri oluturan kodlar veya oturum bilgilerini alamayacanz dnlrse geriye sadece resim ileme (image processing) yntemleri kalyor. te bu resim ileme metotlarn da engelleyebilmek iin resimlerin arka planlarnda yazlarn okunmasn zorlatracak, renk dalmlar ya da karakter olmayan simgeler bulunur. Resim ileme kodu eer bu yanltc simgeleri de temizleyebilecek ekilde gelitirilmise ki bu durum yapay sinir alar konusuna girer, yani ancak bir yapay zeka deneme yanlma (ya da renme) metodu ile bunlar ayklar, bu sistem bu metodu aabilir ama bunu gelitirebilmek iin gereken bte de gerekten salam bir btedir

3.12.Captcha Ve Yapay Sinir Alar

Carnegie Mellon nversitesi'nden Luis Von Ahn, Captcha'nn mucitlerinden biridir. 2006'daki bir dersinde von Ahn, Captcha ve yapay zeka arasndaki iliki hakknda konumutur. nk CAPTCHA, hackerlar (spamciler) ve onlarn hedefleri arasndaki bariyerdir. Bu insanlarn Captcha 'lar krmak iin atanm belirli bir zaman ve enerjileri vardr. Onlarn baars makinalar daha sofistike hale getirecektir. Birisi bir Captcha'y daha krmay baard zaman yapay zeka yolunda nemli bir adm daha atlm olacaktr.

ekil 3.6: Krlmas YSA le Kolay Bir Captcha Hacker'lar bilgisayarlara yukardaki tipte bir resmin nasl kracan retmilerdir. nsanlar CAPTCHA'larn stesinden gelecek yeni yollar bulduka, von Ahn gibi Bilgisayar Bilimciler daha ok yapay zeka isteyen yani Captcha trleri icat etmek zorunda kalacaklar. Captcha 'da geriye doru atlan bir adm, yapay zeka alannda ileriye doru atlm bir adm demektir. Her yenilgi bir zaferdir. yleyse web yneticileri ne yapacak? Artk onlar da von Ahn'nn bu felsefesini yeterince etkili bulmayacaklar. Onlarn asndan bakarsak, hala ba dmanlar olan hackerlarla ba etmek zorunda olacaklar. Web siteleriyle uraan yada online anket dzenleyen insanlar Captcha sistemlerinin artk ok da etkili olmadklarn farketmeleri gerekir. u zaman iin hangi Captcha uygulamalarnn hala etkili olduunu tespit etmek iin aratrma yapmalar gerekiyor. Ve keza konu hakkndaki gndemi de sk skya takip etmek zorundalar. Eer kulland Captcha metodu krlrsa, hemen o kodu silip yerine henz krlmam bir kod yerletirmelidir. Captcha tasarmclar da epey yol katetmeleri gerekecek. Bilgisayarlar daha sofistike hale geldike test metodlar da o kadar geliecektir. Ancak bir sre sonra o kadar karmak resimler retilecektir ki bunlar insanlar bile zemeyeceklerdir. te bu anda bu sistem tamamen kecektir. Metinleri eip bkmek artk bir ie yaramayacaktr. Artk kullanclardan matematik ilemleri zmeleri(integral gibi) veya ksa bir hikye okuyup sorular cevaplamalar beklenecektir. Bunun gibi zor ve skc testlere yneldike

kullanclarn da web sitelerine olan ilgisi azalacaktr. Kim bir mesaj gndermek iin ikinci dereceden bir cebir sorusunu zmek istesin ki? En sonunda yle bir noktaya gelinecek ki insanlar ve makinalar herhangi bir bulmacay ayn yoldan zmeyi deneyeceklerdir. Eer bu gerekleirse, Captcha kodlar gereksiz kod ynlarndan baka bir ey olmayacaklar. O zaman gelinceye kadar Captcha 'lar kullanmaya bakalm.

4.Karakter Tanma Ve Grnt leme

4.1.Grnt leme le lgili Baz Terim ve Tanmlar 4.1.1.leklendirme

Resim ve grafikler, orantl ya da orantsz olarak byltp kltlmesidir.

4.1.2.Saysal Resim Saysal resim bir matrise benzetilebilir. Resmin en kk elemanna piksel ad verilir. Resimi M x N boyutunda matris olarak dnrsek her bir pikselin deeri bir dizinin koordinatlarnn i ve j' inci terimi olarak ifade edilebilir.

En basit durumda pikseller 0 veya 1 deerini alrlar. Bu piksellerden oluan resimlere binary (ikili) resim denir. Monokrom, yani tek renkli resimlerde ise her eleman 0 ile 255 arasnda deerler alr. Bylece her pikselin parlaklk deerinin farkl olmas ile gri tonda bir resim elde edilir. En parlak nokta 255 beyaz, en karanlk nokta 0 siyah bunlarn arasndakiler ise R,G ve B deerlerine bal olarak gri renk deerlerini alrlar.

4.2.Renkli' den Gri' ye

Renkli saysal bir resmi gri seviye resme evirebilmek iin RGB renk modelinde belirtilen gri-seviye renk deerlerinin orijinal resimdeki piksellerin her bir renk kanalndaki sahip olduklar renk deerlerinin yerine, resmin zelliklerini deitirmeden konulmas ile elde edilmektedir. Hatrlanaca zere RGB kpndeki beyaz-siyah kegeninde ki tm deerler gri-seviye deki renk kodlandr. Bu ise RGB renk kanallarnn hepsinin ortak bir deer ile doldurulmasndan elde edilir. (127,127,127) ls grinin tonu iken (127,18,63) beyaz siyah kegeninde bulunmad iin gri seviye deildir.

ekil 4.1: R,G ve B deerlerinden gri seviye elde etme

4.3.Threshold

Gruntu ilemede karl resmin belirli bir deerden daha kk deere sahip pixellerin siyaha, daha byk deere sahip pixellerin beyaza boyanmasdr. Projemde Captcha resimlerin alrken threshold deerini 128 aldm. Bylece resim dizisini sfr ve birlerden olumu siyah-beyaz bir diziye dnr.

ekil 4.2: Threshold deeri kullanlarak 1 ve 0dan olumu binary dizi elde etmek

4.4. Gri Seviye'den Binary'e

Gri seviye bir resim, her bir piksel iin 0 ile 255 arasnda bir parlaklk deeri alr. Ve gri tonda grnt ite bu farkl parlaklk deerlerine gre oluur. Bir resim griden binary'e evrilirken [0..255] aralnn orta deeri olan 128 kstas(eik deeri olarak olarak) alnr ve parlaklk deeri 128'den kk olan pikseller 0' a; parlaklk deeri 128 den byk olanlar 255'e ekilmek suretiyle resimde sadece siyah ve beyaz renklerinin kalmas salanr. Bu ekilde yalnzca 0 ve 255 ya da 2 lik sisteme gre 0 ve 1 deerlerini tayan resme binary resim ad verilir. Thresholding ad verilen yntemde ise eik deeri kullancya braklr. Yani, grnt ileyen kiinin blirleyecei deer yukarda anlatlan 128 gibi varsaylr. Ve resmin dier deerleri grnt ileyen kiinin belirledii deere gre 0' a ya da 255' e ekilir.

4.5. Histogram karma

ekil 4.3: Histogram Grafii Histogram, belli bir veri kmesindeki elemanlarn frekanslardr. Genellikle ubuk grafikler eklinde izilir ve deerlendirilirler.

Histogram, izimi yaplrken u yntem izlenir. Resim gri olarak tanmlandktan sonra intensty (RGB deerlerinin ortalamasdr) deeri hesaplanr. Her intensty deeri iin bir kutu ayrlr ve sayma ilemine geilir. Resim taranrken alnan gri deere ait kutunun deeri bir arttrlr. Tarama bittiinde elimizde 0-255 veri aralnda deerler ve bu deerleri tutan bir histogram dizisi bulunur. Kutu deerleri bize veri kmesi elemanlarnn frekanslarn verir. Frekanslar grafikte gsterilerek Histogram izilmi olur. Projemde Karakterleri ayrtrmak iin dey Histogram aldm. Her stundaki siyah piksellerin saysnn bir diziye attm. Bu dizideki deerlerden sfra sahip olanlar iin, ilgili stunda hi siyah piksel yok anlam kar. lk siyaha rastlanan deer bize ilk satrn balang koordinantlarn verir. Bundan sonra ilk siyah iermeyen stun karakterin biti koordinantlarn verir bylece karakterler ayrtrlm olur. yararlanarak histogramlar Bitmap eklinde gsterilir. Daha sonra bu deerlerden

4.6.Karakterlerin Ayrtrlmas

Burada ama her bir karakteri ereveleyen dikdrtgenin sol st ke koordinatlarnn ve erevenin ykseklik ve geniliinin bulunmasdr. Bunun iin dikey histogramdan yararlanr ve her karakterin balang ve biti koordinatlar bir dizide tutulur. Bu dizideki elemanlarda kendi iinde kontrol edilerek mmkn olabilecek iki x-koordinat deeri(bu iki deer arasndaki fark erevenin geniliini belirler.) elde edilir. kinci x deerinden sonraki ksmdan varsa yeni ikierli x deerleri elde edilir. Bylece genilik elde edilmi olur. Ykseklii bulmak iin bu sefer ayns y deerleri iin de yaplr.

4.7.Karakterlerin Saysallatrlmas Artk elimizde balang ve biti noktalar ile beraber karakter erevesinin ykseklik ve genilik gibi bilgileri olan diziden ereve adedince Bitmap dizisi oluturulur. Bitmaplerin kullanlabilmesi iin saysallatrlmas icap ediyor. Karakterlerin saysallatrlma ilemi tanma ileminde kullanlacak. Bu srete girdi grnt binary bilgiye rneklenir.

ekil 4.4: Resmin Saysallatrlmas

4.8.Geniletmek, Andrmak, Amak ve Kapatmak

4.8.1. Geniletmek

Saysal bir resmi geniletmek demek resmi yapsal elemanla kesitii blmler kadar bytmek demektir. Bunu yapabilmek iin yapsal eleman resim zerinde piksel piksel dolatrlr. Eer yapsal elemann orjini resim zerinde "0" deerli bir piksel ile karlarsa herhangi bir deiiklik meydana gelmez. Eer deeri "1" olan bir piksel ile karlarsa yapsal elemanla yapsal elemann altnda kalan pikseller mantksal "or" ilemine tabi tutulurlar. Yani herhangi "1" deeriyle sonu "1" e evrilir. Geniletme (dilation) ile resim zerindeki objeler ier. Obje iinde delikler var ise bunlar kapanma eilimi gsterirler. Ayrk nesneler birbirine yaklar ya da balanr. 3x3 lk yapsal elemann tm deerleri karakterin grultulu ve bitiik olup olmamasna gre deiir. 4.8.2. Andrmak

Andrma ilemi bir bakma geniletmenin tersi gibi grlebilir. Burada yine ayn ekilde yapsal eleman resim zerinde piksel piksel dolatrlr fakat bu defa yapsal elemann

merkez pikseli "1" deeri ile karlarsa yapsal eleman ierisindeki piksellerin durumuna baklr. Eer yapsal eleman ierisindeki "1" olan piksellerden herhangi biri altnda resme ait "0" deeri varsa yapsal elemann dier "1" lerinin altndakilerle beraber bu piksel "0" a dntrlr. Andrma (erozyon, erosion) ilemi ile saysal resim andrlm olur. Yani resim ierisindeki nesneler ufalr, delik varsa geniler, bal nesneler ayrlma eilimi gsterir.

4.8.3.Amak

Saysal bir resme nce andrma daha sonra geniletme uygulanrsa resme Ama(Opening) ilemi uygulanm olur.

4.8.4.Kapatmak Saysal resme nce geniletme daha sonra andrma uygulanrsa Kapatma(Closing) ilemi uygulanm olur.

Ama ilemi ile birbirine yakn iki obje grntde fazla deiime sebebiyet vermeden ayrlm olurlar. Kapatmada ise birbirine yakn iki nesne grntde fazla deiiklik yaplmadan birbirine balanm olurlar.

4.9.Filtreler

Tanma algoritmalarn kullanmadan nce grntdeki grltleri temizlemek istiyorsanz mean, median ve gaussian filtereleri ile bu ilemi yapabilirsiniz.Filtrelerin mant yledir:Sfr ve birlerden olumu ikili dizinin i. ve j. Deeri 8 komuluun deerine gre deiir.rnein Mean filtreleme de bir matrisin deeri eer 8 komusu 1 ise bir aksi halde sfrdr.

ekil 4.5: h(i,j) Filtreleme fonksiyonu ile yeni binary dizi elde etme

4.10. Karakterin Tannmas

Karakter eitli grnt ileme tekniklerinden sonra histogramla ayrlp belli bir threshold deerine gre binary diziye evrilir. Sonra bu binary dizinin elemanlar ile veritabannda ki tm karakterlerin deerleri ile karlatrlr ve benzerlik oran bir diziye konulur. Giri dizisinin deeri veritabanndaki deerlerden en ok hangisine benzer ise giri dizisi o karaktere setlenir. Yani benzerlik dizisinin en byk elemanna setlenir.

5. Veri Tabannn Oluturulmas 5.1.Karakter Ve Binary Halinin Veri Tabanna Eklenmesi

Karakterler veri tabannda ikili karlklar ile yer alrlar. Kullanc istersen eitli resim ileme ve tanmadan sonra elde edilen ikili diziyi veri tabanna ekleyebilir ve bunu istedii bir karaktere deer olarak atayabilir.

ekil 5.1: 6 karakterinin veritabanna eklenmesi

5.2.Veritabann Eitilmesi Veritabannn eitilmesinin ama fontu ve stili farkl karakterleri de tanmaktr.Cunku veritabann da eitim boyunca ayn karakter verilirse bu karakterlerin ortak ynleri glendirilmi olur.1 ve 0l diziden olumu karakter bir daha eitilirse eer matirslerin i,j deerleri Ayn ise veritabanndaki matrisin i,j deeri bir artrlr. 6.Sonular

Sonu olarak unu syleyebiliriz ki devlet ve byk kurumlarn veri tabanlar hem maddi hem de manevi olarak ok deerlidir ve her zaman siber saldrlara maruz kalmaktadr. En kk bir gvenlik zafiyeti bile byk bir hasara sebep olabilir.B gvenlik nlemlerinde biri de Captchadir.Gnmz da Captcha saldrlarnn en nemli kaynaklarndan biri de resim ileme ve karakter tanma yazlmlardr.Bunun iin kullancy skmayacak ama bot ve spam programlarnn girilerini engelleyecek yani bilgisayar ile insan arasndaki ayrm yapacak Captcha yaplmaldr.Bu Captchalar ve onlarn algoritmalar ortalama olarak 2 ayda bir deitirilmelidir ki sistem zg saldr algoritmalar sisteme zarar vermesin.

Ayrca Captchalarda ki karakterlerin still, font ve dndrme aclar farkl olmal ayrca iin iine yatay dikey her turlu grultu eklenmelidir ki Captcha korumas st seviyeye cksn.

Captcha saldrlar sadece karakter tanma yazlmlar ile saldr altnda olmuyor ayrca normal web formunu doldurup Captcha grntsn baka server ve sisteme ekleyip buradan alnan tekrar yerine getiren spam yazlmlar da mevcuttur bunun iin Sadece Captcha korumas yetmez ayn zamandan bir bilgisayar yada serverden gelen srekli istekleri IP ve erezler ile kontrol altna alp gerektiinde istee cevap vermemesi salanmaldr. Projemde Captcha analizlerini yapp otomatik czen bot program yaparken karlatm en byk problem kark ve i ie gemi captchalar tanmakta zorluk ekmesidir. Bu problem tanmada Yapay zeka kullanlarak alabilir.7.Kaynaklar

Yazar Soyad, Ad, "almann bal", almann yaynland yer, cilt no, say no, sayfa, yl. [1] Sharp,John,Visual C#.Net, Microsft.Net,1,1,597-606,2005 [2] Nabiyev,Vasif, Yapay Zeka,Sekin,1,1,523-576,2005 [3] Yank,Memik, Visual C#.Net'',Sekin,1,1,24-45,2006 [4] http://en.wikipedia.org/wiki/Captcha [5] http://tr.wikipedia.org/wiki/G%C3%B6r%C3%BCnt%C3%BC_i%C5%9Fleme [6]www.Captcha.net [7] http://www.codeproject.com/KB/aspnet/CaptchaImage.aspx