Những gì những hộp đen đã được rèn kỹ

Thứ năm - 19/03/2009 06:38
What have the black boxes wrought

Saturday, March 14, 2009

How compartmentalization turned into a security disaster. Greed, incompetence and dishonesty was involved.
Theo: http://bsdly.blogspot.com/2009/03/what-have-black-boxes-wrought.html

Bài được đưa lên Internet ngày: 14/03/2009

Lời người dịch: Một nhà lập trình lâu năm của FreeBSD viết về văn hoá buồng tối của Microsoft, một văn hoá dành cho máy tính cá nhân một người sử dụng, hoàn toàn không phù hợp với môi trường kết nối mạng Internet như ngày nay. Chính cái văn hoá lẫy lừng một thời đó đang làm hại Microsoft và những sản phẩm dễ bị tổn thương vì vô vàn virus và sâu Windows của họ.

Nội dung bài viết:

An ninh công nghệ thông tin hoặc thiếu bất kỳ thứ gì như vậy đã chộp lấy những đầu đề gần đây tại Nauy. Một loạt các cơ quan nhà nước có tiếng đã thấy những sự lây nhiễm sâu ở phạm vi rộng lớn trên các mạng dựa trên Windows của họ. Cuối năm ngoái cơ quan chính phủ vùng này có trách nhiệm về cơ bản tất cả các việc chăm sóc sức khoẻ phần phía tây của đất nước này đã bị lây nhiễm một loại sâu thật tệ hại mà chúng về cơ bản làm tắt mạng của họ như một biện pháp ngăn ngừa. Trong vài tuần qua, lực lượng cảnh sát quốc gia, của tất cả các tổ chức có thể nghĩ được, đã thấy không chỉ một, mà 2 vụ việc ở phạm vi rộng lớn.

Sử dụng các sản phẩm của Microsoft và duy trì hệ thống đĩa mềm là tràn lan khắp nơi đủ để những vụ việc tương tự có thể xảy ra ngay bây giờ ở đâu đó nữa, đâu đó gần cạnh bạn. Những báo cáo thông tin về các vấn đề công nghệ thông tin của lực lượng cảnh sát Nauy chứa đựng một thứ mà nó đặc biệt gây sốc cho những người làm về công nghệ thông tin như tôi:

Hình như một phần rộng lớn của bộ máy quan liêu có trách nhiệm về việc xử lý đúng đắn và bí mật các vấn đề về tội phạm và tất cả các dạng thông tin cá nhân nhạy cảm có liên quan tới tội phạm chạy những dịch vụ cơ bản trên Microsoft Windows NT 4.0.

Phiên bản đó của sản phẩm của Microsoft quá cũ kỹ và nó là phần mềm bị bỏ rơi một cách chính thức, và những báo cáo trước đó về các vấn đề mạng của cảnh sát bao gồm các thông tin cũ kỹ mà ngay cả các nhà cung cấp các phần mềm này đã dừng hỗ trợ hệ thống này. Những báo cáo sau đó đã nhờ các quan chức phòng công nghệ thông tin khiếu nại rằng những lây nhiễm sâu đã không nhiều đối với một vấn đề về an ninh, kể từ thời điểm đó tất cả các sâu thực tế đã lan truyền.

Hãy bẻ tung ra cái bắp ngô, thưa các anh các chị: Trong câu chuyện sắp tới, chúng ta sẽ thấy cách mà con sâu đã lây nhiễm ra các máy tính Windows của Cảnh sát Hoàng gia Nauy đã không được tìm thấy hoặc làm sạch đủ tốt được sử dụng trong việc gây ra một số tội phạm mạng hoặc tương tự.

Tất cả điều này khá là ghê tởm, tại thời điểm này nó thà lôi cuốn để choán thêm những cột báo còn lại để huênh hoang về sự ngớ ngẩn chung của những người sử dụng Windows. Nhưng một tiếp cận thông minh hơn là để xem liệu có một bài học nào được học hay không. Để làm việc đó, chúng ta cần quay lại một chút và nhìn vào sự sùng bái các hộp đen một chút.

IT security or the lack of any such thing has grabbed headlines lately here in Norway. A series of high profile public institutions have seen large scale worm infections on their Microsoft based networks. Late last year the regional government agency responsible for essentially all health care in the western part of the country had a worm infection so bad they essentially shut down their network as a preventive measure. During the last few weeks, the national police force, of all thinkable organizations, has seen not one, but two large-scale incidents.

Use of Microsoft products and sloppy system maintenance are both pervasive enough that similar incidents are likely happening right now elsewhe-re, somewhe-re near you too. The news reports about the Norwegian police force's IT problems contained one item that was particularly shocking to IT types like me:

Apparently large parts of the bureaucracy that is responsible for the confidential and correct processing of criminal matters and all sorts of sensitive personal information associated with the crimes runs essential services on Microsoft Windows NT 4.0.

That version of the Microsoft product is so old it is officially abandonware, and early reports of the police network problems included the oldish news that even the antiware vendors have stopped supporting the system. Later reports had police IT department officials claim that the worm infections were not that much of a security problem, since at this point all the worm actually did was spread.

Break out the popcorn, boys and girls: In an upcoming episode, we will see how the worm infected Windows machines the Royal Norwegian Police did not find or couldn't clean well enough are used in the perpetration of some cybercrime or other.

It's all pretty sickening, and at this point it would be rather tempting to spend the rest of the column ranting about the general stupidity of Windows users. But a smarter approach is to see if there is a lesson to be learned. To do that, we need to backtrack quite a bit and look at the cult of the little black boxes.

The cult of the little black boxes, and Microsoft the 1980s corporation

Sự sùng bái các hộp đen nhỏ, và tập đoàn Microsoft những năm 1980

Chúng ta cần đi ngược lại và tham gia vào những gì mà thế giới này đã thích trong những năm 1980. Điều này quay ngược về khi mà thế giới đã được chia thành các máy tính thực sự (từ các hãng như IBM, Digital, và gần như độc quyền như Norsk Data của riêng chúng ta) và những đồ chơi quấy rầy đó được gọi là các máy vi tính 'cá nhân', nơi mà 'máy tính cá nhân tương thích với IBM' đã nổi lên như người dẫn đầu đáng kinh ngạc bao gói này. Các mạng máy tính đã thường là riêng tư, những thứ của công ty và hiếm khi được kết nối nội bộ nhiều với nhau, ngoại trừ hiếm hoi của những cơ quan mà một phần của thử nghiệm khoa học của Bộ Quốc phòng Mỹ mà nó đã trở thành nổi tiếng như mạng ARPANET hoặc 'Internet'.

Nếu bạn quay về với các lớp lập trình vào những năm 1980, bạn có thể biết rằng chúng ta đã được dạy rằng các hộp đen là tốt. Việc chia thành ngăn đã là trật tự của ngày, nghĩa là như một nhà lập trình phát triển bạn dường như đã tạo ra mã nguồn với một giao diện được xác định tốt, sao cho bất kỳ ai giao tiếp với mã nguồn của bạn có thể được trình bày với một kết quả sạch sẽ có thể báo trước được cho bất kỳ đầu vào nào được đưa ra. Mã nguồn của bạn phải là một hộp đen và vì bất kỳ đặc tả kỹ thuật đặc biệt nào cũng sẽ được viết vài module trao đổi được để phù hợp với hoá đơn.

Cho tới nay tính có thể đoán trước được là dễ chịu và với việc chia ngăn tới, chúng ta hy vọng ít nhất là các chuỗi trách nhiệm rõ ràng. Nhưng một vài yếu tố kết hợp lại để tạo nên sự sùng bái các hộp đen và biến nó thành một văn hoá tập đoàn tại một tập đoàn đã trưởng thành từ một nhóm các hacker thành một tập đoàn vào thời kỳ đó được gọi là Microsoft. Những thành công sớm của Microsoft tất cả đều đã tới từ việc viết các phần mềm cho các hệ thống chỉ một người sử dụng mà chúng là rất hạn chế để làm việc quanh những hạn chế của phần cứng đã trở thành một kiểu sống. Ở đầu thập kỷ này, việc kết nối mạng của các máy vi tính trong phạm vi của Microsoft đã có khá nhiều câu hỏi, và vào cuối những năm 1980 bất kỳ dạng kết nối nào (ngay cả dạng quay số dial up) còn là một lựa chọn quá đắt đỏ mà vẫn còn quá khó khăn để thiết lập cấu hình đối với hầu hết mọi người. Ở phía các thiết bị lưu trữ, chúng ta đã tiến từ các đĩa mềm 128 KB sang tới các đĩa cứng chỉ vài trăm MB cho các hệ thống cá nhân, với phân vùng kích thước 32 MB vẫn còn là một yếu tố rất hạn chế cho tới nay.

We need to go back and take in what the world was like in the nineteen-eighties. This was back when the world was divided into real computers (f-rom the likes of IBM, Digital, and regional quasi-monopolies like our own Norsk Data) and those annoying toys called 'personal' microcomputers, whe-re the 'IBM PC compatibles' had emerged as the surprise leader of the pack. Computer networks were usually private, corporate things and rarely interconnected much, with the rare exception of those institutions that were part of the US Department of Defense science experiment that was becoming known variously as ARPANET or 'the Internet'.

If you took your programming classes back in the nineteen-eighties, you likely know that we were taught that black boxes were good. Compartmentalization was the order of the day, meaning that as a developer you were supposed to cre-ate code with a well defined inteface, so anybody interacting with your code would be presented with a cleanly predictable result to any given input. Your code should be a black box and for any particular specificiation there could be written several interchangeable modules to fit the bill.

So far so good, predictability is nice and with compartmentalization comes, we hope at least, clear chains of responsibility. But several factors combined to take the cult of the black boxes and turn it into a corporate culture at a corporation that was growing f-rom a handful of furry hackers into a corporation at the time, namely Microsoft. Microsoft' early successes all came f-rom writing software for single-user systems that were so limited that working around the limitations of the hardware became much of a lifestyle. At the start of the decade, networking on microcomputers in Microsoft's range was pretty much out of the question, and by the end of the eighties any sort of connectivity (even dial-up) was still an expensive optional extra that was still too hard to configure for most people. On the storage side, we progressed f-rom 128 kilobyte floppies to hard drives of just over a hundred megabytes for personal systems, with the 32 megabyte partition size still a very present limiting factor.

Tất cả những phát triển đáng kinh ngạc, nhưng các các ứng dụng và tổ chức này đều trưởng thành nhanh hơn là phần cứng có thể bám đuổi theo kịp. Tổ chức này bây giờ có vài mức quản lý, và mỗi cấp đã đòi hỏi năng suất tối đa từ những thuộc hạ của họ. Hãy nhớ trong đầu rằng mỗi một lập trình viên hoặc đội lập trình có thể viết các hộp đen nhỏ bằng cách nào đó, rồi nó tạo ra ý nghĩa tuyệt vời để thiết lập dây chuyền sản xuất phần mềm sao cho mỗi nhà lập trình phát triển đã chỉ có sự truy cập twosi các phần nào đó của hệ thống mà anh hoặc chị ta đã được phép để làm việc trong đó. Bằng cách đó các lập trình viên có thể tập trung được vào nhiệm vụ chính của họ và tối thiểu hoá thời gian bỏ ra chờ đợi việc biên dịch để hoàn tất. Tại những thời điểm đã được định trước các lập trình viên này sau đó phải tải mã nguồn lên cho các hộp đen nhỏ tới một hệ thống trung tâm đã được xây dựng. Người duy nhất mà đã có tất cả các phần của các dự án này trên thực tế là những người canh giữ hệ thông được xây dựng này. Các hệ thống kiểm soát phiên bãn mã nguồn đã được làm thành một phần của quá trình này, mà có một bằng chứng khôi hài rằng sự chuyển từ việc tin tặc của máy đứng riêng rẽ (standalone) tới một chế độ kiểm soát phiên bản là rất xù xì đối với nhiều lập trình viên mới của Microsoft.

Chỉ vài ngày trước tôi đã đưa ra khá nhiều nội dung về đoạn cuối cho một bảng của những lập trình viên phần mềm tự do trẻ tuổi nhất. Phản ứng là mau lẹ và nhất trí: “Bằng cách đó, không ai thực sự biết những gì đang xảy ra trong phần mềm này”. Đó là một điểm rất giá trị, và nó chứng minh chúng ta đã đi xa như thế nào với phần mềm tự do. Cùng lúc có từng lý do để tin tưởng rằng sự ngăn lớp cực kỳ mà Microsoft đã thiết lập nên cho sự phát triển sản phẩm của hãng vào những năm 1980 là cách mà những thứ đã được thực hiện ở đó cho tới rất gần đây, nếu quả thực tất cả nó đã được thay đổi.

Amazing developments all, but both the applications and the organization grew faster than the hardware could keep up with. The organization now had several levels of management, and each one demanded maximum productivity f-rom their underlings. Keeping in mind that each programmer or team would be writing little black boxes anyway, it made perfect sense to set up the software production line so each developer only had access to those parts of the system he or she was supposed to be working on. That way developers would be concentrating on their main task and minimize time spent waiting for compiles to finish. At predetermined times the developers would then upload the source code for their little black boxes to a central build system. The only people who had all the parts of the projects were in fact the custodians of the build system. Source code version control systems were made part of the process, but there is anecdotal evidence that the transition f-rom standalone hacking to a version control regime was a rough one for many early Microsoft developers.

Only a few days ago I offered pretty much the content of the last paragraph to a table of youngish free software developers over beer. The reaction was quick an unanimous: "That way, nobody really knows what's going on in the software". That is a very valid point, and it proves how far we've come with free software. At the same time there is every reason to believe that the extreme compartmentalization that Microsoft established for its product development in the 1980s was the way things were done there until very recently, if indeed it has changed at all.

Vào giữa những năm 1990 khi Microsoft đã từng đá lê và gào thét trong các môi trường mạng hiện đại ngày nay, và những chiến công đang có của các phần mềm độc hại sống nhờ Internet đã bắt đầu không còn là trò đùa nữa (tôi đã từng viết một tổng kết trong một tài liệu về các phần mềm độc hại), với việc hãng này chuyển từ sự từ chối sớm bất kỳ lỗi nào bất kể là thông qua một chướng ngại vật gần như vĩnh cửu các sửa nóng dạng cấp cứu sang chế độ các bản vá khổng lồ theo tháng của ngày nay. Với mã nguồn vẫn còn được bảo vệ bí mật một cách đóng (nếu chẳng may bị dò rỉ ra), thực sự sẽ không có cách nào cho chúng ta biết liệu họ đã học được bất kỳ bài học nào không. Một chỉ số mà họ vẫn còn có vài cách để đi là bài viết của Infoworld về tình trạng của tài liệu về giao thức của họ (tổng kết lại: điều sẽ không đáng tin cậy một chút nào). Như đối với tình trạng của mã nguồn, tất cả điều chúng ta có thể làm là nghiên cứu tiến trình các bản vá khẩn cấp.

Tốt hơn nhiều để học cách nó phải được hoàn thành – Nói từ bài trình bày của hội nghị AsiaBSDCon 2009 tại Raadt về cách mà qui trình tung ra OpenBSD làm việc, và nếu bạn muốn hơn về các chi tiết đẫm máu này, hãy kiểm tra bài trình bày kinh điển kỳ công được làm dịu đi của anh ta. Còn nữa, có lẽ hầu hết các bạn có thể làm còn tồi tệ hơn là đọc bài trình bày về an ninh của OpenSSH của Damien Miller (toàn văn theo đường liên kết bên dưới). Đây là tất cả những thứ bé nhỏ mà chúng tôi làm, tại FreeCode và trong phần mềm tự do nói chung.

Nếu bạn thấy bài viết này là hữu dụng, thú vị và khêu gợi, xin hãy cho tôi một dòng.

By the mid-1990s when Microsoft had been dragged kicking and screaming into modern-day network environments, and the ongoing saga of internet-enabled malware started in earnest (I've written a summary in a malware paper), with the company moving f-rom early denial of any bugs whatsoever through a near-constant barrage of emergency hotfixes to today's monthly megapatch regime. With the source code still a closely guarded (if occasionally leaked) secret, there is really no way for us to know if they've learned any lessons at all. One indication that they still have some way to go is this Infoworld article about the state of their protocol documentation (summary: it's not to be trusted at all). As for the state of the source code, all we can do is to study the flow of urgent patches.
Much better then to learn how it should be done - Say f-rom Theo de Raadt's AsiaBSDCon 2009 presentation about how OpenBSD's release process works, and if you want more of the gory details, do check his classic exploit mitigation presentation. Also, most likely you could do worse than read Damien Miller's OpenSSH security presentation (full text here). It's all those little things we do, at FreeCode and in free software in general.

If you found this column useful, entertaining or irritating, please d-rop me a line.

Dịch tài liệu: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Những tin mới hơn

Những tin cũ hơn

Về Blog này

Blog này được chuyển đổi từ http://blog.yahoo.com/letrungnghia trên Yahoo Blog sang sử dụng NukeViet sau khi Yahoo Blog đóng cửa tại Việt Nam ngày 17/01/2013.Kể từ ngày 07/02/2013, thông tin trên Blog được cập nhật tiếp tục trở lại với sự hỗ trợ kỹ thuật và đặt chỗ hosting của nhóm phát triển...

Bài đọc nhiều nhất trong năm
Thăm dò ý kiến

Bạn quan tâm gì nhất ở mã nguồn mở?

Thống kê truy cập
  • Đang truy cập151
  • Máy chủ tìm kiếm20
  • Khách viếng thăm131
  • Hôm nay14,109
  • Tháng hiện tại534,292
  • Tổng lượt truy cập36,592,885
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây