[Announcement] (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 04:38:36 (+0700) | #1 | 143030 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
Gửi các bạn của tôi, mới đây một lỗ hổng bảo mật cực kỳ nghiêm trọng được phát hiện trong hệ thống DNS, xương sống của toàn bộ Internet.
Tận dụng lỗ hổng này, kẻ xấu có thể tấn công để đánh cắp tất cả thông tin trên Internet của bạn, chẳng hạn như chiếm quyền điều khiển blog của bạn, chôm mật khẩu để đọc trộm email hay giả danh bạn để chat trên Yahoo! Messenger. Tôi nhắc
lại, khi khai thác thành công lỗ hổng này, kẻ xấu hoàn toàn có thể chiếm quyền điều khiển cuộc sống online của bạn.
Bài này được viết để cung cấp thêm cho các bạn những thông tin cần biết về lỗ hổng này, cũng như các phương pháp phòng chống tạm thời, cho đến khi có giải pháp triệt để từ phía các ISP ở VN.
---
1. Giới thiệu về DNS
DNS viết tắt của Domain Name System, là hệ thống quản lý việc ánh xạ giữa địa chỉ của máy tính trên Internet với tên của chúng. Trên Internet, mỗi máy tính đều được cấp một địa chỉ riêng biệt, thường được gọi là IP address, tạm dịch là địa chỉ IP (IP viết tắt của Internet Protocol, giao thức điều khiển việc trao đổi thông tin liên lạc giữa hai máy tính trên Internet).
Địa chỉ IP thường dài và khó nhớ, phù hợp với máy tính, không phù hợp với trí nhớ của con người (thường chỉ có khả năng nhớ được tối đa 7 số tại một thời điểm), do đó người ta mới đặt cho mỗi máy tính một cái tên dễ nhớ, chẳng hạn như www.vnexpress.net, www.yahoo.com, www.tuoitre.com.vn..., rồi sử dụng hệ thống DNS nói trên để ánh xạ những tên này vào các địa chỉ IP thực sự của chúng.
Khi bạn gõ www.vnexpress.net vào trình duyệt và nhấn enter, máy tính của bạn sẽ hỏi máy chủ DNS của bạn (thường là máy chủ do ISP của bạn quản lý) địa chỉ của www.vnexpress.net là bao nhiêu. Máy chủ DNS của bạn sẽ đi hỏi những máy chủ DNS khác trên Internet, để rồi cuối cùng trả lời cho máy tính của bạn rằng, www.vnexpress.net chính là tên miền của máy tính có địa chỉ IP là 210.245.0.22. Máy tính của bạn sẽ căn cứ vào địa chỉ này để liên lạc với www.vnexpress.net và lấy về nội dung mà bạn muốn xem.
Nếu bạn nào sống ở Mỹ hay các nước tiên tiến, thì có thể hiểu hệ thống DNS tương tự như hệ thống Postal/Zip Code, dùng để ánh xạ giữa zip code với địa chỉ nhà bạn.
2. Thông tin chi tiết về lỗi
Lỗi tấn công ở đây xảy ra khi máy chủ DNS của bạn bị kẻ xấu cố tình cung cấp thông tin sai lệch, khiến nó nhầm tưởng địa chỉ IP của www.vnexpress.net không phải là 210.245.0.22 mà lại là một địa chỉ IP của một máy tính nằm trong sự điều khiển của hắn. Thuật ngữ chuyên ngành gọi đây là DNS cache poisoning attack.
Khi đó, lúc bạn gõ www.vnexpress.net, thay vì nhận được nội dung từ trang VnExpress thật, bạn sẽ nhận được nội dung giả mạo từ phía kẻ xấu. Điều nay cực kỳ nguy hại, bởi lẽ áp dụng kỹ thuật này, kẻ xấu có thể mạo danh tất cả các website trên thế giới, từ Google, Yahoo, Microsoft, Paypal hay website của ngân hàng hay công ty chứng khoán của bạn. Khi đã mạo danh các website này rồi, kẻ xấu sẽ có thể đánh cắp được tất cả tài khoản cá nhân của bạn trên những website này.
Nếu bạn đọc kỹ, bạn sẽ thấy kẻ xấu không trực tiếp tấn công vào máy tính của bạn, mà tấn công vào máy chủ DNS của bạn (do ISP của bạn quản lý và cung cấp lại cho bạn sử dụng).
Thật tế dạng tấn công này đã được thực hiện từ khá lâu và cũng đã có nhiều cách phòng chống hiệu quả, nhưng những kết quả nghiên cứu của các chuyên gia trên thế giới gần đây cho thấy, kẻ xấu có thể thực hiện việc tấn công này một cách rất dễ dàng. Một số nguồn tin cho rằng chỉ cần dưới 10s là kẻ xấu có thể tấn công một máy chủ DNS chưa được sửa lỗi.
3. Tình trạng các máy chủ DNS ở VN
Ngay khi phát hiện ra lỗ hổng này, các chuyên gia trên thế giới đã làm việc với nhau để tìm ra các phương pháp sửa lỗi. Các hãng phần mềm đều đã có cung cấp bảng vá lỗi cho phần mềm máy chủ DNS của họ.
Tuy vậy, theo tìm hiểu của tôi, mặc dù các bảng vá đã được phát hành gần 2 tuần, nhưng tất cả các máy chủ DNS của các ISP VN như FPT, VDC, Vietel, SCTV...đều chưa được vá lỗi.
Điều này có nghĩa là tất cả những ai sử dụng dịch vụ Internet (dial-up, ADSL hay leased line) của các ISP này đều có thể bị tấn công như mô tả ở trên.
Theo thông tin từ VNCERT, Đội phản ứng nhanh về các sự cố máy tính VN, họ cũng đã có cung cấp thông tin cho các ISP từ vài tuần trước, nhưng không nhận được phản hồi. Theo tôi được biết, trong nay mai, sẽ có một thông cáo báo chí của VNCERT về vấn đề này, để yêu cầu sự hợp tác từ phía các ISP.
4. Giải pháp tạm thời
Giải pháp tạm thời là không sử dụng Internet nữa, cho đến khi nào có thông tin mới. Haha tôi nói đùa đó .
Giải pháp tạm thời là thay vì sử dụng máy chủ DNS của các ISP VN, các bạn hãy chuyển sang sử dụng máy chủ DNS của công ty OpenDNS. Các máy chủ của OpenDNS đã được vá lỗi và công ty này cũng cho biết họ đã sẵn sàng để phục vụ chúng ta.
Thông tin chi tiết về việc cấu hình máy tính sử dụng máy chủ DNS của OpenDNS, các bạn có thể xem ở đây. Nếu có khó khăn gì, cứ báo cho tôi biết, nếu tôi hỗ trợ được tôi sẽ hỗ trợ.
5. Thông tin tham khảo
http://www.kb.cert.org/vuls/id/800113
http://isc.sans.org/diary.html?storyid=4687
Trước khi kết thúc, tôi muốn nhấn mạnh lại lần nữa đây là một lỗ hổng cực kỳ nghiêm trọng và ảnh hưởng trực tiếp đến mỗi người trong chúng ta.
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 04:39:49 (+0700) | #2 | 143032 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
Riêng ở HVA, thì mình thử bàn thêm làm sao khai thác lỗ hổng này? Đây là một bài post có nhiều thông tin từ một trong những người biết được chính xác về lỗ hổng này:
0.
The cat is out of the bag. Yes, Halvar Flake figured out the flaw Dan Kaminsky will announce at Black Hat.
1.
Pretend for the moment that you know only the basic function of DNS — that it translates WWW.VICTIM.COM into 1.2.3.4. The code that does this is called a resolver. Each time the resolver contacts the DNS to translate names to addresses, it creates a packet called a query. The exchange of packets is called a transaction. Since the number of packets flying about on the internet requires scientific notation to express, you can imagine there has to be some way of not mixing them up.
Bob goes to to a deli, to get a sandwich. Bob walks up to the counter, takes a pointy ticket from a round red dispenser. The ticket has a number on it. This will be Bob’s unique identifier for his sandwich acquisition transaction. Note that the number will probably be used twice — once when he is called to the counter to place his order and again when he’s called back to get his sandwich. If you’re wondering, Bob likes ham on rye with no onions.
If you’ve got this, you have the concept of transaction IDs, which are numbers assigned to keep different transactions in order. Conveniently, the first sixteen bits of a DNS packet is just such a unique identifier. It’s called a query id (QID). And with the efficiency of the deli, the QID is used for multiple transactions.
2.
Until very recently, there were two basic classes of DNS vulnerabilities. One of them involves mucking about with the QID in DNS packets and the other requires you to know the Deep Magic.
First, QIDs.
Bob’s a resolver and Alice is a content DNS server. Bob asks Alice for the address of WWW.VICTIM.COM. The answer is 1.2.3.4. Mallory would like the answer to be 6.6.6.0.
It is a (now not) secret shame of mine that for a great deal of my career, creating and sending packets was, to me, Deep Magic. Then it became part of my job, and I learned that it is surprisingly trivial. So put aside the idea that forging IP packets is the hard part of poisoning DNS. If I’m Mallory and I’m attacking Bob, how can he distinguish my packets from Alice’s? Because I can’t see the QID in his request, and the QID in my response won’t match. The QID is the only thing protecting the DNS from Mallory (me).
QID attacks began in the olden days, when BIND simply incremented the QID with every query response. If you can remember 1995, here’s a workable DNS attack. Think fast: 9372 + 1. Did you get 9372, or even miss and get 9373? You win, Alice loses. Mallory sends a constant stream of DNS responses for WWW.VICTIM.COM. All are quietly discarded —- until Mallory gets Bob to query for WWW.VICTIM.COM. If Mallory’s response gets to your computer before the legitimate response arrives from your ISP’s name server, you will be wwwected where Mallory tells you you’re going.
Obvious fix: you want the QID be randomly generated. Now Alice and Mallory are in a race. Alice sees Bob’s request and knows the QID. Mallory has to guess it. The first one to land a packet with the correct QID wins. Randomized QIDs give Alice a big advantage in this race.
But there’s a bunch more problems here:
*
If you convince Bob to ask Alice the same question 1000 times all at once, and Bob uses a different QID for each packet, you made the race 1000 times easier for Mallory to win.
*
If Bob uses a crappy random number generator, Mallory can get Bob to ask for names she controls, like WWW.EVIL.COM, and watch how the QIDs bounce around; eventually, she’ll break the RNG and be able to predict its outputs.
*
16 bits just isn’t big enough to provide real security at the traffic rates we deal with in 2008.
Your computer’s resolver is probably a stub. Which means it won’t really save the response. You don’t want it to. The stub asks a real DNS server, probably run by your ISP. That server doesn’t know everything. It can’t, and shouldn’t, because the whole idea of DNS is to compensate for the organic and shifting nature of internet naming and addressing. Frequently, that server has to go ask another, and so on. The cool kids call this “recursion”.
Responses carry another value, too, called a time to live (TTL). This number tells your name server how long to cache the answer. Why? Because they deal with zillions of queries. Whoever wins the race between Alice and Mallory, their answer gets cached. All subsequent responses will be dropped. All future requests for that same data, within the TTL, come from that answer. This is good for whoever wins the race. If Alice wins, it means Mallory can’t poison the cache for that name. If Mallory wins, the next 10,000 or so people that ask that cache where WWW.VICTIM.COM is go to 6.6.6.0.
3.
Then there’s that other set of DNS vulnerabilities. These require you to pay attention in class. They haven’t really been talked about since 1997. And they’re hard to find, because you have to understand how DNS works. In other words, you have to be completely crazy. Lazlo Hollyfeld crazy. I’m speaking of course of RRset poisoning.
DNS has a complicated architecture. Not only that, but not all name servers run the same code. So not all of them implement DNS in exactly the same way. And not only that, but not all name servers are configured properly.
I just described a QID attack that poisons the name server’s cache. This attack requires speed, agility and luck, because if the “real” answer happens to arrive before your spoofed one, you’re locked out. Fortunately for those of you that have a time machine, some versions of DNS provide you with another way to poison the name server’s cache anyway. To explain it, I will have to explain more about the format of a DNS packet.
DNS packets are variable in length and consist of a header, some flags and resource records (RRs). RRs are where the goods ride around. There are up to three sets of RRs in a DNS packet, along with the original query. These are:
*
Answer RR’s, which contain the answer to whatever question you asked (such as the A record that says WWW.VICTIM.COM is 1.2.3.4)
*
Authority RR’s, which tell resolvers which name servers to refer to to get the complete answer for a question
*
Additional RR’s, sometimes called “glue”, which contain any additional information needed to make the response effective.
A word about the Additional RR’s. Think about an NS record, like the one that COM’s name server uses to tell us that, to find out where WWW.VICTIM.COM is, you have to ask NS1.VICTIM.COM. That’s good to know, but it’s not going to help you unless you know where to find NS1.VICTIM.COM. Names are not addresses. This is a chicken and egg problem. The answer is, you provide both the NS record pointing VICTIM.COM to NS1.VICTIM.COM, and the A record pointing NS1.VICTIM.COM to 1.2.3.1.
Now, let’s party like it’s 1995.
Download the source code for a DNS implementation and hack it up such that every time it sends out a response, it also sends out a little bit of evil — an extra Additional RR with bad information. Then let’s set up an evil server with it, and register it as EVIL.COM. Now get a bunch of web pages up with IMG tags pointing to names hosted at that server.
Bob innocently loads up a page with the malicious tags which coerces his browser resolve that name. Bob asks Alice to resolve that name. Here comes recursion: eventually the query arrives at our evil server. Which sends back a response with an unexpected (evil) Additional RR.
If Alice’s cache honors the unexpected record, it’s 1995 —- buy CSCO! —- and you just poisoned their cache. Worse, it will replace the “real” data already in the cache with the fake data. You asked where WWW.EVIL.COM was (or rather, the image tags did). But Alice also “found out” where WWW.VICTIM.COM was: 6.6.6.0. Every resolver that points to that name server will now gladly forward you to the website of the beast.
4.
It’s not 1995. It’s 2008. There are fixes for the attacks I have described.
Fix 1:
The QID race is fixed with random IDs, and by using a strong random number generator and being careful with the state you keep for queries. 16 bit query IDs are still too short, which fills us with dread. There are hacks to get around this. For instance, DJBDNS randomizes the source port on requests as well, and thus won’t honor responses unless they come from someone who guesses the ~16 bit source port. This brings us close to 32 bits, which is much harder to guess.
Fix 2:
The RR set poisoning attack is fixed by bailiwick checking, which is a quirky way of saying that resolvers simply remember that if they’re asking where WWW.VICTIM.COM is, they’re not interested in caching a new address for WWW.GOOGLE.COM in the same transaction.
Remember how these fixes work. They’re very important.
And so we arrive at the present day.
5.
Let’s try again to convince Bob that WWW.VICTIM.COM is 6.6.6.0.
This time though, instead of getting Bob to look up WWW.VICTIM.COM and then beating Alice in the race, or getting Bob to look up WWW.EVIL.COM and slipping strychnine into his ham sandwich, we’re going to be clever (sneaky).
Get Bob to look up AAAAA.VICTIM.COM. Race Alice. Alice’s answer is NXDOMAIN, because there’s no such name as AAAAA.VICTIM.COM. Mallory has an answer. We’ll come back to it. Alice has an advantage in the race, and so she likely beats Mallory. NXDOMAIN for AAAAA.VICTIM.COM.
Alice’s advantage is not insurmountable. Mallory repeats with AAAAB.VICTIM.COM. Then AAAAC.VICTIM.COM. And so on. Sometime, perhaps around CXOPQ.VICTIM.COM, Mallory wins! Bob believes CXOPQ.VICTIM.COM is 6.6.6.0!
Poisoning CXOPQ.VICTIM.COM is not super valuable to Mallory. But Mallory has another trick up her sleeve. Because her response didn’t just say CXOPQ.VICTIM.COM was 6.6.6.0. It also contained Additional RRs pointing WWW.VICTIM.COM to 6.6.6.0. Those records are in-bailiwick: Bob is in fact interested in VICTIM.COM for this query. Mallory has combined attack #1 with attack #2, defeating fix #1 and fix #2. Mallory can conduct this attack in less than 10 seconds on a fast Internet link.
|
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 05:08:25 (+0700) | #3 | 143037 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Cái này chị gái quê cũng đã có lần /hvaonline/posts/list/0/19736.html#117400.
Chị gái quê wrote:
2. Hacker rảnh wa' đi thay đổi pass để gây phiền phức
... trong khi đó Hacker có thể setup một DNS ma của mình sau đó config cái DNS ma đó vào modem để lợi dụng phishing hoặc pharming thì ko thấy nói tới.
|
|
Let's build on a great foundation! |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người ch |
24/07/2008 05:14:30 (+0700) | #4 | 143038 |
|
gamma95
Researcher
|
Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa">
Offline
|
|
quanta wrote:
Cái này chị gái quê cũng đã có lần /hvaonline/posts/list/0/19736.html#117400.
Chị gái quê wrote:
2. Hacker rảnh wa' đi thay đổi pass để gây phiền phức
... trong khi đó Hacker có thể setup một DNS ma của mình sau đó config cái DNS ma đó vào modem để lợi dụng phishing hoặc pharming thì ko thấy nói tới.
2 vấn đề khác nhau mà quanta |
|
Cánh chym không mỏi
lol |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 05:42:12 (+0700) | #5 | 143042 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
Ok, đầu tiên phải xác định cho rõ vấn đề nhé
Theo boom_jt hiểu sau khi đọc bài quote của mrro thì hiện tại quá trình tấn công có thể diễn ra như sau:
1. Lừa cho người sử dụng vào 1 trang web nào đó có chứa các thẻ IMG hay IFRAME hay 1 thẻ nào đó tương tự (hoặc dùng flash chẳng hạn)khiến browser này liên tục hỏi DNS của ISP địa chỉ IP của AAAAA.VICTIM.COM ... ZZZZZ.VICTIM.COM.
2. DNS của ISP tạo các request để hỏi tương ứng với các request AAAAA.VICTIM.COM ... ZZZZZ.VICTIM.COM này. Mỗi request có 1 QID được generate ngẫu nhiên
3. Lúc này kẻ tấn công liên tục tạo ra các response với 1 QID nào đó. Và trong vô số các request đó thì khả năng sẽ có 1 QID trùng với QID của kẻ tấn công. Trong trường hợp 1 response nào đó của kẻ tấn công là hợp lệ, thì CXOPQ.VICTIM.COM (như trong ví dụ) sẽ được tin rằng có IP tương ứng là 6.6.6.0.
Điều này không quan trọng, mà kèm theo đó là thông tin về IP của VICTIM.COM cũng được gửi kèm --> Vấn đề ở chỗ này: trước kia kẻ tấn công chỉ cần dựng lên 1 DNS server tại evil.com và gửi kèm thông tin về victim.com trong các response của nó. Với các fix hiện nay thì thông tin gửi kèm khác domain như thế sẽ không được chấp nhận, nhưng có vẻ như nếu thông tin gửi kèm là victim.com cho request về CXOPQ.VICTIM.COM thì lại được chấp nhận.
Không rõ boom_jt đã xác định đúng vấn đề chưa? Mong mọi người chỉ giáo |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 12:16:27 (+0700) | #6 | 143082 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
Kiểm tra DNS server của mình qua site này: http://www.doxpara.com/
Đây cũng chính là blog của người phát hiện ra lỗi này (Dan). |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 12:33:03 (+0700) | #7 | 143086 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
boom_jt wrote:
Ok, đầu tiên phải xác định cho rõ vấn đề nhé
Theo boom_jt hiểu sau khi đọc bài quote của mrro thì hiện tại quá trình tấn công có thể diễn ra như sau:
1. Lừa cho người sử dụng vào 1 trang web nào đó có chứa các thẻ IMG hay IFRAME hay 1 thẻ nào đó tương tự (hoặc dùng flash chẳng hạn)khiến browser này liên tục hỏi DNS của ISP địa chỉ IP của AAAAA.VICTIM.COM ... ZZZZZ.VICTIM.COM.
2. DNS của ISP tạo các request để hỏi tương ứng với các request AAAAA.VICTIM.COM ... ZZZZZ.VICTIM.COM này. Mỗi request có 1 QID được generate ngẫu nhiên
3. Lúc này kẻ tấn công liên tục tạo ra các response với 1 QID nào đó. Và trong vô số các request đó thì khả năng sẽ có 1 QID trùng với QID của kẻ tấn công. Trong trường hợp 1 response nào đó của kẻ tấn công là hợp lệ, thì CXOPQ.VICTIM.COM (như trong ví dụ) sẽ được tin rằng có IP tương ứng là 6.6.6.0.
Điều này không quan trọng, mà kèm theo đó là thông tin về IP của VICTIM.COM cũng được gửi kèm --> Vấn đề ở chỗ này: trước kia kẻ tấn công chỉ cần dựng lên 1 DNS server tại evil.com và gửi kèm thông tin về victim.com trong các response của nó. Với các fix hiện nay thì thông tin gửi kèm khác domain như thế sẽ không được chấp nhận, nhưng có vẻ như nếu thông tin gửi kèm là victim.com cho request về CXOPQ.VICTIM.COM thì lại được chấp nhận.
Không rõ boom_jt đã xác định đúng vấn đề chưa? Mong mọi người chỉ giáo
đọc kĩ hộ mình đoạn này nhé
Responses carry another value, too, called a time to live (TTL). This number tells your name server how long to cache the answer. Why? Because they deal with zillions of queries. Whoever wins the race between Alice and Mallory, their answer gets cached. All subsequent responses will be dropped. All future requests for that same data, within the TTL, come from that answer. This is good for whoever wins the race. If Alice wins, it means Mallory can’t poison the cache for that name. If Mallory wins, the next 10,000 or so people that ask that cache where WWW.VICTIM.COM is go to 6.6.6.0.
Đây mới chỉ là cách thứ nhất. Còn cách thứ 2 nữa , đoạn này hơi khó đọc. Chắc phải chờ Black Hat conf để xem bác này trình diễn thôi
|
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 12:52:59 (+0700) | #8 | 143094 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
Vậy mình cũng mời K4i đọc kĩ lại đúng đoạn đó xem ^^ Mình không thấy có mâu thuẫn gì so với giả thiết của mình cả.
Có thể giải thích thế này: DNS server đâu có hỏi VICTIM.COM, nó hỏi XXX.VICTIM.COM đấy chứ, trong cache của nó chưa hề có thông tin về VICTIM.COM cũng như TTL tương ứng, vì vậy vẫn poison đc
Tuy nhiên vẫn phải đặt lại câu hỏi: vậy nếu trong cache nó đã có sẵn thông tin về VICTIM.COM + TTL thì sao? Phải chăng kẻ tấn công phải hỏi DNS server cho đến khi TTL này hết hiệu lực? Hay nó còn yếu tố nào khác?
p/s: cũng nói thêm chút là theo mình hiểu thì khả năng thành công KHÔNG PHẢI LÀ 100%, thành công còn phụ thuộc vào nhiều yếu tố |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 13:14:51 (+0700) | #9 | 143096 |
catdog
Member
|
0 |
|
|
Joined: 13/12/2007 03:36:48
Messages: 3
Offline
|
|
K4i wrote:
Kiểm tra DNS server của mình qua site này: http://www.doxpara.com/
Đây cũng chính là blog của người phát hiện ra lỗi này (Dan).
Đã thử nhưng đâu có ra my DNS server, bác thử thế nào có chính xác ko ?
Mà hình như ko thể check đc DNS server thì phải!! |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 13:29:52 (+0700) | #10 | 143101 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
Mình cũng đã thử dùng web kiểm tra DNS Server trên, IP của DNS server thì có lúc đúng lúc không, cái này có thể tạm cho qua, nhưng khi kiểm tra rằng DNS Server tại cùng 1 IP có vulnerable hay ko thì có vẻ chưa đúng lắm.
Mình đọc code và đã thử 2 lần như sau:
(boom_jt và 144283 trên 2 url này có thể được coi là 2 chuỗi sinh "ngẫu nhiên" nhé)
Có thể thấy: với cùng 1 DNS 203.162.0.181: source port tại 2 trường hợp là khác nhau và (có vẻ) là ngẫu nhiên. Thế nhưng vẫn bị khẳng định là "appears vulnerable". Boom cho rằng việc kiểm tra này là hơi thiếu căn cứ |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người ch |
24/07/2008 13:38:11 (+0700) | #11 | 143104 |
|
maithangbs
Elite Member
|
0 |
|
|
Joined: 28/11/2007 21:39:53
Messages: 567
Location: Д.и.Р
Offline
|
|
catdog wrote:
K4i wrote:
Kiểm tra DNS server của mình qua site này: http://www.doxpara.com/
Đây cũng chính là blog của người phát hiện ra lỗi này (Dan).
Đã thử nhưng đâu có ra my DNS server, bác thử thế nào có chính xác ko ?
Mà hình như ko thể check đc DNS server thì phải!!
Bạn vào trang trên click vào dòng chữ "Check My DNS" ở bên phải ấy
Của tớ thì nó báo thế này
Your name server, at 203.162.4.199, appears to be safe, but make sure the ports listed below aren't following an obvious pattern.
|
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 13:42:35 (+0700) | #12 | 143106 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
Vừa check thử lại, nó lại ra 1 cái IP khác
Your name server, at 203.119.8.106, may be safe, but the NAT/Firewall in front of it appears to be interfering with its port selection policy. The difference between largest port and smallest port was only 52.
Please talk to your firewall or gateway vendor -- all are working on patches, mitigations, and workarounds.
Requests seen for e94df9bfbe90.toorrr.com:
203.119.8.106:32973 TXID=768
203.119.8.106:32984 TXID=33182
203.119.8.106:33003 TXID=37883
203.119.8.106:32964 TXID=57615
203.119.8.106:32951 TXID=40178
Có thể thấy là trang này kiểm tra source port của các request: Giống nhau -> vulnerable |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 14:00:43 (+0700) | #13 | 143107 |
catdog
Member
|
0 |
|
|
Joined: 13/12/2007 03:36:48
Messages: 3
Offline
|
|
Thank
Your name server, at 203.119.36.106, may be safe, but the NAT/Firewall in front of it appears to be interfering with its port selection policy. The difference between largest port and smallest port was only 30.
Please talk to your firewall or gateway vendor -- all are working on patches, mitigations, and workarounds.
Requests seen for ad365645ac61.toorrr.com:
203.119.36.106:37315 TXID=36481
203.119.36.106:37304 TXID=6581
203.119.36.106:37322 TXID=41909
203.119.36.106:37327 TXID=41476
203.119.36.106:37297 TXID=31940
Em thấy ở đây thông tin khá đầy đủ. http://www.robtex.com/dns |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 20:35:07 (+0700) | #14 | 143110 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
Mới có public exploit cho cái này: http://www.caughq.org/exploits/CAU-EX-2008-0002.txt.
Cái exploit này không được hiệu quả cho lắm (về mặt tốc độ), tuy vậy nó khá là thuận tiện bởi nó làm hết tất cả các công đoạn một cách tự động.
Sử dụng cái exploit này phải chú ý nhé, rất có thể đám Metasploit dùng nó để collect thông tin từ các server bị lỗi đó :-p. Ngoài ra nó cũng có một lỗi nhỏ, nên không thể dùng nó để khai thác các domain dạng www.xxx.com.vn. Tui có report cái lỗi này rồi, không biết đám Metasploit có sửa hay không.
Tui có viết một cái exploit bằng python, nhanh hơn nhưng bất tiện hơn, nay mai sẽ release.
To boom_jt, catdog: cái tool check đó nó không thể detect được các trường hợp DNS firewall đứng ngoài sau NAT device.
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 22:54:51 (+0700) | #15 | 143129 |
mfeng
Researcher
|
Joined: 29/10/2004 15:16:29
Messages: 243
Offline
|
|
Dựa theo bài quote của mrro (nguồn chính là từ một blog đăng lên ngày 21/7, nhưng ngay sau đó vài phút tác giả đã xóa đi) và tham khảo http://addxorrol.blogspot.com/2008/07/on-dans-request-for-no-speculation.html. Chỗ nào không chính xác nhờ mọi người chỉnh giúp
Có hai vấn đề cần thảo luận:
1. Sự không cẩn trọng trong thiết kế hoạt động DNS Server, dẫn tới bộ tạo ngẫu nhiên của một số trường trong DNS record không thực sự "ngẫu nhiên". Do đó xác suất xảy ra giả mạo gói tin DNS response có thể cao. Đây là vấn đề được cảnh báo từ trước, từ đó dẫn tới vấn đề thứ 2.
2. Attack vector để poisoning một DNS server như thế nào?
Vấn đề thứ nhất: lỗi thiết kế của DNS Server
Mỗi gói tin DNS request có chứa query id (QID) hay còn gọi là Transaction ID (TxID), được gửi tới DNS server thông qua một source-port (S-PORT). DNS Server trả lời bằng một gói tin DNS Response, chỉ được bên gửi chấp nhận khi:
- Có chứa cùng QID hay TxID
- Dest Port chính là S-PORT trong DNS Request.
Như vậy để giả mạo được DNS Response, Malory phải biết được 2 thông tin này, hoặc cách khác là gửi hàng loạt gói tin khi biết xác suất QID và S-PORT nằm trong khoảng nào. S-PORT theo lý thuyết là khá lớn (2^16 - 1024 port), tuy nhiên theo một số thông tin, S-PORT thường cố định trên một DNS server và thay đổi sau mỗi lần khởi động lại!!?
Vấn đề thứ 2: Attack vector để poisoning một DNS server
Kịch bản: Malory muốn "thuyết phục" Bob, một DNS Server (ns.bob.com), laf tên miền victim.com trỏ tới địa chỉ giả mạo là 6.6.6.6.
1. Malory gửi hàng loạt DNS request rác cho Bob (ns.bob.com): aaaa1.victim.com, aaa2.victim.com .... zzz9.victim.com
Điều này làm Bob không tìm thấy trong DNS cache của mình các tên miền trên. Bob phải hỏi DNS Server cấp cao hơn (Alice) về DNS server của các tên miền *.victim.com này.
2. Malory giả mạo các DNS Response từ Alice cho Bob, dùng cách thức đề cập ở vấn đề 1. DNS Response này chứa:
- *.victim.com trỏ tới 6.6.6.6
- Additional RRs có thông tin: victim.com trỏ tới 6.6.6.6
Cơ hội để Malory "thuyết phục" được Bob rằng victim.com trỏ tới 6.6.6.6 sẽ tăng lên khi số lượng gói tin giả mạo DNS Response lớn để thử các khả năng của QID và S-PORT (có thể xác định được trước S-PORT nếu giá trị này khá ổn định) theo kiểu tấn công birthday paradox attack.
Theo những gì quote của mrro phân tích ở trên, attack vector này có khả năng vô hiệu hóa các fix #1 (tăng cường tính ngẫu nhiên của QID) và #2 (bailiwick checking các trường RR). Cụ thể như thế nào mọi người hãy thảo luận. |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
24/07/2008 23:16:00 (+0700) | #16 | 143133 |
lamer
Elite Member
|
0 |
|
|
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
|
|
Mình xin giải thích chút đỉnh về cái lỗi mà Dan Kaminsky phát hiện:
Một máy chủ DNS có thể hoạt động ở 3 chế độ:
o Chế resolver hay còn được biết đến là forwarder tức là nhận yêu cầu của máy con rồi gửi yêu cầu này tới một máy chủ khác.
o Chế độ authoritative tức là máy chủ này là máy chủ có quyền trả lời câu truy vấn nhận được.
o Và cả hai chế độ này, tức máy chủ này vừa có thể là authoritative, vừa có thể là forwarder.
Cơ chế hoạt động như sau:
o Máy khách gửi truy vấn tới máy chủ nó biết (thông thường là máy chủ DNS của ISP)
o Máy chủ này thông thường không phải là authoritative nên nó sẽ gửi truy vấn này tới máy chủ authoritative
o Máy chủ authoritative này trả lời máy chủ thứ nhất
o Máy chủ thứ nhất nhận được trả lời và lưu trả lời này trong bộ nhớ của nó trong một khoảng thời gian do máy chủ authoritative xác định
o Sau đó máy chủ thứ nhất trả lời máy con
Để phân biệt truy vấn từ máy con này với máy con khác, truy vấn này với truy vấn khác trên cùng một máy con, giao thức DNS dùng 3 yếu tố sau:
o Địa chỉ IP của máy gửi truy vấn (dài 4 byte)
o Cổng nguồn của gói tin truy vấn (dài 16 bit)
o Và định danh truy vấn (query id) (dài 16 bit)
Để phân biệt trả lời từ máy chủ, máy con kiểm tra các yếu tố sau:
o Gói tin trả lời phải được nhận trong khoảng thời gian ngắn sau khi truy vấn được gửi đi
o Địa chỉ IP của máy gửi trả lời (dài 4 byte)
o Cổng đến của gói tin trả lời (dài 16 bit)
o Câu truy vấn được lập lại trong gói tin trả lời
o Kiểu truy vấn được lập lại trong gói tin trả lời
o Và định danh truy vấn (dài 16 bit)
Hãy quay lại cơ chế hoạt động của DNS:
Máy con A gửi truy vấn tới máy chủ forwarder B như sau:
- Truy vấn '1.example.com'
- Kiểu 'A'
- IP nguồn 1.1.1.1
- Cổng nguồn 1111
- IP đích 2.2.2.2
- Cổng đích 53
- Query ID 1234
Máy B gửi tiếp truy vấn này cho máy chủ authoritative C:
- Truy vấn '1.example.com'
- Kiểu 'A'
- IP nguồn 2.2.2.2
- Cổng nguồn 2222
- IP đích 3.3.3.3
- Cổng đích 53
- Query ID 4321
Máy chủ C trả lời B:
- Truy vấn '1.example.com'
- Kiểu 'A'
- Câu trả lời
- IP nguồn 3.3.3.3
- Cổng nguồn 53
- IP đích 2.2.2.2
- Cổng đích 2222
- Query ID 4321
Máy chủ B trả lời cho A:
- Truy vấn '1.example.com'
- Kiểu 'A'
- Câu trả lời
- IP nguồn 2.2.2.2
- Cổng nguồn 53
- IP đích 1.1.1.1
- Cổng đích 1111
- Query ID 1234
Như vậy, truy vấn, và kiểu truy vấn đều có thể xác định được. Để xác định địa chỉ IP của máy chủ authoritative C thì kẻ tấn công có thể dùng công cụ nslookup. Tóm lại, 3 yếu tố đã được xác định dễ dàng.
Do đó để ép một máy chủ forwarder nhận trả lời độc hại, 2 yếu tố quan trọng nhất cần được xác định là cổng đích, và query id.
Query ID là một số ngẫu nhiên dài 16bit, tức là có khoảng 65536 trường hợp.
Giá trị cổng cũng là một số dài 16-bit. Tuy nhiên, lỗi mà Dan Kaminsky phát hiện là giá trị cổng này không được ngẫu nhiên hóa!
Lỗi này dẫn đến việc yếu tố duy nhất còn lại để ép máy chủ forwarder nhận trả lời độc hại là query id. Nhưng vì miền giá trị quá bé nên giá trị này có thể bị vét cạn một cách rất nhanh chóng.
Kẻ tấn công A cần thực hiện các bước sau:
o Gửi vài chục truy vấn dỏm tới B, và theo dõi cổng mà B dùng để truy vấn máy chủ authoritative cấp cao hơn.
o Nếu cổng này là một hằng số (như trong ví dụ trên là 2222) thì A có thể kết luận rằng B sẽ dùng cổng 2222 trong các truy vấn nó gửi tới C, và do đó khi C trả lời thì cũng phải trả lời tới cổng này của B.
o Tìm địa chỉ của máy chủ authoritative C qua việc truy vấn kiểu NS tên miền.
o Gửi vài nghìn truy vấn cho các tên miền con, cùng một kiểu, tới B với query id khác nhau. Các tên miền con này nhất định phải ngẫu nhiên hóa để tránh việc B tự trả lời tự bộ nhớ của mình. Các truy vấn này sẽ ép B gửi tiếp tới C.
o Đồng thời gửi trả lời giả từ địa chỉ C, tới địa chỉ B, và cổng đã tìm được ở bước trên, lặp lại tên truy vấn, kiểu truy vấn, với query id ngẫu nhiên. Bước này tận dụng "tấn công ngày sinh" (birthday attack) để đạt hiệu quả cao.
o Lặp lại các bước trên nếu chưa đạt kết quả.
Nhưng nếu làm vậy thì kẻ tấn công chỉ có thể kiểm soát được một tên miền con. Rất may là giao thức DNS cho phép "cõng" (piggyback) theo các trả lời khác ngoài trả lời chính. Các phiên bản máy chủ DNS không kiểm tra các trả lời được cõng theo này. Nếu B chấp nhận trả lời gốc, thì B cũng sẽ chấp nhận cả những trả lời được cõng theo. Điều kiện duy nhất là trả lời được cõng theo này phải cho cùng tên miền. Vì lý do này, kẻ tấn công có thể cõng theo một trả lời cho kiểu NS, của cùng tên miền, để kiểm soát toàn bộ tên miền đó.
Mấu chốt của vấn đề là:
o Giá trị cổng không được ngẫu nhiên hóa dẫn tới việc truy vấn có thể bị giả dễ dàng
o Giao thức DNS cho phép cõng theo các trả lời khác và đa số các cài đặt hiện tại của giao thức này không kiểm tra các trả lời được cõng theo
Đây chỉ là phỏng đoán của Halvar Flake. Nó có phải là vấn đề thật sự mà Dan tìm được hay không thì chúng ta chỉ có thể chờ tới khi thông tin về nó được Dan chính thức công bố. Tuy nhiên, phỏng đoán này của Halvar quá chuẩn, và quá hiệu quả nên cho dù nó có phải là lỗi thực sự hay không thì đây cũng là một phát hiện tuyệt vời.
(đã thay đổi theo phát hiện của boom_jt ở dưới) |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
25/07/2008 00:09:24 (+0700) | #17 | 143150 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
mình thấy trong bài viết của lamer dường như có 1 chút vấn đề : PORT !
Bạn có chắc là source port B dùng để gửi request tới C trùng với source port B dùng để trả lời A ?
Nếu A gửi request từ 1.1.1.1:1111 tới 2.2.2.2:53 thì response phải là từ 2.2.2.2:53 (cổng 53 nhé) tới 1.1.1.1:1111 chứ.
Vấn đề để xác định source port của DNS server thì mình nghĩ kẻ tấn công phải dựng lên 1 DNS server, ép cho DNS server victim gửi request đến nó. Khi đó kẻ tấn công sẽ nắm được source port của victim. Chứ không phải là gửi truy vấn đến B và theo dõi source port trong câu trả lời (vì source port này hẳn phải là 53) |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
25/07/2008 00:25:43 (+0700) | #18 | 143155 |
lamer
Elite Member
|
0 |
|
|
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
|
|
boom_jt đọc tài liệu rất chuẩn và tỉ mỉ. Mình đã nói sai điểm đó. |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
25/07/2008 01:42:55 (+0700) | #19 | 143172 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
Đã có code Exploit lỗi này, tác giả là HDMoore (tác giả của Metasploit) và |)ruid . Xem ở http://blogs.zdnet.com/security/?p=1545.
Còn code exploit thì ở http://www.caughq.org/exploits/CAU-EX-2008-0002.txt. (Bác nào cho em hỏi là cái code này viết bằng ngôn ngữ gì thế Perl hay Ruby )
Theo tác giả thì hiện tại mất khoảng từ 1 -> 2 phút để cho hạ gục mục tiêu
In an IM exchange, Moore told me his exploit takes about a minute or two to poison a DNS cache but said he is working to improve it in version 2.0.
VNCert cũng đã ra thông báo về vấn đề này. Nhưng điều ngạc nhiên là thông báo này mới chỉ đề cập đến cách tấn công đầu tiên của lỗi này. Xem ở http://vncert.gov.vn/canhbao/cbnd/CBND08-003.htm
PS: post xong mới phát hiện ra mrro đã post từ đêm qua.
|
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
25/07/2008 02:32:04 (+0700) | #20 | 143177 |
|
vnsofts
Member
|
0 |
|
|
Joined: 23/07/2006 23:32:05
Messages: 47
Offline
|
|
Em cũng vừa check thử DNS của thằng cung cấp dịch vụ ptic.com.vn của VNPT và
A. Kết quả như sau: http://vietnamnet.vn/cntt/2008/07/795228/
B. Kich bản:
1. Tìm kiếm thông tin trong bảng IP Route Table
0.0.0.0 0.0.0.0 123.24.192.116 ppp-0 Indirect Dynamic
10.0.0.0 255.255.255.0 10.0.0.2 eth-0 Direct Dynamic
10.0.0.2 255.255.255.255 127.0.0.1 lo-0 Direct Dynamic
10.0.0.3 255.255.255.255 127.0.0.1 lo-0 Direct Dynamic
123.24.192.116 255.255.255.255 123.24.197.197 ppp-0 Direct Dynamic
123.24.197.197 255.255.255.255 127.0.0.1 lo-0 Direct Dynamic
127.0.0.0 255.0.0.0 127.0.0.1 lo-0 Direct Dynamic
203.162.0.181 255.255.255.255 123.24.192.116 ppp-0 Indirect Dynamic
203.210.142.132 255.255.255.255 123.24.192.116 ppp-0 Indirect Dynamic
2. Thử Trace Router của thằng Router 123.24.192.116 xem
Report: TraceRoute
Generated on 7/24/2008 at 12:31:32 PM
Tracing route to 123.24.192.116 over a maximum of 25 hops:
#1 10.0.0.2: TTL expired in transit, 0 ms
#2 123.24.192.116: Echo reply, 26 ms
Statistics: Out: 2; In: 2; Loss: 0%; Times(min/avg/max): 0/13/26
3. Tìm kiếm thông tin của IP Router
IP Router: 123.24.192.116
Login: xxxx/xxxx
Wizard Setup- ISP Parameters for Internet Access
Service Name: megavnn
User Name: xxxxxxxxxxx
Password: xxxxxxxxxx
IP Address
Obtain an IP Address Automatically
Static IP Address
Connection
Connect on Demand: Max Idle Timeoutsec
Nailed-Up Connection
4. Trỏ domain về IP của router
A and CNAME Records
Use A and CNAME records to manipulate host names. Learn more.
Type: Source: Destination: Actions:
A Record xxxxxx.net 123.24.219.116 Edit | Delete
A Record www.xxxxxx.net 123.24.219.116 Edit | Delete
CNAME Record *.xxxxxx.net
5. Cài đặt hệ điều hành Windows Datacenter lên
Cấu hình DNS, Exchange,...
setup IP cho mạng
C:\>ipconfig/all
Windows IP Configuration
Host Name . . . . . . . . . . . . : LAPSRV
Primary Dns Suffix . . . . . . . : xxxxxx.net
Node Type . . . . . . . . . . . . : Broadcast
IP Routing Enabled. . . . . . . . : Yes
WINS Proxy Enabled. . . . . . . . : Yes
DNS Suffix Search List. . . . . . : xxxxxx.net
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Intel(R) PRO/100 VE Network Connection
Physical Address. . . . . . . . . : 08-00-46-80-AC-6B
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 10.0.0.4
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.0.0.2
DNS Servers . . . . . . . . . . . : 127.0.0.1
6. Kiểm vào trong modem ADSL của mình để cấu hình Dinamic DNS và model của Router mình vừa quét được pass. Setup các thông tin về Wan, Lan,..
7. Thử truy cập domain xem đã truy cập đến server online chưa ->ok
8. Kiểm tra lại các thông tin về IP Router mình đã quét ở trên -> Kết quả ko đăng nhập vào được cũng như có thông tin như khi trước
C. Em xin trò chuyện cùng các bác về vấn đề này
1. Ông nào làm ở ptic.com.vn thì liên hệ cùng anh em để khắc phục sự cố trên
2. Anh em cùng thảo luận thêm về cách phòng thủ cũng như tấn công vào DNS
|
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
25/07/2008 09:23:40 (+0700) | #21 | 143244 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
Tui nghĩ bồ mfeng với anh lamer có nhầm lẫn. Cái này không phải là tấn công lợi dụng birthday paradox. Lý do là các query mà target gửi ra ngoài đều khác nhau (do câu hỏi khác nhau). Nếu lợi dụng được birthday paradox thì tấn công này có lẽ đã nhanh hơn rất nhiều rồi.
Công thức mà tui tính toán thế này:
Code:
P = 1 - (1 - X/2^16)^N, trong đó:
- X: số fake response ứng với một cặp (một query + một authorative DNS server)
- N: số query
Một vài con số tính toán:
* Với X = 10, N = 5000 là đã có thể có xác suất hơn 53% đoán đúng.
* Với X = 20, N = 5000 là đã có gần 96% đoán đúng
Tui cũng đã kiểm tra trong thực tế luôn, thấy với X = 10, và 5000 < N < 8000 là có thể thành công rồi với xác suất khá cao:
msf auxiliary(bailiwicked_host) > run
[*] Targeting nameserver 10.10.11.63 for injection of www.vnexpress.net. as 3.3.3.3
[*] Querying recon nameserver for vnexpress.net.'s nameservers...
[*] Got an NS record: vnexpress.net. 75809 IN NS dns010.d.register.com.
[*] Querying recon nameserver for address of dns010.d.register.com....
[*] Got an A record: dns010.d.register.com. 163883 IN A 216.21.236.10
[*] Checking Authoritativeness: Querying 216.21.236.10 for vnexpress.net....
[*] dns010.d.register.com. is authoritative for vnexpress.net., adding to list of nameservers to spoof as
[*] Got an NS record: vnexpress.net. 75809 IN NS dns026.c.register.com.
[*] Querying recon nameserver for address of dns026.c.register.com....
[*] Got an A record: dns026.c.register.com. 163880 IN A 216.21.235.26
[*] Checking Authoritativeness: Querying 216.21.235.26 for vnexpress.net....
[*] dns026.c.register.com. is authoritative for vnexpress.net., adding to list of nameservers to spoof as
[*] Got an NS record: vnexpress.net. 75809 IN NS dns131.a.register.com.
[*] Querying recon nameserver for address of dns131.a.register.com....
[*] Got an A record: dns131.a.register.com. 163879 IN A 216.21.231.131
[*] Checking Authoritativeness: Querying 216.21.231.131 for vnexpress.net....
[*] dns131.a.register.com. is authoritative for vnexpress.net., adding to list of nameservers to spoof as
[*] Got an NS record: vnexpress.net. 75809 IN NS dns238.b.register.com.
[*] Querying recon nameserver for address of dns238.b.register.com....
[*] Got an A record: dns238.b.register.com. 163878 IN A 216.21.232.238
[*] Checking Authoritativeness: Querying 216.21.232.238 for vnexpress.net....
[*] dns238.b.register.com. is authoritative for vnexpress.net., adding to list of nameservers to spoof as
[*] Attempting to inject a poison record for www.vnexpress.net. into 10.10.11.63:53...
[*] Sent 1000 queries and 40000 spoofed responses...
[*] Sent 2000 queries and 80000 spoofed responses...
[*] Sent 3000 queries and 120000 spoofed responses...
[*] Sent 4000 queries and 160000 spoofed responses...
[*] Sent 5000 queries and 200000 spoofed responses...
[*] Sent 6000 queries and 240000 spoofed responses...
[*] Sent 7000 queries and 280000 spoofed responses...
[*] Poisoning successful after 7250 attempts: www.vnexpress.net == 3.3.3.3
[*] Auxiliary module execution completed
--m
|
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
25/07/2008 11:35:19 (+0700) | #22 | 143257 |
lamer
Elite Member
|
0 |
|
|
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
|
|
Nếu không phải dùng birthday paradox thì trong cái exploit em đang dùng đó nó sẽ không gửi hàng loạt trả lời giả với QID trong một miền giá trị mà nó sẽ chỉ gửi một trả lời giả với một QID nhất định . Mục tiêu cuối cùng cũng chỉ là tăng khả năng trúng QID. |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
25/07/2008 13:25:40 (+0700) | #23 | 143280 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
lamer wrote:
Nếu không phải dùng birthday paradox thì trong cái exploit em đang dùng đó nó sẽ không gửi hàng loạt trả lời giả với QID trong một miền giá trị mà nó sẽ chỉ gửi một trả lời giả với một QID nhất định . Mục tiêu cuối cùng cũng chỉ là tăng khả năng trúng QID.
Đúng là mục tiêu cuối cùng là tăng khả năng đoán trúng QID, nhưng cái này không phải là birthday paradox.
Birthday paradox chỉ xảy ra khi một câu query của thằng attacker khiến thằng resolver gửi ra ngoài q > 1 câu query giống nhau, chỉ khác QID. Lúc này nhóm các câu trả lời giả của exploit sẽ có cơ hội *collision* với nhóm q câu trả lời, làm cho xác suất đoán trúng tăng đột biến.
Trong trường hợp này, q=1, nên không thể xảy ra birthday paradox ở đây. Xem thêm http://www.kb.cert.org/vuls/id/457875.
Việc exploit gửi ra một loạt trả lời giả với QID trong một miền giá trị chỉ nhằm mục đích tăng xác suất đoán trúng QID đối với câu query duy nhất mà resolver đã gửi ra ngoài trước đó. Xác suất đoán trúng lúc này sẽ là x/2^16, trong đó x là số lượng trả lời giả mà exploit gửi đối với mỗi câu query. Anh lưu ý là danh sách các QID giả này nó không thay đổi trong suốt thời gian exploit được chạy.
Mỗi lần gửi một query, xác suất đoán sai là 1-x/2^16. Các lần gửi query đều độc lập với nhau, cho nên xác suất đoán sai cho đến lần gửi query thứ n sẽ là (1-x/2^16)^n. Suy ra xác suất đoán đúng sẽ là 1 - (1-x/2^16)^n. Đó là công thức hồi nãy em có nói.
--m |
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
25/07/2008 21:45:16 (+0700) | #24 | 143299 |
lamer
Elite Member
|
0 |
|
|
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
|
|
Birthday paradox: Trong lớp có n nữ sinh và 1 nhân vật nam. Tỷ lệ để tìm được một nữ sinh có cùng ngày sinh với nhân vật nam này thấp hơn tỷ lệ tìm được hai nữ sinh có cùng ngày sinh.
Tức là thay vì giới hạn với một giá trị cụ thể (nhân vật nam) thì người ta dùng một miền giá trị (cả lớp nữ).
Trong trường hợp cụ thể của cái lỗi này, anh chưa thấy chỗ nào không dùng được giá trị QID ngẫu nhiên trong các câu trả lời giả.
Và những gì em nói ở trên cũng có lý của nó. Hehe. |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
26/07/2008 17:17:51 (+0700) | #25 | 143452 |
mrro
Administrator
|
Joined: 27/12/2001 05:07:00
Messages: 745
Offline
|
|
hôm nay đọc báo thấy mắc cười quá, các bác bkis lại làm trò khỉ nữa rồi. gì mà có cả phần mềm kiểm tra, vá lỗi đe dọa toàn cầu nữa? (cái title dễ gây nhầm lẫn, kiểu như bkis viết được phần mềm vá cái lỗi đe dọa toàn cầu, nghe hoành tráng quá).
haha đọc cái hướng dẫn của cái chương trình, tôi tự hỏi là kiểm tra cái này có phức tạp đến vậy không? gì mà vừa phải download chương trình, vừa phải cấu hình lung tung cả lên, rồi mới kiểm tra được? điên àh?
muốn kiểm tra ư? một lệnh là xong:
dig +short @your-dns-server porttest.dns-oarc.net txt
hoặc trên windows thì dùng lệnh này (vào start->run->cmd rồi gõ vào lệnh này)
nslookup -type=txt -timeout=30 porttest.dns-oarc.net your-dns-server
nếu kết quả trả về là GOOD thì an toàn, còn kết quả trả về là POOR thì nghĩa là máy chủ DNS vẫn chưa được vá.
bạn nào không biết địa chỉ máy chủ DNS của mình, thì cứ việc gõ lại hai lệnh trên nhưng bỏ phần your-dns-server
đi, ví dụ như:
$ dig +short porttest.dns-oarc.net txt
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"203.162.4.198 is GOOD: 26 queries in 6.6 seconds from 26 ports with std dev 20398.88"
thấy nó báo không? "203.162.4.198 is GOOD". nghĩa là DNS mà bạn đang sử dụng đã được vá lỗi. còn nếu báo là POOR thì bạn nên viết email thông báo cho ISP, yêu cầu họ vá lỗi.
tiện đây tôi cũng thông báo là máy chủ DNS của VDC, FPT đều đã được vá, các bạn có thể chuyển sang sử dụng nó thay cho OpenDNS.
trở lại chuyện của các bác bkis. tôi thấy các bác này luôn thích phải làm cho mọi chuyện trở nên bí hiểm, phức tạp hay hình sự hóa hay trinh thám hóa thì các bác mới chịu.
chẳng hạn như vụ lộ đề thi vừa rồi. haha các bác bkis đã viết hẳn một bài "bkis đã tìm ra vụ tìm đề toán trên mạng như thế nào?", cứ như thể đây là một phát hiện ghê gớm lắm vậy, trong khi toàn bộ chỉ là những trò mèo.
thử nhìn lại xem, một trung tâm như bkis, được Nhà nước đầu tư vài chục tỉ đồng, đã có những đóng góp gì về học thuật và kĩ thuật, ngoài những báo cáo theo kiểu trinh thám ba xu này?
buồn cười là, nhiều lần tôi gặp những người ngoại đạo, họ luôn nghĩ về các bác bkis như những chàng hiệp sĩ đại tài, kiểu như làm được những phần mềm vá những lỗi đe dọa toàn cầu, vẫn ngày đêm miệt mài chiến đấu bảo vệ toàn thể dân VN chống lại bọn tin tặc lộng hành. ngay cả bác Nhân còn tặng bằng khen cho bkis nữa là.
lại nhớ đến hiệp sĩ mù. chắc phải đổi lại thành hiệp sĩ chột, lừa cả xứ mù.
--m
|
|
http://tinsang.net
TetCon 2013 http://tetcon.org
Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html |
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
26/07/2008 22:29:50 (+0700) | #26 | 143463 |
|
Look2Me
Member
|
0 |
|
|
Joined: 26/07/2006 23:30:57
Messages: 235
Location: Tủ quần nào
Offline
|
|
Thực ra Mr.Dan chỉ cải tiến phương pháp tấn công mà thôi. Việc tấn công DNS cache poisioning kiểu Birthday Paradox vốn đã được biết tới từ lâu rồi.
Tool check của Dan viết hình như chưa chuẩn. Mọi người cứ test thử xem. (Dựng 1 DNS đã đc fix check vẫn báo là có lỗi ) T_T |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
26/07/2008 22:45:00 (+0700) | #27 | 143467 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
kì ghê, mình nghe mrro nói google đi xem liền
đây bài viết chuẩn trên bkav nè:
http://bkav.com.vn/tin_tuc_noi_bat/25/07/2008/2/1725/ --> "Bkis phát hành phần mềm kiểm tra lỗ hổng máy chủ DNS"
http://www.bkav.com.vn/home/default.aspx?Noidung=BkavDNSCheckGuide --> "HƯỚNG DẪN KIỂM TRA DNS SERVER SỬ DỤNG PHẦN MỀM BkavDNSCheck KIỂM TRA LỖ HỔNG DNS CACHE POISONING"
boom thấy có vẻ được đó chớ :"> mà họ viết đó thôi Lưu ý các bạn người dùng bình thường như mình thì dùng cái này ko có ích nha, vì phần mềm test dùng cho quản trị mạng thôi à ^^ |
|
|
|
|
[Question] Re: (Báo Động Đỏ) Lỗi bảo mật DNS đặc biệt nghiêm trọng , mọi người chú ý |
26/07/2008 23:15:48 (+0700) | #28 | 143474 |
hoanghono
Member
|
0 |
|
|
Joined: 28/06/2008 01:48:13
Messages: 6
Offline
|
|
mrro wrote:
hôm nay đọc báo thấy mắc cười quá, các bác bkis lại làm trò khỉ nữa rồi. gì mà có cả phần mềm kiểm tra, vá lỗi đe dọa toàn cầu nữa? (cái title dễ gây nhầm lẫn, kiểu như bkis viết được phần mềm vá cái lỗi đe dọa toàn cầu, nghe hoành tráng quá).
haha đọc cái hướng dẫn của cái chương trình, tôi tự hỏi là kiểm tra cái này có phức tạp đến vậy không? gì mà vừa phải download chương trình, vừa phải cấu hình lung tung cả lên, rồi mới kiểm tra được? điên àh?
muốn kiểm tra ư? một lệnh là xong:
dig +short @your-dns-server porttest.dns-oarc.net txt
hoặc trên windows thì dùng lệnh này (vào start->run->cmd rồi gõ vào lệnh này)
nslookup -type=txt -timeout=30 porttest.dns-oarc.net your-dns-server
nếu kết quả trả về là GOOD thì an toàn, còn kết quả trả về là POOR thì nghĩa là máy chủ DNS vẫn chưa được vá.
bạn nào không biết địa chỉ máy chủ DNS của mình, thì cứ việc gõ lại hai lệnh trên nhưng bỏ phần your-dns-server
đi, ví dụ như:
$ dig +short porttest.dns-oarc.net txt
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"203.162.4.198 is GOOD: 26 queries in 6.6 seconds from 26 ports with std dev 20398.88"
thấy nó báo không? "203.162.4.198 is GOOD". nghĩa là DNS mà bạn đang sử dụng đã được vá lỗi. còn nếu báo là POOR thì bạn nên viết email thông báo cho ISP, yêu cầu họ vá lỗi.
Tui cũng là quản trị mạng nên tui cũng hiểu về DNS. Theo tui hiểu thì Mrro chưa hiểu rõ về DNS rồi.
Cái cách thử của Mrro trình bày ở trên chỉ check được DNS Server cuối cùng trong chuối recursion đi hỏi 1 tên miền thôi.
Để giải thích đơn giản, tui copy đoạn output tui vừa test: ở đây tui test con DNS Server của tui: 203.162.X.X , vậy mà kết quả test lại trả lời về con 203.119.8.X. Con 203.119.8.X chính là con cuối cùng trong chuỗi DNS, và chính là con trực tiếp đi hỏi con porttest.dns-oarc.net, kết quả là chỉ check được xem con 203.119.8.X có lỗ hổng hay không, còn con DNS Server mà tui muốn test là con 203.162.X.X thì lại không test được !
Tóm lại, là cách test như Mrro chỉ là không xài được !
==============
C:\>nslookup -type=txt -timeout=30 porttest.dns-oarc.net 203.162.X.X
Server: XXX
Address: 203.162.X.X
Non-authoritative answer:
porttest.dns-oarc.net canonical name = z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net text = "203.119.8.X is POOR: 26 queries in 6.3 seconds from 22 ports with std dev 17.97"
c.b.a.pt.dns-oarc.net nameserver = ns.c.b.a.pt.dns-oarc.net
==============
Tương tự như vậy, cái tool của Dan trên blog của anh ta cũng không xài được vì tool đấy cũng chỉ check được DNS Server cuối cùng trong chuỗi đi hỏi tên miền ZZZ.toorrr.com
mrro wrote:
tiện đây tôi cũng thông báo là máy chủ DNS của VDC, FPT đều đã được vá, các bạn có thể chuyển sang sử dụng nó thay cho OpenDNS.
trở lại chuyện của các bác bkis. tôi thấy các bác này luôn thích phải làm cho mọi chuyện trở nên bí hiểm, phức tạp hay hình sự hóa hay trinh thám hóa thì các bác mới chịu.
chẳng hạn như vụ lộ đề thi vừa rồi. haha các bác bkis đã viết hẳn một bài "bkis đã tìm ra vụ tìm đề toán trên mạng như thế nào?", cứ như thể đây là một phát hiện ghê gớm lắm vậy, trong khi toàn bộ chỉ là những trò mèo.
thử nhìn lại xem, một trung tâm như bkis, được Nhà nước đầu tư vài chục tỉ đồng, đã có những đóng góp gì về học thuật và kĩ thuật, ngoài những báo cáo theo kiểu trinh thám ba xu này?
buồn cười là, nhiều lần tôi gặp những người ngoại đạo, họ luôn nghĩ về các bác bkis như những chàng hiệp sĩ đại tài, kiểu như làm được những phần mềm vá những lỗi đe dọa toàn cầu, vẫn ngày đêm miệt mài chiến đấu bảo vệ toàn thể dân VN chống lại bọn tin tặc lộng hành. ngay cả bác Nhân còn tặng bằng khen cho bkis nữa là.
lại nhớ đến hiệp sĩ mù. chắc phải đổi lại thành hiệp sĩ chột, lừa cả xứ mù.
--m
Về đoạn này thì tui thấy rõ là Mrro cay cú với BKIS quá rồi. Tui theo mấy cái link boom_jt post, BKIS họ nói như vậy là chuẩn mực rồi chứ, đâu thể chỉ trích? chỉ do một vài báo giật tít lại hơi quá thôi.
Còn về cái tool BKIS cung cấp, tui cũng dùng thử và thực hữu dụng, lúc đầu báo DNS Server của tui là không ok, tui lên Microsoft để update patch, check lại thì đúng là đã ok. Tool của BKIS phải cấu hình trên DNS Server cần test, nhưng đảm bảo là test được đúng DNS Server muốn test, chứ không như cách chỉ của Mrro hay tool của Dan trên blog. |
|
|
|
|
|