전체 글579 보안 공격 보안 공격은 무엇인가 보안 공격은 RFC 2828에 따라 분류하면 소극적 공격과 적극적 공격으로 나눌 수 있다 소극적 공격은 시스템으로부터 정보를 획득하거나 사용하려는 시도로, 시스템 자원에는 영향을 끼치지 않는다 적극적 공경은 시스템 자원을 변경하거나 시스템 작동에 영향을 끼치는 공격 형태를 말한다. 소극적 공격 전송 정보에 대한 도청이나 감시를 의미한다 공격자의 목표는 전송 중인 정보를 취득하는 것이다. 공격 유형 메시지 내용 갈취 트래픽 분석 - 암호화를 해도 트래픽 분석 가능 메시지 유형 관찰 통신자의 접속 위치와 신원 파악 교환 메시지 빈도 측정 메시지 크기 확인 소극적 공격에서는 공격자가 실제로 데이터를 변경하지 않는다 공격을 당했는지 탐지하기가 어렵다 송신자나 수신자는 제 3자가 메시지를 읽.. Computer Science/Security 2023. 3. 27. 컴퓨터 보안 개념 - CIA Triad(정보 시스템의 3대 보안 목적) 컴퓨터 보안 개념 - CIA Triad (정보 시스템의 3대 보안 목적) 컴퓨터 보안이란 : 정보 시스템 자원의 무결성 가용성 기밀성을 보전하는 것을 목표로 제공 된 자동화 된 정보 시스템 보호 CIA Triad - 컴퓨터 보안의 3요소 (정보 시스템의 3대 보안 목적) 기밀성 정보 접근과 공개에 대해 합법적인 제한 조건을 지키는 것이다 개인 프라이버시와 소유권에 대한 정보를 보호하는 수단이 포함 된다 기밀성이 파괴 되면 정보가 부정하게 공개 된다 데이터 기밀성 개인 정보나 기밀 정보를 부정한 사용자에게 이용/노출 되지 않도록 하는 것 프라이버시 개인이 자신과 관련 된 정보를 통제 할 권리 무결성 부적절한 정보 수정이나 정보 파괴를 막는 것이다 정보 부인 방지와 합법성을 확실히 하는 것도 포함 된다 무결.. Computer Science/Security 2023. 3. 27. 명령형 언어 명령형 언어란 무엇인가 폰 노이만 구조라 불리는 컴퓨터 구조를 기반으로 동작한다 컴퓨터가 수행해야하는 연속적인 명령문의 집합으로 구성된 언어이다 컴퓨터에게 실행되어야 할 정확한 순서와 방법을 지시한다 변수, 연산자, 제어구조 등을 사용하여 프로그램을 작성한다. 폰 노이만 구조와 명령형 언어가 친한 이유 명령형 언어는 폰 노이만 구조 기반으로 만들어졌기 때문에, 명령어를 순차적으로 실행하며 컴퓨터가 수행해야 할 작업을 처리하는 것이 가능하다 폰 노이만 구조는 내장형 메모리 구조를 가지고 있다 즉 명령어와 데이터가 같은 메모리에 저장되어 있다 이를 통해 명령어와 데이터를 동일한 방식으로 다룰 수 있으며, 명령어를 일관성 있게 처리할 수 있게 된다 사담 폰 노이만 구조는 병목 현상이라는 문제를 가지고 있지만,.. Computer Science/프로그래밍 언어론 2023. 3. 26. 하이브리드 기법이란? 하이브리드 기법이란 컴파일 기법과 해석 기법을 혼합한 형태로 두 가지의 장점을 갖춤 인터 프리터에 비해 빠르고, 소스 코드 노출의 우려가 적다 운영체제에 종속 되지 않는다 고급 언어로 작성된 프로그램을 쉽게 해석 할 수 있도록 중간 코드 형태로 번역 번역 된 중간 코드 형태의 프로그램을 해석하여 실행 예시. Java 바이트 코드라고 하는 중간 코드로 번역 운영체제마다 별도로 존재하는 JVM이 바이트 코드를 실행 레퍼런스 컴파일(Compile) 기법은 무엇인가 하이브리드 언어의 장점 Computer Science/프로그래밍 언어론 2023. 3. 26. 해석 기법이란? 해석 기법이란? 고급 언어로 작성된 프로그램을 바로 실행하는 장점이 있다 인터프리터는 프로그램을 한 줄씩 실행하며, 소스 코드를 즉시 실행 코드로 변환하고 실행하는 방식을 사용합니다. 인터프리터는 컴파일 과정을 거치지 않기 때문에, 코드 생성과 최적화 단계를 합친 것처럼 보일 수 있습니다. 하지만 인터프리터는 소스 코드를 한 번에 분석하고 최적화하지 않고, 실행 시간에 소스 코드를 직접 해석하여 실행합니다. 즉 번역 된 결과를 중간 코드나 기계어로 저장하지 않고 바로 실행하는 것입니다 인터프리터의 장점은 다음과 같습니다: 개발 과정이 빠르고 쉽습니다 컴파일 과정이 없기 때문에 수정 후 바로 실행해 볼 수 있어 개발이 더 빠르게 진행됩니다. 플랫폼 독립적입니다 인터프리터는 소스 코드를 실행 시간에 해석하므.. Computer Science/프로그래밍 언어론 2023. 3. 26. 컴파일(Compile) 기법은 무엇인가 컴파일 기법이란 고급 언어로 작성된 프로그램을 바로 실행 할 수 있는 프로그램으로 변환하는 방식이다 소스 코드로 작성해 놓은 것을 컴퓨터가 알아들을 수 있는 언어로 바꾸는 과정 컴퓨터는 바이너리 즉 기계어만 이해한다 소스 코드를 목적 프로그램으로 변경 시켜야 한다 번역이 완료되면 빠르게 실행 시킬 수 있는 장점이 있다 컴파일 단계 어휘 분석(lexical analysis) 원시 프로그램을 토큰 단위로 자르고, 토큰과 관련된 정보를 구문 분석 단계로 전달 한다. 구문 분석(syntax analysis) 어휘 분석 단계에서 전달 받은 토큰들이 문법적으로 옳은지 검사 오류가 없다면 파스 트리라 불리는 구조를 생성한다 중간 코드 생성 단계 중간 코드 소스 코드를 기계어로 번역하기 전, 번역기가 이해가 쉬운 추상.. Computer Science/프로그래밍 언어론 2023. 3. 26. 최장 프리픽스 매칭 (Longest Prefix Matching) with CIDR 최장 프리픽스 매칭 (Longest Prefix Matching) with CIDR 최장 프리픽스 매칭 (Longest Prefix Matching)란 최장 프리픽스 매칭(Longest Prefix Matching)은 IP 라우팅에서 많이 사용되는 알고리즘 중 하나입니다. IP 라우팅에서, 최장 프리픽스 매칭은 패킷의 목적지 IP 주소를 라우팅 테이블의 엔트리와 비교하여 가장 긴 공통된 접두어(prefix)를 찾아내는 것입니다. 이를 통해 패킷이 어떤 경로로 전달되어야 하는지 결정할 수 있습니다. 최장 프리픽스 매칭은 라우터가 목적지 주소를 가장 효율적으로 찾아내기 위해 역할을 합니다. 최장 프리픽스 매칭 사용 방법 예를 들어, 라우팅 테이블에는 다음과 같은 엔트리들이 있다고 가정해봅시다. 10.0.0... Computer Science/네트워크 2023. 3. 25. NAT Traversal NAT Traversal(네트워크 주소 변환 순회) NAT Traversal은 네트워크 주소 변환(NAT)을 사용하는 네트워크에서 직접적인 통신을 가능하게 하는 기술입니다. NAT는 프라이빗 IP 주소를 사용하는 내부 네트워크와 공인 IP 주소를 사용하는 외부 네트워크를 연결하는데 사용됩니다. 하지만 NAT를 사용하는 네트워크에서는 직접적인 통신이 어려운 경우가 있습니다. 이러한 제약을 극복하기 위해 NAT Traversal은 다양한 기술들을 사용하여 네트워크 주소 변환(NAT)을 통과하여 직접적인 통신이 가능하게 합니다. 우리 NAT가 무슨 문제가 있다는거야!?! NAT(Network Address Translation)은 내부 네트워크에서 프라이빗 IP 주소를 사용하여 인터넷 접속합니다. 이 때 NA.. Computer Science/네트워크 2023. 3. 25. 학교 공지 사항 자동화를 해보자 - 5 학교 공지 사항 자동화를 해보자 - 5 Intro. Github Action… 완전 혜자다 Github Action은 깃허브에서 제공하는 CI/CD 등의 자동화를 위해 지원하는 기능이다. 나의 경우, Crontab 용도로 사용 할 것이다. 기존에 구글 클라우드 등에서 스크립트를 계속 돌며, 시간을 체크 했는데 자원 낭비라 생각이 들어, Github Action Crontab을 생각했다 지금 만들고 있는 간단한 스크립트 위주의 봇 경우 깃허브 액션으로 돌리면 클라우드 비용도 안들고 괜찮은 듯하다 진행 방법 1. 레퍼지터리에 .github/workflows 생성 .github/workflows 디렉터리를 생성하고 auto.yml로 파일을 생성한다. 2. auto.yml 내용 채우기 name: Auto Pos.. 프로젝트/사이드 프로젝트 2023. 3. 23. 학교 공지 사항 자동화를 해보자 - 4 학교 공지 사항 자동화를 해보자 - 4 Intro. 이제 메일로 전송해보자! 이메일에 담을 내용은 이제 모두 준비가 되었다! smtp와 email 라이브러리를 사용하면 파이썬으로 구글 이메일을 전송 할 수 있다. 주의 해야 할 점은 구글 기준으로 앱 비밀번호를 생성해서 넣어야 한다. 일반 비밀번호를 입력하면 에러가 발생한다 또 신경 썼던게 있다면, 환경 변수로 내 개인 정보를 감춘 것이다. 나중에 github action을 쓸 때도 마찬가지고, 개인 정보를 추상화하는 것은 기본이기에 os.environ을 사용해서 개인 정보를 숨겼다 아래 코드를 보면 알 수 있지만, 보내는 사람,받는 사람, 제목 등을 입력 할 수 있다. 앞서 말한 앱 비밀번호만 유의하자 예외 처리는 메일 발송 과정에서 전송 실패 등의 이.. 프로젝트/사이드 프로젝트 2023. 3. 22. 학교 공지 사항 자동화를 해보자 - 3 학교 공지 사항 자동화를 해보자 - 3 Intro. 사업단 공지 데이터 추출을 해보자 앞선 학과 공지와 같이 리스트 형태로 공지를 뿌리고 있음을 확인 할 수 있다. 보다보니 게시판 형태라 이런 패턴으로 데이터를 뿌리는 것은 당연하다 역시나 개발자 도구를 켜서 CSS 셀렉터를 추출해서, 리스트의 위치를 특정해야 한다 html 코드를 보니 역시나 tr로 뿌리고 있다. 대신 td 태그 내의 내용물이 조금씩 다르다 학과 공지 사항에서 데이터를 추출한 것과 비슷한 맥락으로 코드를 짜면 될거 같다 코드 import requests import re from bs4 import BeautifulSoup from datetime import datetime url = 'https://www.sojoong.kr/www/.. 프로젝트/사이드 프로젝트 2023. 3. 22. 학교 공지 사항 자동화를 해보자 - 2 학교 공지 사항 자동화를 해보자 - 2 Intro. 학과 공지 사항에서 데이터 추출 해보자 위와 같이 리스트 형태로 공지를 뿌리고 있음을 확인했다. 먼저 개발자 도구를 켜서 CSS 셀렉터를 추출해서, 리스트의 위치를 특정해야 한다 tr 태그 내에 notice 클래스 안에 공지들이 들어 있음을 볼 수 있다 오른쪽 마우스 클릭을 해서 css 셀렉터를 추출한다 코드 import requests import re from bs4 import BeautifulSoup from datetime import datetime # 웹페이지에서 데이터를 가져올 URL url = 'https://sw.jnu.ac.kr/sw/8250/subview.do' today = str(datetime.now().date()) toda.. 프로젝트/사이드 프로젝트 2023. 3. 22. 이전 1 ··· 40 41 42 43 44 45 46 ··· 49 다음