
overthewire#0
2024. 5. 7. 12:08
▶ InfoSecurity
SSH -> Secure shell protocol1. 네트워크 프로토콜2. pc와 pc간 퍼블릭 네트워크 이용시 보안적으로 안전하게 이용하기 위해 사용3. 데이터 전송, 원격 제어에 많이 사용4. ssh의 경우 안전한 채널 구성 후 정보 교환5. 비밀번호가 아닌 public key, private key 를 통해 암호 복호첫번째 시도* 그냥 냅다 ssh 호스트 url 찍어버림-> 당연히 안됨 : 공개키 사용권한 거부당함!!! You are trying to log into this SSH server on port 22, which is not intended. : 포트 22로 시도했단 얘긴듯제시한 포트는 2220임== 그럼 포트 변경해보자두번째 시도* !!! You are trying to log i..
섹션 1. FTP 프로토콜
2023. 12. 19. 17:51
▶ InfoSecurity/IT 해킹과 보안
파일 트랜스퍼 프로토콜 : 파일을 전송하는 하나의 어떤 통신 기업 소켓 -> 하나의 전화 / 연결하도록 도와주는 소프트웨어 / 거는용 받는용 따로있음 전화를 주고받는 방식과 굉장히 유사 (서버 - 클라이언트) 운영체제가 만듦 / 운영체제로부터 빌려서 사용 소켓을 생성한다 -> 전화기를 빌린다 생성 이후, 연결을 시도하고 허락이 뜰 때까지 대기, 이후 받을 때 conn 이라는 객체가 떨어짐 이 객체를 갖고 데이터를 받거나 보내거나 / 즉 받을 때 연결이 받아짐 포트 = 소켓의 번호 / 웹통신시 보통 80, 443을 씀 socket.socket() -> 개통 s.connect(addr) -> 접속 (전화걸기) - 커넥트를 했다 = 서로간에 주고받았다 s.send('GET /\n".encode()) -> 데이..

섹션 0. 파이썬 기초
2023. 12. 19. 15:51
▶ InfoSecurity/IT 해킹과 보안
conda -> 패키지를 관리하는 기능 #conda를 사용한 환경 생성(이름, 환경 버전 정보) $ conda create -n py3 python=3 #환경 활성화 (mac의 경우 앞에 source) $ activate pyt3 #환경 비활성화 (mac의 경우 앞에 source) $ deactivate ## 환경 저장 및 로드 #패키지를 YAML 파일에 저장 $ conda env export> environment.yaml # 같은 이름의 새로운 환경 생성 $ cond env create -f enviroment.yaml $ pip install // 패키지 설치 $ conda install // 데이터 관련 패키지 설치 # 설치 리스트 확인 $ conda list py3 # 설치 환경 리스트 $ co..
섹션 3. Concurrency, CPU Bound vs I/O Bound
2023. 12. 18. 16:46
▶ InfoSecurity/병렬프로그래밍
키워드 :: Concurrency (동시성) 동시성 1. CPU 가용성 극대화 위해 병렬성의 단점 및 어려움을 소프트웨어 레벨에서 해결하기 위한 방법 2. 싱글코어에 멀티스레드 패턴으로 작업 처리 3. 동시 작업에 있어 일정량 처리 후 다음 작업 4. 제어권 주고 받으며 처리, 병렬적은 아님 동시성 논리적, 동시 실행 패턴, 싱글코어, 멀티코어에서 실행 가능, 한 개의 작업 공유 처리, 디버깅 매우 어려움, Mutex, deadlock 병렬성 물리적, 물리적으로 동시싫생, 멀티코어에서 구현 가능, 주로 별개의 작업 처리, 디버깅 어려움, OpenMp, MPI, CUDA 키워드 :: Blocking IO, Non-Blocking IO, Sync, Aync Blocking IO 1. 시스템 콜 요청시 -> ..
섹션 2. 병렬성과 멀티프로세싱
2023. 12. 18. 16:21
▶ InfoSecurity/병렬프로그래밍
키워드 :: 프로세스, 스레드, 병렬성 스레드 -> 데이터를 공유하던 방식 프로세서 -> 또 다른 패키지를 지원받아서 공유 멀티프로세싱은 오버헤드가 크기 때문에 운영체제 지식 필요 Parallelism = 병렬성 1. 완전히 동일한 타이밍에 태스크 실행 2. 다양한 파트로 나눠서 실행 3. 멀티프로세싱에서 CPU가 1코어인경우 만족하지않음 4. 딥러닝, 비트코인 채굴 등 프로세스 스레드 독립된 메모리 공유 메모리 많은 메모리 필요 적은 메모리 좀비(데드)프로세스 생성 가능성 좀비(데트)스레드 생성 쉽지 않음 오버헤드 큼 오버헤드 작음 생성/소멸 다소 느림 생성/소멸 빠름 코드 작성 쉬움 / 디버깅 어려움 코드 작성 어려움 / 디버깅 어려 스레드는 공유 / 프로세스는 공유 X 프로세스 --> 각자 처리하고..
섹션 1. Multithreading 멀티스레딩
2023. 12. 15. 16:54
▶ InfoSecurity/병렬프로그래밍
프로세스 운영체제에서 할당받는 자원의 단위 / CPU 동작 시간, 공간 = 독립적 코드 영역과 데이터 영역이 독립적 -> 스택영역, 힙영역 최소 1개의 스레드 보유 파이프, 소켓, 파일 등을 사용해서 프로세스간 통신 context switching cost -> 실행시 약간의 idle 타임이 있을 수 있어 코스트가 높다 ==> 프로세스끼리의 데이터 교환 스레드 프로세스 내 실행 흐름 단위 프로세스의 자원을 사용 스택만 별도로 사용, 나머지는 공유 (데이터, 코드, 힙) => 즉 메모리 공유 한 스레드가 다른 스레드에 영향을 끼칠 수 있음 -> 고로 동기화 문제 주의 멀티스레드 한 개의 단일 어플리케이션 -> 여러 스레드로 작업후 나중에 작업처리 시스템 자원 소모 감소, 통신부담 감소 / 디버깅은 어려움 ..

섹션 3. VPN과 네트워크 보안 솔루션
2023. 12. 14. 15:56
▶ InfoSecurity/네트워크
Virtual Private Network : 사설망 -> LAN(물리적으로 통제 가능한) 왜 쓰는가 ? 보안성이 요구되는, 물리적으로 통제되는 경우 사용 프라이빗 네트워크를 확장해서 쓰면 좋겠지만 그게 불가능 - 퍼블릭망을 프라이빗하게 만들어주는 기능 방법 -> 암호화 + 인증 / 무결성-> 해시알고리즘, 기밀성->디지털서명기술 VPN -> 터널링 (이루고 있는 기술 : 무결성, 기밀성) 장점 : 저렴, 높은 보안성 단점 : 물리적으로 보호받지 못함, 암호화된게 해독되면 뚫릴 수 있음 IP Security -> IPv4, IPv6 둘 다 적용 GtoG(Gateway), GtoE(EndPoint) 등 있음 IPSec 지원시 SG (Secure Gateway) = VPN Gateway GtoG 등 연결한다..

섹션 2. 부하분산 시스템 작동원리
2023. 12. 14. 12:36
▶ InfoSecurity/네트워크
공유기 = L4 스위치? : NAT가 된다고 L4 스위치인건 아님(애매) L4 스위치 = 포트번호를 기반으로 스위칭 : 주로 부하분산 로드 밸런싱에 사용 웹서버로 보이는 중간건 로드밸런서 (실제 웹서버는 아님) 부하가 오면 여러 대의 서버 중 맵핑 / 여러대의 서버는 전부 동일한 내용이어야함 라운드로빈 : 순번으로 돌아가면서 맵핑 (심플한 구조) Health Check 가 꼭 필요 : Manager 서버가 시스템의 상태를 점검(측정) 후 빈 곳에 맵핑 하나의 서버가 사라져도 웹서버가 사라지는게 아님 -> 무정지 시스템, 폴프톨러런트 시스템 ㄴ 안정성이 극대화되어야 가능 만약 로드밸런스가 다운된다면? 대비용으로 보통 로드밸런스가 두개 이상 셋팅되어있음 ㄴ서로 연결되어 하나가 다운되어도 백업, 오버라이드함 ..