教材原文段落
build security into every application they develop, with greater levels of
security provided to critical applications and those that process sensitive
information. It's extremely important to consider the security implications of
a software development project from the early stages because it's much easier
to build security into a system than it is to add security to an existing system. Programming Languages
As you probably know, software developers use programming languages to
develop software code. You might not know that several types of languages
can be used simultaneously by the same system.
This section takes a brief
look at the different types of programming languages and the security
implications of each. Computers understand binary code. They speak a language of 1s and 0s, and
that's it. The instructions that a computer follows consist of a long series of
binary digits in a language known as machine language. Each central
processing unit (CPU) chipset has its own machine language, and it's virtually
impossible for a human being to decipher anything but the simplest machine
language code without the assistance of specialized software.
Assembly
language is a higher-level alternative that uses mnemonics to represent the
basic instruction set of a CPU, but it still requires hardware-specific
knowledge of a relatively obscure language. It also requires a large amount of
tedious programming; a task as simple as adding two numbers together could
take five or six lines of assembly code! Programmers don't want to write their code in either machine language or
assembly language. They prefer to use high-level languages, such as Python,
C, C#, C++, Ruby, R, Java, and Visual Basic.
These languages allow
programmers to write instructions that better approximate human
communication, decrease the length of time needed to craft an application,
possibly decrease the number of programmers needed on a project, and allow
some portability between different operating systems and hardware
platforms. Once programmers are ready to execute their programs, two
options are available to them: compilation and interpretation. Some languages (such as C, Java, and Fortran) are compiled languages.
When
using a compiled language, the programmer uses a tool known as a compiler
to convert source code from a higher-level language into an executable file
designed for use on a specific operating system. This executable is then
distributed to end users, who may use it as they see fit. Generally speaking,
中文直译 / 整理
将安全融入他们开发的每个应用程序中,对关键应用程序以及处理敏感信息的
应用程序提供更高水平的安全保护。 从早期阶段就考虑软件开发项目的安全影
响极为重要,因为在系统中内置安全比在现有系统中添加安全要容易得多。 编程语言
正如您可能知道的,软件开发人员使用编程语言来开发软件代码。 您可能不
知道,同一个系统可以同时使用多种类型的编程语言。 本节将简要介绍不同
类型的编程语言及其各自的安全影响。 计算机理解二进制代码。 它们只使用由1和0组成的语言进行通信。 计算机执行
的指令由一长串二进制数字组成,这种语言称为机器语言。 每个中央处理器
(CPU)芯片组都有其专属的机器语言,人类几乎不可能在没有专用软件辅助
的情况下解读任何复杂的机器语言代码。 汇编语言是一种更高层次的替代方案,
它使用助记符来表示CPU的基本指令集,但仍需要对这种相对晦涩的语言具备
硬件相关的知识。 此外,它还需要大量繁琐的编程工作; 即使是像将两个数字
相加这样简单的任务,也可能需要五到六行汇编代码! 程序员不希望用机器语言或汇编语言编写代码。
他们更喜欢使用高级语言,例
如 Python、C、C#、C++、Ruby、R、Java 和 Visual Basic。 这些语言使程
序员能够编写更接近人类交流的指令,缩短开发应用程序所需的时间,可能减
少项目所需的程序员数量,并允许在不同操作系统和硬件平台之间实现一定程
度的可移植性。 当程序员准备运行程序时,他们有两个选择:编译和解释。 某些语言(如 C、Java 和 Fortran)是编译型语言。 使用编译型语言时,程序
员使用一种称为 编译器 的工具,将源代码从高级语言转换为专为特定操作系统
设计的可执行文件。 然后,该可执行文件分发给最终用户,他们可以根据自己
的需求使用它。 一般来说,
小白解释
场景先行:员工在家访问公司系统,流量要穿过家庭网络、互联网、防火墙、VPN、服务器。网络安全题就是让你判断问题发生在哪一层、用哪个控制放在什么位置。
这一页真正想让你理解的是:这一页属于本章连续内容,先读原文和译文,再看下方把概念拆成小白能理解的版本。
把它放进公司里看,关键不是背定义,而是判断:不分层就会乱选设备:该加密的地方装防火墙,该监测的地方却只做访问控制。
你作为负责人可以这样想:先定位网络层次,再决定是分段、过滤、加密、检测还是阻断。
本页术语用人话说:
程序:程序是一步一步怎么做。
入侵防御系统 IPS:IPS 可检测并主动阻断恶意流量。
强制访问控制 MAC:MAC 由系统根据标签和级别强制决定访问。
常见误区:不要以为防火墙能解决所有网络问题;它只是控制流量的一类工具。
读完后用一句话复述:如果我是网络安全工程师,我会先识别风险,再选择控制,并保留能证明判断合理的证据。
考点提醒
考题会把“第 1326 页学习单元”包装成一个业务场景:有人要上线系统、处理事故、审供应商、分配权限或选择控制。
先抓题干里的角色和目标:这里更像是网络安全工程师在做判断。
最佳答案通常不是“最强工具”,而是能降低风险、符合职责、成本合理、还能留下证据的动作。
Step-by-step、SOP 常对应 procedure。
IPS 放在线路中,误报可能影响可用性。
政府/军方、机密级别、标签、不可由用户随意改通常是 MAC。
排除法提醒:不要以为防火墙能解决所有网络问题;它只是控制流量的一类工具。