no image
진단 Tool 제작_5 (결과 모델링 및 학습)
직접 진단한 결과를 DB에 저장까지 했으니, 이 결과들을 가지고 취약점 예측 모델을 만들어야 한다. 진단 Tool 제작_4 (데이터 저장) 내가 생각한 학습 모델은 다음과 같다.     1). DB에 저장된 현황과 결과를 학습하여 각 "양호", "취약", "N/A", "인터뷰" 등의 결과를 내야 하고        2). 진단 시 오탐률은 최대한 적어야 한다.   맨 처음글에서도 썼지만, 취약점 자동화 솔루션들은 특정 설정값 존재여부에 대해 확인하고  존재하는 경우 : 양호 / 존재하지 않는 경우 : 취약    => 즉 설정값 과 기준 값의 1 : 1 Mapping 을 통한 진단 이라는 것그럼 기준에는 적합하지 않지만 양호의 결과가 존재한다면..? 예를 들어 이런 항목이다. =================..
2024.07.11
no image
진단 Tool 제작_4 (데이터 저장)
이제 데이터를 저장해야 한다. 진단 Tool 제작_3 (데이터 분할 및 데이터 프레임화 코드 변경) DB에 Label 결과가 없는 상태로 1차 저장을 하고 Label 값을 사람이 넣고 난 후에 해당파일을 다시 넣으면 Label을 진행하여 각 현황에 맞는 결과를 DB에 저장한다. DB에 저장을 하기 위해서 코드를 작성했다.if os_db_path: os_conn = sqlite3.connect(os_db_path) os_cursor = os_conn.cursor() os_cursor.execute('SELECT COUNT(*) FROM processed_files WHERE filename = ?', (file_name,)) i..
2024.07.10
no image
진단 Tool 제작_3 (데이터 분할 및 데이터 프레임화 코드 변경)
앞서 글에서 데이터 분할은 완료하였고, 데이터 프레임도 했었는데 한가지 의문이 생겼다. 진단 Tool 제작_1 (데이터 분할) (tistory.com) 데이터 분할을 한다는 것은 "Script 결과" 를 특정 항목별로 분리해서 U-01.txt 와 같이 분리하는 것이였다. 그렇다면,  구조는 아래와 같다 " 원본 스크립트 파일 " 을 분할하여 "항목별 텍스트 파일" 결과를 가지고 "데이터 프레임화" 하는 것이다. 원본 결과를 가지고도 데이터프레임화를 할 수 있는데 굳이 항목별로 텍스트 파일을 만들어야 하는 의문이 생겼다. 특정 문구를 가지고 Parsing 하면서 나머지 데이터를 지우면..항목별 텍스트 파일 결과가 왜 필요하지..??그리하여, 나는 "원본 스크립트 결과 파일" 을 통해 데이터 프레임화 하기로..
2024.07.09
진단 Tool 제작_2 (데이터 수집)
앞서 글에서 데이터 분할은 완료하였으니 이제 데이터 프레임화를 진행해볼까 한다.  진단 Tool 제작_1 (데이터 분할) (tistory.com) 데이터 프레임화 에 대해서 간략하게만 정의하면 "표" 를 만드는 것이라고 생각했다. 자세한 설명은 구글링( 3) 데이터프레임이란? - 인투 더 파이썬(INTO THE PYTHON), 기초부터 AI까지 (wikidocs.net)에서 도와줄 것이다.   즉, 항목번호(U-01, U-02 ~ U-72) 별로, 각 텍스트 파일에 있는 값을 가져왔다 file_paths = glob.glob('./data/**/U-*.txt', recursive=True)for file_path in file_paths: file_name = os.path.basename(file..
2024.06.27
진단 Tool 제작_1 (데이터 분할)
주요정보통신기반시설, 전자금융기반시설, ISMS 등 ... 각 취약점 진단에 항목이 존재한다.  스크립트를 수행하면 그 항목의 1번부터 마지막번호까지 합쳐져서 하나의 텍스트파일로 떨어진다.  물론 이 텍스트 파일을 열어서 특정 값을 기준으로 데이터를 추출할 수도 있지만, 사내 스크립트에는 Reference 기능이 있다. 내가 사용하고 검색한 파일에 대해서 내용을 긁어오는 것이다.  그러다보니, 불필요한 정보들이 너무 많아서 파일의 크기가 큰 경우에는 100MB를 넘어가기도 한다. 이런 파일들을 Open 하고 Readline 으로 한줄씩 읽어버리면 너무나도 많은 시간이 소요되기 때문에하나의 스크립트 결과를 항목 코드별로 분할했다. U-01.txtU-02.txtU-03.txtU-04.txtU-45.txtU-..
2024.06.26
취약점 분석 및 진단 Tool 제작
내가 재직중인 회사에서의 나의 직무는 보안컨설팅 이다.  그 중에서도 내 주 업무는 "인프라 취약점 진단" 이며, 내 업무는 여러가지가 있다. ========================================== 1). 주요정보통신, 전자금융기반, ISMS, ISMS-P 컨설팅 프로젝트 투입 2). 사내 자산관리 (가상화서버, 보안시스템 , AP, 스위치) 3). 인프라 취약점 진단 스크립트 제작/변경 4). 테스트 배드 환경 구축 등등등등..========================================== 취약점 진단 뿐만 아니라 자산 관리 등 여러 업무를 진행하지만 내가 주로 많이 하는 업무는 "1, 3" 이다.  이 취약점 진단을 하는 과정이 여러 회사마다 다르겠지만 우리회사는 "..
2024.06.25
no image
SMTP 연동 (Feat. Synology DS220+ Mediawiki)
지난번 소스코드 형상관리를 위한 Synology NAS에 MediaWiki를 연동했었다. : MediaWIki 설치 (Feat. Synology DS220+ Docker) MediaWiki를 사용하는 것도 역시 나혼자 쓰는게 아니라, 팀원과 같이 쓰기위해 만들었다. 이걸 만든 목적은,, 각자 공부한 내용 리뷰하거나, 정리하는 목적도 있지만 보안컨설팅 일을 하다보니 프로젝트 내에 진단하는 과정에서 헷갈리는 것들에 대해서 질의응답식으로도 진행하기 위해서였다. 오늘은 MediaWiki과 SMTP를 연결할 것 이다. Gitlab은 SMTP를 연결했기 때문에 Commit 한 내역이 메일로 오지만, MediaWiki의 비밀번호 찾기 와 알람등을 하려면 역시 SMTP를 설정해야 한다. ---------..
2024.01.14
no image
MediaWiki 설치 (Feat. Synology DS220+ Docker)
나는 지난번 회사 Synology NAS의 Container Manager(Docker) gitlab을 설치했다. 형상관리를 위해서 설치했고, 현재 접근권한에 관련된 기능이 Gitlab에 없는 것 같아서 Ruby 스크립트를 만들던 와중에 Synology NAS에 MediaWiki를 설치해보려고 한다. --------------------------------------------------------------------------------------------------------------------- 준비물 1. Synology NAS(DS220+) --------------------------------------------------..
2024.01.12
no image
SMTP 연동 (Feat. Synology DS220+ Gitlab)
지난번 소스코드 형상관리를 위한 Synology NAS에 Gitlab을 연동했었다. : gitlab, Synology NAS(DS220+) 연동 형상관리를 위한 GitLab 서버도 만들어놨고, 프로젝트도 올려놓았다. 이제 실제 스크립트를 개발하는 인력들을 초대하여 프로젝트에 추가하여야 하는데 아직 SMTP가 구축되지 않았어서, Commit 한 내용들에 대해서 확인을 할 수 없는 상황이었기에 오늘은 Gitlab과 SMTP를 연결할 것 이다. 검색을 여러군데 해보니, DSM 6버전 에서는 Docker에 Gitlab을 올릴때 환경변수에다가 SMTP를 하는 방법이 있었던 것 같다. 하지만 나는 DSM 7버전을 사용하기 때문에 이 방법이 과연 가능할까라는 의문이 생겨서 도전하지 않았고ㅡ 실제로 gi..
2023.12.22