4. Software Flashcards
Managing Security
who does and how do they
OS organises user logins and passwords which may include password protection and control access rights
Access rights
If a computer is used by more than one user, each user should only be able to see their own files. Users and system admin have different levels of access rights. Some users may be allowed to access files but not edit them.
May include encryption of some files
Machine code
Computers represent everything in binary
Program instructions once converted to binary are known as machine code, eg.
1001 1100 0000 1110 1101 1010 1101 1011 0101 1001
Each different type of processor has its own set of machine code instructions, a typical instruction in a simple processor may look like:
Opcode: 6 digits, 010110
Register: 2 digits, 01
Operand: 8 digits, 0011 1010
The Opcode is basic machine instruction like ADD, SUBTRACT, LOAD, STORE and the operand is the value or location of the value to be operated on.
All arithmetic is carried out in the register.
High level code
High level codes typical instructions look like math or english and are easy to guess or understand the meaning. Python, Delphi and Java are known as high level codes
High level languages have complex statements and program structures can not easily be translated into machine code. Each statement in high level code represent several machine code statements
Assembly language
Going from machine to assembly code was very time consuming, and is sometimes called a “first generation language”.
Assembly is the “second generation” eg.
LDA 1 Mark1 ; Load contents of Location17 into Register 1
Instruction Set in terms of processor handling
Processors vary in the number and type of instructions they can process.
They cannot deal with WHILE, THEN etc.
Compare and Branch instructions are used test conditions and jump to another if true
Assembler
A computer can not process assembly language instructions directly
The assembler is a program which translates assembly code into machine language
Compiler
A program the translates high level language program (source code) into machine code
A compiler translates every statement in the program into machine code, called object code.
If the compiler hits a syntax error it will not translate the statement and no code is produced
Interpreter
A type of program which translates high level program into machine code
It works by translating line by line. It translates one line and if it has no syntax errors it executes it it moves on to the next line.
Compiler vs. Interpreter
Compiler:
- Has to correct all syntax errors before running
- Fast execution of object code
- Once object code is produced it can be run and
installed on any computers
- A user can not see source code after purchase
Interpreter:
- Good for program development as parts of the program
can be executed despite having errors
- Slow execution as every line must be translated before
execution
- A user must have the programming language and
interpreter on their computer
- A user can make changes and sell your program after
purchase
Advantages and Uses of Assembly code
Advantages:
- Manipulation of individual bits and bytes
- Runs very fast
- Occupies less memory than code compiled from a high
level language
Uses:
- Hardware specific code like driver devices telling the
computer how to communicate with eg. boot code in
ROM, printer, scanner etc.
- Control programs in embedded systems in washing
machines, modems, routers, cars, digital watches etc.
- Real time applications requiring instant response,
network software, medical equipment
Importance of data
Millions of organisations keep data about their customers, members and products.
Banks, governments, health departments, shops, schools and and exam boards all keep data on computers
Some threats to data
Accidental damage:
Data entry errors
Program errors
Errors in procedure
Accidental loss or deletion
Hardware failure, damage or crash
Natural disaster:
- Fires, floods etc.
Malicious actions
Backups and archives
Backups are made regularly so lost or corrupt data can be restored.
Backups should be stored in a secure location offsite. Employees taking home a backup tape or mirroring all transactions on a second remote computer.
Archived data is data that is no longer needed for immediate processing but needs to be kept
Cloud storage
Holding all company data in “the cloud” is becoming more and more popular and considered safer than data stored in an office.
Physical security
Data needs to be kept physically safe from intruders, in large companies by…
Issuing staff with ID
Having all visitors sign in on arrival and having escorts around the office
Keeping sensitive areas locked
Security cameras
Security guards
Physical Security and Biometrics
Locks on doors
Security Guards
Biometrics:
- Fingerprint recognition
- Retina scanner
- Iris recognition
- Voice recognition
Audit trails and logs
Audit trail maintains a record of all activity on a computer system
The time and date a user accesses the system will be logged as well as their activity
Assists in detecting security violations
Help system admin ensure the system has not been harmed by hackers, insiders or technical problems
Acceptable use policies (AUP)
Many businesses and educational facilities require employees or students to sign an AUP before being given a network ID
Secure passwords
Minimum of 8 characters
Mixture of numbers, lowercase and uppercase characters
Include symbols
Do not include name, DOB or personal details
Phishing
A phishing email is one that tricks you into handing over your personal or sensitive information
You receive an email leading you to a bogus site to enter your details from where they are captured by phishers
What to look out for:
Generalised impersonal greeting
Sender’s address, variation from original
Forged link, roll mouse over link to check
Request personal information, legit sites do not do this
Sense of urgency
Poor spelling and grammar
High level languages(4)
Close to human language
Independent of platform (works on different machines)
E.g. JAVA, Python, VB
Easier to correct errors
Low level languages(4)
Assembly
Machine Code
Works directly on the CPU
Can use machine specific functions
Low level language advantage(3)
Direct access to the processor
Uses less memory
Executes instructions faster