Top 30 câu hỏi và trả lời phỏng vấn về Kiếm thử bảo mật (Security testing)
Bài đăng này đã không được cập nhật trong 3 năm
Nội dung bài viết cung cấp thông tin về những câu hỏi phỏng vấn thường gặp nhất liên quan đến Kiểm thử bảo mật (Security testing) cùng với phần trả lời chi tiết.
Kiểm thử Bảo mật (Security Testing) là gì?
Kiểm thử Bảo mật là một quy trình được đưa ra nhằm mục đích phát hiện những sai sót trong cơ chế bảo mật của một hệ thống thông tin, bảo vệ dữ liệu và duy trì chức năng như đã đặt ra.
Kiểm thử Bảo mật là loại hình kiểm thử quan trọng nhất đối với bất kì ứng dụng nào. Trong phương pháp kiểm thử này, một tester đảm nhiệm vai trò của một kẻ tấn công (attacker) và "phá" hệ thống nhắm mục đích phát hiện ra những lỗi liên quan tới bảo mật.
Một số câu hỏi phỏng vấn hàng đầu liên quan tới Kiểm thử Bảo mật
1. Kiểm thử bảo mật (Security Testing) là gì?
Trả lời: Kiểm thử bảo mật (KTBM) là một kiểu kiểm thử phần mềm và có thể được coi là loại hình kiểm thử quan trọng nhất trong tất cả các loại hình kiểm thử. Mục đích của việc thực hiện KTBM là tìm ra những lỗ hổng trong các ứng dụng phần mềm (web hoặc networking) và bảo vệ dữ liệu của chúng trước những kẻ xâm nhập hoặc các cuộc tấn công.
Do nhiều ứng dụng có chứa những dữ liệu tuyệt mật và cần được bảo mật tuyệt đối nhưng lại bị rò rỉ, việc KTBM cần được thực hiện thường xuyên trên những ứng dụng này nhằm xác định những mối nguy hiểm tiềm tàng để có thể có những biện pháp khắc phục kịp thời.
2. Thế nào là "Lỗ hổng" (Vulnerability)
Trả lời:
Lỗ hổng có thể được định nghĩa là một điểm yếu của hệ thống mà thông qua đó, những kẻ xâm nhập hoặc các lỗi có thể lợi dụng tấn công hệ thống. Nếu việc kiểm thử an ninh hệ thống không được thực hiện một cách nghiêm ngặt, kĩ càng thì khả năng bỏ qua những lỗ hổng này lại càng gia tăng. Những bản vá lỗi hoặc sửa lỗi đôi khi đòi hỏi phải ngăn chặn việc hệ thống phát sinh ra các lỗ hổng.
3. Thế nào là Phát hiện xâm nhập (Intrusion Detection)?
Trả lời: Phát hiện xâm nhập (Intrusion Detection) là một hệ thống giúp phát hiện ra những đợt tấn công có thể xảy ra và đối phó với chúng. Hệ thống này bao gồm cả chức năng thu thập thông tin từ nhiều hệ thống và nguồn khác nhau, phân tích những thông tin này và tìm ra những kiểu tấn công mà hệ thống có thể gặp phải. Hệ thống phát hiện xâm nhập sẽ kiểm tra những điểm sau:
- Các đợt tấn công có thể sẽ xảy ra
- Bất kì hoạt động bất thường nào
- Kiểm tra rà soát những dữ liệu hệ thống
- Phân tích nhiều dữ liệu thu thập được khác nhau,v.v...
4. Thế nào là "SQL injection"?
Trả lời:
SQL injection là một trong những kĩ thuật tấn công phổ biến được sử dụng bởi các tin tặc để chiếm đoạt những dữ liệu quan trọng.
Tin tặc sẽ dò tìm bất kì lỗ hổng nào trong hệ thống mà qua đó chúng có thể truyền vào những câu truy vấn (SQL) giúp chúng vượt qua những kiểm tra an ninh và trả về những dữ liệu quan trọng. Phương pháp này được gọi là SQL injection. Nó cho phép tin tặc đánh cắp những dữ liệu quan trọng hoặc thậm chí là đánh sập cả một hệ thống.
SQL injection là một kiểu tấn công rất nguy hiểm và cần có phải có biện pháp phòng chống. Việc thực hiện kiểm thử bảo mật định kì có thể giúp ngăn cản những cuộc tấn công loại này xảy ra. Việc bảo mật cơ sở dữ liệu SQL cần được xác định đúng đắn và những ô nhập dữ liệu cũng như các kí tự đặc biệt cũng nên được xử lí cẩn thận.
5. Hãy liệt kê các thuộc tính của Kiểm thử Bảo mật
Trả lời:
Kiểm thử Bảo mật có 7 thuộc tính:
- Xác thực: Authentication
- Phân quyền Authorization
- Bảo mật tuyệt đối: Confidentiality
- Sẵn có: Availability
- Toàn vẹn: Integrity
- Không phủ nhận: Non-repudiation
- Phục hồi: Resilience
6. Thế nào là XSS hay Cross Site Sripting?
Trả lời:
XSS hay Cross Site Sripting là một loại lỗ hổng mà tin tặc có thể lợi dụng để tấn công ứng dụng web.
Nó cho phép tin tặc truyền những đoạn code HTML hay JAVASCRIPT vào một trang web, đánh cắp những thông tin bảo mật từ dữ liệu cookies và trả về thông tin cho tin tặc. Đây là một trong những kĩ thuật nguy hiểm và phổ biến nhất cần phải được ngăn chặn.
7. Kết nối SSL (connection) và phiên SSL (session) là gì?
Trả lời: Kết nối SSL hay secured socket layer là một liên kết liên lạc ngang hàng (peer-to-peer) tạm thời, trong đó mỗi kết nối được gắn với một phiên SSL session.
SSL session có thể được định nghĩa là mối liên kết giữa máy khách (client) và máy chủ (server) thường được tạo ra bằng "giao thức bắt tay" (handshake protocol). Các tham số parameter) sẽ được định nghĩa và được các kết nối SSL dùng chung.
8. Thế nào là "Kiểm thử thâm nhập" (Penetration Testing)
Trả lời:
Kiểm thử Thâm nhập là một kiểu kiểm thử bảo mật, giúp phát hiện ra những lỗ hổng trong một hệ thống. Kiểm thử Thâm nhập là một phép thử để đánh giá mức độ vào mật của một hệ thống bằng những kĩ thuật kiểm thử thủ công hoặc tự động và nếu tìm ra bất cứ lỗ hổng nào, tester sẽ lợi dụng nó để tiếp cận sâu hơn với hệ thống, từ đó tìm ra thêm nhiều lỗ hổng hơn nữa. Mục đích chính của việc thực hiện kiểm thử thâm nhập là ngăn chặn những đợt tấn công vào hệ thống.
Kiểm thử Thâm nhập có thể được thực hiện bằng hai phương pháp: Hộp trắng và hộp đen.
Trong kiểu kiểm thử hộp trắng tất cả các thông tin đều có sẵn cho tester trong khi khi thực hiện kiểm thử hộp đen tester không hề có thông tin nào và họ sẽ thực hiện test hệ thống từ quan điểm của người dùng giống như trong thực tế để tìm ra các lỗ hổng.
9. Tại sao việc thực hiện Kiểm thử Thâm nhập lại quan trọng
Trả lời:
Bởi vì:
Những lỗ hổng và lỗi an ninh của hệ thống có thể gây ra những tổn hại hao hụt bởi tin tặc có thể tấn công bất cứ lúc nào và đánh cắp những dữ liệu quan trọng hoặc thậm chí là đánh sập cả hệ thống.
Việc bảo vệ tất cả thông tin trong mọi thời điểm là không thể. Tin tặc luôn luôn sử dụng những kĩ thuật mới để đánh cắp tài nguyên và vì thế tester cũng cần phải thực hiện test định kì để có thể sớm phát hiện ra những điểm yếu của hệ thống, nơi dễ bị tin tặc nhắm tới nhất. Kiểm thử thâm nhập phát hiện và bảo vệ hệ thống bằng những phương thức được nêu ở trên, giúp cho dữ liệu hệ thống được lưu giữ an toàn.
10. Hãy kể tên hai kĩ thuật phổ biến thường được sử dụng để báo vệ một tập tin lưu thông tin mật khẩu
Trả lời: Hai kĩ thuật phổ biến thường được dùng để bảo vệ tập tin lưu thông tin mật khẩu là:
- Thuật toán "băm" sử dụng hashed passwords và một giá trị salt
- Kiểm soát quyền truy cập tập tin mật khẩu
11. Hãy nêu tên đầy đủ của các từ viết tắt liên quan đến bảo mật phần mềm
Trả lời:
IPsec – Internet Protocol Security (bộ giao thức để bảo mật mạng)
OSI – Open Systems Interconnection
ISDN Integrated Services Digital Network
GOSIP- Government Open Systems Interconnection Profile
FTP – File Transfer Protocol
DBA – Dynamic Bandwidth Allocation
DDS – Digital Data System
DES – Data -Encryption Standard
CHAP – Challenge Handshake Authentication Protocol
BONDING – Bandwidth On Demand Interoperability Group
SSH – The Secure Shell
COPS Common Open Policy Service
ISAKMP – Internet Security Association and Key Management Protocol
USM – User-based Security Model
TLS – The Transport Layer Security
12. ISO 17799 là gì?
Trả lời:
ISO/IEC 17799 được đưa ra lần đầu tại Anh, chỉ ra những ứng dụng thực tiễn tối ưu nhất cho việc Quản lý Anh ninh Thông tin. Trong đó có các hướng dẫn cho tất cả các tổ chức lớn nhỏ về an ninh thông tin.
13. Hãy liệt kê một số tác nhân có khả năng gây ra lỗ hổng
Trả lời: Những tác nhân gây ra lỗ hổng:
- Những khiếm khuyết về thiết kế hệ thống (design) - Nếu trong hệ thống có những lỗ hổng (loop holes) thì tin tặc có thể dễ dàng xâm nhập.
- Mật khẩu - Nếu mật khẩu bị lộ, tin tặc có thể có được những thông tin mà chúng muốn. Những chính sách về mật khẩu nên được theo dõi sát sao để hạn chế tối đa khả năng mật khẩu bị đánh cắp.
- Sự phức tạp - Chính sự phức tạp của phần mềm có thể mở ra cơ hội cho tin tặc
- Lỗi con người - đây cũng là một nguyên nhân gây ra những lỗ hổng bảo mật
- Quản lý - Việc quản lý lỏng lẻo các dữ liệu hệ thống có thể khiến cho các lỗ hổng xuất hiện trong hệ thống
14. Hãy kể tên những phương pháp thực hiện Kiểm thử bảo mật?
Trả lời:
- Hộp trắng (white box): Tester được cung cấp thông tin về hệ thống
- Hộp đen (black box): Tester không được biết bất kì thông tin nào và họ có thể thực hiện test tương tự như trong thực tế
- Hộp xám (grey box): Tester được nhận một phần thông tin hệ thống và phần còn lại họ sẽ phải tự tìm tòi thực hiện
15. Hãy kể tên 7 loại kiểm thử bảo mật theo tài liệu "Open Source Security Testing Methodology Manual" (OSSTMM)
Trả lời: Bảy loại Kiểm thử Bảo mật theo tài liệu OSTMM:
- Vulnerability Scanning: Tự động hóa phần mềm để rà soát những lỗ hổng trong hệ thống
- Security Scanning: Dùng những kĩ thuật thủ công hoặc tự động để phát hiện ra những điểm yếu về mạng hoặc hệ thống
- Penetration testing: Kiểm thử thâm nhập là một kiểu kiểm thử bảo mật giúp xác định những lỗ hổng trong hệ thống
- Risk Assessment: Bao gồm việc phân tích rủi ro có thể xảy ra trong hệ thống. Rủi ro được phân loại thành Thấp, Trung bình và Cao.
- Security Auditing: Kiểm tra toàn bộ hệ thống và ứng dụng để tìm ra những lỗ hổng.
- Ethical hacking: Xâm nhập vào một hệ thống để tìm ra những khuyết điểm và lỗi thay vì thực hiện vì mục đích kiếm lợi cá nhân.
- Posture Assessment: Sự kết hợp giữa Security scanning, Ethical Hacking và Risk Assessments để đánh giá tổng thể tình trạng bảo mật của một tổ chức.
16. Thế nào là SOAP và WSDL?
Trả lời:
SOAP hay Simple Object Access Protocol là một giao thức dựa trên XML. Thông qua SOAP các ứng dụng sẽ trao đổi thông tin bằng HTTP. XML request được gửi bởi các dịch vụ web service dưới định dạng SOAP sau đó một máy khách SOAP gửi một tin nhắn SOAP tới máy chủ. Máy chủ lúc này sẽ gửi trả lại một tin nhắn SOAP cùng với dịch vụ được yêu cầu trước đó.
Web Service Description Language (WSDL) là một ngôn ngữ định dạng XML được sử dụng bởi UDDI. WSDL mô tả web service và làm thế nào để kết nối đến nó.
17. Hãy liệt kê các tham số để xác định một kết nối SSL
Trả lời: Các tham số đó là:
- Server and client random: các chuỗi byte được chọn bởi server và client cho mỗi kết nối.
- Server write MAC secret: khóa bí mật được sử dụng bởi phép tính MAC trên dữ liệu, được gửi bởi server.
- Client write MAC secret: khóa bí mật được sử dụng bởi phép tính MAC trên dữ liệu, được gửi bởi client.
- Server write key: khóa mã hóa quy ước cho dữ liệu được mã hóa bởi server và giải mã bởi client.
- Client write key: khóa mã hóa quy ước cho dữ liệu được mã hóa bởi client và giải mã bởi server.
- Initialization vectors: khi 1 khối mã trong mode CBC được dùng, một vector khởi tạo (IV) được duy trì cho mỗi key. Phần này được khởi tạo trước tiên bởi SSL Handshake Protocol. Sau đó, khối mã hóa cuối cùng từ mỗi record được để dành lại để dùng làm IV cho record sau.
- Sequence number: mỗi bên duy trì các sequence number riêng cho mỗi message được truyền hoặc được nhận trong mỗi kết nối. Khi một bên gửi hoặc nhận một change cypher spec message, sequence number thích hợp được thiết lập về 0. Sequence number không thể vượt quá $ {2^{64}}-1$
18. File enumeration là gì?
Trả lời:
Đây là một kiểu tấn công sử dụng forceful browsing cùng với việc thao túng URL. Tin tặc có thể thao túng các tham số trong chuỗi url và lấy ra những dữ liệu quan trọng mà bình thường sẽ không được công khai ví dụ như những dữ liệu được lưu trữ, những bản (version) cũ hoặc dữ liệu đang được phát triển.
19. Hãy liệt kê những lời ích có được từ một hệ thống phát hiện xâm nhập IDS?
Trả lời:
- NIDS: Network Intrusion Detection
- NNIDS: Network Node Intrusion detection system
- HIDS: Host Intrusion Detection System
20. HIDS là gì?
Trả lời:
HIDS (Host Intrusion Detection system) là một hệ thống chụp lại những hệ thống và đối chiếu với những hình ảnh trước đó. Nó kiểm tra nếu những tập tin quan trọng đã được chỉnh sửa hoặc xóa. Sau đó một tin nhắn cảnh báo được tạo ra và gửi cho người quản trị hệ thống.
21. Hãy liệt kê những thành phần chính tham gia vào Giao thức đảm bảo an toàn giao dịch điện tử SET (Secure Electronic Transaction)?
Trả lời:
- Cardholder: chủ thẻ
- Merchant: người bán
- Issuer: đơn vị phát hành
- Acquirer: người mua
- Payment gateway: cổng thanh toán
- Certification authority: cơ quan chứng thực điện tử
22. Hãy giải thích thế nào là “URL manipulation”?
Trả lời: URL manipulation là một kiểu tấn công trong đó tin tặc sẽ thao túng url của trang web để lấy ra những dữ liệu quan trọng. Dữ kiệu được truyền vào các parameter trong chuỗi truy vấn và trao đổi qua lại qua lại giữa máy chủ và máy khách thông qua phương thức GET HTTP. Tin tặc có thể chỉnh sửa các giá trị trong các tham số và để có được sự chấp nhận của máy chủ và từ đó lấy cắp những thông tin đắt giá.
Để tránh loại tấn công này, việc thực hiện test url manipulation nên được thực hiện. Bản thân tester cũng có thể thao tác trên các URL và kiểm tra xem có thể tấn công bằng cách đó được không. Nếu tìm ra được thì chắc chắn cũng họ cũng sẽ có thể ngăn chặn được.
23. Phân loại đối tượng xâm nhập hệ thống
Trả lời:
- Masquerader: có thể được định nghĩa là một cá nhân không được trao quyền trên thiết bị máy tính nhưng cướp quyền kiểm soát truy cập của hệ thống và truy cập vào tài khoản của người dùng đã được chứng thực.
- Misfeasor: người dùng được chứng thực để sử dụng các tài nguyên hệ thống nhưng sử dụng sai quyền truy cập của mình trên hệ thống.
- Clandestine user: có thể được định nghĩa là một cá nhân chiếm hệ thống kiểm soát của hệ thống và vượt qua hệ thống bảo mật của hệ thống.
24. Hãy liệt kê những phần tử được sử dụng trong SSL
Trả lời: Giao thức Secure Sockets Layer (SSL) được sử dụng để tạo kết nối bảo mật giữa máy chủ và máy khách. Nó sử dụng các phần tử sau:
- Giao thức SSL Record
- Giao thức SSL Handshake
- Giao thức SSL Change Cipher Spec
- Các thuật toán mã hóa (Encryption algorithms)
25. Port scanning là gì? Nêu tên các kĩ thuật scan?
Trả lời: Các cổng (port)là nơi thông tin ra vào hệ thống. Quét các cổng để tìm ra lỗ hổng hệ thống được gọi là port scanning. Có các kĩ thuật scan cơ bản như sau:
- Strobe: quét các services TCP đang chạy.
- UDP: quét các cổng mở UDP
- Vanilla: trong kĩ thuật này máy quét sẽ quét toàn bộ 65,535 cổng.
- Sweep: máy quét sẽ kết nối tới một cổng trên nhiều hơn một thiết bị.
- Fragmented packets: máy quét gửi những phân mảnh của gói tin đã vượt qua được bộ lọc gói trong firewall
- Stealth scan: máy quét chặn những máy tính được quét ghi lại các hoạt động quét cổng.
- FTP bounce: máy quét đi vào máy chủ FTP để tạo lớp ngụy trang cho nguồn quét.
26. Cookie là gì?
Trả lời:
Cookie là một đoạn thông tin nhận được từ máy chủ của trang web và lưu trong trình duyệt web, có thể được đọc bất kì lúc nào sau đó. Cookie có thể chứa thông tin mật khẩu, một số thông tin điền tự động và nếu tin tặc có thể lấy được những thông tin này thì sẽ rất nguy hiểm.
27. Hãy kể tên các loại cookies
Trả lời:
Session Cookies – Cookies tạm thời và chỉ có thể sử dụng trong phiên đó.
Persistent cookies – Cookies dược lưu vào ổ đĩa cứng và có hiệu lực tới khi nó hết hạn hoặc được gỡ bỏ thủ công.
28. Honeypot là gì
Trả lời:
Honeypot là hệ thống máy tính "giả" có thể vận hành như một hệ thống thật và tấn công lại các tin tặc tấn công vào hệ thống. Honeypot được dùng để tìm ra những lỗ hổng (loop holes) trong hệ thống và cung cấp giải pháp cho những kiểu tấn công này.
29. Hãy kể tên những tham số định nghĩa trạng thái của một phiên SSL?
Trả lời:
- Session Identifier: 1 chuỗi byte bất kì được chọn bởi server để nhận dạng trạng thái phiên là hoạt động (active) hay phục hồi lại (resumable).
- Peer certificate: một chứng chỉ X509.v3. Thành phần này của trạng thái có thể là null.
- Compression method: thuật toán được dùng để nén dữ liệu trước khi mã hóa.
- Cypher spec: chỉ ra thuật toán mã hóa dữ liệu (như rỗng,AES…) và thuật toán băm (như MD5 hay SHA1) sử dụng để tính toán MAC. Nó cũng định nghĩa các thuộc tính mã hóa như hash-size.
- Master secret: 48 byte bí mật được chia sẻ giữa client và server.
- Is resumable: chỉ ra rằng phiên này có thể được dùng để khởi tạo các kết nối khác hay không.
30. Hãy mô tả một hệ thống Phát hiện xâm nhập Network Intrusion Detection (NID)
Trả lời: Hệ thống NID (NIDS) được sử dụng để phân tích các lượt truy cập vào mạng lưới và xác định nó có liên quan các cuộc tấn công không. Nếu có bất kì lỗ hổng nào bị phát hiện ra, quản trị hệ thống sẽ nhận được một thông báo.
Kết luận
Qua bài viết hi vọng đã đem lại cho các bạn những thông tin quý giá và hữu ích về các câu hỏi trong phỏng vấn để sử dụng sau này. Đồng thời, cung cấp và làm rõ nhiều kiến thức về Kiểm thử bảo mật cho bạn.
Nguồn: http://www.softwaretestinghelp.com/interview-questions/security-testing-interview-questions-and-answers/
All rights reserved