본문 바로가기

분류 전체보기

(179)
스프링 환경설정 1. applicationContext.xml애플리케이션의 설정을 정의하는 XML 파일스프링 컨테이너가 관리할 객체(bean)와 그 객체들 간의 관계를 정의Bean 정의: 애플리케이션에서 사용될 객체(bean)들을 정의하고, 각 bean의 속성, 의존성 등을 설정합니다.스프링 설정: 데이터베이스 연결, 트랜잭션 관리, 서비스 계층, 리포지토리 계층 등의 설정을 포함할 수 있습니다.컴포넌트 스캔: 특정 패키지 내의 클래스를 자동으로 스프링 빈으로 등록하기 위한 설정입니다.AOP 설정: 관점 지향 프로그래밍(AOP) 설정을 정의합니다. 2.mybatis-mysql-config.xmlMyBatis 프레임워크에서 MyBatis 설정을 정의하는 XML 파일MyBatis가 SQL 매핑을 수행하는 방식과 관련된 설정..
토스 - 서버 증설 없이 처리하는 대규모 트래픽(1) 채용 공고 우대사항에서 심심치 않게 볼 수 있는 대규모 트래픽 처리에 대한 경험 여부를 보고 어디서 그런 경험을 할 수 있을 까 생각을 했는데, 직접 대규모 트래픽 처리를 할 수 있는 경험을 갖는 것은 신입 개발자로써는 거의 불가능한 일이라고 생가합니다.간접 경험으로 지식을 쌓고자 이 글이 눈에 들어와 읽어보게 되었습니다. 분당, 초당 수십만 건의 요청을 처리하기 위해서는 물리적 서버 증설로 다량의 트래픽을 모두 처리하는 것이 가장 간단한 방법일 수 있습니다. 하지만 증설 비용, 특정 시점에만 몰리는 트래픽인 경우 자원이 낭비되는 것은 기업의 입장에서는 충분히 고려해야만 하는 상황입니다. 이 분이 겪었던 문제는 크게 Redis 과부하 문제, 선착순 포인트 지급과 데이터베이스 과부하 문제 ,  API 중복..
서비스 공격 유형 1. 서비스 거부 공격(DoS; Denial of Service)대량의 데이터를 한 곳의 서버에 집중적으로 전송하여 서버의 정상적인 기능을 방해하는 것 2. Ping of Death(죽음의 핑)패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 네트워크를 마비시키는 서비스 거부 공격 방법-> 분할된 대량의 패킷을 재조립하는 부담과 패킷들의 ICMP Ping 메시지에 대한 응답 처리로 인해 시스템이 다운됨 3. SMURFING(스머핑)IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법 4. SYN Flooding3-way-handshake 과정을 의도적으로 중단시켜 서버가 대시 상태에 놓여 정상적인 서..
암호 알고리즘 1. 암호 알고리즘중요 정보를 보호하기 위해 평문을 암호화된 문장응로 만드는 절차 또는 방법 2. 개인키 암호화(Private Key Encryption)(1) 동일한 키로 데이터를 암호화하고 복호화(2) 대칭 암호 기법, 단일키 암호화 기법(3) 암호화/복호화 속도 빠름, 관리해야 할 키가 많음 * 개인키 암호화 기법 종류1) 스트림 암호화 방식- 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화- 종류 : LFSR, RC4, TKIP 2) 블록 암호화 방식- 한 번에 하나의 데이터 블록을 암호화하는 방식- 종류 : DES, SEED, AES, ARIA, IDEA, Skipjack 3. 공개키 암호화(Public Key Encryption)(1) 암호화할 때 사..
캡슐화 1. 캡슐화정보 은닉이 중요한 데이터와 기능을 불완전하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목 * 캡슐화의 보안 약점1) 잘못된 세션에 의한 정보 노출- 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생하는 보안 약점- 멤버 변수보다 지역 변수를 활용하여 변수의 범위를 제한함으로써 방지 2) 제거되지 않고 남은 디버그 코드- 개발 중 버그 수정이나 결과값 확인을 위해 남겨둔 코드들로 인해 발생하는 보안 약점- 소프트웨어 배포 전 코드 검사를 수해앟여 남은 디버그 코드를 삭제하여 방지 3) 시스템 데이터 정보 노출- 시스템 내부 저옵를 시스템 메시지 등을 통해 외부로 출력하도록 코딩하였을 때 발생하는 보안 약점- 노출되는 메시지..
코드 오류 1. 코드 오류 * 코드 오류 보안 약점1) 널 포인터(Null Pointer) 역참조- 널 포인터가 가리키는 메모리 위치에 값을 저장할 때 발생하는 보안 약점- 포인터를 이용하기 전에 널 값을 갖고 있는지 검사하여 방지 2) 부적절한 자원 해제- 자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생하는 보안 약점- 프로그램 내 자원 반환 코드가 누락되었는지 확인하고, 오류로 인해 함수가 중간에 종료 되었을 때 예외처리에 관계없이 자원이 반환되도록 코딩함으로써 방지 3) 해제된 자원 사용- 이미 사용되어 반환된 메모리를 참조하는 경우 발생하는 보안 약점- 반호나된 메모리에 접근할 수 없도록 주솔르 저장하고 있는 포인터를 초기화 하여 방지 4)..
보안 기능 1. 보안 기능 * 보안 기능의 보안 약점1) 적절한 인증 없이 중요 기능 허용- 보안 검사를 우회하여 인증 없이 중요 정보 또는 기능에 접근 및 변경 가능- 중요 정보나 기능을 수행하는 페이지에서 재인증 기능을 수행하도록 하여 방지 2) 부적절한 인가- 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한을 탈취- 모든 실행경로에 대해 접근제어 검사를 수행, 사용자에게 반드시 필요한 접근 권한만을 부여하여 방지 3) 중요한 자원에 대한 잘못된 권한 설정- 권한 설정이 잘못된 자원에 접근하여 해당 자원을 임의로 사용할 수 있음- 소프트웨어 관리자만 자원을 읽고 쓸 수 있도록 설정, 인가되지 않은 사용자의 중요 자원에 대한 접근 여부를 검사함으로써 방지 4) 취약한 암호화 알고리..
입력 데이터 검증 및 표현 1. 입력 데이터 검증 및 표현 (1) SQL 삽입(Injection) - 웹 응용 프로그램에 SQL을 삽입하여 내부 DB 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약점 - 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지 (2) 경로 조작 및 자원 삽입 - 데이터 입출력 경로를 조작하여 서버 자원을 수정·삭제 할 수 있는 보안 약점 - 사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격을 막는 필터를 사용하여 방지 (3) 크로스사이트 스크립팅(XSS) - 웹 페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점 - HTML 태그 사용을 제한하거나 스크립트에 삽입되지 안..
Secure SDLC 1. Secure SDLC SDLC(소프트웨어 개발 생명주기)에 보안 강화를 위한 프로세스를 포함한 것 * Secure SDLC의 대표적인 방법론 1) CLASP : SDLC 초기 단계에서 보안을 강화하기 위해 개발된 방법론 2) SDL : 마이크로소프트 사에서 안전한 소프트웨어 개발을 위해 기존의 SDLC를 개선한 방법론 3) Seven Touchpoints : 소프트웨어 보안의 모법사례를 SDLC에 통합한 방법론 2. SDLC 단계별 보안 활동 요구사항 분석 단계 -> 설계 단계 -> 구현 단계 -> 테스트 단계 -> 유지보수 단계 3. 소프트웨어 개발 보안 요소 (1) 기밀성(Confidentiality) - 시스템 내 정보와 자원은 인가된 사용자에게만 접근이 허용됨 - 정보 전송 중 노출되더라도 ..
DML 1. DML(Data Manipulation Language, 데이터 조작어) 저장된 데이터를 실질저긍로 관리하는데 사용되는 언어 2. 삽입문(INSERT INTO~) 기본 테이블에 새로운 튜플 삽입 시 사용 INSERT INTO 테이블_이름 (열1, 열2, 열3, ...) VALUES (값1, 값2, 값3, ...); 3. 삭제문(DELETE FROM~) 특정 튜플을 삭제할 때 사용 DELETE FROM 테이블_이름 WHERE 조건; 4. 갱신문(UPDATE~ SET~) 특정 튜플의 내용을 변경할 때 사용 UPDATE 테이블_이름 SET 열1 = 값1, 열2 = 값2, ... WHERE 조건; 출처 : 정보처리기사 실기 2024 기본서 / 저자 : 길벗알앤디(김정준, 강윤석, 김용갑, 김우경) / 출판..