Cute Hello Kitty Kaoani

전체 글

Algorithm/Problem Solving

[BOJ/GoldIII] 1516. 게임 개발 - JAVA 자바

1516번: 게임 개발첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부www.acmicpc.net- 208ms- 위상정렬선행관계 + 사이클이 없는 방향그래프 ➜ 위상정렬 !!어떤 작업을 수행하기 전 반드시 선행되어야 하는 작업이 존재한다. 작업의 시간과 선행관계가 주어졌을 때, 모든 작업을 완료하기 위해 필요한 최소시간을 구하는 문제이다. ( 비슷한 문제 : BOJ 작업 ) 진입차수 즉, 선행관계가 없거나 모두 완료되어 시작해도 되는 작업들을 우선순위 큐에 넣는다. # 소스코드import java.util.*;imp..

Algorithm/Problem Solving

[BOJ/GoldIV] 2056. 작업 - JAVA 자바

2056번: 작업수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해www.acmicpc.net592ms위상정렬어떤 작업을 수행하기 전 반드시 선행되어야 하는 작업이 존재한다. 작업의 시간과 선행관계가 주어졌을 때, 모든 작업을 완료하기 위해 필요한 최소시간을 구하는 문제이다.선행관계 + 사이클이 없는 방향그래프 ➜ 위상정렬 !!큐를 이용한 위상 정렬 알고리즘진입차수가 0인 모든 노드를 큐에 넣는다.큐가 빌 때까지 다음의 과정 반복큐에서 원소를 꺼내 해당 노드에서 나가는 간선을 그래프에서 제거진입차수가 0이 된..

InfoSec/정보보안기사

[정보보안기사/실기] ① 시스템 보안 요약 정리

Linux디렉터리/proc : 현재 실행되고 있는 프로세스 정보 기록권한SUID 권한이 부여된 파일을 실행하면 실행하는 동안 해당 파일의 소유자 권한으로 인식SGID 권한이 부여된 파일을 실행하면 실행하는 동안 해당 파일의 소유자 그룹 권한으로 인식sticky-bit : 디렉터리에만 적용되는 권한으로, 이 권한이 적용된 디렉터리엔 일반 사용자들이 자유롭게 파일 생성, 수정, 읽기가 가능하다. 다만 파일 소유자나 root 외에는 삭제나 파일명 변경이 불가능하다.chmod 1777 /tmp chmod o+t a.out-r-sr-xr-x root sys /etc/passwd : 소유자의 실행권한이 s이므로 SUID가 설정되어 있다. 따라서 일반 사용자 계정으로 해당 파일을 실행하더라도 소..

InfoSec/정보보안기사

[Linux] inetd 데몬과 Tcpwrapper

보안 쉘 SSH 보안 쉘 SSH 이란 암호통신을 이용하여 네트워크상의 다른 컴퓨터에 접속하여 원격으로 명령을 실행하거나 파일을 조작하는 응용 프로그램 또는 프로토콜을 의미한다. 기존의 Telnet FTP rlogin rsh 등 평문 송수신 서비스의 취약점을 대체하기 위해 설계 되었으며 디폴트로 22/tcp 포트를 사용한다. 암호화된 원격 터미널 서비스 제공 + 암호화된 파일 송수신 서비스 제공 💡 평문 송수신 서비스는 스니핑 공격, 재전송 공격에 취약하다. 특히 r계열 서비스는 IP spoofing 에 취약 다수의 클라이언트가 원격접속 및 동시요청 ⇒ 다중 접속 서버 fork() 기반의 multi-tasking 서버 thread 기반의 multi-thread 서버 select() poll() 기반의 mu..

InfoSec/정보보안기사

[Linux] 프로세스 실행 권한 sticky-bit

process 관련 식별 ID : PID, PPID, PGID, SID process 자원접근 권한 판단하기 위한 ID : RUID(Real UID), RGID(Real GID), EUID(Effective UID), EGID(Effective GID) RUID : 프로세스를 실행시킨 사용자의 UID RGID : 프로세스를 실행시킨 사용자의 GID EUID : 프로세스가 실행중인 동안에만 부여되는 UID로 자원 접근권한 판단 EGID : 프로세스가 실행중인 동안에만 부여되는 GID로 자원 접근권한 판단 SUID와 SGID는 프로세스가 실행중인 동안에 해당 실행파일의 소유자, 소유그룹의 권한으로 자원에 접근할 수 있도록 하는 권한 설정이다. SUID와 SGID가 설정되지 않은 프로세스를 실행시키면 프로세스..

InfoSec/정보보안기사

[Linux] shadow 패스워드 정책 및 계정 정책 관리

패스워드 저장 정책에는 passwd 파일 내 계정 정보와 함께 저장하는 일반 패스워드 정책과 shadow 파일에 패스워드를 별도로 저장하는 shadow 패스워드 정책이 있다. shadow 파일 패스워드 정보를 평문으로 저장할 경우 유출 피해가 발생할 수 있으므로 패스워드를 암호화하여 보호해야한다. shadow 패스워드를 사용하여 /etc/shadow 파일에 암호화된 패스워드가 저장되도록 하고 root 만이 읽을 수 있도록 제한한다. shadow 파일에는 계정별 암호화된 패스워드와 에이징(aging)정보가 저장되어 있다. 패스워드 에이징 정보는 시간의 흐름에 따른 패스워드 관리 정책이다. ① 사용자 계정명 ② encrypted_password : 암호화된 패스워드 (3가지 필드 아래 글 참고) ③ last..

InfoSec/정보보안기사

[Linux] cron 작업 스케줄 관리

cron 서비스 cron 은 UNIX/LINUX 시스템의 정기적으로 등록된 작업을 실행시켜주는 서비스이다. cron 서비스를 이용하려면 다음 세 가지 구성요소가 필요하다 crontab 파일 : 정기적 작업 등록 파일 crontab 명령 : 작업 등록을 위해 사용하는 명령 crond : cron 데몬 프로세스로 작업 등록 파일에 정의된 작업을 처리하는 데몬 프로세스 /etc/crontab 파일 형식 ✨ root가 설정하는 작업 등록 파일로 모든 사용자에 대한 작업을 등록할 수 있다 ➜ 640 권한 설정 권장 분 분은 0-59까지 숫자로 작성 시 시는 0-23까지 숫자로 작성 일 일은 1-31까지 숫자로 작성 월 월은 1-12까지 숫자로 작성 요일 요일은 0-6까지 숫자로 작성 ( 0:일요일, 1:월요일 ~..

InfoSec/정보보안기사

[Linux] 사용자 및 그룹 관리

사용자 및 그룹 관리 useradd : 사용자 추가 -u UID , -g GID , -G 보조그룹 , -c comment, -d 홈 디렉터리 , -s 로그인 쉘 -m -d : 계정과 함께 홈 디렉터리 생성 -o 중복 UID를 허용하는 옵션 Q. 공격자가 다음과 같은 명령어를 실행했다. 이 명령어의 의미는? -o 옵션은 중복 UID를 허용하는 옵션으로 공격자가 root 권한을 탈취하기 위해 -o 옵션을 사용하여 UID = 0 , GID = 0 인 일반 사용자 계정을 생성하는 명령어이다. usermod : 사용자 변경 공격자가 root 권한을 탈취하기 위해 -o 옵션을 사용하여 일반 사용자 계정을 UID = 0 , GID = 0 로 수정하는 명령어이다. userdel : 사용자 계정 삭제 -r : 홈 디렉터..

Algorithm/Problem Solving

[BOJ/GoldⅣ] 1253. 좋다 - JAVA 자바

1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 144ms 투포인터 단순히 이중 for문으로 풀었을 때, 시간초과가 발생했다. 두 수를 선택해서 푸는 문제이므로 투포인터가 떠올랐다. 1부터 n까지 좋은 수인지 투포인터를 통해 합이 되는 경우가 있는지 탐색한다. left = 0, right = n - 1 을 초기값으로 잡은 후, 1. left 가 arr[i] 이면 오른쪽으로 한 칸 이동 left++ 2. right 가 arr[i]이면 왼쪽으로 한 칸 이동 right-- 3. arr[left] + arr[right] == arr[i] 이면 ..

InfoSec/정보보안기사

[Linux] 프로세스 관련 식별자

시간남으면 그림그려서 추가 ... + 강의자료 프로그램 실행 과정 프로세스 생성과 동시에 프로세스 그룹도 생성된다. 프로세스 그룹은 커널이 터미널 제어권을 관리하기 위한 목적으로 사용하는 프로세스들의 집합으로 쉘(shell)에서 실행된 프로세스와 자식 프로세스들이 하나의 프로세스 그룹으로 관리된다. 터미널 제어권이란 터미널로부터 입력되는 데이터와 터미널로부터 발생하는 시그널에 대한 제어권으로 프로세스 그룹 단위로 제어권이 부여된다. 커널이 프로세스 그룹을 식별하기 위한 식별자로 PGID를 부여하며, PGID는 해당 그룹의 리더 프로세스(쉘로부터 실행된 프로세스)의 PID를 PGID로 설정한다. Foreground mode : 터미널에 대한 제어권을 가지고 동작하는 모드 Background mode : 터..

InfoSec/정보보안기사

[Linux] 프로세스 응용

프로세스 프로세스의 메모리 영역은 User 영역과 Kernel 영역으로 나뉜다. 프로세스가 생성되면 커널 운영체제은 프로세스 별로 관리정보를 담고 있는 프로세스 제어 블록(PCB, Process Control Block)을 생성한다. 프로세스 제어 블록 PCB Process number : 프로세스 식별(PID), 부모 프로세스 식별(PPID) Program counter(PC) : Context Switching 발생 시 다음에 실행할 명령어의 위치값 저장 register 저장 영역 : Context Switching 발생 시 현재 프로세스의 실행 상태 정보(레지스터 정보) 저장 Process state : 프로세스의 현재 상태 정보(Ready, Running, Blocked 등) 저장 Memeory ..

Algorithm/Problem Solving

[BOJ/GoldIV] 18427. 함께 블록 쌓기 - JAVA 자바

18427번: 함께 블록 쌓기 첫째 줄에 자연수 N, M, H가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 10, 1 ≤ H ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 각 학생이 가진 블록들의 높이가 공백을 기준으로 구 www.acmicpc.net 132ms DP, knapsack N명의 학생들이 가지고 있는 블록으로 H 높이를 만들 수 있는 경우의 수를 계산하는 문제이다. 이 문제의 핵심은 다음과 같다 한 학생당 최대 1개의 블록만 사용가능 블록을 사용하지 않아도 됨 3명의 학생이 다음과 같은 높이의 블록을 가지고 있을 때 높이 1부터 h=5까지 만들 수 있는 경우의수를 생각해보자 2 3 5 3 5 1 2 3 1 2 3 4 5 1 0 1 1 0 1 2 3 첫 번째 학..

gangintheremark
갱ㅎr