Java 입출력 함수 - Scanner() : 클래스의 이름, ()를 붙여 그대로 적기 - nextInt() : 입력받은 값을 정수형으로 변환 - print() : 값이나 변수의 내용을 형식없이 출력 - printf() : C언어의 printf() 함수와 동일 - println() : 값이나 변수의 내용을 형식없이 출력한 후 커서를 다음 줄로 이동 Java 입출력 함수 사용 예시 import java.util.Scanner; import문을 이용해 java 패키지 안 util 패키지 안 Scanner 패키지를 선언 public class Test Test라는 이름의 클래스를 생성 { public static void main (String[] args) C언어의 int main()과 대응 { Scanne..
etc./정보처리기사
보안 솔루션 설명 방화벽 정보를 선별하여 수용, 거부, 수정 침입 탐지 시스템 (IDS) 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지 침입 방지 시스템 (IPS) 비정상적인 트래픽을 능동적으로 차단하고 격리 (방화벽 + 침입 탐지 시스템) 데이터 유출 방지 (DLP) 내부 정보의 외부 유출 방지 웹 방화벽 웹 기반 공격을 방어할 목적으로 웹 서버에 특화된 방화벽 VPN (가상 사설 통신망) 공중 네트워크와 암호화 기술을 이용해 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해줌 NAC 네트워크에 접속하는 내부 PC의 일관된 보안 관리 기능을 제공 ESM 로그 및 보안 이벤트를 통합하여 관리
로그란 시스템 사용에 대한 모든 내역을 기록해 놓은 것입니다. 리눅스 로그 - 모든 로그를 var/log 디렉터리에 기록하고 관리합니다. - 로그 파일을 관리하는 syslogd 데몬은 etc/syslog.conf 파일을 읽습니다. - syslog.conf 파일을 수정하면 로그 관련 파일들의 저장 위치와 파일명을 변경할 수 있습니다. 윈도우 로그 - 이벤트 로그 형식으로 관리합니다. - 이벤트 뷰어를 이용하여 이벤트 로그를 확인할 수 있습니다. 로그 내용 응용 프로그램 응용 프로그램에서 발생하는 이벤트가 기록된다. 보안 로그온 시도, 파일 생성, 조회, 제거 등 리소스 사용과 관련된 이벤트가 기록된다. 시스템 Windows 시스템 구성 요소에 의해 발생하는 이벤트가 기록된다. Setup 프로그램 설치와 관..
보안 서버란 개인정보를 암호화하여 송수신할 수 있는 기능을 갖춘 서버를 의미합니다. 서버에 SSL 인증서를 설치하여 전송 정보를 암호화하여 송수신합니다. * 보안 아키텍처란 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조를 의미합니다. * 보안 프레임워크란 안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계를 말합니다. 대표적으로 ISO 27001이 있습니다. 인증이란 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차입니다. 인증 유형 종류 지식 기반 인증 Something You Know 고정된 패스워드 패스 프레이즈 아이핀 소유 기반 인증 Something You Have 신분증 메모리 카드(토큰) 스마트 카드 OTP 생체 기반 인증 Some..
서비스 거부(DoS; Denial of Service)공격이란 대량의 데이터를 한 곳의 서버에 집중적으로 전송하는 것입니다. 종류 내용 Ping of Death 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 네트워크를 마비시킨다. SMURFING IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만든다. SYN Flooding 3-way-handshake 과정을 의도적으로 중단시킴으로써 서버가 대기 상태에 놓여 정상적인 서비스를 수행하지 못하게 한다. TearDrop 패킷의 분할 순서를 알 수 있게 해주는 Offset값을 변경시켜 수신 측에서 패킷을 재조립할 때 과부하를 발생시킨다. LAND Attack ★ 패킷을 전송할 때 송신..
개인키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법입니다. '대칭 암호 기법' 또는 '단일키 암호화 기법'이라고도 합니다. 속도가 빠르지만, 관리해야할 키의 수가 많습니다. 개인키 암호화 기법에는 스트림 암호화 방식과 블록 암호화 방식이 있습니다. 스트림 암호화 방식은 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 방식입니다. 블록 암호화 방식은 한 번에 하나의 데이터 블록을 암호화하는 방식입니다. 공개키 암호화 기법은 암호화할 때 사용하는 공개키는 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리하는 암호화 기법입니다. '비대칭 암호 기법'이라고도 하며, 관리해야 할 키의 수는 적지만 속도가 느립니다. 해시는 임의 길이의 입력 데이터를 고정된 길이의 값이..
보안 약점 설명 세션 통제 불충분한 세션 관리 잘못된 세션에 의한 정보 노출 입력 데이터 검증 및 표현 SQL 삽입 웹 응용 프로그램에 SQL을 삽입하여 내부 DB 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회 경로 조작 및 자원 삽입 크로스사이트 스크립팅(XSS) 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발 운영체제 명령어 삽입 위험한 형식 파일 업로드 신뢰되지 않는 URL 주소로 자동접속 연결 메모리 버퍼 오버플로 할당된 메모리의 범위를 벗어난 위치에서 자료를 읽거나 쓰는 등 메모리를 다루는데 오류가 발생 보안 기능 적절한 인증없이 중요기능 허용 부적절한 인가 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한을 탈취 중요한 자원에 대한..
Secure SDLC란 SDLC(소프트웨어 개발 생명주기)에 보안 강화를 위한 프로세스를 포함한 것을 의미합니다. Secure Coding이란 보안 요소들을 고려하며 코딩하는 것을 의미합니다. Secure SDLC의 대표적인 방법론에는 다음 3가지가 있습니다. CLASP SDL Seven Touchpoints SDLC의 초기 단계에서 보안을 강화하는 방법론 마이크로소프트 사에서 안전한 소프트웨어 개발을 위해 제안한 방법론 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론 SDLC 단계별 보안 활동 1) 요구사항 분석 2) 설계 3) 구현 4) 테스트 5) 유지보수 소프트웨어 개발 보안 요소 - 기밀성 : 인가된 사용자에게만 접근이 허용됩니다. - 무결성 : 인가된 사용자만 수정할 수 있습니다. - 가..
옵티마이저는 작성된 SQL이 가장 효율적으로 수행되도록 최적의 경로를 찾아 주는 모듈입니다. 옵티마이저의 종류에는 RBO와 CBO가 있습니다. RBO Rule Based Optimizier CBO Cost Based Optimizer 최적화 기준 규칙에 정의된 우선순위 액세스 비용 성능 기준 개발자의 SQL 숙련도 옵티마이저의 예측 성능 특징 실행 계획 예측이 쉬움 성능 통계치 정보 활용, 예측이 복잡함 고려사항 개발자의 규칙 이해도, 규칙의 효율성 비용 산출 공식의 정확성 * 실행 계획이란 옵티마이저가 수립한 SQL 코드의 실행 절차를 의미합니다. EXPLAIN 명령어를 통해 확인할 수 있습니다. 쿼리 성능 최적화 방법 SQL 코드 재구성 인덱스 재구성 - WHERE 절 추가 - WHERE 절에 연산자..
ORM이란 'Object-Relational Mapping'의 약자로, 객체(OOP)와 관계형 데이터베이스(RDB)의 데이터를 연결하는 기술을 의미합니다. SQL 코드를 입력하지 않고 프로그래밍 코드와 데이터베이스를 연결하는 것이 가능합니다. ORM 프레임워크란 ORM을 구현하기 위해 여러 기능을 제공하는 소프트웨어를 의미합니다. 기반 언어 ORM 프레임워크 Java JPA, Hibernate, EclipseLink, DataNucleus, Ebean C++ ODB, QxOrm Python Django, SQLAlchemy, Storm .NET NHibernate, DatabaseObjects, Dapper PHP Doctrine, Propel, RedBean ORM의 한계 - 프레임워크가 자동으로 SQ..