Four software security

xiaoxiao2021-03-06  119

2.4 Application Software Security

2.4.1 Importance

The software mainly refers to the data (source programs and execution programs) in the computer system and the data that must be run.

files. The security of various software programs in the information system must pay attention, in fact, the system's hardware and operating systems are available.

The possibility of completing the system design goals, and the specific task requires a variety of software cooperation to complete. So have

The security of the operating system is required to have software security. The importance of software security stems from software and its handling and maintenance

The data is inseparable, and the information contained in these data is the ultimate goal of the construction information system and the information system.

Main assets.

To explain that an application is reliable, it is generally necessary to use a formal method, that is, first need to shape it.

The description of the specification, followed by verifying the consistency of formal specifications and coding implementation. Both are extremely difficult

The worse condition is that the formal method can increase by revealing the inconsistency of the system, ambiguity and incompleteness.

Plus our understanding of the system, improving our credibility of system reliability, but the formal method itself is also

Do not ensure the reliability of the system. It can be seen that it is extremely difficult to make an application software security.

In fact, we can see that vulnerabilities and errors of various applications are constantly emerging. Software continues to upgrade

Time to launch a variety of patches. In this regard, Microsoft's IE browser can be used as an example, and many hacker intrusion events are utilized.

The vulnerability of IE. Recently found over the overflow vulnerability of the SERV-U FTP server, making many FTP servers on the Internet

Illegal intrusion. There are two very famous examples of software security to explain their importance. In June 1996, European Yu

The Aliana 5 rocket of the navigation is exploded after the software fault. The reason is that a 64-bit data is loaded into 16 bits.

Space causes overflow. Three years later, Nasa's Mars Pathfinder was mysterious in a launch, the cause is a data conversion.

error. NASA's engineer did not convert the unit of rockets from the English "pound" into "Newton", two metrology units

The phase difference is 4.45 times. Although these two disasters have nothing to do with computer security, but it indicates that there is no error in failure.

The importance of the code.

Software security needs to be protected very wide, including software self-security, software storage security, software pass

Letter security, software use security, software operation safety, etc.

The current information system has become more dependent on software and data, any small leak in the software, one is not

Perfect features, a fine modification may have a great impact on the system. In reality, the examples of software bugs are all

Yes. It is very urgent to solve problems with the protection of software and the protection of the system.

According to the estimation of Carnegie Mellon University, each 1000 lines of code typically have 5 to 15 bugs, most bugs are

Slight, does not affect the performance of the software, so it is not noticed. The focus of the problem is that these are indeed a safety hazard.

.

"Deeply deeper issues are: in any complex system, such as the software, large database, operating system of the rocket system,

Online software, etc., they have too many links that may have problems. Complexity has been constantly breaking through human limits, want

It is unrealistic to design and test all issues. Failure is inevitable. "

Of course, software security is extremely complicated, and the correctness of the software is only one aspect of software security, not asking.

All of the questions.

2.4.2 Software Security Demand

Software security needs to consider a wide range of content. The following is a brief introduction to the majorities.

Software

Software own integrity is the ability of software to resist external attacks. Self-safety research includes:

(1) Software own integrity

In order to ensure the complete code, the data is complete, and the function can be used, various data check technology can be used, such as Cr

C. In addition, the program self-diagnosis, self-protection technology, software encryption, software compression, software operation control technology, software plus

Preventing software from being illegally tampered with the shell (UPX, Aspack ...) technology. (2) Software own credibility

Including the reduction of software (or no) hidden channels, eliminate program traps, eliminate logical bombs, as well as

The bug can be eliminated before the software release. At the same time, it is necessary to avoid invalid operation, crash and untrustworthiness. Try to reduce

The program interface that has been reserved, is interested in the software test, and has a program entry that is intentionally left for future software maintenance.

.

Others also include preventing software loss, destroying, deleted; preventing software from being tampered with, covered, being faked, anti-virus

, Program curing and other technologies.

Software storage security

Software and data host are all kinds of storage media (disks, tapes, discs, etc.), access, modification, complex for software

The system needs to be stored in storage media and equipment. So the reliability of the storage device, the encrypted decryption of storage devices (disks)

,

Access control of storage devices is an important issue for software security.

Software storage methods can be used in reliable storage, confidential storage, compression storage, backup storage, etc.

Software communication security

The content of this includes software data secure transmission, encrypted transmission; through the security download, complete download

Transmission data encoding check, transfer check, etc.

Software

The problem that needs to be solved is the correctness of the software operation.

The safety of computer systems also depends on software running. Software must ensure that it is functioning properly,

Have a very high operating correctness, when executed, its function should not appear errors, once an error occurs, there is an error handling

Ability and fault tolerance. Require software in the process of running, you cannot destroy other running software, nor does it allow other software to come.

Destroy yourself. Software correctness and credibility have dialectical relationships. Trusted software does not have a clear definition, so credible

The detection and authentication of the pieces are a big problem.

2.4.3 Software Protection Technology

Based on the needs of software security, software protection uses various techniques to ensure this.

Software protection has a variety of techniques and mechanisms, maintaining software integrity and black boxability, preventing illegal transplants of software,

Stealing, running, replicating, preventing the function of the function of software related to system security.

Software protection is committed to software encryption and decryption technology, ciphertext technology, software compression and reduction technology, curing and deposit

Take technical, run safety technology (including hardware operation control mechanism), software anti-tracking and anti-cracking technology, software self

Protection Technology and Software Access Control Technology. Any software protection system is not to be broken, but a good

The software protection system will make attackers pay great costs until they give up illegal acquisition of software.

Software protection mainly solves four problems, namely software anti-procurement, prevention, tamper-proof, anti-rigid, various security

Technical and mechanisms are in implementation in implementation.

First, software anti-copy (storage access technology)

The software is extremely easy to copy, and the software stores in storage devices and carriers, and the operation of protecting and preventing storage carriers is to prevent

A simple way to copy replication.

Disk encryption

The addition of disk (including other storage media) is one of the key technologies of anti-duplication, due to disk encryption

And break-resistance makes the disk replication and reverse replication. The disk itself has no speciality, but by people on the tray.

A physical or logical mark is made, as a "fingerprint" of the disk, so that the disk itself can be identified, becoming

Copy and reused tags, and distinguish and identify the original disk or a copy of the disc varying the dedicated identification program. Tag identification

The key to the disk anti-replication technology is the incompatibility of "tag", otherwise, anti-duplication is meaningless.

Disk encryption technology includes: panel partial encryption, correlation track encryption, disk shutdown, lock, sector lock, special

Door copy programs, software replication tags, and replication rights, etc. You can also use laser encryption, fingerprint encryption, non-normal track

Encryption, magnetic gap encryption and other technologies.

2. Incomplete software technology

The application is also called program block technology. The following three ways: override; exchange; and the procedure is not all transferred to memory, and use a part of the operation, then transfer to a part of the way. Prevent stealing people from using a memory image

Stealing.

3. Software installation mechanism

Designed in software installation time, installation, installation tag, serial number, etc., limit software installation

And the number of uses.

Single software anti-replication technology has certain limitations, in practical applications, more comprehensive anti-replication technologies. Comprehensive

Combination of disk (including other storage media) anti-replication technology and software single anti-replication technology

It is made with intelligent anti-documented technology to make the software's replication and theft. These technologies combine software and data

Ciphertext technology, anti-tracking technology and self-destructive technology.

Second, software security (operation control technology)

Another way to protect software is to make illegal users cannot use software normally, and when illegal copying software begins

When using a variety of ways to prevent the program from running, this is the software running control technology.

One way is that the execution of the program depends on the system hardware components, only the corresponding hardware exists, the software is functioning.

Can be implemented normally. The advantage of preventing execution is that software encryption is reliable, legal backups are unrestricted, rather than user

Enable the reproduction software, you cannot use the software. The hardware control mechanism used to prevent software from being "software dog"

, Run the encryption card, etc..

Soft dog

The software dog is a hardware component installed on computer parallel port as a hardware "key", protected

Many decisions and computing mechanisms are set, called "software lock", when the key is fitted with the lock, the software can be

Standing. The software dog occupies parallel ports, with parallel printers, but does not affect the printer work, that is, software dogs

The machine is transparent. The software dog itself is safe, the most vulnerable attack is the software lock in the software. The quantity of the software lock

The complexity directly affects the difficulty of attack. Increasing software locks and multiple access software dogs are a protection strategy, lock and access

The various parts of the software are scattered, both increase the degree of protection, and increase the difficulty of attack and crack.

2. Run the encryption card

Encrypted card is similar to other I / O expansion cards, is hardware components installed in the internal expansion slot of computer chassis,

Point is more encrypted, and there are many anti-tracking measures, and the protection mechanism is complete, but it is inconvenient to install. The principle of work is: software

The hardware key on the lockup card.

3. Software curing technology

The program is stored in non-volatile devices and chips to address access technology and ways for these curing programs or data.

Seriously study software curing, software operation control mechanism, use hardware or soft combination to achieve additional reconciliation technology, improve additive

Secret speed, saving time, reducing storage space and running space to prevent tracking.

Third, software brutary (encryption technology)

Anti-riot (anti-leakage) is the necessary guarantee for information security and the necessary factors for information availability. the purpose is

Protect software to prevent illegal consultation, modification, copy, analyze, stolen, transplantation. Software anti-riot technology includes software

Encryption, software compression, etc., with other mechanisms to reach the purpose of preventing lepros.

Software addendal technology

Cipheet technology is the key to decryption, modern cryptography can be used for software plus decryption. Use of password technology and plus

The implementation of decryption technology should not affect software performance and function, especially for time, space, speed and other sensitive software and

Program, real-time software, and some multimedia software to make special additional recryptry research, achieved applicable encryption efficacy

Use the effect.

2. Software compression reduction technology

Compression reduction is another software anti-riot technology that can be reversed, anti-analysis, anti-tracking, can also save

Save space. You can use a dedicated compression decompression process, such as Winzip, WinRar, etc.

.

3. Software anti-tracking technology

The anti-tracking technology prevents software from being illegally analyzed, analyzed, stolen, transplanted, and reverse engineering of special software, such as military software, financial software, etc. The current dynamic debugging program is very powerful, such as Softice, O

LLDBG, etc., the software can be said to be no secret in front of them, so it is necessary to prevent debugging by such software.

The anti-tracking technology uses damage tracking, and the anti-poor relief will reach the purpose of software protection, so that the intruder cannot track or track difficulties.

. Research on the damage tracking method of the corresponding system platform, such as: detection tracking method, keyboard locking, interference video method,

Cycling start and system deadlocking, etc., can also use labyrinth program, concealed program flow, waste instructions and reverse instructions,

Anti-discovery, etc.

Fourth, software tamper-proof (complete useful technology)

Software tampering is the necessary conditions for information integrity and is the basis for information availability. Computer criminal activity, usually

It is made from tampering computer applications, and some file data is deleted and changed by changing some of the code in the program.

Replace some files. The entry and dissemination of malicious procedures, often through the infection procedures, attached to procedures or data

Among them, latent and re-spread, these illegal modified procedures are also transmitted, exchanged and transmitted through the network to far

Parties, they are an important factor in unsafe information system.

The goals and content of software tamper-proof research are widely related, including the theoretical and mechanism of software self-integrity,

Software self-protection technology (including self-diagnosis, self-testing technology, self-destruction technology) research, software antiviral technology research, disk

(Including other storage media) tamper-proof, anti-damage technology.

Software self-protection technology

Tamper-proof first requires software to protect themselves. Actually use self-diagnosis, self-test, anti-virus, self-destructive and other technologies.

Self-destructive technology is studying for some special sensitivity software, as a special software protection mechanism, self-destructive technology research

The focus is the confidentiality and control technology of self-destructive code, to prevent accidental triggering, misunderstanding.

2. Software Access Control Technology

Another way to tamper-proof is that the system must have corresponding software access control technology.

Dedicated software (such as military software, financial software, etc.) and related national and departmental core confidential, important information systems

Software must be accessed.

The OS access control technology software is generally used to access control technology. At the same time, various measures can participate

According to: Run password, keyword, digital fingerprint and signature, etc. In addition, access control technology also targets software in storage

The labeling and physical structure layout on the medium prevents intruders from obtaining, tampered with and destroying direct reading and writing of storage media.

Software, this is a research topic combined with disk file protection.

3. Software self-destruction technology

Normal self-destruction procedures are special procedures. Self-destruction procedures are legitimate procedures with special tasks, and their legality is developed

The department bears. Software self-destruction must obtain authoritative certification. "People's Republic of China Computer Information System Security Regulations

"Provisions: Do not set a special procedure for destroying computer system functions in any excuse.

Common special procedures are "logical lock", "time lock", also known as logic bombs. When the logical equation satisfies or time

When timed is met, the program contains a subroutine that destroys a computer function (lock hard disk, clear file, etc.) is activated,

The computer system causes damage. For example, in September 1997, the Ministry of Public Security upgraded to Beijing Jiangmin Company software KV300-L network upgraded version

Survey of "logical lock" behavior.

2.4.4 Buffer overflow

Buffer overflow is the most common, most susceptible to software security vulnerabilities in the past decade, and thus the system security

Major threat. American Computer Security Professional Agency Computer Emergency Response Team (CERT) in 2

At least 5 of the top 10 security vulnerabilities announced in July 003 belong to a buffer overflow vulnerability. To eradicate the cache overflow

Too difficult, even if there is enough time verification, you can't guarantee that there is no caching overflow problem. The larger the code is more complicated,

The larger the cache overflow attack.

To give an easiest example to explain how to use a computer system to cache overflow vulnerabilities attack. The computer stores the program and data in memory. If it requires accepting the user to enter 8 characters, it receives 200 characters, then this

Some extra characters will increasing memory, override data from other areas (the computer itself is not like this, this is its

A vulnerability) If we use the right memory area, then we can "refuse to connect" instructions to "

Xu operation "instruction, even our own instructions. Morris worm is the use of this famous" overflow vulnerability "

It uses the cache overflow in the UNIX Fingered program.

Experienced programming can avoid such attacks. For example, these programming can intercept characters that exceed the maximum length. This is very

It is easy to do, it is difficult to do it all places in a large program. Because for modern large complex programs

Say, there are too many places where the caching overflow is too much, and there is a lot of no examples say so intuitive and simple. Want

In addition to buffering overflow, there is enough time verification, and it cannot guarantee that there is no cache overflow problem. The greater the code

The more complicated, the greater the attack.

转载请注明原文地址:https://www.9cbs.com/read-102260.html

New Post(0)