War Game được ra mắt công chúng vào năm 1983, David Lightman, người đã sử dụng máy tính IMSAI 8080 300 đơn vị âm thanh của modem để tấn công vào hệ thống máy tính NORAD của chính phủ. Làm thế nào để truy cập được? Ông ta lập trình trên máy tính của mình để quay một chuỗi số liên tục từ 5550000 đến 5559999, và lắng nghe những modem máy tính khác để trả lời.
Hơn 20 năm sau, công nghệ đã thay đổi, nhưng các quy trình và kỹ thuật vẫn giữ nguyên. Phần mềm và hệ thống máy tính hiện nay đã có nhiều mối quan hệ nhưng lại có rất nhiều chi tiết tặc. War Game đã đưa ra một ý nghĩa mới thông qua những hacker đang chơi trò chơi và các ngành công nghiệp phần mềm là một cuộc chiến tranh để chống lại họ. Việc ra đời phần mềm bảo mật là một yếu tố quan trọng.
WAR DRIVING
Với sự phát triển của“WiFi” ,những hacker đã phát hiện ra rằng họ có thể tìm kiếm để mở nhiều mạng máy tính giống như nhân vật của David Lightman trong WarGame. Các kỹ thuật sau khi có tên trong war game được biết đến như là “war driving”. War Driving là kỹ thuật sử dụng modem để tự động quét một danh sách số điện thoại. Hacker đã sử dụng danh sách kết quả tìm được cho nhiều mục đích khác nhau và cho việc đoán mật khẩu
Trong war Game, các hacker có được động lực là do sự tò mò và mong muốn sử dụng máy tính với mục đích riêng của mình. Hiểu được mục đích đó sẽ giúp bạn trong suy nghĩ về nơi mà các lỗ hỏng bảo mật có thể có trong phần mềm mà bạn thử nghiệm.
Một sản phẩm an toàn là một sản phẩm được bảo vệ bởi:
Hacker: Là người có thông tin từ một chương trình hoặc bằng cách sử dụng máy vi tính. Là người sử dụng các kỹ thuật lập trình để đạt được sự truy cập bất hợp pháp vào mạng lưới máy tính hay tập tin
5 lý do hacker có thể có để đạt được quyền truy cập:
Steal: nặng nhất của hình thức hacking là trộm cắp ngay,mục đích là một số thứ có giá trị có thể sử dụng được hoặc để bán, ví dụ: số thẻ tín dụng, thông tin cá nhân, tài sản, dịch vụ, thậm trí là cả quyền đăng nhập.
Chúng mô tả quá trình về̀ một đe dọa mẫu cho việc đánh giá một hệ thống phần mềm về các vấn đề bảo mật. Nó được xem xét để thiết lập lỗ hỏng bảo mật để giảm rủi ro. Với thông tin đó nhóm có thể được chọn để thay đổi sản phẩm , dành nhiều hơn cho việc nỗ lực thiết kế các tính năng, hoặc tập trung thử nghiệm trên những rắc rối tiềm năng. Cuối cùng với sự hiểu biết như vậy sẽ là kết quả trong một sản phẩm an toàn hơn. Thực hiện threat modeling (mối đe dọa mẫu) không phải là trách nhiệm của tester phần mềm. Trách nhiệm này nên thuộc về nhiệm vụ của người quản lý dự án và tất cả thành viên của nhóm dự án.
Dữ liệu trong hệ thống bị đe dọa ngay cả với mức độ bảo mật cao,nhóm bạn cần nhìn vào mỗi mối đe dọa và xác định về việc xếp hạng các mối đe dọa đó.
Có lẽ hầu hết mọi người đều không muốn dữ liệu tài chính cá nhân của họ bị xâm nhập bởi một hacker nào đó. Họ luôn cho rằng phần mềm bảng biểu của họ có khả năng giữ thông tin riêng tư (như) một đặc tính cần thiết. Nếu phần mềm bị lỗi và cho phép hacker nhìn thấy những thông tin cá nhân và thông tin thẻ tín dụng, hầu hết người dùng sẽ xem đó là lỗi phần mềm.
Tổng kết định nghĩa của 1 lỗi từ “Kiểm thử bối cảnh”:
Khi bạn kiểm thử “test to pass”, bạn đảm bảo đã hoàn thành tối thiểu các yêu cầu công việc đặt ra. Bạn không loại bỏ khả năng bạn không nhìn thấy những gì bạn có thể làm sai lệch. Với những ứng dụng đơn giản nhất và thường thì các “test case” không mấy phức tạp. Sau khi bảo đảm rằng phần mềm không có gì xảy ra trong trường hợp bình thường, đây là lúc để đặt trên giả định của bạn, làm ngơ trước các lỗi, xoay vòng và cố gắng tìm thấy lỗi do sự cố nên ép chúng “outtest-to-fail”. Một Tester, bạn phải chịu trách nhiệm kiểm tra về sự an toàn của phần hoặc chịu trách nhiệm kiểm tra một vài tính năng được giao. Bạn không nhất thiết phải đề ra cho một sản phẩm đặc tả rõ ràng: định nghĩa như thế nào là phần mềm an toàn được đề cập trong phần mềm của bạn. Bạn sẽ cần phải đặt “test- to –fail” đối với các trường hợp phần mềm bị một hacker tấn công, và tất cả các tính năng bảo mật có khả năng bị tổn thương.
KẾT LUẬN: Kiểm thử tính năng bảo mật là kế hoạch kiểm tra trường hợp có thể không hoạt động và sẽ thường bao gồm các phần của các sản phẩm mà chưa được hiểu hoàn toàn hay chỉ định.
Danh mục 13-1. Ví dụ đơn giản về tràn bộ đệm.
1: void myBufferCopy(char * pSourceStr) {
2: char pDestStr[100];
3: int nLocalVar1 = 123;
4: int nLocalVar2 = 456;
5: strcpy(pDestStr, pSourceStr);...
6: }
7: void myValidate()
8: {
9: /*
10: Assume this function's code validates a user password
11: and grants access to millions of private customer records
12:/*
Một hacker tấn công phần mềm của bạn bằng cách tìm những điểm yếu bảo mật dễ bị tấn công của phần mềm và khai thác chúng để truy cập vào dữ liệu hoặc để kiểm soát hệ thống. Ví dụ đầu tiên của vấn đề này là WebBrowser:
Lỗ hổng bảo mật trên webbrowser
Một ví dụ khác của dữ liệu tiềm năng là Thanh công cụ của Google có tính năng Autofill
Khi dữ liệu được ghi vào một đĩa, nó được ghi trong khối. Kích thước của các khối, gọi là các sector, các sector này khác nhau tùy thuộc vào hệ điều hành đang sử dụng. MSDOS / Windows sử dụng khối 512 byte. Tùy thuộc vào hệ thống tập tin được sử dụng, các sector được viết ra trong các nhóm gọi là clusters Windows FAT tập tin sử dụng các cluster của 2048 byte, gồm bốn cluster 512 byte. Tệp có chiều dài 2.200 byte và được hiển thị bởi vùng trắng trải rộng từ Sector 1 đến giữa của sector 5
clusters Windows FAT
Nếu file là có độ dài 2.200 byte, nó sẽ mất 4,3 khối mà mỗi khối là 512 byte (2200/512 = 4.3). Dữ liệu ở phần cuối của sector 5 được gọi là RAM “slack” vì những gì mà được chứa ở đó là thông tin xảy ra khi truy cập vào RAM của hệ thống khi fie được tạo. Nó có thể là không có gì, hoặc nó có thể được quản lý mật khẩu hay số thẻ tín dụng.
Không có cách nào để biết, nhưng những dữ liệu đó khác với những dữ liệu được ghi ở các file trong ổ đĩa máy tính của bạn. Mặc dù ví dụ này sử dụng một ổ đĩa để minh họa các khái niệm về dữ liệu tiềm tàng, các vấn đề bảo mật của RAM và đĩa slack cũng áp dụng để ghi đĩa CD, DVD, thẻ nhớ, và hầu như bất kỳ loại phương tiện lưu trữ.
Khi bạn đang kiểm thử một sản phẩm phần mềm, bạn sẽ cần phải làm việc với nhóm của bạn để quyết định nếu dữ liệu tiềm năng là một lỗ hổng bảo mật. Bạn và nhóm của bạn sẽ cần phải nghĩ ra cách để ngăn cản điều đó xảy ra.
Không hệ thống máy tính nào là an toàn tuyệt đối. Trong việc thiết kế một hệ thống an toàn và bảo mật, bạn phải chú ý quan tâm đến vấn đề bảo mật ngay từ khi bắt đầu của quá trình thiết kế sản phẩm. Bạn có thể không chỉ "test in" bảo mật phần mềm. Việc này phải được quy hoạch, xem xét, thiết kế, và sau đó thử nghiệm.
Áp dụng cho một quá trình lặp của phát triển phần mềm như Spiral Model chi tiết trong Chương 2, "Quy trình phát triển phN 47;n mềm," sẽ bảo đảm rằng những chủ đề này sẽ được thăm lại trong suốt quá trình phát triển. Một trang web có rất nhiều thông tin sẽ giúp cho bạn cập nhật hằng ngày trên máy tính các vấn đề về an ninh là www.securityfocus.com.