bash script2023. 6. 20. 17:11

 

반달가면 이글루에서 백업 - bahndal.egloos.com/569412

 

이전에 작성했던 리눅스 다중 사용자 환경에서의 expect 스크립트 관련 문제에 대한 해결책이다. ssh, rsync 등 원격접속이 포함된 작업을 자동화할 때 생기는 보안 문제이며, 이에 대한 자세한 내용은 이전 게시물을 참고하자. 여기로

 

기본적인 접근 방식은 사용자로부터 암호를 입력 받아서 이것을 임시 파일에 저장한 후, expect 스크립트에서 이 임시 파일을 조회하여 사용하도록 하는 것이다. 말로 설명하면 복잡하니 예시를 보는 편이 더 빠르겠다. 이전 게시물에서 사용한 auto_rsync.exp 스크립트를 가지고 생각해 보자. 일단 expect 스크립트 실행은 아래와 같은 형태다.

 

expect -f auto_rsync.exp [source_dir] [remote_host] [remote_dir] [password]

여기서 마지막 인자 [password] 부분을 아래와 같이 바꿔보자는 것이다.

expect -f auto_rsync.exp [source_dir] [remote_host] [remote_dir] temp_file.txt

위와 같이 하면 프로세스 목록에 접속암호가 드러나지 않을 것이다. 또한 임시 파일(위의 예시에서 temp_file.txt)의 접근권한을 제대로 설정하면 다른 사용자는 접속암호가 저장된 임시 파일을 열람할 수 없다. 아래의 예시 스크립트를 보자. 접속암호를 입력받은 후에 auto_rsync.exp를 실행하기 위한 스크립트다.

# auto_rsync.exp를 실행하기 위한 스트립트
src_dir="/home/john/documents"
remote_host="john@192.168.0.10"
remote_dir="/home/john/backup_dir"
# 암호 입력 받기
echo "john@192.168.0.10의 접속암호를 입력해 주세요."
read password
# 임시 파일 생성 ($$: 프로세스 식별자, PID)
touch temp_$$.txt
# 접근권한 설정(사용자 본인만 접근 가능)
chmod 600 temp_$$.txt
# 접속암호 저장
echo "$password" > temp_$$.txt
# expect 스크립트 auto_rsync.exp 실행
expect -f auto_rsync.exp "$src_dir" "$remote_host" "$remote_dir" temp_$$.txt
# 임시 파일 제거
rm temp_$$.txt

임시 파일 생성은 touch와 chmod의 조합 대신에 mktemp 명령을 활용해도 편리하다. mktemp에 대한 내용은 이전 게시물을 참고하자. 여기로

 

자, 그러면 auto_rsync.exp 스크립트의 내용은 어떻게 바꿔야 할까? 우선 이전 게시물에 있었던 내용을 잠깐 보자. 접속암호에 해당되는 변수인 password의 값을 인자(argument)로부터 할당했다.

# 이전 게시물에 있던 auto_rsync.exp 처음 부분
set src_dir [lindex $argv 0]
set remote_host [lindex $argv 1]
set dst_dir [lindex $argv 2]
set password [lindex $argv 3]
...

위의 예시에서 password 변수의 값을 인자가 아니라 파일로부터 받아야 하므로, 임시 파일 이름을 인자로 받은 후 해당 파일을 열어서 그 내용을 password 변수에 할당하면 된다. 즉, 아래와 같이 고쳐야 할 것이다.

set src_dir [lindex $argv 0]
set remote_host [lindex $argv 1]
set dst_dir [lindex $argv 2]
# 임시 파일 이름을 인자로 받아 temp_filename 변수에 할당
set temp_filename [lindex $argv 3]
# 파일 열기
set file_open [open $tmp_filename]
# 파일 내용을 읽어서 password 변수에 할당
set password [read $file_open]
...

다중 사용자 환경에서 자동접속을 통한 작업을 하려면 좀 불편하더라도 위와 같은 형태로 스크립트를 만들어야 한다.

 

728x90
Posted by 반달가면
bash script2023. 6. 20. 17:05

 

반달가면 이글루에서 백업 - bahndal.egloos.com/568985

 

작업 자동화를 위해 expect 스크립트를 사용할 경우, 접속암호를 인자(argument)로 사용하면 보안 측면에서 한가지 큰 문제가 있다. 이전에 게시했던 ssh 자동접속이라던가, rsync 자동백업이라던가 이런 종류의 작업이 가지고 있는 약점이다.

 

나 혼자만 사용하는 리눅스 PC/서버라면 별 문제가 되지 않으나, 여러 사람이 함께 사용하는 환경이라면 expect 스크립트에서 접속암호를 인자로 사용하는 것이 심각한 문제가 된다. 프로세스 목록에서 접속암호가 노출되기 때문이다.

# 프로세스 목록중에 expect 추려내기
# -e 옵션: 전체 프로세스 선택
# -f 옵션: full-format 출력
ps -ef | grep expect

리눅스에서는 기본적으로 어느 사용자라도 해당 기기에서 실행중인 전체 프로세스 목록을 볼 수 있다. 즉, 다른 사람이 실행중인 프로세스가 무엇이 있는지 다 볼 수 있다는 얘기다.

# 사용자 john이 실행중인 프로세스 추려내기
ps -ef | grep "^john "

다중 사용자 환경이라면 접속암호를 인자로 사용하는 일이 없도록 해야 한다. 즉, 이전에 게시한 expect 스크립트를 통한 ssh/rsync 자동화 작업은 사용하지 말아야 한다.

이 문제를 피하기 위한 expect 스크립트 변경은 추후에 정리해 볼 예정.

728x90
Posted by 반달가면
코로나19(우한폐렴)2023. 6. 20. 13:15

 

반달가면 이글루에서 백업 - bahndal.egloos.com/652635  (2021.11.8)

 

내용이 복잡하다면 복잡할 수도 있지만, 현재 벌어지는 상황이 상당히 기괴해 보이기 때문에, 자료를 조사하고 논리적으로 차분하게 생각해 봐야 할 충분한 가치가 있다고 생각되는 사안이다. 

아래의 링크는 2021년 10월 26일자 FDA 백신생물의약품자문위원회(VRBPAC) 회의 관련 공식 문서다.

Vaccines and Related Biological Products Advisory Committee Meeting, October 26, 2021

 

이 문서의 10~11페이지에는 화이자 코로나19 백신의 효과와 관련한 임상시험 결과에 대한 내용이 나온다. 화이자 코로나19 백신의 제품명은 코머나티(Cormirnaty)이다. 일부 내용을 번역해 보자면 아래와 같다.

우선 10페이지 항목 4.1의 처음 부분이다.

 

 

...
4.1 16세 이상 개인에 대한 2회 접종 코머나티의 효과

2회 접종 시점으로부터 최소 7일 이후 코로나19를 예방하기 위한 BNT162b2의 효과는 현재 진행중인 3상 시험 C4591001을 통해 평가가 이루어 졌으며, 약 4만4천명의 참가자가 무작위로 1:1로 나뉘어 3주 간격으로 BNT162b2 또는 위약(placebo)을 투여받았다.
...


여기까지는 그렇다고 치자. 묘한 내용은 이 부분이다. 11페이지의 항목 4.3이다.

 

 

...
4.3 12~15세 청소년에 대한 2회 접종 화이자-바이온테크(Pfizer-BioNTech) 코로나19 백신의 효과와 안전성

2021년 5월 10일, FDA는 12~15세를 대상으로 화이자-바이온테크 코로나19 백신의 사용을 인가했으며, 이는 현재 진행중인 2/3상 시험의 안전성 및 효과 관련 데이터에 근거한 것이다. 이 시험은 12~15세 2260명이 참가한 화이자-바이온테크 코로나19 백신의 무작위(randomized), 이중검맹(double-blinded), 위약군 대비(placebo-controlled) 시험이다.

청소년에 대한 백신의 효과는 12~15세 참가자가 2차 접종 1개월후에 나타나는 코로나19 50% 중화항체 역가(SARS-CoV-2 50% neutralization antibody titers)와 16세~25세 참가자의 동일한 기준의 중화항체 역가를 비교하는 방식의 면역가교(immunobridging) 분석을 통해서 추정(infer)하였다.
...

 

 

뭔가 좀 이상하다. 12~15세 청소년들에게 백신의 효과가 얼마나 있는지를 확인하는데, 실제 데이터에 근거하지 않고 "면역가교"라는 방식을 통해서 16세~25세 참가자와 항체 수치를 비교하는 방식으로 추정했다는 것이다. 16세 이상에 대한 시험에서는 사용하지 않았던 방식이다.

아래의 기사를 보면 "면역가교" 방식에 대한 힌트를 얻을 수 있다. 지난 7월 30일자 메디소비자뉴스 기사다.

코로나 백신, 항체량-예방 효과 입증할 '고차 방정식' 풀리나

 

기사의 일부 내용을 가져와 보면 아래와 같다.


..
기존 임상에서는 수만 명의 피험자들을 모집해 백신을 투여한 사람과 위약을 투여한 사람의 감염률을 비교한다. 이러한 위약 대조 무작위 비교 시험은 앞으로 일부 국가에서는 윤리적인 문제로 인정받지 못하게 될 가능성도 있다. 현재 새로운 백신 개발은 대부분 작은 회사에서 개발하기 때문에 자금난으로 대규모 임상 시험이 어렵다. 항체량과 예방 효과의 상관 관계가 밝혀지면 제약사는 개발 중인 백신을 접종 한 소수 피험자의 혈액을 검사하여 기준이 되는 수준의 중화 항체가 있는지 확인하여 유효성을 판단할 수 있게 된다.
...


즉, 12~15세를 대상으로 한 코로나19 백신 효과는 실제 감염률을 확인한 것이 아니라 항체량을 측정해서 계산했다는 얘기다. 왜 이런식으로 했는지에 대한 힌트는 미국 CDC의 데이터에서 찾을 수 있다.

CDC COVID DATA Tracker

 

 

10만명당 몇명이 코로나19로 인해서 병원에 입원하는지를 연령별로 나타낸 그래프다. 오른쪽 그래프를 보면 색깔별로 여러개의 선들이 보이는데, 연령대를 구분하여 각기 다른 색의 선으로 나타낸 것이다. 가장 높게 나타난 자주색 선은 70세 이상에 해당된다.

자, 이제 17세 이하는 어디쯤 있는지 보자. 바닥에 깔린 노란색 선이다. 사실상 0에 머물러 있다. 이것은 무슨 의미인가? 17세 이하에서 코로나19로 인해서 입원하는 사례가 사실상 거의 없다는 얘기다. 건강한 청소년들은 코로나19에 거의 걸리지 않거나, 걸린다고 해도 가볍게 아프고 지나간다고 밖에 볼 수 없다.

결론적으로, 화이자에서 12~15세 청소년 대상으로 백신의 효과를 검증할 때 면역가교 방식을 택한 이유는 12~15세 청소년들 중에 코로나19에 걸려서 아픈 경우가 너무 없어서 통계적으로 유의미한 데이터를 뽑는 것이 불가능했기 때문인 것으로 보인다.

이런 상황에서 청소년에게 백신접종을 승인하겠다는 FDA의 용기와 기백은 대체 어디서 오는지 참으로 놀라울 따름이다. 심각한 기저질환이 있다면 모를까, 멀쩡한 청소년들중에는 코로나19 중증환자가 사실상 없는데 그래도 청소년을 대상으로 코로나19 백신을 접종하겠다고? 정말 대단하지 않은가?

CDC도 FDA도 다들 눈이 멀어버린 것인가, 아니면 내가 모르는 정말 심오한 어떤 이유라도 있는 것인가? 혹시 전 FDA 국장 스캇 고틀립(Scott Gottlieb)이 화이자의 임원이기 때문일까?

 

우리나라를 포함한 각국의 보건당국은 무슨 생각으로 청소년들에게 코로나19 백신 접종을 하고 있는 것일까? 그냥 아무 생각 없이 미국 FDA의 결정을 맹목적으로 따라가고 있는 것일까, 아니면 마찬가지로 내가 모르는 정말 심오한 어떤 이유라도 있는 것일까?

728x90
Posted by 반달가면
코로나19(우한폐렴)2023. 6. 20. 10:36

 

반달가면 이글루에서 백업 - bahndal.egloos.com/652517  (2021.11.3)

 

사진 출처는 CNN이며, 아래의 링크에서 확인할 수 있다.

Day 2 of G20 summit as COP26 opens - CNN

 

아래의 사진들은 G20 정상회의 참석자들의 모습이다. 첫번째 사진은 바이든(Biden) 미국 대통령과 에르도안(Erdogan) 터키 대통령이고, 두번째와 세번째 사진은 보리스 존슨(Boris Johnson) 영국 총리를 비롯한 세계 정상들이 트레비(Trevi) 분수 앞에서 동전을 던지는 모습이다.

 

 

문제1) 이들이 마스크를 착용하지 않고 거리두기도 하지 않은 이유는 무엇인가?

  가. 코로나19 방역 수칙의 중요성도 모르는 멍청이들이기 때문이다. 조만간에 줄줄이 코로나19 걸려서 병원에 실려갈듯.

  나. 다들 코로나19 백신을 맞아서 그런것 아닐까? 백신 맞았으면 저렇게 해도 괜찮을듯.

  다. 코로나19 방역 수칙이 실제로는 쓸모 없다고 생각하기 때문이다. 본인 목숨이 위험해 봐라. 저러고들 있겠나.

  라. 우리가 확인할 방법은 없지만, 다들 모이기 전에 코로나19 음성판정 증명서를 내고 모이지 않았을까?

  마. 기타 (                         )

아래의 사진들은 지난 8월에 있었던 오바마(Obama) 전대통령의 환갑잔치의 모습이다. 출처는 8월 10일자 국민일보 기사이며, 아래의 링크에서 확인할 수 있다.

“교양있는 이들이라 안전”? 오바마 환갑잔치 옹호 NYT기자

 

 

문제2) 이들이 마스크를 착용하지 않고 거리두기도 하지 않은 이유는 무엇인가?

문제3) 백신 접종완료자들도 마스크를 착용하고 거리두기를 해야 하는 이유는 무엇인가?

판단은 각자의 몫이겠지만, 저 사진에 나온 사람들이 멍청한 바보들이 아니라는 점은 분명하다. 무모하게 도박을 하고 있거나 뭘 몰라서 저러고 있을 가능성은 사실상 없다.

728x90
Posted by 반달가면