|
|
pwd wrote:
Tôi hiện đang làm trong 1 công ty về lĩnh vực thanh toán, banking. Từ khi đi vào hoạt động đến giờ thì công ty chủ trương là đẩy mạnh việc phát triển các sản phẩm để đáp ứng nhu cầu kinh doanh. Đến thời điểm hiện tại sau một thời gian phát triển, xây dựng hệ thống, vận hành (cỡ 3 năm) tôi luôn có 1 băn khoăn là liệu hệ thống do mình quản trị có an toàn hay ko, có khả năng bị xâm nhập hay ko, nhất là sắp tới sẽ có thêm dịch vụ thanh toán trên internet được bung ra.
Vậy thì, làm thế nào để xác định được về độ an toàn của hệ thống? Kiện toàn hệ thống như thế nào? Làm sao có thể đào tạo cán bộ nâng cao trình độ về security? là những câu hỏi mà tôi chưa giải đáp được thỏa đáng.
Tôi tự đưa ra các câu trả lời cho thắc mắc của mình:
Hiện nay các hệ thống máy chủ vẫn họat động ổn định, do vậy tạm kết luận là tình trạng hệ thống có thể vẫn an toàn.
Để kiện toàn được toàn hệ thống thì trước hết mình sẽ thực hiện các giải pháp, điều chỉnh tăng cường bảo mật cho từng thành phần: server, firewall, IPS thậm chí là cả máy trạm... đưa ra các phương án redundant và backup dữ liệu cẩn thận.
Vấn đề đào tạo: hiện nay với một mớ kiến thức về unix, linux, windows, và CCNA,... làm sao để có thể bổ sung các kiến thức về bảo mật, tôi đang có dự định cho anh em đi học về CEH nhưng có băn khoăn là liệu các kiến thức đấy có phải là "fast food" hay không, và có giải quyết được căn bản vấn đề ko.
Ngoài ra còn một vấn đề nữa trong công tác quản lý: hiện nay ở VN (có thể) có một thực trạng rằng trong 1 công ty việc cấp kinh phí cho đầu tư liên quan đến việc bảo mật rất khó khăn so với các dự án có thể nhìn thấy là sẽ có thu được hiệu quả về kinh tế, vậy kinh nhiệm trong việc thuyết phục ban lãnh đạo trong việc phân bổ đầu tư cho security như thế nào.
Anh em cùng tham gia trao đổi nhé.
Thực ra băn khoăn của bồ là băn khoăn thường gặp của những người làm quản trị hệ thống và cả những người chủ doanh nghiệp.
Trước đây tôi cũng chịu trách nhiệm về an toàn thông tin cho một ngân hàng, và kinh nghiệm của tôi cho thấy bài toán mà bồ đang gặp phải là rất khó giải quyết triệt để. Có vô vàn vấn đề phát sinh khi một doanh nghiệp vận hành, mà không một phương pháp, một tiêu chuẩn nào có thể tiên liệu và giải quyết được hết.
Trước tiên, bồ cần phải nằm lòng thế này:
1. An toàn thông tin là phải xây từ từ, chứ không thể mua. Bồ có thể mua thiết bị, mua giải pháp, nhưng muốn an toàn thì phải xây dựng quy trình kiểm soát về kỹ thuật và hành chính, rồi xây dựng đội ngũ thực thi các quy trình đó.
2. An toàn thông tin là sự phối hợp tốt giữa ngăn chặn, phát hiện và xử lý. Cái gì ngăn chặn được bằng kỹ thuật/công nghệ, thì chặn triệt để bằng kỹ thuật/công nghệ. Chỉ có một cách làm đúng duy nhất, và cách đó phải an toàn. Cái gì không ngăn chặn được, thì phải tính đến chuyện, nếu ai đó vi phạm thì có cách nào phát hiện sớm, hạn chế và xử lý thiệt hại ra sao.
3. Làm gì thì làm, phải nhớ 3 công việc chính: giám sát, giám sát và giám sát. Giờ tôi thử hỏi bồ, bồ có biết ai đang làm gì ở đâu và tại sao trên hệ thống của bồ hay không?
Lời khuyên của cá nhân tôi là bồ có thể bắt đầu bằng việc xây dựng càng sớm càng tốt một hệ thống giám sát an ninh mạng. Trên HVA có một chủ đề thảo luận rất sôi nổi về đề tài đó, bồ có thể tìm đọc.
Về việc đào tạo, thì cá nhân tôi thấy rằng, người ta sẽ không xem một vấn đề là nghiêm trọng cho đến khi họ tận mắt chứng kiến tác hại của vấn đề đó. Bồ sẽ không xem các lỗ hổng bảo mật trong phần mềm là nghiêm trọng cho đến khi bồ biết cách tận dụng các lỗ hổng đó. Thành ra, kinh nghiệm của tôi là xây dựng một đội ngũ chuyên sâu, mạnh về kỹ thuật, nắm rõ các kiến thức nền tảng như mạng máy tính, hệ điều hành, và lập trình hệ thống. Bồ cần một người biết viết mã khai thác lỗi tràn bộ đệm hơn là một tay CISSP. Bồ cần một người biết dịch ngược và phân tích mã nguồn virus hơn là một tay CISSP. Bồ cần một người hiểu rõ EXT4 hơn là một tay CISSP.
Về việc làm thế nào để có thể thuyết phục chủ doanh nghiệp đầu tư cho an toàn thông tin, thì bồ phải chỉ ra rằng an toàn thông tin đem đến lợi ích cụ thể cho doanh nghiệp:
1. An toàn thông tin là lợi thế cạnh tranh so với các đối thủ. Bồ làm thanh toán và ngân hàng, thì đây là điều dễ hiểu và thậm chí đôi khi nó còn quyết định sự tồn tại của doanh nghiệp. Sở dĩ PayPal chiến thằng các công ty khác một phần là vì founder của nó là người làm an toàn thông tin và nó giải quyết bài toán gian lận giao dịch rất tốt.
2. An toàn thông tin là bắt buộc phải có nếu doanh nghiệp muốn làm ăn với các doanh nghiệp khác. Nó giống như uy tín và các danh hiệu về tiêu chuẩn. Chẳng hạn như giờ bồ muốn xử lý thẻ tín dụng, thì bồ phải đạt chuẩn này chuẩn khác, và muốn đạt các chuẩn đó, thì phải đầu tư vào an toàn thông tin.
3. Tóm lại là an toàn thông tin không cản trở kinh doanh mà là hỗ trợ kinh doanh. Mục tiêu cuối cùng của làm an toàn thông tin đếch phải an toàn là trên hết, mà là đủ an toàn để kiếm được nhiều tiền nhất.
-m
PS: bổ sung về đào tạo.
|
|
|
http://code.google.com/p/it-sec-catalog/wiki/Exploitation
Một tập hợp khá tốt các tài liệu về khai thác lỗi phần mềm. Bạn nào rảnh thì chép từng tài liệu vào chủ đề này (canh chỉnh lại cho nó đúng chuẩn của diễn đàn), để thảo luận và tham khảo thì hay quá.
-m
|
|
|
do có quá ít thông tin, nên phỏng đoán bừa thế này:
1. ciphertext có 960 ký tự từ 0-9a-f, phóng đoán (như Fal): ciphertext được encode dạng hex.
2. nếu (1) đúng thì ciphertext thiệt sự có 480 bytes. 480 là con số đẹp, chia hết cho 8, 16 và 32, nên phỏng đoán là dạng mã hoá dùng một block cipher phổ biến nào đó.
@meoawake: bạn còn có thông tin gì thêm không? bạn làm được gì thêm ngoài việc lấy được ciphertext đó ra? bạn có thể mã hoá một chuỗi bất kỳ và biết ciphertext là gì hông?
-m
|
|
|
@quanta: ờ thì có thể do bạn chưa bị DDoS, khi đó 10G/s là chuyện bình thường. ở đây đang nói đến tình huống là làm sao tìm kiếm nhanh chóng trên một khối lượng dữ liệu lớn mà.
@xnohat: tự dưng lỡ bài của bạn. RDBMS đúng là được thiết kế để làm nhiều thứ, thành ra cái gì cũng làm được, nhưng không thể tốt bằng những giải pháp được thiết kế chỉ để làm một việc duy nhất. lucene được thiết kế chỉ để làm một việc: tìm kiếm dữ liệu (nó cũng có lưu trữ dữ liệu, nhưng đó cũng chỉ là phụ và khâu này có thể dùng một DBMS, nhưng không nhất thiết phải là RDBMS). bạn thử tìm với từ khoá "lucene vs mysql fulltext search" sẽ thấy benchmark và kinh nghiệm của những người đã từng sử dụng lucene và mysql để tìm kiếm.
bây giờ thử nhìn một vấn đề đơn giản, trích xuất field từ dữ liệu log. đúng như bạn nói, cái này không phải là không làm được với RDBMS, vấn đề là làm thế nào cho nó hiệu quả. ví dụ như log của firewall khác với log của apache httpd, nghĩa là số lượng field, ý nghĩa của các field của tụi nó sẽ khác nhau rất xa. lúc này bạn thiết kế mô hình quan hệ ra sao? sau khi thiết kế được rồi, đưa vào sử dụng, bạn phát hiện ra, hệ thống không chỉ có 2 loại log, mà có cả trăm loại log khác nhau như thế. thế là phải ngồi thiết kế lại.
tìm kiếm và trích xuất thông tin (information retrieval) là một ngành học độc lập hoàn toàn với cơ sở dữ liệu, và đặc biệt là cơ sở dữ liệu quan hệ.
-m
|
|
|
quanta wrote:
Rất tiếc, mình không có Splunk ở đây để test, bạn nào có Splunk bên cạnh thì thử rồi cho mọi người biết kết quả được không. Hơn nữa, làm gì mà để log file lớn vậy mrro, không rotate à.
Mình cũng chỉ muốn thảo luận thêm về một giải pháp đơn giản, dùng shell script rồi có thể đẩy vào cron job hoặc Nagios thôi.
PS: mrro dùng Splunk có bị tình trạng ngốn cpu không?
1 --> không phải là log file lớn, mà lượng dữ liệu nhận được trong X phút (ở đây là 15') là lớn.
2 --> cái này thì mình không biết. có lẽ là không.
@vikjava: còn khá nhiều, từ khoá nè: arcsight, cloudera flume, apache scribe, elasticsearch. dịch vụ thì có www.loggly.com. dẫu vậy ngoại trừ splunk (và có lẽ là arcsight) ra thì những cái này đều khá rời rạc, muốn ra một sản phẩm hay giải pháp thì cần phải tích hợp. có nhu cầu thiệt sự thì liên hệ, mình có thể tích hợp mấy cái này lại .
-m
|
|
|
@1imp0ss1bl3: vấn đề là ở chỗ đó. grep có đủ nhanh hay không? mình nhấn mạnh đủ nhanh vì có thể grep chậm hơn các giải pháp khác (như splunk hay lucene-solr), nhưng vẫn đáp ứng được yêu cầu.
sở dĩ splunk hay lucene-solr nhanh là vì chúng nó đã index dữ liệu trước rồi. hiểu nôm na là chúng nó đã chuẩn bị dữ liệu cho công việc tìm kiếm, nên khi bắt đầu tìm thì sẽ nhanh hơn. còn grep thì vẫn để dữ liệu dạng thô, do đó thời gian tìm kiếm sẽ lâu hơn. đương nhiên nhanh hơn hay chậm hơn bao nhiêu thì phải kiểm thử mới biết.
-m
|
|
|
mình nghĩ ngoài việc thảo luận cách cài đặt dịch vụ, thì nên mở rộng theo chiều sâu thế này:
* nên bắt đầu bằng giao thức. ví dụ thảo luận về dịch vụ DNS mà lại không nói về giao thức DNS thì dễ dẫn đến nhầm lẫn *đã hiểu về DNS nhưng thật ra không hiểu gì về DNS*. hoặc thảo luận về OpenSSH thì cũng nên thảo luận về giao thức SSH, chẳng hạn như ai cũng nói là Public-Key Authentication an toàn, vậy thực chất nó an toàn hơn ở mức độ nào? nếu nói PKA là an toàn, vậy thì Password-Based Authentication không an toàn ở chỗ nào? đóng góp của bạn antiadmin là điểm khởi đầu tốt, nên đào sâu hơn nữa.
* nên nói thêm về các rủi ro thường gặp, và cách để kiện toàn các dịch vụ này. ví dụ như OpenSSH thường bị scan, vậy làm thế nào để phòng ngừa? cách tốt nhất là gì?
* bàn thêm về việc đảm bảo tính sẵn sàng cao cho các dịch vụ này. ví dụ như DNS là một dịch vụ rất quan trọng, vậy làm thế nào để đảm bảo nó luôn chạy?
-m
|
|
|
he he he hay . anyway, mình phải hỏi là, nó có đủ nhanh khi lượng dữ liệu lớn lên, chẳng hạn như vài chục hay vài trăm G?
-m
|
|
|
nên xem thử môn Programming Methodology, trong chương trình SEE của đại học Stanford.
http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111
-m
|
|
|
he he he hồi đó mình có viết về đề tài này, ở đây http://vnhacker.blogspot.com/2007/07/15-chaithng-5-c-phiu-dng-c-ng-chin-lc.html
nói chung, nguyên tắc chủ đạo là: bạn phải cảm thấy vui vẻ và thoải mái với mức lương của mình. mình thấy ý kiến của anh nbthanh là chính xác. nếu đưa ra một khoảng thì MIN phải là mức mà bạn thấy rất thoải mái với nó, còn MAX thì cứ lấy MIN nhân hay luỹ thừa lên .
chú ý là: phải hỏi và thoả thuận cả thu nhập ngoài lương và những lợi ích khác. cái này thì trong bài viết mình có đề cập chút đỉnh.
-m
|
|
|
Video quay lại buổi thuyết trình ở EKOPARTY: http://vimeo.com/15454510. Đoạn nói về ASP.NET bằng tiếng Anh bắt đầu ở phút thứ 26.
-m
|
|
|
Có một tài liệu giải thích có minh hoạ đầy đủ PO: http://www.gdssecurity.com/l/b/2010/09/14/automated-padding-oracle-attacks-with-padbuster/
-m
|
|
|
Windak wrote:
Mấy hôm nay cũng đọc tương đối kha khá. Hồi sáng cũng viết thử 1 cái tool crack simple encryption bằng PO... hôm nào để lên cho mọi người nghịch. Chỉ có là em thấy trở ngại lớn nhất của cả PO và CBC-R là phần IV, không thể control được.
Do đó nếu IV là secret value + blocksize lớn ( cỡ 128-bit trở lên) thì PO cũng vô hiệu. Đối với CBC-R thì nếu first block = header, block size lớn + limit length of cypher text thì cũng khó khăn rất nhiều để khai thác. Không biết anh thấy thế nào
1. Thiệt ra có rất nhiều ứng dụng cho phép chúng ta kiểm soát IV. Ví dụ như trong Ruby On Rails, IV được truyền thẳng xuống client. Hoặc trong ASP.NET, có một cái tuỳ chọn mà nếu bật lên thì IV là block đầu tiên của ciphertext luôn.
2. Mấy quan sát còn lại của em đều đúng. Nhưng mà trong báo cáo, tụi anh cũng có nói, có rất nhiều trường hợp chỉ cần vài byte đầu đúng là xong phim .
-m
|
|
|
đã có patch. còn đây là video dành cho bạn nào chưa muốn patch
http://www.youtube.com/watch?v=mP6mKLh1FBw
-m
|
|
|
@Windak: nếu em tìm hiểu mã nguồn của .NET, và thấy được chỗ bị lỗi thì em sẽ thấy là chỉ cần brute-force 2 byte là sẽ nhảy vào được đoạn mã để lấy key.
thiệt ra 2 tuần vừa rồi đám MS và nhiều người khác đã tìm hiểu và công bố khá nhiều thông tin về vấn đề này, nên em cũng chẳng cần đọc mã nguồn nhiều làm gì, tìm lòng vòng trên Internet sẽ thấy thông tin. ví dụ như http://eglasius.blogspot.com/2010/09/aspnet-padding-oracle-how-it-relates-to.html
về PO với CBC-R thì anh có nói từ khá lâu đây là kỹ thuật rất hay, và cũng là đóng góp lớn nhất của báo cáo Practical Padding Oracle Attacks, dẫu vậy cho đến giờ vẫn chưa thấy ai nói gì đến nó :-p. nên nếu em muốn hỏi hay thảo luận gì thêm thì cứ qua cái topic về POET mà hỏi nha. tài liệu về CBC-R thì em đọc trong báo cáo kia là đủ (chọn đọc phiên bản trình bày ở USENIX cho dễ). trong đó tụi anh mô tả rất rõ những ý tưởng chính của CBC-R.
cái hay nhất của tấn công ASP.NET nằm ở những kỹ thuật tối ưu hóa CBC-R, mà hiện giờ tụi anh chưa công bố ra ngoài. dẫu vậy nếu em nhào vào thử tấn công ASP.NET bằng CBC-R, em sẽ thấy vấn đề, và có thể em sẽ biết cách tối ưu. anh nghĩ nó cũng là cách tốt để hiểu CBC-R.
@thanhbien: mã tấn công và phương pháp thực hiện chưa bao giờ được công bố rộng rãi cả.
-m
|
|
|
@LeVuHoang: hiện giờ theo thoả thuận với MS thì mình không có cung cấp thông tin đó được. Dẫu vậy mình có PM cho bạn một cái video chứng minh là workaround của MS không chặn được POET.
@ITvh: mình cũng ngạc nhiên là Microsoft xếp là Important nhưng lại đưa ra Out Of Band patch. Có lẽ do cái này không trực tiếp là remote code execution, nhưng do mức độ ảnh hưởng lớn nên họ bắt buộc phải đưa ra OOB patch.
Lời khuyên là nên cài bảng vá này ngay khi nó ra.
-m
|
|
|
slide trình bày tại EKOPARTY: http://netifera.com/research/poet//PaddingOraclesEverywhereEkoparty2010.pdf
-m
|
|
|
@LeVuHoang: đúng vậy. đọc được bất kỳ file nào nằm trong trong thư mục gốc của ứng dụng ASP.NET. Có thể chôm file cấu hình hoặc file mã nguồn.
@vikjava: mấy cái workaround và cách phát hiện tấn công của MS đưa ra đều không có tác dụng. Cách phòng chống duy nhất bây giờ là liên hệ với mình , hoặc là chờ patch chính thức của MS.
-m
|
|
|
Sáng nay mình đã trình bày ở EKOPARTY. Đây là video demo .
http://www.youtube.com/watch?v=yghiC_U2RaM
Vài bữa nữa sẽ có slide. Và một thời gian sau sẽ có paper và tools .
-m
|
|
|
thêm một số thông tin từ báo chí:
Dennish Fisher wrote:
A pair of security researchers have implemented an attack that exploits the way that ASP.NET Web applications handle encrypted session cookies, a weakness that could enable an attacker to hijack users' online banking sessions and cause other severe problems in vulnerable applications. Experts say that the bug, which will be discussed in detail at the Ekoparty conference in Argentina this week, affects millions of Web applications.
The problem lies in the way that ASP.NET, Microsoft's popular Web framework, implements the AES encryption algorithm to protect the integrity of the cookies these applications generate to store information during user sessions. A common mistake is to assume that encryption protects the cookies from tampering so that if any data in the cookie is modified, the cookie will not decrypt correctly. However, there are a lot of ways to make mistakes in crypto implementations, and when crypto breaks, it usually breaks badly.
"We knew ASP.NET was vulnerable to our attack several months ago, but we didn't know how serious it is until a couple of weeks ago. It turns out that the vulnerability in ASP.NET is the most critical amongst other frameworks. In short, it totally destroys ASP.NET security," said Thai Duong, who along with Juliano Rizzo, developed the attack against ASP.NET.
Xem thêm: http://threatpost.com/en_us/blogs/new-crypto-attack-affects-millions-aspnet-apps-091310
Hiện giờ EKOPARTY chưa có kế hoạch thuyết trình chính thức, nhưng có lẽ đề tài này sẽ được trình bày vào cuối ngày thứ hai của hội thảo, tức là khoảng khuya thứ bảy giờ VN. Tôi sẽ gửi video trình diễn lên đây ngay sau hội thảo kết thúc.
-m
|
|
|
Hi mọi người,
Trong tuần tới, tôi và một đồng nghiệp sẽ trình bày về một lỗ hổng zero-day nghiêm trọng của ASP.NET tại hội thảo EKOPARTY, Argentina. Trong báo cáo "Practical Padding Oracle Attacks", chúng tôi giới thiệu CBC-R và bàn đến các khả năng sử dụng CBC-R để có thể thực hiện các tấn công nghiêm trọng. Và lần này, chúng tôi sẽ chứng minh: với CBC-R, tấn công padding oracle không chỉ còn dừng lại ở mức giải mã view state hoặc là vượt CAPTCHA, mà còn có thể dẫn đến chiếm trọn quyền trên hệ thống.
http://www.ekoparty.org/eng/thai-duong-2010.php wrote:
Finally we demonstrate the attacks against real world applications. We use the Padding Oracle attack to decrypt data and use CBC-R to encrypt our modifications. Then we abuse components present in every ASP.NET installation to forge authentication tickets and access applications with administration rights. The vulnerabilities exploited affect the framework used by 25% of the Internet websites.The impact of the attack depends on the applications installed on the server, from information disclosure to total system compromise.
Vài bữa nữa sẽ có video trình diễn. Theo tôi quan sát thì có khá nhiều web site ở VN cũng như trên thế giới bị ảnh hưởng bởi lỗ hổng này. Bạn nào có sử dụng công nghệ này thì nên chú ý theo dõi.
-m
|
|
|
mình quan sát thì thấy có vài điểm sau đây:
* plaintext là 9 bytes, ciphertext là 16 bytes.
* plaintext được chia ra làm 2 phần: 8 bytes đầu và 1 byte cuối cùng. 8 bytes đầu của plaintext sẽ được mã hoá thành 8 bytes đầu của ciphertext, còn byte cuối của plaintext sẽ trở thành 8 bytes cuối của ciphertext.
* giả thuyết: mã hoá dùng một symmetric cipher có block size là 64 bits (8 bytes) theo chế độ hoạt động ECB, và một cơ chế padding nào đó. có thể đây là DES (hoặc Blowfish), với padding là PKCS5 hoặc null padding.
để xác nhận giả thuyết này, thì phải thực hiện một phép thử với điều kiện plaintext không nhất thiết bắt buộc phải là chữ số hoặc plaintext có thể dài hơn 9 bytes.
nếu plaintext có thể chứa ký tự bất kỳ, thì hãy thử nhập vào các chuỗi chẳng hạn như: 4\x00\x00\x00\x00\x00\x00\x004, \x00 là null byte đó hoặc 4\x07\x07\x07\x07\x07\x07\x074, rồi gửi kết quả lên đây.
nếu plaintext có thể dài hơn 9 bytes, thì thử nhập vào các chuỗi bao gồm 16 số 0 hoặc 16 số 1, rồi gửi kết quả lên đây.
nếu plaintext bắt buộc phải là chữ số và không thể dài hơn 9 bytes, thì cứ nhắm mắt chấp nhận giả thuyết ở trên . lúc này để dịch ngược lại từ kí tự bị mã hoá -> số thì chỉ có cách là tạo một mapping (chính là electronic code book) giữa plaintext và ciphertext thôi. mapping này sẽ không lớn lắm, do plaintext bị giới hạn trong phạm vi chỉ là chữ số.
có tất cả 10^8 plaintext thôi. bạn cứ tạo ra 10^8 chuỗi gồm 8 chữ số, và gửi vào chương trình mã hoá để lấy ra ciphertext tương ứng, rồi lưu xuống cơ sở dữ liệu. rồi sau này muốn giải mã ciphertext nào, thì chỉ cần tìm trong cơ sở dữ liệu cái ciphertext đó, rồi truy ngược lại plaintext tương ứng. phần padding làm tương tự, nhưng đơn giản hơn, do chỉ có 10 padding thôi.
hi vọng là giúp được gì đó,
-m
|
|
|
@K4i: mình có làm, nhưng rất tiếc là đã để lạc ở đâu đó rồi. Hiện giờ mình thấy bọn SSLLabs làm khá tốt, vừa có công cụ, vừa có tài liệu mô tả, nên ai mà muốn làm một cái survey tương tự thì chỉ cần dùng SSLLabs là được.
Bạn nào muốn làm thử mấy cái nghiên cứu nho nhỏ mà mình nói ở trên, thì cứ trả lời ở đây, mình sẽ hướng dẫn chi tiết hơn.
-m
|
|
|
|
|
|
|