Showing posts with label Phân tích mã độc Malware. Show all posts
Showing posts with label Phân tích mã độc Malware. Show all posts

Friday, May 31, 2019

So sánh các ngôn ngữ trung gian IR!

Why did you choose VEX instead of another IR (such as LLVM, REIL, BAP, etc)?

We had two design goals in angr that influenced this choice:
  1. angr needed to be able to analyze binaries from multiple architectures. This mandated the use of an IR to preserve our sanity, and required the IR to support many architectures.
  2. We wanted to implement a binary analysis engine, not a binary lifter. Many projects start and end with the implementation of a lifter, which is a time consuming process. We needed to take something that existed and already supported the lifting of multiple architectures.
Searching around the internet, the major choices were:
  • LLVM is an obvious first candidate, but lifting binary code to LLVM cleanly is a pain. The two solutions are either lifting to LLVM through QEMU, which is hackish (and the only implementation of it seems very tightly integrated into S2E), or McSema, which only supported x86 at the time but has since gone through a rewrite and gotten support for x86-64 and aarch64.
  • TCG is QEMU's IR, but extracting it seems very daunting as well and documentation is very scarse.
  • REIL seems promising, but there is no standard reference implementation that supports all the architectures that we wanted. It seems like a nice academic work, but to use it, we would have to implement our own lifters, which we wanted to avoid.
  • BAP was another possibility. When we started work on angr, BAP only supported lifting x86 code, and up-do-date versions of BAP were only available to academic collaborators of the BAP authors. These were two deal-breakers. BAP has since become open, but it still only supports x86_64, x86, and ARM.
  • VEX was the only choice that offered an open library and support for many architectures. As a bonus, it is very well documented and designed specifically for program analysis, making it very easy to use in angr.
While angr uses VEX now, there's no fundamental reason that multiple IRs cannot be used. There are two parts of angr, outside of the angr.engines.vexpackage, that are VEX-specific:
  • the jump labels (i.e., the Ijk_Retfor returns, Ijk_Callfor calls, and so forth) are VEX enums.
  • VEX treats registers as a memory space, and so does angr. While we provide accesses to state.regs.raxand friends, on the backend, this does state.registers.load(8, 8), where the first 8is a VEX-defined offset for raxto the register file.
To support multiple IRs, we'll either want to abstract these things or translate their labels to VEX analogues.

Saturday, May 25, 2019

Tìm hiểu pyvex

Đang ý tưởng tìm hiểu cách phát hiện mã độc đa nền tảng, tức học các mẫu mã độc trên x86 mà có thể phát hiện mã độc trên mips, arm...
Một trong các hương đó là chuyển về mã trung gian chung
Một trong các phương pháp tốt dựa trên Valgrind và angr là Vex Il trên cơ sở PyVex https://github.com/angr/pyvex

Để giải quyết vấn đề đa kiến trúc, ngôn ngữ trung gian là cần thiết. Những điều khác biệt ở các kiến trúc chip khác nhau là:
1. Register names: tên và số lượng các thanh ghi của các kiến trúc chip khác nhau là khác nhau rất nhiều, tất nhiên có những nhóm phổ biến như thanh ghi chung, thành ghi stack, thanh ghi cờ điều kiện...
2. Memory access: có nhiều chế độ truy cập khách nhau như big/little-endian.
3. Memory segmentation
4. Instruction side-effects: nhiều lệnh có ảnh hưởng ngầm đến các lệnh khác.

Để giải quyết bài toán khác biệt này, IR hướng tới giải pháp trừu tượng hoá và tường minh hoá các hành động và trạng thái để có thể giải quyết đa số các trường hợp.

Các thành phần cơ bản của Vex:
  • Expressions. IR Expressions represent a calculated or constant value. This includes memory loads, register reads, and results of arithmetic operations.
  • Operations. IR Operations describe a modification of IR Expressions. This includes integer arithmetic, floating-point arithmetic, bit operations, and so forth. An IR Operation applied to IR Expressions yields an IR Expression as a result.
  • Temporary variables. VEX uses temporary variables as internal registers: IR Expressions are stored in temporary variables between use. The content of a temporary variable can be retrieved using an IR Expression. These temporaries are numbered, starting at t0. These temporaries are strongly typed (i.e., "64-bit integer" or "32-bit float").
  • Statements. IR Statements model changes in the state of the target machine, such as the effect of memory stores and register writes. IR Statements use IR Expressions for values they may need. For example, a memory store IR Statement uses an IR Expression for the target address of the write, and another IR Expression for the content.
  • Blocks. An IR Block is a collection of IR Statements, representing an extended basic block (termed "IR Super Block" or "IRSB") in the target architecture. A block can have several exits. For conditional exits from the middle of a basic block, a special Exit IR Statement is used. An IR Expression is used to represent the target of the unconditional exit at the end of the block.
t0 = GET:I32(16)           1
t1 = 0x8:I32                  2
t3 = Sub32(t0,t1)          3
PUT(16) = t3                 4
PUT(68) = 0x59FC8:I32        5

Vex có mấy loại biểu thức phổ biến:
1. hằng số như lệnh 2, đặt tên là "con"
2. đọc lấy giá trị lưu trong thanh ghi như lệnh 1, đặt tên là "get"

3. đặt giá trị cho thanh ghi, đặt tên là "put"
4. đọc giá trị từ thanh ghi tạm, ví dụ RdTmp(t10), đặt tên là "RdT"
5. ghi giá trị vào thanh ghi tạm, ví dụ t2= 0x12, đặt tên là "WdT"
6. đọc giá trị từ bộ nhớ, đặt tên là "LDle"
7. ghi gía trị vào bộ nhớ, đặt tên "STle"
8. lệnh điều kiện if, đặt tên là ite
9. các toán tử như lệnh 3, đặt tên theo toán tử, 
đang tìm danh sách các toán tử mà vex hỗ trợ

Trong 1 câu lệnh của vex có thể có thể gồm nhiều biểu thức, toán tử và toán hang. Việc trích chọn đặc trưng n-gram sẽ chọn 1 câu là 1 biểu thức đặc trưng có thứ tự ưu tiên, như vậy có 1 số biểu thức sẽ không xuất hiêện là "gram", ví dụ như: con, vì hằng số bao giờ cũng sẽ gắn vào thanh ghi nào đó nên lấy "gram" là gán thanh ghi. 











Monday, May 21, 2018

Tìm hiểu Audit trên linux!!!


Audit là một framework được tích hợp sẵn vào trong nhân linux, cung cấp thông tin chi tiết để thanh tra các hoạt động hệ thống một mức rất chi tiết. 
Nó có thể:
1. Giúp người dùng giám sát các tiến trình có nguy hiểm đến hệ thống hay hành vi xảy ra trên hệ thống một các chi tiết
2. Cung cấp chức năng lọc, xây dựng báo cáo để có thể trích xuất thông tin được audit log lưu lại. Chúng ta có thể filter theo các mục sau:

• User
• Group
• AuditID
• RemoteHostname
• RemoteHostAddress
• SystemCall
• SystemCallArguments • File
• FileOperations
• SuccessorFailure 
3. Việc Audit những sự kiện nội dung nào do người dùng định nghĩa để đảm bảo khả năng linh hoạt và hiệu quả hoạt động của hệ thống.


Auditing goals

By using a powerful audit framework, the system can track many event types to monitor and audit the system. Examples include:
  • Audit file access and modification
    • See who changed a particular file
    • Detect unauthorized changes
  • Monitoring of system calls and functions
  • Detect anomalies like crashing processes
  • Set tripwires for intrusion detection purposes
  • Record commands used by individual users

Components

The framework itself has several components:
Kernel:
  • audit: hooks into the kernel to capture events and deliver them to auditd
Binaries:
  • auditd: daemon to capture events and store them (log file)
  • auditctl: client tool to configure auditd
  • audispd: daemon to multiplex events
  • aureport: reporting tool which reads from log file (auditd.log)
  • ausearch: event viewer (auditd.log)
  • autrace: using audit component in kernel to trace binaries
  • aulast: similar to last, but instaed using audit framework
  • aulastlog: similar to lastlog, also using audit framework instead
  • ausyscall: map syscall ID and name
  • auvirt: displaying audit information regarding virtual machines
Files:

  • audit.rules: used by auditctl to read what rules need to be used
  • auditd.conf: configuration file of auditd

Thành phần của Audit
Các thành phần của Audit
File audit.rules chứa tập các luật tải vào trong hệ thống audit của nhân.
Audit.rules là file chứa các luật sẽ được tải khi khởi động audit daemon. Chương trình auditctl được sử dụng cho kịch bản khởi tạo hành vi này. cấu trúc luật gồm 3 phần: control, file và syscall.

Control

Control commands generally involve configuring the audit system rather than telling it what to watch for. These commands typically include deleting all rules, setting the size of the kernel's backlog queue, setting the failure mode, setting the event rate limit, or to tell auditctl to ignore syntax errors in the rules and continue loading. Generally, these rules are at the top of the rules file.

File System

File System rules are sometimes called watches. These rules are used to audit access to particular files or directories that you may be interested in. If the path given in a watch rule is a directory, then the rule used is recursive to the bottom of the directory tree excluding any directories that may be mount points. The syntax of these watch rules generally follow this format:
-w path-to-file -p permissions -k keyname
where the permission are any one of the following:
r
- read of the file
w
- write to the file
x
- execute the file
a
- change in the file's attribute
Watches can also be created using the syscall format described below which allow for greater flexibility and options. Using syscall rules you can choose between path and dir which is against a specific inode or directory tree respectively. It should also be noted that the recursive directory watch will stop if there is a mount point below the parent directory. There is an option to make the mounted subdirectory equivalent by using a -q rule.

System Call

The system call rules are loaded into a matching engine that intercepts each syscall that all programs on the system makes. Therefore it is very important to only use syscall rules when you have to since these affect performance. The more rules, the bigger the performance hit. You can help the performance, though, by combining syscalls into one rule whenever possible.
The Linux kernel has 4 rule matching lists or filters as they are sometimes called. They are: task, exit, user, and exclude. The task list is checked only during the fork or clone syscalls. It is rarely used in practice.
The exit filter is the place where all syscall and file system audit requests are evaluated.
The user filter is used to filter (remove) some events that originate in user space. By default, any event originating in user space is allowed. So, if there are some events that you do not want to see, then this is a place where some can be removed. See auditctl(8) for fields that are valid.
The exclude filter is used to exclude certain events from being emitted. The msgtype and a number of subject attribute fields can be used to tell the kernel which message types you do not want to record. This filter can remove the event as a whole and is not selective about any other attribute. The user and exit filters are better suited to selectively auditing events. The action is ignored for this filter, defaulting to "never".
Syscall rules take the general form of:
-a action,list -S syscall -F field=value -k keyname
The -a option tells the kernel's rule matching engine that we want to append a rule at the end of the rule list. But we need to specify which rule list it goes on and what action to take when it triggers. Valid actions are:
always
- always create an event
never
- never create an event
The action and list are separated by a comma but no space in between. Valid lists are: taskexituser, and exclude. Their meaning was explained earlier.
Next in the rule would normally be the -S option. This field can either be the syscall name or number. For readability, the name is almost always used. You may give more than one syscall in a rule by specifying another -S option. When sent into the kernel, all syscall fields are put into a mask so that one compare can determine if the syscall is of interest. So, adding multiple syscalls in one rule is very efficient. When you specify a syscall name, auditctl will look up the name and get its syscall number. This leads to some problems on bi-arch machines. The 32 and 64 bit syscall numbers sometimes, but not always, line up. So, to solve this problem, you would generally need to break the rule into 2 with one specifying -F arch=b32 and the other specifying -F arch=b64. This needs to go in front of the -S option so that auditctl looks at the right lookup table when returning the number.



Một số link tham khảo hay:
1. Mô tả rule của Audit https://jlk.fjfi.cvut.cz/arch/manpages/man/audit.rules.7
2. Cấu hình cơ bản Audit https://linux-audit.com/configuring-and-auditing-linux-systems-with-audit-daemon/
3. Sách về Audit https://www.suse.com/documentation/sled10/pdfdoc/audit_sp2/audit_sp2.pdf

Monday, March 5, 2018

Cơ bản về TFTP

Usage: tftp [OPTION]... HOST [PORT]

Transfers a file from/to a tftp server using "octet" mode.

Options:
        -l FILE Local FILE.
        -r FILE Remote FILE.
        -g      Get file.
        -p      Put file.


So try next:
tftp -g -r filename.txt 20.20.20.1

Sunday, September 17, 2017

LibVM

Một trong các giải pháp thu thập thông tin mức thấp của các máy ảo, LibVM là một công cụ được phát triển với nhiều triển vọng. LibVMI là thư viện thu thập thông tin đọc, ghi vào bộ nhớ từ máy ảo (VMs). Nhằm sử dụng thuận lợi hơn, LibVMI cung cấp chức năng truy cập thanh ghi CPU, dừng máy ảo, in dữ liệu và nhiều chức năng khác. LibVMI được thiết kế để làm việc độc lập nền tảng ảo hóa. LibVMI hỗ trợ chạy trên Xem và KVM, nó cũng hỗ trợ đọc bộ nhớ vật lý trong bản snapshot khi nó được lưu thành các file.
Tìm hiểu chi tiết tại http://libvmi.com
Phân tích sâu tại https://www.acsac.org/2007/papers/138.pdf
https://drakvuf.com/

Sunday, April 3, 2016

Tìm hiểu Linux Malware Detect

Nguồn

Linux Malware Detect

Description
Linux Malware Detect (LMD) là bộ quét malware cho Linux trên cơ sở bản quyền GNU GPLv2, nó được thiết kế để xử lý trong shared hosted environments. Nó dùng các tuyến dữ liệu từ hệ thống phát hiện xâm nhập để trích xuất malware được kích hoạt từ các cuộc tấn công hoặc tạo các signature. Thêm vào đó, các tuyến dữ liệu cũng đươc truyền từ người dùng với bộ kiểm tra đặc trưng LMD  và từ cộng đồng malware. Các chữ ký LMD dùng là MD5 và đối sánh mẫu dạng HEX, chúng cũng dễ dàng để trích xuất để sử dụng trong các công cụ phát hiện khác như ClamAV.
Động lực để phát triển LMD là những giới hạn trong các công cụ mã nguồn mở hoặc miễn phí cho phát hiện malware trong Linux có nhiều hạn chế. Nhieuf sản phẩm AV trên Linux tỏ ra nghèo nàn trong việc trích ghi lại nhật ký các mối đe dọa được phát hiện, đặc biệt với các mục tiêu là shared hosted environments.
Mối đe dọa trong môi trường lưu trữ được chia sẻ từ các sản phẩm AV tiêu chuẩn là phát hiện chủ yếu trojan cấp hệ điều hành, rootkits và virus file lây nhiễm truyền thống nhưng thiếu sự đa dạng ngày càng tăng của phần mềm độc hại ở cấp người dùng mà máy chủ như là một nền tảng tấn công lý tưởng.

Các sản phẩm thương mại cho việc phát hiện malware và khắc phục hậu quả trong môi trường đa người dùng chi sẻ vẫn còn hạn chế. Phân tích 8,883 mã băm malware, phát hiện 1.5, ngược lại 30 công cụ malware thương mại tạo ra một kết quả nghèo nàn.
DETECTED KNOWN MALWARE: 1951
% AV DETECT (AVG): 58
% AV DETECT (LOW): 10
% AV DETECT (HIGH): 100
UNKNOWN MALWARE: 6931

Sử dụng mã băn registry của đội phân tích malware Cymru,chúng ta thấy rằng 8,883 được xử lý với LMD 1.5, có 6,931 chiến 78% không được phát hiện bởi 30 phần mềm diệt mã độc thương mại hoặc các sản phẩm mã độc. Có 1,951 đe dọa được phát hiện ở mức trung bình, nếu tỉ lệ phát hiện mức cao và thấp tương ứng là 58% và 10%. Rõ ràng cần thiết phải có một dự án cho vấn đề này.
Đặc trưng:
– MD5 file hash detection for quick threat identification
– HEX based pattern matching for identifying threat variants
– statistical analysis component for detection of obfuscated threats (e.g: base64)
– integrated detection of ClamAV to use as scanner engine for improved performance
– integrated signature update feature with -u|–update
– integrated version update feature with -d|–update-ver
– scan-recent option to scan only files that have been added/changed in X days
– scan-all option for full path based scanning
– checkout option to upload suspected malware to rfxn.com for review / hashing
– full reporting system to view current and previous scan results
– quarantine queue that stores threats in a safe fashion with no permissions
– quarantine batching option to quarantine the results of a current or past scans
– quarantine restore option to restore files to original path, owner and perms
– quarantine suspend account option to Cpanel suspend or shell revoke users
– cleaner rules to attempt removal of malware injected strings
– cleaner batching option to attempt cleaning of previous scan reports
– cleaner rules to remove base64 and gzinflate(base64 injected malware
– daily cron based scanning of all changes in last 24h in user homedirs
– daily cron script compatible with stock RH style systems, Cpanel & Ensim
– kernel based inotify real time file scanning of created/modified/moved files
– kernel inotify monitor that can take path data from STDIN or FILE
– kernel inotify monitor convenience feature to monitor system users
– kernel inotify monitor can be restricted to a configurable user html root
– kernel inotify monitor with dynamic sysctl limits for optimal performance
– kernel inotify alerting through daily and/or optional weekly reports
– e-mail alert reporting after every scan execution (manual & daily)
– path, extension and signature based ignore options
– background scanner option for unattended scan operations
– verbose logging & output of all actions
Source Data:
The defining difference with LMD is that it doesn’t just detect malware based on signatures/hashes that someone else generated but rather it is an encompassing project that actively tracks in the wild threats and generates signatures based on those real world threats that are currently circulating.
There are four main sources for malware data that is used to generate LMD signatures:
– Network Edge IPS: Through networks managed as part of my day-to-day job, primarily web hosting related, our web servers receive a large amount of daily abuse events, all of which is logged by our network edge IPS. The IPS events are processed to extract malware url’s, decode POST payload and base64/gzip encoded abuse data and ultimately that malware is retrieved, reviewed, classified and then signatures generated as appropriate. The vast majority of LMD signatures have been derived from IPS extracted data.
– Community Data: Data is aggregated from multiple community malware websites such as clean-mx and malwaredomainlist then processed to retrieve new malware, review, classify and then generate signatures.
– ClamAV: The HEX & MD5 detection signatures from ClamAV are monitored for relevant updates that apply to the target user group of LMD and added to the project as appropriate. To date there has been roughly 400 signatures ported from ClamAV while the LMD project has contributed back to ClamAV by submitting over 1,100 signatures and continues to do so on an ongoing basis.
– User Submission: LMD has a checkout feature that allows users to submit suspected malware for review, this has grown into a very popular feature and generates on average about 30-50 submissions per week.
Signature Updates:
The LMD signature are updated typically once per day or more frequently depending on incoming threat data from the LMD checkout feature, IPS malware extraction and other sources. The updating of signatures in LMD installations is performed daily through the default cron.daily script with the –update option, which can be run manually at any time.
An RSS feed is available for tracking malware threat updates: http://www.rfxn.com/api/lmd
Detected Threats:
LMD 1.5 has a total of 10,822 (8,908 MD5 / 1,914) signatures, before any updates. The top 60 threats by prevalence detected by LMD are as follows:
base64.inject.unclassed     perl.ircbot.xscan
bin.dccserv.irsexxy         perl.mailer.yellsoft
bin.fakeproc.Xnuxer         perl.shell.cbLorD
bin.ircbot.nbot             perl.shell.cgitelnet
bin.ircbot.php3             php.cmdshell.c100
bin.ircbot.unclassed        php.cmdshell.c99
bin.pktflood.ABC123         php.cmdshell.cih
bin.pktflood.osf            php.cmdshell.egyspider
bin.trojan.linuxsmalli      php.cmdshell.fx29
c.ircbot.tsunami            php.cmdshell.ItsmYarD
exp.linux.rstb              php.cmdshell.Ketemu
exp.linux.unclassed         php.cmdshell.N3tshell
exp.setuid0.unclassed       php.cmdshell.r57
gzbase64.inject             php.cmdshell.unclassed
html.phishing.auc61         php.defash.buno
html.phishing.hsbc          php.exe.globals
perl.connback.DataCha0s     php.include.remote
perl.connback.N2            php.ircbot.InsideTeam
perl.cpanel.cpwrap          php.ircbot.lolwut
perl.ircbot.atrixteam       php.ircbot.sniper
perl.ircbot.bRuNo           php.ircbot.vj_denie
perl.ircbot.Clx             php.mailer.10hack
perl.ircbot.devil           php.mailer.bombam
perl.ircbot.fx29            php.mailer.PostMan
perl.ircbot.magnum          php.phishing.AliKay
perl.ircbot.oldwolf         php.phishing.mrbrain
perl.ircbot.putr4XtReme     php.phishing.ReZulT
perl.ircbot.rafflesia       php.pktflood.oey
perl.ircbot.UberCracker     php.shell.rc99
perl.ircbot.xdh             php.shell.shellcomm
Real-Time Monitoring:
The inotify monitoring feature is designed to monitor paths/users in real-time for file creation/modify/move operations. This option requires a kernel that supports inotify_watch (CONFIG_INOTIFY) which is found in kernels 2.6.13+ and CentOS/RHEL 5 by default. If you are running CentOS 4 you should consider an inbox upgrade with:
http://www.rfxn.com/upgrade-centos-4-8-to-5-3/
There are three modes that the monitor can be executed with and they relate to what will be monitored, they are USERS|PATHS|FILES.
       e.g: maldet --monitor users
       e.g: maldet --monitor /root/monitor_paths
       e.g: maldet --monitor /home/mike,/home/ashton
The options break down as follows:
USERS: The users option will take the homedirs of all system users that are above inotify_minuid and monitor them. If inotify_webdir is set then the users webdir, if it exists, will only be monitored.
PATHS: A comma spaced list of paths to monitor
FILE: A line spaced file list of paths to monitor
Once you start maldet in monitor mode, it will preprocess the paths based on the option specified followed by starting the inotify process. The starting of the inotify process can be a time consuming task as it needs to setup a monitor hook for every file under the monitored paths. Although the startup process can impact the load temporarily, once the process has started it maintains all of
its resources inside kernel memory and has a very small userspace footprint in memory or cpu usage.
See http://www.rfxn.com/appdocs/README.maldetect for more details on inotify monitoring.
Funding:
Funding for the continued development and research into this and other projects, is solely dependent on public contributions and donations. If this is your first time using this software we ask that you evaluate it and consider a small donation; for those who frequent and are continued users of this and other projects we also ask that you make an occasional small donation to help ensure the future of our public projects.


Saturday, April 2, 2016

Quét mã độc trong tập tin với VirusTotal

Mã độc trong các tập tin tải từ các nguồn trên internet luôn là vấn đề nguy hiểm cho người sử dụng máy tính. Làm sao để có thể kiểm tra và đảm bảo an toàn cho máy tính trước các loại mã độc đó? Bài viết sau sẽ hướng dẫn các bạn một cách đơn giản để có thể kiểm tra mã độc trên các tập tin và đường link.

Mã độc là gì?

Mã độc là những đoạn mã máy tính (code) được kẻ tấn công (hacker) viết ra nhằm vào các mục đích xấu như: ăn cắp thông tin tài khoản người dùng, theo dõi máy tính của người dùng, điều khiển máy tính từ xa,…

Cách mã độc hoạt động trong tập tin là như thế nào?

Thời trước thì mã độc thường được chèn vào trực tiếp trong code của một tập tin nào đó thường được người sử dụng tải về và sử dụng, ví dụ như các tập tin cài đặt phần mềm hay các tập tin nhạc MP3… Tức là khi bạn tại 1 tập tin mà bạn tưởng rằng an toàn (vì bạn thấy rằng bạn chỉ tải về duy nhất 1 tập tin) thì trong code của tập tin đó đã bị chèn mã độc, bộ code nguyên bản của nó đã bị thay đổi bởi hacker.
Trong những năm gần đây, hacker đã phát triển nó sang một hình thức khác đối với tập tin đó là sử dụng các tập tin liên kết với nhau. Điều này dễ dàng qua mắt các phần mềm antivirus (vì đối với cách chèn trực tiếp vào code của tập tin gốc như ở trên, antivirus có thể quét ra nhờ vào việc kiểm tra sự toàn vẹn của tập tin gốc); ví dụ, khi bạn tải 1 tập tin cài đặt phần mềm nào đó (CCleaner, FireFox,…) từ nguồn không phải nguồn gốc thì bạn sẽ tải về 1 “tập hợp” các tập tin. Có thể có nhiều tập tin trong tập hợp này nhưng nhìn chung đều có 3 loại tập tin trong này: tập tin phần mềm gốc, tập tin thư viện (dành cho mã độc), tập tin mã độc. Lúc này, khi người sử dụng bấm cài đặt tập tin phần mềm gốc thì nó sẽ gọi đến tập tin thư viện để thêm thư viện vào máy tính và tập tin thư viện khi được gọi sẽ lại gọi tiếp tập tin mã độc hoạt động. Như vậy, bạn có thể hình dung mã độc được gọi một cách dây chuyền, từ A -> B -> C; và điều này lý giải vì sao nó có thể qua mắt các trình antivirus vì khi quét từng tập tin 1 thì nó chỉ là những đoạn mã bình thường.

Cách mã độc hoạt động thông qua đường link

Mã độc qua đường link thì nó có một điểm khác một chút mà người sử dụng thường ít chú ý đó là ngay sau khi bạn nhấp vào đường link có chứa mã độc thì ngay lập tức mã độc đã được chèn vào trình duyệt hoặc tự động tải về máy tính của bạn để thực thi. Việc đề phòng các link có chứa mã độc là hết sức quan trọng, nhất là khi người sử dụng thường có thói quen lưu mật khẩu, tài khoản mail… trên trình duyệt.

VirusTotal là gì?

VirusTotal là một dịch vụ web miễn phí có chức năng phân tích và phát hiện mã độc trong các tập tin, đường link. Nó là một công ty con của Google, sử dụng các công cụ chống virus và quét website để nâng cao khả năng bảo mật cho ngành công nghiệp thông tin.
VirusTotal sử dụng rất nhiều các trang quét mã độc online và các trình phát hiện virus của nhiều hãng bảo mật khác nhau để đưa ra kết quả cuối cùng. Việc sử dụng VirusTotal để quét mã độc sẽ được trình bày ở dưới.

Quét tập tin

Tính năng đầu tiên của VirusTotal cho phép bạn quét mã độc trong các tập tin mà bạn đã tải về máy; các tập tin này có thể ở bất kì định dạng nào, từ tập tin nén .RAR cho đến các file cài đặt .EXE, các file nhạc.MP3, …
Đầu tiên, bạn truy cập đến website:
quet-ma-doc-trong-tap-tin-voi-virustotal-1
Bạn nhìn ở ngay giữa cửa sổ, bạn để tab File và bấm Choose File để tải lên tập tin cần quét mã độc. Trong ví dụ mình sẽ tải lên tấm hình ở trên trong bài viết để demo.
quet-ma-doc-trong-tap-tin-voi-virustotal-2
Sau khi tải lên tập tin, bạn chờ ít phút để hệ thống bắt đầu phân tích và đưa ra kết quả như hình dưới. Bạn để ý dòng kết quả Detection ratio: 0/57 – Tức là file được quét thông qua trình antivirus của 57 nhà cung cấp dịch vụ bảo mật (hoặc cung cấp dịch vụ quét mã độc online) và không có phát hiện mã độc nào ở tập tin hình này. Phần bên dưới kết quả chính là danh sách các trình antivirus mà VirusTotal sử dụng.
quet-ma-doc-trong-tap-tin-voi-virustotal-3

Quét đường link

Việc thực hiện quét đường link cũng tương tự như ở trên, bạn chọn tab URL, dán (hoặc gõ) đường link vào ô nhập của VirusTotal và bấm Scan it! ở dưới.
quet-ma-doc-trong-tap-tin-voi-virustotal-4
Hình dưới là thông báo cho biết đường dẫn website http://huongdanit.com đã từng được quét và không có phát hiện mã độc nào. Bây giờ bạn có thể chọn phân tích lại bằng việc bấm nút Reanalyse hoặc xem kết quả của lần quét trước bằng việc bấm nút View last analysis. Trong demo, mình chọn bấm Reanalyse để xem lần quét mới nhất (vì website thay đổi theo thời gian mà).
quet-ma-doc-trong-tap-tin-voi-virustotal-5
Và dưới đây là kết quả, cách xem thì nó tương tự như phần quét tập tin.
quet-ma-doc-trong-tap-tin-voi-virustotal-6

Tìm kiếm kết quả trong VirusTotal

Chức năng này của VirusTotal cho phép bạn tìm kiếm các kết quả có sẵn trong hệ thống dữ liệu của nó. Thay vì bạn phải tải tập tin lên và ngồi chờ nó phân tích (nếu tập tin lớn thì thời gian có thể sẽ lâu) thì bạn có thể tìm kiếm kết quả của tập tin đó nếu nó đã được quét (bởi một ai đó).
Bạn chuyển sang tab Search và gõ thứ bạn cần tìm vào ô tìm kiếm (có thể là đường link, tên tập tin, IP, tên miền…) và bấm Search it! như trong hình dưới.
quet-ma-doc-trong-tap-tin-voi-virustotal-7
Kết quả tìm kiếm. Nếu bạn để ý và so sánh với kết quả ở phần quét link thì nó có báo là “9 minutes ago“, tức là đường dẫn này được quét 9 phút trước và giờ nó chỉ hiện kết quả ra cho bạn xem mà không cần phân tích gì nữa.
quet-ma-doc-trong-tap-tin-voi-virustotal-8

Lời kết

Qua cách sử dụng những tính năng của VirusTotal thì hy vọng bạn có thể nâng cao khả năng tự bảo vệ thông tin cá nhân của mình trước những kẻ tấn công tiềm tàng trên mạng internet.
Trích http://huongdanit.com/