Showing posts with label security. Show all posts
Showing posts with label security. Show all posts

2/6/10

Microsoft chuẩn bị vá lỗi 17 năm tuổi trong hệ điều hành Windows

Trong một bài viết trước "Phần mềm nguồn mở có an toàn không?" có nói một trong những nguyên nhân không an toàn của Windows là thiết kế của nó chuyển từ single-user sang multi-user, kế thừa nhiều điểm không an toàn của môi trường single-user.

đây là một bằng chứng cho vấn đề đó.

Tuy nhiên, Linux mặc dù thừa kế tính multi-user của Unix ngay từ trong thiết kế cũng chỉ an toàn hơn mà không phải an toàn tuyệt đối. Cái gì con người làm ra, con người cũng có thể phá. Hiện nay, bản Linux mới nhất đang xây dựng chưa xong là Google Chrome có nói sẽ thiết kế mới từ đầu, chú trọng đến an ninh. Chúng ta cùng chờ xem.

1/21/10

Ghi chép về an ninh trong Linux


Ghi chép về an ninh trong Linux




I. Khái niệm chung


Trong hoạt động của máy tính, một thực thể có thể cần phải truy cập đến một thực thể khác để thực hiện một hành động nào đó. Ví dụ: một user đọc một file, một chương trình chơi nhạc gọi một chương trình khác để phát âm ra loa, v.v..


Các thực thể thực hiện các hành động đối với các thực thể khác được gọi là chủ thể truy cập (subject). Các thực thể được truy cập gọi là đối tượng truy cập (object). Chủ thể thường là một tiến trình (process) hoặc một mạch tiến trình (thread), đối tượng là file, thư mục, các cổng TCP, các vùng bộ nhớ dùng chung, v.v...


Để đảm bảo an ninh cho hệ thống, việc truy cập không thể tự do, bừa bãi mà cần được kiểm soát. Hệ thống kiểm soát truy cập (Access control systems) thực hiện ba dịch vụ chính: nhận dạng và xác thực ( identification and authentication - I&A), cấp phép ( authorization), và theo dõi ( accountability)



I.1-Xác nhận (Nhận dạng và xác thực - Identification and authentication - I&A)


Một chủ thể truy cập trước hết phải cung cấp một dấu hiệu nhận dạng (identity) hợp lệ (vd: một cặp username và password tối thiểu 6 ký tự chẳng hạn. Nếu chỉ có username, hoặc chỉ có pasword hoặc có cả username và password nhưng password chỉ có 5 ký tự là không hợp lệ). Sau khi kiểm tra là chủ thể có dấu hiệu nhận dạng hợp lệ, quá trình xác thực sẽ so sánh dấu hiệu đó với dấu hiệu đã đăng ký để xác nhận chủ thể đó đúng là nó.


Quá trình đó tương tự như khi ta trình giấy mời vào một cuộc họp quan trọng: đầu tiên người gác cổng phải xem giấy mời có hợp lệ không (đúng mẫu giấy mời, có chữ ký và dấu v.v...) sau đó tra xem tên ghi trên giấy và tên trên chứng minh thư có trùng nhau không và thậm chí tên đó có trong danh sách khách mời không v.v.. Nếu tất cả đều đúng thì ta được xác nhận đúng là người được mời họp và được vào.



I.2- Cấp phép (Authorization)


Việc cấp phép xác định chủ thể được làm những hành động gì trên đối tượng.


Trong các hệ điều hành, quyền của chủ thể trên đối tượng là tổ hợp của ba loại quyền truy cập cơ bản sau:





  • Read (R): chủ thể có thể





    • Đọc nội dung file




    • Đọc (liệt kê) nội dung thư mục






  • Write (W): chủ thể có thể thay đổi nội dung file hoặc thư mục.




  • Execute (X): nếu file là một chương trình, chủ thể có thể chạy chương trình đó.




Cách cấp phép cụ thể tùy theo mô hình (kỹ thuật) kiểm soát truy cập (xem dưới đây).



I.3- Theo dõi (Accountability)


Việc theo dõi các hành động của chủ thể được thực hiện tự động bằng các audit trails (records) và các file log. Dựa vào đó có thể:





  • Phát hiện các vi phạm quy tắc an ninh.




  • Tái tạo lại các sự cố về an ninh.




II. Các kỹ thuật kiểm soát truy cập (Access control techniques)


II.1-Kiểm soát truy cập tùy ý (Discretionary access control - DAC)


Trong kỹ thuật này, mỗi đối tượng đều có một chủ nhân (owner). Chủ nhân của đối tượng có toàn quyền quyết định chính sách truy cập đối tượng: cho chủ thể nào được truy cập và được làm những hành động gì trên đối tượng. Vì thế mới có tên là “Kiểm soát truy cập tùy ý”, theo ý muốn của chủ nhân đối tượng, không có một chính sách truy cập thống nhất trong toàn hệ thống.


Ví dụ khi một user tạo ra một file thì user đó là owner của file và có toàn quyền cho phép các user khác được truy cập vào file đó theo các mức độ khác nhau hoặc cấm hoàn toàn không cho ai ngoài mình được truy cập file.


Đây là kỹ thuật (hoặc còn gọi là mô hinh) kiểm soát truy cập phổ biến của các hệ thống file Linux hiện nay.



II.2-Kiểm soát truy cập bắt buộc (Mandatory access control - MAC)


Trong kỹ thuật MAC, chính sách truy cập các đối tượng được thiết lập chung, thống nhất, bắt buộc cho toàn hệ thống bởi người quản trị an ninh hệ thống ( security policy administrator), không phải theo ý thích của các chủ nhân các đối tượng. Kỹ thuật này thường được dùng trong các hệ thống phân cấp có các dữ liệu cần bảo mật cao như các hệ thống mật của chính phủ hoặc quân đội. Có hai đặc điểm quan trọng sau:





  • Nhãn bảo mật (Security label): trong hệ thống MAC, tất cả các chủ thể và đối tượng truy cập đều có nhãn bảo mật gán cho chúng. Để truy cập vào một đối tượng, chủ thể phải có nhãn với cấp bảo mật bằng hoặc cao hơn cấp bảo mật của đối tượng.




  • Kiểm soát xuất nhập dữ liệu: một trong các chức năng tối quan trọng của hệ MAC là kiểm soát việc nhập dữ liệu từ các máy khác vào và xuất dữ liệu ra các thiết bị bên ngoài (kể cả máy in). Trong quá trình xuất nhập, nhãn bảo mật phải luôn luôn được thiết lập và bảo trì một cách thích hợp sao cho các dữ liệu mật luôn luôn được bảo vệ.




Trong kỹ thuật DAC, chủ thể truy cập thừa kế các quyền của user khi truy cập đối tượng. Các quyền đó có thể quá rộng (ví dụ khi user là root, chương trình do root chạy sẽ có quyền truy cập như root) nên nếu chủ thể bị hacker điều khiển, tác hại sẽ lớn. MAC cho phép giới hạn quyền của chủ thể ở mức tối thiểu cần thiết, hạn chế được tác hại nói trên.



II.3-Kiểm soát truy cập dựa trên chức danh (Role-based access control - RBAC)


Trong kỹ thuật RBAC, hệ thống gồm nhiều chức danh khác nhau, tương tự như chức danh trong một tổ chức. Mỗi chức danh đó có quyền thực hiện các hành động khác nhau. Khác với MAC có hành động chỉ giới hạn ở các quyền đọc, viết, hành động trong RBAC từ mức đơn giản đọc, viết đến mức phức tạp là một chuỗi các hành động tạo thành một giao dịch (transaction) hoàn chỉnh. RBAC cũng giống MAC là chính sách truy cập được thiết lập tập trung bởi người quản trị an ninh mà không tùy thuộc vào chủ nhân các đối tượng như với DAC.


Ba quy tắc cơ bản của RBAC:


1. Gán chức danh: một chủ thể truy cập chỉ có thể thực hiện hành động nếu nó được gán một chức danh nhất định trong hệ thống.


2. Cho phép đảm nhiệm chức danh: một chủ thể chỉ có thể được gán một số chức danh nhất định. (tương tự như một nhân viên chưa có bằng đại học thì không thể làm trưởng phòng).


3. Cho phép thực hiện giao dịch: một chủ thể đã được gán một chức danh chỉ được thực hiện các giao dịch mà chức danh đó được phép làm.


RBAC thường được dùng trong các phần mềm thương mại hoặc quân sự, nơi cần bảo mật các giao dịch.



III. SELinux


SELinux là một công nghệ tăng cường an ninh cho nhân Linux. SELinux là sản phẩm chung của cục An ninh Quốc gia Mỹ và một số công ty tin học, đã được tích hợp vào nhân Linux (Linux kernel) từ phiên bản 2.6 trở đi.


Các bản Linux trước 2.6 chỉ dùng phương pháp quản lý truy cập tùy ý (DAC). SELinux thông qua cơ chế mô đun an ninh ( Linux Security Modules - LSM) bổ xung thêm hai phương pháp quản lý truy cập MAC và RBAC vào nhân Linux.




Hình 1: Chính sách an ninh và các module an ninh tăng cường độc lập với nhau trong SELinux.


Trong hình 1, người quản trị an ninh hệ thống dùng các công cụ chính sách (Policy utilities) để thiết lập chính sách an ninh (Security policy) chung cho hệ thống. Mỗi khi nhân Linux cần truy cập một đối tượng nào đó, trước tiên nó sẽ gọi (Request) hàm an ninh trong Security module, hàm này kiểm tra các điều kiện truy cập theo Security policy đã thiết lập rồi cho phép (Response) thực hiện truy cập.



IV. AppArmor


SELinux tuy tốt về mặt an ninh nhưng phức tạp, khó sử dụng. AppArmor là bộ phần mềm được xem là một giải pháp thay thế thân thiện, dễ sử dụng hơn. Các đặc điểm chính:





  • Cũng dựa trên cơ chế mô đun an ninh LSM như SELinux.




  • Mỗi chương trình có một security profile giới hạn quyền truy cập của chương trình ở mức tối thiểu đủ để thực hiện công việc của mình. Các profile này do người quản trị an ninh lập và như vậy áp dụng kỹ thuật MAC vào Linux. Chương trình chỉ được hoạt động trong giới hạn mà security profile của nó cho phép.




  • Ngoài các profile lập bằng tay, AppArmor còn có mode tự học: các hoạt động của chương trình được lưu lại trong log, các log này có thể chuyển thành profile.




  • SELinux dùng secutity label do đó đòi hỏi hệ thống file phải hỗ trợ dạng label đó. AppArmor không dùng secutity label nên áp dụng với hệ thống file nào cũng được.




  • SELinux truy cập file dựa trên số inode (inode number), AppArmor truy cập file bằng đường dẫn (path). Cách nào hay hơn thì còn đang cãi nhau. Một trong những phần mềm an ninh mới nhất dùng kỹ thuật MAC nhưng truy cập file bằng đường dẫn là Tomoyo.




V. Ứng dụng


Các máy để bàn thường chỉ kiểm soát truy cập theo kỹ thuật DAC. Vì vậy các bản Linux desktop không cài sẵn SELinux hoặc AppArmor. OpenSUSE là bản Linux desktop có đầy đủ giao diện đồ họa nhất để thiết lập và quản trị AppArmor (có cả wizard) nhưng mặc định cũng không kích hoạt (enable) AppArmor. Mandriva có các gói phần mềm SELinux và AppArmor trong kho nhưng không cài có lẽ vì đã có Msec. Linux Mint có cài một vài thư viện của hai phần mềm trên nhưng không đầy đủ.


Trong một thế giới kết nối Internet, các máy để bàn đều bị nhòm ngó và có nguy cơ bị biến thành máy tính âm binh (zombie) trong một mạng máy tính ma (botnet) thì có lẽ tăng cường an ninh bằng SELinux hoặc AppArmor vẫn tốt hơn mặc dù như vậy sẽ gây phức tạp hơn cho việc cài thêm các phần mềm mới.


Còn với các máy chủ thì tăng cường an ninh bằng SELinux hoặc AppArmor là đương nhiên.



VI. Ảo hóa hệ điều hành


Một trong những giải pháp nữa để tăng cường an ninh là dùng các máy chủ ảo. Trên một máy chủ vật lý chạy một hệ điều hành chủ, trong hệ điều hành chủ dùng phần mềm ảo hóa để tạo nên một số máy chủ ảo. Mỗi máy chủ ảo chạy một hệ điều hành và chương trình ứng dụng riêng. Các máy chủ ảo cô lập so với nhau và với máy chủ chính. Như vậy khi một máy ảo bị tấn công không ảnh hưởng tới các máy khác.




10/27/09

Website Nhà Trắng chuyển sang dùng phần mềm nguồn mở


Thoughts on the Whitehouse.gov switch to Drupal


by Tim O'Reilly Zxc232 lược dịch


Ngày hôm qua (24/10/09), bộ phận truyền thông mới của Nhà Trắng (phủ Tổng thống Mỹ) tuyên bố với hãng thông tấn AP rằng website whitehouse.gov giờ đã chuyển sang chạy trên nền Drupal, hệ quản trị nội dung nguồn mở. Drupal lại chạy trên nền bộ phần mềm nguồn mở LAMP gồm: hệ điều hành Red Hat Linux , phần mềm website Apache, hệ cơ sở dữ liệu MySQL và các ngôn ngữ lập trình Perl/PHP/Python. Công cụ tìm kiếm của website là Apache Solr.


Đây là một chiến thắng lớn cho phần mềm nguồn mở ở cả hai mặt: Nhà Trắng chấp nhận dùng phần mềm nguồn mở và cũng chấp nhận cả phương thức phát triển phần mềm dựa trên cộng đồng ( các phần mềm nói trên sẽ tiếp tục được nâng cấp, phát triển bởi cộng đồng nguồn mở). Việc làm của Nhà Trắng sẽ là tấm gương cho các cơ quan chính phủ khác noi theo.


Điều đáng để nói là lý do của việc chuyển đổi đó. Theo bài báo của AP thì:



Các quan chức Nhà Trắng mô tả việc chuyển đổi này giống như xây lại móng nhà nhưng không thay đổi diện mạo mặt tiền. Nó sẽ làm cho website của Nhà Trắng an toàn hơn và điều đó cũng đúng cho các site khác của chính phủ trong tương lai ….

Việc lập trình công cộng nghe thì có vẻ kém an toàn, nhưng thực ra là ngược lại, các chuyên gia trong và ngoài chính phủ khẳng định. Các nhà lập trình sẽ hợp tác cùng tìm lỗi và các lỗ hổng an ninh và do đó sản phẩm cuối cùng sẽ an toàn hơn.

Macon Phillips, giám đốc truyền thông của Nhà Trắng nói với hãng AP rằng: “Chúng tôi bây giờ đã có một nền tảng công nghệ cho phép thu được nhiều ý kiến hơn trên site. Đó là một công nghệ tiên tiến nhất và chính phủ tham gia vào đó”.

Một ví dụ: 60.000 người theo dõi bài phát biểu của Obama về chương trình bảo hiểm y tế trước lưỡng viện quốc hội. Một phần ba trong số đó đồng thời lên mạng để trao đổi với các quan chức chính phủ về bài phát biểu đó. Nhưng hồi đó công nghệ còn bị hạn chế (dùng công nghệ của Facebook).

“ Chúng tôi muốn cải tiến các công cụ mà hàng nghìn người truy cập vào website Nhà Trắng dùng để nói chuyện với các quan chức” Phillips nói.

Đây cũng là một khẳng định cho cam kết của Obama làm cho chính phủ cởi mở hơn và minh bạch hơn. Các trợ lý nói đùa rằng không còn gì minh bạch hơn là cho toàn thế giới biết mã nguồn của website

Ngoài an ninh, Nhà Trắng cũng nhìn thấy cơ hội tăng tính linh hoạt của site. Drupal có một thư viện khổng lồ các module do người dùng đóng góp, nó sẽ giúp bổ xung các tính năng để site của Nhà Trắng có nhiều khả năng giao tiếp công cộng hơn từ việc chat online với số lượng lớn cho đến việc hỗ trợ nhiều ngôn ngữ khác nhau. Đó chính là việc thực hiện Công nghệ nền Chính phủ (Government as Platform) mà tôi đã nói. Khi ta xây dựng một nền móng linh hoạt, mở rộng được, những người khác sẽ bổ xung thêm các giá trị vào đó; khi sử dụng một nền móng như vậy, ta được lợi từ nhiều cái mà chính ta không làm.


Tất nhiên không khó để hình dung việc dùng phần mềm nguồn mở sẽ tiết kiệm cho ngân sách IT của chính phủ. Tất cà những phần mềm nói trên đều có thể tải tự do về từ Internet. Nhưng tôi nghĩ là còn nhiều vấn đề hơn thế.


Thứ nhất, chính phủ có rất nhiều yêu cầu đặc biệt (hãy nhớ lại sự ồn ào về cái điện thoại blackberry của Tổng thống Obama). Thứ hai, môi trường kinh doanh ở Washington rất phức tạp, chỉ có ít hãng phần mềm nguồn mở hiểu được nó. Thứ ba, một vụ khai triển IT lớn như thế yêu cầu phải phối hợp nhiều công ty. Theo trang techpresident.com, có không dưới năm công ty tham gia vào vụ chuyển đổi này: nhà thầu chính là General Dynamics Information Systems, hai công ty chuyên về Drupal là Phase 2Acquia, nhà cung cấp dịch vụ hosting Terremark, nhà cung cấp CDN ( Content Delivery Network) Akamai..






10/16/09

Để tránh mã độc Windows: giao dịch ngân hàng bằng LiveCD Linux

Avoid Windows Malware: Bank on a Live CD


krebs_lol_624.gif

(Sau một loạt bài về các vụ ăn trộm tiền trên mạng đăng trong chuyên mục Security Fix , phóng viên Brian Krebs đề xuất một giải pháp chống trộm hiệu quả và rẻ tiền. Bài đăng trên một trong những tờ báo hàng đầu thế giới: Washington Post)

Loạt phóng sự điều tra tôi viết về các tổ chức tội phạm trên mạng ăn trộm hàng triệu đô la của các doanh nghiệp vừa và nhỏ đã tạo ra nhiều câu hỏi của các chủ doanh nghiệp muốn biết làm thế nào để tự bảo vệ trước dạng tội phạm như thế.

Tôi biết một cách đơn giản nhất, hiệu quả nhất: đừng dùng Windows khi truy cập vào tài khoản ngân hàng trên mạng.

Tôi không đưa ra lời khuyên đó một cách dễ dàng. Tôi đã phỏng vấn hàng chục công ty nạn nhân mất từ $10,000 đến $500,000 chỉ vì bị nhiễm một phần mềm mã độc. Tôi đã nghe nhiều câu chuyện đáng tin cậy về vô số cách mà bọn tội phạm dùng để qua mặt gần như mọi hàng rào an ninh mà các ngân hàng dựng nên.

Nhưng dù cho các ngân hàng hoặc bọn tội phạm dùng cách gì, tất cả các cuộc tấn công đều có một mẫu số chung duy nhất không thể phủ nhận được: chúng thành công vì bọn tội phạm có thể cài được một phần mềm mã độc cho phép chúng dành được quyền kiểm soát các máy tính Windows

Tại sao hệ điều hành lại quan trọng như vậy? Hầu như tất cả các phần mềm ăn trộm dữ liệu hiện nay đều được viết để tấn công Windows và sẽ không thể chạy được trên một hệ điều hành không phải Windows. Các mã độc chạy trên Windows hiện tinh vi đến mức mà ngân hàng rất khó phân biệt được đâu là giao dịch của khách hàng và đâu là của hacker.

Cuộc tấn công nổi tiếng ăn trộm tiền của quận Bullit, Kentucky cho thấy bọn trộm đã dùng mã độc làm thất bại hai tuyến phòng thủ chủ yếu của ngân hàng như thế nào. Nhiều ngân hàng có chế độ “kiểm soát kép”: phải có ít nhất hai người có thẩm quyền cùng ký một lệnh chuyển tiền. Trong cuộc tấn công nói trên, bọn trộm cấy phần mềm mã độc vào máy tính của kho bạc, từ đó đăng ký được chính chúng là người có thẩm quyền cho chuyển tiền.

Ngân hàng cũng thường đăng ký các địa chỉ IP của khách hàng và có các biện pháp an ninh phụ khi khách hàng truy cập vào tài khoản nhưng không dùng địa chỉ IP đó. Trong trường hợp quận Bullit và ít nhất ba nạn nhân khác mà tôi đã phỏng vấn trong ba tháng qua, bọn hacker dùng phần mềm mã độc để chuyển hướng kết nối của chúng vào site của ngân hàng đi qua chính máy tính và địa chỉ IP của nạn nhân (do đó đối với ngân hàng, kết nối đến từ IP đã đăng ký).

Phần mềm mã độc cũng giúp bọn trộm làm thất bại hệ thống xác thực hai yếu tố, yêu cầu khách hàng ngoài username và password phải cung cấp thêm một mã xác thực phụ nữa ví dụ mã sáu ký tự do một thẻ tạo mã bỏ túi tạo ra và thay cái khác 30 giây một lần.

Trong hai tháng qua, tôi đã viết về cảnh ngộ khốn khổ của hai công ty nạn nhân mặc dù ngân hàng của họ đã yêu cầu dùng các mã an ninh phụ đó.

David Johnston, chủ công ty Sign Designs, California, mất gần $100,000 ngày 23/7 do một phần mềm mã độc Windows. Ngân hàng của Johston cũng yêu cầu khách hàng ngoài username và password phải nhập mã do thẻ an ninh Vasco tạo ra. Nhưng bọn trộm cài được mã độc vào máy tính của người quản lý và bắt được một mã an ninh khi người đó log in. Sau đó chúng làm chậm quá trình log in của người quản lý đó lại để chúng có thời gian hoạt động.

Cũng bằng cách đó, bọn trộm đã lấy được $447,000 của công ty Ferma.

Tôi không phải người duy nhất khuyên các khách hàng giao dịch ngân hàng qua mạng nên truy cập vào tài khoản từ các máy tính không Windows. Trung tâm Phân tích và Chia sẻ thông tin dịch vụ tài chính (Financial Services Information Sharing and Analysis Center, FS-ISAC), một nhóm các nhà công nghiệp được một số các ngân hàng lớn nhất thế giới hỗ trợ, vừa mới ban hành bản hướng dẫn khuyến nghị các doanh nghiệp thực hiện các giao dịch ngân hàng qua mạng “bằng một máy tính không nối mạng LAN, được bảo mật và khóa hoàn toàn sao cho các hoạt động duyệt Web và gửi email thông thường không thực hiện được”.

Đáp lại loạt bài phóng sự được công bố trên chuyên mục Security Fix của Washington Post, học viện công nghệ SANS, một tổ chức đào tạo và nghiên cứu về an ninh mạng đã treo giải cho sinh viên viết báo cáo về các phương pháp hiệu quả nhất để các doanh nghiệp vừa và nhỏ phòng chống tội phạm trên mạng. Kết quả? Có rất nhiều cách, nhưng cách rẻ nhất và hiển nhiên nhất là dùng một đĩa CD chỉ đọc (read-only), boot được có một hệ điều hành như Knoppix hoặc Ubuntu. Báo cáo của SANS có thể xem ở đây.

Được gọi là “Live CD”, những hệ điều hành này có thể tải miễn phí từ mạng và ghi vào đĩa CDROM. Cái hay của những đĩa này là nó có thể biến một máy tính Windows tạm thời thành máy Linux mà không phải cài bất kỳ cái gì vào ổ cứng. Các chương trình từ Live CD được tải vào bộ nhớ RAM của máy và mọi dữ liệu như lịch sử các trang web đã duyệt hoặc các hoạt động khác sẽ bị xóa hoàn toàn khi tắt máy. Để quay lại Windows chỉ cần khởi động lại và lấy đĩa CD ra khỏi ổ.

Điểm quan trọng hơn là những phần mềm mã độc dùng ăn trộm dữ liệu trong Windows không thể tải hoặc hoạt động được trong Linux. Ngay cả nếu máy Windows đã nhiễm mã độc trong ổ cứng, khi boot máy bằng Live CD, các mã độc đó không hoạt động được.

Arc of Steuben, một tổ chức phi lợi nhuận chăm sóc những người khuyết tật đã theo đúng lời khuyên trên. Tháng 9/2009 tôi có viết bài về bọn trộm đã dùng mã độc để ăn trộm gần $200,000 của họ như thế nào. Kể từ đó, họ đã giới hạn chỉ cho phép dùng các máy Linux trong mạng của họ để giao dịch ngân hàng theo một báo cáo tại đây cho biết.

Tất nhiên một máy tính Mac cũng có thể tránh được mã độc Windows. Nhưng dùng Live CD Linux là cách rẻ nhất. Nếu bạn muốn làm quen xin xem hướng dẫn tại đây.

10/12/09

Cảnh sát bang New South Wales: đừng dùng Windows để giao dịch ngân hàng trên Internet

NSW Police: Don't use Windows for internet banking


By Munir Kotadia
Oct 8, 2009 5:31 PM

(xem thêm bài này cũng của một chuyên gia  tại đây)

Các khách hàng muốn an toàn khi kết nối với các dịch vụ ngân hàng internet thì nên dùng Linux hoặc Apple iPhone, một thanh tra cảnh sát bang New South Wales, Australia khuyên như vậy khi phát biểu thay mặt chính quyền bang trong một buổi điều trần trước quốc hội về tội phạm Internet.

Thanh tra Bruce van der Graaf thuộc đơn vị điều tra tội phạm máy tính nói rằng ông có hai quy tắc để bảo vệ chính ông khỏi bọn tội phạm Internet khi giao dịch ngân hàng qua mạng (banking online).

Quy tắc 1 là không bao giờ kích chuột vào một đường link trên site ngân hàng (nếu site đó là site giả mạo - phishing - đường link trên đó sẽ là một cái bẫy của bọn tội phạm) và quy tắc 2 là không dùng Microsoft Windows (để giao dịch ngân hàng trên mạng).

(Xem thêm: Giám đốc FBI suýt bị sập bẫy tin tặc)

"Nếu bạn muốn dùng Internet để mua bán, hãy khởi động từ một đĩa Linux, Ubuntu hay gì đó tùy bạn. Puppy Linux cũng là một bản Linux nhỏ , khởi động rất nhanh. Bạn sẽ có một hệ điều hành hoàn toàn sạch, chỉ làm việc trong bộ nhớ máy tính và rất an toàn khi giao dịch ngân hàng qua mạng" van der Graaf khuyên.

Sau đó, van der Graaf giải thích cho các dân biểu khởi động máy tính nghĩa là thế nào và nói rằng phương pháp mà ông đề nghị đảm bảo "100 phần trăm là sạch". Ông nói khởi động sạch như vậy sẽ tránh được mọi mã độc đã nhiễm vào máy "Nếu quý vị có một ổ cứng bị nhiễm mã độc ... thì sẽ không sao"

Van der Graaf cũng nhắc đến iPhone mà ông nói là "hoàn toàn an toàn" khi giao dịch ngân hàng qua mạng. "Một phương pháp nữa là dùng điện thoại iPhone của Apple. Nó chỉ chạy được một lệnh một lần do đó không sợ nhiễm mã độc" (ở đây chắc có ý muốn nói iPhone là hệ single-tasking, mà các mã độc thì phải hoạt động trong môi trường multi-tasking).

Van der Graaf nói ông nêu hai phương án thay thế Windows nói trên vì ông lo rằng các đạo luật trong tương lai buộc các nhà cung cấp dịch vụ Internet hoặc các ngân hàng phải kiểm tra máy của khách hàng đã được bảo vệ thì mới cho kết nối vào hệ thống.

"Nếu quý vị đặt ra luật buộc các ISP phải kiểm tra máy khách hàng phải có tường lửa hay một cái gì đó tương tự, thì những người dùng các phương pháp nêu trên không giao dịch được (vì không có tường lửa, nhưng lại rất an toàn. Tóm lại là đừng chỉ dựa vào Windows mà làm luật!)"

(Washingtonpost vừa có một bài hướng dẫn dùng LiveCD Ubuntu để E-Banking)

zxc232

10/7/09

Linux đã cứu hệ thống điện Australia

Linux saves Aussie electrical grid

By Nick Farrell

Thursday, 1 October 2009, 09:52

(Đây là một vấn đề nghiêm trọng. Không biết các hệ thống điều khiển của Việt nam nghĩ sao về chuyện này)

Những người yêu phần mềm nguồn mở đã có phản ứng nhanh cứu được hệ thống phân phối điện Australia sau khi mạng máy tính của phòng điều khiển trung tâm bị nhiễm virus.

Một con virus Windows W32.Virus.CF đã nhiễm vào mạng của hệ thống Năng lượng tích hợp (Integral Energy) và lan ra các máy tính trong phòng điều khiển.

Những kỹ thuật viên của phòng đã thay các máy Windows bị nhiễm virus bằng các máy Linux đang dùng để viết phần mềm. Nhờ thế, virus đã không lan được sang các máy điều khiển còn lại.

Đã có nhiều các cuộc điều tra của các chính phủ trên toàn cầu về an ninh của các công ty điện lực vì sợ rằng các hacker, các tên khủng bố hoặc các chiến binh mạng của các nước thù địch có thể chiếm quyền kiểm soát mạng lưới điện quốc gia. Nay điều lo lắng đó có vẻ đã thành sự thật.

Theo báo Sydney Morning Herald, nhiều máy Windows khác trong hệ thống Năng lượng tích hợp cũng bị nhiễm virus và hơn 1000 máy phải cài đặt lại.

Hệ thống được bảo vệ bởi phần mềm của Symantec và virus W32.Virus.CF đã được đăng ký trong cơ sở dữ liệu của hãng từ tháng hai. Website của Symantec mô tả con virus này là đặc biệt độc hại (particularly sinister), lây nhiễm nhanh và khó tiêu diệt. Nó thiết lập một cổng hậu (back door) trên máy bị nhiễm, cho phép hacker phát lệnh điều khiển máy qua kênh Internet Relay Chat (IRC). (và như vậy, hacker có thể điều khiển được hệ thống truyền tải và phân phối điện).

Chris Gatford, một chuyên gia an ninh mạng của Hacklabs cho rằng sự cố trên xảy ra có thể do một số máy đã không được cập nhật virus hoặc phần mềm của Symantec đã không phát hiện ra do kỹ thuật che dấu của virus.

zxc232

9/22/09

Mã độc nguồn mở!

Why malware writers are turning to open source



Nick Heath - 2009/09/21 11:19:02

Những kẻ viết mã độc (malware) đang nguồn mở hóa sản phẩm của mình để cải tiến nó tốt hơn.

Bằng cách cho người khác truy cập tự do vào mã nguồn của các loại mã độc (malware) chuyên ăn trộm thông tin cá nhân và thông tin tài chính, các tác giả của những mã độc đó hy vọng sẽ mở rộng được tính năng của nó so với các loại trojan thông thường.

Theo Candid Wuest, nhà nghiên cứu của Symantec, khoảng 10% thị trường trojan hiện nay được nguồn mở hóa. Việc chuyển sang mô hình nguồn mở cho phép các kẻ tội phạm bổ xung được tính năng cho các mã độc của chúng.

"Ưu điểm là có nhiều người tham gia vào phát triển một mã độc hơn là chỉ có tác giả, nếu người đó chuyên về mã hóa, họ sẽ bổ xung tính năng mã hóa (để tránh bị các chương trình diệt virus phát hiện), kẻ chuyên về video streaming có thể bổ xung tính năng streaming từ xa," Wuest nói.

Việc nguồn mở hóa các trojan bắt đầu từ năm 1999 khi nhóm Dead Cow công bố mã nguồn của trojan Back Orifice. Gần đây, những tác giả của Limbo Trojan cũng công bố mã nguồn để đẩy nhanh việc sử dụng nó bởi những kẻ lừa đảo trên mạng.

Sau khi ra đời năm 2007, Limbo Trojan trở thành trojan được sử dụng rộng rãi nhất thế giới nhưng tới năm 2008 thì mất ngôi vị đó sau khi Zeus Trojan tinh vi hơn xuất hiện. Trở thành trojan thống trị trên thị trường đem lại cho tác giả của chúng rất nhiều tiền: các máy bị nhiễm và các thông tin cá nhân, tài chính mà trojan đánh cắp được trị giá hàng triệu đô la trên thị trường đen. Limbo Trojan trước đây được bán cho những kẻ lừa đảo trên mạng với giá 350USD, trong khi Zeus Trojan hiện nay có giá từ 1000 đến 3000USD.

Tuy nhiên người đứng đầu bộ phận công nghệ mới của hãng an ninh mạng RSA là Uri Rivner cho biết việc nguồn mở hóa không cứu vãn được vị trí suy đồi của Limbo Trojan.

"Chúng chuyển sang mô hình kinh doanh hệt như các dự án phần mềm nguồn mở khác: cho không phiên bản cơ bản, bán phiên bản tiên tiến hơn hoặc dịch vụ hỗ trợ chuyên nghiệp hoặc dịch vụ cá biệt hóa theo yêu cầu khách hàng. Lúc mới nguồn mở hóa thì đó là tin nóng, nhưng từ đó "khách hàng" ngừng mua nó. Nó không còn là trojan tốt nhất nữa, nhưng vì nó là phần mềm nguồn mở nên những kẻ tội phạm trên mạng có thể thử dùng nó như công cụ đầu tay"

Tính phổ biến của Limbo tiếp tục giảm mặc dù có nhiều tính năng mới được bổ xung cho phép kẻ tội phạm có thể thêm các trường phụ vào mã PIN để đánh lừa các website của ngân hàng, thu thập danh sách các phím đã gõ và các file đã lưu trên máy tính bị nhiễm trojan.

Và trong khi việc nguồn mở hóa không mang lại may mắn cho Limbo, nó còn tạo ra thêm vấn đề cho những kẻ lừa đảo trên mạng: các công ty an ninh mạng cũng có mã nguồn của nó.

Đại đa số trojan lây nhiễm bằng con đường download: nó tự động được tải về máy khi bạn mở một website đã nhiễm độc, hoặc một thông báo của một mạng xã hội thúc dục mọi người tải về một bản cập nhật an ninh nhưng thực ra đó là một trojan.
Các phương pháp lây nhiễm đó tỏ ra hiệu quả hơn các kỹ thuật trước đây như gửi một email có link đến file đã nhiễm hoặc có file đính kèm chứa trojan.
Các nhà phân tích của RSA nói phương pháp mới đã tăng số lần lây nhiễm theo cấp số nhân: tháng 8/2008 hãng chỉ phát hiện được 613 lần lây nhiễm, tháng 8/2009 là 19.102

8/24/09

Lý do số 1 chuyển sang OpenSource là để cải thiện an ninh, bảo mật

Bill Vass là Chủ tịch kiêm Tổng Giám đốc điều hành (Chief Operating Officer) của Sun Microsystems Federal, Inc. Bài dưới đây đăng trên blog của ông, tôi lược dịch lại. Link gốc nhấn vào tên bài.

Thursday Apr 16, 2009


Lý do số 1 chuyển sang phần mềm nguồn mở là để cải thiện an ninh (The No. 1 Reason to Move to Open Source is to IMPROVE Security)


Nếu bạn cũng như tôi đã làm việc lâu năm trong lĩnh vực mã hóa và an ninh mạng thì sẽ thấy rõ ràng rằng các phần mềm mã nguồn mở thương mại an toàn hơn. Thực tế cho thấy  cuối những năm 90 nhiều hệ thống tác nghiệp của các cơ quan tình báo và các hệ thống chiến thuật của bộ Quốc phòng Mỹ chuyển sang dùng phần mềm nguồn mở CHỈ ĐỂ CẢI THIỆN AN NINH. Hiện nay, đại đa số các hệ thống quan trọng của các cơ quan tình báo (những người quan tâm nhất đến an ninh mạng - Cyber security) đều chạy trên các hệ điều hành nguồn mở như Solaris và Linux. Điều đó cũng đúng với các cơ quan khác như cục Hàng không Liên bang (FAA - Federal Aviation Administration), cục Thuế (Internal Revenue Service -IRS) và nhiều cơ quan khác quan tâm về an ninh mạng.

Dưới đây tôi sẽ dẫn bạn đi qua một vài lý do tại sao phần mềm nguồn mở thương mại lại an toàn hơn, rồi sẽ cung cấp cho bạn một vài số liệu cụ thể.

Trước tiên cần nhìn vào dây chuyền xây dựng phần mềm. Thực tế hiện nay, tất cả các phần mềm đều được viết trên toàn cầu. Bạn phải chấp nhận rằng phần mềm của Microsoft, Oracle và IBM được lập trình tại Ấn độ, Trung quốc và Nga. Nếu phần mềm có nguồn mở thì không có gì có thể giấu ẩn bên trong mã. Nếu con ngựa thành Troa được làm bằng thủy tinh thì những người dân thành Troa có kéo nó vào bên trong thành không? KHÔNG. Các chính phủ minh bạch (open gvernments) thì các công dân của họ an toàn hơn và phần mềm nguồn mở cũng an toàn hơn cho bất kỳ ai dùng chúng. Sự giám sát công cộng là một điều rất hay.

Giả sử bạn đang xếp hàng chờ qua cổng an ninh ở sân bay, trước bạn là một người mang một cái cặp "nguồn đóng" khóa kín. Anh ta nói với nhân viên an ninh sân bay rằng đừng lo, hãy tin vào anh ta, mọi thứ trong cặp đã được kiểm tra kỹ rồi. Bạn cảm thấy thế nào? Tốt hơn hết người đứng trước bạn là người mang cặp "nguồn mở" vui vẻ mời nhân viên an ninh kiểm tra mọi thứ trong đó vì anh ta không có gì phải che dấu.

Bạn sẽ cảm thấy an toàn hơn khi đi máy bay với người nào trong hai người nói trên? Vậy thì tại sao bạn lại phải tin một người bán phần mềm chất vào máy chủ của bạn những phần mềm cực kỳ quan trọng mà chẳng ai biết có gì trong đó trừ chính công ty bán phần mềm hoặc một nhóm nhà lập trình? Đôi khi tôi cũng có nghe những người bán phần mềm nguồn đóng nói rằng "nhưng ai cũng có thể nhìn thấy cơ chế bảo mật của phần mềm nguồn mở hoạt động như thế nào". Đó lại chính là điều làm cho phần mềm nguồn mở mạnh hơn phần mềm nguồn đóng.

Các nhà lập trình nguồn đóng chỉ biết nói: "Hãy tin vào chúng tôi". Các nhà lập trình nguồn mở thì có thể nói: "Hãy xem việc đảm bảo an ninh của chúng tôi. Chúng tôi xây dựng tính an toàn bảo mật trong mọi thứ: hồ sơ, mô hình, kiến trúc, quá trình xét duyệt, việc chọn ngôn ngữ lập trình, các tiêu chuẩn lập trình, mã nguồn, các phương pháp kiểm tra, các công cụ, kỹ thuật, cấp phép, quản lý rủi ro, sửa chữa, ....". Bạn có được bức tranh toàn cảnh của toàn bộ quá trình lập trình. Với phần mềm nguồn mở, ưu điểm về an ninh bảo mật không chỉ ở khả năng đọc được mã nguồn mà là cả vòng đời phát triển công nghệ ngay từ đầu đã dựa trên những nền tảng an ninh và mục tiêu an ninh.

Tất cả các loại thiết bị an ninh vật lý đều là nguồn mở. Bạn có thể đến phòng đăng ký sáng chế hoặc xem online trên mạng để biết một cái khóa có cấu tạo thế nào, hoạt động ra sao và chính điều đó làm cho chúng trở nên an toàn hơn. Tôi thường nghe các nhà bán phần mềm nguồn đóng nói rằng họ có những người "đủ năng lực" xem xét mã nguồn của họ. Anh chàng mang cặp "nguồn đóng" trong ví dụ trên có lẽ cũng đã có ai đó "đủ năng lực" trong công ty khám xét cặp của anh ta rồi và nhân viên an ninh sân bay tốt hơn hết là cứ cho cái cặp đó qua cổng an ninh mà không phải xem xét gì cả? Sai. Với cái cặp "nguồn mở" BẤT KỲ AI cũng có quyền khám xét ... kể cả các cơ quan tình báo.

Các cơ quan tình báo là một bộ phận của Cộng đồng Nguồn mở tham gia xem xét mã nguồn. Nhưng nên nhớ rằng có hàng triệu triệu dòng lệnh. Microsoft có khoảng 30 triệu dòng lệnh, Oracle khoảng 15 triệu, Solaris khoảng 20 triệu. Rồi Linux khoảng 12 triệu, MySQL khoảng ...Vài trăm chuyên gia chẳng có cách nào xem hết được cái đống lệnh đó.

Hệ điều hành Solaris của Sun trước đây đã được điểm cao nhất về an ninh mà chính phủ dành cho hệ điều hành dùng trong các tổ chức và ngày nay vẫn thế. Nó được cấp phép bởi chính phủ liên bang, được rà soát bởi các chuyên gia giỏi nhất của Sun, của các cơ quan tình báo và vô số những người thông minh khác trong cộng đồng. Ấy thế mà khi Solaris được công bố mã nguồn, trong vòng một tháng chúng tôi nhận được thông báo về 28 lỗi bảo mật mới do cộng đồng 160,000 người dùng Solaris phát hiện và đã kịp vá lỗi trước khi có kẻ khai thác chúng vào những mục đích xấu.

Cũng những điều nói trên đã xảy ra khi chúng tôi nguồn mở hóa Java. Ngay khi bạn nguồn mở hóa một phần mềm, một cộng đồng người dùng đông đảo sẽ xem xét mã nguồn đó và bạn sẽ kịp vá lỗi trước khi nó gây ra tai họa.

Vì thế tại sao các cơ quan an ninh quốc gia và nhiều tổ chức nhà nước khác đã có một sáng kiến lớn là chuyển sang dùng phần mềm nguồn mở. Sự quan sát, săm soi của công chúng sẽ làm tăng chất lượng của chương trình. Mỗi lần bạn mua bán trên mạng, bạn đều phải dùng thuật toán mã hóa RSA. Thuật toán này là nguồn mở, nó bị phê phán, sửa, rồi lại bị phê phán, lại sửa bởi rất nhiều người cứ như thế cho đến khi nó được đưa vào ứng dụng.

Một ví dụ ngược lại là clipper chip, một con chip mã hóa được chính quyền Clinton tung ra làm thiết bị bảo mật cho các công ty viễn thông. Sau khi ra đời được 48 giờ thì nó bị phá (chip này ra đời năm 1993 và đến 1996 thì chết - ND). Nếu nó là nguồn mở thì sẽ có người phát hiện được lỗi và sẽ kịp sửa trước lúc đưa vào ứng dụng. Nhưng nó lại là nguồn đóng. Thuật toán RSA theo tôi biết thì chưa bao giờ bị phá trừ khi dùng cách tấn công brute force.

Nếu bạn xem Cơ sở Lỗi bảo mật quốc gia (National Vulnerability Database - NVD), bạn sẽ thấy rằng các sản phẩm phần mềm nguồn mở có ít lỗi hơn và mức độ bị khai thác lỗi cũng thấp hơn các sản phẩm nguồn đóng tương đương.

Đồ thị dưới đây là mức độ rủi ro theo báo cáo Airius Risk Report tính toán dựa trên số liệu của NVD. Nhìn vào đó bạn sẽ thấy rằng các sản phẩm nguồn đóng có độ rủi ro (về bảo mật) cao hơn nhiều so với các sản phẩm nguồn mở tương đương.

sun-rr-b-123107-new-small

sun-rr-a-123107-new-small.jpg

Và cũng không phải vì các phần mềm nguồn mở ít người dùng. Có 6 tỷ lần cài đặt Java, 14 triệu lần Open Solaris, 120 triệu lần Open Office và 115 triệu lần MySQL.

8/21/09

Phần mềm nguồn mở có an toàn không?

Một trong những lý luận thường gặp nhất của những người chống Linux (nhưng tuyệt đại đa số không hiểu gì về Linux) là Linux không an toàn. Cái cảm giác mơ hồ về một sản phẩm  do một đám người ảo trên mạng tham gia xây dựng, ai cũng có thể đọc được "ruột" của nó dẫn đến cảm giác bất an cũng là điều dễ hiểu.

Để trấn an nỗi lo lắng đó của những người sử dụng bình thường, có thể dùng các lý lẽ sau đây:

  1. Quân đội Mỹ, quân đội Pháp, các tổ chức tài chính hàng đầu: ngân hàng HSBC, Morgan Stanley, thị trường chứng khoán NewYork, các chính phủ G7, các đại công ty thuộc danh sách Fortune 500, v.v.... đều đang dùng Linux và dùng trong những hệ thống có yêu cầu an ninh rất cao (chi tiết xem thêm ở đây).

  2. Trong một cuộc thi hack các hệ điều hành năm 2008, các hệ điều hành Mac Leopard và Windows Vista đều bị hạ. Duy nhất chỉ có Ubuntu Linux trụ vững được.

  3. Khi bạn mua một thiết bị gia dụng đắt tiền (xe máy, điều hòa, v.v...), giữa một thiết bị được mở toang, bày giữa cửa hàng cho ai cũng xem được từng bộ phận bên trong với một thiết bị niêm phong kín, (của cùng các hãng danh tiếng) cái nào đáng tin cậy hơn?

  4. Cách đây ít năm, Microsoft đã có lần bị tố cáo là để cổng hậu (backdoor) trong Windows cho FBI khi cần có thể vào kiểm soát máy tính. Tất nhiên là hãng ra sức thanh minh. Nhưng ngoài việc tin vào Bill Gate, bạn có cách nào kiểm tra được không? Ngược lại, với phần mềm nguồn mở, về nguyên tắc có thể đọc từng dòng mã nguồn để kiểm tra xem có mã độc nào lẫn trong đó không trước khi cho dịch thành mã máy để chạy. Tất nhiên việc này đòi hỏi phải có một đội ngũ chuyên gia trình độ cao mà chỉ ở quy mô chính phủ hoặc các ngành cần an ninh cao như quân đội, công an có thể tổ chức làm được (và nên làm, như Cuba, một nước có tinh thần cảnh giác rất cao hiện đang làm. Việt nam mà chưa làm thì cũng hơi lạ).

  5. Nếu các lý lẽ nói trên vẫn chưa thuyết phục nổi bạn và bạn cho rằng mình cẩn thận hơn chính phủ Anh, công việc của mình quan trọng hơn chỉ huy tác chiến của quân đội Mỹ và những thứ "linh tinh" đã nêu ở mục 1 thì mời bạn chịu khó xem báo cáo sau đây:



Báo cáo về an ninh: Windows so với Linux


Một đánh giá độc lập của  Nicholas Petreley

Posted in Security, 22nd October 2004 07:26 GMT

(Bản báo cáo này khoảng 50 trang, tôi lược dịch một số phần đáng chú ý. Những lập luận thì có thể còn phải bàn, nhưng hệ tiêu chí đánh giá lỗi bảo mật và số lượng, tỷ lệ lỗi thì đáng tin cậy. Nguyên bản xem tại đây - ND)

Tóm tắt


Nhiều công trình đã được thực hiện để xem Linux có thực sự an toàn hơn Windows hay không. Chúng tôi so sánh Windows và Linux bằng cách tìm hiểu 40 bản vá/thông báo lỗi bảo mật gần đây của Microsoft Windows Server 2003 và Red Hat Enterprise Linux AS v.3 theo các tiêu chí sau:

  1. Mức độ nghiêm trọng của lỗi bảo mật dựa trên các tiêu chí:

    1. Mức độ thiệt hại có thể do lỗi đó gây ra.

    2. Khả năng khai thác lỗi đó dễ hay khó.

    3. Khả năng bộc lộ của hệ thống do lỗi (cần loại truy cập nào để khai thác được lỗi?)



  2. Số lượng lỗi nghiêm trọng.


Kết quả không có gì bất ngờ. Ngay cả theo những tiêu chuẩn chủ quan của Microsoft, 38% lỗi bảo mật của Windows được xem là nghiêm trọng, trong khi đó Red Hat chỉ có 10%. Nếu theo các tiêu chuẩn riêng của chúng tôi, số lỗi nghiêm trọng của Windows chiếm tới 50% tổng số lỗi đã công bố.

Thêm vào đó, chúng tôi đã tìm kiếm trong cơ sở dữ liệu lỗi bảo mật của đội Ứng cứu khẩn cấp máy tính Mỹ ( the United States Computer Emergency Readiness Team- CERT), các dữ liệu ở đó khẳng định kết luận của chúng tôi ở một tầm mức còn lớn hơn. Khi tìm trong cơ sở dữ liệu về lỗi bảo mật của Windows, trong 40 lỗi đầu xếp theo thứ tự giảm dần về mức độ nghiêm trọng thì 39 lỗi thuộc loại trên ngưỡng báo động cao (severe alert) của CERT. Trong khi đó Red Hat Linux chỉ có 3/40 lỗi thuộc loại đó. Nếu tìm chung trong cơ sở dữ liệu Linux, chỉ có 6/40 lỗi đầu vượt ngưỡng nói trên.

Vậy thì tại sao vẫn còn những lời đồn đại rằng Linux không an toàn bằng Windows? Một trong những nguyên nhân là những lời đồn đại đó dựa trên những tiêu chí không đầy đủ và có những lỗ hổng về mặt logic như phân tích dưới đây.

Hóa giải những điều đồn đại


Số lượng ít nên an toàn


Một trong những điều hoang tưởng được lặp lại nhiều nhất về độ an toàn của Windows so với Linux là lập luận rằng Windows có nhiều virus, mã độc và các vụ tấn công an ninh là do các hacker chỉ tập trung vào Windows vì thị phần của nó rất lớn. Linux ít bị hơn vì chiếm thị phần nhỏ, các hacker chưa thèm để ý đến. Và ngụ ý đằng sau lập luận này là Linux và các ứng dụng Linux cũng không an toàn gì hơn Windows và các ứng dụng Windows.

Lý luận này không đứng vững được khi xét đến các phần mềm máy chủ web. Theo một nghiên cứu của hãng NetCrap tháng 9/2004 [1], 68% website chạy trên phần mềm máy chủ web nguồn mở Apache, 21% chạy trên Microsoft IIS (Internet Information Services). Nếu theo lý luận trên, virus, malware nhằm vào Apache và hệ điều hành bên dưới nó phải nhiều hơn, cũng như các cuộc tấn công thành công vào Apache phải nhiều hơn Windows server và IIS.


Tuy nhiên thực tế lại chứng tỏ ngược lại. IIS từ lâu đã là mục tiêu hàng đầu của các loại sâu (worm) và các kiểu tấn công, và nhiều những cuộc tấn công thành công lớn. Sâu Code Red khai thác lỗi tràn bộ đệm của IIS để giành quyền kiểm soát web server đã lan tràn trên 300,000 máy chủ và chỉ dừng lại do bản thân sâu đó được lập trình tự ý ngừng lây nhiễm. Sâu Code Red.A còn lây nhanh hơn và cũng tự ngừng sau ba tuần. Một sâu khác, IISWorm, có tác hại giới hạn chỉ vì người viết nó kém chứ không phải IIS tự bảo vệ tốt.



Sâu cho Apache cũng có, ví dụ Slapper (mặc dù thực ra Slapper khai thác lỗi của OpenSSL, không phải lỗi của Apache). Tuy nhiên, sâu Apache hiếm khi tạo nên thành tựu nổi bật vì tác hại của chúng giới hạn và dễ dàng bị tiêu diệt. Có thể diệt sâu và khôi phục site bị nhiễm chỉ bằng một vài lệnh mà không cần phải reboot máy nhờ vào bản chất module của Linux và Unix.

Có lẽ vì thế mà theo nghiên cứu nói trên của Netcrapt, 47 trong 50 site có thời gian chạy liên tục dài nhất (uptime) chạy trên Apache [2] . Không một site nào trong 50 site trên chạy trên Windows hoặc IIS.

Xem được mã nguồn là dễ tìm ra lỗi để tấn công.


Thành công về an ninh nêu trên của Apache cũng bác bỏ một điều hoang tưởng khác: Phần mềm nguồn mở nguy hiểm hơn phần mềm nguồn đóng vì ai cũng có thể tìm hiểu mã nguồn để tìm ra khe hở tấn công.

Thực tế thì số lượng virus, worm, Trojan, spyware và các loại mã độc khác trên Windows nhiều không đếm xuể (mặc dù mã nguồn của Windows không công khai). Chúng hung hăng tới mức có thể lây nhiễm vào một hệ Windows XP chưa được vá sau 16 phút kết nối Internet, ngắn hơi thời gian cần để tải và cài đặt bản vá [3].

Một ví dụ khác: Apache là phần mềm nguồn mở và thường cũng chạy trên các hệ điều hành nguồn mở, ai cũng đọc được mã nguồn của hai phần mềm đó. Nếu theo lý luận trên, chúng phải bị tấn công nhiều hơn, thời gian uptime ngắn hơn Microsoft Windows và IIS, nhưng thực tế ngược lại như đã nói ở trên. Vậy việc đọc được mã nguồn không mang lại lợi ích gì thêm cho hacker. (Đọc được mã nguồn là một chuyện, có tìm ra khe hở trong đó để tấn công hay không lại là chuyện khác - ND)

Các lý lẽ mơ hồ chỉ dựa trên một tiêu chí


Hai lý lẽ nữa là “Linux có nhiều cảnh báo về lỗi an ninh hơn Windows và vì thế Windows an toàn hơn” và “thời gian trung bình từ lúc phát hiện lỗi đến lúc công bố bản vá của Linux dài hơn của Windows và do đó Windows an toàn hơn”.

Cái lý lẽ sau là bí hiểm nhất vì không hiểu nó dựa vào đâu. Microsoft mất bảy tháng để chữa một trong những lỗi nghiêm trọng nhất (Microsoft Security Bulletin MS04-007 ASN.1 Vulnerability, eEye Digital Security publishes the delay in advisory AD20040210) và có những lỗi Microsoft còn công khai nói họ sẽ không bao giờ chữa.

Thời gian khắc phục lỗi nhanh cũng không phải là một tiêu chí để nói là Windows an toàn hơn Linux. Nếu bạn bị đau tim, bạn muốn vào cấp cứu ở một bệnh viện có thời gian từ lúc vào viện đến lúc xuất viện ngắn nhất hay là đến một bệnh viện có chế độ chăm sóc chu đáo nhất?

Việc lựa chọn phần mềm rõ ràng không chỉ dựa trên một tiêu chí thời gian chữa lỗi ngắn nhất. Ngay số lần cảnh báo lỗi an ninh chung chung cũng vô nghĩa. Phải biết rõ trong đó bao nhiêu lỗi có thể gây hậu quả, trong các hậu quả, bao nhiêu phần trăm là nghiêm trọng? Nên chọn một phần mềm có 100 lỗi nhưng đều nhẹ hoặc chỉ user có quyền đăng nhập mới khai thác được hay chọn một phần mềm chỉ có 1 lỗi nhưng hacker có thể qua Internet chui vào xóa hết dữ liệu?

(Trong phần sau của báo cáo này, tác giả xây dựng một hệ thống các tiêu chí logic, chi tiết để đánh giá mức độ nghiêm trọng của các lỗi bảo mật. Kết quả đánh giá đã trình bày tóm tắt ở phần đầu báo cáo - ND)

So sánh thiết kế của Windows và Linux.


Thiết kế của Windows


Virus, Trojan và các loại mã độc khác thâm nhập được vào Windows vì những nguyên nhân rất thông thường với Windows nhưng xa lạ với Linux:

  1. Windows chỉ gần đây mới chuyển từ thiết kế một người dùng sang thiết kế nhiều người dùng.

  2. Windows được thiết kế theo nguyên tắc đơn khối (monolithic) không phải đa khối (modular) như Linux.

  3. Windows phụ thuộc quá sâu vào mô hình RPC ( Remote Procedure Call).

  4. Windows tập trung vào giao diện đồ họa.


Gần đây Windows mới phát triển từ thiết kế một người dùng (single-user design) sang mô hình đa người dùng (multi-user model)


Thiết kế đầu tiên của Windows là một người dùng (single-user). Vì vậy cả người dùng và phần mềm ứng dụng đều có thể tự do truy cập đến toàn hệ thống, lục lọi mọi chương trình hệ thống hoặc file hệ thống quan trọng. Do đó, virus và các loại mã độc cũng có thể làm vậy vì Windows không cô lập, bảo vệ các chương trình hoặc file hệ thống.

Windows XP là phiên bản Windows đầu tiên có những cố gắng nghiêm chỉnh để cách ly người dùng khỏi hệ thống, mỗi người dùng có các file riêng và quyền truy cập hệ thống hạn chế. Nhưng khi đó, các ứng dụng Windows cũ lại không chạy được vì chúng “quen” được phép lục tung hệ thống. Do đó, Windows XP có một kiểu chạy tương thích (compatibility mode) cho phép các chương trình ứng dụng chạy như thể chạy trên các hệ Windows cũ, có quyền truy cập tự do vào hệ thống. (Và virus cũng có thể làm được vậy - ND)

Như vậy, Windows XP đã là một tiến bộ nhưng vẫn không phải hệ đa người dùng (multi-user) thực sự và do đó vẫn còn các lỗ hổng an ninh của hệ single-user.

Windows Server 2003 là một bước tiến mới về môi trường đa người dùng thật sự nhưng vẫn không thoát khỏi các lỗ hổng an ninh thừa kế từ các đời single-user trước. Vì vậy, Windows server 2003 mặc định phải tắt nhiều tính năng của trình duyệt có nguy cơ về an ninh như ActiveX, scripting,...

(Ở đây có hai vấn đề: a/do mới chuyển sang multi-user nên công nghệ sẽ không hoàn chỉnh, chín muồi được như Linux đã làm từ hàng chục năm nay, b/vẫn phải đảm bảo tương thích với một số ứng dụng cũ nên sẽ tạo lỗ hổng an ninh. Gần đây, Google khi xây dựng hệ Chrome OS đã hứa hẹn là sẽ thiết kế mới hoàn toàn để đảm bảo an ninh. Và chỉ có như vậy mới triệt để -ND)

Windows được thiết kế đơn khối (Monolithic by Design) không phải đa khối (Modular).


Một hệ đơn khối thì các tính năng tích hợp trong một thể thống nhất. Ngược với đơn khối, trong hệ đa khối các tính năng được chia thành các lớp (các module) riêng biệt, mỗi lớp có khả năng truy cập giới hạn đến các lớp khác.

Trong khi một số nhược điểm an ninh của Windows là do thiết kế đơn người dùng như đã nói ở trên, một số nhược điểm khác lại do những quyết định thiết kế cố tình. Microsoft đã loại trình duyệt Nestcape cạnh tranh bằng cách tích hợp trình duyệt Internet Explorer vào hệ điều hành đến mức không thể gỡ ra được. Dùng Help hay Outlook, … đều phải gọi đến IE. Microsoft đã thành công loại các sản phẩm cạnh tranh bằng cách tích hợp ngày càng nhiều các dịch vụ vào hệ điều hành nhưng điều đó cũng tạo nên một con quái vật gồm các dịch vụ phụ thuộc qua lại lẫn nhau chặt chẽ và đó chính là một hệ đơn khối.

Sự phụ thuộc chặt chẽ vào nhau của các dịch vụ tạo ra hai hệ quả xấu.

Thứ nhất, trong một hệ đơn khối, mọi lỗ hổng an ninh của một bộ phận sẽ ảnh hưởng đến tất cả các bộ phận khác phụ thuộc vào nó. Việc tích hợp IE vào hệ điều hành sẽ làm cho một lỗ hổng an ninh của IE sẽ ảnh hường đến hàng loạt ứng dụng khác.

Thứ hai, một hệ đơn khối về bản chất là không ổn định. Khi thiết kế một hệ có quá nhiều quan hệ phụ thuộc lẫn nhau giữa các bộ phận, việc thay đổi một bộ phận có thể gây nên vô số rủi ro, ảnh hưởng dây chuyền đến các bộ phận khác phụ thuộc vào bộ phận bị thay đổi. Một ví dụ điển hình là mỗi lần cập nhật hoặc vá lỗi một bộ phận của Windows thường làm hỏng các bộ phận hoặc ứng dụng khác (nhất là ứng dụng của bên thứ ba).

Windows phụ thuộc quá nhiều vào mô hình RPC.


RPC là chữ viết tắt của Remote Procedure Call (gọi thủ tục từ xa). Một chương trình gửi một message lên mạng để bảo một chương trình khác làm một việc gì đó. Sở dĩ có từ “remote – từ xa” là vì chương trình được gọi có thể nằm trên cùng máy, trên máy khác trong mạng hoặc thậm chí trên Internet.

RPC là một nguy cơ an ninh tiềm ẩn vì nó cho phép một máy khác trong mạng có thể bảo máy của bạn làm một việc gì đó. Windows phụ thuộc vào RPC đến mức mà bạn không thể tắt RPC đi ngay cả khi máy không nối mạng. Một số lỗi an ninh nghiêm trọng của Windows Server 2003 (xem bảng dưới đây) là do khe hở an ninh trong chính chức năng RPC chứ không phải trong chương trình sử dụng RPC. Cách thông thường nhất để khai thác một lỗ hổng RPC là tấn công dịch vụ sử dụng RPC.

Điều quan trọng là RPC không phải lúc nào cũng cần và vì thế rất khó hiểu là tại sao Microsoft lại dựa vào nó một cách bừa bãi đến vậy. Nếu một web site dùng một database server và một web server trên cùng một máy thì database server không cần phải dùng đến RPC để liên lạc với web server (nhưng lại vẫn phải dùng nếu là sản phẩm của Microsoft).

Nhắc đến điều đó vì chính sâu Slammer, một trong những sâu nguy hiểm nhất từng tấn công Internet, khai thác một trong những lỗi RPC của Microsoft. Slammer lây nhanh qua nhiều hệ thống đến nỗi thực tế đã làm tê liệt Internet.

Windows chú trọng vào giao diện đồ họa máy để bàn quen thuộc


Microsoft xem giao diện Windows quen thuộc của máy để bàn là một ưu điểm khi dùng Windows Server 2003.

Vì thế người dùng đăng nhập vào Windows Server với tên người quản trị (admininstrator) và có toàn quyền với hệ thống. Như vậy, khi dùng một chương trình dễ bị lỗi an ninh như IE, toàn server sẽ bị nguy hiểm.

(Trong Linux server thì không như vậy. Xem phần sau)

Thiết kế của Linux


Theo kết quả một cuộc điều tra mùa hè 2004 của Evans Data Linux Developers, 93% nhà lập trình Linux đã gặp dưới hai sự cố khi máy Linux bị lỗi. 87% chỉ gặp 1 sự cố và 78% chưa bao giờ gặp một cuộc xâm nhập nào vào máy Linux. Trong một số ít trường hợp bị xâm nhập, nguyên nhân chủ yếu là do đặt cấu hình an ninh không tốt.

92% số người được hỏi chưa bao giờ gặp một virus, Trojan hoặc các loại mã độc khác trên các máy Linux.

Virus, Trojan và các loại mã độc khác hiếm khi nhiễm được vào một hệ Linux một phần vì các lý do sau:

  1. Linux có thiết kế multi-user lâu đời, được rà soát, bổ xung đầy đủ.

  2. Linux hầu như dựa trên thiết kế đa khối.

  3. Linux không phụ thuộc vào RPC, các dịch vụ thường mặc định được cấu hình không dùng RPC.

  4. Các máy chủ Linux là lý tưởng để quản trị từ xa, không trực tiếp.


Linux có thiết kế multi-user lâu đời, được rà soát, bổ xung đầy đủ.


Ngay từ đầu, Linux xây dựng theo mô hình Unix đã là một hệ multi-user, mỗi user chỉ có quyền truy cập hạn chế, vừa đủ vào hệ thống vào các ứng dụng. Khi một user chạy một ứng dụng, ứng dụng đó chạy theo các quyền hạn chế của user, chỉ ghi vào thư mục riêng của user, không thay đổi các file hệ thống và cả các thư mục của user khác trừ khi người quản trị cho phép.

Điều quan trọng nữa là mọi tính năng, dịch vụ mà Linux cung cấp hầu hết đều dưới dạng các module thư viện (modular libraries). Do đó, khi một trình soạn văn bản cần tô màu một ảnh JPEG, chức năng tô màu sẽ chạy với cùng quyền truy cập như trình soạn văn bản, tức là với quyền của user sử dụng trình soạn văn bản đó. Nếu có một lỗ hổng an ninh trong thủ tục tô màu, hacker khai thác lỗ hổng đó cũng chỉ có quyền như user và do đó hạn chế thiệt hại vì không tác động được vào hệ thống. Đó chính là ưu điểm của thiết kế đa khối.

Do bản chất đa khối của Linux, khi gửi một email có nhiễm virus cho một Linux user, virus đó không thể lan ra toàn bộ máy. Dù trình email client có tồi đến thế nào đi nữa thì virus cũng chỉ có thể nhiễm, làm hỏng thư mục riêng của user. Trình duyệt Linux không hỗ trợ các đối tượng kém an toàn như ActiveX controls, và dù nó có hỗ trợ thì một ActiveX control chứa mã độc cũng chỉ chạy với quyền của user đang dùng trình duyệt, không thể phá hoại hệ thống hoặc các user khác được.

Ngay cả các dịch vụ, như máy chủ web, cũng chạy như một user với quyền truy cập hạn chế. Ví dụ trong bản Linux Debian, máy chủ web Apache chạy với quyền của user www-data. Nếu hacker chiếm được quyền kiểm soát Apache, hacker đó cũng chỉ tác động được đến các file mà user www-data là chủ (owner). Cơ sở dữ liệu MySQL, thường dùng chung với Apache, được chạy với quyền của user mysql. Do đó nếu Apache có lỗ hổng, hacker kiểm soát được Apache cũng không kiểm soát được MySQL vì MySQL do một user khác làm chủ.

Ngoài ra, các user điều khiển các dịch vụ như nói ở trên thường không có quyền truy cập các lệnh. Vì vậy nếu hacker nắm được quyền điều khiển user mysql cũng không thể phát ra các lệnh cho máy chủ Linux vì user mysql không có quyền chạy lệnh.

Ngược hẳn lại các điều nói trên, Windows ban đầu được thiết kế để mọi user và mọi ứng dụng đều có quyền admininstrator với mọi file của toàn bộ hệ thống. Chỉ sau này, Windows mới hạn chế dần quyền của user. Windows Server 2003 đã gần đạt được đến mức đó. Nhưng phương pháp luận của Microsoft để dựng rào cản giữa user và hệ thống vẫn là dựa trên cơ sở thiết kế cũ mà không thiết kế lại một cách cơ bản để hỗ trợ khả năng multi-user và đảm bảo an ninh.

Thiết kế Linux là đa khối, không phải đơn khối


Linux là một hệ điều hành phần lớn theo thiết kế đa khối từ nhân (kernel) đến các ứng dụng. Trong Linux hầu như không có cái gì liên kết chặt với cái khác đến mức không gỡ ra được. Hệ thống Help hoặc trình email không phụ thuộc vào một động cơ trình duyệt (browser engine) duy nhất. Có thể dễ dàng cấu hình trình email dùng động cơ trình duyệt có sẵn hoặc bất kỳ trình duyệt nào khác để xem các thư HTML. Vì vậy một lỗ hổng an ninh trong động cơ trình duyệt sẽ ảnh hưởng rất ít hoặc không ảnh hưởng đến các ứng dụng khác vì có ít hoặc không có ứng dụng nào phụ thuộc vào trình duyệt đó.

Không phải mọi thứ trong Linux đều đa khối. Hai môi trường đồ họa phổ biến nhất GNOME và KDE có thiết kế ít nhiều đơn khối; ít nhất cũng đủ để nếu update một phần của GNOME hoặc KDE có thể có nguy cơ làm hỏng các phần khác. Tuy nhiên, chúng cũng không đơn khối đến độ chỉ cho phép chạy các ứng dụng viết riêng cho chúng. Có thể chạy các ứng dụng GNOME trong KDE và ngược lại.

Nhân Linux dùng các module driver, nhưng về cơ bản nó là nhân đơn khối trong đó các dịch vụ của nhân phụ thuộc lẫn nhau. Tuy nhiên, tác hại của tính đơn khối này cũng được giảm đến mức tối thiểu vì nhân Linux được thiết kế sao cho nhỏ nhất. Linux đi theo triết lý sau: “Nếu một việc có thể làm được bên ngoài nhân, thì nó phải được làm ngoài nhân”.

(Hình như điều này bây giờ đã thay đổi, xem tại đây - ND)

Ngược lại, lỗi driver màn hình là nguyên nhân phổ biến nhất dẫn đến cái-chết-màn-hình-xanh của Windows. Đó là vì Windows tích hợp đồ họa vào nhân, lỗi đồ họa sẽ làm sập cả hệ thống. Trong Linux, trừ một vài trường hợp ngoại lệ như với driver màn hình Nvidia, Linux buộc tất cả các driver card màn hình chạy bên ngoài nhân. Một lỗi của driver có thể làm hỏng môi trường đồ họa nhưng không làm sập cả hệ thống. Chỉ cần khởi động lại môi trường đồ họa mà không phải khởi động lại máy tính.

Linux không bị phụ thuộc vào mô hình RPC (Remote Procedure Call)


Như đã nói ở trên, Windows phụ thuộc nặng vào RPC và cho chạy nó cả khi không cần thiết. Điều đó dẫn tới những nguy cơ an ninh nghiêm trọng.

Phần lớn các chương trình Linux khi cài đặt đều mặc định tắt truy cập mạng. Ví dụ cơ sở dữ liệu MySQL thường được cài sao cho nó không nghe các lệnh từ mạng. Nếu bạn xây dựng một website dùng Apache và MySQL chạy trên cùng một máy thì Apache sẽ liên hệ trực tiếp với MySQL và MySQL sẽ không liên hệ gì với mạng. (Ngược lại Microsoft SQL Server luôn luôn lắng nghe mạng dù có cần hay không). Nếu muốn MySQL nghe các lệnh đến từ mạng thì phải thiết lập điều đó bằng tay, rồi xác định user và máy được phép truy cập đến MySQL.

Ngay cả khi các ứng dụng Linux mặc định sử dụng mạng, chúng cũng thường được cấu hình để chỉ trả lời máy cục bộ, bỏ qua các yêu cầu của các máy khác trong mạng.

Các máy chủ Linux là lý tưởng để quản trị từ xa


Máy chủ Linux thường có thể và nên cài như một hệ “không đầu – headless” (không có màn hình) và quản trị từ xa (truy cập máy chủ từ một máy khác trong mạng, không dùng bàn phím, màn hình nối trực tiếp vào máy chủ - ND). Đó là kiểu cài lý tưởng cho máy chủ vì quản trị từ xa không có những nguy cơ mà quản trị tại chỗ có thể gặp.

Ví dụ, bạn có thể log in vào máy để bàn của bạn như một user thường với quyền hạn hạn chế rồi quản trị máy chủ Linux qua một giao diện quản trị web (Admininstration consol). Ngay cả những lỗi an ninh nguy hiểm nhất của trình duyệt web cũng chỉ ảnh hưởng đến user thường mà bạn đã dùng log in vào máy để bàn của bạn, không ảnh hưởng gì đến máy chủ.

(webmin là một trong những giao diện quản trị web quản trị được khá nhiều thứ trên máy chủ - ND)

Trong các phần tiếp theo, tác giả xây dựng một hệ thống các tiêu chí đánh giá lỗi bảo mật, áp dụng cụ thể vào 40 lỗi được công bố gần thời điểm viết báo cáo và kết quả tìm kiếm trong cơ sở dữ liệu lỗi của CERT. Kết quả tóm tắt đã được nêu ở phần đầu báo cáo.


Chi tiết đọc thêm tại đây.



3/31/08

Thi hack ba hệ điều hành lấy 20.000USD

Một cuộc thi hack máy tính mới đây được tổ chức. Ba chiếc notebook cài các hệ điều hành Windows Vista, Mac OS X và Ubuntu Linux với các bản vá lỗi mới nhất. Cuộc thi tiến hành trong ba ngày. Trong ngày đầu, người nào hack được máy nào sẽ được thưởng 20.000 USD và chiếc máy tính đó. Sang ngày thứ hai, giải thưởng rút xuống còn 10.000 USD + notebook và tới ngày thứ ba thì chỉ còn 5.000 USD. Luật chơi cũng nới lỏng dần: trong ngày đầu chỉ được tấn công hệ điều hành, sang ngày thứ hai được phép khai thác lỗi của các phần mềm tiêu chuẩn và tới ngày thứ ba thì được dùng mọi biện pháp có thể.

Máy đầu tiên bị hạ vào ngày thứ hai là MacBook Air chạy hệ điều hành Mac Leopard khi một lỗi trong trình duyệt Safari bị khai thác. Sang ngày thứ ba, đến lượt chiếc laptop Fujitsu U810 cài Windows Vista bị hạ khi các hacker khai thác một lỗi trong phần mềm Adobe Flash.

Hết thời hạn ba ngày, duy nhất chỉ còn chiếc Sony Vaio cài Ubuntu Linux là trụ vững được, chưa bị hack. Nếu cho thêm thời gian? Không ai biết được. Dù sao Linux cũng phần nào chứng minh được tiếng tăm an toàn của nó xưa nay.

Cuộc thi này nối tiếp cuộc thi năm ngoái chỉ nhằm hack hệ điều hành Mac OS X. Chi tiết xem thêm tại đây.