Çarşamba, Mayıs 31, 2006

TEKNOLOJİNİN GÜZEL YÜZÜ: APPLE

Apple demek, benim gözümde, paraya kıymet vermemek, adeta bir gönül insanı olmak demektir. Apple felsefesini kavrayabilmenin yolu,"Bir hırka bir lokma" felsefesini özümsemekten geçer. Bir görüntü uçbirimine 3900 avro verebilmeyi düşlemek, ama yinede sızlanmamayı kabullenmektir Mac kullanan arkadaşının olmayışına. Nerde bir showroom görse, içine girip aletleri çocukcasına kurcalamaktır. Sahip olamadan sevmek, almadan vermektir. İçinin güzelliğimidir dışına yansıyan, yoksa ulaşılamamanın verdiği esrarmıdır onu güzel yapan, bilinmez.. Felsefedir, sanattır ama teknolojidir en nihayetinde. Protest takılmaktır. Pencere scriptinde kapat iconunu titlebar ın soluna koymaktır windowsa inat. Mac arayüzünü taskbar olmadan tasarlamaktır. Buram buram Anadoludur Mac :)))



Yeni açılan Kanyon'u şöyle bir gezdim. En alt kattaki Apple mağazası biraz ilerdeki Starbucks kafeden daha işlekti diyebilirim. Artık Kanyonu kestirme olarak kullanıcam caddeye çıkarken:)

Cuma, Mayıs 19, 2006


SANAL MAKİNA ( Virtual PC ) TEKNOLOJİSİ NEREYE DOĞRU GİDİYOR?

128 veya 112 ile öğlen saatlerinde göztepe kampüsünden otobüse binenler musallat amcayı bilirler. musallat amca hiç çıkarmadığı güneş gözlükleri ve takım elbisesiyle, otobüsteki gençleri anlattığı sıkıcı hikayelerle esir alan İstanbul beyefendisi modunda bir kişidir. Kurbanlarını genelde kız öğrencilerden seçer, çünkü kızlar musallat amcanın anlattıklarından sıkılsalar dahi nedense bir görev bilinci içinde onu dinler ve sorularını cevaplarlar. "ne güzel esiyo dimi", "o elindeki kitaba bakabilirmiyim" gibi anlamsız savlarla kurbanlarına yanaşır ve bir yolculuk boyu bırakmaz.

Musallat amcanın bu girişlerine saldırı adını verdim kendi kendime. Bu olayı bir malware in (malicious software) sisteme entegre oluşuna benzetiyordum. Karşısındakinin savunma sistemini onun anlayamayacağı bir noktadan çökertiyor ve istediği cevabı alacağı soruları soruyordu. Ancak her hedefte başarılı olamıyordu. Bazı hedefler savunma stratejilerini iyi belirlemişlerdi. Bunlar muhtemelen musallat amcayla daha önce karşılaşmış kişilerdi.

Geçenlerde aldığım bir eposta da Microsoftun yeni bir virüs geliştirdiği yazıyordu. Konuyu araştırınca ciddi bişey olduğu fikrine kapıldım. Konusu edilen virüs, Sanal Makina Tabanlı Kök Aracı diye çevirebileceğimiz VMBR ( virtual machine based rootkit ) tipinde bir yazılım. SubVirt adındaki bu projenin amacı, geliştirildiği yer olan University of Michigon ve Microsoft Redmond Labs tarafından yayınlanan white paper da kısaca şöyle özetleniyor.

" Sistem üzerinde çok daha etkin bir kontrol sağlayan bir virüs geliştirdik. VMBR diye tabir ettiğimiz bu yeni virüs, yeni bir sanal makine (virtual machine) yüklüyor, varolan işletim sistemine entegre ediyor ve kendi işletim sistemini sanal makinaya kuruyor. Hedef iştetim sisteminin bilgisi dışında, kendi işletim sistemiyle donanımı kontrol ediyor. Bunu geliştirmemizdeki amaç, saldırı tekniklerinin gelecekte hangi boyutlara geleceğini önceden kestirip, önlem alacak olan kurumları uyarmak. Neler yapabileceğimizi gösterebilmek adına, bu işletim sistemi üzerinde koşan 4 tane örnek zararlı yazılım geliştirdik. Hedef işletim sistemiyle herhangibir haberleşme olmaksızın, DoS saldırısı yapabilir, relay mail (mail casusluğu), pishing website (şifre casusluğu) gibi birçok işlemi gerçekleştirebiliriz. Tuştakımı, fare veya ağ aktivesini takibetmek için ise aygıt sürücülerinde ufak değişikler yaparak hedef ile haberleşmeyi en aza indirgeyebiliriz."


Burada VM kavramından bahsetmek istiyorum. Şekilde görüldüğü gibi, hedef işletim sistemiyle aynı seviyede erişim hakkına sahip. Bu sayede ondan bağımsız bir şekilde kendi üstündeki işletim sisteminin donanım ile habereşmesini sağlıyor. Saldırgan bir programla savunan program arasında taktik açıdan pek bir fark yoktur. ikiside aynı yöntemleri izler. Aralarındaki fark amaçlarıdır. Hangisi donanımla daha alt bir seviyeden heberleşme imkanı yakalarsa diğerini ekarte eder. VMBR nin tehlikeli oluşu ve zor yakalanır olması, donanımla doğrudan etkileşim içinde olmasından kaynaklanıyor. Yukarda linkini verdiğim white paper da Microsoft Redmond dan konuya getirilen belli bir çözüm yok. Üretici firmalara, donanımsal antivirüs çözümlerine yönelik bir yolgösterme ile yetinilmiş.

Tabi bu noktada akla yine kimilerinin "komplo teorisi!" olarak adlandırdığı, ancak bakarsak gün gibi açıkta olan bazı şüpheler geliyor. Geçmiş senelerde, "MS antivirüs işine giriyormuş" haberini duyduğumuzda birçok kişi, antivirüsü üretmenin virüs üretmekle beraber yürütülen bir iş olduğunu, buna bağlı olarak da MS gibi bir devin bu işe girmesinin bizlere güvenlik açığı olarak geri döneceğini söylemişti. Zaten tahmin edilmekte olan, yazılım firmalarıyla antivirüs firmalarının gizli flörtleri, bu haberle ayyuka çıkıyordu.

Buna benzer bir olay Sony nin CD kopya koruması amacıyla ürettiği rootkit tipi casus yazılımın farkedilmesiyle açığa çıkmıştı. Yazılım firmalarının masum amaçlarla bile olsa, işletim sisteminden gizli çalışan programlar dağıtmaları kullanıcılar açısından tehdit oluşturuyor. Şimdilik VMBR tipi bir yazılımı sisteme kurmak da en az onu yakalayabilmek kadar zor. MS un geliştirdiği SubVirt diskte 250 mb yer kaplıyor. Güvenilmeyen kullanıcıların yazılım kurma hakları, boot edilebilir CD ler ve yazılım firmalarının gizli olarak dağıttığı yazılımlar (Sony örneğindeki gibi) şimdilik bu tip virüslerin ana yayılma kaynakları.

Pazartesi, Mayıs 15, 2006








Hayatımda yaşadığım en güzel şampiyonluk. Duygularımı anlatmakta zorluk çekiyorum. Bu takım bunu hep yapıyor. İnanılmaz olanı başarıyor. Çok zor günlerde bile bu takım şampiyon olur diyip buna inanabiliyor insan. Aslında bu şampiyonluk yarışından hayata dair çıkarılacak dersler bile vardı. Sözlerle anlatmak zor olduğu için bikaç resim koydum. Ayrıca alttaki habere çok güldüm...

TAKSİCİYE SALDIRDILAR
Özellikle maçın son anlarında gelen Denizlispor golüyle büyük bir şok yaşayan taraftarların bir bölümü, bar ve kafeleri boşaltmaya başladılar. Bu sırada Caddebostan’daki barlar sokağında bir ticari taksinin şoförünü Galatasaraylı sanan öfkeli taraftar grubu, taksiye saldırarak, camlarını kırıp, taksinin içine meşale attılar. Neye uğradığını şaşıran taksi şoförü, güçlükle dışarı çıkarken, üzerindeki Fenerbahçe formasını gösterip, “Ben de Fenerliyim” diyerek taraftarlara tepki gösterdi.

Pazar, Nisan 16, 2006


İŞLETİM SİSTEMİ YAZMAK

Vestel Manisa dan 5 yemekten daha zor olmamakla beraber, işletim sistemi geliştirmek karmaşık bir iş. Uzun süren test süreçlerinden sonra sayısız sürüm ve yamaya ramen bile istenen seviyeye gelemeyen işletim sistemlerine bakınca bunu daha iyi anlıyoruz. Öyle veya böyle kullanmak zorunda olduğumuz bu yazılımlara olan bağımlılığımızı gelecekte aşağı çekebilmemiz için ulusal projelerde çalışacak, bu konuda yetenekli geliştiricilere ihtiyacımız var ülke olarak.

Kendi minik işletim sisteminizi yazıp bilgisayarınızı başlattığınızda koşmasını sağlamanız çok da zor değil. İşin başlangıç kısmı olan boot aşamasını intel mikroişlemcilerde nasıl gerçekleştirebileceğinizi kısaca açıklayacağım. Örnekte floppy disketten boot etmeyi anlatacağım ama CD den veya sabit diskten boot etmek için de bikaç değişiklik yeterli olacaktır.

Windows tabanlı bir sistem kurulu olan bilgisayarı başlattığımızda salt okunur bellekte (ROM) bulunan ve küçük rutinlerden oluşan BIOS, kontrolü ele alır. Linux sistemlerde ise Kernel in içinde bir emülatör olarak sistemin kendi BIOS u bulunur (LinuxBios). LinuxBios diğer ticari BIOS lara oranla çok daha güçlüdür. Başlangıç konumundayken intel işlemcimiz üst düzey bir pentium dahi olsa Real moddadır ve bir 8086 edasıyla çalışır. Ta ki başlayacak olan işletim sistemi protected moda atlayana kadar. Benim anlatacağım kısım protected moda atlamayacak tabiki:) BIOS en başta bir takım kontroller yapar ( tuştakımı bağlımı, aygıtlar uyumlumu) ve bip sesleri eşliğinde bu testler sona erer. Sonra, BIOS ayarlarında seçili olan boot aygıtının (bizde floppy) ilk sektörünü (boot sector veya sector 0) 0x7c00 bellek adresine yükler. Ardından kod akışı 0x7c00 adresinden devam eder. Bizim yapacağımız şey, boot sektörüne çalıştırmak istediğimiz programı yerleştirmek. Bu programı Assembly dilinde yazıp, as86 veya nasm ile derleyeceğiz.
Çalışmalarımızı Linux altında yapacağız. Windows altında çalışınca derlemelerde hata alırız. as86 dokumantasyonu için..

Bizim programımızın boyutu büyüdüğü zaman boot sektörü yetersiz kalacağından ikinci bir yöntem uygulayacağız. Boot sectorune koyacağımız programı kullanarak, sector2 ye koyacağımız ana programımızı bellekte istediğimiz bir adrese yerleştirip, kod akışını o bellek adresine transfer edeceğiz. Böylece ana programımız büyüdüğünde yapacağımız tek şey, boot sector deiki programda değişiklik yaparak, yeterli sayıda sektörü bellek alanına arka arkaya yüklemek olacak.

boot sector ve sector2 programlarını floppy de gereken yerlere yazacak olan C programını yazının sonunda anlatacağım.


Aygıt sürücüleri ancak işletim sisteminin başlamasından sonra belleğe yüklenirler. Biz işletim sistemini devre dışı bıraktığımız için aygıtlara BIOS interrupt ları ile ulaşacağız. Aygıt sürücüsü yazacak duruma geldiğimizde aygıtlarımızı kendimiz yönetmeye başlayabiliriz.


Boot sektör programı
LOC1=0x500

entry start
start:
mov ax,#LOC1
mov es,ax
mov bx,#0
mov dl,#0 ; drive
mov dh,#0 ; head
mov ch,#0 ; track
mov cl,#2 ; sector 2
mov al,#1 ; kaç sektör okunacak
mov ah,#2 ; 2 numaralı function
int 0x13 ; interrupt 13 ü çağır

jmpi 0,#LOC1

Bu programı bsect.s adıyla kaydedip as86 ile aşağıdaki şekilde derleyebilirsiniz.

as86 bsect.s -o bsect.o
ld86 -d bsect.o -o bsect
0x500 segmentinin 0. offsetine denk gelen adres 0x5000 dir. bsect.s programı sector 2 yi 0x5000 adresine yükledikten sonra bu adrese atlama yapar.
Gördüğünüz gibi BIOS interrupt ını çağırmadan önce gerekli parametreleri gereken
register lara atama yapıyoruz. ah registerına da interrupt 13 ün 2 numaralı
fonksiyonunu çağıracağımız için 2 değerini atıyoruz. Interrupt 13 ve diğer
interruptların kullanımlarını interntetten bulabilirsiniz.


Sector 2 deki ana program

entry start
start:
mov cl,#0x00 ; sol üst sütun
mov ch,#0x00 ; sol üst satır
mov dl,#79 ; sağ alt sütun
mov dh,#24 ; sağ alt satır
mov ah,#0x07 ; interrupt 10 un ekran temizleme fonksiyonu
mov al,#0x00 ; özellik
int 0x10 ; interrupt 10 u çağır

mov ah,#0x03 ; int 10 un imleç pozisyonunu alma fonksyonu
xor bh,bh ; video page
int 0x10 ; int 10 u çağır

mov cx,#40 ; string uzunluğu
mov bx,#0x0007 ; özellik
mov bp,#mymsg ; string adresi
mov ax,#0x1301 ; string yazma fonksyonu
int 0x10 ; int 10 u çağır

loop1:
jmp loop1 ; sonsuz döngü

mymsg: ; string etiketi
.byte 13,10
.ascii "Merhaba Dünya, nekadar banelim değilmi?"

Ana programımız ekranı temizledikten sonra ulvi mesajını bastırıyor:)
sect2.s adıyla kaydedip as86 ile derledikten sonra aşağıdaki C programı ile boş bir floppy diskete bsect.s ve sect2.s programlarını yerleştirelim.


Programları diskete yazan C programı

#include /* unistd.h needs this */
#include /* contains read/write */

#include


int main()

{

char boot_buf[512];

int floppy_desc, file_desc;


file_desc = open("./bsect", O_RDONLY);


read(file_desc, boot_buf, 510);

close(file_desc);


boot_buf[510] = 0x55;

boot_buf[511] = 0xaa;


floppy_desc = open("/dev/fd0", O_RDWR);


lseek(floppy_desc, 0, SEEK_SET);

write(floppy_desc, boot_buf, 512);


file_desc = open("./sect2", O_RDONLY);

read(file_desc, boot_buf, 512);

close(file_desc);


lseek(floppy_desc, 512, SEEK_SET);

write(floppy_desc, boot_buf, 512);


close(floppy_desc);

}


programı write.c adıyla kaydedip gcc ile aşağıdaki gibi derleyebilirsiniz.
cc write.c -o write
disketi taktıktan sonra programı çalıştırdığınızda boot sektöre ve sektör 2 ye gerekn makine kodu yazılır.

./write

Bilgisayarı disketten boot ederek nasıl çalıştığını görebilirsiniz artık. Ana programı çeşitli BIOS interruptları kullanarak daha ilginç bir hale getirebilirsiniz.

daha fazla bilgi ve ayrıntılar için

http://linuxgazette.net/issue79/krishnakumar.html
http://www.cs.umbc.edu/courses/undergraduate/CMSC211/fall01/burt/tech_help/BIOSandDOS_Interrupts.html

Cuma, Nisan 07, 2006

BİLGİ TEKNOLOJİLERİNDE BAĞIMSIZLIK KAVRAMI ÖNE ÇIKIYOR.

Bilgi sitemlerinin tasarımında, değer yaratması, kullanıcıya hitab etmesi, malyetlerin belli bir aralık içinde kalması, varolan diğer sistemlerle uyumlu çalışması, güvenli olması gibi bir takım unsurlar dikkate alınır. Gelecekte üzerinde en çok durulacağını düşündüğüm konu ise sistemin parçalarının olabildiğince birbirinden bağımsız hale getirilmesi.

"Platform bağımsız" sözü, hepimizin duymaya alışık olduğumuz bir slogan. Bakkal bile artık platform bağımsız ekmek satışına başlayacak. Bu slogan bugüne kadar aynı kod parçalarının farklı ortamlarda aynı şekilde çalıştırılabilmesi olgusunu anlattı bize. Fakat bağımsızlık daha geniş bir kavram. Bugün gelinen noktanın bir geçmişi bir de geleceği var.

Mainframe denilen ve bütün veri akışının merkezinde bulunan, büyük işlem kapasiteli makinalardan sunucu istemci yapısına geçilmesiyle, bağımsızlık kavramının tohumları atılmıştı. Büyük parçalar küçük lokmalara bölünmüştü. Şimdi daha büyük ve karmaşık sistemlerin gelişebilmesi için daha fazla ayrışmaya ihtiyaç var. Bugün XML ve XSL teknolojileri bilginin ve onun sunuluş biçiminin birbirinden ayrılmasını sağladı. Gelecekte ASP, PHP, JSP gibi, HTML kodunu sunucu üzerinde üreten sistemler geçerliliğini yitirecek. Bunlar sunucu istemci yapısına geçişte görevlerini yerine getirdiler. Artık bilgi XML yoluyla, onun gösteriliş biçimi de XSL yoluyla iletiliyor. Bunlar istemci üzerinde tarayıcı tarafından bütünleştiriliyorlar. Bu sayede sunucu aynı sayıdaki isteğe daha az CPU zamanında cevap verebiliyor. Ağda taşınan verinin onda birine inmesiyle de trafikte rahatlama sağlanıyor.

Gelecekte internet altyapısının da sağlamlaşmasıyla birlikte, artık uygulamaların büyük bir kısmı sunucu istemci mantığında çalışacak gibi görünüyor. Hatta işletim sistemi servislerinin bile bu şekilde sağlanması olası. Büyük uygulamaların ortaya çıkmasıyla, yeni protokoller de gündeme gelebilir. Bugünlerde yaygın olan dosya paylaşımında olduğu gibi, gelecekte de, servis paylaşımı, CPU time paylaşımı gibi kavramlar karşımıza çıkabilir.

Bağımsızlık yolunda bugünkü geçişleri iyi yapabilirsek gelecekteki değişimlere de ayak uydurabiliriz sanırım. Tutucu olmamak gerekiyor.

Salı, Mart 28, 2006

UZAYDA YILDIZ SAVAŞLARI OLADURSUN, İŞ DÜNYASINDA STANDARD SAVAŞLARI YAŞANIYOR.

Bugünün endüstrisinde, çalışanları, ürünleri, hizmetleri, yönetim ve organizasyon şeklini ve diğer bir takım unsurları, üst düzey organizasyon ve makamların belirlediği standardlar şekillendirmekte. Yazılım sektöründe bu standardları, ISO (International Organization for Standardization), CMMI (Capability Maturity Model Integration), W3C (World Wide Web Consortium) vb. gibi organizasyonlar belirliyorlar.

Belli bir konunun veya detayın standard olarak kabul edilmesi sonucunda doğal olarak kimileri fayda kimileri de zarar görüyor. Yeniliğe kapalı, burnunun dikine giden, tekelci zihniyete sahip olan firmalar, zarar görme eğiliminde oluyorlar haliyle. Standard olma, kendi standardını kabul ettirme yarışı sırasında bilmediğimiz ayak oyunları da dönüyor olabilir. Ne de olsa rant fazla. Bağlantıdaki haberde MS un kendine ait yeni bir XML standardının yaygınlaşması için ISO da yapmaya çalıştığı bir kulis çalışmasından bahsediliyor yanlış anlamadıysam. (haber için buraya)

Literatüre "Box Model Hack" diye geçmiş ve bence fiyasko cinsinden bir olaya değineceğim. Olayı bana ilk anlatan Mehmet Sükan'ın aktardığına göre, bug ı bulan kişi daha önce MS da çalışmış bir Türk imiş ve bu böceğin Internet Explorer parserına(IE ın HTML sayfasını çözümleyen kısmı) şirket içi kullanım amacıyla kasten konulduğunu söylemiş. Yani bu durum farkedilmeseydi, herkes "div" ler için tarayıcı özel kod yazmaya devam edecekti (MS hariç).

"\"}\""; kodunun CSS dosyasına yerleştirilmesiyle, bir anda W3C standartlarına uygun parse etmeye başlayan Internet Explorer, internet sayfasını Firefox ve Operadaki gibi düzgün göstermeye başlıyor.

Burada eleştirdiğim şey, MS gibi büyük firmaların, piyasa hakimiyetini korumak uğruna endüstriye zarar vermeleri ve işgücü kaybına sebep olmaları. Hayatımızı kolaylaştırmak yerine zorlaştırmaları. MS a çamur atınca karizmatik olduklarını sanan arkadaşlar var, öyle bişey değil benimki. Gördüğümü çalıyorum:p Biz MS olsaydık bunu yapmazmıydık? Yapardık belki. Sorun, buna kimin dur diyeceği.

Pazartesi, Mart 27, 2006

ilk mesaj

Bu günlük işini tuttum. Başkalarının günlüklerinden faydalanıcaksam, benimde bişeyler yazmam lazım galiba. Bu ilk mesajımı şu sıralar yönetim krizi ve mali darboğaz içinde bulunan GALATASARAY'ıma armağan ediyorum(Bu da nedemekse).

Eğer sezon sonu şampiyon görürsem seni, bu mesaja dönüp bugünleri hatırlayacam.

Bu günlüğe, karşılaştığım ilginç ve bir okadar da teknik konuları yazmayı düşünüyorum. İlginç ve teknik kelimeleri yanyana gelirmi diceksiniz. Herkesin yorumu ayrı olur buna...