일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 백준
- 준코딩
- TextField
- 플러터
- Android
- Android Studio
- Firebase
- storyboard
- 연결리스트
- 버블정렬
- deeplink
- 안드로이드
- Xcode
- FLUTTER
- 자바
- android java
- BAEKJOON
- IOS
- 보호와 보안
- text to speech
- 안드로이드스튜디오
- 커스텀팝업
- label
- customPopup
- 예외처리
- swift baekjoon
- 링크드리스트
- C언어
- xocde
- Swift
- Today
- Total
준코딩
보안 Security 본문
보안(security)이란?
-시스템과 그 시스템의 자료들이 결함 없이 보전된다는 것을 의미하는 일종의 신뢰도이며, 보안의 보장은 보호의 개념보다 광범위한 주제로 생각할 수 있다.
보안 문제
-기밀성 침해 : 인증 받지 않고 자료 읽음
-무결성 침해 : 인증 받지 않고 자료 수정
-가용성 침해 : 인증 받지 않고 자료 파괴
-서비스 가로채기 : 인증 받지 않고 자료 사용
-서비스 거부 : 적법한 사용을 막음
시스템 보호하기 위한 보안 대책
물리적 수준 : 컴퓨터 시스템을 수용하는 장소는 침입자에 대한 물리적 보호가 되어야 한다.
인적 수준 : 적절한 사용자만 시스템에 접근하는 것을 보장
운영체제 : 시스템은 우연한 또는 고의의 보안 침해로부터 자신을 보호해야 한다.
네트워크 : 컴퓨터 데이터가 개인 임대 네트워크를 통해 또는 인터넷 같은 공유 네트워크를 통해 이동한다.
->이러한 데이터를 가로채기 당하는 것은 컴퓨터가 침입 당하는 것만큼 유해하다
프로그램 위협
-트로이 목마 : 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 공격자의
컴퓨터로 빼돌리는 프로그램.
-트랩 문(백도어) : 정상적인 인증 절차를 거치지 않고, 컴퓨터와 암호 시스템 등에 접근할 수 있도록 하는 것.
-> 설계자나 관리자에 의해 남겨진 시스템의 보안 허점
-> 설계자가 일부러 남겨놓은 경우는 개발 단계에서의 테스트를 위해, 유지 보수 시의 효율성을 위해.
-논리 폭탄 : 프로그램 안에 어떠한 조건을 넣고 이 조건이 만족되면 계획한 불법적 결과가 자동으로 나타나도록 하는 수법
-스택과 버퍼 오버플로우 : 스택 또는 버퍼오버플로우 공격은 네트워크 또는 모뎀을 사용하는 연결에서 침입 목표 시스템에 인가되지 않은 접근을 얻기 위해 시스템 외부의 침입자가 사용하는 가장 일반적인 방법.
Ex) 버퍼 오버플로우: 데이터를 저장할 때 프로그래머가 지정한 곳 바깥에 저장하는 것
->벗어난 데이터는 인접 메모리를 덮어 쓰게 되는데 다른 데이터를 손상을 주어서 오류를 발생시킴
Ex)스택 오버플로우 : 스택에 할당된 크기보다 큰 데이터를 넣어서 메모리 주소를 넘치게 쓸 때 발생
바이러스
-바이러스는 자가 복제 가능하고 다른 프로그램을 감염 시키도록 고안된 프로그램이다.
->파일을 변경하거나 파괴하고 프로그램 오작동 등을 일으키는 등 시스템을 망칠 수 있다
파일 바이러스: 자기 자신을 파일에 덧붙임으로써 시스템을 감염시킨다. 프로그램의 시작부분을 변형시켜서
실행이 시작되면 자신의 코드로 분기하게 만든다. 바이러스가 실행한 다음 정상적으로 프로그램을
실행하게 되도록 하여서 사용자가 알아채지 못하게 만든다.
부트 바이러스: 시스템이 부팅될 때 운영체제가 읽혀지기 전에 언제나 실행된다.
-> 다른 부팅 가능한 미디어를 찾아 감염시킨다.
잠행 바이러스: 바이러스를 감지하는데 사용되는 시스템의 일부를 수정함으로써 감지를 피하려고 시도한다
Ex) read() 시스템 호출을 수정해서 만약 자신이 수정한 파일이 읽히면 감염된 코드가 아니라 원래 형태의 코드를 돌려준다.