mteb/MIRACLReranking huggingface dataset:
일본 한자음 오음(吳音, )은 5, 6세기에, 남북조 시대의 남조에 있던 양쯔강 하류 지역의 발음이 직접, 혹은 한반도를 거쳐서 일본으로 유입되었다고 추정되는 한자음이다. 이 때 '오'는 지역의 이름으로, 현재의 상하이와 항저우를 중심으로 양쯔강 하류 지역을 포괄적으로 이르는 말이다. 오음이 들어온 경로를 이와 같이 추정하는 것은 왜5왕이 남조한테 사신을 보냈던 시기였기 때문에 중국과 일본 간의 교류가 많았고, 중국본토와 한반도로부터 불교와 유교가 유입되던 시기였다는 역사를 토대로한 이유 때문이다. 그러나, 오음이 정말 남방계통의 발음인가를 확실히 증명할 수 있는 사료는 없다.
일본 프로 야구 올스타전 선수의 범위는 원칙적으로 28명씩(총 56명)이지만 경기수 등을 고려해서 늘어나는 경우가 있다. 2010년에는 ‘플러스 원’에 의해서 29명(총 58명), 3경기제인 2011년부터 2013년까지는 ‘플러스 원’을 포함해 32명(총 64명)이 됐다. 감독은 전년도 리그 우승 구단의 감독이 맡고, 코치는 전년도 2위·3위 팀의 감독이 맡는다.
2014년 일본 프로 야구 신인 선수 선택 회의 2014년에도 전년도와 마찬가지로 다이쇼 제약이 특별 협찬사이며, 공식 명칭은 회사의 주력 상품인 리포비탄 D를 따서 "2014 프로 야구 드래프트 회의 supported by 리포비탄 D"가 되었다.
한자표기어 한자표기어(漢字表記語)란 단어를 분류하는 방식의 하나로, 한자로 표기가능한 모든 단어를 일컫는다. 한자표기어란 개념은 그 단어가 어원적으로 한자어인가 아닌가와는 별도로 일정하게 고정된 한자표기를 갖고 있으면서 단어로서 인식되면 모두 한자표기어로 본다. 취음된 고유어나 외국의 고유명사, 일본어에서 고유어로 읽으나 한자형태로 들어온 낱말들이 여기에 속한다.
1993년 일본 프로 야구 올스타전 전년도에 관록의 일본 시리즈 3연패를 달성한 세이부 라이온스의 모리 마사아키 감독이 퍼시픽 리그 올스타팀을 지휘했고 15년 만에 센트럴 리그 우승을 달성한 야쿠르트 스왈로스의 노무라 가쓰야 감독이 센트럴 리그 올스타팀의 지휘를 맡았다. 전년도까지는 퍼시픽 리그가 주최하는 경기에 한해서 실시된 지명타자 제도가 이 해부터 센트럴 리그 주최 경기에도 적용됐다.
왜 백제와 왜는 평소 문물을 교류하고 지냈다. 예를 들어, 백제인인 왕인 박사는 왜에 천자문과 기타 유교 경전을 전수했으며, 수수허리지는 일본에 술을 만드는 법을 전파했다. 이외에도 수많은 기술자들과 학자들이 일본에 문화를 전파하였고, 백제는 이를 통해 군사적 이득을 얻으려 한 것으로 보인다. 또한 백제와 왜가 교류 했다는 증거로 무령왕릉의 무령왕 관을 예로 들 수 있다. 무령왕의 관의 재질은 일본의 금송으로 그당시 일본지역에서만 자라던 소나무이기 때문이다. 660년 백제가 멸망하게 되자 왜는 고교쿠 천황(사이메이 천황)이 백제를 돕기 위해 3만 대군을 출병시켰으나 백강구 전투에서 신라군에 의해 대패하였다. 멸망한 이후의 백제 유민의 상당수는 왜로 유입되어 정착하게 되었다.
머리전달함수 머리전달함수(Head Related Transfer Function, HRTF)은 동일한 소리를 전방위에서 발생시켜 방향에 따른 주파수 반응을 측정하여 3차원 함수로 정리한 것을 말한다. 한때, 일본에서 들어온 번역명인 두부전달함수(頭部伝達関数)가 쓰인적이 있었으나 현재는 학계에서 머리전달함수라는 정정한 용어를 사용한다.
일본 선수권 시리즈 1949년에 일어난 일본 프로 야구의 리그 분열을 계기로 이듬해인 1950년에 센트럴 리그와 퍼시픽 리그의 각각 당해 년도의 우승자가 야구계의 최강 자리()를 걸고 대전하는 시리즈로서 도입됐다. 2007년에 클라이맥스 시리즈 제도가 도입되면서 리그전 결과와는 무관하게 클라이맥스 시리즈 우승 팀끼리에 의해서 행해지게 된 것으로 프로 야구의 연간 왕좌를 결정짓는다는 도입 당초의 성격은 희박하다. 일본 시리즈가 처음으로 개최된 1950년 이후 취소된 해는 없다. 2005년부터 2013년까지 일본 시리즈 우승팀은 ‘아시아 시리즈’, ‘한일 클럽 챔피언십’에 일본 대표로서 참가했다.
반지의 제왕 아라고른은 간달프의 부탁으로 호빗들을 깊은골로 인도한다. 프로도는 폭풍산 언덕에서 나즈굴의 대장 마술사왕에게 깊은 상처를 입는다. 그러나 그의 동료들과 요정군주 글로르핀델의 도움으로 브루네인 여울목을 건너 깊은골의 경계로 들어온다. 나즈굴들은 깊은골 경계로 들어온 순간에 깊은골의 주인인 엘론드의 명령으로 갑자기 불어난 물에 휩쓸려 떠내러 가고, 프로도는 글로르핀델의 말 위에서 정신을 잃는다.
전지왕 《일본서기》에는 아신왕이 죽자 학자 아직기가 일본에서 귀국하여 즉위했다는 기록이 있어 아직기가 전지왕이라는 학설도 존재한다.
《삼국사기》 의 아신왕, 전지왕 본기에 의하면 394년(아신왕 3년)에 태자에 책봉되었고, 아신왕이 죽고 아신왕의 첫째동생 부여훈해가 섭정을 맡고 있었는데 백제 왕실에서 내분이 일어났다고 한다. 일본에서 귀국하는 도중에 전지왕은 신하 해충(解忠)에게서 백제에서 내분이 일어난 것을 알고 섬에서 잠시 머물렀다. 그 뒤 해씨 세력은 백제에서 섭정 부여훈해를 시해하고 후임 섭정을 사칭하여 내분을 일으킨 부여설례(아신왕의 막내아우)를 죽이면서 전지왕을 즉위시키고, 그 이후에 전지왕이 백제에 들어온 것으로 파악된다.
1984년 일본 프로 야구 올스타전 전년도에 2년 연속 일본 시리즈 정상에 오른 세이부 라이온스의 히로오카 다쓰로 감독이 퍼시픽 리그 올스타팀을 이끌었고 센트럴 리그 우승을 차지한 요미우리 자이언츠의 오 사다하루 감독이 센트럴 리그 올스타팀의 지휘를 맡은 올스타전이다(센트럴 올스타팀 감독은 후지타 모토시가 이끌어야 했지만 전년도 일본 시리즈 종료와 동시에 요미우리 감독직에서 물러났다. 원래는 일본 시리즈에서 우승해도 사다하루에게 감독 자리를 넘겨주는 것이 정해져 있었다).
강경읍 1900년대 들어 조선에서 근대화의 수혜를 입는 첫 번째 지역 중 하나가 되었다. 일본인들은 강경포로 대거 진출하여 시장에 각종 상점과 금융 건물을 세웠다. 1910년대 초반에 지어진 한일은행 건물이 대표적이다. 강경은 전성기에 인구가 3만명에 달했고 유동인구는 10만명에 달했다. 1920년대 강경은 충청남도에서 처음으로 전기가 들어온 도시였다. 근처에 세워진 소규모 수력발전소에서 전기를 공급하였다. 강경극장도 세워졌다.
아람 (국가) 아람은 이스라엘 구약 시대 지금의 시리아 지방에 있었던 나라로 수도는 현 시리아의 수도인 다마스쿠스였다. 구약 성경에 자주 등장하며 오랫동안 이스라엘을 침략해 괴롭힌 나라로 알려진다.
아랍 제국 660년부터 750년까지 존속했던 칼리파 국가이다. 수도는 현 시리아의 수도인 다마스쿠스였다. 시조인 우마야의 가계는 무함마드와 같은 조상을 가진 것으로 전승된다.
바토페디 수도원 바토페디의 수도원은 수도원에 헌정된 중세 왕실의 인가서인 불가리아의 이반 아센 2세의 13세기 "바토페디 인가서"를 보존하고 있다. 그것은 1929년에 이 수도원의 기록 보관소에서 발견되었다.
리프디마슈크 주 리프디마슈크 주(, "다마스쿠스 교외"라는 뜻)는 시리아를 구성하는 14개 주 가운데 하나로, 주도는 시리아의 수도인 다마스쿠스이며 면적은 17,654km, 인구는 2,487,000명(2007년 기준)이다. 시리아 남서부에 위치하고 있고 다마스쿠스 전체를 완전히 둘러싸고 있다. 남서쪽으로는 쿠네이트라 주와 다라 주, 수와이다 주, 북동쪽으로는 홈스 주와 인접해 있으며 서쪽으로는 레바논, 남쪽으로는 요르단과 인접해 있다.
타르투스 타르투스()는 지중해 연안과 접한 시리아의 도시로, 시리아 서부에 위치한다. 타르투스 주의 주도이며 라타키아에 이어 시리아에서 두 번째로 큰 항구 도시이다. 인구는 118,000명(2008년 기준)이며 다마스쿠스(시리아의 수도)에서 북서쪽으로 220km 정도 떨어진 곳에 위치한다.
아슈르나시르팔 2세 그는 고래부터 아시리아의 수도였던 아슈르를 대신하는 신수도 카르프（님로드）를 건설하였다. 이 도시의 유적에서는 그와 관련된 수많은 유물이 출토되었는데, 그 중에는 아시리아식의 건축양식으로 유명한 셰두(사람 머리의 날개달릴 황소)의 조각상등을 설치했던 것으로 유명한 최고의 궁전이 포함되어있다. 이 궁정은 이후 사르곤 2세가 두르샤루킨에 천도하기까지 아시리아의 수도로 기능하였다.
사우디아라비아의 시리아 내전 개입 2018년 4월 17일, 아델 알주베이르 사우디 외무장관은 기자회견에서 "어떤 종류의 군대를 시리아 동부에 주둔시킬지, 그 군대는 어디에서 충원할지 등에 관해 (미국과) 이야기하고 있다"고 말했다. 사우디가 시리아 내전에서 상당한 역할을 확대할 수 있다는 분석은 도널드 트럼프 미국 대통령이 시리아 미군 철수 의사를 밝힌 후 꾸준히 제기돼왔다.
세미라미스 세미라미스는 아시리아의 전설상의 여왕이다.
시리아의 여신 데르케트와 어느 시리아인과의 사이에서 태어났지만 어려서 버려져 비둘기에 의해 교육되었다. 성장한 후 니네베의 수도를 건축했던 아시리아 왕 니누스의 총애를 받아 왕자 니뉴아스를 낳았다.
힐란다르 두 개의 중세 불가리아의 칙허장들인 "비르기노 인가서"와 "오랴호브 인가서"가 힐란다르의 도서관에 보관되어 있다. 오스만 통치 하에 세르비아와 불가리아가 쇠퇴한 후에, 특히 마케도니아로부터의 불가리아인들의 비용으로 세르비아인 수사들의 유입이 감소하였다. 17세기부터 19세기까지, 힐란다르에는 주로 불가리아인들이 거주했다. 러시아의 순례자인 바실리 바르스키의 1755년 기록에 의하면 힐란다르의 수사들은 모두 불가리아인이었다고 한다. 일라리온 마카리오폴스키, 브라차의 소프로니우스 그리고 마테이 프레오브라는 일생을 여기서 살았다. 그리고 힐란다르의 파이시우스는 이 수도원에서 그의 혁명적인 슬라브계 불가리아의 역사를 저술하기 시작했다. 1902년까지 이 수도원은 불가리아인들의 인구수가 우세했다.
시칸 텔 엘 파카리야는 카부르 강 분지의 고대 도시로 북 시리아의 알 하사카 주에 있다. 그곳은 미탄니의 수도 와슈칸니로 주장된다.
근처에 여러 유적이 있는데신 아시리아 도시 시칸은 미탄니의 후르 수도 와슈칸니로 확인된다. 시칸이라는 이름은 후르어 또는 인도아리아 원어의 아시리아 버전으로 (와)시칸(니)가 된다.
다마스쿠스 국제공항 다마스쿠스 국제공항(, )은 시리아의 수도 다마스쿠스에 위치한 국제공항으로 시리아의 국영 항공사인 시리아 항공이 허브 공항으로 이용하고 있다. 한 때 에미레이트 항공, 이집트 항공, 영국항공을 비롯해 여러 외국 국영 항공사가 이 공항에 취항을 했으나 2012년부터 시작된 시리아 내전으로 무기한 운항이 중단되었다가 2014년 일부 항공편의 운항이 재개되었다.
아시리아의 왕 (기원전 612년 아시리아 수도 니네베는 메데와 바빌론에 함락되었다. 이집트의 지원으로 아시리아 장군은 하란에서 몇 년 계속 다스렸다.)
시리아 시리아 아랍 공화국(, , 약칭 시리아(, )는 중동에 있는 공화국이다. 수도는 다마스쿠스이다. 북쪽으로는 터키, 동쪽으로는 이라크, 남쪽으로는 요르단 및 이스라엘, 서쪽으로는 레바논과 접한다.
아보비안 인구의 9할 이상이 아르메니아인으로, 주로 1960년대 시리아, 이란, 레바논에서 유입된 아르메니아계이다. 그 외에 쿠르드인, 예지디인, 러시아인, 아시리아인도 찾아볼 수 있다.
조그라프 수도원 조그라프 수도원은 오흐리드의 성 나움의 순교자 수난기의 15세기 사본 그리고, 힐란다르의 파이시우스의 "이스토리야 슬라비아노볼가르스카야"와 "조그라프의 역사"의 원고 원본과 같은 중세 필사본들이 보존되어, 불가리아 문화에 중요한 의미가 있는 도서관을 소유하고 있다. 이 수도원의 도서관에는 슬라브어로 된 388권의 필사본들과 그리스어로 된 126 권의 필사본들 뿐만 아니라, 약 10,000 권의 인쇄된 책들도 함께 보관되어 있다. 조그라프 인가서와 릴라 인가서, 이렇게 두 개의 중세 불가리아의 칙허장들이 이 수도원의 도서관에서 발견되었다.
마론파 마로나이트(, , 시리아어: ܡܪܘܢܝܐ, ) 또는 마론파는 시리아에서 태동한 기독교의 한 교파이다. 시리아의 수도자 마론(?∼423?)의 이름을 땄으며, 교리적으로 단성론을 따랐다. 18세기 이후 동방 가톨릭교회에 속해 있다. 오늘날 레바논과 시리아에서 가장 유력한 기독교 공동체이다.
시리아-레바논 전역 1941년 6월 14일, 연합국은 레바논과 팔레스타인을 항복시키는데 성공하고, 이어 트랜스요르단과 시리아로 북상한다. 이란과 이라크의 패배로, 영국군은 이라크에 있는 공군 기지를 탈환하여 영국 본토의 공군과 결집하려고 하였다. 독일은 그리스로의 침공을 시작함으로써 시리아와 레바논에 주둔하던 군대가 일부가 빠져 나갔다. 1941년 6월 21일, 시리아의 수도인 다마스쿠스가 함락되어 시리아는 연합국에 항복하였고, 약 2주 후인 7월 6일, 레바논의 수도인 베이루트가 점령되어 레바논 역시 연합국에게 항복하였다.
아르빌 아르빌은 기원전 2000년경부터 기원전 608년까지 아시리아 도시였다. 아시리아를 점령한 페르시아의 수도이기도 했다.
신자르 저항부대 신자르 저항부대는 2014년 8월 북부 이라크 공세에 참전하여 22명의 ISIL 병사들을 죽이고 5대의 차량을 신자르 산맥에서 파괴했다. 수백 명의 야지디인들은 시리아의 카미실리의 인민보호대에서 훈련을 받고 신자르 산맥의 국경 지대로 되돌아갔다. 이 병력들은 신자르 저항군으로 재편성되었다. 신자르 저항군 사령관 셰이흐 케리 케드르는 2014년 10월 신자르 충돌 중 전사했다.
카르부가 한편 포위된 성안에서 수도사 페트르스 바르톨로메오가 고행끝에 성창을 발견했다고 주장했다. 이것은 십자군에게 용기를 주었다. 같은 시기 포위를 계속하던 카르부가 군대 안에서는 군에 가담했던 시리아 셀주크 왕조의 왕자와 제후 사이에서 카르부가가 시리아 지방에 대한 이후 어떤 이야기가 나올 것인가에 의심이 생겨 의견 대립과 내분이 일어났다.
신냉전 동유럽 MD에서 러시아의 전략적 요충지는 칼리닌그라드인데, 유럽 최대 강대국 독일의 수도 베를린에서 불과 500 km 떨어져 있다. 미국과 러시아는 시리아에 대한 패권을 놓고도 싸우는데, 시리아는 "중동의 칼리닌그라드"라고 불리는 러시아의 전략적 요충지이다. 동북아시아에서는 북한이 러시아의 전략적 요충지이다.
시리아 메소포타미아 등 고대 문명들의 지배를 차례로 받았으며 페르시아의 멸망 이후에 알렉산드로스 대왕에게 정복되었다. 알렉산드로스 대왕이 죽은 뒤에 그의 부하인 셀레우코스 1세에 의해 안티오키아를 수도로 하는 셀레우코스(셀루키드) 왕조가 건설되었다. 이후에 왕조는 번영하였으나 파르티아, 이집트 등과의 계속된 전쟁으로 몰락해 버렸고 기원전 64년 로마 제국의 장군 폼페이우스가 안티오키아를 점령함에 따라 로마 제국에 귀속되었다. 그 후에도 시리아는 동방 속주의 중심지로 크게 번영하였으며 그 수도인 안티오키아는 속주시리아의 수도로서 외항 셀레우키아를 통한 외부와의 교역으로 크게 번영하였다. 로마의 동방 군단이 주둔하고 있었으며 가상의 적국인 파르티아를 견제하는 기지였다.
로자바 2016년 3월 16일 로자바 당국은 북시리아 로자바 연방()을 선포하였고, 같은 해 12월 28일 정식명칭을 북시리아 민주연방체제로 개정하였다. 수도는 자지라 주의 카미실리에 두고 있다.
서울 도봉사 치성광여래삼존도 화기에 의하면 이 치성광여래삼존도는 원래 "취정산(取頂山) □□사내원암(□□寺內院庵)"에 봉안되었다고 하는데, 내원암은 어디인지 확실하게 알 수 없지만 취정산은 대구 가창댐에서 헐티재로 가는 곳에 위치한 산인 것으로 보아 이 불화가 경상북도 지역에서 제작 봉안되었음을 확인할 수 있다.
안티오케이아 오론테스 강의 안티오케이아는 고대에 서부 시리아, 오론테스 강(현재의 아시 강) 주위에 건설되었고, 때문에 시리아의 안티오키아라고 불리기도 한다. 헬레니즘 시대의 셀레우코스 왕조 시리아 왕국의 수도, 로마 시대의 시리아 속주의 수도로써 번영을 누렸다. 실크로드의 서방 출발점으로도 알려져 있다. 일반적으로 쓰이는 「안티오키아」라는 이름은 헬레니즘 시대 이래 그리스어 발음으로 고전 그리스어에서는 「안티오케이아」라는 독법이 사용되었다. 로마 시대에는 안티오키아(Antiochia)라고 불렸다. 한편 현대의 발음은 「안디오히아」로 표기된다.
인디고페라 틴토리아 인디고페라 틴토리아, 혹은 트루 인디고로 불리는 이 식물 종은 인디고 염료에 사용되는 콩과 종류이다. 이것은 주로 열대 지방, 온대기후의 아시아, 그리고 아프리카등에 서식했지만, 전세계 많은 나라들이 경작을 시작하면서 본서식지가 어디인지 불분명해졌다. 오늘날 많은 염료들이 합성 염료이지만, 자연 염료 (즉 틴토리아) 는 아직도 시장에서 자연 색깔로 팔린다.
아라무 아시리아의 샬만에세르 3세 시대에 살았던 아라메는 아시리아 제국의 위협에 대항하여 나이리 부족을 통합하였다. 수도인 아르자쉬쿤은 샬만에세르에게 포위되었다.
오블라띠 선교 수도회 오블라띠 선교 수도회의 정식 명칭은 원죄 없이 잉태되신 마리아의 오블라띠 선교수도회이며, 로마 가톨릭교회의 선교 수도회이다. 1816년 1월 25일 프랑스 엑상프로방스 출신의 가톨릭 사제 에우제니오 드 마제노드에 의해 설립되었다. 1826년 2월 17일 교황 레오 12세에 의해 공식적인 인가를 받았다. 2011년 현재 68개국에 진출해 있으며, 회원 수는 4,400명이다.
하바브 하바브(, ܓܒܒ, Khababb)은 시리아 남부에 위치한 다라 주의 도시로, 인구는 약 10,000명으로 추산된다. 다마스쿠스(시리아의 수도)에서 남쪽으로 약 57km, 다라(다라 주의 주도)에서 남쪽으로 약 55km 정도 떨어진 곳에 위치한다.
유진길 그들은 이러한 방식으로 조선의 상황을 설명한 뒤, 마카오에 그들을 도우러 올 수 있는 선교사들이 있을지도 모름을 암시했다. 이어서 그들은 사제들이 올 수 있는 방법을 서술했다. 만일 그들이 배로 온다면, 선원이 몇 명 필요할지, 회피해야 할 위험은 무엇인지, 최선의 상륙지는 어디인지 그리고 그들이 만날 수도 있는 관리들을 다루는 방법 등이 그 내용이다.
골란고원 1950년대와 1960년대에 요르단 강의 지류를 바꾸기 위한 시리아와 이스라엘의 시도는 1966년 7월 군사적 변화를 자극했다. 팔레스타인의 조직 파타는 시리아의 지원을 받고 1965년 초 이스라엘 영토에 공습을 가했다. 초기에 군인들은 레바논이나 요르단을 통해 들어왔으나 두 나라가 그들을 막을 협정을 만들었고, 시리아를 통한 공습이 증가했다. 이스라엘의 반격은 계속된 보복이었는데, 1966년 11월 요르단의 사무에 대대적 공격을 가했다. 1967년 4월 시리아가 골란 고원의 이스라엘 마을에 맹포격을 가한 뒤, 이스라엘은 시리아 공군의 MiG기 6기를 격추시켰고 시리아에게 미래의 공격에 대하여 경고했다.
하마 (도시) 하마(, "요새"라는 뜻)는 시리아 중부에 위치한 도시로, 하마 주의 주도이며 인구는 696,863명(2009년 기준)이다. 오론테스 강과 접하며 다마스쿠스(시리아의 수도) 북쪽에 위치한다. 다마스쿠스와 알레포, 홈스, 라타키아에 이어 시리아에서 5번째로 큰 도시이며 농업과 공업의 중심지이다. 수니파 무슬림이 다수를 차지하며 동방 정교회 건물들이 들어서 있다.
다마스쿠스 1945년에 프랑스군은 다시 한 번 다마스쿠스를 공습했지만, 영국군이 개입해 프랑스군은 철퇴해야 했고, 1946년에 시리아는 독립을 이루었다. 이후, 다마스쿠스는 시리아의 수도가 되었다.
시리아 이후 기독교가 크게 전파되었으며, 안티오키아가 터키(한글성서에는 아시아로 번역)교회 대주교의 소재지가 되었다. 이후 시리아는 4세기 말 로마의 동서분열로 동로마제국의 영토가 되었고, 제국이 쇠퇴하면서 이슬람 제국의 수중에 들어갔다. 시리아의 중심지인 다마스쿠스는 우마위야 왕조시대 왕국의 수도로서 크게 번영하였다.
검의 형제기사단 검의 형제기사단(, , )은 1202년에 리보니아(지금의 라트비아와 에스토니아의 대부분 지역)의 제3대 주교 알브레히트 폰 북스회프덴이 창설한 기사 수도회이며, 1204년 교황 인노첸시오 3세로부터 정식 인가와 축성을 받았다. 정식 명칭은 리보니아의 그리스도 기사 수도회()이다. 구성원은 독일 출신의 전사적인 수사들이며 1236년 시아울리아이 (사울레) 전투에서 완패당한 후 이듬해 독일 기사단에 흡수되었다.
샤말 작전 샤말 작전은 2014년 9월부터 프랑스군이 시리아와 이라크에서 ISIL의 확장을 차단하고 이라크군을 지원하기 위해 시행한 작전이다. 작전명은 페르시아만 국가와 이라크에 불어오는 북서풍인 샤말에서 유래했다. 이라크에서의 공습은 2014년 9월 19일부터 시작되었고, 시리아에서는 2015년 9월 말부터 시작되었다. 프랑스 대통령 프랑수아 올랑드가 이 작전에서 육상 병력은 사용하지 않겠다고 강조했기 때문에 프랑스 군의 작전은 공습으로 제한되어 있다. 추가적으로 프랑스 순양함 2척이 미국 해군 제50임무부대에 참가하여 지원 임무를 수행하고 있다. 2015년 11월 14일 ISIL은 파리 테러를 샤말 작전의 복수라고 주장했다. 이에 대한 응징으로 프랑스는 러시아와 함께 ISIL의 실질적 수도인 시리아 락까에 공습을 가했다.
2014년 6월 10일, 테러 집단인 ISIL과 다른 수니파 반란군이 이라크의 두번째로 큰 도시인 모술을 점령했다. 이라크군과의 전투 후 ISIL은 도시들을 포위한 이후 학살을 비롯한 여러 전쟁범죄를 저질렀으며 2014년 6월 동안 ISIL은 야지디인과 아시리아인들을 학살했다. ISIL은 스피처 캠프 학살을 자행해 수천 명의 사람들을 살해했다. 8월 달까지 ISIL은 이라크의 3분의 1을 차지했다. 8월 말 미국 대통령 버락 오바마는 이라크에서의 공습을 허가했다. 다음 날 미국 공군은 ISIL 병사들을 목표로 공습을 감행했고, 영국과 프랑스는 인도적인 지원을 담당했다. 2014년 9월 10알 오바마는 미국의 작전을 시리아로 넓히는 계획을 수립했다.
수단의 역사 고전시대에 누비아의 수도는 메로에(Meroë)였다. 초기 그리스의 지리학에선 메로에 왕국이 에티오피아로 알려져 있었다.(이 용어는 누비아인들을 만났던 아시리아인들이 또한 먼저 사용했다) 쿠시 문명은 철기 제련 기술을 사용하던 세계 최초의 문명 중 하나이다. 메로에에 있던 누비아 왕국은 기원후 4세기까지 존속했다. 쿠시 제국의 멸망 이후 몇몇 나라들이 전의 영토에서 세워졌고 그 중에 누비아도 있었다.
바벨탑 혼란하던 오리엔트 세계는 메소포타미아의 일대 세력이었던 아시리아에 의해 비로소 통일되었다. 아시리아인은 셈 족의 일파로서 원래 통상 민족이었으나, 기마와 전차를 보유한 군국으로 발전하였다. 기원전 8세기 말에는 오리엔트 세계를 정복하고, 세계 제국이라 일컬을 만한 국가를 건설하였다. 신바벨로니아의 수도 니네베는 그 웅장함과 번영을 자랑하였다.
스케테 후일에, 알렉산드리아에서 정당한 주교가 누구인가를 놓고 교회가 분열된 멜리티아의 분열이라고 알려지게 될 어느 기간 동안에, 알렉산드리아 인근의 지역 수도원은 그 싸움에서 어느 편에 설지를 결정해야 했지만, 스케티스의 수도원들은 그 문제들을 소탈하게 언급하기만 했다. 수사들의 사막에서의 고립은 오히려 그들 스스로에게 교회의 격렬한 논쟁들의 많은 부분을 겪게 했다.
일리리쿰 일리리쿰(: Illyricum)은 일리리아 왕국의 자리에 세워진 로마 속주이다. 현대 알바니아의 드린 강부터 북부의 이스트리아, 동부의 사바 강까지에 위치해 있다. 수도는 현대 크로아티아의 스플리트 근처의 살로나이였다.
소피아주 소피아 주()는 불가리아 서부에 위치한 주로, 주도는 소피아(불가리아의 수도)이며 면적은 7,059km, 인구는 262,032명, 인구 밀도는 36명/km, 자동차 번호는 CO이다. 주도 소피아는 소피아 주에 속하지 않으며 독립된 행정 구역으로 존재한다. 22개 시를 관할한다.
아슈르-우발리트 그는 아시리아 부인의 아들인 왕자 카라하르다쉬에 의해 계승되었다. 그러나 반란이 곧 발생하여 아시리아의 인기 없음을 보였다. 아슈르 우발리트는 그의 손자가 밀려나는 것을 허여치 않고 적시에 바빌론으로 진격하였다. 카라하르다쉬가 반란으로 죽어 아시리아 인은 바빌론 왕좌에 쿠리갈주를 앉혔다. 그는 부르나부리아쉬의 아들 또는 손자였다. 그러나 이 꼭두각시 왕은 그의 제왕에게 충성스럽지 못하였고 곧 아시리아로 쳐들어 갔다. 아슈르 우발리트는 수도 아수르에서 남쪽으로 멀지 않은 수가구에서 바빌로니아 군대를 멈출 수 있었다.
히타이트 기원전 18세기경, 쿠샤라 왕 아나타스가 카파도키아 고원을 정복하였다. 히타이트 고왕국(古王國)의 조상은 라발나스인데, 그 아들 하투실리스는 하투사스를 수도로 정했다. 무르실리스 1세(Mur-silis Ⅰ, 기원전 1624 ~ 기원전 1594?)는 북시리아를 정복, 바빌론을 공략했다. 신왕국의 시조는 투드하리야스 2세로서 수필룰리우마스 1세(Suppiluliumas Ⅰ, 기원전 1380 ~ 기원전 1340?) 시대에 히타이트의 판도는 가장 커졌다. 히타이트인은 소아시아의 지배를 강화하여 미탄니를 속국으로 하고, 북시리아를 세력 아래에 흡수, 이집트 다음가는 대국이 되었다. 무와탈리스는 이집트의 왕 람세스 2세의 군대와 카데시에서 싸워서 격퇴했다(기원전 1286). 하투실리스 2세는 이집트와 화약(和約)을 맺어(기원전 1269) 오리엔트에는 평화가 찾아왔다. 그러나 동편에서는 아시리아에게 압박되고, 소아시아 서부에서는 프뤼기아가 대두하여, 그리스계 해상 민족의 침입으로 기원전 1180년 히타이트는 멸망했다.
시리아의 재외공관 목록 시리아의 재외공관 목록은 시리아 주재 대사관을 각국에 상주시켜 놓는 것을 의미하며 시리아의 재외공관을 나열한 목록이다.
하페즈 알아사드 하페즈 알아사드 (, , 1930년 10월 6일 ~ 2000년 6월 10일) 는 시리아의 정치인으로, 아랍어로 ‘사자’란 뜻의 알아사드 가문 출신이다. 1966년 ~ 1972년 시리아의 국방장관, 1970년 ~ 1971년 시리아의 총리, 1971년 ~ 2000년 시리아의 대통령을 지낸 바 있다.
그리말디인 그리말디인(Grimaldi man)은 이탈리아 북부의 멘토네 부근 그리말디의 동굴에서 1906년에 발견된 여성과 청년 등 2체의 인골로 오리냐크기의 석기와 함께 나온 현생인류. 이(齒)의 구조나 튀어나온 턱, 긴 팔로 보아 니그로 인종의 조상이라고도 하나, 두개의 모양이나 크기 등으로 미루어 본다면 크로마뇽인과 동종의 인류라고도 볼 수 있다. 러시아의 코스텐키에서 같은 종류의 인골이 발견되었다.
데이르에조르 데이르에조르(, ܕܝܪܐ ܙܥܘܪܬܐ, )는 시리아 북동부에 위치한 도시로, 데이르에조르 주의 주도이며 유프라테스 강과 접한다. 인구는 511,000명(2008년 기준)이며 다마스쿠스(시리아의 수도)에서 북동쪽으로 450km 정도 떨어진 곳에 위치한다. 주요 산업은 농업이며 시내에는 많은 유적들이 남아 있다.
시리아의 국장 시리아의 국장은 시리아를 상징하는 문장으로, "쿠라이시족의 매"라고 부르는 금색 매 모양의 디자인 가운데에는 세로 방향으로 그려진 시리아의 국기 문양의 방패가 그려져 있다.
아르메니아 아르메니아인이 인구의 97.9%를 차지하고, 야지디인이 1.3%, 러시아인이 0.5%이다. 그 외 아시리아인, 우크라이나인, 그리스인, 쿠르드인, 조지아인, 벨라루스인 등이 소수 거주한다.
알자이시 (다마스쿠스) 알자이시()는 시리아의 수도 다마스쿠스를 연고지로 하는 축구 클럽이다.
테마 제도 분명한 것은 630년대 후반에서 640년대 사이로 추정되는 7세기 중반의 어느 시점에, 제국의 야전군이 제국에 마지막으로 남은 중요 인접영토인 아나톨리아로 철수하여 특정 구역에 배치되었으며, 이것이 테마로 알려지게 되었다는 것이다. 영역을 보면, 새로 생긴 각각의 테마는 이전의 속주 여러 개를 포괄하였으며, 일부 예외가 있지만 대체로 과거 지역 경계를 따랐다. 최초로 설치된 네 개의
테마는 아르메니아콘, 아나톨리콘, 트라케시온, 옵시키온이었다. 테마 아르메니아콘()은 667년 최초 언급되며, 아르메니아 군대의 계승자였다. 과거 지역 중 폰투스, 소아르메니아, 북부 카파도키아 영역을 포괄했고 수도는 아마시아였다. 테마 아나톨리콘()은 669년 최초 언급되며, 아나톨리아() 군대의 계승자였다. 중앙 소아시아 남부를 포괄했으며 수도는 아모리움이었다. 이상의 두 개 테마는 함께 비잔티움 제국령 아나톨리아 수비의 최전선을 담당하고 있었으며, 이슬람이 지배하는 아르메니아와 시리아에 각각 인접해 있었다. 테마 트라케시온(Θέμα Θρᾳκησίων)은 늦게 잡아도 740년 경에 최초로 분명히 언급되며, 트라케 군대의 계승자로서 소아시아의 중서 해안 지방(이오니아, 리디아, 카리아)을 포괄했고 수도는 코나에에 있었을 가능성이 높다. 테마 옵시키온()은 680년 최초 언급되며, 제국 경호대(라틴어로 'Obsequium')를 기반으로 형성되었다. 소아시아 북서부(비티니아, 파플라고니아 및 일부 갈라티아 지역)를 포괄하였고 니케아에 주둔하고 있었다. 기원이 제국 경호대였기 때문에, 이 테마의 지휘관은 스트라테고스라는 명칭 대신 특이하게 "코메스"(komēs, "고관, 지방장관")라는 호칭으로 불리기도 했다.
오스트레일리아의 지역 관계 오스트레일리아가 연방 국가가 된 1901년 당시 멜버른은 당시 가장 큰 도시였고(현재는 시드니), 시드니는 오스트레일리아에서 가장 오래된 도시였다. 연방의 수도를 결정하는 문제에서 양 도시 간의 힘겨루기 때문에 새 수도는 쉽게 결정되지 못하고 있다가, 멜버른이 잠정적으로 수도를 맡게 되었다. 또한 항구적인 수도는 빅토리아 주(멜버른이 속한 주)보다 뉴사우스웨일스 주(시드니가 속한 주)에 가까운 머리 강 북쪽에 건설하되, 최소 시드니에서 100마일(160킬로미터) 이상 떨어져야 한다는 규정이 만들어졌다. 이 규정에 따라 새로 건설된 도시가 캔버라이다. 멜버른은 1901년부터 1927년까지 캔버라의 오스트레일리아 의회의사당이 완공되어 개회될 때까지 임시 수도가 되었다. 그러나 여러 가지 연방 정부의 기관들은 캔버라가 수도가 된 1927년 이후에도 계속해서 멜버른 또는 시드니 중의 한 도시에 위치하면서 업무를 계속했다. 1950년대 들어 공공기관의 캔버라 이주가 시작되었고, 마침내 1980년 최고 법원이 멜버른에서 캔버라로 옮겨오면서 정부 기관의 캔버라 이주가 완료되었다.
카바르디노발카리아의 역사 카바르디인은 아디게인에서 갈라져 나온 것으로 보이는, 터키계 이슬람 민족이다. 이들은 크리미아 한의 지배로부터 벗어나기 위해 1561년 러시아의 이반 4세에게 구원을 요청하여 힘을 빌었고, 오스만 제국과 러시아 사이의 완충지대로서 역할을 하여 1739년에는 중립을 표방하는 국가도 건설하였다. 그러나 1774년에 결국 러시아로 병합되었고 많은 카바르디인들이 오스만제국의 영토로 이주하였다. 발카르인 역시 크리미아 타타르에 의해 이슬람으로 개종한 민족집단으로, 카바르디인들의 지배를 받으며 살아오다가, 1827년부터 러시아의 확고한 지배를 받게 되었다. 소비에트 연방이 성립하면서 1921년에 발카르 자치구(Okrug)와 카바르딘 자치구가 수립되었으며, 1922년에 이들이 통합되어 카바르디노-발카르 자치구가 만들어졌다가 곧 자치주(Oblast)로 재구성되었고, 1936년에 자치공화국으로 승격되었다. 발카르인들은 나치 독일과 협력했다는 혐의로 1943년 중앙아시아로 강제이주를 당해 이 지역은 카바르딘 공화국으로 개칭되었다. 1956년 흐루쇼프에 의해 귀향이 허락된 발카르인들이 돌아오자, 다시 카바르디노-발카르 자치공화국으로 개칭되었다.
유딧기 유딧의 저자는 알 수 없으나 작품의 의도는 이해할 수 있다. 이 작품은 유딧이 그의 하인과 함께 이스라엘을 침략하려는 앗시리아의 진영에 들어가 술취한 장수를 처형한다는 내용이다. 다른 코이네 그리스어 외경들과의 연관 관계와 완성된 시기로 미뤄보면, 작품 완성 당시에 앗시리아로 유비되는 헬레니즘 문화 영향을 크게 받던 상황하에서 유딧으로 유비되는 이스라엘 정통성과 구약 정신, 유일신 사상을 지키고, 헬라문화에 대항해야 한다는 의도를 발견할 수 있다. 또한 유딧의 이야기는 기원전 2세기 즉 시리아 치하의 이스라엘의 상황과도 깊은 연관을 발견할 수 있다. 기원전 2세기는 이스라엘이 시리아의 치하 시기로 예루살렘 성전은 제우스 신전으로 변용되었고, 이스라엘 종교 의식인 안식일과 절기 준행을 금지당했었다. 이로 인해 이스라엘 독립 활동이 촉발했고, 확고한 유대교 신앙과 전통을 바탕으로 한 독립전쟁이 시리아와 평화 협정을 통해 결실을 맺던 시기였다. 이런 상황에서 적극적인 애국심과 유대 전통에 대한 확고한 자세를 강조하는 지혜 문학이 등장한 것으로 볼 수 있다.
2013년 아시아 시리즈 2013년 아시아 시리즈(Asia Series 2013)는 아시아의 프로 야구 대회로 2013년 11월 15일부터 11월 20일까지 대만 타이중 시 타이중 저우지 야구장 및 타오위안 현 타오위안 국제야구장에서 개최된다. 대한민국, 일본, 대만(2팀), 오스트레일리아의 각 프로 야구 리그 우승팀은 그대로 출전하고, 중국이 대회를 보이콧하면서 중국 대신 이탈리아가 참가하게 되었으며, 이탈리아 대표로는 2012 유럽 챔피언스 컵 우승 팀인 포르티투도 베이스볼 볼로냐가 참가한다. 오스트레일리아 대표로 참가한 수도 캔버라 연고의 캔버라 캐벌리가 통이 세븐일레븐 라이언스를 꺾고 오스트레일리아 프로 야구 팀 최초로 아시아 시리즈에서 우승하였으며, 일본 프로 야구 팀이 아시아 시리즈 개최 이후로는 처음으로 결승전에 오르지 못했다. 하지만 계속되는 흥행 부진과 함께 결승전 직전에는 캔버라 캐벌리의 포수에게 승부조작을 제의하였다가 거절당하는 사건이 생기는 바람에 재일 한국인 출신의 전 야구 선수 장훈은 "아시아 시리즈는 의미가 없어졌다"라는 쓴소리를 했다.
루이마리 그리그뇽 드 몽포르 1715년 8월 22일 마리아 루도비카 트리셰와 가타리나 브루네는 마리 발레우와 마리 레니에와 더불어 라로셸에서 루도비코 마리아의 영성지도 아래 공동체 생활을 할 수 있도록 라로셸의 주교로부터 인가를 받았다. 루도비코 마리아는 수도회 창설식을 주재하면서 “아이들을 가르치고 가난한 사람들을 돌보는 일을 소임을 맡은 여러분은 이제 스스로 지혜의 딸들이라고 부르십시오.” 지혜의 딸 수녀회는 국제적인 수도회로 발전하였으며, 수녀회의 설립자인 루도비코 마리아 성인의 동상을 바티칸 성 베드로 대성전에 안치한 것도 지혜의 딸 수녀회에 의해 이루어진 일이다.
다마스쿠스 다마스쿠스 또는 디마슈크(, , )는 시리아의 수도이다. 앗샴()이라 불리기도 한다. 2007년 현재 인구는 약 555만명에 달한다.
기게스 (리디아) 기게스(, , 재위 38년)는 리디아의 세 번째 왕조인 메름나다이 왕가의 창시자이다. 그의 아들 아르디스 2세가 그의 뒤를 이어서 메름나다이 왕조의 두 번째 왕이 되었다. (아시리아의 비문에는 루두의 구구(687-652 BC 또는 690-657 BC) 라고 불렸다.) 그는 수도를 히데에서 사르디스로 옮겼다. 킴메르가 리디아의 도시들을 약탈하였지만 사르디스는 예외였다. 기게스는 다스킬로스의 아들로 그리스인들이 칸다울레스("개 교살자")로 부르던 리디아 임금 사르디아테스의 명령으로 카파도키아의 유배지에서 소환되었다. 그는 자신 대신 아들을 리디아로 보냈다. 기게스는 이집트로 방향을 바꾸어 충성스러운 카리아 군대를 이오니아 용병과 함께 프삼티크를 도와 아시리아의 멍에를 흔들어 벗게하였다. 약간의 성경학자들은 리디아의 기게스가 성경의 마고그의 지배자 고그라고 생각한다. 그는 에제키엘서에 언급되어있다.
아브자드 역사상 처음으로 널리 사용된 아브자드형 문자로 페니키아 문자들 들 수 있다. 같은 시기에 설형 문자와 이집트의 히에로글리프도 존재했으나, 이들 문자에 비해 페니키아 문자는 20여개 남짓 밖에 존재하지 않았다. 페니키아 문자는 페니키아의 해상무역 상인들에 의해 이후 널리 퍼지며, 이후 여러가지의 다른 모양의 문자 체계가 발생하였다. 이 가운데 중동 지역을 통해 널리 사용된 아람 문자는, 이후 히브리 문자와 나바테아 문자로 발전되었다. 시리아 문자는 아람 문자의 필기체 형태에서 발전된 문자이다. 나중에 발생한 아랍 문자는, 아람 문자 계열의 문자들의 영향을 간접적으로 받았다는 점까지는 드러나 있으나, 직접 조상에 해당하는 문자가 나바테아 문자인가 시리아 문자인가, 또는 어느 정도의 영향을 받았는가에 대해서는 여러 의견들이 존재한다.
한편, 페니키아 문자는, 모음이 추가된 그리스 문자를 거쳐, 현대 서양의 알파벳, 키릴 문자로도 변천하였다. 한편 아람 문자는 중동 지역을 거쳐 인도로 전파되며, 브라흐미 문자가 발생하였다. 브라흐미 문자는, 현재의 인도 및 동남 아시아의 여러 문자들의 조상이 되는 아부기다 문자이다.
바트당 (시리아) 아랍 사회주의 부흥당 시리아 지부(, 시리아 바트당)은 신(新)바트주의를 주요 이념으로 삼는 정당이며, 현재 시리아의 여당이기도 하다. 레바논을 비롯한 여러 아랍의 국가들의 바트당 계열의 정당들은 시리아의 바트당 노선을 지지하는 시리아파와 이라크의 바트당 노선을 지지하는 이라크파로 나뉘는데 이 정당은 시리아파를 주도, 지원하는 정당이다.
수단의 역사 타하르카(Taharqa)왕과 아시리아 왕 세나케립(Sennacherib) 사이에 전쟁이 벌어진 전쟁은 서양사에 결정적인 사건이었다. 또한 누비아인들이 아시리에에게 근동에 발판을 얻으려는 데에 실패한 사건이기도 하다. 세나케립의 후계자 에살하돈(Esarhaddon)은 한 술 더 떠서 이집트를 직접 침공해 타하르카 왕을 폐위시키고 누비아인들을 이집트에서 완전히 몰아내었다. 타하르카는 고향으로 도망가 2년 후에 사망했다. 이집트는 아시리아의 식민지가 되었다. 타하르카를 계승한 탄타마니(Tantamani) 왕은 이집트를 재탈환을 단호히 시도한다. 에살하돈은 그를 쫓아내기 위해 아시리아의 수도였던 니느웨를 떠날 준비를 하다 죽는다. 그러나 그의 후계자였던 아슈르바니팔(Ashurbanipal)이 남이집트로 대군을 탄타마니에게 보내어 누비아 제국의 재부흥의 모든 희망을 종결시킨다.
시리아의 대통령 시리아 아랍 공화국 대통령은 시리아의 국가 원수이다.
바히라 바히라(, )는 아시리아의 영지주의 수도사로, 청년기의 무함마드에게 예언자의 길을 제시한 사람으로 알려져 있다.
아델 사파르 아델 사파르 (Adel Safar, 1953년 ~) 는 시리아의 정치인으로, 2011년부터 2012년까지 시리아의 총리를 지냈다. 총리를 맡기 이전에는 2003년부터 2011년까지 시리아의 농업토지개혁 장관을 지냈다.
시뮬라크르 플라톤 사유에서 중요한 것은 감각적인 것들과 가지적인 것들을 구분하는 것이다. 그러나 플라톤주의의 핵심은 오히려 감각적인 것들 중에서 두 종류를 구분하는 데 있다. 핵심적인 것은 ‘복사물들(eikones)’과 ‘시뮬라크르들(phantasmata)’의 구분이다. 복사물들은 이데아를 흉내 내고 있으며 따라서 유사성을 담고 있다. 반면 시뮬라크르는 단지 이데아로부터 멀리 떨어져 있을 뿐만 아니라 이데아의 반대편에서 이데아 자체를 혼란에 빠트리는 존재이다. 플라톤의 진짜 의도는 현실 속의 다양한 존재들에 가치론적 위계를 설정하려는 것이다. 이데아의 가설은 그러한 설정을 가능케 하는 기준으로서 제시되었다. 그러나 여기에서 모든 것은 정도의 문제로 보아야 할 것이다. 시뮬라크르와 복사물의 ‘본성상의 차이’를 언급할 수 있으나, 본성상의 차이를 어떻게 규정할 것인가? 이데아로부터 시뮬라크르에 이르기까지 모든 것은 정도의 문제이다. 어디에서 좋은 복사물과 나쁜 복사물을 끊을 것인가? 이 사실에 이미 가치-존재론의 난점이 함축되어 있는 것이 아닐까?
달마티아 왕국 달마티아 왕국(, , )은 달마티아에 있던 왕국으로 수도는 자다르이다. 1815년부터 1867년까지는 오스트리아 제국의 구성국, 1867년부터 1918년까지는 오스트리아-헝가리 제국의 구성국이었다. 오스트리아-헝가리 제국 시대에는 오스트리아령인 시스라이타니아의 일원으로 있었다.
요르단 요르단(, )은 중동에 있는 입헌 군주국이다. 수도는 암만이며, 정식 국명은 요르단 하심 왕국(, , )이다. 이라크, 팔레스타인, 이스라엘, 사우디아라비아, 시리아와 국경을 접한다.
시리아 친우회 시리아 친우회(- 親友會, ), 공식 명칭은 시리아 인민 친우회(- 人民親友會, ), 때때로 시리아의 친우들(- 親友-, )은 시리아 난국의 해결책을 찾기 위한, 시리아의 단체와 교섭 국가들의 모임이다. 국제 연합 안전 보장 이사회 외에도, 러시아와 중화인민공화국이 시리아 지역에 대한 결의안에 거부권을 행사하였다. 이 회의는 니콜라 사르코지 프랑스 대통령이 처음 제시하였으며, 2012년 2월 24일에 튀니지의 튀니스에서 첫 회의를 가졌다. 두 번째 회의는 2012년 4월 1일에 터키의 이스탄불에서 열렸다.
2012년 4월 1일에 열린 회의에서 70여 개의 참가국들은 반 시리아 세력에 대한 지원과 시리아 정부에 압력을 강화하였다.
아수르 아수르는 고대 아시리아의 수도중의 하나였다. 도시의 유적은 티그리스강의 서쪽 제방에 위치하며, 현재 이라크내의 자브 천의 북쪽이다.
시리아의 국가 조국의 파수꾼(아랍어: حُمَاةَ الدِّيَار, Homat el Diyar)은 시리아의 국가(國歌)이다. 작사는 할릴 마르담 베이(Khalil Mardam Bey)가, 작곡은 모하메드 플라이펠(Mohammed Flayfel)이 하였다. 1936년에 시리아의 국가로 채택되었다.
레바논 레바논 공화국(, ) 또는 레바논(, )은 중동의 지중해 동부 연안에 있는 이슬람교 54%, 기독교 40.5%의 다종교 국가로, 시리아와 이스라엘과 국경을 접하고 있으며, 수도는 베이루트이다.
마리아론 교회 대분열 이후 서부 유럽의 서방교회에서 중세 시대에 접어들면서 성모 신심은 시리아의 성 에프렘, 다마스쿠스의 성 요한, 클레르보의 성 베르나르도 등 성모 신심가들의 영향을 받아 더욱 성장하여 한 차원 크게 발전하였다. 성모송과 같이 마리아의 전구를 청하는 기도문들이 생겨나고, 수도원 등지에서 아베 마리아, 살베 레지나 등의 마리아를 찬미하는 성격을 띤 단선율 성가가 작사 작곡되었다. 그리하여 성모 신심 행위가 기하급수적으로 증가하여 대중 사회에 굳건하게 자리잡았다.
러시아-시리아-이란-이라크 동맹 시리아 내전은 2011년 초 바샤르 알아사드에 대항한 반정부 집단이 봉기하면서 시작되었지만, 시위는 폭력적으로 바뀌었고 시리아 전 지역에서 정부군 및 친정부 무장단체와 반군이 등장하면서 내전의 양상으로 바뀌었다. 전쟁은 수많은 반군 집단과 정부 정당 및 동맹 무장 단체의 전투로 이어졌다. 25만 명 이상의 사람들이 목숨을 잃었고, 1000만 명 이상의 시민들이 피난민이 되었다. 대부분의 반군과 그들의 서구 연합군들은 아사드의 퇴진을 요구했고 내전에 대한 해결책을 강구하는 데에는 실패했다. 최근에 몇몇 서구 국가들은 아사드가 중재에 어떤 역할을 해 줄 수도 있다고 말했다. 이러한 서구 국가들의 발언에 아사드는 시리아의 미래를 결정하는 것은 서구 국가들의 일이 아니라고 단호하게 말했다. 그는 미국과 그들의 동맹국들을 반군 지원으로 고소했으며, 러시아와 연합한 시리아 전투기들의 공습이 미국 주도 연합군의 공습보다 효과적이라고 말했다. 아사드에 따르면 미국 주도 연합군에 참여한 국가들이 테러를 지원하고 있으며, 그들은 테러에 맞서 싸울 수 없다고 말했다. 그는 그들이 테러와 싸우는 동안 테러는 더욱 확산되었다고 말했다.
제2차 이들리브 전투 이후 이들리브 주를 잃은 시리아 정부는 2015년 전반의 반군 공격으로 아사드 정권의 유지마저 위태롭게 되었다. 고위급 회담이 2015년 전반에 러시아와 이란 정부 사이에 오갔으며 정치적 합의가 이루어졌다. 2015년 10월 시리아에서 러시아의 작전은 카젬 솔레이마니의 방문 기간 동안 논의되었지만, 러시아 정부 측은 이를 부인했다. 시리아 정부의 공식적인 요청에 따라, 2015년 9월 러시아는 처음으로 시리아 상공에 전투기를 파견했으며 작전 준비를 위해 라타키아에 전투병력 및 군수물자를 보냈다.
아시리아의 왕 아래는 아시리아 왕의 목록이다. 초기 아시리아의 연대는 알려져 있지 않다. 치세의 연대는 불분명하다.
네이선 에드먼드슨 네이선 에드먼드슨(, 1967년 8월 18일 ~ )은 미국의 만화가이다. 대표작으로는 《제이크 엘리스는 누구인가?》, 《제이크 엘리스는 어디에 있는가?》 시리즈가 있으며, 마블 코믹스의 《얼티밋 아이언맨》, 《블랙 위도우》, 《퍼니셔》 연재로 알려져 있다.
스택 버퍼 오버플로 스택 버퍼 오버플로라는 토픽 하에서, 종종 논의되지만 거의 마주치지 않은 구조로 스택이 반대 방향으로 자라는 것이 있다. 구조에서의 이 변화는 자주 제안되는데, 같은 스택 프레임에서 발생하는 어떤 스택 버퍼의 오버플로도 반환 포인터를 겹쳐쓸 수 없기 때문이다. 이 주장된 보호 대한 조사에 의하면 이것은 매우 순진한 생각이다. 이전 스택 프레임에서 발생하는 어떤 오버플로도 여전히 반환 포인터를 겹쳐쓰고 버그의 악의적인 익스플로잇을 허용하게 된다. 예를 들면 위의 예시에서 codice_7의 반환 주소는 겹쳐써질 수 없는데, 이것은 오버플로가 실제로는 codice_8를 위한 스택 프레임 내에서 발생하기 때문이다. 그러나 codice_8 호출 도중에 오버플로 되는 버퍼가 이전 스택 프레임에 위치하기 때문에 codice_8를 위한 반환 포인터는 버퍼 보다 높은 메모리 주소를 가질 것이다. 이것은 겹쳐써지는 codice_7 를 위한 반환 포인터 대신 codice_8 를 위한 반환 주소가 겹쳐써진다는 것을 의미한다. 기껏해야 이것은 반대 방향으로 자라는 스택이 어떻게 스택 버퍼 오버플로가 익스플로잇될 수 있는지를 바꿀 뿐이고 익스플로잇 가능한 버그를 줄이지는 못한다는 것을 의미한다.
버퍼 오버플로 버퍼 오버플로() 또는 버퍼 오버런()은 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점이다. 컴퓨터 보안과 프로그래밍에서는 프로세스가 데이터를 버퍼에 저장할 때 프로그래머가 지정한 곳 바깥에 저장하는 것을 의미한다. 벗어난 데이터는 인접 메모리를 덮어 쓰게 되며 이때 다른 데이터가 포함되어 있을 수도 있는데, 손상을 받을 수 있는 데이터는 프로그램 변수와 프로그램 흐름 제어 데이터도 포함된다. 이로 인해 잘못된 프로그램 거동이 나타날 수 있으며, 메모리 접근 오류, 잘못된 결과, 프로그램 종료, 또는 시스템 보안 누설이 발생할 수 있다.
스택 버퍼 오버플로 스택 버퍼 오버플로()는 프로그램이 프로그램이 의도한 데이터 구조체의 메모리 주소(일반적으로 고정된 버퍼 길이를 갖는) 외부의 콜 스택에 쓸 때 발생한다. 스택 버퍼 오버플로 버그는 프로그램이 스택에 위치한 버퍼에 할당된 것보다 더 많은 데이터를 쓸 때 발생한다. 이것은 항상 스택에서 인접한 데이터의 오염을 유발하며 실수로 오버플로된 경우 프로그램은 충돌하거나 부정확하게 동작한다. 스택 버퍼 오버플로는 버퍼 오버플로로 알려진 일반적인 프로그래밍 부량의 한 종류이다. 스택에서 버퍼에 겹쳐쓰는 것은 힙에 존재하는 버퍼에 겹쳐쓰는 것보다 더 문제를 일으키기 쉬운데 그 이유는 스택이 모든 활성화된 함수 호출을 위한 반환 주소를 포함하기 때문이다.
버퍼 오버플로 보호 스택 스매싱 보호는 특정한 형태의 공격에 대한 방어를 할 수 없다. 예를 들면 이것은 힙에서의 버퍼 오버플로를 방어할 수 없다. 데이터 구조 내에서 데이터의 배치를 바꾸는 제대로 된 방식은 없다; 데이터 구조는 모듈 간에 같다는 것이 요구되며 특히 공유 라이브러리에서 그렇다. 구조 안의 어떤 데이터도 카나리들로 보호할 수 없다; 그래서 프로그래머들은 반드시 자신의 구조체를 사용해서 변수들을 어떻게 체계화할지를 신경써야 한다.
"카나리스(Canaries)" 또는 카나리("canary)"는 버퍼 오버플로를 감시하기 위해 스택의 버퍼와 제어 데이터 사이에 위치한 값들이다. 버퍼가 오버플로하면 오염될 첫 데이터는 보통 카나리일 것이고, 카나리 값의 검증은 실패하여 오버플로에 대한 경고가 발생하며 이후 처리될 수 있다.
힙 오버플로 힙 오버플로()는 힙 데이터 영역에서 발생하는 버퍼 오버플로의 한 종류이다. 힙 오버플로는 스택 기반 오버플로와는 다른 방식으로 익스플로잇 가능하다. 힙에서의 메모리는 런타임 시에 애플리케이션에 의해 동적으로 할당되며 일반적으로 프로그램 데이터를 포함한다. 익스플로잇은 애플리케이션이 링크드 리스트 포인터 같은 내부 구조체를 겹쳐쓰는 것 같이 이 데이터를 특정한 방식으로 오염시킴으로써 수행된다. 고전적인 힙 오버플로 기법은 동적 메모리 할당 연결(malloc 메타 데이터 같은)을 겹쳐쓰고 프로그램 함수 포인터를 겹쳐쓰기 위해 결과로 나온 포인터를 교환하는 기법이다.
버퍼 오버플로 보호 버퍼 오버플로 보호는 소프트웨어 개발 동안 스택에 할당된 변수들에 대한 버퍼 오버플로를 탐지하고 심각한 보안 취약점으로 사용되는 것을 막음으로써 실행 파일의 보안을 강화시키는 다양한 기법들을 가리킨다. 스택 버퍼 오버플로는 프로그램이 일반적으로 고정된 길이의 버퍼인 자신의 의도된 데이터 구조의 콜 스택 외부 메모리 주소에 쓸 때 발생한다. 스택 버퍼 오버플로 버그들은 프로그램이 할당된 버퍼에 실제로 할당된 것보다 더 많은 데이터를 쓸 때 발생한다. 이것은 거의 항상 스택의 인접한 데이터에 대한 오염을 유발하며 프로그램의 충돌이나 부정확한 동작 또는 보안 문제로 이어질 수 있다.
버퍼 오버플로 버퍼 오버플로는 불충분한 경계 검사에 의해 버퍼에 쓰인 데이터가 버퍼에 이미 할당된 근접한 메모리 주소에 있는 데이터 값을 오염시킬 때 발생한다. 대부분 이는 문자열을 하나의 버퍼에서 다른 버퍼로 복사할 때 발생한다.
버퍼 오버플로 잘 씌어지고 검사된 추상 데이터형 라이브러리는 경계 검사를 포함한 버퍼 관리를 중앙집중화하고 자동적으로 실시하여 버퍼 오버플로 발생과 충격을 줄일 수 있다. 버퍼 오버플로가 일상적으로 일어나는 언어의 두가지 주요한 기본 데이터 형은 문자열과 배열이다; 따라서 버퍼 오버플로를 이러한 데이터 형에서 방지하는 라이브러리는 필요 영역 가운데 방대한 대다수를 담당해 줄 수 있다. 여전히 이러한 안전한 라이브러리를 사용하지 못한다면 버퍼 오버플로와 다른 취약점을 낳을 것이다; 자연스럽게 라이브러러 자체의 어떤 버그도 잠재적인 취약점이 된다. "안전한" 라이브러리 구현은 "개선된 문자열 라이브러리", Vstr, 어원을 포함한다. 오픈 BSD 운영체제의 C 라이브러리는 strlcpy와 strlcat 함수를 제공하지만 이들은 전 안전 라이브러리 구현보다 더 제한되어 있다.
버퍼 오버플로 프로그래밍 언어 선택은 버퍼 오버플로 발생에 깊이 있는 영향을 미칠 수 있다. 2008년 기준으로, C와 그로부터 발전된 C++는 가장 인기 있는 언어들에 포함되며, 거대한 양의 소프트웨어가 이러한 언어로 작성되었다. C와 C++는 메모리상 어떤 부분에서도 데이터 접근과 덮어쓰기에 대한 내장 보호 기능이 없다. 더 구체적으로, 데이터가 어떤 배열 (버퍼의 구현)에 씌어지는 데이터가 그 배열의 범위 안에 씌어지는지 검사하지 않는다. 그러나 표준 C++ 라이브러리는 데이터를 안전히 저장하는 많은 방법을 제공하고, C언어에서 버퍼 오버플로를 회피하기 위한 기술도 존재한다. 장기간 작동시키며 안정성을 유지해야 하는 프로그램을 작성해야 한다면 보다 데이터 타입과 오버플로 검사가 엄격한 C#과 자바를 사용할 수 있다.
버퍼 오버플로 이것은 대부분의 시스템에서 현재의 프로세스가 호출되기 전 실행되고 있던 프로그램 부분의 위치인 반환값을 스택이 갖고 있기 때문에 특히나 심각하다. 함수가 끝날 때 임시 저장소는 스택에서 제거되고 실행은 반환 주소로 되돌아간다. 그런데 반환 주소를 버퍼 오버플로가 덮어쓰면 어떤 다른 위치를 가리킬 것이다. 처음 예제에서와 같은 버퍼 오퍼플로가 우연히 발생하는 경우 거의 틀림없이 쓸모없는 위치일 것이다. 어떠한 프로그램 명령어 위치가 아닌 이상, 프로세스는 망가질 것이다. 그리고 악의적인 공격자가 시스템 보안과 충돌할 수 있는 임의 위치로 반환 주소를 바꿀 수 있다.
버퍼 오버플로 아래의 C 소스 코드는 일반적인 프로그래밍 실수를 보여준다. 일단 컴파일 되면, 너무 긴 커맨드라인 인자 문자열을 가지고 실행하면 프로그램은 버퍼 오버플로 오류를 발생할 것이다. 왜냐하면 이 인자의 길이를 체크하지 않고 버퍼를 채우는 데 사용하기 때문이다.
버퍼 오버플로 9개 이하의 문자 스트링은 버퍼 오버플로를 일으키지 않는다. 10 이상의 문자들은 오버플로를 일으킨다. 이것은 언제나 부정확하지만 프로그램 오류나 세그먼트 폴트를 일으키지는 않는다. strncpy는 버퍼에 쓰일 문자의 개수를 제한할 수 있다.
버퍼 오버플로 버퍼 오버플로 보호는 가장 일반적인 버퍼 오버플로를 검출하기 위해 사용되며 함수가 귀환할 때 스택이 변경되었는지 검사한다. 변경되었다면 프로그램이 세그멘테이션 오류를 발생 시키며 중단된다. 그러한 시스템의 세가지 예가 gcc 패치인 립세이프 LibSafe, 스택 가드, 프로폴리스이다. 마이크로소프트의 데이터 실행 방지 모드는 명백히 SEH 예외 처리기를 가리키는 포인터를 덮어쓰기로부터 보호한다. 더 강력한 스택 보호는 스택을 두가지로 나눔으로써 가능하다: 하나는 데이터용이고 다른 하나를 함수 귀환에 사용하는 것이다. 이러한 구분은 포스 프로그래밍 언어에 비록 안전을 위한 기능은 아니지만 채택되어 있다. 어쨌든, 이는 버퍼 오버플로에 관한 완벽한 해결책은 아닌 것이, 귀환 주소가 아닌 민감한 데이터는 여전히 덮어씌어질 가능성이 있다.
버퍼 오버플로 버퍼 오버플로는 보통 데이터를 저장하는 과정에서 그 데이터를 저장할 메모리 위치가 유효한지를 검사하지 않아 발생한다. 이러한 경우 데이터가 담긴 위치 근처에 있는 값이 손상되고 그 손상이 프로그램 실행에 영향을 미칠 수도 있다. 특히, 악의적인 공격으로 인해 프로그램에 취약점이 발생할 수도 있다.
버퍼 오버플로 1980년대 개인용 컴퓨터의 확산으로 이 기법에 대해 아는 사람의 수가 증가하였다. 코모도어 PET 상에서 예를 들어 흔히 두 번째 테이프 버퍼를 사용하여 어셈블리 언어 루틴을 저장하였다. 어떤 프로그래머들은 최대 32KB인 컴퓨터의 주기억장소 공간에서 몇바이트를 절약하기 위해 베이직 언어의 번거로운 POKE 명령 사용 대신 프린트 버퍼의 시작점을 테이프 버퍼로 변경하여 6502 어셈블리 언어 코드(이상해 보이는 글자로 이루어진)를 직접 원하는 곳으로 출력하였다. 실제로는 프린터 버퍼가 테이프 버퍼 보다 길었기 때문에, 베이직 문자열이 쉽게 1024 바이트를 넘어갔고, PET상의 마이크로소프트 베이직 인터프리터와 간섭하였다. 초기 맥, 코모도어, 아타리등 초기 개인용 컴퓨터 부트 이미지 로더와 95, 98까지의 마이크로소프트 윈도 운영 체제는 버퍼 보호에 부적절하였고 많은 프로그래머들이 버퍼 오버플로에 대해 알게 되었다.
최초로 문서에 남은 적대적 버퍼 오버플로 이용은 1988년이었다. 모리스 웜이 인터넷에서 자신을 퍼뜨리기 위해 사용했던 몇가지 공격 가운데 하나였다. 그 프로그램이 이용했던 것은 핑거라는 유닉스 서비스였다. 1995년 토마스 로파틱은 독립적으로 버퍼 오버플로를 재발견하였고 자신의 발견을 버그트랙(Bugtraq) 보안 메일링 리스트에 공개하였다. 1년 후 1996년 엘리아스 레비 (알레프 원으로 알려진)는 프랙 지에 "재미와 소득을 위해 스택 때리기"라는 제목의 기사에서 스택 기반 버퍼 오버플로 취약점을 공략하는 단계별 소개를 공개하였다.
버퍼 오버플로 보호 GNU 컴파일러 모음, LLVM, 마이크로소프트 비주얼 스튜디오 등에는 버퍼 오버플로 보호의 여러 기법들이 존재한다.
스택 버퍼 오버플로는 스택 스매싱으로 알려진 공격의 한 부분으로서 고의적으로 유발될 수 있다. 만약 감염된 프로그램이 특별한 권한으로 실행되거나 신뢰되지 않은 네트워크 호스트로부터 데이터를 받는다면, 이 버그는 공격자가 실행 가능한 코드를 실행 중인 프로그램에 삽입하여 프로세스의 제어를 가질 수 있게 함으로써 잠재적으로 보안 취약점이 될 수 있다. 이것은 공격자가 컴퓨터에 대한 비인가된 접근을 갖게 하는 가장 오래된 방식 중 하나이다.
스택 버퍼 오버플로 스택 카나리스는 악의적인 코드의 실행이 일어나기 전에 스택 버퍼 오버플로를 탐지하는데 사용된다. 이 방식은 프로그램 시작 시에 선택된 랜덤한 작은 정수를 스택 반환 포인터 전에 놓은 것이다. 대부분의 버퍼 오버플로는 낮은 곳에서 높은 곳으로 메모리 주소를 겹쳐쓰므로 반환 포인터를 겹쳐쓰기 위해서는 카나 값이 반드시 겹쳐써질 수 밖에 없다. 이 값은 루틴이 스택의 반환 주소를 사용하기 전에 바뀌었는지 검사된다. 이 기법은 스택 버퍼 오버플로를 익스플로잇하는 난이도를 증가시키는데, 공격자가 스택의 다른 중요한 변수들을 오염시키는 것 같은 전통적이지 않은 방식으로 명령어 포인터의 제어를 얻게 하기 때문이다.
버퍼 오버플로 보호 일반적으로 버퍼 오버플로 보호는 스택에 할당된 데이터를 체계화해서 카나리 값을 포함하는데, 이것은 스택 버퍼 오버플로에 의해 파괴될 시에 메모리에서 오버플로우 되기 전의 버퍼를 보여준다. 카나리 값을 검증함으로써 감염된 프로그램의 실행은 종료될 수 있고, 공격자가 제어를 넘겨받는 것으로부터 보호해 준다. 다른 버퍼 오버플로 보호 기법으로 경계 검사가 있는데 이것은 할당된 메모리의 각 블록에 대한 접근을 검사해서 실제로 할당된 공간을 넘지 못하게 한다. 태깅은 데이터를 저장하는 용도로 할당된 메모리가 실행 코드를 포함하지 못하게 보장한다.
버퍼 오버플로 버퍼 오버플로의 문제는 C와 C++언어에서는 일반적이다. 왜냐하면 이들 언어가 데이터 형을 보관 장소로서 버퍼의 저수준 표현상 상세를 노출시키기 때문이다. 버퍼 오버플로는 반드시 따라서 버퍼 관리 코드안에서의 높은 수준의 정확성을 유지함으로써 회피되어야 한다. 오래전부터 표준 라이브러리 함수 중 경계를 검사하지 않는 함수의 사용을 피할 것이 권고되어 왔다: gets, scanf, strcpy 등. 모리스 웜은 핑거 데몬 안에서 호출되는 gets 함수를 이용하였다.
버퍼 오버플로 실행 공간 보호는 버퍼 오버플로를 방지하기 위한 접근 방법으로 스택이나 힙 상의 코드가 실행되는 것을 막는다. 공격자는 버퍼 오버플로를 이용하여 임의의 코드를 프로그램의 메모리에 삽입할 수 있지만, 실행 영역 보호가 있다면, 그 코드를 실행하고자 하는 어떠한 시도도 예외를 발생시킬 것이다. 어떤 CPU는 NX (No eXecute) 또는 XD (eXecute Disabled)비트 라는 기능을 지원하는데 소프트웨어와 연계하여 데이터의 페이지 (즉 스택이나 힙을 담고 있는) 를 읽고 쓰기는 가능하나 실행 불가로 표시할 수 있다. 어떤 유닉스 운영 체제는 (예를 들어 오픈 BSD, OS X) 은 실행가능한 공간 보호와 함께 출시되었다. (예: W^X) 옵션 패키지에는 다음이 포함될 수 있다:
새로운 마이크로소프트 변종도 실행 공간 보호를 지원하며 데이터 실행 방지라고 부른다. 상용 추가 기능은 다음과 같다:
실행 공간 보호로 libc로 귀환 공격 또는 공격자 코드 실행에 의지하지 않는 공격을 방지한다고 보증할 수는 없다.
버퍼 오버플로 흔히 버퍼 오버플로와 관련되는 프로그래밍 언어는 C와 C++로, 어떤 영역의 메모리에서도 내장된 데이터 접근 또는 덮어쓰기 보호 기능을 제공하지 않으며 어떤 배열에 기록되는 데이터가 그 배열의 범위 안에 포함되는지 자동으로 검사하지 않는다.
버퍼 오버플로 2003년 허가된 엑스박스 게임 안에 존재했던 버퍼 오버플로가 이용되어 자작 게임을 포함한 허가 받지 않은 소프트웨어도 콘솔에서 모드칩이라고 알려진 하드웨어 변경 없이 이용할 수 있게 되었다. PS2 독립 공격도 버퍼 오버플로를 사용하여 같은 작용을 플레이스테이션 2에 일으켰다. 황홍 공격은 닌텐도 위에서 같은 효과를 거두었는데, 젤다의 전설 황혼의 공주의 버퍼 오버플로를 이용하였다.
버퍼 오버플로 다양한 기법이 버퍼 오버플로를 감지 또는 방지하기 위하여, 다양한 대가를 지불하며 사용되어 왔다. 가장 신뢰성 있는 버퍼 오버플로를 회피 또는 방지하기 위한 방법은 언어 수준에서 자동 보호를 사용하는 것이다. 그러나 이러한 종류의 보호는 기존 코드에 적용할 수 없고, 때때로 기술적, 상업적, 또는 문화적 제한으로 취약한 언어를 요구한다.
버퍼 오버플로 힙 데이터 영역에서 일어나는 버퍼 오버플로를 힙 오버플로라 부르며 스택 기반 오버플로와는 다른 방법으로 이용할 수 있다. 힙 상의 메모리는 동적으로 응용 프로그램에 의해 실행시간 중에 할당되고 보통 프로그램 데이터를 보관하고 있다. 이용하는 방법은 이 데이터를 특정한 방법으로 오염시켜 응용 프로그램이 연결 리스트 포인터(linked list pointer)등과 같은 내부 자료 구조를 덮어쓰게 한다. 기본적인 힙 오버플로 기술은 동적 메모리 할당 연결(malloc 상위 수준 데이터)을 덮어씀으로써 프로그램 함수 포인터를 조작한다. 마이크로소프트 JPEG GDI+ 취약점은 힙 오버플로도 컴퓨터 사용자에 위험이 될 수 있다는 예이다.
스택 버퍼 오버플로 많은 플랫폼들이 콜 스택(스택 버퍼 오버플로 익스플로잇이 통하는 방식에 영향을 끼치는)의 구현에 미묘한 차이점들을 갖는다. 어떤 기계 구조는 레지스터에서 콜 스택의 탑 레벨 반환 주소를 저장한다. 이것은 어떤 겹쳐써진 반환 주소도 추후에 콜 스택이 풀려질 때까지 사용될 수 없다는 것을 의미한다. 익스플로잇 기법의 선택에 영향을 미칠 수 있는 다른 사항으로 대부분의 RISC 스타일 기계 구조들이 메모리에 대한 비정렬 접근을 허용하지 않는다는 것이 있다. 고정 길이 기계어 옵코드와 결합해서 이 제한은 ESP로 점프하는 기법의 구현을 거의 불가능하게 한다.
스택 버퍼 오버플로 스택 버퍼 오버플로는 스택 스매싱이라고 알려진 공격의 한 부분으로서 고의적으로 유발될 수 있다. 만약 영향을 받는 프로그램이 특정한 권한에서 실행되고 있거나 신뢰되지 않는 네트워크 호스트들(또는 웹 서버)에서 데이터를 받는다면 이 버그는 잠재적으로 보안 취약점이 된다. 만약 스택 버퍼가 신뢰받지 않은 사용자로부터 공급된 데이터로 채워진다면 사용자는 실행 가능한 코드를 실행 중인 프로그램에 삽입하고 프로세스의 제어를 얻는 방식으로 오염시킬 수 있다. 이것은 공격자가 컴퓨터에 대한 비인가된 접근을 얻을 수 있는 가장 오래되고 신뢰받는 방식들 중 하나이다.
버퍼 오버플로 만약 함수 Z가 오버플로를 발생시키면, 그것은 함수 Y나 주 프로그램에 포함된 데이터를 덮어 쓸 수도 있다:
버퍼 오버플로 2006년 9월 C 언어 표준 위원회 기술 보고서 24731이 공개되었다; 이는 표준 C 라이브러리의 문자열과 입출력 함수들에 기반하였으나 버퍼 크기 매개 변수를 추가로 가진 함수들을 명세하였다. 그러나 이런 함수들의 버퍼 오버플로 방지 효력은 논란의 여지가 있다. 프로그래머가 일부러 함수 호출 마다 개입하여야 하는데 이는 더 오래된 표준 라이브러리 함수의 버퍼 오버플로를 방지하게 만드는 것과 등가의 일이다.
버퍼 오버플로 버퍼 오버플로는 1972년 컴퓨터 보안 기술 기획 연구에서 기법을 소개하였을 때부터 이해되었던 개념이다. "이 기능을 수행하는 코드는 출처와 목적지 주소를 적절히 검사하지 않으므로, 사용자가 모니터의 일부를 덮어쓰도록 허용한다. 이는 코드를 모니터에 삽입하여 제어권을 획득하는 데 사용될 수 있다." 오늘날 모니터는 커널이라고 불릴 것이다.
버퍼 오버플로 비록 프로그래머가 B가 바뀌는 것을 전혀 의도하지 않았다 하더라도, B의 값은 문자열의 한 부분을 구성하는 숫자로 바뀌었다. 이 예제에서 ASCII를 사용하는 빅 엔디언 시스템에서 "e" "0"는 숫자 25836가 될 수 있다. B가 프로그램이 정의한 유일한 다른 변수였다면, B의 끝을 지나가는 긴 스트링을 쓰는 것은 세그멘테이션 오류, 프로세스 종료와 같은 오류를 발생시켰을 것이다.
버퍼 오버플로 버퍼 오버플로가 코드를 실행시키도록 설계되거나 프로그램 작동을 변경시키도록 설계된 입력에 의해 촉발될 수 있다. 따라서 이는 많은 소프트웨어 취약점의 근간이 되며 악의적으로 이용될 수 있다. 경계 검사로 버퍼 오버플로를 방지할 수 있다.
스택 버퍼 오버플로 해가 지날수록 악의적인 스택 버퍼 오버플로를 억제하는 계획들이 개발되어 왔다. 이것들은 크게 세 카테고리로 분류될 수 있다:
버퍼 오버플로 그 이후에 최소한 두가지의 대규모 인터넷 웜이 버퍼 오버플로를 이용하여 많은 수의 시스템에 영향을 주었다. 2001년 코드 레드 웜은 마이크로소프트의 인터넷 정보 서비스 5.0의 버퍼 오버플로를 이용했고, 2003년의 SQL 슬래머 웜은 마이크로소프트 SQL 서버 2000을 실행시키는 컴퓨터에 영향을 주었다.
버퍼 오버플로 버퍼 오버플로 취약점을 이용하는 기술은 구조, 운영 체제, 메모리 영역에 따라 다르다. 예를 들어 힙(heap, 동적 메모리 할당에 사용됨) 을 이용하는 방법은 함수 호출 스택을 이용하는 방법과 매우 다르다.
버퍼 오버리드 버퍼 오버리드는 하트블리드 버그에서처럼 경계 확인의 부족을 익스플로잇하여 의도치않은 메모리의 접근을 하도록 고안된 악의적으로 조작된 입력에 의해 발생한다. 이것들을 또한 프로그래밍 오류 자체적으로 발생할 수도 있다. 버퍼 오버리드는 메모리 접근 오류, 부정확한 결과, 충돌 등의 프로그램의 오류를 유발한다. 그러므로 이것들은 많은 소프트웨어 취약점들의 기본이며, 권한을 가진 정보에 접근하기 위해 악의적으로 익스플로잇될 수 있다.
버퍼 오버플로 보호 스택에 할당된 버퍼를 넘치게 하는 것은 힙의 버퍼를 넘치게하는 것 보다 프로그램 실행에 영향을 줄 수 있는데, 이것은 스택이 모든 함수 호출들에 대한 반호나 주소를 갖기 때문이다. 그러나 비슷한 구현에 명시적인 보호들 또한 힙 기반 오버플로에 대해 존재한다.
버퍼 오버플로 보호 Clang은 3가지의 버퍼 오버플로우 탐지자를 지원하는데, AddressSanitizer (-fsanitize=address),
-fsanitize=bounds, 그리고 SafeCode가 그것이다. 이러한 시스템들은 성능 패널티, 메모리 오버헤드 그리고 탐지된 버그들의 종류에 따라 다른 트레이드오프를 갖는다.
스택 버퍼 오버플로 이 방식이 스택 버퍼 오버플로 취약점 공격을 실패하게 하는 좋은 접근법인 반면에 여전히 문제는 존재한다. 첫째, 셸코드를 힙 같은 보호되지 않은 메모리에 저장하는 방식을 찾기가 쉽다.
스택 오버플로 "foo" 함수가 발생되면 자신을 호출하여 스택 오버플로가 일어날 때까지 매번 스택에 추가 공간을 사용하며 결국 세그멘테이션 오류가 발생한다.
충돌 (컴퓨팅) 애플리케이션 충돌을 유발하는 일반적인 에러는 다음과 같다:
웹사이트 뒤에서 소프트웨어를 실행하는 웹 서버도 완전히 접근 불가능하게만들면서 또는 정상적인 내용 대신 오직 오류 메시지만 제공하는 상태로 충돌될 수 있다.
운영 체제 충돌은 처리될 수 없는 하드웨어 예외가 발생할 때 주로 발생한다. 운영 체제 충돌은 또한 내부 정상 테스트(sanity-checking) 로직이 운영 체제가 내부 자기 일관성을 잃은 것을 탐지했을 때 발생할 수 있다.
충돌을 유발하는 많은 소프트웨어 버그들은 또한 임의 코드 실행과 권한 확대에 대한 취약점 공격이 가능하다. 예를 들면 스택 버퍼 오버플로는 서브루틴의 반환 주소를 유효하지 않은 값으로 겹쳐쓸 수 있으며, 이것은 서브루틴이 리턴할 때 세그멘테이션 오류를 유발한다. 그러나 만약 익스플로잇이 반환 주소를 유효한 주소로 겹쳐쓴다면, 그 주소의 코드는 실행될 것이다.
버퍼 오버플로 보호 StackGuard와 ProPolice는 (함수 포인터들을 오버플로우하는) 자동으로 할당된 구조체들에서 오버플로우를 방어하지 못한다. ProPolice는 함수 포인터들 전에 이러한 할당된 구조체들을 얻기 위해 적어도 할당 순서를 재배치할 것이다. 포인터 보호를 위한 독립된 메커니즘은 PointGuard에서 제안되었으며 마이크로소프트 윈도우에서 사용 가능하다.
버퍼 오버플로 기술적 성향을 가진 악의적 사용자가 스택 기반 버퍼 오버플로를 이용하여 프로그램을 아래와 같이 조작할 수 있다:
버퍼 오버플로 보호 게다가 랜덤 XOR 카나리스는 제어 데이터를 가리키게 바꾸는, 버퍼를 오버플로우 시키는 것과 관련된 특정한 종류의 공격을 방어할 수 있다. 만약 제어 데이터나 반환 값이 변하면 XOR 인코딩 때문에 카나리는 달라지게 된다. 이 포인터로 인해 제어 데이터나 반환 값은 카나리를 오버플로우하지 않고 바뀔 수 있다.
LibreSSL 더 자세히 들어가면, 지금까지의 일부 눈에띄고 중요한 변화 중에는 커스텀 메모리 호출을 표준 라이브러리로 바꾼것이다(예를 들어 , , , , 등).
이 절차는 나중에 더 나은 메모리 디버거를 사용하거나 프로그램 오류 발생을 관찰(주소 공간 배치 난수화(ASLR), NX 비트, Stack Canary 등을 통해) 버퍼 오버플로에러를 수정하는데 도움을 줄 수도 있다.
스택 버퍼 오버플로 스택 버퍼 오버플로 익스플로잇을 방지하는 다른 접근법으로 (스택에서의 실행을 불허하는) 스택 메모리 영역에 대한 정책을 강제하는 것이 있다(W^X, "Write XOR Execute"). 이것은 공격자가 메모리에서 실행 보호를 비활성화하거나 셸코드 페이로드를 메모리의 보호되지 않은 영역에 놓는 방식을 찾게 한다. 이 방식은 현재 더 유명해 졌는데, 대부분의 데스크탑 프로세서들에서 하드웨어가 실행 불가능 플래그를 지원하기 때문이다.
메모리 디버거 메모리 디버거는 메모리 누수와 버퍼 오버플로를 찾기 위하나 프로그래밍 도구이다. 이것들은 동적 메모리의 할당과 할당 해제와 관련된 소프트웨어 버그 때문에 발생한다. 쓰레기 수집을 가진 언어들로 쓰여진 프로그램들도 메모리 디버거를 필요로 하는데, 예를 들면 콜렉션들에서 "살아있는" 참조들에 의한 메모리 누수가 발생하기 때문이다.
힙 오버플로 예를 들면 마이크로소프트 JPEG GDI+ 버퍼 오버플로 취약점은 감염된 머신에서 코드의 원격 실행을 허용한다.
버퍼 오버플로 보호 "Random 카나리"는 공격자가 값을 아는 것을 막기 위해 (일반적으로 EGD에서) 랜덤하게 생성된 것이다. 일반적으로 익스플로잇을 위해 카나리를 읽는 것은 논리적으로 불가능하다; 카나리는 버퍼 오버플로 보호 코드 같이 오직 알아야 되는 이만 아는 보안 값이다.
버퍼 오버플로 버퍼 오버플로는 포인터를 조작함으로써 (저장되어 있는 주소를 포함하여) 작동한다. 포인트 가드는 컴파일러 확장으로 제안되었는데, 공격자가 신뢰성 있게 포인터와 주소를 조작하는 것을 방지한다. 접근 방법은 컴파일러가 추가 코드를 삽입하여 자동적으로 포인터를 사용 전후에 XOR-인코딩하도록 하는 것이다. 공격자가 (이론적으로는) 어떤 값이 포인터를 인코드/디코드할 때 사용할지 알지 못하기 때문에 어떤 값으로 덮어 써야 원하는 효과를 거둘 수 있을지 알기 힘들게 된다. 포인트가드가 배포된 적은 없지만 마이크로소프트에서 비슷한 접근 방법을 구현하여 윈도 XP SP2와 윈도 서버 2003 SP1 이후에 적용하였다. 포인터 보호를 자동 기능으로 구현하지는 않았고, API를 추가하여 프로그래머의 재량에 따라 호출하여 사용하도록 하였다. XOR이 선형이므로, 공격자가 암호화된 포인터를 조작하여 어떤 주소의 하위 바이트만 덮어쓸 수 있다. 이렇게 하면 공격자가 여러번 시도하거나 복수의 위치 (예를 들어 NOP 슬라이드 안의 어떤 위치) 에 대해 시도함으로써 공격이 성공할 수 있다. 마이크로소프트는 임의로 암호화 방안을 변경함으로써 이 약점을 보완, 부분적으로만 덮어쓰기가 가능하게 하였다.
버퍼 오버플로 보호 마이크로소프트의 컴파일러 모음은 2003년부터 /GS 커맨드라인 스위치를 통해 버퍼 오버플로우 방어를 구현하였으며 이것은 버전 2005부터 디폴트로 활성화된다. /GS- 를 사용하면 방어를 비활성화할 수 있다.
스택 오버플로 프로그램이 호출 스택에서 이용 가능한 공간 이상을 사용하려고 시도할 때, 스택이 오버플로(overflow)된다고 하며 이 경우 일반적으로 프로그램 충돌이 발생하게 된다.
제로 데이 공격 제로데이 메모리 훼손 취약점을 제한하는 수많은 기술들이 존재하며, 그 예로는 버퍼 오버플로가 있다. 이러한 보호 메커니즘은 애플의 매킨토시 OS, 마이크로소프트 윈도 비스타 , 선 마이크로시스템 솔라리스, GNU/리눅스, 유닉스, 그리고 유닉스 계열 환경 등 많은 운영 체제에 존재한다. 마이크로소프트 윈도 XP 서비스팩 2에는 포괄적인 메모리 훼손 취약점에 대한 약간의 보호 메커니즘이 포함되어 있다. 데스크탑과 서버 보호 소프트웨어 역시 제로데이 버퍼 오버플로 취약점을 완화시키기 위해 만들어져있다.
소프트웨어 버그 버그의 결과로 다양한 문제가 발생할 수 있다. 몇몇 버그는 프로그램의 동작에 조그마한 영향을 줄 뿐이며, 오랜 시간 동안 발견되지 않고 남아 있을 수 있다. 이보다 더 심각한 버그는 프로그램의 실행이 중단되거나 강제 종료되는 문제를 일으킬 수 있고, 어떠한 버그는 보안 문제를 발생시킬 수도 있다. 예를 들어, 악의적인 사용자는 자주 발생하는 버그인 버퍼 오버플로를 사용해서 원래는 허락되지 않은 일을 할 수 있다.
버퍼 오버플로 한편, 이 방법이 어떤 공격이 성공적일 확률을 크게 높이는 반면, 문제가 없는 것은 아니다.
스택 버퍼 오버플로 스택에 기반한 버퍼 오버플로를 취약점 공격하는 정석적인 방법은 함수의 반환 주소를 공격자에 의해 제어된 데이터를 가리키는 포인터로 겹쳐쓰는 것이다. 이것은 다음의 예시에서 codice_1를 사용해서 설명한다.이 코드는 명령 줄에서 인자를 받고 지역 스택 변수 codice_2에 복사한다. 이것은 명령 줄 인자가 12 문자 보다 작다면 정상적으로 동작한다(아래의 "그림 B" 에서 보이듯이). 11 문자보다 큰 어느 인자들도 스택의 오염을 일으킨다. (안전한 문자의 수는 버퍼의 크기보다 하나 작은데 이것은 C 프로그래밍 언어 문자열들이 0 문자로 종료되기 때문이다. 12 문자 입력은 그래서 13바이트의 저장소를 필요로 한다.)
블룸 필터 카운팅 필터에서는 버켓 변수의 오버플로우가 발생할 수 있으므로, 버켓 변수는 이를 감안하여 충분히 큰 자료형이 사용되어야 한다.
오버플로우 상황이 발생한 경우, 블룸 필터의 성질을 유지하기 위해 원소의 추가 및 삭제시 해당 버켓의 값은 최댓값으로 설정하여야 한다.
버퍼 오버플로 보호 역사적으로 태깅은 고 수준 프로그래밍 언어들을 구현하는데 사용되어 왔다; 운영체제로부터의 적절한 지원 하에, 태깅은 버퍼 오버플로우를 탐지하는 용도로도 사용될 수 있다. 한 예시로 NX 비트 하드웨어가 있으며 이것은 인텔, AMD and ARM 프로세서들에서 지원된다.
스택 스매싱 방어는 1997년 StackGuard에 의해 처음 구현되었고 1998년 USENIX 보안 심포지엄에서 발표되었다. 스택가드는 GCC 2.7의 인텔 x86 백엔드를 위한 패치로서 도입되었다. 스택가드는 1998년부터 2003년까지 Immunix 리눅스 배포판을 위해 유지되었고 종결자, 랜덤 그리고 랜덤 XOR 카나리스를 구현하는 방식으로 확장되었다.
버퍼 오버플로 가능한 더 안전한 기능을 제공하는 함수를 사용하는 것도 방법이다. 예를 들어 문자열의 길이를 구하는 C 함수 strlen, wcslen 함수는 NULL 문자를 만날 때까지 계속 다음 메모리를 참조해 나가는 메커니즘으로 되어 있어서 원래의 문자열 끝에 NULL이 없으면 최악의 경우 메모리 영역 끝을 넘어서까지 메모리를 참조하려 시도할 것이다. 이 때에는 좀 더 개선된 함수 strlen s나 wcslen s 를 사용하여 참조할 최대 메모리를 제한 할 수 있다. 이 외에 기존의 문자열 함수 뒤에 _s가 붙은 이름의 함수를 사용하면 버퍼 오버플로 문제를 개선할 수 있다.
스택 버퍼 오버플로 위의 "그림 C"에서 보듯이, 인자가 11 바이트보다 더 클 때  codice_3는 프레임 포인터가 저장된 지역 스택 데이터, 무엇보다 반환 주소를 겹쳐쓴다. codice_3가 반환할 때 이것은 반환 주소를 반환하고 그 주소로 점프한다(즉, 그 주소에서부터 명령어를 실행한다). 공격자는 반환 주소를 스택 버퍼 codice_6를 가리키는 포인터로 겹쳐썼으며, 이제 공격자가 제공한 데이터를 포함하고 있다. 실제 스택 버퍼 오버플로 익스플로잇에서는 "A"의 문자열이 대신에 플랫폼과 바랬던 함수에 적합한 셸코드로 대체된다. 만약 프로그램이 특별한 권한을 가졌다면(예를 들면 SUID 비트), 공격자는 이 취약점을 슈퍼유저 권한을 얻는데 사용할 수 있을 것이다.
힙 오버플로 옛날 버전의 리눅스에서의 전형적인 예시는 힙에서 두 버퍼가 각각 나란히 할당되고, 첫 번째 버퍼의 경계 외부에 쓰는 것이 두 번째 버퍼의 메타 데이터를 겹쳐쓰게되는 것이다. 두 번째 버퍼의 사용 비트를 0으로 설정하고 널 바이트들이 복사되게 하기 위해 작은 음수 값을 길이로 설정한 후에, 첫 번째 버퍼에서 프로그램이 free() 함수를 호출할 때 프로그램은 이 두 버퍼를 단일 버퍼로 통합하려는 시도를 할 것이다. 이 상황이 벌어지면 free될 버퍼는 이전에 할당된 버퍼의 첫 8 바이트에 포워드와 백이라는 두 포인터를 갖게 된다.
버퍼 오버플로 보호 이 접근법의 구현은 메모리의 할당된 각 블록을 서술하는 중앙 저장소, 또는 포인터와 추가적인 데이터(가리키는 영역을 서술하는)를 모두 포함하는 팻 포인터를 사용한다.
태깅은 메모리에서 데이터의 타입(주로 타입 검사 시에 사용되는)을 태그하기 위한 컴파일러 또는 하드웨어 기반 기법(태그 아키텍처를 요구하는)이다. 메모리의 특정한 영역을 실행 불가능으로 마킹함으로써 이것은 데이터를 저장하기 위해 할당된 메모리가 실행 가능한 코드를 포함하는 것으로부터 효과적으로 보호할 수 있다. 게다가 메모리의 특정한 영역들은 버퍼 오버플로우를 방어하기 위해 할당 불가능하게 마킹될 수 있다.
버퍼 오버플로 주소 공간 배치 난수화 (Address space layout randomization, ASLR)는 컴퓨터 보안 기능으로 중요 데이터 영역, 예를 들어 실행 코드의 기반 주소, 라이브러리, 힙, 스택 주소 등을 임의로 프로세서의 주소 공간에 배치하는 것이다. 함수와 변수를 찾을 수 있는 가상 메모리 주소의 난수화로 버퍼 오버플로 이용이 더 어려워지지만 불가능한 것은 아니다. 공격자가 이용 시도를 각각의 시스템에 따라 다르게 하도록 강요하므로 인터넷 웜 방어에 더 유용하다. 비슷하지만 덜 효과적인 방법은 프로세스와 라이브러리를 가상 주소 공간에 리베이스하는 것이다.
버퍼 오버플로 NOP 슬라이드 기법은 가장 오래되고 가장 널리 알려진 스택 버퍼 오버플로 공격 기법이다. 버퍼의 정확한 주소를 찾는 문제를 해결하는 것으로, 표적 영역의 크기를 효과적으로 증대시킨다. 이를 위하여 훨씬 큰 영역의 스택을 NOP 기계어 코드 (컴퓨터가 이 명령을 읽으면 그 클럭 싸이클에는 아무 일도 하지 않는다)로 오염시킨다. 공격자 제공 데이터 끝, 즉 NOP 명령어 이후에 버퍼의 최상위 위치, 셸 코드가 있는 곳으로 상대적 jump 명령어를 둔다. NOP 명령어의 모음이 "NOP 슬라이드"라고 불린다. 왜냐하면 귀환 주소를 덮어 쓸 때 NOP 영역 내의 주소값 어디를 써도 결국 NOP 명령어들을 따라 "미끄러져" 최후의 상대 jump로 실제 악성 코드에 도달하기 때문이다. 이 기법은 공격자가 상대적으로 작은 크기의 셸 코드의 위치 대신 스택에서 NOP 슬라이드의 위치를 추정하면 된다.
버퍼 오버플로 보호 "Terminator 카나리"는 대부분의 버퍼 오버플로 공격들이 문자열 종결자로 끝나는 특정한 문자열 연산에 기반한다는 것에 대한 감시를 사용한다. 이 감시에 대한 반응은 카나리가 null 종결자, CR, LF, 그리고 -1이라는 것이다. 결과적으로 공격자는 카나리를 바꾸는 것을 피하기 위해 반환 주소를 쓰기 전에 널 null 문자를 써야 한다. 이것은 codice_1 를 사용하는 공격과 null 문자를 복사하며 반환하는 기법들을 막는다. 이 보호에도 불구하고 공격자는 잠재적으로 카나리를 알려진 값으로 겹쳐쓰고 정보를 틀린 값들로 제어해서 카나리 검사 코드를 통과할 수 있다.
버퍼 오버플로 아래의 예에서 "X"는 프로그램이 실행될 때 스택에 있게 되는 데이터이다. 프로그램은 그 다음 작은 양의 저장공간만 필요한 함수 "Y"를 호출한다. 그리고 "Y"는 그 다음 많은 버퍼를 필요로 하는 "Z"를 호출한다.
버퍼 오버플로 심층 패킷 조사로 네트워크 경계에서 아주 간단한 버퍼 오버플로 원격 시도를 공격 고유 신호과 경험적 방법으로 검출할 수 있다. 알려진 공격 고유 신호 또는 긴 NOP 명령이 검출되면 패킷을 막을 수 있으며, 공격 패킷 내용으 조금 달라도 사용할 수 있다. 패킷 스캐닝은 효과적이지 못한데, 그 까닭은 알려진 공격만 막을 수 있고 NOP 슬라이드는 다양한 방법으로 암호화 할 수 있기 때문이다. 공격자들은 경험론적 패킷 스캐너와 침입 감지 시스템의 탐지를 회피하기 위하여 영숫자, 탈바꿈, 자기 수정 셸코드를 사용하기 시작하였다.
스노트 이 프로그램은 또한 조사나 공격을 탐지하는데 사용될 수 있다. 이러한 조사나 공격으로는 공용 TCP/IP 스택 핑거프린팅, 공용 게이트웨이 인터페이스, 버퍼 오버플로, 서버 메시지 블록 조사 그리고 스텔스 포트 스캔 등이 있다.
버퍼 오버플로 많은 다른 프로그래밍 언어는 실행시간 검사를 제공하고, 어떤 경우에는 심지어 컴파일 시 검사하여 C 또는 C++가 데이터를 덮어쓰고 계속하여 더 많은 명령을 실행하여 잘못된 결과가 프로그램을 깨뜨릴 수도 있는 경우 경고 또는 예외를 제기할 수도 있다. 그러한 언어의 예는 에이다, 리스프, 모듈라-2, 스몰토크, OCaml 그리고 C에서 발전된 사이클론과 D이다. 자바와 닷넷 바이트코드 환경도 경계 검사를 모든 배열에 대하여 요구한다. 거의 모든 인터프리터 언어는 잘 정의된 에러 조건에 신호를 보냄으로써 버퍼 오버플로에 대항 보호할 것이다. 어떤 언어가 충분한 형 정보(type information)를 제공하면 때때로 가능케 할것인지 불가능하게 할 것인지 정할 수 있게 해 준다. 정적 코드 분석은 다수의 동적 경계 검사를 제거할 수 있지만, 잘못 구현되거나 부적절한 케이스(case)는 심각하게 성능을 저하시킬 수 있다. 소프트웨어 공학자는 반드시 조심스럽게 안전성과 성능 비용 사이의 조율을 고려하여 언어와 컴파일러 설정을 결정하여야 한다.
버퍼 오버플로 보호 카나리로는 세 종류가 사용된다: "terminator", "random", 그리고 "random XOR". 스택가드(StackGuard)의 최신 버전은 세 가지 모두를 지원하며, ProPolice는 "terminator"와 "random" 카나리를 지원한다.
Gets 프로그래머에 있어서 codice_3의 안전한 사용을 하기 위해 버퍼 오버플로우를 확인하는 것이 문제가 되지 않는다.
버퍼 오버플로 보호 비록 이러한 카나리스가 클로버 된 포인터들을 통해 제어 데이터를 변경시키는 것으로부터 방어할 수 있지만, 다른 데이터나 포인터 자체는 방어할 수 없다. 특히 함수 포인터들은 여기서 문제가 되는데, 오버플로우될 수 있고 호출될 시에 셸코드를 실행할 수 있게 된다.
경계 검사는 할당된 메모리의 각 블록을 위한 런타임 경계 정보를 추가하고 런타임 시에 관련된 모든 포인터를 검사하는 컴파일러 기반 기법이다. C와 C++에서 경계 검사는 포인터 계산 시간 또는 역참조 시간에 수행될 수 있다.
경계 검사 한편 (C를 포함한) 많은 프로그래밍 언어는 빠른 실행 속도를 위해 경계 검사를 자동으로 수행하지 않으며, 이 점으로 인해 대다수의 Off-by-one 에러나 버퍼 오버플로 취약점 등이 발견되지 않은 채 방치되기도 한다. 대다수의 프로그래머들은 이러한 언어들이 속도를 위해 지나치게 많은 것을 희생하고 있다고 생각한다고 한다. 영국의 컴퓨터 과학자 는 1980년 튜링상 강연에서 과거 ALGOL 60 프로그래밍 언어를 디자인하던 시절의 경험에 대해 다음과 같이 술회하였다. (ALGOL 60은 자동 경계 검사 기능을 내장한 언어이다.)이러한 원칙의 결과는 바로, "모든" 첨자를 갖는 변수의 "모든" 첨자 (예: 배열의 인덱스)는 실행 시간에 "항상," 미리 선언된 배열의 상/하한 사이에 있는지 체크된다는 것이었다. 몇년 후에 우리는 고객들에게 상용 서비스 중인 프로그램의 효율적인 동작을 위해 이런 경계 검사 기능을 켜고 끌 수 있는 옵션을 포함시키면 어떤지에 대해 의견을 물었는데, 고객들 모두 만장일치로 그런 기능이 있으면 "안된다"고 주장했다. 그들 모두 상용 서비스 중에 첨자 오류 (경계 바깥을 접근하는 오류)가 얼마나 자주 발생하는지, 또 그것들이 발견되지 않을 때 얼마나 파괴적일 수 있는지 알고 있었던 것이다. 심지어 1980년씩이나 되어서 충격과 공포로 내가 깨달은 점이 있다면, 많은 프로그래밍 언어 디자이너와 사용자들이 아직도 이 점에서 크게 교훈을 얻지 못했다는 것이다. 어떤 멀쩡한 공학 부분이든 간에, 이런 기본적인 주의 사항을 간과하는 것 자체가 오래 전부터 "불법 수준"으로 간주될 수도 있는 일이었다.주류 프로그래밍 언어 가운데 실행 시간 (런타임) 경계 검사 기능을 지원하는 언어로는 Ada, C#, 하스켈, Java, 자바스크립트, 리스프, PHP, 파이썬, Ruby, 비주얼 베이직 등이 있다. D 언어와 OCaml은 컴파일러 옵션을 통해 실행 시간 경계 검사 기능을 켜고 끌 수 있다. C# 역시 일정 부분의 코드에 대해서는 일시적으로 경계 검사를 수행하지 않도록 하는 기능을 지원한다 (unsafe 구역). 이런 기능들은 전체 프로그램의 안전성을 훼손시키지 않으면서도 일부 실행 시간 병목을 해소시킬 수 있어 성능 개선에 유용하게 사용될 수 있다.
버퍼 오버플로 레지스터로 건너뛰기 jump to register 기법은 NOP-슬라이드와 같은 추가 공간이나 스택 위치 오프셋을 추정하지 않아도 잘 작동한다. 전략은 복귀 포인터를 덮어써서 통제된 버퍼, 즉 셸코드를 담고 있는 레지스터의 위치로 프로그램이 건너뛰게 만드는 것이다. 예를 들어 레지스터 A가 어떤 버퍼의 시작점을 담고 있다면, 이 레지스터를 오퍼랜드(operand)로 삼은 어떠한 건너뛰기 또는 호출로 실행 흐름의 제어권을 얻을 수 있다. 실전에서는 어떤 프로그램이 의도적으로는 어떤 특정 레지스터에 저장된 주소로 건너뛰는 명령을 포함하지 않을 수도 있다. 전통적인 해법은 어떤 의도되지 않은 적당한 작동코드 opcode 사례를 프로그램 메모리 어딘가 고정된 위치에서 찾는 것이다. 예를 들면, 뜻하지 않게 i386 JMP esp 명령이 포함된 경우가 ntdll.dll 안의 DbgPrint()함수에 있었다. 이 명령의 작동 코드는 FF E4이다. 이 연속 두 바이트 패턴이 call DbgPrint 명령에서 1Byte 떨어진 곳 주소 0x7C941EED에 나타났다. 공격자가 프로그램의 귀환 주소를 이 주소로 덮어 쓰면, 프로그램이 처음에는 0x7C941EED로 건너뛰어 실행 코드 FF E4를 JMP esp 명령으로 인식하여 스택의 정상 위치로 jump, 공격자의 코드를 실행할 것이다. 이 기법이 가능하다면 취약성의 심각성이 상당히 증가한다. 이는 왜냐하면 이용이 충분히 신뢰성 있게 작동하여 공격을 자동화, 실행하면 가상적으로 성공을 보증할 수 있게 되기 때문이다. 이러한 이유로, 이 기법이 인터넷 웜에서 가장 흔히 버퍼 오버플로 취약점을 이용하기 위해 사용된다. 이 방법은 또한 셸코드의 위치를 윈도 플랫폼 상에서 덮어씌어진 귀환 주소 뒤에 위치하더라고 가능하다. 실행 코드는 주소 0x00400000에 기반하고, x86은 리틀 엔디안 구조이므로 귀환 주소의 최후 바이트는 반드시 무효값이 되고, 이것이 버퍼 복사를 마감하며 그 이후에는 아무것도 씌지 않는다. 이로 하여 셸코드의 크기는 버퍼의 크기로 제한되며, 지나친 규제가 될 수 있다. 동적 연결 라이브러리 DLL은 고위 메모리 (0x01000000 이상)에 저장되며 따라서 무효 바이트가 없는 주소를 가지므로, 이 방법은 무효 바이트 (또는 다른 허용 안되는 문자)를 덮어씌어진 복귀 주소에서 제거할 수 있다. 이런 식으로 사용되면, 이 방법은 때때로 DLL 프램폴라이닝이라고 불린다.
스택 버퍼 오버플로 codice_3의 프로그램 스택과 여러 입력들:
스택 버퍼 오버플로 공격자는 또한 내부 변수 값을 몇몇 버그들을 익스플로잇하기 위해 수정할 수 있다. 다음의 예시를 보자:
힙 오버플로 우연한 오버플로는 영향을 받은 메모리 영역을 사용하는 프로세스들에서 데이터 오염이나 예상치 못한 행위를 야기한다. 메모리 보호가 없는 운영 체제에서 이것은 시스템의 어느 프로세스라도 가능하다
버퍼 오버플로 보호 카나리는 쿠키("cookies")라는 단어로 사용될 수 있다.
Cloudflare 2016년 9월부터 2017년 2월까지 주된 CloudFlare의 버그로 인해 민감한 데이터가 유출되었는데, 여기에는 고객 웹사이트의 암호 및 인증 토큰을 포함하며, 웹 요청에 대한 응답으로 추가 데이터를 보내는 방식으로 이루어졌다. 버퍼 오버플로를 통해 유출이 발생하였으며, CloudFlare의 분석에 따르면 3,300,000개의 HTTP 요청마다 약 1건씩 발생하였다.2014년 6월, Cloudflare는 Ryan Lackey가 설립한 CryptoSeal을 인수하면서 웹 사용자 보안 서비스가 확장될 것이라고 발표했다. 2014년 2월에는 맬웨어 감지, 자동 맬웨어 삭제, 평판 및 블랙리스트 모니터링을 제공하는 StopTheHacker를 인수했다. 2016년 12월, Cloudflare는 Cloudflare를 실행하는 사이트에 타사 앱을 끌어다 놓기로 설치할 수 있도록 Cloudflare의 앱 플랫폼을 업그레이드하기 위해 Eager를 인수했다.
Cloudflare는 무료 서비스와 유료 서비스를 동시에 제공한다. 터키 정부, Starfor, 메탈리카등 미국 이외에 많은 고객이 있다.
버퍼 오버플로 아래의 예제에서, 프로그램은 메모리에서 인접해 있는 두 아이템을 정의하였다: 8 바이트 길이 스트링 버퍼, A. 그리고 2 바이트 정수형, B. 우선, A 는 8바이트 모두 숫자 0값만 포함하고 B는 숫자 3을 포함한다. 문자들은 1바이트 크기이다.
반환 지향형 프로그래밍 일반적인 버퍼 오버런 공격에서, 공격자는 간단하게 공격 코드(페이로드)를 스택에 쓰고 반환 주소를 이 새로운 명령어들의 위치로 겹쳐쓴다. 최근들어 운영 체제들은 버퍼 오버플로 버그 익스플로잇과의 전쟁을 통해 데이터가 저장되는 메모리를 실행 불가능하게 마크한다(이 기법은 데이터 실행 방지로 알려져 있다). 데이터 실행 방지가 활성화되면 머신은 사용자가 쓸 수 있는 메모리 영역에 위치한 코드를 실행하지 않는다. 이 방어를 강화하기 위해 하드웨어가 지원하는 데이터 실행 방지도 사용 가능해 졌다.
Return-to-libc 공격 실행 불가능한 스택은 몇몇 버퍼 오버플로 익스플로잇을 방지할 수 있지만, return-to-libc 공격에서는 단지 존재하는 실행 가능 코드가 사용되기 때문에 return-to-libc을 막을 수는 없다. 스택 스매싱 보호는 스택의 오염을 탐지할 수 있으므로 이 취약점 공격을 막거나 방해할 수 있다.
언더플로 산술 언더플로(arithmetic underflow)는 산술 오버플로와 반대되는 개념으로서 산술연산의 결과가 취급할 수 있는 수의 범위 보다 작아지는 상태를 말한다. 예를 들면, 부동소수점 표시법 이 사용되고 있을 때 결과가 표시하는 0이 아닌 최솟값보다 작을 때에는 이 상태가 된다. 즉, 0을 향해 점점 작아지면서 음의 지수가 발생하는데 (0으로 무한히 가까워 짐을 나타낸다. 결코 0이 아니다.)이 된다. 여기서 허용된 범위를 초과하는 음의 지수가 발생하면 결과는 언더플로가 된다. 이는 연산결과가 레지스터 등의 처리장치가 취급할 수 있는 값보다 작은 값이 되는 것을 말한다.
버퍼 오버플로 이제, 프로그램은 문자열 "sexybacke"를 A 버퍼에 저장한다. 한 바이트짜리 0값이 스트링의 끝임을 알리기 위해 따라온다. 스트링의 길이를 확인하지 않음으로 B의 값을 덮어쓴다.
힙 오버플로 마이크로소프트는 2003년 부터 힙에 기반한 버퍼 오버플로에 대한 방어를 포함하였다. 이러한 완화는 안전한 링크해제와 힙 엔트리 헤더 쿠키가 있다. 윈도우의 최근 버전들은 일반적으로 대상이 되는 데이터 구조체들의 제거, 힙 엔트리 메타데이터 난수화, 함수 포인터 인코딩, 힙 오염의 종료 그리고 알고리즘 변이를 포함한다. 일반 데이터 실행 방어(DEP)와 ASLR 도 또한 이 공격을 완화시키는데 도움을 준다.
버퍼 오버플로 이 프로그램은 strncpy를 이용해 아래와 같이 안전하게 다시 쓸 수 있다:
버퍼 오버플로 보호 2001년부터 2005년까지, IBM은 "ProPolice"라고 알려진 스택 스매싱 방어를 위한 GCC 패치를 개발하였다. 이것은 스택 프레임에서 버퍼들을 로컬 포인터들과 함수 매개변수들의 뒤에 둠으로써 스택가드의 아이디어를 개선하였다. 이것은 임의적인 메모리 위치로 접근하는 것을 막음으로써 포인터의 오염을 피하게 도와주었다.
버퍼 오버플로 읽히거나 실행되기 전에 버퍼를 조작하면 이용하려는 시도를 막을 수도 있다. 이러한 조작은 이용당할 위협을 완화시켜줄 수는 있지만 불가능하게 만들지는 못한다. 조작에는 대문자로 또는 소문자로 변환, 제어 부호 제거, 숫자 영문자 제거 등이 포함된다. 이러한 방지 수단을 회피하는 기술도 존재한다: 숫자 영문자 코드, 다형성 코드, 자체 수정 코드, libc 귀환 공격 등. 같은 방법을 침입 감지 시스템에 의한 피탐지를 회피하는 데도 사용할 수 있다. 어떤 경우에는, 유니코드 변환의 경우도 포함되지만, 서비스 거부만 가능한 것으로 취약점의 위협이 잘못 표현되었지만 사실은 임의 코드의 원격 실행이 가능할 수도 있다.
메모리 보안 메모리 보안(Memory safety)은 소프트웨어 개발에서 고려하는 것으로서, 버퍼 오버플로와 허상 포인터 같은 (RAM 접근을 다루는) 보안 취약점을 유발시킬 수 있는 소프트웨어 버그들을 회피할 목적으로 이루어진다.
오버플로 오버플로(), 오버플로우는 사전적으로 넘쳐흐른다는 뜻의 용어로, 컴퓨터 분야에서 특히 많이 사용되는 용어이다.
스택 오버플로 (웹사이트) 2013년 6월 기준으로 스택 오버플로는 1,700,000 명 이상의 등록 사용자와 5,000,000개 이상의 질문들이 있다. 질문에 할당된 태그의 종류에 따라 이 사이트에서 가장 많이 논의된 8개의 주제로는: C#, 자바, PHP, 자바스크립트, 안드로이드, 제이쿼리, C++, 파이썬이 있다.
스택 버퍼 오버플로 이 방법이 아니더라도 다른 방식들도 존재한다. 가장 최악은 셸코드 생성을 위한 return-to-libc 공격 방식이다. 이 공격에서 악의적인 페이로드는 셸코드 없이, 하지만 적절한 콜 스택과 함께 스택을 로드해서 실행은 표준 라이브러리 호출들의 체인에 위치하게 된다. 이것은 실행이 실제로는 스택 자체에 위치하지 않기 때문에 동작한다.
대항해시대 외전 대항해시대2에 기반을 두고 있기 때문(대항해시대2 게임방식을 참조할 것.)에 기본적으로 방식은 같으나 몇몇 부분은 다음과 같이 변경되었다.다음은, 원래부터 그런 것인지 오류인지는 알 수 없다.
전작 2에서는 지중해 연안에서 50일째에도 괴혈병이 나타나지 않는 경우도 있다.
원칙적으로는 25일째 쥐떼가, 50일째 괴혈병이 발생하는데, 먼바다인가 항구가 가까운가에 따라서 조금씩 다르다.
버퍼 오버플로 트램폴라이닝(trampolining)이라 불리는 방법을 사용하면, 사용자가 지정한 데이터의 주소를 모르더라도, 레지스터에 그 주소가 저장되어 있다면, 실행 흐름을 사용자 제공 데이터로 도약하도록하는 어떤 실행코드의 주소로 귀환 주소를 덮어쓸 수 있다. 위치가 레지스터 R에 저장되어 있다면 jump R이나 call R과 같이 R에 저장되어 있는 주소로 건너뛰는 작동코드 opcode 로 사용자 제공 데이터가 실행되도록 할 수 있다. 적당한 작동코드 또는 바이트의 위치는 DLL 이나 실행 파일 자체 안에서 찾을 수 있다. 그러나 작동 코드의 주소는 전형적으로는 어떠한 무효 문자도 포함할 수 없고, 이러한 작동 코드의 위치는 응용 프로그램마다, 운영 체제 버전에 따라 달라질 수 있다. 메타스플로잇 프로젝트는 그러한 적당한 작동코드의 데이터베이스로 윈도 운영 체제에 관한 것이 나열되어 있다.
자체 수정 코드 또한 바이러스나 셸코드 같은 프로그램들에 의해서 자신의 존재를 드러내지 않기 위한 용도로 사용된다. 이것들은 다형적인 코드와 자체 수정 코드의 조합을 주로 사용한다. 또한 버퍼 오버플로 같은 공격에서 실행 중인 코드를 수정하는 방법이 사용된다.
버퍼 오버플로 보호 "Random XOR 카나리"는 제어 데이터의 모든 또는 부분을 사용해서 XOR을 섞은 랜덤 카나리이다. 이 방식에서는 카나리나 제어 데이터가 오염될 때 카나리 값이 달라진다.
Return-to-libc 공격 “return-to-libc” 공격은 보통(NX 비트가 존재하는 경우 이것을 우회함으로써), 콜 스택의 서브루틴 반환 주소를 이미 프로세스의 실행 가능 메모리에 위치한 서브루틴의 주소로 교체되게 하는, 버퍼 오버플로 시에 사용되는 컴퓨터 보안 공격이다.
스택 오버플로 (동음이의) 프로그래밍 오류의 종류:
디버거 디버거들은 또한 버퍼 오버플로 같은 저장소 침입을 피하기 위한 메모리 보호를 포함하기도 한다. 이것은 메모리가 메모리 "풀"에서 동적으로 할당되는 트랜잭션 처리 환경에서 매우 중요하다.
버퍼 오버플로 실세계 이용에서는 다양한 이슈를 극복해야 공격을 신뢰성 있게 수행할 수 있다. 이러한 요소에는 주소에서의 무효값 바이트, 셸 코드 위치 가변성, 환경간 상이성, 그리고 다양한 대응수단이다.
버퍼 오버플로 보호 카나리 기법은 공격의 전체 계층을 막을 수 있다는 장점을 제공한다. 몇몇 연구에 따르면 이 기법의 성능에 대한 영향은 무시해도 될 정도라고 한다.
위성호 2013년 8월 신한카드 대표이사 사장으로 선임된 뒤 취임식에서부터 2200만 명 고객의 빅데이터와 모바일 카드에 대한 중요성을 강조했다. 12월에는 대한민국 카드업계 최초로 빅데이터 센터를 출범시켰다. 2014년 3월부터 빅데이터 센터를 통한 수익사업을 본격 추진하기 시작했다. 2014년 5월 빅데이터에 기반한 ‘코드나인’을 공개했다.
5세대 이동 통신 미국의 Verizon 사업자가 5GTF (5G Technology Forum)를 2015년 말에 설립하여 주도하고 있으며, 5GTF에 한국에서는 KT와 SKT가 합류를 하였고, 일본의 Docomo 가 가세해 있다. 5GTF는 5G기술의 1단계로 None Mobility 제품에 대한 Trial 용 규격을 발표했으며, Verizon은 5G CPE (Customer Premises Equipemt = 셋탑박스) 시범 서비스를 2017년 2월 부터 시작하고 2017년말에는 상용화하겠다는 계획을 발표한 이래, 한국은 2018년 12월 1일부로 상용화를 위한 5G 무선 이동통신을 세계 최초로 개통했다.
데이터 저널리즘 2000년대 들어서 빅데이터가 부각되며 데이터 저널리즘이 회자 되기 시작했는데, 이 용어는 소프트웨어 개발자인 에이드리언 홀로바티(Adrian Holovaty)가 "컴퓨터 프로그래밍을 통한 저널리즘(Journalism via computer programming)"을 명명한 것을 시초로 본다. 이후 2010년 www의 창시자 팀 버너스 리(Tim Berners Lee)가 데이터 분석이 저널리즘의 미래라고 언급하면서 전 세계적으로 확산됐다. 그는 정부 데이터를 인터넷에 올려 인반인들에게 공개해야 한다는 내용의 연설을 하는 도중 이를 언급했다.
5세대 이동 통신 대한민국에선 한국전자통신연구원의 주도로 Gigabyte 프로젝트가 시작된 이래, 한국은 2018년 12월 1일부로 상용화를 위한 5G 무선 이동통신을 세계 최초로 개통했다.
삼성전자에서 5세대 이동 통신의 기술을 개발했다.
5세대 이동 통신 이것은 5G 네트워크의 주요 기술 중 하나이다. 데이터 속도를 높이고 대용량 MIMO 안테나를 사용하여 대역폭을 향상시킬 수있는 타겟 빔 및 고급 신호 처리를 통해 데이터를 전송하므로 많은 데이터가 실제로 필요한 장소에 집중적으로 무선 신호를 전송하는 기술이다.