- 기밀성
- 인가되지 않은 사용자가 정보를 보지 못하게 하는 모든 작업
- 암호와 작업
- 인가되지 않은 사용자가 정보를 보지 못하게 하는 모든 작업
- 무결성
- 정확하고 완전한 정보 유지에 필요한 모든 작업
- 누군가가 정보를 고의로 훼손하거나 중간에 특정 이유로 변경이 가해졌을 때, 그것을 파악해 잘못된 정보가 전달되지 않도록 하는 것
- 정확하고 완전한 정보 유지에 필요한 모든 작업
- 가용성
- 정보가 필요할 때, 접근을 허락하는 작업
- 정보를 사용하고 싶을 때 사용할 수 없는 상황이 온다면 정보 보안에 실패한 것
- 정보가 필요할 때, 접근을 허락하는 작업
트러스트 네트워크 | 외부로부터 보호받아야 할 네트워크 |
---|---|
언트러스트 네트워크 | 신뢰할 수 없는 외부 네트워크 |
한 단계 나아가서 우리가 운영하는 내부 네트워크이지만, 신뢰할 수 없는 외부 사용자에게 개방해야하는 서비스 네트워크인 경우, DMZ 네트워크라고 부름
또한 네트워크 보안 분야는 트래픽의 방향과 용도에 따라 두 가지로 나눌 수 있다.
- 인터넷 시큐어 게이트웨이(Internet Secure Gateway)
- 트러스트(또는 DMZ) 네트워크에서 언트러스트 네트워크로의 통신을 통제
- 방화벽, SWG(Secure Web Gateway), 웹 필터(Web Filter), 애플리케이션 컨트롤(Application Control), 샌드박스(Sandbox)
- 내부 사용자가 인터넷으로 통신할 때 보안을 제공, 통제하기 위해 사용
- 데이터 센터 시큐어 게이트웨이(Data Center Secure Gateway)
- 언트러스트 네트워크에서 트러스트(또는 DMZ)로의 통신을 통제 ❓
- 방화벽, IPS, DCSG(DataCenter Secure Gateway), WAF(Web Application Firewall), Anti-DDos
- 화이트리스트
- 방어에 문제가 없다고 명확히 판단되는 통신만 허용
- 인터넷 전체에 화이트리스트를 만들기는 어려우므로 IP, 통신 정보에 대해 명확히 아는 경우에 많이 사용
- 블랙리스트
- 공격이라고 명확히 판단되거나 문제가 있었던 IP 리스트나 패킷 리스트를 기반으로 데이터베이스를 만들고 그 정보를 이용해 방어
- 네트워크 장비들은 기본적으로 블랙리스트 기반의 방어 기법 제공
일반 기업이나 정부/공공기관 등에서 보안을 강화하기 위해 실제 사용하는 상용 소프트웨어 혹은 하드웨어 제품
종류
-
데이터 센터에서 보안 장비를 디자인할 때 여러 단계로 공격을 막도록 인라인 상에 여러 장비 배치
-
모든 공격을 장비 한 대로는 방어할 수 없으므로 여러 장비의 기능으로 단계적으로 방어
- DDos 방어 장비의 주요 차단 방법은 프로파일링 기법
- 평소 데이터 흐름과 다른 과도한 트래픽이 인입되면 알려주고 차단
- 다른 방법은 데이터베이스 기반으로 방어
- IP 평판 데이터베이스를 공유해 DDos 공격으로 사용된 IP 기반으로 방어 여부를 결정하거나 특정 공격 패턴을 방어
- 4계층에서 동작하는 패킷 필터링 장비
- 3, 4계층 정보를 기반으로 정책을 세울 수 있고 해당 정책과 매치되는 패킷이 방화벽을 통과하면 그 패킷을 허용하거나 거부 가능
- 일반적으로 방화벽은 DDos 방어 장비 바로 뒤에 놓음
방화벽의 동작 방식
- 장비에 패킷이 들어오면 세션 상태 테이블 확인
- 조건에 맞는 세션 정보가 테이블에 있을 때, 포워딩 테이블 확인(ARP, 라우팅 포함)
- 조건에 맞는 세션 정보가 테이블에 없을 때, 방화벽 정책 확인
- 방화벽 정책을 모두 확인하였으나 없을 경우 암시적인 거부 규칙을 참고해 차단
- 허용 규칙이 있으면 내용을 세션테이블에 적음
- 포워딩 테이블을 확인
- 포워딩 테이블에 조건에 맞는 정보가 존재할 경우 - 적절한 인터페이스로 패킷을 포워딩
- 조건에 맞는 정보가 없을 경우 - 패킷 폐기
IPV4의 대역 중 일부를 Private IP로 지정하여 가정, 기업, 기관 등 근거리 통신망(LAN)에서 사용하도록 한 것
동작 방식
- Host to Host 통신 보호
- 두 호스트 간에 직접 VPN 터널을 연동하는 기법
- 잘 사용하지 ❌
- Network to Network 통신 보호
- 본사-지사 같은 특정 네트워크를 가진 두 종단을 연결하는 경우 → IPSEC 프로토콜 스택을 가장 많이 사용
- Host가 Network로 접근할 때 보호
- 모바일 사용자가 일반 인터넷 망을 통해 사내 망으로 연결하는 경우 → IPSEC, SSL 프로토콜 사용
- 소스 코드를 소프트웨어로 변환하는 과정에 필요한 전처리, 컴파일 등의 작업을 수행하는 소프트웨어
| Ant (Another Neat Tool) | 자바 프로젝트의 공식적 자동화 도구 (XML 기반) 표준 없이 개발자가 모든 것 정의 / 스크립트 재사용 어려움 | | --- | --- | | Maven | Ant 대안 / 표준이 있어 예외 사항만 기록 컴파일과 빌드 동시에 수행 가능 / 의존성 설정 후 Library 관리 | | Gradle | Ant 및 Maven 보안 / 안드로이드 공식 개발 도구 (Groovy 기반) 의존성 활용 / 그루비 기반 / 빌드 캐시 기능 지원 → 속도 향상 실행할 명령을 모아 태스크로 만든 후 태스크 단위 실행 | | Jenkins | JAVA 기반 오픈 소스 형태 / 서블릿 컨테이너에서 실행 형상 도구 관리와 연동 가능 (SVN, Git) |
- 결함 집중 : 파레토(Pareto) 법칙 - 20%의 모듈에서 전체 결함 80% 발생
- 살충제 패러독스 : 동일한 테스트 케이스에 의한 반복 테스트는 새로운 버그 발견 ❌
-
시각(관점) 기반
| 검증 (Verification) | 개발자의 시각에서 제품의 생산 과정 테스트 Ex. 단위/통합/시스템 테스트 | | --- | --- | | 확인 (Validation) | 사용자의 시각에서 생산된 제품의 결과 테스트 Ex. 인수 테스트 (알파 / 베타) |
삽입 | 이미 정렬된 파일에 새로운 레코드를 순서에 맞게 삽입하여 정렬 |
---|---|
선택 | N개의 레코드 중 최소값을 찾아 첫번째에 배치, 나머지 N-1개 레코드 중 최소값 찾아 두번째 배치, 이를 반복하여 정렬 |
버블 | 인접한 두 개의 레코드 키 값 비교 후 크기에 따라 레코드 위치 교환 |
퀵 | 자료 이동 최소화 후 하나의 파일을 부분적으로 나눠가며 정렬 |
2-way 합병 | 이미 정렬된 2개의 파일을 한 개의 파일로 합병하여 정렬 |
쉘 | 입력 파일을 매개변수 값으로 서브파일 구성 후 각 서브파일을 삽입 정렬 방식으로 순서 배열하는 과정을 반복 |
힙 | 완전 이진 트리를 이용한 정렬 |
- 모듈 안의 내용을 직접 볼 수 있으며, 내부의 논리적인 모든 경로를 테스트
- 소스 코드의 모든 문장을 한 번 이상 수행 / 논리적 경로 점검 (선택, 반복, 수행)
- 테스트 데이터를 선택하기 위해 검증 기준 정함
- → 기초 경로 검사 : 대표적 화이트박스 테스트 기법 (동적 테스트) / 사이클 최대 1번 측정 결과는 실행 경로의 기초를 정의하는 지침으로 사용
- → 제어 구조 검사 : 조건 검사 / 루프 검사 / 자료 흐름 검사
- 모듈 내부의 내용 알 수 없음 / 소프트웨어 인터페이스에서 실시되는 테스트
- SW 각 기능이 완전히 작동되는 것을 입증하는 테스트로 ‘기능 테스트’라고 함
- → 동치 분할 검사 / 경계값 분석 / 원인-효과 그래프 검사 / 비교 검사 / 오류 예측 검사
- 입력값, 실행 조건, 기대 결과 등으로 구성
중첩법 (폴딩법) | 레코드 키를 여러 부분으로 나누고, 나눈 부분의 각 숫자를 더하거나 XOR 한 값을 홈 주소로 사용하는 방식 |
---|---|
제산법 | 레코드키로 해시표의 크기보다 큰 수 중에서 가장 작은 소수로 나눈 나머지를 홈 주소로 삼는 방식 |
기수변환법 | 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수는 절단하고, 이를 다시 주소 범위에 맞게 조정하는 방식 |
숫자분석법 | 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 선택해서 홈 주소로 삼는 방식 |