Search…

Cyber Security - Khám Phá Thế Giới An Ninh Mạng và Ngôn Ngữ Lập Trình

22/09/20204 min read
Tìm hiểu những ngôn ngữ lập trình hữu ích nhất dành cho mạng máy tính và bảo mật hạ tầng mạng máy tính.

Giới thiệu

Bài viết này sẽ hướng đến các ngôn ngữ được đúc kết từ kinh nghiệm, hiểu biết và quá trình học hỏi của cộng đồng và các chuyên gia. Các ngôn ngữ liệt kê dưới sẽ không được xếp hạng vì tuỳ theo thời mà độ mạnh yếu của từng ngôn ngữ đó biến động không lường được.

Vấn đề về an ninh ngoài lý thuyết thì ngôn ngữ lập trình là những công cụ không thể thiếu của những người nghiên cứu bảo mật vì hệ thống hiện tại được xây dựng từ phần cứng và phần mềm.

C

Khá nhiều hệ điều hành được viết bằng C và gần như tất cả các thư viện và framework bạn sẽ phải làm quen khi xây dựng một phần mềm đều bằng C. C là một ngôn ngữ tinh gọn và hiệu quả nếu được code đúng về cơ bản có thể làm bất cứ điều gì từ mạng socket đến xử lý hình ảnh.

Ở khía cạnh Info/CyberSec, ngôn ngữ này rất tốt vì nó giúp hiểu được cách mà một số hệ thống cơ bản hoạt động, hiểu cách khai thác và cách các công cụ hoạt động, có thể điều chỉnh nó để làm nhiều được thứ.

C được dùng trong rất nhiều phần mềm, thường thấy sử dụng trong phát triển hệ thống nhúng và các chương trình cấp thấp khác (gần với phần cứng bạn sẽ thấy đó là card mạng).

Hầu hết các thư viện mã hoá đều dựa trên C, vì vậy C là một sự lựa chọn không tồi nếu đi sâu vào mật mã học.

C++

Có một câu nói hay của Bjarne Stroustrup, người sáng lập ngôn ngữ:

C giúp bạn dễ dàng tự bắn vào chân mình; C++ làm cho nó khó hơn, nhưng khi bạn làm thì bạn sẽ không còn chân để bắn nữa.

Về cơ bản, C++ như một người anh lớn của C,  được xây dựng cùng một mã nguồn với C, với một loạt các thư viện giúp C++ dễ dàng hoạt động hơn trong khi vẫn cung cấp một số tính năng cấp thấp từ C.

Có một lượng khổng lồ các chương trình tốt được xây dựng dựa trên hoặc sử dụng C++. Ví dụ nmap, một công cụ được sử dụng rộng rãi cho phép quét và liệt kê máy chủ.

C++ được sử dụng trong nhiều trường hợp khi tài nguyên bị hạn chế và năng suất phải cao như trên các máy chủ thương mại điện tử và trong các ứng dụng chứng khoán, vì vậy mọi thứ cần phải đạt được tốc độ và an toàn.

JavaScript

JavaScript ở mọi nơi. Trước đây JavaScript chủ yếu là ngôn ngữ phía client (nghĩa là thực thi trên client, không phải trên server), nhưng ngày nay thì hiện diện ở cả server và client và điều này dẫn đến có gấp đôi tiềm năng khi khai thác lỗ hổng và những thứ cần phải được hoàn thiện.

JavaScript được sử dụng trên trình duyệt hoặc trên máy chủ web với một số framework phổ biến có thể kể đến như NodeJS, AngularJS, ReactJS, jQuery, v.v...

Lý do để học ngôn ngữ này rất đơn giản: Nó được sử dụng ở mọi nơi, vì vậy nó sẽ luôn có ích bất kể mục đích là gì. Ngoài việc được sử dụng ở mọi nơi, JavaScript cũng dễ học.

Python

Nếu chưa quen với lập trình và muốn học như một kỹ năng, thì Python là một lựa chọn tốt. Cú pháp dễ hiểu và có nhiều thư viện được tích hợp. Python có thể làm bất cứ điều gì từ lập trình đa luồng để sử dụng các thư viện để gửi các gói TCP đến các máy. Tiềm năng của ngôn ngữ được tăng thêm nhờ vào sự kết hợp với C, kết hợp tốc độ phát triển của Python với hiệu quả của C.

Python cũng được sử dụng rộng rãi khi thực hiện phân tích cryptocurrency và malware.

Bash

Bash là một ngôn ngữ script tốt để chọn trong trường hợp chủ yếu sử dụng hệ điều hành Linux (hoặc Bash cho Windows).

Bash là một ngôn ngữ tốt để sử dụng khi làm pentest vì nó thường có sẵn trên hầu hết các hệ điều hành, có thể dễ dàng gửi một tập lệnh có thể tự động hóa các quy trình cần thực hiện (như làm sạch logs).

Nên học bash vì nó không chỉ giúp tự động hóa các task nhỏ nhặt, mà còn mở mang nhiều kiến thức và tư duy mới mẻ.

Các ngôn ngữ scripting độc quyền

Điều này bao gồm tất cả các ngôn ngữ của các nhà cung cấp như Cisco.

Những ngôn ngữ này chủ yếu có lợi nếu phải làm việc với phần cứng tương ứng của chúng. Giống như nếu làm việc với Cisco IOS, thì là làm việc với TCL để tự động hóa mọi thứ. Các ngôn ngữ kịch bản này có lợi nếu phải làm việc với một loại phần cứng cụ thể hoặc mạng và bảo mật.

@Medium

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024