Các kỹ thuật Seo Web hay và phổ biến nhất

(Tungngo-it.blogspot.com) - Những kỹ thuật áp dụng trong Seo là gì? 


SEO (Search Engine Optimization) – là một tập hợp các phương pháp nhằm nâng cao thứ hạng của một website. Các kỹ thuật seo bao gồm: onpage, offpage, social, local, images, video... Đối với một Seoer, khi làm seo thường kết hợp kỹ thuật seo mũ đen và seo mũ trắng.



Phân tích từ khóa 
Việc phân tích từ khóa là một kỹ thuật hết sức quan trọng trong seo nó giống như nền móng của một ngôi nhà nếu làm tốt sẽ đem lại hiểu quả cao cho toàn bộ dự án seo. Ngược lại nếu phân tích từ khóa không tốt nó sẽ làm toàn bộ dự án thất bại ta có thể nhìn ví dụ dưới đây: Ví dụ: Ta seo những từ khóa về sản phẩm dịch vụ của mình có nhiều người tìm kiếm mà lên top tức là ta đã có 10% cơ hội bán hàng của số lượng những lượt tìm kiếm về từ khóa đó. Ngược lại ta đi seo những từ khóa chẳng ai tìm kiếm liên quan đến sản phẩm dịch vụ dù tốn rất nhiều công sức để lên top nhưng không đem lại bất kì doanh thu nào vì ta đang lên đỉnh 1 mình.

Tối ưu onpage 
Hãy viết thẻ tiêu đề một cách hấp dẫn và nói lên toàn bộ nội dung của bài viết bạn có 70 ký tự và 11 chữ cho mỗi thẻ tiêu đề.

Nội dung bài viết chất lượng và duy nhất tránh copy bài viết của người khác, tránh viết bài ẩu đả không có chiều sâu. Trong seo nội dung là vua, black link là hoàng hậu, like share, G+ là thái tử và công chúa. Mật độ từ khóa phù hợp nên nhớ danh giới giữa spam và seo rất mong manh mật độ phù hợp nhất 2 – 3.5%. Thường xuyên publish nội dung tươi mới refesh sáng tạo giàu ý tưởng tạo sự hứng thú cho người dùng. Làm sao để URL trở nên thân thiện nhất cho seo Nếu làm tốt vấn đề này thì thứ hạng website trên công cụ tìm kiếm của bạn sẽ được cải thiện đáng kể. Tối ưu tốc độ tải trang làm sao cho website load nhanh nhất có thể nếu được như tên lửa thì càng tốt. Một số kỹ thuật seo giúp website nhanh như hổ báo tránh sử dụng flash trong website vừa chậm lại không chuẩn seo, không dùng table, không dùng ảnh quá nặng, tối ưu css, java script, nên thiết kế web với div 100%

Tối ưu OFF PAGE ? 
Hãy kiếm những diễn đàn chất lượng để đặt black link chất lượng hơn số lượng ăn ít mà ngon. Đa dạng hóa anchor text black link tránh spam mãi mãi một từ khóa (mãi mãi một tình yêu). Chú ý không dùng các phần mềm đăng tin để giải backlink nhằm tránh google cho là spam link không tự nhiên dồn dập.

Hãy tích hợp SEO local ngày nay đang là một xu thế mà google đánh giá khá cao.

Phân tích và đánh giá chất lượng với Google Analytic & Webmaster Tools 
Việc phân tích này hết sức quan trọng giúp ta có những chiến lược seo thích hợp nhất. Giúp dự án seo tránh được những sai lầm đáng tiếc

Và cuối cùng, Chúc các bạn sớm lên ĐỈNH =))

Tùng Ngô

Từ Khóa :

  • kỹ thuật seo onpage
  • kỹ thuật seo web
  • kỹ thuật seo là gì
  • kỹ thuật seo từ khóa
  • kỹ thuật seo cơ bản
  • kỹ thuật seo google
  • kỹ thuật seo copywriting
  • các kỹ thuật seo
  • các kỹ thuật seo web
  • các kỹ thuật làm seo
  • kỹ thuật seo mũ đen
  • kỹ thuật seo top google
  • kỹ thuật làm seo



2 công cụ check backlink uy tín nhất hiện nay cho Seoer

(Tungngo-it.blogspot.com) -  Hiện nay có rất nhiều các trang Web check backlink hiệu quả cho các SEOER nhưng hôm nay mình sẽ giới thiệu đến các bạn 2 công cụ check backlink hiệu quả và uy tín nhất hiện nay.

1. Ahref

Ahref là một trong những công cụ check backlink mạnh mẽ hiện nay . Vì những tín năng vượt trôi của nó nên khi người dùng phải chịu phí. Bạn vẫn có thể sử dụng một số tính năng miễn phí của nó .



Ahref sẽ cung cấp thông tin về số lượng backlink trỏ về theo ngày, tuần, tháng, năm. Số lượng tên miền, IP, dofollow, nofollow, số lượng link bị mất đi, số lượng link trỏ về tên miền, hay bài viết, top content của trang, số lượng anchortext…liên kết gãy…và rất nhiều thứ khác nữa. Bạn hãy sử dụng và khám phá chúng nhé. Nó sẽ cho bạn biết khá nhiều thông tin để bạn có thể lên một kế hoạch SEO hoàn chỉnh nhất.

2. SEMRush

Đây là một công cụ seo  khá hay và cũng mạnh mẽ để phân tích nhiều khía cạnh.



Công cụ seo này cung cấp cho bạn số lượng backlink trỏ về, referring domains, top anchortext......... Ngoài ra còn cung cấp nghiên cứu từ khóa, nghiên cứu quảng cáo, danh sách các publisher AdSense trên blog của bạn, những điều mà Ahref chưa làm được .
Link đăng ký : http://www.semrush.com/

Tùng Ngô

Từ Khóa :
check backlink mien phi
check backlink free
check backlink href
check backlink doi thu
check backlinks google
check backlinks of website
check backlinks to my site
check backlink google
check backlinks online
check backlinks to my website
check backlink website
check backlink tool


Kết hợp ẩn mã với mật mã nhằm tăng cường độ an toàn trong truyền tin

Mật mã và ẩn mã là hai phương pháp được sử dụng phổ biến trong việc bảo vệ thông tin trên các kênh truyền không tin cậy. Tuy nhiên, những phương pháp này thường được sử dụng độc lập trong quá trình truyền tin. Sự kết hợp mật mã với ẩn mã nhằm làm tăng độ tin cậy và an toàn cho thông tin được truyền đi.Bài báo này giới thiệu một phương pháp mới kết hợp ẩn mã với mật mã theo hướng không sửa vật phủ.
Giới thiệu

Mật mã và ẩn mã đều là những phương pháp đảm bảo sự an toàn cho thông tin được trao đổi trên các kênh truyền không tin cậy. Phương pháp mật mã nhằm che giấu thông tin mật bằng cách biến đổi thông tin ban đầu (bản rõ) thành một dạng khác (bản mã) bí mật. Phương pháp ẩn mã lại tập trung vào việc giấu đi sự tồn tại của thông tin trong các vật phủ (hình ảnh, âm thanh, văn bản,…).

Mật mã là một ngành khoa học có lịch sử phát triển lâu đời và được ứng dụng rất nhiều trong thực tế, đặc biệt trong các cuộc chiến tranh. Đây là lĩnh vực nghiên cứu về các phương pháp truyền tin theo cách mã hóa dữ liệu hoặc thông báo thành bản mã để không ai đọc được nếu không có khóa giải mã phù hợp. Thông thường, mật mã được chia thành: Mật mã khóa bí mật (hay còn gọi là mật mã đối xứng), mật mã khóa công khai (mật mã bất đối xứng), chữ kí số và hàm băm [1].

Mật mã ngày càng được ứng dụng rộng rãi và trở thành những tiêu chuẩn đảm bảo truyền thông tin an toàn, tin cậy, kiểm soát truy nhập tài nguyên cũng như những giao dịch điện tử. Nó được sử dụng để giới hạn truy cập tới những dữ liệu nhạy cảm. Trong thực tế, mật mã là thành phần rất quan trọng trong những chính sách an toàn của tổ chức.

Ẩn mã là thuật ngữ xuất phát từ tiếng Hi Lạp có nghĩa là “cách viết được che phủ” nhưng vẫn có thể tìm ra được bản gốc và đã có từ năm 440 trước công nguyên [2]. Các tài liệu lịch sử cho thấy con người đã áp dụng phương pháp ẩn mã như viết thông báo lên bảng gỗ sau đó phủ bằng một lớp sáp ong hoặc cạo trọc đầu và xăm thông báo rồi đợi tóc mọc dài lại,... Sau này, người ta đã sử dụng các loại “mực vô hình” được làm từ các nguyên liệu hữu cơ như sữa, nước hoa quả… và các bản viết chỉ hiện lên khi được hơ nóng trên lửa. Vào thế kỉ 21, nhiều nước đã bắt đầu sử dụng ẩn mã để bảo vệ tiền tệ không bị làm giả, bằng những loại mực đặc biệt, thuốc nhuộm, sợi chỉ và những mảnh vải nhỏ nhúng bên trong để kí hiệu giá trị của đồng tiền. Khi Internet ra đời, kéo theo sự phát triển mạnh mẽ của phương pháp ẩn mã để trao đổi các thông tin một cách bí mật trên các kênh không an toàn. Có rất nhiều phương pháp ẩn mã khác nhau: ẩn mã trong ảnh, âm thanh, video, văn bản,… [4]

Kết hợp ẩn mã và mật mã

Có hai cách để thực hiện kết hợp ẩn mã và mật mã: thứ nhất là mã hóa thông báo rồi ẩn bản mã này trong vật phủ; thứ hai là xác định những bit giống nhau giữa thông báo và vật phủ sau đó lưu vào các vị trí khác nhau dưới dạng một vector [3].

- Cách kết hợp thứ nhất đã được sử dụng rất phổ biến. Trước tiên, người gửi mã hóa thông báo bí mật bằng một phương pháp mật mã nào đó để biến thành một bản mã khó hiểu. Sau đó, người gửi tiếp tục sử dụng kĩ thuật ẩn mã để che giấu sự tồn tại của nó trong một vật phủ. Hình 1 dưới đây mô tả quá trình thực hiện của cách thức này so với phương pháp ẩn mã thông thường (không dùng mật mã).

Hình 1: Mô hình ẩn mã thông thường và kết hợp với mật mã

Theo mô tả trong hình 1, ở cách kết hợp với mật mã thì mô hình có thể tạo nên sự bảo vệ hai lớp, ngoài việc giấu đi nội dung thực của thông báo, thì do có ẩn mã nên kẻ tấn công khó có thể biết được sự có mặt của bản mã đó trong vật phủ.

- Cách kết hợp thứ hai sử dụng lược đồ hoàn toàn khác, có phần mới lạ và đặc biệt hơn rất nhiều. Sau khi bên gửi và bên nhận thống nhất một vật phủ thì người gửi sẽ xác định các bit của thông báo bí mật mà trùng khớp với các bit trong vật phủ rồi lưu vào thành một vector chứa các vị trí khác nhau của vật phủ. Thông tin truyền đi chỉ đơn giản là vector này chứ không phải là thông báo ban đầu hay vật phủ. Phương pháp này chính là sự kết hợp ẩn mã và mật mã không sửa vật phủ.

Phương pháp kết hợp ẩn mã và mật mã không sửa vật phủ

Đây là phương pháp lần đầu tiên được Khalil Challita và Hikmat Farhat giới thiệu vào năm 2011 [3]. Ý tưởng của cách tiếp cận này chưa từng được đưa ra trong bất cứ một tài liệu nào trước đó [3]. Đầu tiên, bên gửi và bên nhận đồng ý sử dụng một vật phủ. Người gửi không phải chỉnh sửa vật phủ, mà chỉ xác định những bit của thông báo bí mật nào giống với các bit trong vật phủ, thì lưu vào các vị trí khác nhau (chẳng hạn trong vật phủ) dưới dạng một vector. Vector này sau đó được gửi (thậm chí có thể tăng cường sự an toàn bằng cách mã hóa vector) cho người nhận. Khi ấy, kẻ tấn công có thể chặn được vector đã gửi (có thể đã được mã hoá) nhưng không thể biết được vật phủ tương ứng. Vì vậy, để phá được lược đồ ẩn mã này, kẻ tấn công không những phải chặn được thông tin bí mật đã gửi mà còn phải biết được vật phủ. Hình 2 mô tả quá trình thực hiện của phương pháp này.


Hình 2: Mô hình ẩn mã kết hợp với mật mã không sửa vật phủ 

Cách ẩn mã này có một khó khăn ở khâu thống nhất vật phủ giữa người gửi và người nhận, để kẻ tấn công không thể biết được. Thông thường, hai bên đều có trước một tập các vật phủ và kí hiệu vật phủ được sử dụng trong mỗi lần trao đổi. Thực chất ở đây không sử dụng bất kỳ một kĩ thuật ẩn mã cũng như mật mã thông thường nào. Đây chính là sự sáng tạo hết sức tinh tế của các tác giả đã đề xuất ra phương pháp này. 

Quá trình mã hóa rất thông minh, thể hiện ở chỗ tìm ra các bit giống nhau giữa thông báo và vật phủ rồi lưu thành một vector chứa các vị trí bắt đầu và kết thúc của các chuỗi bit con đó. Sự ẩn mã cũng là một cách thực hiện tinh tế không kém vì thực chất là ẩn vào vật phủ thông qua vector vừa xác định mà không hề thay đổi vật phủ. Do vậy, thông tin truyền đi không phải là một vật phủ có nhúng thông báo mà chỉ đơn giản là một vector chứa các vị trí khác nhau của vật phủ. Người nhận có vật phủ và dựa vào vector này để xác định các vị trí trong vật phủ từ đó để ìm ra các bit tương ứng và đó cũng chính là các bit trong thông báo của người gửi.
Dưới đây là thuật toán thực hiện dựa trên cách phân tích cú pháp tĩnh (Static Parsing Steganography – SPS), gồm hai bước [3]:

Bước 1: Vật phủ (cả bên gửi và bên nhận chia sẻ) và thông báo bí mật được chuyển thành các bit, kí hiệu các tệp đầu ra này lần lượt là Object1 và Secret1.

Bước 2: Mã hóa thông báo bí mật Secret1 theo Object1. Ý tưởng được dựa trên bài toán tìm xâu con giống nhau dài nhất của hai xâu, sử dụng phương pháp cây hậu tố tổng quát (Genralized Suffix Tree). Lựa chọn phương pháp này vì nó có thể thực hiện trong thời gian tuyến tính.

Thuật toán sử dụng chiến lược chia để trị và thực hiện như sau: Bắt đầu với toàn bộ các bit của Secret1 và tìm một xâu có các bit giống nhau ở cả Secret1 và Object1. Nếu tìm được một xâu thỏa mãn yêu cầu thì thuật toán sẽ lưu các chỉ số bắt đầu và kết thúc của xâu Secret1 mà xuất hiện trong Object1 vào một tệp đầu ra là Output1. Nếu không tìm thấy, thì thuật toán tiếp tục đệ quy để tìm ra một xâu giống nhau trong nửa trái và nửa phải của Secret1 vớiObject1. Tiếp tục lặp quá trình này cho tới khi tìm ra được tất cả các bit của Secret1 khớp với các bit của Object1.

Thời gian thực hiện của thuật toán SPS có thể được xác định bằng quan hệ truy hồi T(n) = 2T(n = 2) + O(n). Vì hàm gọi đệ quy chia bài toán thành 2 bài toán con có độ phức tạp bằng nhau khi tìm một xâu giống nhau trong nửa trái và nửa phải của Secret1 với Object1. Ngoài ra còn một thao tác kiểm tra xem toàn bộ các bit của Secret1 có thuộc Object1 không ứng với độ phức tạp về thời gian là O(n). Do vậy, độ phức tạp về thời gian của thuật toán này là O(n logn) [3].

Kết luận

Kết hợp ẩn mã và mật mã là một phương pháp mới, giúp nâng cao độ an toàn trong việc trao đổi thông tin bí mật trên các kênh truyền không tin cậy, điều đặc biệt là không cần thay đổi vật phủ. Mã hóa thông tin kết hợp với ẩn mã giống như việc áp dụng bảo vệ nhiều lớp, thông báo sẽ được mã hóa rồi giấu vào trong vật phủ bằng một phương pháp ẩn mã bất kì mà hai bên đã thống nhất. Ở Việt Nam, ẩn mã vẫn còn là một lĩnh vực khá mới và chưa được quan tâm nhiều như mật mã. Tuy nhiên,trong tương lai điều này có thể sẽ thay đổi và có thể phát triển để xây dựng thành công những giao thức ẩn mã này.
Cách ngăn chặn và phòng ngừa hiệu quả Máy tính nhiễm virus

Cách ngăn chặn và phòng ngừa hiệu quả Máy tính nhiễm virus

Đa số người dùng máy tính đều đã từng gặp trường hợp, hệ thống bị các loại virus, phần mềm độc hại hay phần mềm gián điệp xâm nhập khiến máy chạy chậm, mất ổn định, gây tê liệt nhiều chương trình và thậm chí xóa dữ liệu trên hệ thống. Nếu người dùng nghi ngờ hệ thống bị nhiễm virus, thì có thể thực hiện các bước dưới đây để khắc phục, đồng thời tăng cường khả năng “phòng thủ” cho hệ thống để an toàn hơn trong tương lai.
1. Sử dụng Windows System Restore 
Đây là phương pháp đơn giản nhất để khôi phục lại máy tính về trạng thái trước khi bị nhiễm virus hoặc phần mềm độc hại, mà không cần bất kỳ thay đổi thiết lập nào, miễn là tính năng khôi phục hệ thống chưa bị virus vô hiệu hóa. Để khôi phục lại hệ thống, thực hiện như sau: Truy cập vào trình đơn Start>All Programs. Tiếp theo, truy cập đến mục Accessories>System Tools và kích vào tùy chọn System Restore. Trong cửa sổ mới hiển thị, bấm chọn mục Restore my computer to an earlier state, rồi chọn các điểm khôi phục với thời gian trước khi máy tính bị nhiễm virus trong danh sách và bấm Next. 
Cũng tại ô hiển thị sẽ có các thông tin có liên quan đến điểm khôi phục hệ thống, chúng ta cần đọc kỹ các thông tin đó rồi nhấn nút Next để khởi động lại máy tính và tiến hành khôi phục lại hệ thống. Sau khi quá trình khôi phục kết thúc, máy tính sẽ trở lại trạng thái ổn định như trước.
2. Dừng virus đang chạy trong nền 
Để tìm và diệt các loại virus lây nhiễm, bạn sẽ phải dùng một công cụ quét virus toàn bộ hệ thống. Nhưng trước khi thực hiện, cần phải chắc chắn rằng các loại virus vẫn chưa chạy ở chế độ nền. Nếu có, có thể bạn sẽ không phát hiện ra chúng bởi các loại virus sẽ có nhiều cách để tránh bị phát hiện.
Trong trường hợp đó, sẽ cần công cụ miễn phí Rkill, công cụ này có thể giúp ngăn chặn virus chạy trong chế độ nền.
Tuy nhiên, một số virus có thể ngăn chặn các chương trình như Rkill. Vì vậy, hãy thử đổi tên Rkill thànhiexplore để đánh lừa virus, khiến cho chúng nghĩ rằng bạn đang chạy Internet Explorer thay vì phần mềmRKill. 
3. Loại bỏ virus 
Khi RKill đã dừng các virus chạy trong nền, bạn tải công cụ TDSSKiller, sử dụng để quét máy tính và kiểm tra các phần mềm độc hại. Sau khi quá trình quét kết thúc, nếu có bất kỳ mối đe dọa nguy hiểm nào ảnh hưởng đến hệ thống, bạn có thể sử dụng TDSSKiller để sửa lỗi hoặc xóa bỏ các phần mềm độc hại khỏi hệ thống, rồi khởi động lại máy tính của mình khi hoàn tất. 
Sau khi khởi động lại máy, chạy RKill một lần nữa để kiểm tra. Sau đó tải Dr. Web CureIt! về máy tính, chạy công cụ này để quét tìm phần mềm độc hại, trojan và các phần mềm gián điệp còn sót lại. Sau khi hoàn tất các công đoạn kể trên, có thể nói hệ thống của bạn đã hoàn toàn không còn virus, nhưng nếu vẫn muốn chắc chắn rằng máy tính của mình đã hoàn toàn thoát khỏi vấn nạn virus và phần mêm độc hại thì thực hiện các bước tiếp theo.
4. Sử dụng phần mềm diệt virus khác 
Bạn có thể sử dụng phần mềm như AdwCleaner để loại bỏ phần mềm quảng cáo khỏi hệ thống, Junkware Removal Tools để gỡ bỏ hoàn toàn các thanh công cụ không mong muốn. Trong khi đó phần mềmMalwarebytes sẽ giúp tìm kiếm kỹ các phần mềm độc hại hơn mà bạn nghi ngờ chúng vẫn còn nằm trong máy tính. Trước khi sử dụng bất kỳ phần mềm nào, hãy nhớ chạy RKill đầu tiên để dừng các hành vi của các loại virus. 
Ngoài ra, hãy nhớ thường xuyên cập nhật cơ sở dữ liệu của phần mềm để có được những dữ liệu mới nhất về các loại virus trước khi bắt đầu quá trình quét. Việc cập nhật cơ sở dữ liệu về virus sẽ đảm bảo cơ hội cao hơn trong việc phát hiện và xử lý các loại virus mới nhất. 
5. Bảo vệ máy tính bằng công cụ tường lửa 
Sau khi đã làm sạch máy tính của mình hoàn toàn, bạn nên thiết lập tường lửa để bảo vệ thêm cho hệ thống.Comodo Firewall là một trong những phần mềm tường lửa hàng đầu cho Windows, giúp bảo vệ máy tính khỏi các mối đe dọa, theo dõi các kết nối và đảm bảo kết nối được an toàn. 
Bằng cách này, mỗi khi cài đặt một phần mềm hoặc chạy một chương trình chúng sẽ được Comodo kiểm tra đầu tiên. Nếu Comodo có nghi ngờ sẽ đưa ra cảnh báo để bạn có thể loại bỏ hoặc tiếp tục sử dụng phần mềm. 
6. Kích hoạt tính năng System Restore 
Điều cuối cùng bạn có thể thực hiện để ngăn ngừa thiệt hại dữ liệu trong tương lai đó là kích hoạt chức năng khôi phục hệ thống. Sử dụng một điểm khôi phục là thuận lợi bởi khi máy tính bị nhiễm virus hay phần mềm độc hại thì ngay lập tức có thể khôi phục lại hệ thống về trạng thái sạch sẽ và an toàn trước đó. Tin tốt là bạn có thể tạo ra một điểm khôi phục của hệ thống bất cứ khi nào mà mình muốn, như sau khi đã làm sạch hệ thống. 
Để kích hoạt tính năng System Restore, bạn thực hiện như sau: Truy cập vào menu Start>Run. Trong hộp thoại Run xuất hiện, nhập lệnh gpedit.msc và nhấn Enter. Cửa sổ Group Policy Folder sẽ hiển thị, bạn bấm chọn mục Computer Configuration ở cột bên trái. Tiếp đến truy cập vào Administrative Template>System và kích đúp vào mục System Restore ở cột bên phải. Sang hộp thoại mới, bạn kích đúp vào mục Turn Off System Restore trong cửa sổ bên phải, rồi kích tùy chọn Disable và sau đó bấm nút OK. Quay trở lại mục System Restore, tiếp tục kích đúp vào mục Turn Off Configuration, sau đó kích vào tùy chọn Not configured, sau đó nhấn OK. Sau khi thực hiện xong bạn khởi động lại máy tính của mình để áp dụng. 
Khi tính năng System Restore đã được kích hoạt, bạn nên lưu ý, mỗi khi chạy Windows update, hệ thống sẽ tự động tạo ra một điểm khôi phục trước khi máy tính bắt đầu cài đặt bản cập nhật. Bằng cách này, nếu quá trình cập nhật có gì sai sót, bạn có thể khôi phục lại hệ thống từ điểm khôi phục trước đó. 

Tag : diet virus, phong chong nhiem virus, diệt virus hiệu quả

Điều tra số: Hành trình truy tìm dấu vết

Trong lĩnh vực an toàn, an ninh thông tin, cùng với việc đảm bảo an toàn vận hành hệ thống là khả năng ứng phó và giải quyết sự cố xảy ra để đưa hệ thống trở về trạng thái hoạt động bình thường trong thời gian nhanh nhất, giảm thiểu thiệt hại đến mức thấp nhất. Quá trình xử lý sự cố, phục hồi chứng cứ và truy tìm dấu vết tội phạm có liên quan đến một ngành khoa học là Điều tra số - Digital forensics.
Điều tra số là gì ?
Điều tra số (còn gọi là Khoa học điều tra số) là một nhánh của ngành Khoa học điều tra đề cập đến việc phục hồi và điều tra các tài liệu tìm thấy trong các thiết bị kỹ thuật số. Thuật ngữ điều tra số ban đầu được sử dụng tương đương với thuật ngữ điều tra máy tính. Sau đó, khái niệm này được mở rộng để bao quát toàn bộ việc điều tra các thiết bị có khả năng lưu trữ dữ liệu số. 
Điều tra số có thể được hiểu là việc sử dụng các phương pháp, công cụ kỹ thuật khoa học đã được chứng minh để bảo quản, thu thập, xác nhận, chứng thực, phân tích, giải thích, lập báo cáo và trình bày lại những thông tin thực tế từ các nguồn kỹ thuật số với mục đích tạo điều kiện hoặc thúc đẩy việc tái hiện lại các sự kiện, nhằm tìm ra hành vi phạm tội hay hỗ trợ cho việc dự đoán các hoạt động trái phép gây gián đoạn quá trình làm việc của hệ thống.
Điều tra số thường hay liên quan đến tội phạm máy tính. Cũng như điều tra hình sự, trước khi thực hiện điều tra số, cần có những cơ sở pháp lý để phân định rõ những quyền hạn, trách nhiệm của cơ quan điều tra.
Lịch sử điều tra số
Tội phạm máy tính đầu tiên xuất hiện từ những năm 1960 và lịch sử của nó gắn liền với lịch sử điều tra số.
Năm 1978, tội phạm máy tính lần đầu tiên được đề cập trong Luật Tội phạm máy tính Floria, với quy định về việc chống sửa đổi trái phép hay xóa dữ liệu trên một hệ thống máy tính. 
Giai đoạn năm 1980 đến 1990: Trước sự gia tăng tội phạm máy tính những năm này, các cơ quan thực thi pháp luật đã tiến hành thành lập các nhóm chuyên ngành cấp quốc gia để xử lý các khía cạnh kỹ thuật của việc điều tra. Các kỹ thuật điều tra số cũng đã phát triển và thuật ngữ “Computer Forensics” xuất hiện và được sử dụng trong các tài liệu học thuật.
Năm 1983, Canada là quốc gia đầu tiên thực thi các luật về tội phạm máy tính. Năm 1986, Tổ chức chống Gian lận và Lạm dụng máy tính của Mỹ ra đời. Năm 1989, Úc sửa đổi luật về tội phạm máy tính. Đạo luật của Anh xuất hiện năm 1990 quy định về các hành vi lạm dụng máy tính.
Từ năm 2000, các tiêu chuẩn được phát triển để đáp ứng yêu cầu tiêu chuẩn hóa; các cơ quan và các hội đồng khác nhau đã công bố các tài liệu hướng dẫn kỹ thuật điều tra số. 
Năm 2002, nhóm công tác khoa học về chứng cứ số đã xuất bản một bài báo với tiêu đề “Các bước thực thi điều tra tội phạm máy tính” (Best practices for Computer Forensics).
Năm 2004, Hiệp định về tội phạm máy tính đã được ký kết bởi 43 quốc gia có hiệu lực, các quốc gia thỏa thuận liên kết với nhau trong việc điều tra các tội phạm liên quan đến công nghệ cao. 
Từ năm 2005, nhiều tiêu chuẩn của ISO đề cập đến các yêu cầu về thẩm quyền giám định, kiểm chuẩn được công bố.
Tại sao phải tiến hành điều tra số?
Không có bất cứ sự đảm bảo nào cho hệ thống mạng máy tính được tuyệt đối an toàn trước những nguy cơ, rủi ro, tấn công ác ý của tội phạm mạng. Quá trình xử lý sự cố, phục hồi chứng cứ và truy tìm dấu vết tội phạm cần phải được tiến hành một cách chuyên nghiệp nhằm đem lại chứng cứ chính xác. Một cuộc điều tra số được tiến hành nhằm:
- Xác định nguyên nhân hệ thống công nghệ thông tin bị tấn công, từ đó đưa ra giải pháp khắc phục điểm yếu nhằm nâng cao hiện trạng an toàn của hệ thống.
- Xác định các hành vi tội phạm mạng máy tính đã, đang và sẽ làm đối với hệ thống mạng máy tính. Trong thực tế, thiệt hại tiềm ẩn do những cuộc tấn công gây rò rỉ thông tin, hay làm mất tính sẵn sàng của hệ thống là việc hệ thống bị nắm quyền điều khiển, cài chương trình theo dõi, xóa bỏ thông tin, biến hệ thống mạng máy tính thành công cụ tấn công các hệ thống khác,.… Việc tiến hành một cuộc điều tra số nhằm xác định chính xác những hoạt động mà tội phạm mạng đã tác động vào hệ thống và ngăn ngừa các rủi ro khác có thể xảy ra.
- Khôi phục thiệt hại mà cuộc tấn công vào hệ thống mạng máy tính gây ra: phục hồi dữ liệu, thông tin lưu trữ trên hệ thống đã bị phá hoại có chủ đích. 
- Thực hiện điều tra tội phạm, tìm kiếm chứng cứ số nhằm vạch trần tội phạm công nghệ cao, các hoạt động gian lận, gián điệp, vi phạm pháp luật.
Các bước thực hiện điều tra số
Theo SANS (SysAdmin, Audit, Networking, and Security) - công ty chuyên đào tạo an toàn thông tin và an ninh mạng, một cuộc điều tra số thường bao gồm 4 gian đoạn: chuẩn bị, tiếp nhận dữ liệu, phân tích và lập báo cáo.

Chuẩn bị: Bước này thực hiện việc mô tả lại thông tin hệ thống, những hành vi đã xảy ra, các dấu hiệu để xác định phạm vi điều tra, mục đích cũng như các tài nguyên cần thiết sẽ sử dụng trong suốt quá trình điều tra.
Tiếp nhận dữ liệu: là bước tạo ra một bản sao chính xác các dữ liệu (chứng cứ số) hay còn gọi là nhân bản điều tra các phương tiện truyền thông. Để đảm bảo tính toàn vẹn của chứng cứ thu được thì những dữ liệu này phải được sử dụng một kỹ thuật mật mã là “băm” dữ liệu (sử dụng SHA1 hoặc MD5), trong quá trình điều tra cần phải xác minh độ chính xác của các bản sao thu được.
Phân tích: là giai đoạn các chuyên gia sử dụng các phương pháp nghiệp vụ, các kỹ thuật cũng như công cụ khác nhau để trích xuất, thu thập và phân tích các bằng chứng thu được.
Lập báo cáo: Những chứng cứ thu thập được phải được tài liệu hóa lại rõ ràng, chi tiết và báo cáo lại cho các bộ phận có trách nhiệm xử lý chứng cứ theo quy định.
Các loại hình điều tra số
Với nhiều loại hình điều tra số như: điều tra Internet, điều tra điện tử, điều tra mạng, điều tra ứng dụng... có các cách phân chia khác nhau, nhưng về cơ bản điều tra số được chia thành 3 loại hình chính là điều tra máy tính, điều tra mạng và điều tra thiết bị di động.
Điều tra máy tính (Computer Forensics) là một nhánh của khoa học điều tra số liên quan đến việc phân tích các bằng chứng pháp lý được tìm thấy trong máy tính và các phương tiện lưu trữ kỹ thuật số như:
Điều tra bản ghi (Registry Forensics) là việc trích xuất thông tin và ngữ cảnh từ một nguồn dữ liệu chưa được khai thác qua đó biết được những thay đổi (chỉnh sửa, thêm bớt…) dữ liệu trong bản ghi (Register).
Điều tra bộ nhớ (Memory Forensics) là việc ghi lại bộ nhớ khả biến (bộ nhớ RAM) của hệ thống sau đó tiến hành phân tích làm rõ các hành vi đã xảy ra trên hệ thống. Để xác định các hành vi đã xảy ra trong hệ thống, người ta thường sử dụng kiến trúc quản lý bộ nhớ trong máy tính để ánh xạ, trích xuất các tập tin đang thực thi và cư trú trong bộ nhớ.
Điều tra phương tiện lưu trữ (Disk Forensics) là việc thu thập, phân tích dữ liệu được lưu trữ trên phương tiện lưu trữ vật lý, nhằm trích xuất dữ liệu ẩn, khôi phục các tập tin bị xóa, qua đó xác định người đã tạo ra những thay đổi dữ liệu trên thiết bị được phân tích.
Điều tra mạng (network forensic) là một nhánh của khoa học điều tra số liên quan đến việc giám sát và phân tích lưu lượng mạng máy tính nhằm phục vụ cho việc thu thập thông tin, chứng cứ pháp lý hay phát hiện các xâm nhập vào hệ thống máy tính này. Điều tra mạng có thể được thực hiện như một cuộc điều tra độc lập hoặc kết hợp với việc điều tra máy tính (computer forensics) – thường được sử dụng để phát hiện mối liên kết giữa các thiết bị kỹ thuật số hay tái tạo lại quy trình phạm tội.
Điều tra mạng bao gồm việc chặn bắt, ghi âm và phân tích các sự kiện mạng để khám phá nguồn gốc của các cuộc tấn công hoặc sự cố của một vấn đề nào đó. Không giống các loại hình điều tra số khác, điều tra mạng xử lý những thông tin dễ thay đổi và biến động. Lưu lượng mạng được truyền đi và không được lưu lại, do đó việc điều tra mạng thường phải rất linh hoạt, chủ động.
Điều tra thiết bị di động (Mobile device Forensics) là một nhánh của khoa học điều tra số liên quan đến việc thu hồi bằng chứng kỹ thuật số hoặc dữ liệu từ các thiết bị di động. Thiết bị di động ở đây không chỉ đề cập đến điện thoại di động mà còn là bất kỳ thiết bị kỹ thuật số nào có bộ nhớ trong và khả năng giao tiếp, bao gồm các thiết bị PDA, GPS và máy tính bảng. 
Việc sử dụng điện thoại với mục đích phạm tội đã phát triển mạnh trong những năm gần đây, nhưng các nghiên cứu điều tra về thiết bị di động là một lĩnh vực tương đối mới. Sự gia tăng các loại hình điện thoại di động trên thị trường (đặc biệt là điện thoại thông minh) đòi hỏi nhu cầu giám định về tính an toàn của các thiết bị này mà không thể đáp ứng bằng các kỹ thuật điều tra máy tính hiện tại.
Kết luận 
Sự phục hồi của các chứng cứ số ngày càng trở nên quan trọng. Không chỉ về mặt kỹ thuật, điều tra số xác định chính xác những gì đang xảy ra, nguyên nhân hệ thống bị tấn công và đưa ra chứng cứ thuyết phục về vấn đề cần làm sáng tỏ. Nó còn cung cấp chứng cứ về mặt pháp lý giúp cho việc điều tra tố tụng và áp dụng chế tài xử phạt đối với hành vi phạm pháp của tội phạm mạng máy tính. Hiện nay, điều tra số được đánh giá là một trong 5 kỹ năng cần thiết đưa vào cuộc thi về kỹ năng thực thi an toàn thông tin như Capture the Flag (CTF), được tổ chức thường niên, thu hút sự tham gia của giới hacker, chuyên gia bảo mật và các sinh viên chuyên ngành ATTT và CNTT. Việc đẩy mạnh nghiên cứu về điều tra số để cung cấp các căn cứ cho việc khắc phục sự cố về máy tính và mạng, cũng như đưa ra các chứng cứ số phục vụ quá trình điều tra tội phạm mạng là một vấn đề hết sức cần thiết đối với nước ta trong giai đoạn hiện nay.
KS. Trần Ngọc Mai

Về sự an toàn của hệ điều hành Linux/Unix

Một dạng tấn công mới xuất hiện và đặc biệt nguy hiểm đối với các hệ điều hành Linux/Unix, đó là tấn công với tên gọi Shellshock dựa trên một lỗ hổng an toàn của hệ vỏ Bash trong Linux/Unix. Sau khi xem xét lịch sử mã nguồn, người ta đã phát hiện rằng lỗ hổng an toàn này đã tồn tại từ nhiều năm trước đây. Tuy nhiên, tấn công khai thác lỗ hổng này mới chỉ được công bố rộng rãi trên thế giới từ tháng 9/2014. Ngoài ra, còn có một số lỗ hổng an toàn khác trong Linux kernel.
Lỗ hổng Shellshock
Năm 2014, vấn đề an toàn cho các hệ thống thông tin nói chung đang là vấn đề nóng trên toàn thế giới. Đầu tiên là sự kiện về lỗ hổng an toàn được gọi là “Trái tim rỉ máu” – Heart Bleed. Theo Mark J. Cox, một trong các tác giả của thư viện mã nguồn mở về mật mã OpenSSL, Neel Mehta thuộc nhóm bảo mật của Google đã báo cáo một lỗ hổng đặc biệt nghiêm trọng liên quan đến vấn đề cài đặt của phần mở rộng HeartBeat vào ngày 01/4/2014. Lỗi này được đặt tên là HeartBleed bởi một kỹ sư tại công ty an ninh mạng Codenomicon, Phần Lan. Heart Bleed được tìm ra bởi các chuyên gia bảo mật của Google và Codenomicon. 
Ảnh hưởng của lỗ hổng Heart Bleed là đặc biệt nghiêm trọng. Các phần mềm sử dụng OpenSSL là các máy chủ web mã nguồn mở như Apache và Nginx, chiếm tới 66% thị phần của các trang web hoạt động trên Internet (theo một cuộc khảo sát Web Server của Netcraft vào tháng 4/2014). Hơn nữa OpenSSL được sử dụng để bảo vệ nhiều ứng dụng khác như máy chủ email (SMTP, POP và IMAP), máy chủ talk (giao thức XMPP), mạng riêng ảo (SSL VPN), các thiết bị mạng và nhiều loại phần mềm phía khách hàng.
Những bàn luận xung quanh lỗ hổng “Trái tim rỉ máu” chưa lắng xuống, thì vào ngày 12/9/2014, Stephane Chazelas đã lại phát hiện ra một lỗ hổng nghiêm trọng khác liên quan đến hệ vỏ Bash của các HĐH dựa trên Unix, được đặt tên là Shellshock (hay Bashdoor) [1]. Rất nhiều ứng dụng trên Internet, các Web server, sử dụng hệ vỏ Bash của HĐH Linux/Unix để xử lý các câu lệnh. Điều này cho phép kẻ tấn công có thể lợi dụng lỗ hổng trong Bash để thực hiện một câu lệnh bất kỳ. Kết quả là kẻ tấn công có thể đoạt được quyền truy cập hợp pháp vào hệ thống. 
Những phân tích lịch sử mã nguồn của hệ vỏ Bash chỉ ra rằng, lỗ hổng đã tồn tại từ năm 1992. Nguyên nhân là do Bash cho phép thực thi câu lệnh thông qua các biến môi trường (điều này gần giống như lỗi SQL Injection). Lỗ hổng Shellshock đầu tiên được NIST định danh bởi CVE-2014-6271 với thang điểm cao nhất, điểm 10. Chỉ sau một vài ngày khi lỗ hổng này được công khai, có rất nhiều các biến thể khác nhau của nó đã xuất hiện (CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186 và CVE-2014-7187). Những kẻ tấn công có thể khai thác các lỗ hổng này trong vài giờ, chiếm quyền điều khiển các máy tính và tạo ra một hệ thống botnet để thực hiện tấn công DDoS. Có hàng triệu tấn công đã được các công ty an toàn mạng thông báo sau một vài ngày lỗ hổng đầu tiên được công bố. Shellshock được đánh giá nguy hiểm hơn cả lỗ hổng “Trái tim rỉ máu” do mức độ tác động nghiêm trọng của nó.
Lỗ hổng Shellshock trong hệ vỏ BASH của LINUX/UNIX
Bash là một hệ vỏ mã nguồn mở được sử dụng bởi nhiều hệ thống dựa trên Unix. Bash cho phép thực thi các câu lệnh và các kịch bản dòng lệnh (command scripts). Bash thường được cài đặt mặc định trên các HĐH dựa trên Unix. Trong các HĐH dựa trên Unix và các HĐH mà Bash hỗ trợ (OS X chẳng hạn), mỗi một chương trình đều có một danh sách các cặp tham số (tên/giá trị) được gọi là các biến môi trường.
Các phân tích mã nguồn chỉ ra rằng, lỗ hổng Shellshock tồn tại từ phiên bản 1.13  năm 1992 đến phiên bản 4.3 hiện nay. Khi một chương trình gọi một chương trình khác, nó sẽ tạo ra các biến môi trường cho chương trình mới. Bash duy trì một danh sách các hàm nội tại mà chúng sẽ được thực thi bên trong chương trình. Bash hoạt động với hai vai trò, vừa là bộ thông dịch lệnh, vừa như là một lệnh nên có thể tự thực thi lệnh Bash bên trong nó. Khi điều này xảy ra, các biến môi trường và các định nghĩa hàm có thể được trích xuất (export) từ tiến trình ban đầu sang tiến trình mới. Các định nghĩa hàm được trích xuất bằng cách ghi mã của chúng trong danh sách biến môi trường, mà giá trị của chúng được để trong dấu ngoặc kép (“()”) theo sau định nghĩa hàm. Tiến trình mới của Bash sẽ quét danh sách các biến môi trường của nó và lấy giá trị theo định dạng này để chuyển vào các hàm nội tại của nó. Bash thực hiện việc chuyển đổi này bằng cách tạo ra các phân đoạn mã từ các giá trị trong biến môi trường và thực thi từng phân đoạn mã này, điều đó tạo ra các hàm kiểu “on-the-fly”. Tuy nhiên, Bash lại không kiểm tra tính hợp lệ của các phân đoạn mã (theo định nghĩa hàm). Như vậy, đây là cơ hội để thực thi Bash với một giá trị được lựa chọn trước trong danh sách các biến môi trường của nó. Kẻ tấn công có thể thực hiện một câu lệnh bất kỳ trong bộ thông dịch lệnh của Bash.
Lỗ hổng Shellshock có thể được hiểu và kiểm tra qua việc thực hiện câu lệnh sau đây trong môi trường dòng lệnh của Bash:

 env x=’() {:;}; echo vulnerable!’ bash -c “echo this is a test”                                                                                                             
Đối với các hệ thống sử dụng các phiên bản Bash bị lỗ hổng này, sau khi thực hiện lệnh trên, màn hình sẽ hiện ra chữ “vulnerable!” giống như kết quả thực hiện lệnh “echo vulnerable!” từ dòng lệnh của Bash thông thường. Ở đây ta thấy câu lệnh này đã được nhúng vào trong biến môi trường “x”. 

Lỗ hổng Bash như trên lần đầu tiên được phát hiện và được định danh là lỗ hổng CVE-2014-6271. Có nhiều bản vá đã được đưa ra để khắc phục lỗ hổng này, tuy nhiên sau đó vẫn có những báo cáo về các lỗ hổng khác có liên quan. Sau đó, ngày 26/9/2014, các nhà phân phối mã nguồn mở là David A. Wheeler và Norihiro Tanaka đã công bố rằng, các bản vá đưa ra là chưa đủ để khắc phục lỗ hổng này và còn rất nhiều vấn đề an toàn khác liên quan đến bộ phân tích câu lệnh của trình biên dịch Bash có thể bị khai thác. Ngày 27/9/2014, Michał Zalewski đã thông báo rằng anh ta đã khám phá ra nhiều lỗ hổng khác liên quan đến việc Bash được biên dịch mà không có quá trình ngẫu nhiên hóa cách bố trí không gian địa chỉ.
Dưới đây là một ví dụ về việc khai thác để chứng tỏ rằng bản vá cho lỗ hổng CVE-2014-6271 không có tác dụng:

 env X=’() { (a)=>\’ sh -c “echo date”; cat echo                                                                                                                                      
Kết quả trên màn hình xuất hiện:
 $ X=’() { (a)=>\’ bash -c “echo date”                                                                                                                                                       
bash: X: line 1: syntax error near unexpected token `=’
bash: X: line 1: `’   
bash: error importing function definition for `X’
$ cat echo    
Fri Sep 26 01:37:16 UTC 2014
Hệ thống hiển thị cảnh báo “syntax error” cho thấy lỗ hổng CVE-2014-6271 đã được vá, nhưng vẫn tạo ra một file có tên là “echo” với nội dung của file là kết quả của câu lệnh “date”.

Ảnh hưởng của shellshock
Máy chủ dựa trên CGI (CGI-based Web Server): Khi một máy chủ Web sử dụng giao thức Common Gateway Interface (CGI), nó sẽ đưa ra nhiều chi tiết của một yêu cầu cho một chương trình điều khiển trong danh sách biến môi trường. Ví dụ, biến HTTP_USER_AGENT có một giá trị mà theo cách sử dụng thông thường, sẽ định danh chương trình gửi yêu cầu. Nếu chương trình điều khiển yêu cầu là một đoạn mã của Bash (scripts), hoặc nếu nó được thực thi dưới câu lệnh system() của Bash, thì Bash sẽ nhận được các biến môi trường thông qua các máy chủ và sẽ xử lý chúng theo cách ở trên.  Điều này cung cấp cho kẻ tấn công cách thức khai thác lỗ hổng Shellshock. Như vậy, các kịch bản CGI sẽ đặc biệt nguy hiểm đối với máy chủ Web nếu nó không được kiểm tra cẩn thận. 
Máy chủ SSH (SSH server): OpenSSH có đặc tính “ForceCommand” cho phép một câu lệnh cố định thực thi khi người dùng đăng nhập. Câu lệnh cố định này được thực thi ngay cả khi người dùng đã xác định các lệnh khác, nên được chạy (đặt trong biến môi trường SSH_ORIGINAL_COMMAND). Khi câu lệnh “ForceCommand” thực hiện trong môi trường Bash, Bash sẽ phân tích biến môi trường SSH_ORIGINAL_COMMAND và thực hiện các lệnh được nhúng trong đó. Như vậy kẻ tấn công có thể lợi dụng lỗ hổng Shellshock để thực hiện các lệnh không bị giới hạn trong một tập các lệnh đã được giới hạn. 
Hệ thống DHCP: Một vài máy khách DHCP có thể truyền các lệnh cho Bash; một hệ thống có thể bị tấn công khi thực hiện kết nối tới một mạng Wifi mở. Một máy khách DHCP gửi yêu cầu tới máy chủ DHCP và nhận lại địa chỉ IP, nhưng nó cũng có thể chứa các tùy chọn khác và tạo ra một lỗi Shellshock nhằm thực hiện một lệnh Bash trên hệ thống máy khách DHCP. 
Hệ thống Email: Chẳng hạn một hệ thống Qmail chạy trên Unix, có thể bị tấn công nếu như máy chủ mail cho phép đưa vào môi trường Bash những đầu vào không được kiểm tra.
Hệ thống các máy tính độc lập: Lỗ hổng Shellshock cũng có thể ảnh hưởng đến các máy tính độc lập không trực tiếp truy cập Internet nhưng có sử dụng Bash.
Giao diện IBM console: Các giao diện console quản lý phần cứng của IBM cũng có thể bị tấn công. IBM cũng đã công bố các bản vá cho thiết bị của mình [2].
Các lỗ hổng an toàn của LINUX KERNEL
Ngoài các vấn đề về an toàn cho hệ vỏ (giống như hệ vỏ Bash ở trên), an toàn mức ứng dụng, an toàn dịch vụ, thì an toàn cho Kernel là một trong những vấn đề trọng tâm cần chú ý khi xây dựng và phát triển các ứng dụng dựa trên HĐH mã nguồn mở Linux/Unix. Những lỗ hổng được liệt kê dưới đây, không chỉ ảnh hưởng cho các hệ thống máy tính cài Linux thông thường mà có thể tác động tới các hệ thống nhúng sử dụng Linux, các routers, các thiết bị không dây cài Linux OS.
Đã có khoảng 1200 lỗ hổng đối với Linux kernel kể từ năm 1999 đến 2014 được công bố công khai trên trang web http://www.cvedetails.com, với mức độ nguy hiểm được xếp hạng tăng dần theo thang điểm từ 1 đến 10. Trong đó, lỗi tấn công DDoS chiếm 60%, tấn công tràn bộ đệm chiếm 16%, tấn công khai thác bộ nhớ và thực thi mã lệnh là 10,5%. Ví dụ, Linux kernel phiên bản 3.2.17, có tổng cộng 188 lỗ hổng từ khi phiên bản này xuất hiện cho đến phiên bản mới nhất 3.16.x, trong đó số các lỗ hổng có điểm số lớn hơn 5 là 58 (chiếm khoảng 30%). Đặc biệt có những lỗ hổng được đánh giá đặc biệt nguy hiểm (điểm 10) được liệt kê trong bảng dưới đây.

Thay cho lời Kết
Với sự xuất hiện của lỗ hổng nghiêm trọng của hệ vỏ Bash trên các HĐH Linux/Unix và những lỗ hổng hiện tại của Linux kernel thì việc nghiên cứu, xây dựng các phần mềm ứng dụng cũng như các phần mềm an ninh an toàn thông tin dựa các HĐH mã nguồn mở là một hướng đi đúng đắn và thích hợp. Bên cạnh đó, chúng ta cần phải có những nghiên cứu, đánh giá an toàn tổng thể cho các hệ thống CNTT đã và đang được xây dựng.
TS. Nguyễn Quốc Toàn

Xây dựng cơ chế tự phòng chống tấn công DoS trong mạng Openflow/SDN

Mạng định nghĩa bằng phần mềm (SDN) cùng giao thức Openflow đang trở thành xu thế công nghệ của tương lai, với nhiều tính năng ưu việt về khả năng quản lý, tính linh hoạt và hiệu năng cao, chi phí thấp. Tuy nhiên, vấn đề đảm bảo an toàn thông tin cho hệ thống mạng này vẫn là một thách thức không nhỏ khi triển khai thực tế. Bài viết giới thiệu giải pháp xây dựng cơ chế tự phòng chống tấn công từ chối dịch vụ trong mạng Openflow/SDN như một phương án khả thi trong quá trình triển khai vận hành hệ thống.
Công nghệ SDN và vấn đề An toàn thông tin 
Công nghệ mạng SDN cho phép tập trung hóa chức năng điều khiển của các thiết bị vào một thực thể duy nhất, gọi là thành phần điều khiển (Controller). Thành phần này tương đương như một hệ điều hành mạng, cung cấp hàm giao tiếp API, cho phép quản trị viên phát triển và tích hợp không giới hạn các ứng dụng khai thác, vận hành và giám sát mạng dễ dàng hơn. Hạ tầng chuyển mạch phần cứng lớp dưới của mọi thiết bị được gọi chung là các thành phần chuyển mạch (Switch). Các thành phần chuyển mạch kết nối với thành phần điều khiển thông qua giao thức chuẩn hóa Openflow trên kênh bảo mật. 
Không thể phủ nhận kiến trúc mạng SDN có nhiều ưu điểm vượt trội, mang lại hiệu quả cao khi áp dụng trong lĩnh vực ATTT. Kiến trúc này cho phép các luồng dữ liệu được lập trình xử lý ngay khi truyền qua thiết bị. Do đó, các hệ thống IPS/IDS xây dựng trên mô hình kiến trúc SDN không những có khả năng lọc dữ liệu tức thời với hiệu năng cao, song song với quá trình chuyển mạch mà còn ảnh hưởng rất ít đến độ trễ truyền dẫn. Điển hình như các giải pháp Slick, SIMPLE, FlowTags và OrchSec đã được công bố.
Bên cạnh những lợi ích thì thành phần điều khiển cũng ẩn chứa những điểm yếu lớn, có thể bị kẻ xấu khai thác nhằm mục đích tấn công hệ thống mạng. Một số giải pháp khắc phục điểm yếu này đã được đề xuất, chủ yếu với hướng tiếp cận nâng cao tính bảo mật trong vấn đề tương tác giữa các thành phần của kiến trúc hệ thống, như: FortNOX, Fresco, FermOF.... Các giải pháp này đảm bảo tính an toàn tổng thể, tuy nhiên chưa hệ thống nào được thương mại hóa hoặc triển khai trên thực tế. 
Tấn công Dos mạng SDN 
Cơ chế hoạt động mạng SDN
Trong mạng SDN, thành phần chuyển mạch được cài đặt một hoặc nhiều bảng định tuyến (flow table). Mỗi bảng định tuyến chứa các luồng dữ liệu vào (flow entry) quy định việc xử lý gói tin đến. Luồng dữ liệu vào bao gồm các trường thông tin: mặt nạ lọc tiêu đề gói tin đến (matched rules), tham số thời gian hiệu dụng (timeouts), tham số định nghĩa các hoạt động xử lý gói tin (actions), số liệu thống kê (stats).
Mạng SDN có thể hoạt động ở hai chế độ là chủ động và thụ động. Chế độ chủ động có phương thức tiếp cận tương tự như các công nghệ mạng truyền thống. Luồng dữ liệu vào sẽ được thiết lập sẵn trong thành phần chuyển mạch. Thành phần điều khiển chỉ có nhiệm vụ quản lý và giám sát hoạt động của thành phần chuyển mạch. 
Trong chế độ thụ động, các luồng dữ liệu vào sẽ được thành phần điều khiển tạo ra theo thời gian thực. Khi người dùng gửi gói tin yêu cầu kết nối tới hệ thống mạng, thành phần chuyển mạch sẽ tìm kiếm luồng dữ liệu vào phù hợp trong bảng định tuyến. Nếu không có luồng dữ liệu vào nào phù hợp, gói tin sẽ được chuyển tiếp tới thành phần điều khiển để xử lý và tạo ra một luồng dữ liệu vào mới tương ứng. Sau đó, thành phần chuyển mạch cài đặt luồng dữ liệu vào mới này vào bảng định tuyến và chuyển tiếp các gói tin trao đổi giữa người dùng.
Chế độ thụ động giúp tăng tính linh hoạt trong việc cấu hình hệ thống. Tuy nhiên, nhược điểm là  độ trễ xử lý với gói tin đầu tiên, hơn nữa, có thể tạo điều kiện phát sinh các vấn đề gây mất ATTT cho hệ thống.
Mô hình tấn công
Trong bài báo này, thuật ngữ DoS được dùng chung cho tất cả các kiểu tấn công từ chối dịch vụ như DoS, DDoS, DrDoS.... Mô hình tấn công DoS mạng SDN bao gồm hai bước: nhận diện đối tượng và thực hiện tấn công.
Nhận diện đối tượng: trong chế độ thụ động, hệ thống mạng SDN tốn nhiều thời gian hơn để thành phần điều khiển xử lý và thiết lập luồng dữ liệu vào mới cho gói tin. Do đó, thời gian nhận được phản hồi của gói tin đầu sẽ dài hơn so với các gói tin tiếp sau. Điều này khác biệt hoàn toàn với các công nghệ mạng truyền thống. Căn cứ vào đặc điểm đó, kẻ tấn công có thể nhận diện được đặc tính mạng SDN bằng cách phân tích thời gian phản hồi của hai gói tin đầu tiên. Nếu có sự khác biệt thời gian lớn hơn một ngưỡng cho trước thì đó là mạng SDN.
Thực hiện tấn công: Tấn công DoS nhằm làm cho thành phần điều khiển quá tải trong xử lý gói tin mới, chiếm dụng băng thông điều khiển và gây tràn bảng định tuyến trong thành phần chuyển mạch. Kẻ tấn công gửi liên tiếp các gói tin yêu cầu thiết lập kết nối giả mạo trong khoảng thời gian hiệu dụng. Trong thời gian ngắn, toàn bộ tài nguyên hệ thống bị chiếm dụng để xử lý gói tin giả mạo, gây tê liệt hoạt động. Chất lượng dịch vụ của người dùng bình thường không còn được đảm bảo, thậm chí mất kết nối. Hình 1 biểu diễn mô hình tấn công DoS mạng SDN. Luồng dữ liệu màu đỏ thể hiện các hướng tấn công.


Hình 1: Mô hình tấn công DoS mạng SDN
Cơ chế tự  phòng chống tấn công DoS
Hướng tiếp cận
Phân tích lưu lượng gói tin dữ liệu và gói tin yêu cầu thiết lập kết nối để phân loại người dùng, với mỗi loại người dùng khác nhau áp dụng các chính sách định tuyến riêng biệt. 
Cơ sở dữ liệu (CSDL) địa chỉ IP của người dùng tin cậy là IAD. Qua khảo sát, trong một chu kỳ thời gian hầu hết người dùng thông thường có nhu cầu thiết lập số lượng kết nối (tương đương số gói tin yêu cầu) trong khoảng [k1, k2] gói tin. Trên mỗi kết nối, số gói tin dữ liệu trao đổi tối thiểu ít nhất n gói tin. Một người dùng được gọi là tin cậy khi đáp ứng cả hai điều kiện trên.
Hai bảng tạm (V và N) được xây dựng để theo dõi số lượng gói tin yêu cầu của các địa chỉ IP. Các IP có trong CSDL IAD được lưu trong bảng V, các địa chỉ IP mới được lưu trong bảng N. Tương ứng với mỗi IP là một bộ đếm (vci và nci) số gói tin yêu cầu.
Định nghĩa ba loại luồng dữ liệu vào: 
- Dòng vào thông thường (Normal entry): tham số timeouts như thông thường.
- Dòng vào ngắn (Short entry): tham số timeouts được rút ngắn đáng kể, giảm thời gian hữu dụng của entry.
- Dòng vào dạng khối (Block entry): tham số timeouts được thiết lập với thời gian dài, cấu hình tham số actions DROP để loại bỏ địa chỉ IP tương ứng.
Phân loại người dùng
Dựa trên đặc điểm nguồn gốc và hành vi trao đổi dữ liệu, người dùng được phân loại như sau:
- Người dùng hợp lệ IAD (IAD valid user) là người có địa chỉ IP thuộc CSDL IAD gửi số gói tin yêu cầu thiết lập kết nối trong khoảng [k1, k2] trong một chu kì thời gian nhất định. Trên mỗi kết nối, số gói tin dữ liệu trao đổi ít nhất n gói tin. 
- Người dùng bị kẻ xấu lợi dụng IAD (IAD zombie) là người có địa chỉ IP thuộc CSDL IAD nhưng bị kẻ xấu khai thác để làm nguồn tấn công. Đặc điểm của IAD zombie là gửi liên tục các gói tin yêu cầu kết nối giả mạo. Với mỗi kết nối, số gói tin dữ liệu trao đổi ít hơn n gói tin.
- Người dùng bị kẻ xấu lợi dụng (Normal zombie): Hành vi tương tự IAD zombie, tuy nhiên, người dùng này có địa chỉ IP không nằm trong CSDL IAD.
- Người dùng chưa được định danh (Non-identified user): là người dùng có địa chỉ IP không thuộc CSDL IAD. Số gói tin yêu cầu thiết lập kết nối và số gói tin dữ liệu trên một kết nối tương ứng đều ít hơn k1 và n gói tin. 
- Người dùng hợp lệ mới (New valid user): là người dùng có địa chỉ IP không thuộc CSDL IAD nhưng hành vi tương tự IAD valid user.
IAD zombie và Normal zombie điển hình cho hình thức tấn công DoS, trong khi đó Non-identified user đại diện cho hình thức tấn công DDoS.
Cơ chế tự phòng chống tấn công DoS
Cơ chế tự phòng tấn công DoS nằm ở lớp ứng dụng, được lập trình hoạt động trên nền thành phần điều khiển, tương tác với thành phần chuyển mạch phía dưới thông qua giao thức Openflow (tham chiếu Hình 1). Phương thức hoạt động của cơ chế tự phòng chống tấn công DoS được minh họa trên Hình 2.


Hình 2: Cơ chế tự phòng chống tấn công DoS
Khi thành phần điều khiển nhận được một gói tin mới từ thành phần chuyển mạch, IP nguồn được kiểm tra xem có thuộc CSDL IAD hay không. Nếu địa chỉ IP nguồn nằm trong IAD, có nghĩa nó có nguồn gốc đáng tin cậy (IAD valid user). Thành phần điều khiển thiết lập Dòng vào thông thường phù hợp với gói tin yêu cầu. Giá trị vci được cập nhật tăng thêm 1 trong bảng V.
Nếu vci vượt qua giá trị k2, đó là dấu hiệu bất thường về hành vi của gói tin yêu cầu kết nối. Thành phần điều khiển gửi bản tin yêu cầu thống kê về gói tin dữ liệu của địa chỉ IP đó tới thành phần chuyển mạch. Thành phần chuyển mạch rà soát trong bảng định tuyến tìm kiếm các luồng dữ liệu vào phù hợp và gửi bản tin trả lời. Căn cứ trên các thông tin nhận được, thành phần điều khiển tính toán số gói tin dữ liệu trung bình s của địa chỉ IP. Nếu s nhỏ hơn n, chứng tỏ người dùng không thực sự có nhu cầu trao đổi dữ liệu, hay nói cách khác, đó là kẻ tấn công (IAD zombie). Chính sách áp dụng với IAD zombie bao gồm: Xóa toàn bộ luồng dữ liệu vào tương ứng trong bảng định tuyến; Thiết lập một Dòng vào dạng khối loại bỏ các gói tin đến; Xóa địa chỉ IP khỏi CSDL IAD và bảng V.
Ngược lại, nếu gói tin mới có địa chỉ IP không nằm trong CSDL IAD, bước đầu chúng ta giả thiết đó là Người dùng chưa được định danh. Thành phần điều khiển thiết lập Short entry phù hợp với gói tin yêu cầu. Giá trị nci được cập nhật tăng thêm 1 trong bảng N.
Nếu nci vượt qua giá trị k1, có thể người dùng đó không phải kẻ tấn công DDoS, cần phân tích hành vi của gói tin dữ liệu tương ứng. Thành phần điều khiển tính toán số gói tin dữ liệu trung bình s của người dùng sau khi gửi yêu cầu báo cáo thống kê tới thành phần chuyển mạch. Nếu s nhỏ hơn n, chứng tỏ đó là kẻ tấn công Người dùng bị kẻ xấu lợi dụng. Chính sách áp dụng với Người dùng bị kẻ xấu lợi dụng bao gồm: Xóa toàn bộ luồng dữ liệu vào tương ứng trong bảng định tuyến; Thiết lập một Dòng vào dạng khối loại bỏ các gói tin đến; Xóa địa chỉ IP khỏi bảng N.


Hình 3: Số lượng luồng dữ liệu vào trong bảng định tuyến
Trường hợp s lớn hơn n, chứng tỏ người dùng thực sự có nhu cầu trao đổi dữ liệu, đáng tin cậy và được gọi là Người dùng hợp lệ mới (New valid user). Chính sách áp dụng với Người dùng hợp lệ mới bao gồm: Cập nhật toàn bộ Dòng vào ngắn thành Dòng vào thông thường; Bổ sung địa chỉ IP vào CSDL IAD; Chuyển địa chỉ IP từ bảng N sang V.
Hiệu quả của giải pháp
Qua kết quả thực nghiệm, cơ chế tự phòng chống tấn công DoS trong mạng Openflow/SDN mang lại hiệu quả tích cực. Số lượng luồng dữ liệu vào vô nghĩa bị triệt tiêu, giảm 49% so với thông thường. Cùng với đó, băng thông điều khiển bị chiếm dụng giảm 51% (như hình 3). Sử dụng kết hợp hai bước phân tích gói tin yêu cầu và gói tin dữ liệu, giải pháp cho phép nhận diện các đối tượng tấn công với độ chính xác cao. Các luồng tấn công DoS bị loại bỏ, hạn chế tác động của tấn công DDoS, trong khi vẫn đảm bảo chất lượng dịch vụ của người dùng bình thường.
KS. Đào Như Ngọc, CN. Nguyễn Khánh Vân

Theo dõi truy cập