banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận việc định hướng Cho em hỏi về lập trình trong Security  XML
  [Question]   Cho em hỏi về lập trình trong Security 25/01/2008 03:54:48 (+0700) | #1 | 111979
hungviet183
Member

[Minus]    0    [Plus]
Joined: 10/10/2007 21:49:16
Messages: 2
Offline
[Profile] [PM]
Xin chào các anh chị trong HVA, em hiện đang rất bối rối trong việc xác định học ngôn ngữ lập trình (NNLT) cho bảo mật mạng (BMM).

Thực tế như các bài viết trong box này đã đề cập thì hiển nhiên phải học NNLT để phục vụ cho BMM. Hiện giờ em cũng đang học lập trình và mạng đồng thời nhưng không biết nên học lập trình chuyên sâu không hay là chỉ học những cái căn bản vừa đủ để viết được một chương trình hỗ trợ cho BMM? Em không rõ là mình có cần phải học NNLT để viết thành một chương trình hoàn chỉnh (như là các đội ngũ làm phần mềm) hay là chỉ cần học để có cái nhìn tổng quát để về sau viết được một chương trình cho BMM? Bản thân em nghĩ với sức mình thì không thể nào học nổi vừa chuyên sâu NNLT lẫn kiến thức của BMM. Ví dụ như Python, em có cần học sâu vào Python để viết các chương trình như là loại dành cho NASA không hay là chỉ học đủ để viết chương trình exploit bằng Python như trên các website hack thường thấy... Và nếu học NNLT vừa đủ thì việc đọc và hiểu được các ebooks thông thường về một NNLT (ví dụ của O'reilly, Addision-Wesley...) sẽ cho em khả năng viết được chương trình cho BBM chứ?

Mong anh chị nào đã có kinh nghiệm về vấn đề này thì cho em xin ý kiến. Em xin cám ơn nhiều smilie
[Up] [Print Copy]
  [Question]   Cho em hỏi về lập trình trong Security 25/01/2008 04:34:48 (+0700) | #2 | 111989
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

hungviet183 wrote:
Xin chào các anh chị trong HVA, em hiện đang rất bối rối trong việc xác định học ngôn ngữ lập trình (NNLT) cho bảo mật mạng (BMM).

Thực tế như các bài viết trong box này đã đề cập thì hiển nhiên phải học NNLT để phục vụ cho BMM. Hiện giờ em cũng đang học lập trình và mạng đồng thời nhưng không biết nên học lập trình chuyên sâu không hay là chỉ học những cái căn bản vừa đủ để viết được một chương trình hỗ trợ cho BMM? Em không rõ là mình có cần phải học NNLT để viết thành một chương trình hoàn chỉnh (như là các đội ngũ làm phần mềm) hay là chỉ cần học để có cái nhìn tổng quát để về sau viết được một chương trình cho BMM? Bản thân em nghĩ với sức mình thì không thể nào học nổi vừa chuyên sâu NNLT lẫn kiến thức của BMM. Ví dụ như Python, em có cần học sâu vào Python để viết các chương trình như là loại dành cho NASA không hay là chỉ học đủ để viết chương trình exploit bằng Python như trên các website hack thường thấy... Và nếu học NNLT vừa đủ thì việc đọc và hiểu được các ebooks thông thường về một NNLT (ví dụ của O'reilly, Addision-Wesley...) sẽ cho em khả năng viết được chương trình cho BBM chứ?

Mong anh chị nào đã có kinh nghiệm về vấn đề này thì cho em xin ý kiến. Em xin cám ơn nhiều smilie
 


Lập trình trong bảo mật có hai nhánh chính:

1) Lập trình đơn giản để phục vụ nhu cầu quản lý:
Dạng lập trình này thường đơn giản và đòi hỏi thông thạo các dạng "scripting" phổ biến và cụ thể của từng sản phẩm bảo mật. Điều cần quan tâm cho dạng lập trình này là khả năng logic và ứng dụng nhanh gọn để đáp ứng nhu cầu khả năng tự động hóa, thu thập thông tin, phân tích thông tin. Perl, Python và shell script không thể thiếu cho dạng này. Tất nhiên vẫn có thể dùng các ngôn ngữ khác nếu thích.

2) Lập trình chính quy để tạo các sản phẩm bảo mật:
Dạng lập trình này đòi hỏi sự thông hiểu sâu và rộng về bảo mật. Đặc biệt phải nắm rất vững từng hệ điều hành (mình muốn viết ứng dụng bảo mật) và các giao thức mạng cần dùng. Ngoài việc thông thạo các ngôn ngữ cho dạng này (như C, C++, Java, ASM...), bồ còn phải nắm vững các API cần thiết cho ứng dụng.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Cho em hỏi về lập trình trong Security 25/01/2008 06:45:38 (+0700) | #3 | 112023
hungviet183
Member

[Minus]    0    [Plus]
Joined: 10/10/2007 21:49:16
Messages: 2
Offline
[Profile] [PM]

conmale wrote:
Lập trình trong bảo mật có hai nhánh chính:

1) Lập trình đơn giản để phục vụ nhu cầu quản lý:
Dạng lập trình này thường đơn giản và đòi hỏi thông thạo các dạng "scripting" phổ biến và cụ thể của từng sản phẩm bảo mật. Điều cần quan tâm cho dạng lập trình này là khả năng logic và ứng dụng nhanh gọn để đáp ứng nhu cầu khả năng tự động hóa, thu thập thông tin, phân tích thông tin. Perl, Python và shell script không thể thiếu cho dạng này. Tất nhiên vẫn có thể dùng các ngôn ngữ khác nếu thích.

2) Lập trình chính quy để tạo các sản phẩm bảo mật:
Dạng lập trình này đòi hỏi sự thông hiểu sâu và rộng về bảo mật. Đặc biệt phải nắm rất vững từng hệ điều hành (mình muốn viết ứng dụng bảo mật) và các giao thức mạng cần dùng. Ngoài việc thông thạo các ngôn ngữ cho dạng này (như C, C++, Java, ASM...), bồ còn phải nắm vững các API cần thiết cho ứng dụng. 

Em cám ơn anh conmale nhiều lắm. Cho em hỏi thêm một ý nữa là theo anh mình học NNLT hỗ trợ cho BMM thì có cần phải chuyên sâu về thuật toán hay không? Vì vấn đề khó nhất của lập trình là khâu thuật toán giải quyết vấn đề. Theo em chỉ cần có tính logic cao trong cách giải quyết vấn đề hơn là chuyên về thuật toán đúng không anh? Vì nếu giỏi thuật toán nữa thì coi như giỏi cả mạng và lập trình rồi smilie

Em hỏi vậy vì em không biết mình nên dành thời gian cho nghiên cứu mạng nhiều hơn hay dành thời gian cho việc học cách tìm thuật toán trong lập trình (em lo nhất là data structure trong NNLT).
[Up] [Print Copy]
  [Question]   Cho em hỏi về lập trình trong Security 25/01/2008 08:02:03 (+0700) | #4 | 112029
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

hungviet183 wrote:

conmale wrote:
Lập trình trong bảo mật có hai nhánh chính:

1) Lập trình đơn giản để phục vụ nhu cầu quản lý:
Dạng lập trình này thường đơn giản và đòi hỏi thông thạo các dạng "scripting" phổ biến và cụ thể của từng sản phẩm bảo mật. Điều cần quan tâm cho dạng lập trình này là khả năng logic và ứng dụng nhanh gọn để đáp ứng nhu cầu khả năng tự động hóa, thu thập thông tin, phân tích thông tin. Perl, Python và shell script không thể thiếu cho dạng này. Tất nhiên vẫn có thể dùng các ngôn ngữ khác nếu thích.

2) Lập trình chính quy để tạo các sản phẩm bảo mật:
Dạng lập trình này đòi hỏi sự thông hiểu sâu và rộng về bảo mật. Đặc biệt phải nắm rất vững từng hệ điều hành (mình muốn viết ứng dụng bảo mật) và các giao thức mạng cần dùng. Ngoài việc thông thạo các ngôn ngữ cho dạng này (như C, C++, Java, ASM...), bồ còn phải nắm vững các API cần thiết cho ứng dụng. 

Em cám ơn anh conmale nhiều lắm. Cho em hỏi thêm một ý nữa là theo anh mình học NNLT hỗ trợ cho BMM thì có cần phải chuyên sâu về thuật toán hay không? Vì vấn đề khó nhất của lập trình là khâu thuật toán giải quyết vấn đề. Theo em chỉ cần có tính logic cao trong cách giải quyết vấn đề hơn là chuyên về thuật toán đúng không anh? Vì nếu giỏi thuật toán nữa thì coi như giỏi cả mạng và lập trình rồi smilie

Em hỏi vậy vì em không biết mình nên dành thời gian cho nghiên cứu mạng nhiều hơn hay dành thời gian cho việc học cách tìm thuật toán trong lập trình (em lo nhất là data structure trong NNLT). 


Logic là nền tảng để tạo thuật toán. Thiếu logic, thiếu thuật toán. Bởi thế, nên chú trọng vào kỹ năng phân tích và ứng dụng logic. Nếu học (thuộc) các thuật toán có sẵn thì được nhưng chỉ hạn chế trong các khuôn có sẵn. Tuy nhiên, nếu vững logic thì thuật toán nào cũng có thể thấu đáo được.

Trong quá trình lập trình, thuật toán tự nhiên sẽ đến với mình (khi nhu cầu cụ thể hiện hữu). Không nhất thiết phải mất quá nhiều thời gian để học thuật toán vì mục tiêu của em không phải là mục tiêu hình thành thuật toán.

Thân mến.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Cho em hỏi về lập trình trong Security 25/01/2008 15:45:09 (+0700) | #5 | 112070
StarGhost
Elite Member

[Minus]    0    [Plus]
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
[Profile] [PM]

hungviet183 wrote:

conmale wrote:
Lập trình trong bảo mật có hai nhánh chính:

1) Lập trình đơn giản để phục vụ nhu cầu quản lý:
Dạng lập trình này thường đơn giản và đòi hỏi thông thạo các dạng "scripting" phổ biến và cụ thể của từng sản phẩm bảo mật. Điều cần quan tâm cho dạng lập trình này là khả năng logic và ứng dụng nhanh gọn để đáp ứng nhu cầu khả năng tự động hóa, thu thập thông tin, phân tích thông tin. Perl, Python và shell script không thể thiếu cho dạng này. Tất nhiên vẫn có thể dùng các ngôn ngữ khác nếu thích.

2) Lập trình chính quy để tạo các sản phẩm bảo mật:
Dạng lập trình này đòi hỏi sự thông hiểu sâu và rộng về bảo mật. Đặc biệt phải nắm rất vững từng hệ điều hành (mình muốn viết ứng dụng bảo mật) và các giao thức mạng cần dùng. Ngoài việc thông thạo các ngôn ngữ cho dạng này (như C, C++, Java, ASM...), bồ còn phải nắm vững các API cần thiết cho ứng dụng. 

Em cám ơn anh conmale nhiều lắm. Cho em hỏi thêm một ý nữa là theo anh mình học NNLT hỗ trợ cho BMM thì có cần phải chuyên sâu về thuật toán hay không? Vì vấn đề khó nhất của lập trình là khâu thuật toán giải quyết vấn đề. Theo em chỉ cần có tính logic cao trong cách giải quyết vấn đề hơn là chuyên về thuật toán đúng không anh? Vì nếu giỏi thuật toán nữa thì coi như giỏi cả mạng và lập trình rồi smilie

Em hỏi vậy vì em không biết mình nên dành thời gian cho nghiên cứu mạng nhiều hơn hay dành thời gian cho việc học cách tìm thuật toán trong lập trình (em lo nhất là data structure trong NNLT). 


Lập trình về bảo mật thì không cần thiết phải hiểu nhiều về thuật toán, vì nó không đòi hỏi mức độ optimization về performance cao như trong tính toán, mà ở một mặt khác, đòi hỏi về reliability. Còn cái data structure là về cấu trúc của 1 chương trình. Chương trình bảo mật, nói một cách thuần túy, thì phải thỏa mãn nhưng không giới hạn trong các đặc điểm sau:

1. Bản thân nó an toàn, tức là nó rất khó bị tấn công, hay bị khai thác lỗ hổng. Nếu không thì là vứt đi, chỉ từ lợn què 2 chân, thành...què 4 chân.

2. Phải rõ ràng, rành mạch, dễ hiểu, dể sử dụng, dễ sửa chữa, dễ phát triển. Nếu cái số 2 được thì cái số 1 sẽ dễ dàng hơn.

Để có thể tiến tới 2 yêu cầu trên, bồ có thể học Object Oriented Programming (OOP), và xa hơn là Object Oriented Modeling (OOM). Phương pháp này đặc biệt hữu dụng khi thiết kế các chương trình và hệ thống phức tạp, khi mà khả năng chứa lỗi là rất lớn.

p/s: nói riêng về chuyện thuật toán, muốn ứng dụng linh hoạt thuật toán thì trước hết, hì hì, phải giỏi toán. Logic thì cũng quan trọng nhưng cũng không cần thiết phải đi sâu quá vào logic học, vì nó phục vụ cho các công việc nghiên cứu nhiều hơn, ví dụ cryptology, hoặc protocol design.

Thân.
Mind your thought.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|