728x90

[1,2교시 - 데이터베이스 보안 운영]

/ substr()
- 문자열 자르기
- 인덱스는 1부터 시작한다.
- 두번째 인자로 들어간 인덱스에서 시작하여
- 세번째 인자로 들어간 숫자만큼 문자열을 가져온다.
- 두번째 인자가 0보다 작으면 뒤에서부터 인덱스를 가져온다.

SELECT 
substr('가나다라마바사아자차', 3, 2) as a,
substr('가나다라마바사아자차', -3, 1) as b,
substr('가나다라마바사아자차', -3, 4) as c
FROM dual;

 

/ 연습문제 1
- Student 테이블에서 jumin 컬럼을 사용해서 1 전공이 101번인 학생들의 이름과  태어난 월일 , 생일 하루 전 날짜를 출력하세요.

SELECT 
    name, -- 이름
    substr(JUMIN,3,2)||'월 '||substr(JUMIN,5,2)||'일' birth, -- 생일
    TO_CHAR(BIRTHDAY-1, 'YYYY-MM-DD') "birth minus day" -- 생일 하루 전 날짜
FROM STUDENT
WHERE DEPTNO1 = '101';

 

/ instr()
- instr(문자열또는컬럼명, 찾고자하는문자열, 찾을시작위치, 찾은 문자열이 여러개일때 몇번째인지)

SELECT 'Oracle Database 12C Release', INSTR('Oracle Database 12C Release', 'Data', 3, 1) AA FROM dual;

- 위의 쿼리는 'Oracle Database 12C Release'이라는 문자열에서 'Data'라는 문자열을 3번째 인덱스부터 찾되 1번째로 찾은 인덱스를 알려달라는 뜻이다.
- O(1)r(2)a(3)c(4)l(5)e(6) (7)D(8)

ELECT 'Oracle Database 12C Release', INSTR('Oracle Database 12C Release', 'as', -4) AA FROM dual;

- 위의 쿼리는 'Oracle Database 12C Release'이라는 문자열에서 'as'라는 문자열을 뒤에서 4번째 인덱스부터 찾아 인덱스를 알려달라는 뜻이다.

 

/ LPAD문제
- emp2 테이블을 사용하여 아래 화면과 같이 deptno가 1000번대인 사원들의 사원이름을 총 15 바이트로 출력하되 빈 자리에는 해당 자리의 숫자로 채우세요.

select lpad(NAME, 15, '123456789') from emp2;

 

/ LTRIM(), RTRIM()
- 특정 문장에서 삭제할 문자열을 지정하여 삭제한다.
- LTRIM(문장, 삭제할문자열)

SELECT ENAME, JOB, LTRIM(JOB,'C') FROM EMP WHERE JOB = 'CLERK';

 

/ REPLACE()
- 문장안에서 지정한 문자열을 특정 문자열로 변환한다.
- REPLACE(문장, 변경할문자열, 특정문자열)

SELECT ENAME, REPLACE(ENAME, SUBSTR(ENAME,1,2), '##') FROM EMP WHERE EMPNO > 7000;

 

/ REPLACE 문제 1
- emp 테이블에서 아래와 같이 7000번 이상 부서에 소속된 직원들의 이름과 3-4 번째 글자만 '-' 으로 변경해서 출력하세요 .

SELECT ENAME, REPLACE(ENAME, SUBSTR(ENAME,2,2), '--') FROM EMP WHERE EMPNO > 7000;

 

/ REPLACE 문제 2
- Student 테이블에서 아래 그림과 같이 1 전공이 102 번인 학생들의 이름과 전화번호, 전화번호에서 국번 부분만 ‘*’ 처리하여 출력하세요. 단 모든 국번은 3자리로 간주합니다.

SELECT NAME, TEL, REPLACE(TEL, SUBSTR(TEL,1,3), '***') FROM student
WHERE DEPTNO1 = '102';

 

 


 

[3,4,5교시 - 정보시스템 진단]

 

/ IIS 관리자 띄우기
# start inetmgr

 

/ 폴더 공유 숨기기
- net share로 공유된 폴더들을 확인할 수 있는데 이것때문에 취약점이 발생한다.
- 해서 보이지 않도록 설정할것이다.
- 윈도우로고 우클릭 > 컴퓨터 관리



- 여기서 윈도우 로그를 확인해볼 수도 있다.

 

- 여기서 응용프로그램을 우클릭 하고 속성을 클릭해본다.

 

- 로컬 사용자 및 그룹도 살펴본다.
- 아이콘에 아래화살표가 있는것은 존재하긴 하지만 다운시켜서 사용하지 않는것을 뜻한다.

 

- 게스트 계정은 예전에 사용했었었는데 취약점이 있어가지고 사용안하는것으로 바뀌었다고 한다.
- 예전에 중국에서 이걸 이용해서 mp3 서버로 많이 이용했었다고 한다.

 

- 관리자를 살펴본다.
- 대기업같은곳에서는 'Administrator'라는 관리자계정명을 변경해서 사용하기도 한다.

 

/ 여담
- 백업데이터는 로컬에 저장할 수 없도록 법규로 지정되어 있다.

/ 공유중지
- 공유 폴더 > 공유 > C$를 우클릭하여 공유 중지를 하면 목록에서 사라진다.
- 'net share'에서도 사라졌다.

- 근데 재부팅하면 다시 살아날것이다.

# services.msc
- 에 들어가서 Server를 찾아 다시시작을 한다.
- 화면에 보이는곳에서 '다시 시작'을 클릭해도 되고,

- net stop과 net start로 다시 시작을 해주어도 된다.

 

/ cmd에서도 C$를 지워본다.
# net share c$ /delete

- 이번에도 lanmanserver를 재시작하면 c$가 다시 살아난다.

 

/ cmd로 숨은 공유를 추가하는 법을 잠깐 살펴보자.
# net share c$=c:\

 

/ 완전 삭제
- 이제 완전 삭제하기 위해 레지스트리를 수정해보자.
- 실행창을 띄워서 'regedit'을 입력해보자.

 

 - 이때 보이는 5개의 묶음을 하이브라고 한다.

 

/ 레지스트리 하이브
- HKEY_CLASSES_ROOT : 파일, 확장자 정보, 프로그램이 연결되는 정보가 들어간다. 근간이 되는 정보들
- HKEY_CURRENT_USER : 현재 활동중인, 로그인 되어있는 사용자 정보
- HKEY_LOCAL_MACHINE : 하드웨어와 소프트웨어 관련 설치 정보, 드라이버 정보
- HKEY_USERS : 서버에 들어있는 사용자 정보
- HKEY_CURRENT_CONFIG : 디스플레이, 프린트 설정

/ SAM
- Security Account Manager
- 사용자와 그룹에 대한 계정정보 데이터베이스를 관리
- 윈도우에 들어있는 것
- 사용자가 로그인을 시도하면 DB와 비교하여 맞으면 로그인하게 해주고 틀리면 로그인을 못하게 한다.
- 액티브 디렉토리에 원격 사용자 인증을 해주는 것이다.

/ LSA
- Local Security Authority
- 모든 계정의 로그인(로컬, 원격)에 대한 인증(검증)
- 모든 자원(파일, 디렉토리)에 대한 접근권한 확인
- 계정이름 + SID(Security IDentifier) 비교 매칭 확인
- 관리자 계정은 SID가 500이다.

/ SRM
- Security Reference Monitor
- SAM이 사용자 계정/pw가 일치하는지 여부를 판단해서 SRM에게 전달하면
- SRM이 SID를 부여한다.

 

/ 레지스트리 편집
- 란만서버의 파라메터에 들어가서 우클릭으로 AutoShareServer 레지스트리를 만들고 값을 0을 준다.(DWORD로 생성)

 

- 란만서버를 재시작하면 IPC를 제외하면 모두 사라져있다.

 

- IPC$막으려면 란만서버를 중지하면 되지만 나도 불편해진다.
- AutoShareWks가 뭔지 검색해보기

- AutoShareServer 레지스트리 생성 후에는 없는것이 기본값이기 때문에 'net share c$=c:\'로 만들어도 란만서버를 재시작하면 사라진다.

 

728x90
728x90

[1,2교시 - 데이터베이스 운영 보안]

/ null 검색
- null은 =이나 !=으로 검색하는것이 아니라 'is null'이나 'is not null'로 조회한다.

select * from emp where comm is not null;
select * from emp where comm is null;

 

/ 연습문제 1
- EMP 테이블에서 sal이 1000보다 큰 사람 중에서 comm이 1000보다 작거나  또는 null인 사람을 출력하시오.

SELECT * FROM emp
WHERE SAL > 1000 AND (comm < 1000 OR comm IS NULL);

 

/ & 사용법
- 쿼리의 특정 부분에 '&변수명'을 입력하면 쿼리를 실행할 때 변수를 입력받을 수 있다.

 

/ ORDER BY 절
- 오름차순 : ASC(기본값)
- 내림차순 : DESC

SELECT * FROM EMP ORDER BY EMPNO ASC;
SELECT * FROM EMP ORDER BY EMPNO DESC;

 

/ SQL 실제 실행 순서
- FROM : 각 테이블 확인
- ON : 조인 조건 확인
- JOIN : 테이블 조인 (병합)
- WHERE : 데이터 추출 조건 확인
- GROUP BY : 특정 칼럼으로 데이터 그룹화
- HAVING : 그룹화 이후 데이터 추출 조건 확인
- SELECT : 데이터 추출
- DISTINCT : 중복 제거
- ORDER BY : 데이터 정렬

/ 집합연산자
- SELECT절은 같은  개수의 컬럼을 조회해야 한다.
- SELECT절의 컬럼의 데이터형이 동일해야 한다.
- 두 집합의 컬럼명은 달라도 상관없다.
- 여러개의 컬럼을 조회할 경우, 모든 컬럼에 대해 연산을 수행한다.
- ORDER BY 문은 맨 마지막에만 사용할 수 있다.
1. UNION : 합집합(중복제거), 정렬O
2. UNION ALL : 합집합(중복포함), 정렬X
3. INTERSECT : 교집합
4. MINUS : 차집합, 쿼리의 순서가 중요하다.

-- UNIONN EXAMPLE
SELECT 'S' mem_type, studno, name, deptno1 FROM STUDENT
union
select 'P' mem_type, profno, name, deptno from PROFESSOR;
-- 연습문제
-- student(table),  101(학과코드1), 201(학과코드2), 복수전공학생의 이름을 출력하시오.

-- INTERSECT 사용
SELECT STUDNO, name, deptno1, deptno2 from STUDENT where deptno1 = 101
INTERSECT
SELECT STUDNO, name, deptno1, deptno2 from STUDENT where deptno2 = 201;

-- 연산자 사용
SELECT STUDNO, name, deptno1 from STUDENT where deptno1 = 101 AND deptno2 = 201;

 


[3,4,5교시 - 정보시스템 진단]

 

# net share
- 공유되어 있는 디렉토리 표시
- $가 붙은 디렉토리 : 숨은 공유, 관리 공유, 관리자를 위해..
- IPC$ : null 세션(이것이 있으면 id/pw인증 없이 접근할 수 있음)
- ADMIN$ : Windows update
- 취약점이 될 수 있어서 제거하는것이 필요함
- 그냥 삭제하면 다시 살아나서 레지스트리를 수정하여 영구적으로 삭제해야 한다.

 

 

/ 레지스트리
- 나중에 하이브(Hive) 5개 속성을 공부하게 된다.

 

/ 실습진행
- 개인pc에 개인공유 폴더를 만든다.
- 교수자가 개인pc에 접근하여 파일을 넣어줄것이다.
- E드라이브에 폴더를 새로 만든 후 속성에 들어간다.

 

 

 

 

- 암호 보호 공유 끄기는 암호없이 들어올 수 있도록 할때 선택한다.
- 지금은 우리끼리 실습이라 끄기로 선택했다.

 


/ 웹서버(Web Server) 설치
- IIS(Internet Information Server)
- Web Server + FTP Server
- Server Manager화면에 들어가 있다.

/ 먼저 웹서비스가 설치되어 있는지 확인한다.
# netstat -anp tcp | find "80"
# netstat -anp tcp | findstr 80

 

/ 서비스 목록도 확인해본다.
# services.msc
- 설치된다면 world wide web어쩌고가 보일텐데 없다.

 

 

/ DDNS
- Dynamic DNS
- 아이피가 바뀌더라도 항상 도메인과 아이피를 연결시켜주어서 고정아이피마냥 도메인을 사용할 수 있다.
- 공유기에서 설정할 수 있다.

/ 설치하기

 

- 여기서 추가할 수 있다.

- 또는 오른쪽 상단 관리에서도 추가 및 제거를 할 수 있다.

 

- 중간에 항목을 보면 BitLocker라는것이 있다.
- BitLocker가 무엇인지 검색해보기

 

- 여기서도 밑에 조금 내려보면 FTP Server가 있는데 자동설치가 아니라 따로 설치해야 한다.
- 지금은 일단 그냥 넘어간다.

 

/ 서버 관리자 달라진 점

- 서버 관리자 왼쪽 상단에 iis가 생겼다.
- 이제 서비스 목록에서도 확인해볼 수 있다.
- 오른쪽 상단의 도구에도 iis항목이 생겼다.

 

- 윈도우버튼 > 윈도우 관리도구 에 'IIS(인터넷 정보 서비스) 관리자'도 생겼다.

 

- cmd에서 'start inetmgr'을 입력하면 IIS 관리자가 뜬다.

 

 

 - cmd에서 netstat으로 80포트 확인이 된다.
# netstat -anp tcp | findstr 80

 

/ 서비스 확인
# services.msc
- 하고 World Wide Publishing 서비스 찾기
- 찾으면 더블클릭 해보기

 

/ 서비스 시작&스탑
# net stop w3svc
# net start w3svc

 

/ IIS 관리자
- 좌측 트리를 확장해보면 사이트가 하나 만들어져 있다.
- 서버(FIRST) 클릭했을때랑 사이트(Default Web Site)를 클릭했을때 나오는 항목이 조금 다른데 광역으로 설정하는것과 특정 사이트에 설정하는 항목이 조금 달라서 그런것이다.
- 사이트를 여러개둘때 80포트가 겹쳐서 포트를 다르게 두기도 하는데 꼭 80포트를 써야겠을때는 속성을 변경하기도 한다.

 

/ 바인딩을 변경해보기
- 바인딩 편집을 해서 80포트 하나로 여러 도메인을 쓸 수 있다.
- 근데 이때는 ip로 접근할 수 없다는 단점이 있다.
- 지금 실습에서는 뭐 굳이 할 필요 없어서 따로 설정안하고 설명만 듣고 넘어간다.

 

/ 기본 설정 눌러보기
- 실제 경로의 : Systemdrive 어쩌고 저쩌고는 'C:\inetpub\wwwroot'이며 웹사이트가 구축되어 있는 기본 홈 디렉토리이다.
- 해당 디렉토리는 IIS를 설치해야 생긴다.

 

/ 사이트 중지&시작
- IIS 오른쪽 부분에서 작동 가능하다.

 

/ index페이지 열어보기
- 오른쪽 부분의 *.80 찾아보기를 클릭한다.

 

/ 고급설정
- 이제까지 여기저기서 보았던 설정들을 확인해볼 수 있다.

 

/ MIME 형식 확인
- 제공할 수 있는 확장자 형식을 확인할 수 있다.

 

/ 기본 문서 확인
- 특별히 정해주지 않아도 접근했을때 기본적으로 화면에 보여주는 페이지이다.
- 가장먼저 접속하게 되는 페이지

 

- 홈 디렉토리에 없는 Default.htm 등이 맨 위에 있어서 iisstart.htm을 맨 위로 올려본다.
- 순서가 있어서 홈디렉토리에 모든 파일이 있을 경우 맨 위에 있는것이 화면에 보여지게 된다.
- 지금은 Default.htm가 홈 디렉토리에 없어서 iisstart.htm가 두번째에 있어도 이것이 제일 먼저 보여지게 된다.


/ 오류 페이지
- 오류 메시지에 대한 페이지를 설정한다.

 

/ HTTP 서버 응답 코드(Response code)
- 200번대 : 성공
    > 200 : 요청 정상 처리
    > 204 : 요청 정상 처리되었지만 컨텐츠는 없다.
- 300번대 : 전달(Redirection)
    > 301 : 요청된 리소스 경로가 바뀌어서 새로운 URI를 사용해야 한다. (영구)
    > 302 : 요청된 리소스 경로가 바뀌어서 새로운 URI를 사용해야 한다. (임시)
    > 304 : Not Modified. 요청된 리소스가 마지막 요청이후로 변경되지 않았다. 캐싱하고 있는 값을 사용해도 된다는 의미

- 400번대 : 클라이언트의 요청이 잘못된 쪽
    > 400 : Bad Request. 클라이언트의 잘못된 요청
    > 403 : Forbidden. 금지된 경로. 접근금지응답. 권한/인증/액세스 거부
    > 404 : Not Found. 클라이언트가 요청한 리소스가 서버에 없음
    > 405 : Method Not Allowed. 허용되지 않는 HTTP메서드를 사용함
- 500번대 : 서버 에러 응답
    > 500 : Internal Server Error. 웹 사이트 서버에 문제가 있음. 서버는 정확한 문제에 대해 더 구체적으로 설명할 수는 없다.
    > 502 : Bad Gateway. 인터넷상의 서버가 다른 서버로부터 유효하지 않은 응답을 받은 경우
    > 503 : Service Unavailable. 서버가 요청을 처리할 준비가 되지 않았다. 유지보수중이거나 과부하가 걸린 경우 발생


/ 웹사이트를 만들어보기
- 홈 디렉토리를 C드라이브 > inetpub에 만든다. 기존의 'wwwroot'를 복사해서 'wwwroot2'를 만든다.

- IIS 좌측 > 사이트 우클릭 > 웹 사이트 추가



- 사이트 이름, 경로, 포트 등을 설정하고 확인을 클릭한다.

- 사이트를 클릭하면 목록에서 확인이 된다.

 

- 기본 홈디렉토리의 'iisstart.htm'파일 수정
- 타이틀이나 다른 내용들을 수정하고 저장해본다.

 

- netstat 확인
# netstat -anp tcp | findstr 80

 

/ ping 확인
- 8080은 방화벽이 아직 열려있지 않아서 tcping이 가지 않는다.

 

- 방화벽 열어주기
# wf.msc

 

- 이제 cmd에서 tcping이 간다.

 

- 브라우저에서도 접근이 된다.



- 브라우저 접근하는 중에 netstat으로 확인해보면 ESTABLISHED가 확인된다.

 

/ 로그 확인
- 'C:\inetpub\logs\LogFiles'에 가보면 W3SVC2 폴더가 생성되어 있다.
- 폴더안의 파일을 열어보면 로그를 확인할 수 있다.
- 'W3SVC1' 폴더는 기존에 IIS를 설치할때부터 있던 기본 사이트에 대한 로그폴더이다. 

 

728x90
728x90

/ 파이어월 74p~117p

/ RACL

/ DACL

/ CBAC

/ 정적 라우팅

/ 동적 라우팅
- 종류
    > OSPF
    > EIGRP
    > RIP
- DVR : 거리, 홉과 관련, Class Full 방식, RIP, EIGRP(시스코장비에만)
- LSR : 속도, 밴드(대역폭), Class less방식, OSPF(효율적)

 

집에가서 정리하기..

 

 

 

 

 

 

 

 

 

 

728x90
728x90

드림핵에서 공부하다가 헷갈려서 정리한다.

아래와 같이 레지스터와 메모리가 있고, Code1번을 실행한다고 할때 rax에 저장되는 값은 무엇일까?

[Register]
rax = 0x31337
rbx = 0x555555554000
rcx = 0x2
=================================
[Memory]
0x555555554000| 0x0000000000000000
0x555555554008| 0x0000000000000001
0x555555554010| 0x0000000000000003
0x555555554018| 0x0000000000000005
0x555555554020| 0x000000000003133A
==================================
[Code]
1: add rax, [rbx+rcx*8]

 

[풀이]

- 먼저 0x로 표현되는 것은 16진수이다.
- rcx는 0x2(16진수로 2)이고 여기에 8을 곱하게 되면 10진수로는 16이다.
- 10진수 16은 16진수로 10이다. (참고링크)
- rbx의 값은 0x555555554000이므로 여기에 0x10을 더하게 되면 0x555555554010이 된다.
- 위의 Memory표를 참고하였을때 0x555555554010의 값은 0x0000000000000003이다.
- 0x31337에 0x0000000000000003을 더하게 되면 0x000000000003133A가 된다. (16진수 이므로 9다음에는 A가된다.)
- 0x000000000003133A는 0x3133A이다.

728x90
728x90

[1,2교시 - 데이터베이스 보안 운영]

/ distinct

/ hash 알고리즘

/ 연결연산자
select ename || job from emp;
- 아래의 내용을 작업할 때 종종 쓰인다.
    > 백업 복구 작업
    > DB 운영관리
    > 튜닝 작업

/ 따옴표 포함하여 데이터를 출력해보기
- select문 안에 따옴표를 표시하기 위해서는 따옴표를 두번쓰면 된다. ''(따옴표따옴표)

select ename||'('||job||') , ' || ename || '''' ||job|| '''' from emp;

 

/ 특정 날짜의 데이터를 조회하는 법
- 검색하고자 하는 날짜를 문자열로 묶고 TO_DATE함수에 인자로 넣어 검색한다.
ex) TO_DATE('검색날짜','형태') = 날짜형태컬럼

SELECT EMPNO, ENAME, HIREDATE FROM EMP WHERE TO_DATE('20071201', 'YYYYMMDD') = HIREDATE;

 

/ BETEEN
- BETEEN은 특정 값보다 작거나 같고(<=) 그리고(AND) 크거나 같은(>=) 값을 조회할 때 쓰인다.
- BETEEN앞에 NOT을 쓰면 BETEEN에 걸리지 않는 값들을 조회한다.

-- 문제1 :(논리연산자 사용시) 급여가 2000보다 크거나 같고 
-- 4000보다 작거나 같은 데이터 출력
select * from emp where sal >= 2000 and sal <= 4000;


-- 문제2 :(BETWEEN AND 사용시) 급여가 2000보다 크거나 같고 
-- 4000보다 작거나 같은 데이터 출력
select * from emp where sal BETWEEN 2000 and 4000;

-- 문제3 : 급여가 2000보다 크거나 같고 4000보다 작거나 같은 데이터를 제외하고 출력
select * from emp where sal NOT BETWEEN 2000 and 4000;

 

/ IN 절
- 아래의 두 줄은 같은 결과를 나타낸다.
- OR절로 =비교연산자를 쓸때에는 IN으로 묶을 수 있다.

SELECT * FROM EMP WHERE SAL = 800 OR SAL = 1600 OR SAL = 3000;
SELECT * FROM EMP WHERE SAL IN (800,1600,3000);

 

/ LIKE 절
- 검색하고 문자열에 %(퍼센트)를 붙인다.
- %가 문자열 앞에 붙으면 (%검색문자열) 검색 문자열로 끝나는 데이터를 검색하고
- %가 문자열 뒤에 붙으면 (검색문자열%) 검색 문자열로 시작하는 데이터를 검색하고
- %가 문자열 양옆에 붙으면 (%검색문자열%) 검색 문자열이 들어가는 데이터를 검색한다.

SELECT * FROM EMP WHERE ENAME LIKE 'A%';

 

/ NULL 조회
- IS NULL, IS NOT NULL
- 아래의 쿼리는 COMM이라는 항목이 NULL인 값을 조회하는 것과 NULL이 아닌 값을 검색하는 쿼리이다.
- NULL은 ''(빈값)인것과는 아예 다르다.

SELECT * FROM EMP WHERE COMM IS NULL;
SELECT * FROM EMP WHERE COMM IS NOT NULL;

 

[여담]
오늘 강사가 본인이 문제낸것을 본인이 못 풀어서 한시간을 쓰시고..
내가 먼저 풀어서 제출한 것은 아예 언급도 없고 다른 사람이 제출한것만 언급했다.

저번에 개발자 경력이 있다고 말씀드렸던 적이 있는데,
그때 이후로 자격지심이 있으신건지 나를 뭔가 무시하시는 느낌이 든다.

아무말도 안하고 가만히 수업을 듣고 있는데 혼자 수업하시다가 '먼저 조금 안다고 우쭐하지 말라'고 종종 말씀하신다.
우쭐한적도 없고 나는 그냥 공부하러 온건데 왜 그러는걸까? 혼자 의식하시나..
문제를 먼저 빨리 풀면 빨리 풀었다고 우쭐하지 말라그러고
안 풀고 기다리면 왜 안푸냐고 뭐라한다.
조용히 학원을 다닐수는 없는것일까...?

위에 정리된 내용도 강사가 설명한대로 적은게 아니라 키워드 대충 몇개 주어지면 내가 검색해보거나 아는선에서 정리하고 있다..
수업도 드럽게 못 가르치신다..

심지어 왕년에 자신이 뭐 잘나갔다 하며 뻐기는 꼰대 스타일이다...
자기한테 잘 보이면 본인이 뭐 어디를 꽂아준다느니..한다..
그래봤자 어디 아웃소싱 업체일텐데...ㅋㅋㅋㅋ 휴

데이터베이스 시간만 되면 스트레스가 이빠이다..하...


[3,4,5교시 - 정보 시스템 진단]

- 정보시스템 진단에서는 윈도우 서버도 다루게 된다.
- 이 과목에서 배우는 내용으로 몇몇 자격증의 내용을 커버할 수 있다.

/ SSO
- Single Sign on
- 하나의 아이디로 여러 곳에 로그인을 할 수 있다.

/ 액티브 디렉토리
- 마이크로소프트 IT 환경에서 업무를 수행하는 데 도움을 주는 데이터베이스이자 서비스 집합

/ 윈도우 서버 머신 만들기

- 윈도우 서버 2012까지는 이제 지원이 안된다.
- 윈도우 NT는 처음에 나온 버전이다.
- 이후에 윈도우 2008 등 년도가 붙은 버전으로 나왔다.
- 버전이 높아질수록 무겁다. 사양이 좋기 때문에

- 윈도우 서버는 설치하고 나면 용량을 엄청 차지하게 된다.
- 따라서 여유롭게 60G정도 여유를 두고 설치를 하는것이 좋다.
- 학원 컴퓨터의 C드라이브가 SSD라서 여기에 설치하면 제일 좋지만 잔여용량이 별로 없고
- D드라이브가 용량이 많아서 여기에 설치하기로 하였다.

- 60G로 잡아도 바로 60G가 잡히지 않는다.
- 싱글로 진행한다.

- UBS, 사운드 카드, 프린터는 안 쓰니까 삭제한다.

- 껍데기 설치단계에서 CD os를 넣을 수 있다.

 

- 부팅할때 만약 'press any key Enter'가 나타나면 걍 아무키나 눌러주면 된다.

- 위에 표시한것에서 위에것을 선택하면 CLI버전으로 설치가 된다.
- 라이센스 허용하고 다음

- 파티션 설정없이 그냥 진행한다. 바로 Next!

- 설치멍 Time..

- 이제 설치를 진행하면 관리자를 설정하라는 화면이 나온다.
- 관리자명 : administrator
- 패스워드 : P@ssw0rd

- 패스워드 작성 규칙은 개인정보 기술적, 관리적 보호조치기준에 맞추어 적용해야 하는것이 있다.
- 법적인 요구사항은 3가지가 있다.
    > 1. 영문 대문자, 영문 소문자, 숫자, 특수문자 2종류 이상 조합 / 최소 10자리 이상
           또는 3종류 이상이면 8자리 이상
    > 2. 연속적인 숫자나 생일, 전화번호 등 추측이 쉬운 개인정보, 아이디는 사용하지 말것
    > 3. 비밀번호에 유효기간 설정하여 최소 반기별 1회 이상 변경할것
    > 4. 동일 비밀번호 사용 제한 (history)

 

-vm안의 가상 서버가 반응하게 하려면(로그인 하려면) 컨트롤+알트+Insert를 누르면 된다.
- 또는 아래 이미지에 표시한것을 클릭하면 된다.

- 그러고 나서 창을 아예 닫으면 된다.

 

- 지금 화면이 작은데.. 설정하겠다.

- 그러면 가상 서버 안에 우측하단에 DVD 어쩌고 하는 네모칸이 뜬다. 그것을클릭한다.

- 또는 폴더안의 내 PC에서 찾는다.


- 설치는 계속 계속 next이다.

 

- 바탕화면에서 우클릭 > 퍼스널라이즈

- 그럼 바탕화면에 내컴퓨터 아이콘이 생긴다.

- 컴퓨터 이름을 바꾸겠다.
- 내컴퓨터 아이콘 우클릭 > 프로퍼티

 

- 하고나면 리부팅 하라고 나오는데 나중에 한다고 한다.

- cmd를 열고 ipconfig를 해본다.

 

- cmd에 netstat -anp tcp | findstr 3389를 쳐본다.
- 같은 명령어 옵션으로는 'netstat -anp tcp | find "3389" '이다.

- 3389가 안뜨는데 3389는 원격데스크톱 포트이다.
- 3389는 워낙 노출이 되어있어서 나중에 포트를 바꾸는 실습도 할것이다.
- 리눅스에서 netstat에 있는 p는 프로세스였는데 윈도우에서는 프로토콜이다.
- 윈도우에서 프로세스를 검색하려면 -b 옵션을 쓴다.

- 원격 서비스를 활성화 할것이다.
- 윈도우 서버는 보안때문에 원격이 기본으로는 활성화 되어있지 않다.

 

- ok누르고 다시 cmd에서 3389확인하면 올라오는것을 확인할 수 있다.

 

- wf.msc : 윈도우즈 파이어월. 마이크로소프트콘솔

 

- 자동으로 방화벽 설정이 들어가있는것을 확인할 수 있다.

- wf.msc는 이제 자주 쓸테니까 기억해두기

- 아이피가 만약 169로 되어있다면 아이피를 잘못할당 받은것이다.
- VMware에 dhcp가 체크 해제되어 있으면 이런일이 발생할 수 있다.

- cmd에서 네트워크 설정 호출하는 명령어 : ncpl.cpl

- 컴퓨터 아이콘을 우클릭하여 디스에이블 했다가 인에이블한다.

- cmd에서 핑 갯수를 조절하는 법. -n 옵션을 쓴다.

- nslookup도 확인해본다.

- 이번에는 호스트pc에서 가상 윈도우 서버쪽으로 ping을 던져본다.
- 윈도우는 기본적으로 ping이 막혀있기 때문에 처음에는 ping이 안간다.
- 방화벽 설정을 열어 허용해주자.

# wf.msc

 

- 위 사진에서 우클릭하여 인에이블인을 해주면 옆에 체크가 생기며 허용이 된다.

 

- 이제 익스플로러를 띄운다.
- 향상된 보안 옵션이 켜져있다고 나온다.

- 네이버를 들어가보면 아래 알림이 뜬다.
- 보안이 빡시게 되어있어서 어디를 옮겨다니기가 힘들다.

 

- 보안옵션을 꺼보자.

 

 

- 인터넷을 키면 경고가 뜨지만 네이버 등 다른 url을 입력하면 바로 접속이 가능하다.

 

 

- 이제 윈도우 버튼 우클릭 > 컨트롤 패널을 클릭하여 제어판으로 간다.

- 서버는 꺼지지 않도록 하고, 실습이므로 화면보호기도 뜨지 않도록 설정한다.

 

- 네트워크 설정
# ncpa.cpl
- 컴퓨터 모양에서 우클릭 > 프로퍼티스를 클릭한다.

- 아이피는 아래와 같이 설정한다.

- 인터넷을 디스에이블 했다가 다시 인에이블 하고 ipconfig로 확인해본다.

- 호스트pc에서 ping도 보내보고 3389로 tcping도 보내본다.

- 윈도우 서버에도 tcping을 설치하기
- 호스트pc에 있는 tcping파일을 윈도우 서버의 system32폴더안에 넣는다.

- tcping이 되는 모습

 

- 폴더에서 확장자가 보이지 않으면 보안이 취약할 수 있다.

 

- 서비스 목록 띄우기
# services.msc

- 서비스 목록 띄운 후 서비스 스풀러를 찾는다.
- 자동으로 시작되어 있는데 스톱시킨다.
- 우클릭으로 들어가서 자동시작도 디스에이블드 시킨다.
- 프린터 폴더를 공유하는것인데 취약점이 될 수 있다.

 

 

- 리모트 레지스트리도 자동시작을 디스에이블드 한다.
- 원격으로 레지스트리를 수정할 수 있어서 취약점이 될 수 있다.

 

- 아래 두개도 취약점이었는데 시작은 안되어 있다.

 

- 텔레포니도 디스에이블드 한다.

 

/ 리부팅 하는 법
- 윈도우는 시간을 명시해야 한다.
# shutdown -r -t 0

 

- 제어판으로 간다.

 

- 이렇게 한글 패치를 하고나면 로그아웃을 하고 다시 로그인한다.
- 그러면 영어가 한글로 나온다.

- 나는 한글이 되었지만 만약 한글이 안된경우 다시 언어옵션에 들어가서 프라이머리 랭귀지에 들어간 후 로그인한다.

 

- 리모트로 호스트에서 서버pc에 접근해보기
# mstsc

 

- 연결 설정의 다른 이름으로 저장은 파일형태로 로그인 설정을 저장한다.
- pc방 등에서는 절대 하면안된다.

- 로컬리소스 탭의 자세히를 눌러서 설정을 하면 호스트pc의 특정 폴더를 서버pc와 공유할 수 있다.
- 하지만 실습에서는 하지 않는다.

- 그러면 VMware의 로그인이 풀리고 원격이 접속된다.
- 지금 관리자는 하나만 접속할 수 있기 때문이다.

- 원격 접속 후
'netstat -anp tcp | findstr 3389'를 해보면 ESTABLISHED가 뜬다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

[1,2교시 - 데이터베이스 보안 운영]


[3,4,5교시 - 시스템 보안 운영]

내부 평가

728x90
728x90

리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트로 구분한다.

세그먼트란 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것인데, 크게
- 코드 세그먼트
- 데이터 세그먼트
- BSS 세그먼트
- 힙 세그먼트
- 스택 세그먼트
로 구분된다.

메모리에 대한 권한은 읽기, 쓰기, 실행이 존재한다.

 

/ 코드 세그먼트
- 실행 가능한 기계 코드가 위치하는 영역
- 텍스트 세그먼트(Text Segment)라고도 불린다.
- 읽기, 실행 권한이 부여되어있다.
- 쓰기 권한이 있다면 공격자가 악의적인 코드를 삽십하기가 쉬워지므로, 대부분의 현대 운영체제는 이 세그먼트에 쓰기 권한을 제거한다.
- 함수가 컴파일 되었을때 기계 코드로 변환되면 코드 세그먼트에 위치하게 된다.

/ 데이터 세그먼트
- 컴파일 시점에 값이 정해진 전역 변수 및 전역 상수들이 위치합니다.
- 읽기 권한이 부여된다. (CPU가 이 세그먼트의 데이터를 읽을 수 있어야 하므로)
- 쓰기가 가능한 세그먼트와 쓰기가 불가능한 세그먼트로 분류된다.
- 쓰기가 가능한 세그먼트 :
    > data 세그먼트
    > 전역 변수와 같이 프로그램이 실행되면서 값이 변할 수 있는 데이터들이 위치한다.
- 쓰기가 불가능한 세그먼트 : 
    > rodata(read-only data) 세그먼트
    > 값이 변하면 안되는 데이터들이 위치합니다.
    > 전역으로 선언된 상수가 여기에 포함된다.

/ BSS 세그먼트
- 컴파일 시점에 값이 정해지지 않은 전역변수가 위치하는 메모리 영역이다.
- 개발자가 선언만 하고 초기화하지 않은 전역변수 등이 포함된다.
- 프로그램이 시작될 때, 모두 0으로 값이 초기화된다.
- 이 세그먼트에는 읽기, 쓰기 권한이 부여된다.

/ 힙 세그먼트
- 힙 데이터가 위치하는 세그먼트이다.
- 스택과 마찬가지로 실행중에 동적으로 할당될 수 있다.
- 리눅스에서는 스택 세그먼트와 반대 방향으로 자란다고 표현한다.
- C언어에서 malloc(), calloc() 등을 호출해서 할당받는 메모리가 이 세그먼트에 위치하게 된다.
- 일반적으로 읽기,쓰기 권한이 부여된다.

/ 스택 세그먼트
- 프로세스의 스택이 위치하는 영역이다.
- 함수의 인자지역 변수와 같은 임시 변수들이 실행중에 여기에 저장된다.
- 스택 세그먼트는 스택 프레임(Stack frame)이라는 단위로 사용된다.
- 함수가 호출될 때 생성되고, 반환될 때 해제된다.
- 특정 프로세스가 얼마 만큼의 스택 프레임을 사용하게 될 지 미리 계산하는것은 일반적으로 불가능하므로
운영체제는 프로세스를 시작할 때 작은 크기의 스택 세그먼트를 먼저 할당해주고, 부족해 질 때마다 이를 확장해준다.
- 스택이 확장될 때 기존 주소보다 낮은 주소로 확장되기 때문에 '아래로 자란다'라는 표현을 사용한다.
- 읽기, 쓰기 권한이 부여된다.

 

 

 

728x90
728x90

[1,2교시 - 데이터베이스 보안 운영]

/ 배우는 것
- DB 운영 관리하기
- DB 보안 관리하기
- DB 장애 처리하기
- DB 백업 복구하기
- DB 튜닝 확장하기

/ 어떤 목차가 어려울까?
- '장애 처리하기'와 'DB 튜닝 확장하기'부분이 어려울 수 있지만 중요한 부분이다.

/ DB 튜닝
- 데이터베이스의 응용, 데이터베이스 자체, 운영체제의 조정 등을 통해 최적의 자원으로 최적의 성능을 얻을 수 있도록 개선하는 작업을 말한다.

 

 

강사가 자꾸 혼자서 말하다가 화를 낸다...
DB운영 관리를 왜 배우는지 무엇인지만으로 2시간을 모두 썼다..

귀에서 피난다...

 


[3,4,5교시 - 정보 시스템 진단]

/ 진단이 필요한 이유
- 취약점을 찾으려고 진단을 하는 것

/ 취약점(Vulnerability)
- 자산의 잠재적 속성이나 처한 환경은 위협의 이용대상이다.
- 손실 발생 가능한 약점
- 위험(Risk) : 자산의 손실이나 손상이 발생될 수 있는 잠재성, 사건
    > ISO 17799
- 위협(Threat) : 자산에 손실을 발생시킬 수 있는 원인, 행위자, 사건
- 자산(Asset) : 보호해야할 대상. 정보, H/W, S/W, 시설, 인력, 기업의 이미지.. 등등
     > 정보보호대책(safeguard)

/ 전체 위험
- 위협 * 취약점 * 자산

/ 잔여위험
- Residual Risk
- 전체 위협 - 대책

/ OWASP TOP 10
- Open Web Application Security Project
- OWASP-ZAP 보안도구 : 프로그램을 만들고나서 OWASP TOP 10에 대응되도록 만들어졌는지 테스트 하는 도구

/ 모의해킹 도구
- Burp-Suite
- WebGoat
- SecurityOnion (Snort IDS), OS

/ CVE
- Common Vulnerabilities Exposure
- 취약점 리스트
- mitre에서 만든 리스트
- CVE-2022-0005 : 취약점리스트-발견된년도-해당년도에발견된순서

/ CWE
- Common Weakness Enumeration
- 보안 약점 리스트
- 보안 약점이 취약점보다 좀 더 넓은 범위이다.
- mitre에서 만든 리스트
- CWE는 CWE-숫자숫자숫자 형태라 시험에 잘 안나온다.

/ CCE
- Common configuration Enumeration
- 시스템에서 취약한 설정에 대한 점검 리스트, 항목

/ CVSS
- Common Vulnerability Scoring System
- 공통 취약점 등급 시스템
- 취약점 위험도를 계산해 주는 솔루션, 시스템
- mitre에서 만든 리스트

/ 크롤링
- 해당 사이트의 정보를 추출해내는 프로그램
- robots.txt : 대응하기 위한 설정
    > 웹 사이트에 크롤링봇이 접근하는 것을 방지, 설정, 규약
    > googlebot, naverbot

/ robots.txt
- 웹서버의 루트 디렉토리에 위치하게끔 해야 한다.
- ex) httpd라면 /var/www/html에 있어야 한다.
- 구글의 robots.txt : https://www.google.co.kr/robots.txt
- 네이버의 robotx.txt : https://www.naver.com/robots.txt
    > 네이버는 파일형태로 다운로드 된다.
    > Disallow : / - 모든 경로에 대해 허용하지 않음
    > Allow : /$ - 파일들에 대한 크롤링 허용
- 해당 설정값에 대해서 서술하시오

더보기

useragent : yeti  <- 네이버의 크롤릿 봇
useragent : googlebot <- 구글 봇 허용
allow : / <- 모든 경로에 대해 허용

- 해당 설정값에 대해서 서술하시오

더보기

useragent : googlebot-image <- 구글봇 이미지
disallow : /admin/ <- 여기는 접근 못한다.
disallow : /*.pdf$/ <- 모든 pdf확장자는 접근불가

 

728x90
728x90

[1,2교시]

내부 평가날

시험은 대충 치루었다.

수업자체가 재미있지 않아서 시험준비도 잘 안된듯..

기대했던 수업이었는데 많이 아쉬웠다.

 


[3,4,5교시 - 시스템 보안 운영]

내일 모레 시험이라 그동안 배운 내용을 리뷰하였다.

오늘은 dhcp를 리뷰하였다.

 

 

 

 

 

 

728x90
728x90

수업은 FIRE WALL 74p부터 본격적으로 시작된다.

/ GNS
- 이름을 준대로 CRT에서 호스트네임으로 보인다.
- 바로 콘솔모드로 접근된다.

/ 라우터에서 범위를 줘서 모두 셧다운 하기
# int ran f1/0 - 15
# sh

/ 와일드 카드 마스크를 쓰는것
- ACL
- EIGRP
- OSPF

/ ICMP 타입
- 0 : 핑에 대한 응답 패킷
- 3 : 목적지 도달 불가
- 8 : 핑 패킷
- 11 : 시간 초과

/ 핑 코드
- ! : 핑이 성공함
- . :  지정된 시간내에 핑 패킷이 돌아오지 않음. 타임 아웃 됨
- U : 목적지 도달 불가 메시지를 받음
- Q : 소스웬치(목저지가 혼잡함)
- M :  전송도중 패킷분할이 필요하나 분할할 수 없음
- ? : 알 수 없는 패킷 타입

 

728x90

+ Recent posts