🔹 소프트웨어 개발 보안
✔️ Secure SDLC
- CLASP: SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
- Seven Touchpoints: 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
✔️ 소프트웨어 개발 보안 요소
1) 기밀성(Confidentiality)
- 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨
- 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음
2) 무결성(Integrity)
시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음
3) 가용성(Availability)
인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음
4) 인증(Authentication)
- 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위
- 대표적 방법: 패스워드, 인증용 카드, 지문 검사 등
5) 부인 방지(NonRepudiation)
데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공함
✔️ 입력 데이터 검증 및 표현 보안 약점
1) SQL 삽입(Injection)
웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약점
-> 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입 력되지 않게 필터링 되도록 설정하여 방지할 수 있음
2) 경로 조작 및 자원 삽입
데이터 입출력 경로를 조작하여 서버 자원을 수정 삭제할 수 있는 보안 약점
-> 사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격을 막는 필터를 사용하여 방지할 수 있음
3) 크로스사이트 스크립팅(XSS)
웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
-> HTML 태그의 사용을 제한하거나 스크립트에 삽입되지 않도록 '<', '>', '&' 등의 문자를 다른 문자로 치환함으로써 방지할 수
있음
4) 운영체제 명령어 삽입
외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한 을 탈취하거나 시스템 장애를 유발하는 보안 약점
-> 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고, 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지할 수 있음
5) 위험한 형식 파일 업로드
악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시 스템에 손상을 주거나, 시스템을 제어할 수 있는 보안 약점
-> 업로드 되는 파일의 확장자 제한, 파일명의 암호화. 웹사이트와 파일 서버의 경로 분리, 실행 속성을 제거하는 등의 방법으로 방 지할 수 있음
6) 신뢰하지 않는 URL 주소로 자동접속 연결
입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점
-> 연결되는 외부 사이트의 주소를 화이트 리스트로 관리함으로써 방지할 수 있음
7) 메모리 버퍼 오버플로우
연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점
-> 메모리 버퍼를 사용할 경우 적절한 버퍼의 크기를 설정하고, 설 정된 범위의 메모리 내에서 올바르게 읽거나 쓸 수 있도록 함으 로써 방지할 수 있음
✔️ 보안 기능의 보안 약점
1) 널 포인터 역참조
널 포인터가 가리키는 메모리의 위치에 값을 저장할 때 발생하는 보안 약점
2) 부적절한 지원 해제
자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생하는 보안 약점
3) 해제된 자원 사용
이미 사용이 종료되어 반환된 메모리를 참조하는 경우 발생하는 보안 약점
4) 초기화되지 않은 변수 사용
변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생하는 보안 약점
[ 스택 가드(Stack Guard) ]
널 포인터 역참조와 같이 주소가 저장되는 스택에서 발생하는 보안 약점을 막는 기술 중 하나이다.
✔️ 암호 알고리즘
[ 양방향 알고리즘 ]
1) 개인키(대칭키)
동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법
- 블럭 방식: DES(64비트), AES, SEED(한국인터넷진흥원), ARIA
- 고정 길이의 블록을 할당하여 암호화하는 방식
- 스트림 방식: LFSR, RC4, TKIP(무선랜 WEP보완)
- 유사 난수를 연속적으로 생성하여 암호문을 생성하는 방식
2) 공개키(비대칭키)
암호화할 때 사용하는 공개키는 사용자에게 공개하고, 복호화할 때 비밀키는 관리자가 비밀리에 관리하는 암호화 기법
- RSA (MIT), 소인수 분해 문제를 이용한
[ 단방향 알고리즘 ]
MD4, MD5(MD4 대체), SHA-1
✔️ 서비스 공격 유형
[ 서비스 거부(DoS) 공격 ]
1) Ping of Death(죽음의 핑): 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 네트워크를 마비시키는 서비스 거부 공격 방법
2) 스머핑 (SMURFING) : IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터 를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능상태로 만드는 공격 방법
- 스머프(Smurf) 공격: 브로드캐스트 활용
3) SYN Flooding: 3-way-handshake 과정을 의도적으로 중단시킴으로써 공격 대상자인 서버가 대기 상태로 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법
4) Ddos: 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 분산 서비스 공격
- 관련 공격: Tribe Flood Network
5) LAN attack: 패킷을 전송할 때 송신 ip와 수신 ip 주소를 모두 공격 대상의 ip주소로 하여 공격 대상에게 전송하는 것
[ 네트워크 침해 공격 유형 ]
1) 세션 하이재킹 (Session Hijacking) : 서버에 접속하고 있는 클라이언트들의 세션 정보를 가로채는 공격 기법
- 탐지 방법: 비동기화 상태 탐지, ACK STORM 탐지, 패킷의 유실 및 재전송 증가 탐지
2) ARP 스푸핑: 자신의 물리적 주소(MAC)를 공격대상의 것으로 변조하여 공격 대상에게 도달해야 하는 데이터 패킷을 가로채거나 방해함
3) 스미싱 (Smishing) : SMS 를 이용해 개인 신용 정보 훔침
4) 사회 공학: 컴퓨터 보안에 있어서, 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨트리기 위해 비기술적 시스템 침입 수단
5) 다크 데이터: 특정 목적을 가지고 데이터를 수집했으나, 이후 활용되지 않고 저장만 되어 있는 대량 데이터
6) 타이포스쿼팅: 사이트 접속 시 주소를 잘못 입력하는 실수를 이용하여 유사한 유명 도메인을 미리 등록하는 일
7) APT: 다양한 기술과 방식을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격
8) 스니핑: 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형
9) Qshing : QR 코드를 통해 금융 사기
[ 정보 보안 침해 공격 유형 ]
1) 키로거 (Key Logger) : 사용자의 키보드 움직임을 탐지해 개인 정보 빼냄
2) 랜섬웨어 (Ransomware) : 문서나 파일을 암호화
3) 웜 (Worm) : 네트워크를 통해 연속적으로 자신을 복제해 시스템 다운 시킴
4) 제로데이공격 (Zero Day Attack) : 보안 취약점이 발견되었을 때 발견된 취약점의 존재 자체가 널리 공표되기도 전에 해당 취약점을 통하여 이루어지는 보안 공격으로, 공격의 신속성 을 의미함
5) 백도어: 시스템 설계자가 서비스 기술자나 유지보수 프로그램 작성자의 엑세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로로, 컴퓨터 범죄에 악용되기도 함
- 탐지 방법: 무결성 검사, 프로세스 및 열린 포트 확인, 로그 분석, SetUID 파일 검사
- tripwire: 크래커가 침입하여 백도어를 만들어 놓거나, 설정 파일을 변경 했을 때 분석하는 도구
6) 워터링홀: 목표 조직이 자주 방문하는 웹 사이트에 사전 감염시켜 목적 조직의 일원이 방문했을 때 감염시키는 웹 기반 공격
✔️ 보안 솔루션
[ 방화벽 ]
Screen Subnet(스크린 서브넷): 외부 네트워크와 내부 네트워크 사이에 두는 완충적인 통신망
[ 침입 탐지 시스템, IDS ]
컴퓨터 시스템의 비정상적인 사용, 오용, 남용을 실시간으로 탐지하는 시스템
- 이상 탐지: 모르다가 비정상적이면 알려줌, Behavior, Statistical Detection
- 오용 탐지: 미리 알고 있던 패턴 감지, Signature Base, Knowledge Base
[ 침입 방지 시스템, IPS ]
비정상적인 트래픽을 능동적으로 차단하고 격리하는 보안 솔루션
[ SIEM(Security Information & Event Management) ]
로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션, 로그 및 이벤트를 수집하여 시각화, 경보, 검색, 보고서 등으로 나타날 수 있는 추가 분석을 위해 이 데이터를 정규화
[ 오라클 감사 뷰(view) ]
- dba_stmt_audit_opts : 문장 감사의 옵션을 확인
- dba_priv_audit_opts : 권한 감사의 옵션을 확인
- dba_obj_audit_opts : 객체 감사의 옵션을 확인
- dba_audit_trail : 모든 감사 로그를 출력
- dba_audit_object : 객체와 관련된 모든 감사 로그를 출력
- user_audit_obejct : 현재 사용자의 객체와 관련된 모든 감사 로그를 출력
- dba_audit_session : 사용자의 로그인/로그오프
- dba_audit_statment : 문장 감사 로그를 출력
'Computer Science > CS' 카테고리의 다른 글
[전산공부] 소프트웨어공학 + 최신기술 (2) | 2024.03.17 |
---|---|
[전산공부] 데이터베이스 (4) | 2024.02.25 |
[전산공부] 운영체제 (0) | 2024.02.18 |
[전산 공부] 데이터 통신 (0) | 2024.02.02 |
댓글