security_duck의 등록된 링크

키자드에 등록된 총 547개의 포스트를 확인하실 수 있습니다.

Naver Blog

[보안뉴스] 롯데카드 침해사고 보고서: 주요 내용 정리(25.09.04)

최근 발생한 롯데카드 해킹 사고에 대해 언론 보도와 분석 자료를 바탕으로 정리해 보았습니다. 이 포스팅은 회사와 고객에게 유용한 정보를 공유하기 위해 작성되었으며, 이미지 대신 텍스트 중심으로 내용을 구성했습니다. 1. 사고 개요 최근 롯데카드가 외부 해킹 공격으로 인해 침해사고를 겪은 사실이 확인되었습니다. 2025년 8월 26일 서버 점검 중 특정 서버가 악성코드에 감염된 것을 발견했고, 이후 전체 서버 정밀 점검을 통해 3개 서버에서 2종의 악성코드와 5종의 웹쉘이 삭제되었습니다. 추가 조사를 통해 8월 31일 온라인 결제 서버에서 데이터 유출 흔적이 발견되었고, 이에 금융당국에 신고가 이루어졌습니다. 이 사고로 약 1.7GB의 내부 자료가 유출된 것으로 추정되며, 고객 정보 유출 여부는 추가 조사 중입니다. 2. 사고 원인 이번 공격은 오라클 웹로직(Oracle WebLogic)의 알려진 취약점(CVE-2017-10271)을 악용한 결과로, 공격자가 웹쉘을 업로드하며 내부 결

Naver Blog

[AWS Cloud] AWS CloudWatch.1 보안점검 및 조치 (CIS Benchmark v1.2.0)

A log metric filter and alarm should exist for usage of the "root" user 이번 섹션 목표는 "Root" 사용자 사용을 모니터링하기 위해 CloudTrail 로그를 기반으로 로그 메트릭 필터와 알람을 설정하기 위한 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.1) 1. 선행작업 1.1 CloudTrail 로그가 CloudWatch Logs로 전송되는지 확인 먼저 CloudTrail 트레일이 CloudWatch Logs로 로그를 전송하도록 설정되어 있어야 합니다. 이미 설정한 경우 이 단계를 건너뛰어도 됩니다. 1.AWS Management Console CloudTrail → "트레일(Trails)" → 선택. "CloudWatch Logs" 섹션에서 로그 그룹(예: CloudTrailLogs)과 역할(CloudWatch 에 로그를 보내는)이 설정되어 있는지 확인. 2. 로그 메트릭 필터 생성 2.

Naver Blog

[AWS Cloud] AWS Cloudtrail.2 보안점검 및 조치 (CIS Benchmark v1.2.0)

CloudTrail log file validation should be enabled 이번 섹션 목표는 CloudTrail 로그파일을 저장 시에 암호화하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudTrail.2) 1. CloudTrail 암호화 이해 1. CloudTrail 로그: CloudTrail은 계정 내 API 호출 및 리소스 변경 이벤트를 기록. 로그 파일은 S3 버킷에 저장됨. 2. 암호화 at-rest(저장 시 암호화): S3 버킷에 저장된 CloudTrail 로그 파일을 암호화하여 데이터 보호. AWS KMS(Key Management Service) 고객 관리형 키(CMK, Customer Managed Key)를 사용해 암호화. 3. 목적: 로그 파일에 포함된 민감 정보(예: API 호출 세부 사항, 사용자 활동) 보호. 규정 준수(예: PCI DSS, HIPAA) 충족. 무단 접근 방지. 4. 기본 설정: CloudTrail은 기본적으로

Naver Blog

[AWS Cloud] AWS Cloudtrail.4 보안점검 및 조치 (CIS Benchmark v1.2.0)

CloudTrail log file validation should be enabled 이번 섹션 목표는 Cloudtrail에서 로그 파일 유효성 검증을 활성화하여 로그 파일 무결성 보장하기 위한 필요한 조치를 수행하였습니다.(CIS Benchmark v1.2 Cloudtrail.4) 1. 요구 사항 1. 목표: 트레일에서 로그 파일 유효성 검증을 활성화하여 로그 파일 무결성 보장. 로그 파일 유효성 검증은 CloudTrail 로그 파일에 대한 다이제스트 파일을 생성하여 파일이 변경되지 않았음을 확인. AWS Security Hub에서 CIS 1.2 제어("Ensure CloudTrail log file validation is enabled")가 "PASSED" 상태로 표시되도록 설정. 2. 필요 조건: 트레일이 존재하고 S3 버킷에 로그 저장. KMS 키가 설정됨. CloudTrail 및 S3에 대한 적절한 IAM 권한. 1. CloudTrail 로그 파일 유효성 검증 설정 1.

Naver Blog

[AWS Cloud] AWS CloudTrail.7보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure S3 bucket access logging is enabled on the CloudTrail S3 bucket 이번 섹션 목표S3 버킷에 S3 버킷 액세스 로깅(서버 액세스 로깅)을 활성화하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudTrail.7) 1. S3 Bucket Logging 이란 S3 버킷 액세스 로깅(서버 액세스 로깅, Server Access Logging)은 S3 버킷에 대한 모든 요청(예: 객체 읽기, 쓰기, 삭제 등)을 로그 파일로 기록하는 기능입니다. 이 로그는 다음과 같은 정보를 포함합니다 요청자 정보: 요청을 보낸 사용자 또는 서비스. 요청 유형: GET, PUT, DELETE 등. 요청 시간: 요청이 발생한 시간. 응답 상태: 요청 성공 여부(예: 200 OK, 403 Forbidden). 버킷 및 객체 이름: 요청 대상이 된 S3 버킷과 객체. IP 주소: 요청이 시작된 소스 IP. 1.1 CloudTrail S

Naver Blog

[AWS Cloud] AWS Cloud 보안감사 CIS Benchmark 시작

CIS Benchmark란 무엇인가요? 들어가기 앞서 CIS는 클라우드 인프라, 운영 체제, 애플리케이션 등 다양한 기술에 대한 보안 표준을 개발하는 비영리 단체를 말합니다. AWS Cloud CIS Benchmark는 Center for Internet Security(CIS)에서 제공하는 일련의 보안 모범 사례 지침입니다. 이 벤치마크는 AWS 환경에서 보안 구성을 평가하고 개선하기 위한 구체적인 권장 사항을 제공합니다. CIS Benchmark는 AWS의 주요 서비스(예: EC2, S3, IAM, RDS 등)를 안전하게 구성하는 방법을 상세히 설명하며, 잠재적인 보안 취약점을 줄이고 규제 준수(compliance)를 달성하는 데 도움을 줍니다. 왜 AWS Cloud CIS Benchmark가 중요한가요? 클라우드 환경은 유연성과 확장성을 제공하지만, 잘못된 구성은 심각한 보안 위험을 초래할 수 있습니다. 2023년 Ponemon Institute의 보고서에 따르면, 클라우드 보

Naver Blog

[기타] 보안 기술 블로그 인사이트

계속 해서 채워 나갈 예정 기업 기술블로그 카카오뱅크 https://tech.kakaobank.com/ 카카오 https://tech.kakao.com/blog/ 우아한 형제들 https://techblog.woowahan.com/ 이글루시큐리티 IGLOOPEDIA by IGLOO Corporation 왓차 http://medium.com/watcha 마켓컬리 https://helloworld.kurly.com/ 뱅크샐러드 https://blog.banksalad.com/tech NHN https://meetup.nhncloud.com/?page=5 당근마켓 https://medium.com/daangn 요기요 https://techblog.yogiyo.co.kr/ 라인 https://techblog.lycorp.co.jp/ko 개인블로그 채널 https://krebsonsecurity.com/ 사이버 범죄, 랜섬웨어, 데이터 유출 사건 등 https://www.schneier.co

Naver Blog

[Vulnerability] 앱링크와 딥링크_/.well-known/assetlinks.json"

보안로그 중 비인가 경로 접근하는 IP 및 URL 을 탐지하기 위해 필터링을 설정해노았다. 그 중 필터링 목록 중에 */.well-known* 이 포함되어 있는데 "/.well-known/assetlinks.json" 이 탐지가 되어 분석을 진행하게 되었다. /.well-known/assetlinks.json은 웹사이트에서 애플리케이션 링크를 인증하기 위해 사용되는 파일로, Android App Links와 관련된 설정을 담고 있다. 이 파일은 웹사이트와 안드로이드 앱 간의 관계를 정의하여, 특정 URL을 앱에서 직접적으로 처리할 수 있게 해준다. 여기서 알아야 할 점은 바로 App Links와 그와 비교대는 Deep Link 이다. 1. 딥 링크(Deep Links) 정의: 모바일 앱 내의 특정 콘텐츠나 화면으로 직접 연결되는 URL. 목적: 사용자를 앱의 특정 위치(예: 특정 제품 페이지, 프로필, 설정 화면)로 바로 이동시키는 것. 동작 방식: 앱이 설치되어 있으면: 해당 UR

Naver Blog

[Vulnerability] 앱링크와 딥링크_/.well-known/apple-app-site-association

최근 필터링을 /.well-known 추가 하고 "./well-known/assetlinks.json" 이 탐지가 되어 분석을 한적이 있다. 그에 이어 "/.well-known/apple-app-site-association" 또한 탐지가 되었다. 앱링크와 딥링크에 대해 알고싶으면 아래 참고 https://blog.naver.com/security_duck/223927133466 [Vulnerability] 앱링크와 딥링크_/.well-known/assetlinks.json" 보안로그 중 비인가 경로 접근하는 IP 및 URL 을 탐지하기 위해 필터링을 설정해노았다. 그 중 필터링... blog.naver.com /.well-known/apple-app-site-association은 iOS의 Universal Links를 설정하기 위해 웹사이트에 배포되는 파일로, 웹사이트와 iOS 앱 간의 안전한 연결을 인증한다. 이 파일은 특정 URL을 클릭했을 때 브라우저 대신 iOS 앱의 지정

Naver Blog

[AWS Cloud] AWS EC2 Metadata 확인 및 취약점

탐지로그 확인 중 실행명령어를 확인하게 되어 분석하게 되었습니다 탐지로그 : "curl -s --max-time 5 -H X-aws-ec2-metadata-token:testtoken== -f http://169.254.169.254/latest/meta-data/mac " IP주소 우선적으로 확인해보니 링크로컬주소인 것을 확인했습니다. 1. 링크로컬주소란 ? 로컬 링크 주소: 169.254.0.0/16 범위는 IANA에서 정의한 링크-로컬 주소로, 공인 IP나 사설 IP가 아닌, 특정 네트워크 인터페이스 내에서만 유효 - 이 IP는 주로 AWS, GCP 와같은 CSP들은 내부 네트워크에서만 접근 가능하며, 외부 네트워크에서는 접근할 수 없음 AWS 이외의 경우: - AWS 외부 환경에서는 169.254.169.254가 특별한 의미를 가질 수 없음 - 이 경우, 해당 IP는 단순히 APIPA(Automatic Private IP Addressing) 범위(169.254.0.0/16)

Naver Blog

[Vulnerability] Chunk를 활용한 다수 취약점(CVE-2004-0597)

로그 분석 중 "src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/TESTtestTESTestSETSETteSTsetSETstSTsetSTsetST" 구문이 탐지가 되어 Chunk 를 활용한 많은 취약점 중에 오래된 PNG 이미지 처리 오버플로우 취약점에 대해 알아보았습니다. sBIT 및 hIST 청크의 버퍼 오버플로우 (CVE-2004-0597) IHDR 청크의 비트 깊이 오류 (CVE-2015-8126) zTXt 청크의 압축 데이터 DoS (CVE-2015-8540) tIME 청크의 메모리 읽기 오류 (CVE-2015-7988) File Signature PNG 의 경우 8Byte의 시그니처를 가집니다. 89 50 4E 47 0D 0A 1A 0A Chunk PNG(Portable Network Graphics) 파일은 여러 청크(chunk)로 구성되며, 각 청크는 특정 데이터를 저장합니다 ※ Chunk 구성 IHDR Chunk : 이

Naver Blog

[Vulnerability] Dasan GPON 인증 우회, 임의 코드 삽입 취약점(CVE-2018-10561, CVE-2018-10562)

로그 분석 중 "/GponForm/diag_Form?images/", "/boaform/admin/formLogin" 구문이 탐지가 되어 분석하게 되었습니다. 위 두가지의 로그의 경우 "Dasan Gpon" 과 "Netlink" 사의 제품의 취약점으로 나뉩니다. 현재 CVE 에서는 Dasan Gpon 사의 취약점만 CVE 번호가 할당되었으며, Netlink 사의 취약점은 할당이 되지 않은 것으로 보입니다. 다만, Exploit-DB 에서 2020년에 보고가 되었습니다. Dasan Gpon : /GponForm/diag_Form?images Netlink : /boaform/admin/formLogin VPNMentor 보안 연구원이 한국에 본사를 둔 Dasan Network 에서 만든 GPON 가정용 라우터가 해킹에 취약하다고 발표했습니다. 관련된 취약점으로 라우터의 인증 메커니즘을 우회할 수 있는 CVE-2018-10561과, 공격자가 임의의 명령을 주입할 수 있는 CVE-2018

Naver Blog

[AWS Cloud] AWS CloudWatch.11 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for changes to Network Access Control Lists (NACL) 이번 섹션 목표는, NACL 변경 사항을 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.11) 1. NACL 변경 사항 모니터링이 왜 필요한가? 1. 보안 위협 감지: 네트워크 ACL(NACL)은 서브넷 수준에서 네트워크 트래픽을 제어하는 방화벽 역할을 합니다. 승인되지 않은 변경(예: 특정 포트 허용 또는 차단 규칙 수정)은 네트워크 보안 취약점을 유발하거나 공격자가 침투할 수 있는 경로를 열어줄 수 있으므로 실시간 감지가 필요합니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters

Naver Blog

[AWS Cloud] AWS CloudWatch.14 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for VPC changes 이번 섹션 목표는, VPC 변경 사항을 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.14) 1. 보안 그룹 변경 사항 모니터링이 왜 필요한가? 1. 보안 위협 감지: VPC는 네트워크 환경의 기본 구성 요소로, 변경(예: 서브넷 추가, VPC 피어링)은 네트워크 구조와 보안에 영향을 줄 수 있으므로 실시간 감지가 필요합니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters)" 탭 → "메트릭 필터 생성(Create metric filter)" 클릭. "필터 패턴(Filter pattern)" 입력: ($.eventName = CreateVpc)

Naver Blog

[AWS Cloud] AWS CloudWatch.12 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for changes to network gateways 네트워크 게이트웨이(예: 인터넷 게이트웨이, NAT 게이트웨이 등) 변경 사항을 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.12) 1. 보안 그룹 변경 사항 모니터링이 왜 필요한가? 1. 보안 위협 감지: 네트워크 게이트웨이는 VPC와 외부 네트워크 간 트래픽을 라우팅하는 핵심 구성 요소입니다. 승인되지 않은 변경(예: 인터넷 게이트웨이 연결 또는 NAT 게이트웨이 삭제)은 네트워크 접근성을 변경하여 데이터 유출이나 서비스 중단으로 이어질 수 있으므로 실시간 감지가 필요합니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric f

Naver Blog

[AWS Cloud] AWS CloudWatch.8 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for S3 bucket policy changes 이번 섹션 목표는, S3 버킷 정책 변경을 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.8) 1. S3 버킷 정책 변경 모니터링이 왜 필요한가? 1. 보안 위협 감지: S3 버킷 정책 변경은 데이터 접근 권한(예: 공개 액세스 허용)에 영향을 미쳐 데이터 유출 위험이 증가할 수 있으므로 실시간 감지가 필수적입니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters)" 탭 → "메트릭 필터 생성(Create metric filter)" 클릭. "필터 패턴(Filter pattern)" 입력: { ($.eventSource =

Naver Blog

[AWS Cloud] AWS CloudWatch.9 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for AWS Config configuration changes 이번 섹션 목표는, AWS Config 설정 변경을 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.9) 1. AWS Config 설정 변경 모니터링이 왜 필요한가? 1. 보안 위협 감지: AWS Config 설정 변경은 리소스 구성 규칙 및 감사 로그에 영향을 미칠 수 있으며, 잘못된 변경으로 보안 취약점이 발생할 수 있으므로 실시간 감지가 필요합니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters)" 탭 → "메트릭 필터 생성(Create metric filter)" 클릭. "필터 패턴(Filter pat

Naver Blog

[AWS Cloud] AWS CloudWatch.6 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for AWS Management Console authentication failures 이번 섹션 목표는, AWS Management Console 로그인 실패를 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.6) 1. AWS Management Console 로그인 실패를 모니터링이 왜 필요한가? 1. 보안 위협 감지: 콘솔 로그인 실패는 계정 탈취 시도(예: 무차별 대입 공격)를 나타낼 수 있으므로 실시간 감지가 필수적입니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters)" 탭 → "메트릭 필터 생성(Create metric filter)" 클릭. "필터 패턴(F

Naver Blog

[AWS Cloud] AWS CloudWatch.5 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for CloudTrail configuration changes 이번 섹션 목표는, CloudTrail 설정 변경을 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.5) 1. CloudTrail 설정 변경 모니터링이 왜 필요한가? 1. 보안 위협 감지: CloudTrail 설정 변경(예: 트레일 비활성화, 로그 삭제)은 감사 로그 손실로 이어져 보안 취약성을 초래할 수 있으므로 실시간 감지가 필수적입니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters)" 탭 → "메트릭 필터 생성(Create metric filter)" 클릭. "필터 패턴(Filter pattern)"

Naver Blog

[AWS Cloud] AWS CloudWatch.3 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for Management Console sign-in without MFA 이번 섹션 목표는, MFA(다중 인증) 없이 AWS Management Console에 로그인하는 이벤트를 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.3) 1. 보안 그룹 변경 사항 모니터링이 왜 필요한가? 1. 보안 위협 감지: MFA 없이 콘솔에 로그인하면 계정 탈취 위험이 증가하므로 이를 실시간으로 감지해야 합니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters)" 탭 → "메트릭 필터 생성(Create metric filter)" 클릭. "필터 패턴(Filter pattern)" 입력:

Naver Blog

[AWS Cloud] AWS CloudWatch.2 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for unauthorized API calls 이번 섹션 목표는, 승인되지 않은 API 호출(Unauthorized API Calls)을 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.2) 1. 보안 그룹 변경 사항 모니터링이 왜 필요한가? 1. 보안 위협 감지: 승인되지 않은 API 호출은 계정 침해, 권한 남용, 또는 보안 정책 위반을 나타낼 수 있으므로 실시간 감지가 필수적입니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters)" 탭 → "메트릭 필터 생성(Create metric filter)" 클릭. "필터 패턴(Filter pattern)" 입력: { ($.e

Naver Blog

[보안뉴스] 개인정보보호책임자(CPO) 핸드북(2024.11.)

개인정보보호책임자(CPO) 핸드북(2024.11.) 발간 https://www.pipc.go.kr/np/cop/bbs/selectBoardArticle.do?bbsId=BS217&mCode=G010030000&nttId=10773 개인정보보호책임자(CPO) 핸드북(2024.11.) 개인정보보호책임자(CPO) 핸드북(2024.11.).pdf 개인정보보호책임자(CPO) 핸드북(2024.11.) 입니다. www.pipc.go.kr 첨부파일 개인정보보호책임자(CPO) 핸드북(2024.11.).pdf 파일 다운로드

Naver Blog

[보안뉴스] 2024년 개인정보 유출 내역 정리 및 통계

2024년 개인정보 유노출 내역 정리 2024년은 개인정보 유출 사건이 빈번하게 발생한 해로 기록되고 있습니다. 특히, 해킹과 같은 사이버 공격이 주요 원인으로 지목되고 있으며, 이에 따른 피해 규모도 상당합니다. 올해 단일 최대 개인정보 유출 규모는 135만 건에 달하며, 이는 지난해보다 증가한 수치입니다. 공공기관과 민간기업 모두에서 유출 사건이 발생하고 있으며, 특히 민간기업에서의 유출이 두드러집니다. 올해 7월까지 공공기관에서 67건, 민간기업에서 115건의 유출 사건이 발생했습니다. 주요 통계 및 데이터 2024년 개인정보 유출 사건에 대한 통계는 다음과 같습니다. 정보통신망법 적용 범위 내에서 주민등록번호 등 타인 정보의 훼손, 침해, 도용에 관한 침해 신고가 77,598건으로 집계되었습니다. 이는 전체 신고 건수의 51%를 차지하며, 전년 대비 약 6.7% 감소한 수치입니다. 하지만 유출 사건의 수는 여전히 높은 수준을 유지하고 있습니다. https://blog.nave

Naver Blog

[vulnerability] API 보안 체크 리스트, 취약점 점검 리스트

# API 보안 점검표 API를 설계하고, 테스트하고, 배포할 때 고려해야 할 중요한 보안 대책에 대한 점검 목록입니다. --- ## 인증 (Authentication) - [ ] `Basic Auth`를 사용하지 말고 표준 인증방식을 사용하세요. (예로, JWT, OAuth 등) > 'Basic Auth' : HTTP 기본 인증(Basic Authentication) - [ ] `인증`, `토큰 생성`, `패스워드 저장`은 직접 개발하지 말고 표준을 사용하세요. > JWT, OAuth, OIDC, HTTPS 등 - [ ] 로그인에서 `Max Retry`와 격리 기능을 사용하세요. > 무차별 대입 공격(Brute Force Attack) 방지 - [ ] 민감한 데이터는 모두 암호화하세요. ### JWT (JSON Web Token) - [ ] 무작위 대입 공격을 어렵게 하기 위해 랜덤하고 복잡한 키값 (`JWT Secret`)을 사용하세요. > 'JWT Secret' : JWT 토큰

Naver Blog

[보안뉴스] 가트너(Gartner), 2025년 공급망 8대 기술 트렌드 발표

2025년 공급망 기술 트렌드, 에이전트형 AI·다기능 로봇 등 선정 글로벌 연구 조사 기업 가트너(Gartner)가 ‘2025년 주목해야 할 공급망 기술 트렌드(Top Supply Chain Technology Trends for 2025)’를 발표 했습니다. ‒ 공급망 의사결정의 핵심 역량으로서 기업 경쟁력의 원천이 될 것으로 전망되는 공급망 기술 트렌드를 연결성(Connectivity), 지능화(Intelligence) 두 가지 축으로 구분하여 제시 ‒ (연결성) 지속적인 모니터링과 실시간 데이터 획득의 기반으로서, IoT·센서·로봇 등의 기술을 활용해 공급망의 모든 자산과 프로세스를 디지털 세계에 연결하고 가시성을 확보하는 역량을 의미 ‒ (지능화) AI, 머신러닝 등을 통해 데이터로부터 인사이트를 추출하고 자율적 의사결정을 수행하는 역량을 지칭하며, 이는 단순 분석을 넘어 예측, 자가학습, 최적화로 발전 * 1) 연결성 : ①앰비언트 인비저블 인텔리전스(Ambient Inv

Naver Blog

[AWS Cloud] AWS CloudWatch.7 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for disabling or scheduled deletion of customer created CMKs 이번 섹션 목표는,, AWS KMS(Key Management Service)에서 고객이 생성한 CMK(Customer Managed Key)의 비활성화 또는 삭제 예약 이벤트를 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.7) 1. CMK 모니터링이 왜 필요한가? 1. 보안 위협 감지: CMK 비활성화 또는 삭제 예약은 데이터 암호화 및 복호화 기능에 영향을 미쳐 데이터 접근 불가 또는 보안 취약성을 초래할 수 있으므로 실시간 감지가 필수적입니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭

Naver Blog

[AWS Cloud] AWS IAM.11~15 보안점검 및 조치 (CIS Benchmark v1.2.0)

이번 섹션 목표는 IAM 비밀번호 정책과 관련된 위반사항을 해결하기 위해 필요한 조치를 수행하였습니다.(CIS Benchmark v1.2 IAM.11 ~ IAM.15) 1. IAM 비밀번호 정책 의미 1. IAM.11 Ensure IAM password policy requires at least one uppercase letter IAM 비밀번호 정책에서 모든 IAM 사용자의 비밀번호에 최소 한 개의 대문자(A-Z)를 포함하도록 요구해야 합니다. 2. IAM.12: Ensure IAM password policy requires at least one lowercase letter IAM 비밀번호 정책에서 모든 IAM 사용자의 비밀번호에 최소 한 개의 소문자(a-z)를 포함하도록 요구해야 합니다. 3. IAM.13: Ensure IAM password policy requires at least one symbol IAM 비밀번호 정책에서 모든 IAM 사용자의 비밀번호에 최소 한

Naver Blog

[AWS Cloud] AWS KMS.4 보안점검 및 조치 (CIS Benchmark v1.2.0)

이번 섹션 목표는AWS KMS(Key Management Service)에서 사용하는 암호화 키에 대해 키 로테이션(Key Rotation)을 활성화를 위한 필요한 조치를 수행하였습니다.(CIS Benchmark v1.2 KMS.4) 1. KMS 키 로테이션 이해 1.키 로테이션(Key Rotation): KMS에서 관리하는 고객 관리형 키(CMK, Customer Managed Key)에 대해 새로운 암호화 키를 생성하고, 기존 키를 교체하는 프로세스. 키 로테이션을 활성화하면 KMS가 **1년(365일)**마다 자동으로 키를 교체. 이전 키는 유지되어 기존 데이터 복호화 가능(키 버전 관리). 2.대상: 고객 관리형 키(CMK)에만 적용 가능. AWS 관리형 키(AWS Managed Key, 예: aws/s3)는 자동으로 로테이션되며 사용자 설정 불가. 대칭 키(Symmetric Key)에만 적용. 비대칭 키는 로테이션 지원 안 함. 3.목적: 키 노출 위험 감소. 규정 준수 요

Naver Blog

[AWS Cloud] AWS IAM.2 보안점검 및 조치 (CIS Benchmark v1.2.0)

IAM users should not have IAM policies attached 이번 섹션 목표는 , IAM 사용자에게 직접 IAM 정책을 연결하지 말고, 대신 IAM 그룹 또는 역할을 통해 권한을 부여하는 조치를 수행하였습니다.(CIS Benchmark v1.2 IAM.2) 1. IAM 정책 연결 이해 1. IAM 사용자에 직접 정책 연결: IAM 사용자에게 직접 정책(예: AWS Managed Policy, Customer Managed Policy, Inline Policy)을 연결하면, 해당 사용자가 독립적으로 권한을 가짐。 이는 관리가 복잡해지고, 권한 변경 시 개별 사용자마다 수정해야 하는 번거로움이 있음。 2. 권장 방식: IAM 그룹: 비슷한 권한을 가진 사용자들을 그룹에 추가하고, 그룹에 정책을 연결。 IAM 역할: 특정 작업에 필요한 권한을 역할에 부여하고, 사용자가 역할을 맡아 사용。 3. 목적: 권한 관리를 중앙화하여 실수(예: 과도한 권한 부여) 방지。

Naver Blog

[AWS Cloud] AWS CloudWatch.4 보안점검 및 조치 (CIS Benchmark v1.2.0)

A log metric filter and alarm should exist for usage of the "root" user 이번 섹션 목표는 "Root" 사용자 사용을 모니터링하기 위해 CloudTrail 로그를 기반으로 로그 메트릭 필터와 알람을 설정하기 위한 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.1) 1. 선행작업 1.1 CloudTrail 로그가 CloudWatch Logs로 전송되는지 확인 먼저 CloudTrail 트레일이 CloudWatch Logs로 로그를 전송하도록 설정되어 있어야 합니다. 이미 설정한 경우 이 단계를 건너뛰어도 됩니다. 1.AWS Management Console CloudTrail → "트레일(Trails)" → 선택. "CloudWatch Logs" 섹션에서 로그 그룹(예: CloudTrailLogs)과 역할(CloudWatch 에 로그를 보내는)이 설정되어 있는지 확인. 2. 로그 메트릭 필터 생성 2.

Naver Blog

[AWS Cloud] AWS CloudWatch.10 보안점검 및 조치 (CIS Benchmark v1.2.0)

Ensure a log metric filter and alarm exist for security group changesEnsure a log metric filter and alarm exist for security group changes 이번 섹션 목표는, 보안 그룹 변경 사항을 모니터링하기 위해 CloudTrail 로그에 메트릭 필터와 알람을 설정하는 조치를 수행하였습니다.(CIS Benchmark v1.2 CloudWatch.10) 1. 보안 그룹 변경 사항 모니터링이 왜 필요한가? 1. 보안 위협 감지: 보안 그룹은 네트워크 트래픽을 제어하는 핵심 방화벽 역할을 합니다. 승인되지 않은 변경(예: 불필요한 포트 개방)은 데이터 유출이나 공격 노출로 이어질 수 있어 실시간 감지가 필요합니다. 2. 설정 방법 1. 로그 메트릭 필터 생성 CloudWatch → "로그 그룹(Log groups)" → Cloudtrail 로그 선택. "메트릭 필터(Metric filters)

Naver Blog

[Dreamhack] Type c-j

문제정보 주요 소스코드(check.php) function getRandStr($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[mt_rand(0, $charactersLength - 1)]; } return $randomString; ㆍ랜덤한 문자열 생성 require_once('flag.php'); error_reporting(0); $id = getRandStr(); $pw = sha1("1"); ㆍ$id 변수에 랜덤한 문자열을 할당 ㆍ$pw 변수에 문자열 "1"을 해싱한 값을 할당 if ((int)$input_id == $id && st

Naver Blog

[개인정보] 2024 개인정보 유노출 내역

일시 : 사고일시 또는 기사가 올라온 일시로 반영 2024 개인정보 유노출 내역 일시 내용 유ㆍ노출 항목 2024-01-03 더존하우징, 고객정보 추정 33,869명의 개인정보, 텔레그램 통해 유출 이름, 아이디, 해쉬정보(비밀번호), 이메일주소, 핸드폰번호, 주소 2024-01-09 한국푸드테크실용전문학교, 관리자 페이지 해킹으로 개인정보 유출 이름, 주소, 핸드폰번호, 집전화번호, 이메일 주소 등 20개 이상의 개인정보 2024-01-19 대성마이멕, 9만5천여명 개인정보 유출 ID, 이름, 휴대전화 번호, 이메일 2024-01-26 한국거래소, 설문조사 참여자 개인정보 유출 이름, 이메일, 휴대폰번호 2024-01-24 국립항공박물관, 항공학습터 플랫폼 개발,유지 하는 온라인서버 해킹으로 인한 개인정보 유출 성명, 생년월일, ID, 주소, 연락처 2024-02-17 지마켓, 상품권 무단도용 2024-02-25 세라지오 GC, 협력업체 문자발송 시스템 접근해 해킹 시도 이름, 생

Naver Blog

[보안뉴스] 카카오, 버그바운티 독일인 후기

한 독일인이 카카오의 치명적인 취약점을 확인하고 2023년 12월 보고를 했습니다. 하지만, 카카오 측에서는 포상제도는 국내인으로만 한정하고 있어 제보자는 포상을 못 받았습니다. 뿐만 아니라, 중요한 인프라의 치명적 취약점임에도 불구하고 CVE (취약점 식별 번호, IT 전세계 보편적인 표준)를 발급받지 않겠다고 응답. 사실상 은폐 이외에 그럴 이유가 없고 취약점 제보자가 설명을 요청하니 카카오측 설명하지 않음 ("회사 정책") 외국인 입장에서는 버그바운티의 의미가 없어진 격이고 이로인해 제보자들은 해커들에게 팔 가능성이 높을 것 같다는 말에 카카오측은 묵묵무담이였다고 합니다. 제보자는 5월31일 POC를 공개하였고 카카오 버그바운티에 대한 짧은 후기를 남겼습니다. 출처 : https://stulle123.github.io/posts/kakaotalk-account-takeover/ 2차 출처 : https://www.reddit.com/r/hanguk/comments/1dor0ed

Naver Blog

[Python] Virustotal 에서 다수 IP 악성이력 조회(2025.04.16업데이트)

개요 ㆍVirustotal이란 무료로 파일 검사를 제공하는 웹 사이트이다. 최대 70가지 이상의 각기 다른 바이러스 검사 소프트웨어 제품을 사용하여 파일, 웹사이트, IP 에 대하여 악성이력을 조회할 수 있는 웹 사이트이다. ㆍ다수의 IP를 조회가 필요한 경우 하나씩 입력해야 하는 번거로움이 있어 개발하게 되었다. 첨부파일 unsaved.csv 파일 다운로드 소스코드 ㆍcsv(조회할 IP 리스트(양식)) 파일에 적힌 IP 들을 읽어서 Virustotal 에 조회하고 그 결과를 업데이트하여 저장한다. ㆍ특이사항으로 다수의 IP를 한번에 조회하기 위해서는 회원가입을 하고 API KEY를 입력해야 하며 하루에 조회할 수 있는 IP 개수는 제한 되어 있다. 업데이트 날짜 : 2025.04.16 import pandas as pd import requests # VirusTotal API 키 설정 API_KEY = 'API_KEY' # 실제 API 키로 교체하세요 API_URL = 'http

Naver Blog

[Vulnerability] regreSSHion(CVE-2024-6387) 치명적 RCE 취약점

regreSSHion CVE-2024-6387 : CVSS 8.1 의 치명적인 취약점 OpenSSH 서버 인증되지 않은 원격코드 실행 취약점 'regreSSHion (CVE-2024-6387)'이 발견되었다. 이 취약점은 인증되지 않은 glibc 기반 Linux 시스템의 Open SSH 서버(sshd)에 레이스 컨디션 조건을 발생시켜 원격 코드 실행(RCE) 취약점이다. 회귀한 OPEN SSH 취약점 regreSSHion (CVE-2024-6387) Regre SSHion(CVE-2024-6387)은 OpenSSH 서버에서 발견된 원격 코드 실행(RCE) 취약점이다. 이 취약점은 glibc 기반 Linux 시스템의 OpenSSH 서버(sshd)에서 레이스 컨디션 조건을 발생시켜, 공격자가 원격에서 인증 없이 임의의 코드를 실행할 수 있게 한다. 이는 공격자가 루트 권한을 포함한 전체 시스템 제어를 획득할 수 있음을 의미하며. 특히, 이 취약점은 2006년에 발견되어 패치된 CVE-2

Naver Blog

[보안뉴스] CrowdStrike 커널 업데이트 오류로 인한 글로벌 Microsoft Windows 시스템 장애 발생

CrowdStrike 커널 업데이트 오류로 인한 대규모 시스템 장애 2024년 7월 19일, 사이버 보안 회사 CrowdStrike의 잘못된 업데이트로 인해 Microsoft Windows 기기를 사용하는 전 세계 수백만 대의 시스템에서 큰 IT 장애가 발생했습니다. 이 사건은 항공사, 은행, 기타 중요 인프라 부문에 광범위한 혼란을 초래했습니다. 문제의 원인은 CrowdStrike의 업데이트로 인해 Windows를 실행하는 시스템이 반복적으로 충돌하여 "블루스크린"이 나타나는 것이었습니다. 이 문제는 단순한 시스템 충돌을 넘어서서 재부팅할 때마다 반복적으로 발생했으며, 수동으로 명령어를 입력해 해결해야 했습니다. 특히 BitLocker가 활성화된 시스템에서는 문제 해결이 더 어려웠습니다. 이 업데이트는 전 세계적으로 약 850만 대의 Windows 컴퓨터에 영향을 미쳤습니다 이 문제의 근본 원인은 CrowdStrike의 커널 수준 업데이트에서 발생한 버그였습니다. 이 업데이트는 품

Naver Blog

메모장 켜질 때 창 크기 고정값 설정

메모장이 켜질 때 창 크기를 고정값으로 설정하는 방법은 다음과 같습니다. 이 방법은 Windows 레지스트리를 수정하는 것을 포함합니다. 따라서 진행하기 전에 중요한 데이터를 백업해두는 것이 좋습니다. 메모장 닫기: 먼저 메모장을 닫습니다. 레지스트리 편집기 실행: Win + R 키를 눌러 실행 창을 엽니다. regedit를 입력하고 Enter 키를 눌러 레지스트리 편집기를 엽니다. 레지스트리 키 탐색: 레지스트리 편집기에서 다음 경로로 이동합니다. HKEY_CURRENT_USER\Software\Microsoft\Notepad 새 레지스트리 항목 추가: Notepad 폴더를 선택한 상태에서 오른쪽 창에서 마우스 오른쪽 버튼을 클릭하여 새로 만들기 > DWORD(32비트) 값(DWORD(32-bit) Value)를 선택합니다. 새로운 값을 iWindowPosDX, iWindowPosDY, iWindowPosX, iWindowPosY 이름으로 각각 생성합니다. 값 설정: 각 항목을 더

Naver Blog

[보안뉴스] 국군정보사 대북 요원 정보 유출, '블랙요원' 정보까지 포함 北 해킹의심

국군정보사령부 요원들 정보 무더기 유출 유출 정보는 최대 수천 건에 달하며 외교관 등의 신분으로 활동하는 '화이트 요원' 정보 뿐만 아니라 해외에서 한국 정부 기관과 전혀 관계없는 이로 신분을 위장하여 활동하는 '블랙요원'의 정보도 포함되어 있다고 전했습니다. 군 관계자는 28일 해당 사건을 인지하고 절차에 따라 정상적으로 수사중 이라고 밝혔습니다. 정보사는 요원들을 급거 귀국시키고 대외 활동을 금지령을 내렸습니다. 군무원의 노트북을 통한 정보유출 당국은 군 간부 출신으로 전역하여 군무원으로 재취업한 이를 통해 정보가 넘어간 것으로 유추하고 있으며, 당사는 북측에 해킹에 했다고 밝혔습니다. 하지만, 보안자료는 개인 노트북에 저장이 금지돼 있으며 정보사 요원의 신상은 정보사 외 대부분 군 당국자도 인트라넷을 통합 접근이 불가능한 것으로 알려졌습니다. 당국은 정보 유출 과정에 고의성, 내ㆍ외부 조력자가 있었을 가능성도 배제하지 않다고 밝혔습니다. 10년전 이와 유사한 사례 발생 10년

Naver Blog

[기타] 업무 능률을 올려주는 Chatgpt 200% 활용

한국방송통신전파진흥원 ChatGPT 업무활용 가이드 출시 2024년 7월 09일, 한국방송통신전파진흥원에서 ChatGPT 업무활용 가이드를 공개하였습니다. KCA 부서에서 직접 업무 수행 중 경험할 수 있는 실제 사례를 바탕으로 작성되었기에 자료 수집, 문서 작성, PPT 작성 등 업무에 많은 도움이 되는 것 같습니다. https://www.kca.kr/boardView.do?pageId=www145&boardId=TRENDS&seq=854479 KCA ChatGPT 업무활용 가이드북 GPT-4o 모델('24.5.13. 공개)을 기반으로 KCA 모든 부서에서 업무 수행 중 경험할 수 있는 실제 사례(회의 준비, 자료 수집·분석, 문서 작성, PowerPoint 제작 등)를 중심으로 가이드북 제작 전 직원이 사용할 수 있도록 초급 과정(기본 개... www.kca.kr 그 외에도 서울디지털재단에서도 2023.05 에 ChatGPT 활용 사례 및 활용 팁을 공개하고 있기 때문에 참고

Naver Blog

VPN 대체자, ZTNA

ZTNA(제로 트러스트 네트워크 액세스)는 최근 사이버 보안 분야에서 주목받고 있는 개념입니다. 오늘은 ZTNA가 무엇인지, 왜 필요한지, 그리고 VPN과 어떤 차이가 있는지에 대해 자세히 알아보겠습니다. ZTNA의 정의 ZTNA는 사용자가 애플리케이션이나 서비스에 접근할 때, 신뢰할 수 없는 네트워크 환경에서도 안전하게 접근할 수 있도록 하는 기술입니다. 이는 전통적인 VPN 방식과는 다르게, 사용자의 신원과 기기를 검증한 후에만 접근을 허용하는 방식으로 작동합니다. 즉, 모든 요청은 기본적으로 신뢰하지 않으며, 필요한 경우에만 권한을 부여하는 것입니다. ZTNA의 필요성 최근 원격 근무와 클라우드 서비스 이용이 증가하면서 기업들은 더욱 강력한 보안 솔루션이 필요해졌습니다. 기존의 VPN은 사용자와 네트워크 간의 연결을 보호하지만, 내부 공격이나 데이터 유출에는 취약합니다. 반면 ZTNA는 애플리케이션 단위로 접근 제어를 하여 보다 세밀한 보안을 제공합니다. ZTNA와 VPN의 차

Naver Blog

[KISA] CISO(정보보호 최고책임자) 지정신고 제도 안내서

https://krcert.or.kr/kr/bbs/view.do?bbsId=B0000127&pageIndex=1&nttId=71557&menuNo=205021 보고서/가이드 > 알림마당 : KISA 보호나라&KrCERT/CC 보고서/가이드 > 알림마당 : KISA 보호나라&KrCERT/CC krcert.or.kr 첨부파일 CISO_지정신고제도_안내서(202409).pdf 파일 다운로드 CISO(정보보호 최고책임자) 지정신고 제도 안내서 Ⅰ 정보보호 최고책임자란? Ⅱ (지정·신고 제도에 따른) 대상자 구분 Ⅲ (일반) 신고의무 대상자 Ⅳ CISO의 겸직 Ⅴ CISO의 겸직 예외 대상 Ⅵ CISO 자격요건 Ⅶ 행정조치 Ⅷ 신고요령 붙임1 CISO 지정신고서 붙임2 CISO 신고접수 문의처 작성 : 위협대응단 위협대응정책팀

Naver Blog

[Python] 소켓 통신 구현

간단한 소켓 통신 구현 ㆍ기본적인 소켓 사용방법과 소켓 통신 구현 소스코드 ㆍ통신 패킷을 잡는 소켓 프로그램 소스코드 입니다. from socket import * import os def parsing(host): #raw socket 생성 및 bind if os.name=="nt": #운영체제가 윈도우이면 nt 반환 sock_protocol=IPPROTO_IP else: sock_protocol=IPPROTO_ICMP sock=socket(AF_INET, SOCK_RAW, sock_protocol) sock.bind((host, 0)) #socket 옵션 sock.setsockopt(IPPROTO_IP, IP_HDRINCL, 1) #promiscuous mode if os.name=="nt": sock.ioctl(SIO_RCVALL, RCVALL_ON) data=sock.recvfrom(65535) print(data[0]) #promiscuous mode 끄기 if os.nam

Naver Blog

[Python] IP 헤더 구조 및 분석

IP 헤더 구조 및 분석 ㆍRaw 소켓을 활용한 IP 헤더 분석 소스코드 ㆍ앞써, '소켓 통신 구현'에서 사용했던 Raw 소켓을 활용한 IP 헤더 분석입니다. from socket import * import os import struct def parsing(host): #raw socket 생성 및 bind if os.name=="nt": #운영체제가 윈도우이면 nt 반환 sock_protocol=IPPROTO_IP else: sock_protocol=IPPROTO_ICMP sock=socket(AF_INET, SOCK_RAW, sock_protocol) sock.bind((host, 0)) #socket 옵션 sock.setsockopt(IPPROTO_IP, IP_HDRINCL, 1) #promiscuous mode 켜기 if os.name=="nt": sock.ioctl(SIO_RCVALL, RCVALL_ON) packet_number=0 try: while True: pac

Naver Blog

[Python] ICMP Sniffer

ICMP Sniffer 구현 ㆍSniffer란 네트워크 트래픽, 패킷을 감시하고 분석하는 프로그램을 말합니다. 소스코드 from socket import * import os import struct def parse_ip_header(ip_header): ip_headers=struct.unpack( "!BBHHHBBH4s4s" , ip_header[:20]) ip_payloads=ip_header[20:] return ip_headers, ip_payloads def parse_icmp_header(icmp_data): icmp_headers=struct.unpack("!BBHHH" , icmp_data[:8]) icmp_payloads=icmp_data[:8] return icmp_headers, icmp_payloads def parsing(host): #raw socket 생성 및 bind if os.name=="nt": sock_protocol=IPPROTO_IP else

Naver Blog

[Python] 은닉 채널을 이용한 파일전송

은닉 채널을 이용한 공격 ㆍ방화벽, IPS과 같은 보안장비에서 TCP, UDP 포트를 막아 놓았을 경우 은닉 채널을 이용하여 호스트에게 악성코드 등을 전송하거나 원격 명령을 내릴 수 있습니다. ㆍ또한, 네트워크 패킷 감시 장비를 우회하여 파일을 송수신 하여 악성코드 등을 전송할 수 있습니다. 소스코드(수신자) ㆍPing은 대부분의 운영 체제에 설치된 도구이며 TCP, UDP 포트가 막혀도 파일을 전송할 수 있으므로 ICMP 를 이용하여 파일을 전송할 수 있습니다. ※ 주의할 점은, 수신자 코드를 실행 후 송신자 코드를 실행해야 한다. from socket import * import os import struct def parse_ip_header(ip_header): ip_headers=struct.unpack( "!BBHHHBBH4s4s" , ip_header[:20]) ip_payloads=ip_header[20:] return ip_headers, ip_payloads def

Naver Blog

[Python] TCP/UDP 패킷 스니퍼

TCP/UDP 패킷 스니퍼 ㆍTCP/UDP 패킷 스니퍼를 구현하여 TCP/UDP 헤더 구조 및 패킷 분석 소스코드 ㆍ통신하는 TCP/UDP 패킷을 분석하는 소스코드 입니다. from socket import * import os import struct def parse_ip_header(payload): pre_ip_headers=struct.unpack( "!BBHHHBBH4s4s" , payload[:20]) ihl=(pre_ip_headers[0] & 0x0F)*4 ip_payloads=payload[ihl:] return pre_ip_headers, ip_payloads def parse_icmp_header(icmp_data): icmp_headers=struct.unpack("!BBHHH" , icmp_data[:8]) icmp_payloads=icmp_data[8:] return icmp_headers, icmp_payloads def parse_tcp_header(p

Naver Blog

[Dreamhack] mongoboard

문제정보 ㆍ node와 mongodb로 구성된 게시판입니다 ㆍ 비밀 게시글을 읽어 FLAG를 획득하세요. MongoDB < 4.0.0 주요 소스코드(index.js) module.exports = function(app, MongoBoard){ app.get('/api/board', function(req,res){ MongoBoard.find(function(err, board){ if(err) return res.status(500).send({error: 'database failure'}); res.json(board.map(data => { return { _id: data.secret?null:data._id, title: data.title, author: data.author, secret: data.secret, publish_date: data.publish_date } })); }) }); app.get('/api/board/:board_id', function(

Naver Blog

[Dreamhack] random-test

문제정보 주요 소스코드(app.py) #!/usr/bin/python3 from flask import Flask, request, render_template import string import random app = Flask(__name__) try: FLAG = open("./flag.txt", "r").read() # flag is here! except: FLAG = "[**FLAG**]" rand_str = "" alphanumeric = string.ascii_lowercase + string.digits for i in range(4): rand_str += str(random.choice(alphanumeric)) rand_num = random.randint(100, 200) @app.route("/", methods = ["GET", "POST"]) def index(): if request.method == "GET": return render_templat

Naver Blog

[Dreamhack] baby-union

문제정보 주요 소스코드(app.py) cur = mysql.connection.cursor() cur.execute(f"SELECT * FROM users WHERE uid='{uid}' and upw='{upw}';") data = cur.fetchall() ㆍMySQL 데이터베이스에 쿼리를 실행하여 사용자 정보 확인 if data: return render_template("user.html", data=data) else: return render_template("index.html", data="Wrong!") return render_template("index.html", data="Fill the input box", pre=1) ㆍ만약 데이터가 존재하면 사용자 정보를 보여주는 템플릿을 렌더링 주요 소스코드(init.sql) INSERT INTO users (uid, upw, descr) values ('admin', 'apple', 'For admin'); INSER

Naver Blog

[Shell Script] 패스워드 최소길이 및 최대 사용기간 설정 점검

패스워드 최소 길이 및 최대 사용기간 설정 점검 ㆍ패스워드 길익 짧거나 단순한 패턴인 경우 무작위 공격(Brute Force) 이나 패워드 추축(Guessing) 공격에 취약하다 ㆍ공격에 대비해서 패스워드를 설정했더라도 오랜 기간 같은 패스워드를 사용하면 그 또한 노출될 가능성이 있기 때문에 적절한 정책을 적용할 필요가 있다. 소스코드 ㆍ패스워드 최소길이 및 최대 사용기간에 대한 점검을 하는 코드이다. ㆍ권장 설정 값과 다를 시, 수정할 수 있는 경로 또한 출력해준다. #!/bin/sh echo "" echo "********패스워드 최소 길이 및 최대 사용 기간 설정 점검********" echo "" pss_len=9 pss_days=30 cnt_len=`cat /etc/login.defs | grep "PASS_MIN_LEN" | grep -v "#" | awk '{print $2}'` cnt_days=`cat /etc/login.defs | grep "PASS_MAX_DAYS

Naver Blog

[Shell Script] root 이외의 UID가 0인 사용자 점검

root 이외의 UID가 0인 사용자 점검 ㆍ시스템에 접근할 때 각 사용자는 부여된 UID 값을 통해 계정명, 홈 디렉터리 등의 권한을 점검하기 때문에 계정명이 달라도 UID가 같으면 같은 계정으로 인식한다. ㆍ그러므로 root 계정의 UID 값 0과 동일하게 설정된 계정을 확인 할 필요가 있다. ㆍ들어가기 앞써 /etc/passwd 에서 확인해보면, user1 사용자의 UID 값이 0인것을 확인할 수 있다. root@min-VirtualBox:/home/min/test# vi 6-5.sh root@min-VirtualBox:/home/min/test# vi 6-5.sh root@min-VirtualBox:/home/min/test# cat /etc/passwd root:x:0:0:root:/root:/bin/bash . . . username:x:1001:1001::/home/username:/bin/sh user1:x:0:1002::/home/user1:/bin/sh user2:

Naver Blog

[Shell Script] 불필요한 서비스 존재 여부 점검

불필요한 서비스 존재 여부 점검 ㆍ시스템에서 꼭 필요하지 않은 서비스일 경우 중지하거나 삭제하는 것이 맞다. ㆍ불필요한 서비스를 방치했을 경우 악의적인 사용자에 의해 시스템이 침해되거나 공격받을 가능성이 높기 때문이다 ㆍ이는 보안성 향상에 도움이 되지만 시스템 운영에서도 도움이 된다. 소스코드 #!/bin/sh echo "" echo "*************************불필요한 서비스 존재 여부 점검******************************" echo "" cf_dir="/etc/xinetd.d" no_ser="/home/min/test/no_ser.cfg" for name in $(cut -d: -f1 $no_ser) do cnt_ser=`ls -l $cf_dir | sed 1d | awk '{print $9}' | grep -w ^\$name\$ | wc -l` if [ "$cnt_ser" != 0 ] then echo "" echo "불필요한 서비스 $n

Naver Blog

[Shell Script] 사용자 계정 일시 정지

사용자 계정 일시 정지 ㆍ 여러 부서나 학급으로 나누어져 있는 곳에서는 부서원이나 학급원의 전ㆍ출입 등으로 인한 계정 정보 수정 요구가 발생한다. 전입자에 대한 정보는 전입 받는 인원이 시스템을 사용해야 하기 때문에 신경을 쓰지만, 전출자 계정의 정리나 정지 등의 조치는 다른 업무의 순위에 밀려 소홀하기 쉽다는 문제를 가지고 있다. ㆍ 사용하지 않는 계정에서 시스템 침해 등 보안 취약 요소가 발생 될 소지가 있으므로 일정 기간이라도 사용하지 않는 계정에 대해 반드시 잠금 설정을 해야 시스템의 안전을 지킬 수 있다. 예제 #!/bin/sh stime=90 ami=`whoami` if [ "$ami" != "root" ]; then echo "본 프로그램은 체계 관리자(ROOT)외 실행이 제한됩니다." exit fi echo "$1의 사용자 계정을 일시정지합니다 1 ~ 4 단계로 진행합니다." echo "" echo "1 $1 계정의 패스워드를 변경해주세요." echo "" passwd

Naver Blog

[Shell Script] SetUID,SetGID 설정 파일 점검

SetUID, SetGID ㆍ 파일일 실행될 때 그 파일의 소유자의 권한으로 실행시키는 SetUID, SetGID 설정파일은 악의적인 권한 도용의 방지를 위해 방지를 해야한다. ㆍ 특히 관리자 권한(ROOT) 소유의 파일인 경우, 버퍼 오버플로우 공격 등에 악의적으로 이용될 수 있기 때문에 특히 더 조주의하고 관리를 해야한다. 예제 ㆍSetUID 가 포함된 파일을 점검하는 로그소스이다. #!/bin/sh cat /dev/null > /test/ch_6/log/1.setuid.log for perm in $(find / -type f -perm -4000 -print) do owner="$(ls -l $perm | awk '{print $3}')" if [ ! -z $perm ] then echo " $owner 의 Setuid 권한을 포함한 파일 : $perm " echo " $owner 의 Setuid 권한을 포함한 파일 : $perm " >> /test/ch_6/log/1.set

Naver Blog

[Shell Script] 장치 디렉터리 내 일반 파일 존재 유무 점검

장치 디렉터리 내 일반 파일 존재 유무 점검 ㆍ/dev 디렉터리는 장치 구동에 관련된 파일들이 존재하는 디렉터리 이기 때문에 일반 사용자나 관리자 root 등 관심을 가지지 않는 디렉터리이다. ㆍ공격자들은 시스템을 공격하거나, 백도어와 같이 시스템에 공격하기 위한 파일들을 은닉하기 위해 /dev 디렉터리를 자주 사용했다. ㆍ그러므로, /dev 디렉터리네 일반파일이 있는지 점검하고 파일들의 용도를 파악 후 삭제 또는 다른 곳으로 이동시켜서 관리 할 필요가 있다. 소스코드 #!/bin/sh email=root@`domainname` imsi=/tmp/dev_find_imsi.tmp touch $imsi cat /dev/null > $imsi find /dev -type f -exec ls -al{}\; > $imsi if [ -s $imsi ]; then mail -s " /dev 내 일반파일 점검 결과(`date +%Y%m%d-%H:%M` 기준) " $email < $imsi fi r

Naver Blog

[Shell Script] 디스크 사용량 분석/보고

디스크 사용량 분석/보고 ㆍ 시스템 관리자는 디스크 사용량을 주기적으로 확인하여 파일 시스템 용량 부족으로 인해 시스템이 영향을 받지 않도록 해야한다. ㆍ 전체적으로 파일시스템별 용량, 사용자별 용량을 일일이 확인하는 것은 번거로운 일이기에 이러한 일들을 주기적으로 이루어지도록 자동화하고, 자동으로 통보하는 쉘 스크립트를 만들면 시스템 관리자의 일이 줄어들 것이다. 예제 #!bin/sh SETSIZE=10 #점검 용량 MB 단위 설정 EXMB=`expr $SETSIZE \* \( 1024 \* 1024 \)` for name in $(cut -d: -f1,3 /etc/passwd | awk -F: '$2 > 499 {print $1}') # /etc/passwd 에서 UID가 500이상인 계정을 구분 do echo "User $name, $SETSIZE MB Exceeded File List / SIZE" find /usr/tmp/home -user $name -type f -ls

Naver Blog

[Shell Script] until 문을 이용한 root 로그인 기록

until ㆍ until 문을 while 문과 유사한 형태로 사용할 수 있다 ㆍ 하지만 while 문과는 반대로 조건문이 거짓이면 do 와 done 사이에 명렁어를 실행하고, 참이면 반복한다. 예제 ㆍroot가 로그인할 때까지 사용자를 확인하고, root가 로그인하면 "root가 xx몇시에 로그인 되었습니다" 라는 경고메시지를 출력한다. ㆍ그 후 root.log 라는 로그 파일에 현재의 경고를 남기는 쉘 스크립트로 root의 로그인 현황을 확인할 수 있다.

Naver Blog

[Excel] 현명한 데이터 참조 및 참조관리 - 여러가지 복사 붙여넣기 방법(상대참조)

여러가지 복사 붙여넣기 이웃하지 않은 데이터를 한꺼번에 데이터 복사, 붙여넣기 방법이 있습니다. 빈 셀에 한번에 입력하기 1. 범위 지정 후 Ctrl + G (이동옵션) 2. 옵션 3. 빈 셀 4. 범위 내에 빈 셀만 선택 되는 것을 볼 수 있으며, 빈 셀중 커서가 들어가 있는 칸을 확인할 수 있습니다. 5. 커서가 들어가 있는 칸에 '홍길동'을 적고 Ctrl +Enter 를 누르게 되면 빈셀에 전체적으로 입력이 됩니다. 상태참조를 이용한 복사 붙여 넣기 1. 범위 지정 후 Ctrl + G (이동옵션) 2. 옵션 3. 빈 셀 4. 범위 내의 빈 셀에서 '=' 을 입력 후 위쪽 셀을 선택해줍니다. 5. Ctrl +Enter 를 누르게 되면 전체적으로 상태참조가 입력이 되어 한칸 위에 있는 셀의 데이터를 참조하게 됩니다.

Naver Blog

[Vulnerability] Apache Log4j 취약점 - CVE-2021-44228 관련 기사 및 정보

Log4j의 로고 1. KISA 보호나라, Apache Log4j 보안 업데이트 권고 - 취약점이 추가적으로 발견되고 있어 추가적인 업데이트가 지속적으로 진행 중 입니다. https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389 KISA 인터넷 보호나라&KrCERT KISA 인터넷 보호나라&KrCERT www.krcert.or.kr 2. log4j 사용 리스트 현황 - 흔히 아는 Cisco, Devian, DELL, Docker 등 유명한 업체들도 포함되어 있는 것을 확인할 수 있습니다. https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592 3. log4j 대응가이드 - KISA 보호나라에서 제공하는 log4j 보안취약점 대응 가이드 입니다. 첨부파일 QnA로_알아보는_log4j_보안취약점_대응_가이드.pdf 파일 다운로드 4. CVE 코

Naver Blog

[Shell Script] read

read ㆍ 사용자들의 입력 사항을 받는 명령어 ㆍ "read 변수명" 형태로 사용 예제 ㆍ사용자가 입력한 "Shell Script Test" 값을 VAR 변수에 저장하고, VAR에 입력된 값을 화면에 출력하는 예제이다. ㆍ여러 개의 변수 값을 입력받아야 할 때는 "read 변수명1 변수명2"의 형태로 저장한다. 즉, 사용자 입력시 다음 변수는 스페이스(공백)로 구분한다. 주의사항 ㆍ변수를 지정할 떄 " "또는 ' '를 이용하여 공백이 포함된 문자열을 단일 변수로 지정할 수 있다. 하지만 사용자 값으로 입력 받을 때는 공백 전 문자열은 첫 번째 변수, 나머지 문자열은 마지막 문자열로 입력됨에 주의해야 한다.

Naver Blog

[Shell Script] 수치비교,파일비교,문자열 비교,특수 파라미터

1. 수치비교 예제 ㆍa와 숫자 b에 할당된 변수를 비교해서 a와 b의 수치가 같은지, b가 a보다 큰지 여부를 비교해서 결과를 출력한다. 주의할 점 ㆍ[ 뒤와 ] 앞에는 꼭 공백을 넣어야 한다. 또한 문자열 변수를 사용 할 때는 "와 "로 감싸야 한다. ㆍ각 표현식은 숫자 크기를 비교하지만, 소수점 이하의 숫자는 무시된다 표현방식 표현방식 유사 연산자 참이 되는 경우 [ $A -eq $B ] A = B A와 B의 값이 같은 경우 [ $A ne $B ] A != B A와 B의 값이 다를 경우 [ $A gt $B ] A > B A가 B보다 값이 큰 경우 [ $A lt $B ] A > B A가 B보다 값이 작은 경우 [ $A ge $B ] A >= B A가 B보다 값이 크거나 같은 경우 [ $A le $B ] A =< B A가 B보다 값이 작거나나 같은 경우 2. 파일 비교 ㆍ파일의 존재 유무와 읽기 또는 쓰기가 가능한지 등을 비교하는 기능의 표현식 표현방식 표현방식 참이 되는 경우 [

Naver Blog

[DataBase] 데이터 정의어(DDL) - CREATE

※ 실습에 사용된 스크립트(데이터)는 '오라클로 배우는 데이터베이스 개론과 실습 2판'의 데이터를 사용했습니다. CREATE(테이블 생성) - CREATE 문은 테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령입니다. CREATE 문법 CREATE TABLE 테이블이름 ( {속성이름 데이터타입 [NULL | NOT NULL |UNIQUE |DEFAULT 기본값 | CHECK 체크조건] } [PRIMARY KEY 속성이름(들)] [FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름)] [ON EDLETE (CASCADE | SET NULL}] ) CREATE, ALTER에 사용되는 제약조건 CREATE, ALTER 에 사용되는 제약조건 기본키 지정하는 방법 1. PRIMARY KEY 를 명시 후 () 괄호를 통해 속성 지정 CREATE TABLE NEWBooK ( bookid NUMBER, bookname VARCHAR2(20

Naver Blog

[SuNiNaTaS] Forensics 14 풀이

문제 : suninatas 의 비밀번호를 알고 있는가 ? 다운로드를 클릭하게 되면 압축파일을 받을 수 있습니다. 첨부파일 evidence.tar 파일 다운로드 압축 파일을 풀게 되면 passwd, shadow 파일이 있는 것을 확인할 수 있습니다. 이를 passwd 파일을 notepad에 드레그 해서 확인해보면 가장 하단 부분에 suninatas의 계정과 해시된 패스워드를 확인할 수 있습니다. suninatas 계정 :(콜론) 뒤에 x 를 확인할 수 있는데, x의 의미는 암호화가 되어 있음을 의미하고 이는 etc/shadow 파일에 존재하게 됩니다. 그래서 주어진 파일의 shadow 파일을 확인해 볼 필요가 있습니다. passwd passwd 파일구조(필드) root : x :0 :0 : root : /root : /bin/bash 1 2 3 4 5 6 7 필드의 구분은 : (콜론)으로 구분되며 필드가 의미하는 바는 아래와 같다. 1: 사용자 계정 2: 사용자 패스워드 "x" 문자

Naver Blog

[SuNiNaTaS] Forensics 15 풀이

문제 : 음악을 좋아하는 하는가 ? 힌트 : 파일안에 인증키가 존재한다. Play the Music 을 클릭하게 되면 노래가 재생되는 것을 확인할 수 있습니다. 사운드 표시 옆에 클릭하면 diary.mp3 파일을 다운 받아지는 것을 확인할 수 있습니다. 그리고 파일의 속성에 들어가서 '자세히'에서 지휘자를 확인해보면 Auth 키를 볼 수 있습니다.

Naver Blog

[SuNiNaTaS] Forensics 18 풀이

문제 : What is it ? 처음부터 생각난게 아스키 코드가 생각났습니다. 온라인에서 제공해주는 변환기를 사용하여 값을 넣어보니, 암호화 된 값을 받을 수 있는 것을 확인할 수 있습니다. 암호화된 값 또한 Base64로 암호화된 것을 쉽게 유추할 수 있습니다. 이 또한 온라인에서 제공해주는 사이트를 통해 쉽게 디코딩을 할 수 있습니다.

Naver Blog

[SuNiNaTaS] Forensics 19 풀이

문제 : What is it? 0,1 로만 이루어진 것을 보아 이진수인것을 쉽게 확인할 수 있습니다. 'Binary to string' 온라인 변환기를 통해 쉽게 할 수 있습니다. 변환를 해보면 알 수 없는 값을 확인할 수 있는데, 띄어쓰기가 있는 것을 보아 치환 또는 돌리는 문제로 추측됩니다. 여기서 말이 되는 문장을 찾아서 확인해보면, 쉽게 답을 얻을 수 있습니다. http://theblob.org/rot.cgi ROT encoder/decoder Please enter the text to rotate: Rotate numbers as well theblob.org

Naver Blog

[SuNiNaTaS] Forensics 21 풀이

문제 : 문제의 솔루션 키는 무엇인가 ? 오른쪽 마우스 클릭 후 저장 하면 monitor.jpg 파일을 다운 받을 수 있습니다. 쉽게 접근하기 위해 원시적인 방법으로 사진 투명도를 높이면 흐릿하게라도 보이지 않을까 해서 해봤지만 어림도 없었습니다 :) 그래서 HxD 를 이용해서 확인을 해봤습니다. Exif 형식인 것을 확인할 수 있었습니다. Exif 형식은 디지털 카메라에서 사용되는 이미지 파일을 뜻합니다. 다운받은 사진의 확장자는 JPG 파일으로서, JPG 시그니처는 FF D8 FF E0 또는 FF D8 FF E1, FF D8 FF E8 이며 헤더의 끝은 XX XX 49 46 또는 XX XX 69 66, XX 53 50 으로 끝납니다. 그래서 FF D8 FF E1 으로 시작하고 있기 때문에 이 헥사 값으로 시작하는 것을 확인해본 결과 총 15개를 검색할 수 있었고, 세 종류의 오프셋으로 반복되는 것을 확인할 수 있었습니다. FF D8 FF E1 29 7E (0x000000),(0x

Naver Blog

[SuNiNaTaS] Forensics 26 풀이

문제 : 이 과제는 빈도 분석을 사용하여 다음 암호문에서 평문을 복구하는 것입니다. 평문의 빈 글자와 문장 부호는 생략했습니다. 문제에서 빈도 분석을 사용한 암호문이라고 적혀있습니다. 그래서 온라인 상에서 제공하는 암호문을 해독해주는 사이트를 통해 해결할 수 있었습니다. https://quipqiup.com/ quipqiup - cryptoquip and cryptogram solver beta3 quipqiup is a fast and automated cryptogram solver by Edwin Olson . It can solve simple substitution ciphers often found in newspapers, including puzzles like cryptoquips (in which word boundaries are preserved) and patristocrats (inwhi chwor dboun darie saren t). Puzz... qui

Naver Blog

[SuNiNaTaS] Forensics 28 풀이

문제 : Brute-force 를 사용하지 않고 암호를 풀 수 있다. 패스워드를 아는가 ? 처음에는 반디집 이나, 알집에서 제공하는 패스워드 찾기를 해봤습니다. 하지만 반디집이나 알집 또한 패스워드를 찾는 방법이 Brute-force 를 사용하는 것 같아 다른 방법을 찾기로 했습니다. 처음에 알아낸 것은 zip 파일의 매직넘버 PK(50 4B 03 04) 를 확인할 수 있었고, 그 뒤로 Am_I_key.zip 인 것을 확인할 수 있었습니다. 그 외에도, Am I key2.txt, Am_I_key3.txt 파일 또한 확인할 수 있습니다. 두번 쨰로 알아낸 것은 각 파일마다 똑같은 옵셋이 반복된다는 것이 였습니다. ZIP 파일 구조를 확인해 봤습니다. [Local header] offset 0x00 ~ 0x03 [4bytes] : Signature (50 4B 03 04) -> 50 4b = PK offset 0x04 ~ 0x05 [2bytes] : Version (14 00) offs

Naver Blog

[SuNiNaTaS] Forensics 31 풀이

문제 down 을 클릭하게 되면 pdf 파일을 다운받을 수 있습니다. 처음엔, HxD 를 통해 분석할려고 했지만, 텍스트 문자가 보기 안좋게 되어 있어서 다른방법을 찾기로 했습니다. pdf 파일의 확장자를 .txt 파일로 바꾸고 확인해 본 결과 텍스트 중 base64로 인코딩 되어 문장을 확인할 수 있었습니다. 인코딩 된 것을 디코딩하면 쉽게 문제를 풀 수 있었겠지만, 눈에 거슬리는 특수문자들이 중간중간 마다 섞여 있는 것을 확인할 수 있었습니다. 특수문자를 제거 하는 방법으로 자바스크립트에 eval 함수를 통해 값을 받는 방법도 있겠지만 저는 원시적인 방법을 소개할려고 합니다. 제가 사용한 방법은 Word 의 바꾸기 옵션을 사용해서 하는 방법입니다. 저희가 바꿔야 하는 것이 특수문자 이기 때문에 찾을 내용에 +, ", ', space 를 바꿀내용에 빈칸으로 넣어줍니다. 그러면 저희가 인코딩할 문장이 눈에 보기 쉽게 바뀌는 것을 확인할 수 있습니다. 이거를 base64 디코딩 사이트

Naver Blog

[Excel] 바르고 빠른 데이터 입력(데이터 유형, 이동옵션, 오류처리)

엑셀이 제공하는 기본 데이터 유형 엑셀의 셀에 입력한 값은 다음과 같은 구분하여 인식 및 처리 합니다. 1. 숫자 형식 2. 문자 형식 3. 논리적 형식 4. 오류 형식 여기서 데이터를 셀에 입력을 하게되면 기본적으로 다음과 같이 정렬이 됩니다. 숫자형식은 오른쪽 맞춤 정렬 문자 형식은 왼쪽 맞춤 정렬 논리적, 오류 형식은 가운데 맞춤 정렬 ※ 날짜, 시간은 숫자데이터로 인식하게 됩니다. 숫자는 무엇인가 ? 수학적 연산을 기대하지 않는 숫자 - 식별자로 사용되는 숫자의 종류 및 특징 : 주민번호, 사원번호, 신용카드 번호 등 예) 550505-1234567 0012021 0505-6098-1234-0986 수학적 연산을 기대하는 숫자 - 크기를 나타내는 숫자의 종류 및 특징 : 급여, 보너스, 날짜, 시간 등 예) 3,456,000 2021-01-01 4:35 날짜 형식의 데이터의 비밀 엑셀은 셀에 연, 월, 일을 하이픈(-)이나 슬래시(/)로 구분하여 입력하면 날짜 형식의

Naver Blog

[Excel] 바르고 빠른 데이터 입력- 엑셀에 사진 넣기

엑셀에 그림 데이터 삽입하기 엑셀에 이미지의 데이터를 삽입할 수 없지만, 이미지를 걸쳐 놓는 다는 의미로 넣을 수 있습니다. 문제점 하지만, 이미지를 걸쳐 놓은 채로 관리하게 되면 나중에 데이터를 정렬 및 필터링을 할 경우 이미지가 따라 오지 않기 때문에 불편함이 존재합니다. 해결방법 1. 메모 사용 2. 하이퍼링크를 사용 메모사용 1. 넣은 셀 칸에 오른쪽 마우스 클릭 -> 메모삽입 2. 만들어진 메모 테두리에서 오른쪽 마우스 클릭 -> 메모 서식 3. 색 및 선 -> 채우기(색) -> 채우기 효과 -> 그림 선택 4. 완료 하이퍼링크 사용 1. 하이퍼링크 들어갈 셀 오른쪽 마우스 클릭 -> 링크 2. 이미지 선택 3. 완료

Naver Blog

[DataBase] 데이터 조작어(DML) - GROUP BY

※ 실습에 사용된 스크립트(데이터)는 '오라클로 배우는 데이터베이스 개론과 실습 2판'의 데이터를 사용했습니다. GROUP BY - GROUP BY 절을 사용하면 같은 속성 값끼리 그룹을 만들 수 있습니다. - 예를들어, GROUP BY custid 라고 명시하게 되면, DBMS에 있는 데이터 중 custid 가 같은 것 끼리 그룹화를 하게 됩니다. HAVING - HAVING 절은 GROUP BY 절의 결과로부터 그룹을 제한하는 역할을 수행합니다. - 예를들어, 도서수량이 3권인 경우만 출력할려는 경우 다음 예시와 같습니다. GROUP BY, HAVING 절 주의사항 GROUP BY<속성> 주의사항 GROUP BY로 투플을 그룹으로 묶은 후 SELECT 절에는 GROUP BY에서 사용한 과 집계함수만 나올 수 있음 맞는 예 SELECT custid, SUM(saleprice) FROM Orders GROUP BY custid; 틀린 예 SELECT bookid, SUM(salepr

Naver Blog

[DataBase] 데이터 조작어(DML) - 두 개 이상의 테이블 조회JOIN

※ 실습에 사용된 스크립트(데이터)는 '오라클로 배우는 데이터베이스 개론과 실습 2판'의 데이터를 사용했습니다. 조인(JOIN) - JOIN 연산자는 2개 이상의 테이블을 결합하는 연산자 입니다. - 만약 필요한 정보를 조회 할 경우 그 정보가 하나의 테이블에만 존재하지 않고 2개 이상의 테이블에서 조회를 해야만 할 경우 JOIN 연산자가 사용됩니다. - 예를들어, 어떤 고객이 주문한 총 구매액을 알고 싶을 경우 구매액은 Orders 테이블에 있고, 고객번호는 Customer 테이블에 있어 두 개의 테이블 조회해야 합니다. 이때 JOIN 연산자를 통해 해결할 수 있습니다.\ (※예시문은 데이터 결과 값의 일부분입니다.) 빨간색 : Customer 테이블 / 파랑색 : Orders 테이블 - 여기서 알 수 있는 점은 Customer 테이블의 고객의 튜플의 개수는 5명이고, Orders의 주문 튜플의 개수는 10개이므로 총 5x10, 50개 가 되는 것을 확인할 수 있습니다. - 문제점

Naver Blog

[DataBase] 데이터 조작어(DML) - 부속질의

※ 실습에 사용된 스크립트(데이터)는 '오라클로 배우는 데이터베이스 개론과 실습 2판'의 데이터를 사용했습니다. 부속질의 - 만약 가장 비싼 도서의 이름을 찾을 때 일반적으로 2번의 테이블을 조회한 후 질문에 대한 답을 얻을 수 있습니다. ① 첫번 째로 가장 비싼 가격이 얼마인지를 알아야 하고, ② 두번 째는 조회할 도서 이름에 가장 비싼 35000원 이라는 조건을 걸어야 원하는 결과를 얻을 수 있습니다. - 이 처럼 번거로움이 존재하는데, 이를 해결할 수 있는 방법으로 부속질의를 사용해야 합니다. - 부속질의란 SELECT 문의 WHERE 절에 또 다른 테이블 결과를 이용하기 위해 다시 SELECT 문을 괄호로 묶어 다시 질의하는 것을 말합니다. 즉, 질의가 중첩이 되어 부속질의라고 합니다. - 부속질의의 실행순서는 파란색 박스의 WHERE 절의 부속질의를 먼저 처리한 후, 전체적 질의를 처리하여 결과를 줍니다.

Naver Blog

[DataBase] 데이터 조작어(DML) - SELECT(집계함수,SUM,AVG,MAX,MIN,COUNT)

※ 실습에 사용된 스크립트(데이터)는 '오라클로 배우는 데이터베이스 개론과 실습 2판'의 데이터를 사용했습니다. 집계함수 집계함수는 테이블의 각 열에 대해 계산하는 함수로 SUM, AVG, MIN, MAX, COUNT 다섯 가지가 있습니다. 집계함수의 종류 - 연산자 SUM 은 열에 대한 합계를 나타내며, AVG 는 평균, MIN 최소 값, MAX는 최대 값, COUNT 는 행의 개수를 나타냅니다. 예를 들어, 고객이 주문한 도서의 총 판매액, 평균 값 ,최저 값, 최고 값을 구하는 예시는 다음과 같습니다. Tip. - SUM(saleprice), AVG(saleprice) 등 와 같이 저장된 데이터를 가공하여 얻은 결과이기 때문에 테이블의 별도의 이름이 없이 SUM(saleprice) 와 같이 출력되는 것을 확인할 수 있습니다. 이는 사용자 입장에서 시각적으로 불편함을 제공할 수 있기 때문에 AS 키워드를 사용하는 것이 좋습니다.

Naver Blog

[DataBase] 데이터 조작어(DML) - SELECT

※ 실습에 사용된 스크립트(데이터)는 '오라클로 배우는 데이터베이스 개론과 실습 2판'의 데이터를 사용했습니다. SELECT - 앞의 글에서 데이터 조작어 중 SELECT 문은 질의어라고 부른다고 했습니다. https://blog.naver.com/ster098/222500184062 [DataBase] SQL 이란 ? (데이터정의어, 데이터조작어, 데이터 제어어) SQL 이란 - SQL 은 Structured Query Language 의 약자로 1970년대 후반 IBM이 SEQUEL ... blog.naver.com - 질의어란, 데이터에 대한 요구/요청을 질문 형식으로 전달하여 이에 응답하는 것을 의미합니다. - SQL 에서 SELECT 문은 검색한 결과를 테이블 형태로 출력하는 것을 의미합니다. 쉽게 말해, 찾고하는 데이터를 물어보는 것 입니다. 거기서 추가적으로 조건 등이 붙어 세부적으로 조회할 수 있습니다. - 예를들면, '10000원 이상인 도서의 이름과 출판사를 보여줘

Naver Blog

[DataBase] 데이터 조작어(DML) - SELECT(WHERE)

※ 실습에 사용된 스크립트(데이터)는 '오라클로 배우는 데이터베이스 개론과 실습 2판'의 데이터를 사용했습니다. 조건 검색(WHERE) 조건 검색이란 검색 하고자 하는 데이터를 좀 더 세부적으로 조건을 넣어 검색 요청하는 것을 의미합니다. 조건으로 사용할 수 있는 술어에는 비교, 범위, 집합, 패턴, NULL, 복합조건이 존재합니다. WHERE 절에 사용할 수 있는 술어 비교 - 조건 검색의 비교 술어는 =,>,<,<=,>= 등을 사용합니다. 예를들어 가격이 20000원 미만, 초과, 이상, 이하, 같음 등인 도서를 검색할 경우 WHERE 절에 작성합니다. - 주의할 점은 SQL 문 작성 시 천 단위를 표시하는 콤마(,)를 표시하지 않습니다. 범위 - 범위 술어는 BETWEEN 연산자를 사용하며, 값의 범위를 지정하여 검색 할 경우 WHERE 절에 작성합니다. 에를들어 13000원 이상 20000원 이하인 도서를 검색 할 경우 다음 예시문 과 같습니다. 집합 - 집합 술어는 두 개

Naver Blog

[DataBase] 관계 데이터 모델의 개념(3) - 릴레이션의 특징

릴레이션의 특징 1. 속성은 단일 값을 가진다. - 각 속성의 값은 도메인에 정의된 값만을 가질 수 있으며 그 값은 모두 단일 값이여야 합니다. 위배 된 예시 2. 속성은 서로 다른 이름을 가진다. - 속성은 한 릴레이션에서 서로 다른 이름을 가져야 합니다. - 예를 들면 도서 릴레이션의 속성을 보면 '도서이름', '도서이름' 가진 것을 확인할 수 있습니다. 이는 릴레이션의 특징에 위배된 경우 입니다. 위배 된 예시 3. 한 속성의 값은 모두 같은 도메인 값을 가진다. - 한 속성에 속한 열은 모두 그 속성에 정의된 도메인 값만을 가질 수 있습니다. 위배 된 예시 4. 속성의 순서는 상관없다. - 속성의 순서가 달라도 릴레이션 스키마는 같습니다. - 예를 들어, 릴레이션 스키마에서 (도서이름, 출판사) 순으로 속성을 표시하거나 또는 (출판사, 도서이름) 순으로 표시하여도 상관 없습니다. 5. 릴레이션 내의 중복된 튜플은 허용하지 않는다. - 하나의 릴레이션 인스턴스 내에서는 서로 중

Naver Blog

[DataBase] 무결성 제약조건 - 키(Key)

키(Key) 일상 생활에서 키(Key)는 집, 자동차, 금고 등 무언가를 잠그고 열때 사용됩니다. 아파트의 모든 집들이 같은 키를 사용하지 않을 것 입니다. 자기 자신의 집을 열수 있는 키는 유일한 1개일 뿐입니다. 이 처럼 '키'는 유일하게 식별한다는 의미를 가지고 있습니다. 키의 역할에는 크게 2가지가 있습니다. 첫 번째,관계 데이터베이스에서 키(Key)는 릴레이션에서 특정 튜플을 식별할때 사용하는 속성 또는 속성의 집합을 말합니다. 릴레이션의 특징 : https://blog.naver.com/ster098/222474125815 [DataBase] 관계 데이터 모델의 개념(3) - 릴레이션의 특징 릴레이션의 특징 1. 속성은 단일 값을 가진다. - 각 속성의 값은 도메인에 정의된 값만을 가질 수 있으며 ... blog.naver.com - 앞의 포스팅글에서 릴레이션은 중복된 튜플을 허용하지 않는다고 말했습니다. 중복을 허용하지 않기 때문에 각각의 튜플에 포함된 속성 중 어느 하

Naver Blog

[Database] 오라클 설치와 기본 사용방법(SQL Plus, 최신버전 SQL Developer)

1. 다운로드 1. https://www.oracle.com/index.html 에 접속하여 좌측 상단 ORACLE 마크 옆의 돋보기를 클릭 후 XE 라고 적은 후 검색을 눌러줍니다. Oracle | Integrated Cloud Applications and Platform Services Click to view our Accessibility Policy Skip to content Home www.oracle.com 2. Oracle Database Express Edition (XE) Downlads 를 확인 후 클릭해줍니다. 3. Oracle Database XE Downlads 페이지가 뜨면 Window의 경우 하단의 Oracle Database 18c Express Edition for Windows x64 를 클릭해서 다운받아 줍니다. 4. 다운로드를 누른 후 라이센스에 관한 동의를 구하는데 체크 후 다운받아 줍니다. 5. 다운로드가 완료가 되면 압축파일이 다운받아져

Naver Blog

[DataBase] SQL 이란 ? (데이터정의어, 데이터조작어, 데이터 제어어)

hostreviews, 출처 Unsplash SQL 이란 - SQL 은 Structured Query Language 의 약자로 1970년대 후반 IBM이 SEQUEL 이라는 이름으로 개발한 관계형 데이터베이스 언어를 말합니다. SQL 특징 1. SQL은 JAVA, C 언어와 같은 완전한 프로그래밍 언어가 아니라, 데이터 부속어라고 불립니다. - 데이터베이스의 데이터와 메타 데이터를 생성, 처리하는 문법만을 가지고 있어 데이터 부속어라고 불립니다. 2. DBMS에 입력해서 사용가능 하고, JAVA, C로 작성된 클라이언트/서버 응용 프로그램에 삽입하여 사용할 수 있습니다. 3. 보고서 또는 데이터 추출 프로그램에서 사용할 수 있습니다. 4. 흔히 사용되는 Visual Studio.NET 또는 다른 개발도구에서도 직접 실행할 수 있습니다. SQL 기능 SQL은 기능에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나뉩니다. 1. 데이터 정의어(DDL

Naver Blog

[DataBase] 관계 데이터 모델의 개념(2) - 릴레이션 스키마와 인스턴스

릴레이션의 구성 스키마와 인스턴스의 개념 1. 스키마 - 관계 데이터베이스에서 릴레이션 어떻게 구성되어 있으며, 어떤 정보를 가지고 있는지 또는 어떤 정보가 담길지에 대한 기본적인 구조를 정의 말합니다. - 테이블에서 스키마는 최상단 해더부분에 나타나며 데이터의 특징을 나타내는속성, 자료 타입 등의 정보를 담고 있습니다. 2. 인스턴스 - 스키마에 따라 테이블에 저장되는 데이터의 집합을 의미합니다. 도서 릴레이션 - 도서 릴레이션에서 도서번호, 도서이름, 출판사, 금액은 릴레이션의 구조를 정의 하며, 총 5권의 릴레이션에 저장된 데이터를 의미합니다. 릴레이션 스키마 1. 속성(Attribute) - 도서 릴레이션에서 도서번호, 도서이름, 출판사, 금액의 정보를 정의하고 있습니다. 여기서 각 열을 속성(Attribute)라고 합니다. 속성은 각 열 마다 각각의 이름이 있으며 그 이름을 보고 어떤 정보를 가지고 있는지 알 수 있습니다. 2. 도메인(domain) - 여기서 컴퓨터로 처리

Naver Blog

[DataBase] 정보시스템의 발전 과정

정보시스템의 발전 - 데이터베이스 시스템은 초기에는 적은 양의 데이터를 저장, 검색하는 수준이였지만 지금은 데이터 발생량이 증가하고 하드웨어와 반도체 기술이 발전하여 많은 양의 데이터를 저장할 수 있게 되었습니다. - 하드웨어와 반도체 기술이 발전해서 지금 방대한 데이터의 양을 처리할 수 있게 되었습니다. 기업정보 시스템의 발전 과정 1. 파일 시스템(File System) - 파일 시스템은 데이터를 파일 단위로 파일 서버에 저장합니다. - 각각의 컴퓨터는 LAN 으로 연결되어 있고, 파일서버에 저장된 데이터를 각 컴퓨터의 응용프로그램에서 열기/닫기를 요청할 수 있습니다. - 각 PC에서 응용프로그램에 독립적으로 파일을 다루기 때문에 중복 저장될 가능성이 있고, 동시에 파일을 다루기 때문에 데이터의 일관성이 훼손될 수 있습니다. 2. 데이터베이스 시스템(Database System) - DBMS를 사용하여 데이터를 통합 관리하는 시스템입니다. - 데이터베이스 시스템은 클라이언트 -

Naver Blog

[DataBase] 데이터베이스 시스템의 추가 구성

데이터베이스 시스템의 구성 - 데이터베이스 시스템의 기본 구성은 데이터베이스(Database), 데이터베이스 관리시스템(DBMS). 데이터 모델(Data model)입니다. - 데이터베이스는 하드디스크에 저장된 데이터를 말하고, DBMS는 주기억장치에 저장된 소프트웨어입니다. 데이터모델은 눈에 보이지 않는 논리적인 개념으로 데이터가 저장되는 기법에 관한 내용입니다 - 데이터베이스 시스템의 기본 구성요소 외에도 데이터베이스 언어, 데이터베이스 사용자가 존재합니다. 데이터베이스 시스템의 구성

Naver Blog

[DataBase] 관계 데이터 모델의 개념(1) - 릴레이션의 개념

관계 데이터 모델의 개념 - 1970년대 IBM 연구소의 에드가 코드(Edgar Frank "Ted" Codd) 컴퓨터 과학자가 수학의 집합이론에 근거하여 관계 데이터 모델을 제안했습니다. - 관계 데이터에 적용된 SQL 언어는 비절차적인 언어를 사용하여 원하는 데이터를 쉽고 편리하게 표한하는 장점을 가지고 있습니다. - 대표적인 관계 데이터 모델 기반 DBMS로 Oracle, SQL Server, DB2, MySQL, PostgreSQL, 모바일에는 SQLite 등이 존재합니다. 릴레이션의 개념 - 관계 데이터 모델을 이해하기에 앞써, 릴레이션에 대한 이해가 필요합니다. - 릴레이션은 행과 열로 구성된 테이블을 말하며, 테이블은 릴레이션을 시각적으로 표현한 방법을 말합니다. 테이블과 데이터 - 예시를 보면 각 선수는 순서, 선수이름, 스폰서, 주급의 원소의 값으로 가지고 있으며 선수의 집합은 다음과 같이 원소를 가집니다. 순서 = {1,2,3,4,5} 선수이름 = {손흥민, 메시,

Naver Blog

Windows 메시지 후킹

Hook Hook ? 중간에서 오고가는 정보를 엿보거나 가로채기 위해 초소를 설치 하는 일을 Hook을 건다라고 한다. Hooking ? 정보를 엿보고 조작하는 행위 메시지 훅 이벤트가 발생 할 경우 OS는 정의된 메시지를 응용 프로그램으로 통보 응용프로그램은 메시지 분석 및 필요한 작업 수행 후킹은 이러한 OS 와 응용프로그램 중간에 위치하여 중간에서 엿본다. Hook chain ? 훅은 설치 순서대로 호출되기 때문에 훅체인라고 한다. ※ 같은 종류의 훅이라도 여러개를 동시에 설치할 수 있다. 메시지 훅 함수 내에서는 엿보는 기능, 메시지 자체 변경, 메시지를 가로채서 아래로 내려보내지 않는 기능이 있다. SetWindowsHookEx() hook procedure : 운영체제가 호출해주는 콜백 함수 idHook : 설치하고자 하는 훅의 타입을 지정 lpfn : 훅 프로시저의 주소 hMod : 훅 프로시저를 가진 모듈의 핸들(주소)이다 dwThreadld : 후킹 할 대상의 th

Naver Blog

악의적인 목적으로 사용되는 키로거

악성 키로거의 목표 정보화 사회에서는 '정보는 돈' So, 악성 키로거의 목표는 돈 때문이다. 온라인 게임 키로거를 통한 계정 탈취를 가지고 오게되고 이는 곧 재산피해를 가지고 온다. 인터넷 뱅킹 인터넷 뱅킹 계정 탈취 → 재산피해 2중 3중 보안이 되어 있다고 해서 100% 안전하다고 보장은 못한다. 기업 정보 유출 기업 정보 유출 → 대규모 재산 피해 기업의 정보유출은 내부에 동조자가 있을 가능성이 높다. 키로거의 종류와 향후 발전 방향 < 하드웨어 키로거> 동작원리 : 내부에 flash memory를 내장하고 있어서 키보드로부터 들어오는 전기신호를 직접 입력 받아 저장하는 장치 최신 제품들은 WIFI 무선 연결을 지원하여 편리하게 키로깅 가능 키로거에 대처하는 우리의 자세 키로거에 대응하는 행동 수칙 1. 공공장소의 PC 에서는 개인정보를 아예 입력하지 말것 2. 보안 프로그램을 항상 최신으로 업데이트 할 것 3. 개인 정보 입력에 Copy & Paste를 활용해 볼 것 4.

Naver Blog

DLL 인젝션

DLL 인젝션 DLL 인젝션 ? 실행 중인 다른 프로세스에 특정 DLL 파일을 강제로 삽입하는 것 // 즉, 다른 프로세스에게 LoadLibrary() API를 스스로 호출하도록 명령하여 사용자가 원하는 DLL을 로딩 하는 것 < DLL 인젝션 개념> notepad.exe 프로세스에 myhack.dll 강제 삽입 로딩된 dll들은 메모리에 대한 접근권한을 가진다. 프로세스에 DLL이 로딩되면 자동으로 DllMain 함수 자동실행된다. 즉, 사용자가 원하는 코드를 추가하면 DLL이 로딩될 때 자연스럽게 해당코드 실행이 된다. DLL 인젝션 활용 예 LoadLibrary() API를 이용해서 DLL을 로딩하면 해당 DLL의 DllMain() 함수 실행 DLL 이 삽입되면 메모리에 대한 접근권한을 가지게 됨 DLL 인젝션 활용 될 수 있는 사례 기능 개선 및 버그 패치 어떤 프로그램의 소스코드가 없거나 수정이 여의치 않을 때 DLL 인젝션을 사용하여 전혀 새로운 기능 추가 또는 문제가

Naver Blog

DLL 이젝션

DLL Ejection ? DLL Injection의 반대 개념으로 프로세스에 강제 삽입하 DLL 제거 DLL 이젝션 동작원리 대상 프로세스로 하여금 FreeLibrary() API를 호출하도록 만드는 것 CreateRemoteThread() API를 이용한 DLL 인젝션의 동작원리 대상 프로세스로 하여금 LoadLibrary() API를 호출하도록 만드는 것 CreateRemoteThread()의 lpStartAddress 파라미터에 FreeLibrary() API 주소를 넘겨주고, lpParameter 파라미터에 이젝션할 DLL의 HANDLE을 넘겨주면 된다. 참조 카운트 ? Windows Kernel Object에 존재한다. LoadLibrary("a.dll")를 10번 호출하면 a.dll에 대한 참조카운트도 10이 된다. 나중에 a.dll을 해제할 때 역시 FreeLibrary() 10번 호출 해줘야 한다. 즉, LoadLibrary가 카운트가 +1, FreeLibrary는

Naver Blog

PE 패치를 이용한 DLL 로딩

PE 패치를 이용한 DLL 로딩 실행 파일을 수작업으로 패치시켜 사용자 DLL 파일을 로딩시키는 방법을 알아본다. 인젝션에서는 프로세스를 수작업으로 패치하여 강제 인젝션을 했었다. 이 PART 에서는 프로세스가 아닌 실행파일을 직접 패치시키는 PART이다. 실습 파일 목표 : TextView.exe 파일을 직접 수정 실행 시 myhack3.dll을 로딩하도록 한다. TextView.exe TextViewe.exe ? 텍스트 뷰어 <myhack3.cpp> PEView <TextView.exe - IDT(Import Directory Table)> TextView_patched.exe TextView_patched.exe ? TextView.exe 파일의 IDT를 변경하여 myhack3.dll을 임포트 하도록 미리 패치시킨 파일 기존의 TextView.exe와 다른점은 myhack3.dll이 추가된 것을 확인 할 수 있다. 즉, TextView.exe_patched.exe 파일은 실행

Naver Blog

PE Tools

PE Tools PE Tools ? 프로세스 메모리 덤프, PE 헤더 Editing, PE Rebuilding 기능을 가진 PE Tools PE Tools는 시스템에서 실행중인 모든 프로세스 리스트를 구해온다. PE Tools 사용 목적 ? 프로세스 메모리 덤프, PE 헤더 수정 프로세스 메모리 덤프 덤프 ? 메모리의 내요을 그대로 파일로 저장시킨다. 1. 메모리 내용을 확인할 때 자주 사용 2. 실행 압축된 파일의 경우 일반적으로 메모리에서는 압축이 해제된 상태로 존재하므로 원본과 비슷한 코드와 데이터를 확인할 수 있다. 상 : 실행 중인 프로세스 하 : 해당 프로세스에 로딩된 DLL 모듈 이미지 덤프 하는 방법 : 위쪽화면 프로세스 이름 선택 → 마우스 우측 클릭 Dump Full : 프로세스의 PE 헤더를 검사하여 ImageBase 주소에서부터 SizeOfimage 크기만큼 덤프하는 기능(이 영역이 바로 PE 파일이 메모리에 로딩된 이미지 크기) PE Image ? PE 파일

Naver Blog

Code 인젝션

Code 인젝션 DLL 인젝션 기법과 무엇이 다른가 ? Code 인젝션 ? 상대방 프로세스에 독립 실행코드를 삽입한 후 실행하는 기법 CreateRemoteThread() API를 이용하여 원격 스레드 형태로 실행하므로 Thread 인젝션이라고도 한다. 인젝션 대상이 되는 target.exe 프로세스에 코드와 데이터를 삽입한다. 이때 코드의 형식은 스레드 프로시저 형식으로 해주고, 코드에서 사용되는 데이터는 스레드의 파라미터로 전달한다. DLL 인젝션 vs Code 인젝션 Windows 메시지 박스 출력 코드 ThreadProc()코드를 bat 파일로 만든 후 Ollydbg를 실행시키면 다음과 같다. 코드 인젝션을 사용하는 이유 메모리를 조금만 차지한다. 아주 작은 크기의 코드와 데이터를 인젝션할 때는 DLL로 만들어서 인젝션할 필요가 없다. 간단히 말해서 Code 인젝션으로 구현하면 DLL 인젝션고 같은 기능을 제공하면서 메모리를 훨씬 덜 차지한다. (DLL 파일로 만들 필요는 없

Naver Blog

어셈블리 언어를 이용한 Code 인젝션

어셈블리 언어를 이용한 Code 인젝션 어셈블리 언어를 이용하여 Code 인젝션 기법에 사용되는 코드 생성 목표 어셈블리 언어는 C언어보다 훨씬 더 자유로운(정형화되지 않은) 코드를 생성할 수 있다. 순수 어셈블리 언어로 제작된 ThreadProc() 함수를 notepad.exe 프로세스에 인젝션해본다. 이전 글에서 설명한 (C언어로 생성된) ThreadProc()과 어떤 차이점이 있는지 살표본다. 어셈블리 프로그래밍 어셈블리 언어 개발도구 : MASM, TASM MASM : 다양한 Macro 함수와 라이브러리를 지원하기 때문에 C언어와 비슷한 수준으로 편리하게 프로그래밍이 가능 TASM : ??? OllyDbg의 Assemble 명령 Ollydbg의 Assemble 명령을 이용한 어셈블리 프로그래밍을 해본다 실습도구 Name Tags Files asmtest.exe Untitled Untitled OllyDbg의 코드 창에서 401000주소에 'New orginhere[Ctrl +

Naver Blog

정보보안기사 정보

저도 정보보안기사를 취득할려고 자료를 찾아 보았습니다. 모든 자료는 정보보안국가기술자격검정센터에서 나온 자료들입니다 https://kisq.or.kr/main/main.do#none; KISQ정보보안국가기술자격검정센터 KISQ정보보안국가기술자격검정센터 kisq.or.kr 정보보안국가기술자격검정센터 메인 홈페이지 정보보안국가기술자격검정센터에서 정보보안기사및 산업기사를 응시를 할 수 있습니다. 정보보안 국가기술자격검정 최종합격자 현황(5회~14회) 정보보안기사는 합격률이 낮아서 주변사람들은 3학년때 산업기사도 보는 사람도 있었습니다. 합격률도 낮은데 .. 년마다 시험횟수가 2회 밖에 불과합니다. 2020년 정보보안기사 시험일정 정보보안 기사 및 산업기사 시험시간 정보보안기사에 대한 책들은 무엇이 있는지 알아봤습니다. 1.알기사 정보보안기사&산업기사 필기편 첫번째는, 알기사 정보보안기사&산업기사 필기편입니다 가격은 판매가 :45,000 지금 알기사 홈페이지에서는 40,500 으로 할인해서

Naver Blog

정보보안기사 참고 블로그 및 기출문제 사이트

정보보안기사를 공부하면서 참고하면 좋은 블로그랑 기출문제 사이트를 정리해봤습니다 블로그 정보보안기사 필기 정리 요약집(2019 알기사, 네트워크 보안~어플리케이션 보안) 2019] 알기사 필기2.pdfdrive.google.com 제가 정리한 정리집입니다. * 범... blog.naver.com 정보보안기사 필기/실기 통합본 및 요약 2019년 정보보안기사(산업기사) 통합본, 정보보안기사 실기 요약, 정보보안기사 실기 문제정리로 구성되어 있습니다. 수험 준비에 참고하시어 도움이 되시길 바랍니다. 출처는 모의침투연구회와 정보보안기사 스터디모임입니다. 자료는 하단 blog.daum.net [필기] 정보보안기사 요약 정리_1 1과목부터 5과목까지 모두 정리 luypaeng0.tistory.com 기출문제 사이트 http://q.fran.kr/%EC%8B%9C%ED%97%98/%EC%A0%95%EB%B3%B4%EB%B3%B4%EC%95%88%EA%B8%B0%EC%82%AC 정보보안기사 기출

Naver Blog

SQLD 준비

오늘은 국가공인 자격증 SQLD에 대해 알아보겠습니다. 모든 내용은 Kdata 데이터자격검정 사이트를 통해 가져왔습니다 https://www.dataq.or.kr/www/main.do 데이터자격시험 연간일정 자격소개 시험접수 시험결과조회 자격증발급 민원접수 공지사항 더보기 · 신종 코로나바이러스(우한폐렴) 감염 예방을 위한 수험자 안내문 · DataQ 사이트를 새롭게 오픈합니다. · [수험표 발급일 변경 안내] 제16회 데이터분석전문가(필기), 제24회 데이터분석준전문가 · 2020년 1분기 자격검정 고사장 안내(수정) · '20년도 1분기 시험 운영에 대한 코로나19 관련 수험자 안내사항 · 진흥원 창립기념일 휴무안내 2월 4일(화) · 빅데이터 분석기사 수탁기관 지정 DAP / DAsP 데이터아키텍처 자격검정 (DAP) 공... www.dataq.or.kr 데이터자격검정 사이트 메인 페이지 사이트에 들어가면 메인 페이지가 바로 나옵니다. 우리가 관심 있어하는 자격검정 일정, 장소

Naver Blog

SQLD - 데이터 모델링

SQLD - 데이터 모델링 - 데이터 모델링 데이터 모델링은 현실세계를 데이터베이스로 표현하기 위해서 추상화 한다. - 데이터 모델링의 특징 추상화 : 공통적인 특징을 찾고 간략하게 표현한다 단순화 : 복잡한 문제를 피하고 누구나 이해할 수 있게 표현한다 명확성 : 명확하게 의미가 해석되어야 하고 한 가지 의미를 가져야 한다. - 데이터 모델링 단계 개념적 모델링 → 논리적 모델링 → 물리적 모델링 - 데이터 모델링의 고려사항 데이터 중복, 비유연성, 비일관성 1. 개념적 모델링(Conceptual Data Modeling) 1) 전사적 관점에서 기업의 데이터를 모델링한다 2) 추상화 수준이 가장 높은 수준의 모델링이다 3) 업무측면에서 모델링한다 4) 엔터디(Entirty), 속성(Attribute)을 도출하고 개념적 ERD를 작성한다. 2. 논리적 모델링 정규화를 통해서 재사용성을 높인다 3. 물리적 모델링 성능, 보안, 가용성 등을 고려하여 데이터베이스를 구축한다. - 데이터

Naver Blog

SQLD - 데이터 모델과 성능

SQLD - 데이터 모델과 성능 - 정규화 1. 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정 2. 데이터의 중복제거, 데이터모델의 독립성 확보 3. 이상현상 : 불필요한 정보가 같이 추가 되거나, 새로운 값을 입력하거나 추가 해야 되지만 추가를 못하는 경우를 말함. 4. 정규화된 모델은 테이블이 분해된다. // 분해가 되면 테이블간에 조인(Join)을 수행하여 하나의 합집합으로 만들 수 있다. 5. 정규화를 수행하면 불필요한 데이터를 입력하지 않아도 되기 때문에 중복 데이터가 제거 된다. - 정규화 절차 1. 제1정규화 : 속성의 원자성을 확보한다. // 기본키를 설정한다 2. 제2정규화 : 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거한다. 3. 제3정규화 : 기본키를 제외한 칼럼 간에 종속성을 제거한다. // 이행 함수 종속성을 제거한다. 4. BCNF : 기본키를 제외하고 후보키가 있는 경우,

1 2 3 4 5 6