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.