ssdeep

SSDEEP

Bir Dosya Nasıl Tanınır?

What is the File Identify?

28.01.2013

Mehmet Keçeci

ssdeep

Bu konu bir öneki MD5 Nedir? [1] makalemizin devamı olmasa da bir dosyayı tanımlamada benzer özelliklere sahiptir. Context Triggered Piecewise Hashing/CTPH (Bağlam Tetiklemeli Parçalı Adresleme) veya Fuzzy Hashing (Bulanık Adresleme) [2] 2006 yılında Andrews Trigdell [3, 4] tarafından ortaya konularak her hangi bir kötü yazılım veya e-mailleri tanıyarak bunları engelleyebilme yeteneğini ortaya koymuş ve SpamSum e-mail detektörünü geliştirmiştir [5].

ssdeep is a program for computing context triggered piecewise hashes (CTPH). Also called fuzzy hashes, CTPH can match inputs that have homologies. Such inputs have sequences of identical bytes in the same order, although bytes in between these sequences may be different in both content and length.” Jesse Kornblum

Hashing: Belirli algoritmalara dayalı yapılan adresleme.

Bir kriptografik adresleme fonksiyonu (cryptographic hash function) kaynak kodumuzda oluşabilecek en küçük değişikliklerin sonucu olarak çıktı adreslemelerimizinde değişmesidir. Bunu MD5 Nedir? makalemizde örnek vererek açıklamıştık.

Bir dosyayı, programı vs. tanımlamak için belirli ölçülerimiz vardır?

Dosya Tanımlama Ölçülerimiz:

  1. Dosyanın uzantısı/extention (.exe, .doc, .xml, ppsx, vs.)

  2. Dosyanın hash değerleri (md5, sha-1, crc32, elf, vs.)

  3. Dosyanın Bulanık Adreslemesi/Fuzzy Hashing (SSDEEP)

  4. TrID, TrIDScan (Şu anda 5007 dosya tanımlanmış)

  5. Dosyanın Exif Araç Bilgileri (Exif Tool)

  6. Dosya Tanımlayıcıları/ File Identifier, Verifier

  7. Dosya hakkındaki genel bilgiler (boyut/size, atributes, DOS adı/name, oluşturulma tarihi/created, en son değişiklik tarihi/last modified, en son açılma tarihi/last access, kaç kere değiştirildiği, yazıcıya gönderilme tarihi, Hash değerleri, ilk tespit tarihi, yazarı vs.)

Tamamen iki farklı dosya için normal hash karşılaştırmamız doğru sonuç veriyor.

Fakat içinde küçük bir değişiklik yaptığımızda bunları tamamen farklı iki dosya olarak görmektedir. Fakat bizim istediğimiz bu değildir. Aynı dosyanın değiştirildiğini ve bunun ne kadarının değiştirildiğini öğrenmek istiyoruz. Hatta ve hatta nelerin değiştirildiğini dahi bulmak istiyoruz.

İşte bu problemin çözümü için SSDEEP/ Bulanık Hash [6] hesaplaması geliştirilmiştir. Bu dosyanın içini farklı bölümlerini algroitmalayarak içinde oluşan değişikliklerini ve bu değişikliklerin nerelerde hangi oranlarda olduğunu bulmaya yarayan bir algoritmadır. PHP (Personal Home Page) kodu içinde bu iki dosyanın karşılaştırılma kodu int ssdeep_fuzzy_compare ( string $signature1 , string $signature2 ) [7] veya bir dosyanın ssdeep kodunu yine PHP içerisinde hesaplanması string ssdeep_fuzzy_hash ( string $to_hash ) [8] kodlarımız sayesinde yapılmaktadır. Sakın PHP bunu doğrudan yaptığını zannetmeyin. Bu kodu işletebilmesi için genelde C, C++, Pyhton gibi programlama dillerinde bunların algoritmaları çıkarıldıktan sonra Windows’ta .dll, Unix, Linux’te .so uzantılı dosyalar içinde derlenmiş ve kullanıma hazır hale getirilmişlerdir. Fuzzy komutu için php.ini dosyasında herhangi bir düzenleme gerekmemektedir. Fakat PECL’in kurulması gerekir [9, 10, 11]. Bunun API’si için [12]’e bakınız.

php.ini

Fuzzy için dil kodları dosyası

Her iki fuzzy.dll ve fuzzy1.dll’yi ssdeep’te karşılaştırdığımızda %100 aynı olduğunu gördük.

ssdeep

Hiç bir adresleme kullanmadan bir karşılaştırma yaptığımızda çok az değişen dosyaları aynı zannedebilirdik.

Her iki fuzzy.dll ve fuzzy3.dll’yi ssdeep’te karşılaştırdığımızda %100 aynı olduğunu gördük.

ssdeep -h
ssdeep version 2.9 by Jesse Kornblum
Copyright (C) 2012 Kyrus

Usage: ssdeep [-m file] [-k file] [-dpgvrsblcxa] [-t val] [-h|-V] [FILES]
-m – Match FILES against known hashes in file
-k – Match signatures in FILES against signatures in file
-d – Directory mode, compare all files in a directory
-p – Pretty matching mode. Similar to -d but includes all matches
-g – Cluster matches together
-v – Verbose mode. Displays filename as its being processed
-r – Recursive mode
-s – Silent mode; all errors are supressed
-b – Uses only the bare name of files; all path information omitted
-l – Uses relative paths for filenames
-c – Prints output in CSV format
-x – Compare FILES as signature files
-a – Display all matches, regardless of score
-t – Only displays matches above the given threshold
-h – Display this help message
-V – Display version number and exit

Bir *.webp dosyasını tanıyalım:

SHA-1: 5816e6f2f3ddaa599751c59e00373cd90b4b6f4f

SHA256: 1aa35f4ca2f53c963d930573cf771f4e216f3e5abbdc06f9e07c0ca2666fefd0

MD5: aec6cbbeab6e7a59ed598d3fb4928a64

CRC32: 036d7e26

 

ssdeep:

ssdeep,1.1–blocksize:hash:hash,filename

24:fquKM0XxDuLHeOWXG4nGIgb6p6NA7MzuVVgxyIUmyAqESpEa4UOf7Qi5Tq3AVRM9:f1ruEjNtA7M6fKy/7X4Hf7Qi9owZLS

 
TrID [13]

JFIF JPEG Bitmap (50.0%)
JPEG Bitmap (37.4%)
MP3 audio (12.4%)

ExifTool [14]

MIMEType: image/jpeg
YResolution: 72
BitsPerSample/Bit depth : 8 bits
ImageSize: 90×109
FileType/Format: JPEG
ResolutionUnit: inches
ColorComponents: 1
JFIFVersion: 1.01
XResolution: 72
Image Width: 90 pixels
EncodingProcess: Baseline DCT, Huffman coding
Image Height: 109 pixels
Compression mode : Lossy
Dosya Boyutu: /File size : 1.41 KB/1445 Byte
Tag: jpeg
File Extension: .webp
Developer: JPEG
Hex: FF D8 FF

ExifTool’da komut satırı ve çıktısı:

X:\>exiftool.exe md5.zip
ExifTool Version Number : 9.15
File Name : md5.zip
Directory : .
File Size : 25 kB
File Modification Date/Time : 2010:02:17 10:25:42+02:00
File Access Date/Time : 2013:01:28 22:25:27+02:00
File Creation Date/Time : 2013:01:28 22:25:27+02:00
File Permissions : rw-rw-rw-
File Type : ZIP
MIME Type : application/zip
Zip Required Version : 20
Zip Bit Flag : 0
Zip Compression : Deflated
Zip Modify Date : 2007:02:18 13:14:20
Zip CRC : 0x31a11c83
Zip Compressed Size : 23750
Zip Uncompressed Size : 101716
Zip File Name : md5.exe

Tanım/Description:

JPG uzantılı dosyalar kayıplı sıkıştırma (lossy compression) metodu kullanırlar. Fakat kullanım alanları çok geniş ve yaygındır. Özellikle internet sayfalarının hızlı açılması için kullanımı yaygındır. Diğer kullanım alanları kaliteye gerek duyulmadığı veya alandan tasarruf amaçlı kullanılırlar.

Küçük bir değişiklik yaptığımızda sadece bir ssdeep adreslemesinin değiştiğini görmekteyiz. Buda bize değişim oranını vermektedir. Yani bu dosya en az %99 oranında benzer ama %100 olmadığından orijinal dosya değildir.

SHA-1: 15fff08ec250b083decbe6dd17e623e87070add5

SHA256: 3f0e5d08f02dd3b35c8c27928cf96eff93360d621cee5c01018ed388578f0b55

MD5: a06fc5d6580cef1036fb8ed6fe635a47

CRC32: ff86d9cf  bu adresleme tamamen değiştiğinden değişme yeri ve oranını göremeyiz. Fakat ssdeep‘te bunu görebiliriz.

Dosya Boyutu: 1444 Byte (yalnızca bir karakter silinerek 1 Byte düşürülmüştür.)

ssdeep:

24:fquKM0XxDuLHeOWXG4nGIgb6p6NA7MzuVVgxyIUmyAqESpEa4UOf7Qi5TqJAVRM9:f1ruEjNtA7M6fKy/7X4Hf7Qi9EwZLS

Boyut: 1444 Byte
Oluşturulma/Created: ‎28 ‎Ocak ‎2013
Son Düzenleme/Modified: ‎28 ‎Ocak ‎2013
Son Ulaşım:/Accessed: ‎28 ‎Ocak ‎2013

o–>E‘ye dönüşmüştür. Yapılan değişiklik çok azdır. Fakat artık aynı dosya değildir. Ayrıca bu tür konuların önemi için [15, 16, 17, 18, 19, 20]’e kaynaklarına bakabilirsiniz.

Kaynaklar/References:

  1. http://www.mehmetkececi.com/index.php?option=com_content&view=article&id=300:what-is-the-md5&catid=78:mehmet-kececi&Itemid=1260
  2. http://php.net/manual/en/book.ssdeep.php
  3. http://www.sciencedirect.com/science/article/pii/S1742287606000764
  4. http://dfrws.org/2006/proceedings/12-Kornblum.pdf
  5. http://www.samba.org/ftp/unpacked/junkcode/spamsum/README
  6. http://ssdeep.sourceforge.net
  7. http://php.net/manual/en/function.ssdeep-fuzzy-compare.php
  8. http://php.net/manual/en/function.ssdeep-fuzzy-hash.php
  9. http://pecl.php.net
  10. http://php.net/manual/en/install.pecl.php
  11. http://pecl.php.net/package/ssdeep
  12. http://treffynnon.github.com/php_ssdeep
  13. http://mark0.net/soft-trid-e.html
  14. http://owl.phy.queensu.ca/~phil/exiftool
  15. http://www.mehmetkececi.com/index.php?option=com_content&view=article&id=302:blackhole-exploit-kit&catid=78:mehmet-kececi&Itemid=1263
  16. http://www.mehmetkececi.com/index.php?option=com_content&view=article&id=289&Itemid=1170
  17. http://www.mehmetkececi.com/index.php?option=com_content&view=article&id=297&Itemid=1210
  18. http://www.mehmetkececi.com/index.php?option=com_wrapper&view=wrapper&Itemid=1256
  19. http://www.mehmetkececi.com/index.php?option=com_wrapper&view=wrapper&Itemid=1257
  20. http://www.mehmetkececi.com/index.php?option=com_wrapper&view=wrapper&Itemid=1258
(Visited 65 times, 1 visits today)
Mehmet Keçeci on FacebookMehmet Keçeci on GithubMehmet Keçeci on GoogleMehmet Keçeci on InstagramMehmet Keçeci on LinkedinMehmet Keçeci on PinterestMehmet Keçeci on RssMehmet Keçeci on TwitterMehmet Keçeci on VimeoMehmet Keçeci on WordpressMehmet Keçeci on Youtube
Mehmet Keçeci
Physicist
Mehmet Keçeci (Kececi, Kecheci)
PhD. Student in Physics, 2001-3+2018 (Thesis Term): Fizik doktora öğrencisi, Tez dönemi.
Master of Science in Physics (MSc.): Fizik Bilim Uzmanı (1998-2001)
Occupational Safety Specialist, OSS: İş Güvenliği Uzmanı, İGU, 2016
Portion of Lesson is finished 2001-2003 (PhD. Doctorate - Physics)
Physicist: Fizikçi

Mefumetto Kecheji
メフメット ケチェジ
めふめつと けちえじ
محمت (محمد) كچه‌جى
Мехмет Кечеджи

Research Areas: Quantum Field Theory (QFT), Instanton, Conformal Field Theory (CFT), High Energy Physics (HEP), Particle Physics, High Magnetic Fields, Hydrocarbons Behaviour, Biophysics, Astrophysics, Cosmology, Cosmogony, Bioinformatics, Nanotechnology, Programming Languages, Web Servers, Information Technology (IT), Software, Operating Systems (OSs), History of Science and Technology, Philosophy of Science, Ethics, Science and Technology Management, Leadership, Morals and Religion, Interdisciplinary Relationship, Health Information System (HIS), Occupational Safety, Data Bases, Big Data, Superconductivity, Medical Physics, Radioactivity, Internet of Things (IoTs), Mathematical Physics, Electronics, Intelligent Systems, Education, Physics Education, Philosophy of Physics, Book/e-Book Publish & Edit, CMS, SEO, E-Learning, LMS, L&D, Open Digital Badges, Blockchain, Cryptocurrency.

Affiliation Scientific Journals, Duty at International Scientific Publications: Reviewer

International Scientific Programs: Member of Technical Program Committee (TPC)

International Papers: 2n-Dimensional at Fujii Model Instanton-Like Solutions and Coupling Constant's Role between Instantons with Higher Derivatives. Turkish Journal of Physics
Turk. J. Phys., 35, (2011), 173-178. Mehmet Keçeci
DOI: 10.3906/fiz-1012-66

Online CV (Keçeci Model CV)
1. https://issuu.com/hiperteknoloji/docs/cv-mk (English: Keçeci Model CV, updated: Güncellenen)
2. https://www.kotobee.com/ebook/mkececi#/loading (English: Keçeci Model CV)
3. https://education.microsoft.com/Story/Lesson?token=v9eGC (English)
4. https://education.microsoft.com/Story/Lesson?token=k0o4P (Turkish)
5. https://1drv.ms/o/s!AhhtzpemsW4-hGelP3_wPK3xU9al (English)
6. https://1drv.ms/o/s!AhhtzpemsW4-hGvMecE0bYVR2I3N (Turkish)
7. https://www.youtube.com/watch?v=jq2r7-suRkw
8. https://vimeo.com/218462945
9. http://fliphtml5.com/bookcase/fxth
10. https://mix.office.com/watch/iqdf24j1efu4
11. https://docs.google.com/presentation/d/1ZR8BapjoTxcyuY-YuPFUUZvtHTiJRawEFNsn0f2XjX4/pub
12. https://sway.com/2CKhCaImWnWPz83I
13. https://docs.com/kececi/6848/kececi-model-cv
14. https://www.slideshare.net/hiperteknoloji/kececi-model-cv
15. https://issuu.com/hiperteknoloji/docs/cv-mk
16. https://education.microsoft.com/Status?token=EeDJmtL6

Leave a Comment