Lưu trữ‎ > ‎CMKT‎ > ‎

Tài liệu an ninh mạng

Tài liệu An ninh mạng

Forencis

Giới thiệu một số tài liệu An ninh mạng

Đã từ lâu, kỹ thuật tận dụng các lỗi phần mềm được coi như là ma thuật của các hacker. Làm thế nào mà họ có thể tìm ra lỗi của một chương trình và khai thác nó? Bài viết này sẽ giúp cho các bạn có thể biết được: cần chuẩn bị những kiến thức gì để có thể tìm và khai thác lỗi phần mềm. Đồng thời bài viết được xem như là một bộ khung của giáo trình “tìm và tận dụng lỗi phần mềm”.

Bài viết được dựa trên nội dung của bài “From 0x90 to 0x4c454554, a journey into exploitation” tại địa chỉ: http://myne-us.blogspot.com/2010/08/from-0x90-to-0x4c454554-journey-into.html

Cấu trúc của bài viết được chia nhỏ ra các phần một cách rõ ràng để mọi người có thể dễ dàng hơn trong quá trình học và nghiên cứu về khai thác lỗi phần mềm. Để thuận tiện cho quá trình nghiên cứu và học tập, Các bạn phải hoàn thành từng “chỉ mục” trước khi bước qua “chỉ mục” tiếp theo.

Để quá trình học tập và thực hành việc tận dụng lỗi phần mềm dễ dàng hơn các bạn có thể tải các Cheatsheet về làm hình nền cho máy tính. Link: http://redmine.corelan.be:8800/projects/corelanart/files

Ngoài ra còn một vài bài viết tiếng anh quan trọng khác các bạn nên đọc:

– Lịch sử của quá trình khai thác lỗi phần mềm – http://www.abysssec.com/blog/2010/05/past-present-future-of-windows-exploitation/
– Làm thế nào để phá vỡ stack – http://5d4a.wordpress.com/2010/08/02/smashing-the-stack-in-2010/
– Các dự án tổng hợp tài liệu về bảo mật – https://code.google.com/p/it-sec-catalog/

Phần 1: Kiến thức lập trình (Programming)

Chỉ mục 1: Hoàn thành quá trình này trước khi đọc cuốn sách “Hacking Art of exploitation”

Khi bước chân vào con đường IT môn học tiên quyết bao giờ cũng là lập trình! Trong bảo mật nói chung và việc khai thác lỗi phần mềm nói riêng thì việc biết lập trình trở nên rất quan trọng bởi vì nếu bạn không có kiến thức về lập trình thì làm sao bạn có thể biết điểm yếu của một chương trình thường xuất hiện ở đâu? Nếu không có kiến thức lập trình thì làm sao bạn có thể đọc hiểu code để mà khai thác lỗi? …
Ngoài ra lập trình còn giúp bạn viết một số tool cho nhu cầu của riêng bạn, hay viết các đoạn mã khai thác lỗi … Dưới đây là một số ngôn ngữ lập trình phổ biến và hữu ích:

Python: Đây là một ngôn ngữ mạnh mẽ, dễ dùng và rất nhiều tài liệu hướng dẫn. Đặc biệt đây còn là ngôn ngữ lập trình mà các hacker rất yêu thích và nó thường được sử dụng để khai thác lỗi phần mềm.

Tài liệu tiếng anh:

– Learn Python the hard way – http://learnpythonthehardway.org/static/LearnPythonTheHardWay.pdf
– Wikibooks Python – http://en.wikibooks.org/wiki/Subjectython_programming_language
– http://docs.python.org/
– Một vài ebook miễn phí – http://www.onlinecomputerbooks.com/free-python-books.php
– Grey hat Python – http://oreilly.com/catalog/9781593271923
Tài liệu tiếng Việt:

– http://www.vithon.org/

Ruby: Đây là ngôn ngữ chủ yếu được dùng để viết các Exploit cho Công cụ Metasploit. Cho nên đây cũng là một ngôn ngữ rất tốt để bắt đầu học khai thác lỗi phần mềm.

Tài liệu:

– Wikibooks Ruby – http://en.wikibooks.org/wiki/Subject:Ruby_programming_language
– Little Book Of Ruby – http://www.sapphiresteel.com/IMG/pdf/LittleBookOfRuby.pdf
– Ruby Programmers Guide – http://www.ruby-doc.org/docs/ProgrammingRuby/
– Một vài ebook miễn phí – http://www.onlinecomputerbooks.com/free-ruby-books.php

Perl: Đây là một ngôn ngữ lâu đời nhưng vẫn còn rất nhiều người sử dụng, Nó là một trong những ngôn ngữ kịch bản (scripting languages) hữu dụng nhất và có rất nhiều exploit dùng đến nó.

Tài liệu:

– O’Reilly Learning Perl – http://www.amazon.com/Learning-Perl-5th-Randal-Schwartz/dp/0596520107/ref=sr_1_1?ie=UTF8&s=books&qid=1280901933&sr=8-1
– Một vài tài liệu miễn phí – http://www.onlinecomputerbooks.com/free-perl-books.php

C/C++: Đây là một ngôn ngữ lập trình cực kỳ quan trọng, nó giúp cho bạn hiểu được bạn khai thác cái gì? Và bắt đầu khai như thế nào? Bạn không cần hiểu hết tất cả, nhưng khi hoàn thành phần này bạn có kiến thức tốt về lập trình C/C++. Đây cũng là ngôn ngữ lập trình được giảng dạy trong hầu hết các trường đại học ở Việt Nam hiện nay, vì thế tài liệu tiếng Việt rất đa dạng và phong phú. Dưới đây là một vài tài liệu cơ bản cần nắm vững.

Tài liệu:

– Cprogramming.com – http://cprogramming.com/
– C Tutorial – http://www.java2s.com/Tutorial/C/CatalogC.htm
– Beej’s Guide to C Programming – http://beej.us/guide/bgc/
– Một vài ebook miễn phí – http://www.onlinecomputerbooks.com/free-c-books.php
X86 Assembly: Tiếp theo chúng ta phải hiểu được máy tính đọc cái gì khi ta biên dịch C/C++. Chúng ta nên tập trung vào ngôn ngữ Assembly IA-32 (x86). Một vài tài liệu dưới đây được trình bày khá hay.

Tài Liệu:

– Skullsecurity: Assembly – http://www.skullsecurity.org/wiki/index.php/Fundamentals
– Windows Assembly Programming Tutorial – http://www.acm.uiuc.edu/sigwin/old/workshops/winasmtut.pdf
– http://en.wikibooks.org/wiki/X86_Assembly
– The Art of Assembly – http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/index.html
– Assembly primer for hackers – http://www.securitytube.net/Assembly-Primer-for-Hackers-%28Part-1%29-System-Organization-video.aspx
– PC Assembly Language – http://www.drpaulcarter.com/pcasm/
Windows Programming: Lập trình windows giúp cho chúng ta hiểu được chương trình của chúng ta và cấu trúc của các thư viện hoạt động với hệ điều hành như thế nào. Những kiến thức này cực kỳ quan trọng về sau khi ta tiến hành khai thác lỗi phần mềm trên Windows.

Tài liệu:

– Windows Programming – http://en.wikibooks.org/wiki/Windows_Programming
– Windows API Tutorial – http://www.relisoft.com/win32/index.htm
– Windows Sysinternals – http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dstripbooks&field-keywords=windows+sysinternals&x=0&y=0
– Windows Internals 4 – http://www.amazon.com/Microsoft-Windows-Internals-4th-Server/dp/0735619174

Disassembly: Disassembly không hẳn là lập trình, Nó trình bày những gì máy tính hiểu và tính toán thông qua CPU và bộ nhớ . Đây là một kỹ năng mà chúng ta cần nắm vững.

Tài liệu:

– http://en.wikibooks.org/wiki/X86_Disassembly
– The Art of Disassembly – http://tuts4you.com/download.php?view.187

Ngoài các kiến thức lập trình trên bạn còn phải sử dụng thành thạo Windows cũng như Linux, nó giúp ích rất nhiều cho quá trình nghiên cứu và tận dụng lỗi phần mềm.

Phần 2: Bắt đầu quá trình tìm và khai thác lỗi

Sau khi tìm hiểu phần 1, bạn đã có nắm vững kiến thức về lập trình và những gì máy đang thực hiện mà chúng ta có thể can thiệp trực tiếp vào – Khai thác lỗi.

Phần này gồm rất nhiều bài học được tổng hợp dưới các link sau:

Smash the stack for fun and profit (Phrack 49) – http://www.phrack.org/issues.html?issue=49&id=14#article

C function call conventions and the stack – http://cs.umbc.edu/~chang/cs313.s02/stack.shtml

Anatomy of a program in memory – http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory

Function Calls, Part 1 (the Basics) – http://www.codeguru.com/cpp/misc/misc/assemblylanguage/article.php/c14641

IA-32 Architecture – http://www.sandpile.org/ia32/index.htm

Video Code Audit – http://pentest.cryptocity.net/code-audits/
(Chỉ mục 1 – Đã hoàn thành: Sau khi hoàn thành chỉ mục một bạn phải nắm vững một trong các ngôn ngữ lập trình đã kể trên. Đồng thời có kiến thức tốt về stack và cách gọi hàm )

Hacking art of exploitation [Chapter 1&2] – http://www.amazon.com/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441/ref=sr_1_fkmr1_1?ie=UTF8&qid=1280905635&sr=1-1-fkmr1

Exploit writing tutorial part 1 : Stack Based Overflows – http://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/

Exploit writing tutorial part 2 : Stack Based Overflows – jumping to shellcode – http://www.corelan.be/index.php/2009/07/23/writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-2/

Chỉ mục 2 – Hoàn thành việc chuẩn bị kiến thức các phần sau trước khi kết thúc phần 2

Đọc một vài bài viết đầu tiên tại Blog http://blog.ksplice.com/2010/03/ có nhiều thông tin hữu ích.
Một vài bài viết tại blog http://www.nullthreat.net/ giúp ích rất nhiều cho quá trình trở thành một người kiểm tra lỗi phần mềm.
The Stack-based Buffer Overflow Vulnerability and Exploit Experimental Demonstration – http://www.tenouk.com/Bufferoverflowc/stackbasedbufferoverflow.html

The Tao of Windows Buffer Overflow – http://www.cultdeadcow.com/cDc_files/cDc-351/index.html

How do buffer overflow attacks work? – http://nsfsecurity.pr.erau.edu/bom/index.html

Buffer Overflows – http://www.hackerscenter.com/index.php?/Downloads/Library/Application-Security/View-category.html

Video Buffer overflow Primer – http://www.securitytube.net/Buffer-Overflow-Primer-Part-1-%28Smashing-the-Stack%29-video.aspx

Shellcoder’s Handbook Ch1&2 – http://www.amazon.com/Shellcoders-Handbook-Discovering-Exploiting-Security/dp/047008023X/ref=sr_1_1?ie=UTF8&s=books&qid=1282450549&sr=8-1

Hacking art of exploitation [Chapter 3] – http://www.amazon.com/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441/ref=sr_1_fkmr1_1?ie=UTF8&qid=1280905635&sr=1-1-fkmr1

Exploit writing tutorial part 3 : SEH Based Exploits – http://www.corelan.be/index.php/2009/07/25/writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-3-seh/

Exploit writing tutorial part 3b : SEH Based Exploits – just another example – http://www.corelan.be/index.php/2009/07/28/seh-based-exploit-writing-tutorial-continued-just-another-example-part-3b/

Tutorial: SEH Based Exploits and the Development Process – http://www.ethicalhacker.net/content/view/309/2/

SEH Overwrites Simplified – http://www.shell-storm.org/papers/files/405.pdf
Tiện đây mình xin giới thiệu một tài liệu hiếm hoi về khai thác lỗi phần mềm bằng tiếng việt, đó là cuốn “Nghệ thuật tận dụng lỗi phần mềm” – Nguyễn Thành Nam. Nơi mua có thể tham khảo tại topichttp://www.hvaonline.net/hvaonline/posts/list/80/31846.hva. Theo mình đây là một tài liệu rất hữu ích cho những người mới bắt đầu tìm hiểu về khai thác lỗi phần mềm.
(Chỉ mục 2 – Đã hoàn thành)

Phần 3 – Các công cụ cần thiết

Đây là danh sách các công cụ cần thiết và rất hữu dụng:
Immunity Debugger – http://www.immunityinc.com/products-immdbg.shtml

Ollydbg – http://www.ollydbg.de/

Windbg – http://msdn.microsoft.com/en-us/windows/hardware/gg463016.aspx

IDA Pro – http://www.hex-rays.com/idapro/

Sysinternals – http://technet.microsoft.com/en-us/sysinternals/bb795533.aspx

Explorer Suite – http://www.ntcore.com/exsuite.php
Và dưới đây là những bài viết của Corelan về cách sử dụng chúng trong việc khai thác lỗi. Các bài viết sẽ được cập nhật thêm sau:
Exploit writing tutorial part 5 : How debugger modules & plugins can speed up basic exploit development – http://www.corelan.be/index.php/2009/09/05/exploit-writing-tutorial-part-5-how-debugger-modules-plugins-can-speed-up-basic-exploit-development/

Corelan: Immunity debugger cheatsheet – http://www.corelan.be/index.php/2010/01/26/starting-to-write-immunity-debugger-pycommands-my-cheatsheet/
Ngoài ra các bạn cũng có thể tìm đọc một vài tài liệu hướng dẫn sử dụng các chương trình trên internet

Phần 4 – Kiến thức về mạng và Metasploit

Kiến thức về mạng là một phần rất quan trọng trong việc khai thác lỗi phần mềm, nếu có kiến thức tốt về mạng và lập trình mạng bạn có thể khai thác lỗi thông qua mạng LAN hay internet và có thể chiếm quyền và điều khiển máy tính từ xa.
Beej’s Guide to Network Programming – http://beej.us/guide/bgnet/output/html/multipage/index.html

Hacking art of exploitation [Chapter 4] – http://www.amazon.com/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441/ref=sr_1_fkmr1_1?ie=UTF8&qid=1280905635&sr=1-1-fkmr1

Socket Programming in Ruby – https://www6.software.ibm.com/developerworks/education/l-rubysocks/l-rubysocks-a4.pdf
Metasploit là một công cụ tìm và khai thác lỗi phần mềm phổ biến nhất hiện nay. Các link bài viết dưới đây sẽ giúp các bạn biết sử dụng hiệu quả công cụ này.
Video Security Tube: Metasploit Megaprimer – http://www.securitytube.net/video/1175

http://www.metasploit.com/

Metasploit Unleashed – http://www.offensive-security.com/metasploit-unleashed/Metasploit_Unleashed_Information_Security_Training

Video Metasploit Louisville Class – http://www.irongeek.com/i.php?page=videos/metasploit-class

Metasploitable (a target) – http://blog.metasploit.com/2010/05/introducing-metasploitable.html

Exploit writing tutorial part 4 : From Exploit to Metasploit – The basics – http://www.corelan.be/index.php/2009/08/12/exploit-writing-tutorials-part-4-from-exploit-to-metasploit-the-basics/

Video Developing my first exploit – http://guides.intern0t.net/msf2.php

Exploit Creation in Metasploit – http://www.youtube.com/user/DHAtEnclaveForensics#p/u/9/rGlvgeeU0vQ

Wikibooks Metasploit/Writing Windows Exploit – http://en.wikibooks.org/wiki/Metasploit/WritingWindowsExploit.

Phần 5 – Shellcode

Phần này chúng ta sẽ tìm hiểu cách viết shellcode để khai thác lỗi
Exploit writing tutorial part 9 : Introduction to Win32 shellcoding – http://www.corelan.be/index.php/2010/02/25/exploit-writing-tutorial-part-9-introduction-to-win32-shellcoding/

Shellcode Tutorials – http://projectshellcode.com/?q=node/12

Shellcoder’s Handbook Ch3 – http://www.amazon.com/Shellcoders-Handbook-Discovering-Exploiting-Security/dp/047008023X/ref=sr_1_1?ie=UTF8&s=books&qid=1282450549&sr=8-1

Hacking art of exploitation [Chapter 5] – http://www.amazon.com/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441/ref=sr_1_fkmr1_1?ie=UTF8&qid=1280905635&sr=1-1-fkmr1

Writing small shellcode – http://www.shell-storm.org/papers/files/440.pdf

Shell-storm Shellcode database – http://www.shell-storm.org/shellcode/

Advanced shellcode – http://www.vividmachines.com/shellcode/shellcode.html#as

Phần 6 – Kỹ thuật Reverse

Chỉ mục 3: Cần ghi nhớ phần này để tham khảo và sử dụng trong quá trình reverse
Understanding Code – http://www.reteam.org/papers/e57.pdf

Reverse Engineering the World – http://mattoh.wordpress.com/

Reversing for Newbies – http://tuts4you.com/download.php?list.17

Intro to Reverse Engineering – http://www.ethicalhacker.net/content/view/152/2/

Introduction to Reverse Engineering Software – http://www.acm.uiuc.edu/sigmil/RevEng/

Reversing blog post – http://www.room362.com/blog/2009/6/12/getting-your-fill-of-reverse-engineering-and-malware-analysi.html

Reversing: secrets of reverse engineering – http://www.amazon.com/Reversing-Secrets-Engineering-Eldad-Eilam/dp/0764574817/ref=sr_1_1?s=books&ie=UTF8&qid=1280937813&sr=1-1

Video Reverse Engineering – http://pentest.cryptocity.net/reverse-engineering/

CrackZ’s Reverse Engineering Page – http://www.woodmann.com/crackz/

Video Reverse engineering techniques – http://www.securitytube.net/video/572

History of Packing Technology – http://securitylabs.websense.com/content/Assets/HistoryofPackingTechnology.pdf

Windows PE Header – http://marcoramilli.blogspot.com/2010/12/windows-pe-header.html

OpenRCE Articles – http://www.openrce.org/articles/
Và một diễn đàn về Reverse engineering lớn và có uy tín nhất Việt Nam đó là http://reaonline.net/
Để tăng kiến thức và kỹ năng reverse engineering bạn phải thường xuyên luyện tập và đúc rút kinh nghiệm cho bản thân. Một trang web cung cấp crackme để bạn thực hành là http://crackmes.de/

Phần 7 – Bắt đầu tìm hiểu sâu hơn về tràn bộ đệm (Buffer overflow)

Để nắm vững phần này các bạn nên thực hành nhiều để hiểu rõ vấn đề, Các bạn hãy tìm một vài exploit cũ tại http://www.exploit-db.com/ tải về thực hành, nắm vững cách thức hoạt động của nó, và viết lại nó theo cách của bạn.

A – Ngăn chặn lỗi tràn bộ đệm
Buffer overflow protection – http://en.wikipedia.org/wiki/Buffer_overflow_protection

Video The evolution of Microsoft’s Mitigations – http://technet.microsoft.com/en-us/security/dd285253.aspx

Canary Bit – http://www.cs.purdue.edu/homes/mkirkpat/papers/canbit.pdf

Preventing the Exploitation of Structured Exception Handler (SEH) Overwrites with SEHOP – http://blogs.technet.com/b/srd/archive/2009/02/02/preventing-the-exploitation-of-seh-overwrites-with-sehop.aspx

Bypassing SEHOP – http://www.sysdream.com/articles/sehop_en.pdf

Executable space protextion – http://en.wikipedia.org/wiki/Executable_space_protection

Data Execution Prevention – http://en.wikipedia.org/wiki/Data_Execution_Prevention

Bypassing Hardware based Data Execution Prevention – http://www.securestate.com/Downloadables/Documents/Whitepapers/Bypassing_Hardware_based_Data_Execution_Prevention.pdf

Address space layout randomization – http://en.wikipedia.org/wiki/ASLR

An Analysis of Address Space Layout Randomization on Windows Vista – http://www.symantec.com/avcenter/reference/Address_Space_Layout_Randomization.pdf

Defeating the Stack Based Buffer Overflow Prevention – http://dl.packetstormsecurity.net/papers/bypass/defeating-w2k3-stack-protection.pdf

Exploit writing tutorial part 6 : Bypassing Stack Cookies, SafeSeh, SEHOP, HW DEP and ASLR – http://www.corelan.be/index.php/2009/09/21/exploit-writing-tutorial-part-6-bypassing-stack-cookies-safeseh-hw-dep-and-aslr/

Return-to-libc attack – https://secure.wikimedia.org/wikipedia/en/wiki/Return-to-libc_attack

Video Microsoft protections video – http://technet.microsoft.com/en-us/security/dd285253.aspx

B – Tràn bộ đệm nâng cao

Video Exploitation – http://pentest.cryptocity.net/exploitation/

Exploit writing tutorial part 7 : Unicode – from 0×00410041 to calc – http://www.corelan.be/index.php/2009/11/06/exploit-writing-tutorial-part-7-unicode-from-0x00410041-to-calc/

Exploit writing tutorial part 8 : Win32 Egg Hunting – http://www.corelan.be/index.php/2010/01/09/exploit-writing-tutorial-part-8-win32-egg-hunting/

Exploit writing tutorial part 10 : Chaining DEP with ROP – the Rubik’s[TM] Cube – http://www.corelan.be/index.php/2010/06/16/exploit-writing-tutorial-part-10-chaining-dep-with-rop-the-rubikstm-cube/

Video Virtual Worlds – Real Exploits – http://www.youtube.com/watch?v=UIKy1Shxd6Q
Ngoài ra các bạn cũng có thể thực hành làm quen với các bài tập tìm và khai thác lỗi lập trình tại http://community.corest.com/~gera/InsecureProgramming/ một vài bài tập tại đây đã được giải thích rất rõ trong cuốn sách “Nghệ thuật tận dụng lỗi phần mềm”.
Và một trang wargame khá hay nữa đó là http://www.smashthestack.org/
Các bạn cũng nên xem qua topic của bạn choc_ http://www.hvaonline.net/hvaonline/posts/list/27801.hva
Trên HVA cũng có một topic bàn về các wargame về khai thác lỗi phần mềm trên trang http://www.overthewire.org/wargames/ . Các bạn có thể xem tại http://www.hvaonline.net/hvaonline/posts/list/23615.hva

Phần 8 – Heap Overflow

Heap Overflows for Humans – http://www.exploit-db.com/download_pdf/15982

rm -rf / on heap overflow – http://pthreads.blogspot.com/2007/04/heap-overflow.html

Shellcoder’s Handbook Ch4&5 – http://www.amazon.com/Shellcoders-Handbook-Discovering-Exploiting-Security/dp/047008023X/ref=sr_1_1?ie=UTF8&s=books&qid=1282450549&sr=8-1

A heap of risk – http://www.h-online.com/security/features/A-Heap-of-Risk-747161.html

Video Defcon 15 remedial Heap Overflows – http://video.google.com/videoplay?docid=1985155227368288256#

Heap overflow: ancient art of unlink seduction – http://www.thehackerslibrary.com/?p=872

Memory corruptions part II – heap – http://advancedwindowsdebugging.com/ch06.pdf
Và đọc những phần còn lại của cuốn sách Shellcoder’s Handbook

Phần 9 – Danh sách các trang web cung cấp exploit

Hãy thường xuyên truy cập vào các trang web dưới đây để tìm kiếm và tải về các exploit mới nhất để nghiên cứu

Sưu tầm

Penetration Test


Những Chủ Đề Chính Trong Chương Này

Security Assessment Là Gì ?
Các Mô Hình Penetration Test
Các Bước Của Quá Trình Penetration Test
Công Cụ Tiến Hành Penetration Test


Security Assessment Là Gì ?

“Biết người biết ta trăm trận trăm thắng” là câu thành ngữ nổi tiếng của binh pháp Tôn Tử, vì vậy trong nhiều tài liệu về an toàn thông tin hay trích dẫn câu nói này với tiêu đề “Know Your Enemy” . Thật vậy, để có thể bảo mật thông tin và phòng chống các cuộc tấn công của hacker thì chính những người chịu trách nhiệm về an ninh cần phải nắm rõ những cách thức mà hacker sẽ tiến hành để tấn công vào hệ thống. Nói cách khác, chúng ta cần phải đột nhập vào hệ thống của mình như là một hacker, quá trình này được gọi là penetration test (gọi tắt là pentest) còn những người thực hiện chính là các penetration tester.

Trước tiên penetration tester hay những chuyên gia an ninh mạng cần tiến hành đánh giá mức độ bảo mật thông tin, ước lượng các rũi ro có thể xảy ra cho hệ thống mạng, Quá trình này được gọi là Security Assessment. Đây cũng là một bước trong tiến trình kiểm định bảo mật mà chúng ta hay gọi bằng thuật ngữ security audit và cuối cùng là thực hiện penetration test. Đây là các công việc quan trọng cần được thực hiện bởi những chuyên gia có kinh nghiệm và tiến hành theo quy trình khoa học để đem lại hiệu quả cao nhất.

Trong quá trình kiểm định bảo mật hay đánh giá các điểm yếu của hệ thống chúng ta cần quét các lớp mạng để tìm ra những lổ hỗng của hệ thống tồn tại trong các dịch vụ hay máy trạm, máy chủ, xác định các hệ thống đang hoạt động cùng những dịch vụ đang chạy trên các cổng tương ứng, và có hay không những lỗi cấu hình như gán quyền sai, sử dụng thông tin cấu hình mặc định là các default password có thể bị các hacker lợi dụng để xâm nhập hệ thống và đánh cắp dữ liệu. Sau đó, các hacker thiện chí hay pentration tester sẽ dựa trên những thông tin này để thực hiện một cuộc tấn công thực sự vào hệ thống nhằm kiểm tra xem mức độ thiệt hại và khả năng chịu đựng các cuộc tấn công trên.

Các Mô Hình Penetration Test

Có hai mô hình pentest là white-box và black-box tương ứng với vị trí của pentration tester là ở bên trong hay bên ngoài hệ thống mục tiêu. 

Ở mô hình black-box các penetartion tester sẽ như là các hacker black-hat thực sự nằm bên ngoài hệ thống, do đó việc đánh giá bảo mật cần phải tiến hành theo đúng quy trình hacking mà chúng ta đã thảo luận từ Module 2 trở đi đó là tìm kiếm và tập trung tất cả những thông tin liên quan đến mục tiêu từ các nguồn trên internet như cơ sở dữ liệu Whois, tiến hành thu thập thông tin DNS, sử dụng Google để tìm kiếm nâng cao với các tùy chọn liên quan đến trang web của tổ chức, các địa chỉ email công bố trên các diễn đàn công cộng. Sau đó là quét lỗi nhằm xác định các lổ hỗng bảo mật hay các khiếm khuyết liên quan đến ứng dụng đang chạy rồi từ đó xác định phương pháp tấn công thông qua internet nhằm vào mục tiêu.

Quá trình pentest theo mô hình black-box có thể gây ra một số vấn đề ảnh hưởng đến quá trình hoạt động của hệ thống, do đó trước khi tiến hành các bạn cần sao lưu những dữ liệu quan trọng cẩn thận hay có một chế độ bảo đảm tính liên tục của hệ thống nhằm tránh những tác động tiêu cực. Vì pentest là một quá trình tấn công hợp lệ, cần có sự đồng ý của đơn vị chủ quản nên những người quản lý có quyền đưa ra những ngoại lệ mà penetration tester không nên thử nghiệm tấn công, tất cả những điều này sẽ được quy định rõ trong bản yêu cầu dịch vụ Service Level Argeement (SLA). 

Ngược lại với mô hình back-box, khi các penetration tester đánh giá bảo mật và thử nghiệm tấn công từ phía bên trong mạng nội bộ sẽ được gọi là white-box, và khác với tình huống tấn công từ bên ngoài những mối đe dọa từ bên trong sẽ có những thuận lọi hơn do cùng hệ thống nên có sự tương tác trực tiếp về vật lý với máy chủ, máy trạm hay thông tin liên lạc của người dùng. Các tài liệu thống kê cho rằng những nguyên nhân mất mát dữ liệu từ bên trong mạng nội bộ nhiều đến mức ngạc nhiên, lên đến 80 % , và tại Việt Nam chúng ta cũng đã thấy các tình huống những nhân viên bị nghĩ việc đã cố tình phá hoại dữ liệu, tấn công trang web để làm xâu hình ảnh của đơn vị chủ quản trước đây của mình. Chính vì vậy chúng ta cần đánh giá cặn kẽ những mối nguy hiểm đến từ bên trong để có hình thức đối phò và đề phòng thích hợp.

Nếu công ty hay tổ chức chỉ muốn đánh giá và kiểm định vấn đề an toàn thông tin thì những tình huống tương ứng khi thực hiện ở bên trong và bên ngoài hệ thống là internal assessment và external assessment. Để đạt được hiệu quả cao tổ chức cần tuyển dụng những nhân viên có chuyên môn trong lĩnh vực an ninh mạng hay thuê bên ngoài thực hiện công việc này. Các chuyên gia có chứng chỉ kiểm định bảo mật quốc tê CISA là những người thích hợp.

Về mặt công cụ thì các hacker dù là black hat hay white hat, ở bên trong hay bên ngoài hệ thống cũng đều sử dụng nhưng công cụ như nhau. Có thể đó là những ứng dụng thương mại với nhiều chức năng mạnh mẽ và thường là rất dễ sử dụng, đôi khi tiến hành các thao tác thăm dò và khai thác hoàn toàn tự động như Core Impact hoặc các công cụ chuyên tìm kiếm lỗi của ứng dụng Web như Web Acunetix. Ngoài ra, những chương trình miễn phí hay mã nguồn mở cũng là các công cụ được nhiều chuyên gia bảo mật và ngay cả các hacker tin dùng như Nessus – Công cụ mạng và bảo mật số 1 thế giới hiện nay được đánh giá bởi hơn 2600 hacker, hay Metasploit Framwork mà chúng ta đã có dịp tham khảo những chức năng mạnh mẽ của chúng qua các ví dụ minh họa. Tuy nhiên, việc sử dụng những công cụ audit tự động nay cũng có một số điểm hạn chế như phát hiện sai khi chưa kịp cập nhật thông tin nhận dạng của các lổ hỗng, do đó chúng ta cần update những chương trình này đầy đủ và kết hợp giữa các ứng dụng kiểm định tự động với các phương pháp thủ công thông qua việc hoạch định, lập lịch cũng như đánh giá các rũi ro dựa trên tình hình thực tế của hệ thống hay khảo sát nhu cầu của người dùng.

Tuy nhiên, trong quá trình kiểm định và pentest thủ công chúng ta cần thuê các chuyên gia giàu kinh nghiệm để đạt được hiệu quả cao nhất. Những người có kỹ năng hacking như CEH và có kiến thức về kiểm định bảo mật (ví dụ có chứng chỉ CISA) là những chuyên gia đáng tin cậy để tổ chức, doanh nghiệp thuê làm pentest và audit hệ thống.

Các Bước Của Quá Trình Penetration Test

Quá trình Penetration Test gồm có ba giai đoạn đó là :

- Giai đoạn Pre-attack
- Giai đoạn tấn công
- Giai đoạn tổng kết Post-attack


Hình 19.1 - Các giai đoạn tiến hành Penetration Test

Trong giai đoạn Pre-attack chúng ta cần tập hợp các thông tin liên quan đến hệ thống từ các nguồn dữ liệu công cộng từ Whois hay DNS Check tương ứng với giai đoạn Footprinting và Reconnaissance. Sau khi thu thập đầy đủ các thông tin cần thiết thì giai đoạn tấn công thực sự mới bắt đầu, quá trình này sẽ gồm Penetrating The Perimeter, Acquiring The Target, Escalating Priveledge Và Executing, Implant Và Retracing với ý nghĩa của từng giai đoạn như sau :


Hình 19.2 – Các bước của giai đoạn tấn công

Penetrating The Perimeter : Công đoạn này gồm có xem xét các bao cáo lỗi, kiểm tra danh sách truy cập Access Control List, đánh giá các bộ lọc giao thức hay những quy tắt được áp đặt trên Firewall đối với các giao thức như SSH, FTP, Telnet. Ngoài ra, người thực hiện cần tiến hành kiểm lỗi tràn bộ đệm, SQL injection, hay tấn công DoS. Bên cạnh đó nên kiểm tra thêm về cấu hình của hệ thống mạng không dây hay các ứng dụng web nội bộ.

Acquiring The Target : Đây là quá trình tận dụng các kết quả đã xác định như những lổ hỗng hệ thống, lỗi bảo mật của ứng dụng để tấn công, xâm nhập vào mục tiêu. Trong giai đoạn này các bạn có thể sử dụng các chương trình khai thác tự động như CORE IMPACT hay ứng dụng chuyên dùng cho các penetration tester là Back Track (phiên bản hiện nay là BackTrack 5). 

Escalating Privilege : Sau khi thâm nhập hệ thống hacker sẽ tiến hành nâng quyền với để chiếm quyền quản trị cao nhất. Hành động này được gọi là Escalating privilege hay leo thang mức ưu tiên.

Executing, Implanting, Reacting : Đây là công đoạn cuối cùng của quá trình penetration test. Cần lưu ý các hành động của chúng ta trong các giai đoạn này không được gây ảnh hưởng đến quá trình hoạt động của doanh nghiệp, vì vậy một số tổ chức sẽ yêu cầu chúng ta không tiến hành một số thao tác trong giai đoạn này như việc chạy thử nghiệm một số ứng dụng có khả năng làm lộ những thông tin mật, ảnh hưởng đến hoạt động chung …

Cuối cùng là post-attack bao gồm việc tạo báo cáo đánh giá chi tiết về những lỗi bảo mật, các rũi ro đối với an toàn thông tin và trình bày những vấn đề này trước khách hàng hay hội đồng thẩm định. Đưa toàn bộ hệ thống trở về trạng tháo hoạt động trước đây nếu như trong quá trình tiến hành có những sự thay đổi. Một vấn đề cần quan tâm nữa là chúng ta phải đưa ra được các giải pháp nhằm khắc phục các điểm yếu bảo mật đã phát hiện.

Những Công Cụ Tiến Hành Tấn Công Tự Động

Các công cụ dùng để penetration test hay tấn công có rất nhiều loại khác nhau, tùy thuộc nhu cầu và khả năng tài chính của mỗi tổ chức mà chúng ta sẽ dùng bản có phí hay miễn phí, chương trình chạy trên Windows hay Linux …Sau đây là một số ứng dụng cần quan tâm :

Nessus : Đây là ứng dụng được đánh giá là số 1 trong các công cụ bảo mật thông tin, việc đánh giá này được thực hiện trên 3000 hacker và chuyên gia bảo mật. Nessus có khả năng dò tìm những lỗ hổng bảo mật cho nhiều ứng dụng, hệ thống và cả thiết bị khác nhau một cách tự động. Điểm đặc biệt là Nessus hoạt động theo mô hình client – server nghĩa là chỉ cần cài ứng dụng trên một máy và tiền hành quét từ nhiều máy khác nhau.

GFI LANGuard : Một ứng dụng quét lỗi rất mạnh mẽ được nhiều ngân hàng sử dụng, có khả năng phát hiện lỗi dựa trên cơ sở dữ liệu nhận dạng lớn và đặc biệt là GFI LAN Guard có thể vá lỗi trên các máy tính trong hệ thống như bật chức audit, vá lỗi từ xa.

CORE IMPACT : Chương trình dò lỗi và tự động khai thác các mục tiêu.

MBSA : Ứng dụng miễn phí chạy trên hệ thống Windows dùng để dò tìm các bản cập nhật hệ thống, bản vá 1ỗi bảo mật cho hệ điều hành và ứng dụng được phát triển bởi Microsoft như SQL Server, Exchange Server. MBSA được phát triển bởi Microsoft nên khả năng tìm kiếm và quét lỗi trên hệ thống mạng Widnows rất tốt.

BackTrack : Ứng dụng này hoàn toàn miễn phí, và có thể nói là công cụ toàn diện nhất cho các hacker cũng như các penetration tester. Với hơn 200 công cụ từ khai thác, dò lỗi, tấn công và cả dịch vụ honeypot …BackTrack đáp ứng được đây đủ nhu cầu của các penetration tester hay attacker. Các bạn có thể sử dụng BackTrack trên đĩa DVD mà không cần cài đặt, nhưng BackTrack sẽ hoạt động tốt hơn, cũng như có thể lưu lại kết quả, báo cáo nếu các bạn cài ứng dụng này trên đĩa cứng hay cài trên USB và khởi động trực tiếp từ thiết bị này.

Tổng Kết

Như vậy, chúng ta đã năm về khái niệm penetration test cùng các quy trình và mô hình hoạt động của quá trình tấn công thử nghiệm. Những ứng dụng tìm kiếm lỗi và khai thác, tấn công mạnh mẽ. Cần lưu ý penetration test là “tấn công để phòng thủ” cho nên chúng ta cần phải cung cấp báo cáo đầy đủ cho khách hàng, hay tổ chức mà chúng ta tiến hành pentest.

- Liệt kê các lỗi được tìm thấy, những mối nguy hiểm hay rũi ro có thể xảy ra.
- Phân tích kết quả.
- Thảo luận và giải thích về những kết qua đã tìm ra.
- Đo lường mức độ nguy hiểm.
- Lưu giữ lại các tập tin nhật kí, và cung cấp các công cụ lưu giữ chứng cứ nhằm phục vụ công tác điều tra khi có sự cố xảy ra.
- Tạo một bản tóm tắt của toàn bộ quá trình làm việc. Đặt tên và ngày giờ thực hiện.
- Và cuối cùng phải lưu giữa và gởi các kết quả này cho những người có thẩm quyền qua các kênh an toàn, bảo mật cao nhất.

Read more: http://cehvietnam.com/showthread.php?37-Penetration-Test-Penetration-Test#ixzz3lVmYbEGn

Dịch vụ security audit

Security Audit là quá trình đánh giá về an ninh hệ thống để đảm bảo rằng các phương pháp an ninh an toàn cho thông tin và hệ thống vẫn hiệu quả và hoạt động đúng mục đích sử dụng. Việc đánh giá này thường đảm bảo hệ thống theo một chuẩn nào đó hoặc kiểm tra hệ thống có được bảo vệ theo yêu cầu đặc biệt của khách hàng về an ninh an toàn thông tin hay không.

 

mang_lan


Việc đánh giá yêu cầu từ khách hàng một bản danh sách các phần cứng liên quan đến hệ thống. Các chuyên viên sau đó sẽ thực hiện kiểm tra và đánh giá từng bộ phận một trong các mạng mà khách hàng yêu cầu như là mạng LAN, WAN, mạng không dây… Sau khi thực hiện đánh giá, các chuyên viên sẽ đưa ra một bản báo cáo trong đó nêu lên hiện trạng thực tại của hệ thống và sự khác biệt giữa thực trạng hiện tại và thực trạng mục tiêu của khách hàng, đồng thời bao gồm cách khắc phục và nâng cấp để có được mục tiêu đó.


Để đảm bảo tính khách quan của kết quả đánh giá hệ thống, nhiệm vụ này thường được thực hiện độc lập bởi một công ty ngoài


Dịch vụ pentest rà soát lỗ hổng bảo mật

pentest2

Nhiều người đã mô tả Pen Test (thử nghiệm thâm nhập) như là một nghệ thuật, và những người làm Pen Test là những nghệ sĩ; chúng tôi là những nghệ sĩ như vậy. Chúng tôi là những nghệ sĩ không chỉ góp phần vào phát triển thế giới của nghệ thuật Pen Test, mà còn làm kinh doanh. Loại kinh doanh của chúng tôi là đảm bảo an toàn và giảm thiểu rủi ro cho doanh nghiệp khác, đặc biệt là những doanh nghiệp kinh doanh trên mạng internet. Đội ngũ nhân viên của chúng tôi là những nghệ sĩ đã, đang và sẽ cống hiến cuộc đời của họ cho thế giới bảo mật trong công nghệ thông tin. Họ vừa là nghệ sĩ vừa là các nhà nghiên cứu an ninh tâm huyết, và điều quan trọng nhất, họ có khả năng hoàn thành công việc tốt, đúng thời gian với bất kì yêu cầu nào của khách hàng.
  • Khách hàng có thể lựa chọn để thực hiện một trong hai cách làm Pen Test:

    - Tấn công từ trong ra (white box Pen Test): là các thông tin về mạng nội bộ và ngoại sẽ được cung cấp bởi khách hàng và kỹ thuật viên của chúng tôi sẽ đánh giá an ninh mạng dựa trên đó.

    - Tấn công từ ngoài vào (black box Pen Test): các cuộc tấn công được thực hiện mà không có bất kỳ thông tin nào,kỹ thuật viên của chúng tôi sẽ đặt mình vào vị trí của những tin tặc mũ đen và cố gắng bằng mọi cách để thâm nhập vào được mạng nội, ngoại của khách hàng.

    - Sử dụng các thông tin trên mạng xã hội (social engineering): Lợi dụng các mối quan hệ giữa con người với con người để thu thập thông tin về mục tiêu.

    Sau khi tấn công thành công (hoặc không thành công), một danh sách các lỗ hổng đã được tìm thấy và cách thức đột nhập sẽ được lưu lại và được ghi trong báo cáo với khách hàng

 

Comments